Sistemas baseados em conhecimento. Sistemas baseados em conhecimento e sistemas especialistas

3. Estratégias de aquisição de conhecimento

1. Conhecimento, tipos de conhecimento, bases de conhecimento, bancos de conhecimento

Existem várias definições do conceito de "conhecimento".

Conhecimento são os padrões básicos da área de assunto que permitem que uma pessoa resolva tarefas específicas de produção, científicas e outras, ou seja, fatos, conceitos, relacionamentos, estimativas, regras, heurísticas (caso contrário, conhecimento), bem como estratégias de tomada de decisão. nesta área (de outra forma conhecimento estratégico). )

Por "conhecimento" entende-se a informação formalizada que é referida ou utilizada no processo de resolução de um problema.

O conhecimento sobre a área de estudo inclui uma descrição de objetos, seu ambiente, fenômenos necessários, fatos, bem como as relações entre eles. A complexidade do conceito de "conhecimento" está na multiplicidade de seu portador e indissociabilidade do conceito de "dados".

Existem vários níveis de formalização do conhecimento sobre a área temática:

Conhecimento na memória humana;

Conhecimento na forma de modelo de linguagem da área temática, utilizado por uma pessoa e registrado em mídia física utilizando linguagens contextuais, imagens gráficas, etc.;

Conhecimento formalizado para sua representação quando utilizado em computador;

Informações ou dados factuais.

O conhecimento é geralmente dividido em 2 grandes categorias: fatos e heurísticas. A primeira categoria (fatos) indica circunstâncias bem conhecidas em uma determinada área temática. Tal conhecimento também é chamado de textual, ou seja, sua abrangência suficiente na literatura especializada e nos livros didáticos. A segunda categoria (heurísticas) baseia-se na experiência individual de um especialista (especialista) na área disciplinar, acumulada como resultado de muitos anos de prática. Essa categoria muitas vezes desempenha um papel decisivo na construção de programas intelectuais.

A base de conhecimento é uma coleção de modelos, regras e fatores (dados) que geram análises e conclusões para encontrar soluções para problemas complexos em uma determinada área temática.


2. Modelos de representação do conhecimento

Os modelos de representação de conhecimento mais comuns são:

sistemas de produção;

Modelos lógicos;

redes semânticas.

Em sistemas de produção o conhecimento é representado como um conjunto de unidades de informação especiais com a seguinte estrutura. Em geral, um sistema de produção inclui os seguintes componentes:


Um banco de dados contendo muitos fatos;

Base de regras contendo um conjunto de produções;

Intérprete (motor de inferência) ou regras para trabalhar com produtos.

A base de regras e o banco de dados formam a base de conhecimento.

Os fatos no banco de dados são informações de curto prazo e podem, em princípio, mudar ao longo do sistema do produto à medida que a experiência é adquirida.

As regras são informações mais de longo prazo e são projetadas para gerar hipóteses (novos fatos) a partir do que já é conhecido.

Os produtos em comparação com outras formas de representação do conhecimento têm as seguintes vantagens:

Modularidade;

Uniformidade da estrutura (os principais componentes do sistema de produção podem ser usados ​​para construir sistemas inteligentes com diferentes orientações de problemas);

Naturalidade (a conclusão de uma conclusão em um sistema de produção é em muitos aspectos semelhante ao processo de raciocínio do especialista);

A flexibilidade da hierarquia genérica de conceitos, que é suportada apenas como links entre regras (mudar uma regra implica mudar a hierarquia).

No entanto, os sistemas de produção não estão isentos de desvantagens:

O processo de inferência é menos eficiente do que em outros sistemas, uma vez que a maior parte do tempo de inferência é gasto em overhead verificando a aplicabilidade das regras;

Esse processo é difícil de gerenciar;

É difícil imaginar uma hierarquia genérica de conceitos.

Modelos lógicos de representação do conhecimento são implementados por meio de lógica de predicados.

Um predicado é uma função que assume apenas dois valores - verdadeiro e falso - e tem como objetivo expressar as propriedades dos objetos ou as relações entre eles.

Uma expressão que afirma ou nega a existência de quaisquer propriedades de um objeto é chamada de proposição.

quadro, Armação mais frequentemente definido como uma estrutura de dados para representar situações estereotipadas. Frames (literalmente - "frame") é uma unidade de representação de conhecimento, cujos detalhes podem mudar de acordo com a situação atual. A moldura a qualquer momento pode ser complementada com várias informações sobre as formas de utilização desta moldura, as consequências desta utilização, etc.

A web semântica descreve o conhecimento na forma de estruturas de rede. Os nós da rede são conceitos, fatos, objetos, eventos, etc., e os arcos da rede são os relacionamentos pelos quais os nós estão conectados uns aos outros.

3. Estratégias de aquisição de conhecimento

Existem várias estratégias para adquirir conhecimento. O mais comum:

  1. Extração;
  2. aquisição;
  3. descoberta (formação).

Figura 1 - Três estratégias para adquirir conhecimento

A extração de conhecimento é um procedimento para a interação de um engenheiro do conhecimento com uma fonte de conhecimento, pelo qual fica claro o processo de raciocínio dos especialistas-especialistas ao tomar uma decisão e a estrutura de suas ideias sobre a área de estudo.

Figura 2 - Classificação dos métodos de extração de conhecimento

A aquisição de conhecimento é entendida como um método de construção automatizada de uma base de conhecimento por meio de um diálogo entre um especialista e um programa especial (neste caso, a estrutura de conhecimento é pré-programada no programa). Esta estratégia requer um pré-desenvolvimento significativo da área temática. Os sistemas de aquisição de conhecimento adquirem peças de conhecimento prontas de acordo com as estruturas estabelecidas pelos projetistas do sistema. A maioria dessas ferramentas é focada especificamente em sistemas especialistas específicos com uma área de assunto e um modelo de representação de conhecimento estritamente definidos, ou seja, não são universais.

O termo descoberta (formação) de conhecimento tem sido tradicionalmente atribuído a um campo extremamente promissor e em desenvolvimento ativo da engenharia do conhecimento, que desenvolve modelos, métodos e algoritmos para análise de dados para aquisição e aprendizado de conhecimento. Essa área inclui modelos indutivos para geração de hipóteses com base em amostras de treinamento, aprendizado por analogia e outros métodos.


4. Propriedades dos sistemas baseados em conhecimento

Figura 3 - Propriedades dos sistemas baseados em conhecimento

5. Critérios para a conveniência de resolver problemas com a ajuda de sistemas baseados em conhecimento

Figura 4 - Critérios para a celeridade de resolução de problemas utilizando sistemas baseados em conhecimento

6. Aplicações de sistemas baseados em conhecimento

As áreas de aplicação dos sistemas baseados em conhecimento são muito diversas:

Produção;

Aplicações militares;

O remédio;

Sociologia;

Geologia;

Agricultura;

Ao controle;

Jurisprudência;

7. Tipos de problemas resolvidos com a ajuda de sistemas baseados em conhecimento

Tipos de tarefas resolvidas com a ajuda de sistemas baseados em conhecimento:

Interpretação de símbolos ou sinais - compilação de uma descrição semântica de acordo com os dados de entrada;

Diagnóstico - identificação de avarias (doenças) por sintomas;

Monitoramento - observação da mudança de estado do objeto e comparação de seus indicadores com os estabelecidos ou desejados;

Design - desenvolvimento de um objeto com propriedades especificadas observando as restrições estabelecidas;

Previsão - determinação das consequências, situações observadas;

Planejamento - determinar a sequência de ações que levam ao estado desejado do objeto;

Controle - o impacto no objeto para atingir o comportamento desejado;

O treinamento é uma explicação ou consulta em um determinado campo do conhecimento.

Os sistemas baseados em conhecimento são implementados com base nos seguintes algoritmos inteligentes:

Sistemas especializados;

Redes neurais;

Lógica difusa;

Algorítmos genéticos.

Porque sistemas baseados em conhecimento usam algoritmos inteligentes, tais sistemas são às vezes chamados de sistemas de inteligência artificial.

Sistemas especialistas (SE) são programas de computador que utilizam os princípios da inteligência artificial e o conhecimento formalizado de um especialista para processar informações operacionais e tomar decisões informadas na área de estudo analisada.

Em sistemas especialistas, o conhecimento especializado é amplamente utilizado para resolver problemas no nível de um especialista humano. O termo "especialista" refere-se a uma pessoa que possui conhecimento especializado em uma área específica. Isso significa que o especialista possui conhecimentos ou habilidades especiais que são desconhecidas ou inacessíveis para a maioria das pessoas. Um especialista é capaz de resolver problemas que a maioria das pessoas não consegue resolver, ou resolvê-los com muito mais eficiência. Uma vez que os sistemas especialistas foram desenvolvidos, eles continham apenas conhecimento especializado. No entanto, hoje em dia o termo " sistema inteligente" é frequentemente aplicado a qualquer sistema que use tecnologia de sistema especialista. A tecnologia de sistema especialista pode incluir linguagens especiais de sistema especialista, bem como software e hardware projetados para dar suporte ao desenvolvimento e operação de sistemas especialistas.

Como conhecimento em sistemas especialistas, tanto o conhecimento especializado quanto o conhecimento público comum podem ser usados, os quais podem ser obtidos de livros, revistas e de pessoas bem informadas. Nesse sentido, o conhecimento comum é considerado como um conceito de nível inferior em relação ao conhecimento especializado mais raro. Termos " sistema inteligente", "sistema baseado em conhecimento", E " sistema especialista baseado em conhecimento" são frequentemente usados ​​de forma intercambiável. Mas a maioria das pessoas usa apenas o termo " sistema inteligente" simplesmente porque é mais curto, embora em sistema inteligente em questão, não especialista, mas apenas o conhecimento comum pode ser apresentado.

Existem duas classes fundamentalmente diferentes de SE: "baseado em conhecimento" e "baseado em exemplo". A primeira classe de SE é usada para trabalhar com elementos de conhecimento bem sistematizados e padrões conhecidos a priori expressos por vários métodos, instruções, regras, etc. Princípios de trabalho sistema especialista baseado no conhecimento, estão ilustrados na Fig.11.15.


Arroz. 11.15.

Além disso, foram desenvolvidos sistemas úteis baseados em conhecimento que se destinam a ser usados ​​como um assistente inteligente para um especialista humano. Esses assistentes inteligentes são projetados com base na tecnologia de sistemas especialistas, pois essa tecnologia oferece vantagens significativas de desenvolvimento. Quanto mais conhecimento for inserido na base de conhecimento de um assistente inteligente, mais suas ações se assemelharão às de um especialista. O desenvolvimento de um assistente inteligente pode ser um passo intermediário útil antes de criar um sistema inteligente. Além disso, o assistente inteligente permite liberar mais tempo útil para o especialista, pois seu uso contribui para a solução acelerada de problemas.

O conhecimento especializado refere-se a apenas uma área temática, e esta é a diferença entre os métodos baseados no uso de sistemas especialistas e os métodos gerais de resolução de problemas. Uma área de assunto é uma área de problema especial, como medicina, finanças, ciência e tecnologia, na qual apenas um determinado especialista pode resolver problemas muito bem. Sistemas especialistas, como especialistas humanos, geralmente são usados ​​como especialistas em uma área de assunto. Por exemplo, geralmente não se pode esperar que um especialista em xadrez tenha conhecimento especializado relacionado à medicina. A experiência em uma área de assunto não é transferida automaticamente para outra área.

O conhecimento de um especialista sobre a solução de problemas específicos é chamado de área de conhecimento do especialista. A relação entre a área de assunto e a área de conhecimento é mostrada na Figura 11.16.

Nesta figura, a área de conhecimento está totalmente incluída na área temática. A parte que vai além da área de conhecimento simboliza a área em que não há conhecimento sobre nenhuma das tarefas relacionadas a essa área temática.

No campo do conhecimento sistema inteligente conduz o raciocínio ou tira conclusões lógicas no mesmo princípio que um especialista - uma pessoa argumentaria ou chegaria a uma solução de um problema de maneira lógica.


Arroz. 11.16.

Isso significa que, com base em certos fatos, pelo raciocínio, uma conclusão lógica e justificada é formada, que decorre desses fatos.

ES são usados ​​com sucesso naquelas áreas onde, além do uso de métodos algorítmicos padrão baseados em cálculos precisos, o conhecimento e a experiência de especialistas-analistas específicos são usados ​​essencialmente, e a tomada de decisão é formada em condições de dados incompletos e depende mais em avaliações qualitativas do que quantitativas. Estas áreas temáticas incluem, em primeiro lugar, a área de análise da atividade financeira, onde a eficácia das decisões tomadas depende da comparação de muitos fatores diferentes, tendo em conta relações complexas de causa e efeito, a utilização de raciocínio lógico trivial, etc.

clássico sistema inteligente incorpora o conhecimento não escrito que deve ser obtido de um especialista por meio de entrevistas conduzidas por um engenheiro do conhecimento durante um longo período de tempo. Este processo de criação sistema inteligente chamado engenharia do conhecimento e realizado por um engenheiro do conhecimento. engenharia do conhecimento refere-se à aquisição de conhecimento de um especialista humano ou de outras fontes e a subsequente apresentação do conhecimento em sistema inteligente(fig.11.17).


Arroz. 11.17.

Primeiro, o engenheiro do conhecimento estabelece um diálogo com um especialista humano para trazer à tona o conhecimento do especialista. Essa etapa é análoga ao trabalho feito por um projetista de sistemas na programação convencional ao discutir os requisitos do sistema com o cliente para o qual o programa está sendo criado. O engenheiro do conhecimento então expõe o conhecimento explicitamente para inclusão na base de conhecimento. O especialista então avalia sistema inteligente e transmite críticas ao engenheiro do conhecimento. Esse processo é repetido várias vezes, até que o especialista avalie os resultados do sistema como satisfatórios.

De um modo geral, o processo de criação de sistemas especialistas é muito diferente do processo de desenvolvimento de programas comuns. Em sistemas especialistas, são considerados problemas que não possuem uma solução algorítmica satisfatória, então uma conclusão lógica é utilizada para alcançar uma solução aceitável. Uma vez que a base de funcionamento sistema inteligente reside uma conclusão lógica, tal sistema deve ser capaz de explicar seu raciocínio para que possa ser testado. Portanto, parte integrante de qualquer complexo sistema inteligenteé um meio de explicação. Na verdade, explicadores sofisticados podem ser desenvolvidos para permitir que o usuário explore várias linhas de perguntas como "O que acontece se..." chamado de raciocínio hipotético.

Consequentemente, engenharia do conhecimento- Este é o campo da tecnologia da informação, cujo objetivo é acumular e aplicar o conhecimento não como um objeto para processá-los por uma pessoa, mas como um objeto para processá-los em um computador. Para isso, é necessário analisar o conhecimento e as características de seu processamento por uma pessoa e um computador, bem como desenvolver sua representação de máquina. Infelizmente, ainda não foi dada uma definição precisa e inegável do que é o conhecimento. No entanto, o objetivo engenharia do conhecimento– garantir a utilização dos conhecimentos em sistemas informáticos a um nível superior ao que é até agora relevante. A possibilidade de utilização do conhecimento só é viável quando esse conhecimento existe, o que é bastante compreensível. A tecnologia de acumular e resumir conhecimento anda “lado a lado” com a tecnologia de uso do conhecimento, onde se complementam e levam à criação de uma tecnologia, a tecnologia de processamento do conhecimento.

A segunda classe de SE é usada em situações em que não há conexões e padrões óbvios entre os elementos do conhecimento, e o próprio conhecimento é apresentado na forma de listas de exemplos que descrevem a implementação de determinados eventos. Se a primeira classe de SE trabalha com dados bem definidos e conhecimento extraído de especialistas - analistas por engenheiros do conhecimento, então a segunda classe forma seu conhecimento adaptando-se à área de assunto representada por exemplos, e tanto o treinamento quanto as informações analisadas podem ser distorcidas e incompleto. No primeiro caso, os mecanismos de inferência, via de regra, são baseados em estratégias clássicas de herança e inferência, no segundo caso, vários métodos de generalização indutiva por exemplos, em particular, as propriedades das redes neurais artificiais utilizadas para isso.

Em um sistema baseado em regras, o conhecimento de domínio necessário para resolver problemas é codificado na forma de regras e contido em uma base de conhecimento. É claro que as regras são mais amplamente usadas para representar o conhecimento. Elementos de um típico sistema inteligente, com base nas regras, são mostrados na Figura 11.18.


Arroz. 11.18.

Sistema inteligente consiste nos componentes descritos abaixo.

  • Interface de usuário. O mecanismo pelo qual o usuário e sistema inteligente.
  • meio de explicação. Um componente que permite explicar ao usuário o curso do raciocínio do sistema.
  • memória de trabalho. A base global de fatos usados ​​nas regras.
  • Máquina de inferência. Um componente de software que fornece geração de inferência (decidindo quais regras fatos ou objetos satisfazem). Prioriza as regras em execução e executa a regra com a prioridade mais alta.
  • Lista de trabalho de regras. Uma lista de regras gerada e priorizada pelo mecanismo de inferência cujos padrões correspondem a fatos ou objetos na memória de trabalho.
  • Um meio de adquirir conhecimento. Um método automatizado que permite ao usuário inserir conhecimento no sistema, em vez de envolver um engenheiro do conhecimento na solução do problema de codificação explícita do conhecimento.

Muitos sistemas possuem uma ferramenta opcional de aquisição de conhecimento, que em alguns sistemas especialistas é capaz de aprender por derivação de regras indutivas a partir de exemplos e gerar regras automaticamente. Outros métodos e algoritmos também têm sido usados ​​para gerar regras em aprendizado de máquina, como redes neurais artificiais e algorítmos genéticos. O principal problema com o uso do aprendizado de máquina para gerar regras é que não há explicação sobre por que as regras foram criadas. Ao contrário de um ser humano capaz de explicar as razões pelas quais uma determinada regra foi escolhida, os sistemas de aprendizado de máquina nunca foram capazes de explicar suas ações, e isso pode levar a resultados imprevisíveis. No entanto, em geral, os exemplos apresentados na forma de tabelas simples são os melhores para criar árvores de decisão. Regras gerais preparadas por um engenheiro do conhecimento podem ser muito mais complexas do que regras simples derivadas por derivação de regras indutivas.

DENTRO sistema inteligente, baseada em regras, a base de conhecimento também é chamada de memória de produção. Como um exemplo muito simples, considere o problema de tomar a decisão de atravessar uma estrada. A seguir, são produções para duas regras, nas quais as setas significam que o sistema executará ações à direita da seta se as condições à esquerda da seta forem verdadeiras:

luz vermelha acesa -> parar

luz verde acesa -> mover

As regras de produção podem ser expressas no formato de pseudocódigo IF-THEN equivalente da seguinte forma:

Regra: red_light

SE a luz vermelha estiver acesa ENTÃO fique de pé

Regra: green_light

SE a luz verde estiver acesa, então mova

Cada regra é identificada por um nome. Após o nome está a parte IF da regra. A seção da regra entre as partes SE e ENTÃO da regra é referida por vários nomes, como antecedente, parte condicional, parte do modelo ou lado esquerdo (LHS). Uma única condição, como

"luz vermelha acesa" é chamado de elemento condicional, ou modelo.

Em um sistema baseado em regras, o mecanismo de inferência determina quais antecedentes de regras (se houver) são executados de acordo com os fatos. Como estratégias para resolver problemas em sistemas especialistas, dois métodos gerais de inferência são comumente usados: inferência direta e inferência reversa. Outros métodos usados ​​para executar métodos mais específicos podem incluir análise de fins e meios, simplificação de problemas, retrocesso, verificação de plano de trabalho, planejamento hierárquico e menor contribuição e tratamento de restrições.

A inferência lógica direta é um método de formar raciocínio de fatos para conclusões que se seguem desses fatos. Por exemplo, se antes de sair de casa você achar que está chovendo (fato), então você deve levar um guarda-chuva com você (conclusão).

A inferência reversa envolve a formação do raciocínio na direção oposta – de uma hipótese (uma conclusão potencial que deve ser comprovada) aos fatos que confirmam a hipótese. Por exemplo, se você não olhar para fora, mas alguém entrar em casa com botas molhadas e um guarda-chuva, você pode aceitar a hipótese de que está chovendo. Para confirmar essa hipótese, basta perguntar a essa pessoa se está chovendo. No caso de uma resposta positiva, ficará provado que a hipótese é verdadeira, então ela se torna um fato. Como mencionado acima, uma hipótese pode ser considerada como um fato, cuja veracidade está em dúvida e deve ser estabelecida. Nesse caso, a hipótese pode ser interpretada como um objetivo que deve ser comprovado.

Dependendo do projeto sistema inteligente em um mecanismo de inferência, a inferência direta ou reversa é realizada, ou ambas as formas de inferência. Por exemplo, o CLIPS foi projetado para inferência direta, o PROLOG fornece inferência reversa e a versão do CLIPS de Paul Haley, chamada Eclipse, executa inferência direta e reversa. A escolha do mecanismo de inferência depende do tipo de problema. Tarefas de diagnóstico são melhor resolvidos usando inferência para trás, enquanto problemas de previsão, controle atual e controles são mais fáceis de resolver usando inferência lógica direta.

A memória de trabalho pode conter fatos sobre o estado atual do semáforo, como "luz verde acesa" ou "luz vermelha acesa". Um ou ambos os fatos podem estar presentes na memória de trabalho. Se o semáforo estiver funcionando corretamente, apenas um fato estará na memória de trabalho. Mas também é possível que ambos os fatos estejam presentes na memória de trabalho se o semáforo estiver com defeito. Qual é a diferença entre base de conhecimento e memória de trabalho? Os fatos não interagem entre si. O fato de "luz verde acesa" não afeta o fato de "luz vermelha acesa". Por outro lado, o conhecimento sobre o funcionamento dos semáforos sugere que, se ambos os fatos estiverem presentes ao mesmo tempo, o semáforo está com defeito.

Se houver um fato de "luz verde acesa" na memória de trabalho, o mecanismo de inferência detecta que esse fato satisfaz a parte condicional da regra de luz verde e coloca essa regra na lista de regras de trabalho. E se uma regra tiver vários modelos, todos esses modelos devem ser atendidos ao mesmo tempo para que a regra seja colocada na lista de regras de trabalho. Como condição para satisfazer certos padrões, pode-se até especificar a ausência de certos fatos na memória de trabalho.

Uma regra, cujos templates são satisfeitos, é chamada de ativada ou implementada. Várias regras ativadas podem estar presentes na lista de regras de trabalho ao mesmo tempo. Nesse caso, o mecanismo de inferência deve escolher uma das regras a serem executadas.

Após a parte THEN da regra, há uma lista de ações que devem ser executadas após a execução da regra. Esta parte da regra é chamada de consequente, ou lado direito (Right-Hand Side - RHS). Se a regra red_light for acionada, sua ação "stand" será executada. Da mesma forma, uma vez que uma regra green_light é executada, sua ação se torna "mover". Ações específicas geralmente incluem adicionar ou remover fatos da memória de trabalho ou gerar resultados. O formato para descrever essas ações depende da sintaxe da linguagem. sistema inteligente. Por exemplo, no CLIPS, a ação para adicionar um novo fato à memória de trabalho, chamada "stop", assume a forma (assert stop).

O motor de inferência opera no modo de implementação dos ciclos "reconhecimento - ação". Outros termos, como o ciclo buscar-executar, o ciclo situação-resposta e o ciclo situação-ação, também são usados ​​para descrever esse modo de operação. Mas seja qual for o nome desse loop, o mecanismo de inferência executa certos grupos de tarefas repetidamente até que determinados critérios sejam encontrados e façam com que a execução pare. Isso executa as tarefas comuns identificadas no pseudocódigo abaixo como resolução de conflitos, ação, negociação e verificação de condições de interrupção.

ENQUANTO o trabalho não está terminado

Resolução de conflitos. Se houver regras ativadas, selecione a regra com a prioridade mais alta; caso contrário, o trabalho está feito.

Açao. Execute consistentemente as ações indicadas na parte direita da regra ativada selecionada. Nesse ciclo, manifesta-se a influência direta daquelas ações que alteram o conteúdo da memória de trabalho. Exclua a regra recém-lançada da lista de regras de trabalho.

Coordenação. Atualize a lista de trabalho de regras verificando se o lado esquerdo de alguma regra está sendo executado. Se sim, ative as regras correspondentes. Exclua as regras ativadas se o lado esquerdo das regras correspondentes não for mais satisfeito.

Verificação das condições de parada. Se a ação de parada for executada ou o comando de interrupção for dado, o trabalho estará concluído.

Aceite o novo comando do usuário.

Durante cada ciclo, várias regras podem ser ativadas e colocadas na lista de trabalho de regras. Além disso, os resultados da ativação de regras de ciclos anteriores permanecem na lista de trabalho de regras, a menos que essas regras sejam desativadas devido ao fato de suas partes esquerdas não serem mais executadas. Assim, durante a execução do programa, o número de regras ativadas na lista de regras de trabalho muda. Dependendo do programa, as regras previamente ativadas podem sempre permanecer na lista de regras de trabalho, mas nunca ser selecionadas para execução. Da mesma forma, algumas regras podem nunca ser habilitadas. Nesses casos, você deve verificar novamente a finalidade dessas regras, porque essas regras não são necessárias ou seus modelos não são bem projetados.

O mecanismo de inferência executa as ações da regra ativada com a prioridade mais alta da lista de regras de trabalho, depois as ações da regra ativada com a próxima prioridade mais alta e assim por diante, até que não haja mais regras ativadas na lista. Vários sistemas de prioridade foram desenvolvidos para ferramentas de sistemas especialistas, mas, de modo geral, todas as ferramentas permitem que o engenheiro do conhecimento priorize regras.

Os conflitos surgem na lista de trabalho de regras se regras diferentes disparadas tiverem a mesma prioridade, e o mecanismo de inferência deve decidir qual dessas regras deve ser executada. Diferentes shells usam métodos diferentes para resolver esse problema. Newell e Simon adotaram a abordagem de que as regras inseridas no sistema primeiro recebem a mais alta prioridade por padrão. No CLIPS, as regras têm a mesma prioridade por padrão, a menos que uma delas tenha uma prioridade diferente atribuída por um engenheiro de conhecimento.

Após todas as regras terem sido executadas, o controle retorna ao interpretador de comandos nível superior para que o usuário possa emitir para o shell sistema inteligente Instruções adicionais. A execução no modo de nível superior corresponde ao modo padrão no qual o usuário interage sistema inteligente, e é designado como uma tarefa "Aceitar um novo comando de usuário". Novos comandos são recebidos no nível superior.

O nível superior é a interface do usuário para o shell enquanto o aplicativo está sendo desenvolvido. sistema inteligente. Mas geralmente interfaces de usuário mais complexas são desenvolvidas para facilitar o trabalho com sistema inteligente. Na realidade, projetar e implementar uma interface de usuário pode exigir mais esforço do que construir uma base de conhecimento. sistema inteligente especialmente na fase de protótipo. Dependendo dos recursos do interpretador de comandos sistema inteligente a interface do usuário pode ser implementada usando regras ou usando instruções em outra linguagem chamada de sistema inteligente.

Característica principal sistema inteligenteé a facilidade de explicação, que permite ao usuário fazer perguntas sobre como o sistema chegou a uma determinada conclusão e por que ele precisa de determinada informação. Um sistema baseado em regras pode responder facilmente à questão de como uma determinada conclusão foi alcançada, porque o histórico de ativação de regras e o conteúdo da memória de trabalho podem ser armazenados na pilha. Mas essa possibilidade não é tão facilmente alcançável ao usar redes neurais artificiais. algorítmos genéticos ou outros sistemas que ainda estão em desenvolvimento. É claro que foram feitas tentativas para fornecer a possibilidade de explicação em alguns sistemas, mas os meios de explicação criados neste caso não podem ser comparados em sua clareza com os meios de qualquer sistema inteligente desenhado pelo homem. As ferramentas de explicação desenvolvidas podem permitir que o usuário faça perguntas "e se" e explore formas alternativas de formar raciocínios hipotéticos.

Alguns sistemas baseados em conhecimento são chamados de sistemas especialistas quando o padrão para seu uso deve ser determinado por um especialista humano. Existem muitos sistemas que são baseados no conhecimento de especialistas. O objetivo final dos sistemas baseados em conhecimento é substituir o decisor humano, mas, na realidade, esse objetivo excede as capacidades reais dos sistemas. Eles podem assumir apenas parte do trabalho de uma pessoa, mas não podem substituí-lo completamente. Levará algum tempo até que os sistemas baseados em conhecimento possam substituir os gerentes, se é que alguma vez. Nesse sentido, os sistemas baseados em conhecimento são, às vezes, superestimados.

Cada um dos quatro tipos de sistemas de informação que consideramos é adequado para um propósito específico. Nenhum deles é adequado para todos os tipos de informações utilizadas em todos os níveis de gestão.

Embora os sistemas de transações e transações não sejam tão atraentes quanto os sistemas de suporte à decisão ou baseados em conhecimento, eles são bastante poderosos, pois alimentam dados em um sistema de informação comum, mantêm os dados organizados e atualizados e garantem que os dados sejam movidos para onde são necessários. Mas, por si só, esses sistemas são limitados ao uso de dados específicos.

Os tipos de sistemas de informações gerenciais discutidos nesta seção expandem as capacidades dos sistemas de transações e transações. Eles manipulam dados sobre problemas conhecidos e recorrentes para torná-los utilizáveis ​​para estimular informações excepcionais. Essas informações são usadas com mais frequência no nível operacional, com menos frequência no nível divisional e com menos frequência no nível estratégico.

Os sistemas de apoio à decisão ajudam os gerentes a resolver problemas menos estruturados. Eles são mais adequados que o UIS para a produção de informações de controle, distribuição e orientação. DSS são mais complexos para criar e manter sistemas do que sistemas de informação gerencial. E embora o DSS possa resolver o problema da informação estimulante e exclusiva, o MIS permite que você faça isso de forma mais econômica.

Os sistemas de suporte à decisão fornecem acesso fácil e flexível a muitos componentes. Quando eles são bem projetados, fica mais fácil mudar e adicionar novos componentes. Como outras ferramentas poderosas, a eficácia da WBS G é amplamente determinada pela habilidade de seu uso.

Os sistemas baseados em conhecimento, por outro lado, são projetados para apoiar o domínio. Agora, no entanto, esses sistemas limitaram e estreitaram o foco no artesanato. Atualmente, os sistemas baseados em conhecimento são ferramentas poderosas, mas limitadas, para controlar, distribuir e orientar decisões.

Os sistemas de informação nem sempre são imediatamente utilizáveis, e os gerentes geralmente precisam criar sistemas de informação individuais.

Construir sistemas de informação

No início do uso de sistemas computacionais, especialmente em organizações simples, o desenvolvimento de programas de computador era uma questão assistemática. Por exemplo, muitos programadores começaram a codificar software o mais rápido possível - muitas vezes antes de ficar claro qual era o programa a ser desenvolvido. Por causa disso, surgiram problemas e os designers começaram a restaurar alguma ordem nesse processo. Isso deu origem a um modelo chamado ciclo de vida de desenvolvimento do sistema.

A. Definindo o Estágio

A fase de definição oferece uma oportunidade para delinear o sistema de informação. A fase de sugestão de argumento é crítica porque a primeira descrição do problema determina muito do que o software precisa formalizar. A fase de implementação da avaliação inclui duas tarefas básicas.

O primeiro é o problema da definição.

A segunda é decidir se é possível construir um sistema. A implementação da avaliação no ciclo de vida do desenvolvimento do sistema é feita, via de regra, quando há um mínimo de informação. Isso pode causar problemas como a falta de conceitos importantes.

Durante a análise do sistema, o tempo é gasto determinando quais informações o usuário deseja do sistema. A próxima etapa é determinar quais dados são necessários para fornecer essas informações. Durante esse processo, os procedimentos evoluem, tornando necessário obter dados e fazer uso das informações. Por fim, examina de onde os dados virão e como eles fluirão pelo sistema.

A tarefa da próxima fase, o projeto de sistemas lógicos, é desenvolver o conceito do sistema, que inclui como os dados serão coletados, o que será feito com esses dados e quais relatórios serão emitidos pelo sistema. Com a conclusão do projeto do sistema lógico, a etapa de definição também termina. O estágio de definição é crítico para o sucesso do projeto e evolução do sistema. sua implementação é difícil. Durante a análise do sistema, muitas coisas parecem abstratas e é difícil imaginar como tudo ficará depois de reconstruído.

Gostaria. Estágio de desenvolvimento

O estágio de desenvolvimento também é decisivo, mas com a seguinte diferença. Um estágio de desenvolvimento fraco pode destruir um bom trabalho no estágio de definição, mas mesmo um trabalho excelente feito no estágio de desenvolvimento não pode salvar um trabalho ruim no estágio de definição. Na fase de projeto do sistema físico, o projeto lógico se traduz em especificações para subsistemas, programas, procedimentos, arquivos e bancos de dados. O projeto de sistemas físicos requer habilidades técnicas bem desenvolvidas. Se as tarefas do estágio de definição foram bem executadas, não há necessidade de envolvimento extensivo do usuário no projeto do sistema físico.

Durante o desenvolvimento de software, a equipe de projeto desenvolve programas especializados em projeto de sistemas físicos. Ela também escreve programas e os verifica.

O desenvolvimento de procedimentos inclui o desenho e a descrição de procedimentos pelos quais os usuários coletarão e prepararão dados para entrada em um sistema de relatórios, bem como procedimentos para interpretar relatórios. Uma vez que os programas são escritos e testados, é hora de testar o sistema. O teste do sistema tem duas partes: certificar-se de que os programas individuais funcionam juntos e verificar se os procedimentos são seguidos pelo sistema do computador.

Fase de estabelecimento e implementação

Durante a fase de instalação e comissionamento, o projeto passa do projeto à implementação. A fase de conversão e instalação é geralmente o momento mais crítico. O processo de conversão cria os arquivos necessários para o novo sistema. Isso geralmente requer um subsistema especial que traduz os dados do formato do sistema antigo para o novo formato. Temporariamente desprovidos de qualquer sistema informático, os funcionários podem escrever manualmente uma grande quantidade de dados, validando-os o máximo possível e colocando-os em novos arquivos de formato. Durante esse tempo também é possível treinar o usuário nos procedimentos de utilização do novo sistema.

O processo de instalação move os programas de computador de bibliotecas de computador usadas por programadores para bibliotecas de computador usadas durante a operação real do sistema. Este processo também pode envolver a instalação física de novos terminais ou computadores.

Se o sistema foi convertido e instalado com sucesso, o desenvolvimento do projeto é concluído e a fase de uso e suporte começa. Durante a operação do sistema, os usuários fornecem entrada e usam os dados originais. No entanto, mesmo que o sistema esteja desenvolvido, o trabalho ainda não está concluído. Os sistemas contêm bugs e precisam ser corrigidos, e as mudanças nas circunstâncias geralmente determinam mudanças no sistema. Assim, o trabalho no sistema continua, e é chamado de suporte.

Sistemas baseados em conhecimento

Os seres vivos, dependendo de sua posição na escala evolutiva, possuem maiores ou menores capacidades intelectuais. As capacidades intelectuais de abelhas, pássaros, golfinhos e humanos diferem muitas vezes. No entanto, pode-se dizer que cada um desses seres tem a capacidade de fazer escolhas individuais e tomar suas próprias decisões. Este é um dos sinais de inteligência.

Nas aplicações construídas com base na inteligência artificial, tenta-se reproduzir o comportamento dos seres vivos por meio de sistemas computacionais. Ao mesmo tempo, um engenheiro do conhecimento resolve uma tarefa bastante difícil: ele deve incorporar em programas de computador o comportamento inerente aos seres vivos.

Usando uma variedade de metodologias que incluem sistemas especialistas, redes neurais, sistemas baseados em casos, algoritmos genéticos, agentes inteligentes e mineração de dados, podemos fazer os sistemas de computador agirem como seres vivos, reproduzindo um pequeno número de aspectos do comportamento inteligente, como

□ tomada de decisão, diagnóstico, planejamento de sistemas e situações usando sistemas especialistas ou redes neurais;

□ prever o desenvolvimento de sistemas complexos usando algoritmos genéticos;

□ estudar a experiência anterior (às vezes um único exemplo) e tomar uma decisão com base nela sobre a situação atual por meio de sistemas baseados em precedentes;

□ reconhecimento de caligrafia ou imagem gráfica por modelagem em redes neurais;

□ Estabelecer relações causais entre conjuntos de dados usando mecanismos de extração de dados (assim, é possível identificar relações causais no mundo real de onde os dados vieram);

□ simulação do comportamento independente de um programa de computador, implementado utilizando a tecnologia de agentes inteligentes.

Por exemplo, os sistemas de informação jurídica podem oferecer decisões apropriadas com base em exemplos de experiências anteriores usando raciocínio baseado em casos (tais sistemas funcionarão efetivamente em um sistema jurídico baseado em casos em que as decisões são tomadas com base em decisões judiciais anteriores em casos semelhantes).

Sistemas baseados em conhecimento são programas de computador projetados para reproduzir o trabalho de especialistas em determinadas áreas do conhecimento.

Existem sete tipos principais de sistemas baseados em conhecimento.

1. Os sistemas especialistas modelam o processo de tomada de decisão inerente ao cérebro humano. Eles são usados ​​para agir como especialistas humanos, ajudando gerentes ou especialistas a tomar decisões com base no conhecimento especializado. As aplicações típicas de sistemas especialistas são planejamento, agendamento, diagnóstico. Embora os sistemas especialistas sirvam para imitar o processo de tomada de decisão humana, os algoritmos e regras que orientam as decisões são estáticos. Isso significa que o sistema especialista não pode modificar independentemente a lógica de seu trabalho e não é autodidata.

2. As redes neurais simulam o trabalho do cérebro humano no nível biológico (no nível do comportamento de células cerebrais individuais, neurônios). Isso significa que as redes neurais têm uma capacidade de autoaprendizagem integrada: elas podem aprender a reconhecer padrões e então, com base nos padrões, reconhecer padrões. Devido à capacidade de autoaprendizagem, as redes neurais podem ser usadas até certo ponto para resolver problemas de previsão com base em experiências passadas (por exemplo, para prever a distribuição diária dos custos de eletricidade no sistema de energia).

3. Sistemas baseados em casos modelam a capacidade humana de tomar decisões por analogia com precedentes existentes. Tais sistemas são frequentemente utilizados em serviços de suporte técnico, onde situações problemáticas semelhantes são repetidas muitas vezes com clientes diferentes.

4. Os sistemas baseados em algoritmos genéticos, como o próprio nome indica, modelam o processo de desenvolvimento dos organismos biológicos ao nível celular. Algoritmos desse tipo são projetados para encontrar a melhor de muitas soluções aceitáveis ​​para problemas com um grande número de parâmetros de definição. Uma vez que um organismo biológico em processo de desenvolvimento resolve continuamente o problema de otimizar todos os seus parâmetros e estabelecer equilíbrio com o meio ambiente, sistemas baseados em algoritmos genéticos podem ser usados ​​para resolver problemas de otimização de sistemas multifatoriais complexos e prever opções para seu desenvolvimento.

5. Agentes inteligentes são programas para os quais o objetivo final é definido, mas eles podem escolher independentemente maneiras de atingir esse objetivo, alterando de forma flexível o algoritmo de seu comportamento. A maioria dos agentes inteligentes são programas em segundo plano que fazem o trabalho sujo e vêm à tona apenas quando precisam entregar o resultado ao usuário. Exemplos de agentes inteligentes incluem robôs de mecanismos de pesquisa na Internet que vasculham continuamente milhões de páginas de vários sites para manter os dados do mecanismo de pesquisa atualizados.

6. Sistemas de mineração de dados. O termo "mineração de dados" é usado para descrever o processo de descoberta de conhecimento, encontrando relações anteriormente desconhecidas entre os dados. Em bancos de dados que armazenam grandes quantidades de dados, podem ser identificados padrões implícitos que são de uso prático. Por exemplo, analisando as vendas em um supermercado, você pode descobrir que no verão, no mesmo intervalo de tempo, a venda de limonada, sorvete e sementes aumenta acentuadamente. Essas mercadorias devem ser colocadas no pregão próximo e garantir seu fornecimento ininterrupto. Tais medidas aumentarão significativamente a venda desses produtos.

3.4.1. Sistemas especializados

Os sistemas especialistas devem ter algumas características específicas: para seu funcionamento, o sistema especialista utiliza conhecimento que deve ser capaz de armazenar na base de conhecimento, extrair e processar de uma determinada maneira para resolver o problema. Em outras palavras, o sistema especialista deve substituir completamente o especialista humano em qualquer campo de atividade específico.


Os sistemas especialistas são criados usando linguagens de programação que suportam programação baseada em regras. Prolog e Lisp geralmente atuam como tais linguagens.

Dois requisitos são especialmente importantes para sistemas especialistas:

□ Área temática bastante restrita. Quanto mais restrita a área temática em que as funções do sistema especialista são implementadas, mais fácil é criar um conjunto de regras para ele e mais eficaz é a opinião especializada emitida.

□ A possibilidade de inferência reversa (veja o exemplo do modelo de produção anterior) permite rastrear com base em quais dados iniciais a recomendação do especialista foi desenvolvida.

Os principais elementos do sistema especialista são (Fig. 3.5):

□ módulo de armazenamento de conhecimento (base de conhecimento), no qual o conhecimento é armazenado em vários formatos de apresentação;

□ um mecanismo de inferência que usa uma base de conhecimento para resolver problemas;

□ interface de usuário por meio da qual o usuário aplica o sistema especialista, formula o problema e recebe sua solução;

□ um mecanismo de obtenção de conhecimento, com o qual são formadas bases de conhecimento para diversos fins (para várias áreas temáticas).

Arroz. 3.5. Elementos de um sistema especialista

As vantagens dos sistemas especialistas incluem:

□ o processo decisório ocorre com base em regras predeterminadas;

□ o uso separado da base de conhecimento e do mecanismo de inferência permite que você modifique ambos separadamente;

□ a oportunidade de saber como a decisão foi recebida;

□ rapidez na obtenção de uma decisão;

□ disponibilidade de um procedimento padrão de retirada;

□ a capacidade de resolver repetidamente problemas típicos com a liberação de especialistas humanos deste trabalho;

□ Capacitação dos usuários para as capacidades de especialistas experientes em um determinado campo.

Desvantagens dos sistemas especialistas:

□ foco em um campo restrito de conhecimento, na resolução de problemas com especificidades limitadas;

□ a necessidade de especialistas adquirirem conhecimento;

□ necessidade frequente de um especialista para um parecer final;

□ alto grau de formalização, incapacidade de usar o "simples bom senso" no raciocínio;

□ alto custo de desenvolvimento e manutenção;

□ alto grau de conclusões mecanicistas, falta de “criatividade”;

□ a necessidade de reposição constante da base de conhecimento de acordo com as mudanças na área de especialização;

□ a complexidade de obter conhecimento de especialistas e os requisitos especiais para um engenheiro do conhecimento (o processo de traduzir a intuição de um especialista em símbolos e expressões de lógica formal pode levar muito tempo e ser muito caro).

Sistemas especialistas são usados ​​onde

□ os problemas que estão sendo resolvidos são tão importantes que o uso de um sistema especialista economiza tempo e dinheiro, ou ambos;

□ as regras de exame são estáveis ​​e bem conhecidas (ou seja, há especialistas disponíveis de quem é fácil obter conhecimento, o que permite construir um sistema especialista projetado para uso repetido e de longo prazo);

□ é mais barato criar e manter um sistema especialista do que empregar especialistas humanos;

□ há muitos consumidores que precisam exatamente desse sistema especialista (neste caso, uma vez criado, um sistema especialista pode ser repetidamente reproduzido e aplicado por diferentes consumidores);

□ é mais fácil e mais barato criar um sistema especialista do que treinar pessoal em um novo campo de atividade;

□ a decisão é facilmente formalizada e feita com base em regras estáveis ​​(sem introduzir intuição ou conhecimento mal formalizado).

Sistemas especialistas que diferem em custo, potência, volume da base de conhecimento e implementação de hardware são usados ​​para tomar decisões, obter informações adicionais, aumentar a confiabilidade ou reduzir o custo da resolução de problemas em vários campos da ciência, tecnologia, economia, medicina, etc. Na fig. 3.6 mostra a classificação dos sistemas especialistas de acordo com vários critérios.


Sistemas especializados


- Educação - Supercomputador - Autônomo

__ No personagem ____ Híbrido

Capítulo 1. Sistemas baseados em conhecimento.

Capítulo 2 Introdução à engenharia do conhecimento.

CAPÍTULO 1. Sistemas baseados no conhecimento.

^ 1.1. Conhecimento e dados

Se você tem um problema ou uma tarefa que não pode ser resolvida por conta própria, você recorre a pessoas conhecedoras, ou a especialistas, àqueles que têm CONHECIMENTO. O termo "sistemas baseados em conhecimento" surgiu em 1976 simultaneamente aos primeiros sistemas que acumulam a experiência e o conhecimento de especialistas. Estes eram os sistemas especialistas MYCIN e DENDRAL para medicina e química. Eles fizeram um diagnóstico de doenças infecciosas do sangue e decifraram os dados da análise espectrográfica de massa.

Os sistemas especialistas surgiram como parte das pesquisas sobre inteligência artificial (IA) em um momento em que essa ciência passava por uma grave crise, e era necessário um avanço significativo no desenvolvimento de aplicações práticas. Esse avanço ocorreu quando os pesquisadores substituíram a busca por um algoritmo universal para pensar e resolver problemas pela ideia de modelar o conhecimento específico de especialistas especialistas. Assim, nos EUA, o primeiro comercial sistemas baseados em conhecimento ou sistemas especialistas (SE). Esses sistemas tornaram-se, com razão, os primeiros sistemas inteligentes, e até agora o único critério para a intelectualidade é a disponibilidade de mecanismos para trabalhar com o conhecimento.

Assim, surgiu uma nova abordagem para resolver problemas de inteligência artificial - representação do conhecimento.

Mais detalhes sobre a história da inteligência artificial podem ser encontrados em [Pospelov, 1986; Jackson, 2001; Gavrilova e Khoroshevsky, 2001; André, 1985|.

Ao estudar sistemas inteligentes, tradicionalmente surge a questão - o que é conhecimento e como ele difere dos dados comuns processados ​​por décadas em computadores. Várias definições de trabalho podem ser propostas nas quais isso fica claro.

Definição 1.1

Dados- trata-se de informação obtida como resultado de observações ou medições de propriedades individuais (atributos) que caracterizam objetos, processos e fenômenos da área temática.

Caso contrário, os dados são fatos específicos, como temperatura do ar, altura do prédio, sobrenome do funcionário, endereço do site etc.

Quando processados ​​em um computador, os dados são transformados, convencionalmente passando pelas seguintes etapas:


  • D1 - dados resultantes de medições e observações;

  • D2 - dados sobre mídia material (tabelas, protocolos, diretórios);

  • D3 - modelos de dados (estruturas) na forma de diagramas, gráficos, funções;

  • D4 - dados no computador na linguagem de descrição de dados;

  • D5 - bancos de dados em mídia de armazenamento de máquina.
O conhecimento é baseado em dados obtidos empiricamente. Eles são o resultado da experiência de uma pessoa e da atividade mental que visa generalizar essa experiência obtida como resultado da atividade prática.

Portanto, se você armar uma pessoa com dados de que ela tem uma temperatura alta (o resultado da observação ou medição), esse fato não permitirá que ela resolva o problema da recuperação. E se um médico experiente compartilhar seu conhecimento de que a temperatura pode ser reduzida com medicamentos antipiréticos e muitos líquidos, isso aproximará significativamente a solução do problema da recuperação, embora sejam necessários dados adicionais e conhecimento mais profundo.

Definição 1.2

conhecimento- são conexões e padrões da área temática (princípios, modelos, leis), obtidos como resultado de atividades práticas e experiência profissional, que permitem aos especialistas definir e resolver problemas nesta área.

Quando processado em um computador, o conhecimento é transformado de forma semelhante aos dados:


  • Z1 - conhecimento na memória humana como resultado da análise da experiência e do pensamento;

  • Z2 - materiais portadores de conhecimento (literatura especial, livros didáticos, material didático);

  • Z3 - campo do conhecimento - uma descrição condicional dos principais objetos da área temática, seus atributos e padrões que os conectam;

  • Z4 - conhecimento descrito em linguagens de representação de conhecimento (linguagens de produção, redes semânticas, frames - Veja abaixo);

  • Z5 - base de conhecimento em mídia de armazenamento de máquina. A seguinte definição de conhecimento é frequentemente usada:
Conhecimento são dados bem estruturados, ou dados sobre dados, ou metadados.

A etapa chave no trabalho com o conhecimento é a formação de um campo de conhecimento (a terceira etapa Z3), esta tarefa não trivial inclui a identificação e definição de objetos e conceitos da área temática, suas propriedades e relações entre eles, bem como sua apresentação de forma visual e intuitiva. Este termo foi introduzido pela primeira vez durante o desenvolvimento prático do sistema especialista AUTANTEST para psicodiagnóstico [Gavrilova, 1984] e agora é amplamente utilizado por desenvolvedores de SE.

Sem um estudo aprofundado do campo do conhecimento, não pode haver questão de criar uma base de conhecimento.

Essencial para entender a natureza do conhecimento são as maneiras pelas quais os conceitos são definidos. Um dos métodos amplamente utilizados é baseado na ideia de intenção e extensão.

Definição 1.3

Intenção do conceito- esta é a sua definição através da correlação com o conceito de um nível de abstração superior com indicação de propriedades específicas.

Por exemplo, a intenção do conceito "MOBILIÁRIO": "objetos projetados para garantir uma estadia confortável para uma pessoa e desordenar a casa".

Definição 1.4

Uma extensão é uma definição de um conceito enumerando seus exemplos específicos, ou seja, conceitos de um nível mais baixo de abstração.

Extensão do conceito "MOBILIÁRIO": "Roupeiro, sofá, mesa, cadeira, etc."

Intensões formam conhecimento sobre objetos, enquanto extensões combinam dados. Juntos, eles formam os elementos do campo de conhecimento de uma determinada área temática.

Os bancos de dados são usados ​​para armazenamento de dados (eles são caracterizados por um grande volume e custo unitário de informação relativamente pequeno), para armazenamento de conhecimento - bases de conhecimento (matrizes de informações pequenas, mas extremamente caras).

Base de conhecimento - a base de qualquer sistema intelectual, onde o conhecimento é descrito em uma certa linguagem de representação do conhecimento, próxima ao natural.

O conhecimento pode ser dividido em:


  • profundo;

  • superficial.
Superfície - conhecimento sobre as relações visíveis entre eventos individuais e fatos na área de assunto.

profundo- abstrações, analogias, diagramas que refletem a estrutura e a natureza dos processos que ocorrem na área temática. Esse conhecimento explica fenômenos e pode ser usado para prever o comportamento de objetos.

Conhecimento superficial

"Se você digitar a senha correta, uma imagem da área de trabalho aparecerá na tela do computador."

Profundo conhecimento

"Compreender como o sistema operacional funciona e conhecimento no nível de um administrador de sistema qualificado".

Os sistemas especialistas modernos trabalham principalmente com conhecimento superficial. Isso se deve ao fato de que no momento não existem métodos universais que permitem identificar as estruturas profundas do conhecimento e trabalhar com elas.

Além disso, os livros didáticos de IA tradicionalmente dividem o conhecimento em processual E declarativo. Historicamente, o conhecimento processual era primário, ou seja, o conhecimento "dissolvido" em algoritmos. Eles gerenciaram os dados. Para alterá-los, foi necessário alterar o texto dos programas. No entanto, com o desenvolvimento da informática e do software, uma parte crescente do conhecimento foi concentrada em estruturas de dados (tabelas, listas, tipos de dados abstratos), ou seja, o papel do conhecimento declarativo aumentou.

Hoje, o conhecimento adquiriu uma forma puramente declarativa, ou seja, considera-se conhecimento as sentenças escritas em linguagens de representação do conhecimento próximas da linguagem natural e compreensíveis para não especialistas.

Um dos pioneiros da IA, Alan Newell, ilustrou a evolução da comunicação humano-computador como uma transição de códigos de máquina através de linguagens de programação simbólicas para linguagens de representação de conhecimento (Fig. 1.1).

^ 1.2. Modelos de Representação do Conhecimento

Atualmente, dezenas de modelos (ou linguagens) de representação do conhecimento para diversas áreas temáticas têm sido desenvolvidos. A maioria deles pode ser reduzida às seguintes classes:


  • modelos de produção;

  • redes semânticas;

  • molduras;

  • modelos lógicos formais.
Por sua vez, esse conjunto de classes pode ser dividido em dois grandes grupos (Fig. 1.2):

  • modular;

  • rede.
Modular as línguas operam em elementos separados (não relacionados) de conhecimento, sejam eles regras ou axiomas da área de assunto.

Rede as linguagens fornecem a capacidade de vincular esses elementos ou pedaços de conhecimento por meio de relacionamentos em redes semânticas ou redes de quadros.

Vamos considerar com mais detalhes as linguagens de representação de conhecimento (KRPs) mais populares entre os desenvolvedores.

^ 1.2.1. modelo de produção

RPLs baseados em regras são os mais comuns e mais de 80% dos ESs os utilizam.

Definição 1.5

O modelo de produção ou baseado em regras permite que o conhecimento seja representado como frases como "Se (condição), então (ação)".

Sob a "condição" (antecedente) entende-se uma determinada frase-amostra, segundo a qual a pesquisa é realizada na base de conhecimento, e sob a "ação" (conseqüente) - as ações realizadas após o sucesso da pesquisa ( eles podem ser intermediários, atuando ainda como condições, e terminais ou alvos, terminando o sistema).

Na maioria das vezes, a conclusão sobre tal base de conhecimento é direto(de dados para pesquisa de destino) ou de volta(da finalidade da sua confirmação - aos dados). Dados são os fatos iniciais armazenados na base de fatos, com base nos quais o mecanismo de inferência ou o interpretador de regras é iniciado, classificando as regras da base de conhecimento de produção (ver seção 1.3).

O modelo de produção é frequentemente usado em sistemas especialistas industriais porque atrai desenvolvedores com sua clareza, alta modularidade, facilidade de adições e alterações e simplicidade do mecanismo de inferência.

Há um grande número de ferramentas de software que implementam a abordagem de produção (por exemplo, linguagens de alto nível CLIPS e OPS 5; ESs "shells" ou "empty" - EXSYS Professional e Carra, sistemas instrumentais KEE, ARTS, PIES [ Khoroshevsky, 1993]), bem como o ES industrial baseado nele (por exemplo, o ES criado por meio do G2 [Popov, 1996]). Ver [Popov, Fominykh et ai., 1996; Khoroshevsky, 1993; Gavrilova e Khoroshevsky, 2001; Durkin, 1998].

^ 1.2.2 Redes semânticas

Prazo "semântico" significa"semântica", e a própria semântica é uma ciência que estabelece relações entre os símbolos e os objetos que eles designam, ou seja, uma ciência que determina o significado dos signos. O modelo de rede semântica foi proposto pelo psicólogo americano Quillian. Sua principal vantagem é que corresponde mais do que outros às idéias modernas sobre a organização da memória humana de longo prazo [Scragg, 1983].

Definição 1.6

Web semânticaé um grafo dirigido cujos vértices são conceitos e os arcos são relações entre eles.

Conceitos geralmente são objetos abstratos ou concretos, e relações estas são relações do tipo: "este" ("AKO - A-Kind-Of, "é" ou "elemento de classe"), "tem parte", "pertence", "gosta".

Podemos oferecer várias classificações de redes semânticas relacionadas aos tipos de relacionamentos entre conceitos.

Pelo número de tipos de relacionamento:


  • homogêneo (com um único tipo de relacionamento);

  • heterogêneo (com diferentes tipos de relacionamentos).
-Por tipo de relacionamento:

  • binário (em que as relações conectam dois objetos);
N-ário (em que existem relações especiais conectando mais de dois conceitos).

As seguintes relações são mais frequentemente usadas em redes semânticas:


  • elemento de classe (rosa esta Flor);

  • relacionamentos de atributo / têm uma propriedade (memória tem a propriedade- volume);

  • significado propriedades (cor tem o significado - amarelo);

  • exemplo de elemento de classe (rosa, por exemplo - sala de chá);

  • Tipo de conexão "parte-todo"(bicicleta inclui volante);

  • conexões funcionais (geralmente definidas pelos verbos "produz", "influencia"...);

  • quantitativo (maior que, menor que, igual a...);

  • espacial (longe de, perto de, atrás, sob, sobre ...);

  • temporário (antes, depois, durante...);

  • conexões lógicas (e, ou, não) e etc
A composição mínima das relações na rede semântica é a seguinte:

  • elemento de classe ou ACO;

  • links atributivos / têm uma propriedade;

  • valor da propriedade.
A desvantagem deste modelo é a complexidade de organizar o procedimento de organização da inferência na rede semântica.

Esse problema se reduz à tarefa não trivial de encontrar um fragmento de rede que corresponda a alguma sub-rede que reflita a consulta ao banco de dados.

Na fig. 1.3 mostra um exemplo de uma web semântica. Os conceitos de "homem", "camarada Smirnov", "Audi A4", "carro", "modo de transporte" e "motor" servem como picos aqui.

Arroz. 1.3. Web semântica

Para a implementação de redes semânticas, existem linguagens de rede especiais, por exemplo, NET [Tseytin, 1985], a linguagem para implementação de sistemas SIMER + MIR [Osipov, 1997], etc. Sistemas especialistas que utilizam redes semânticas como linguagem de representação do conhecimento são amplamente conhecidos - PROSPECTOR, CASNET, TORUS [Hayes-Roth et al., 1987; Durkin, 1998].

1.2.3. Quadros

Prazo quadro, Armação(do inglês. quadro, Armação-"esqueleto" ou "quadro") foi proposto por Marvin Minsky [Minsky, 1979], um dos pioneiros da IA, na década de 70 para se referir à estrutura do conhecimento para a percepção de cenas espaciais. Esse modelo, como a rede semântica, tem uma base psicológica profunda.

Definição 1.7

Um frame é uma imagem abstrata para representar um estereótipo de um objeto, conceito ou situação.

É intuitivamente claro que uma imagem abstrata é entendida como algum modelo ou estrutura generalizada e simplificada. Por exemplo, pronunciar a palavra "quarto" em voz alta dá aos ouvintes a imagem de um quarto: "uma sala com quatro paredes, um piso, um teto, janelas e uma porta, com área de 6 a 20 m2". Nada pode ser removido desta descrição (por exemplo, removendo as janelas, obteremos um armário, não um quarto), mas há "buracos" nele ou "slots" - estes são valores vazios de alguns atributos - por exemplo, o número de janelas, cor da parede, altura do teto, revestimento do piso, etc.

Na teoria dos quadros, essa imagem de uma sala é chamada de quadro da sala. Um quadro também é chamado de modelo formalizado para exibir uma imagem.

Distinguir quadros de amostra ou protótipos, armazenados na base de conhecimento e quadros de instância, que são criados para exibir situações reais reais com base nos dados recebidos. O modelo de moldura é bastante universal, pois permite exibir toda a diversidade de conhecimento sobre o mundo através de:


  • estruturas-quadros, usado para designar objetos e conceitos (empréstimo, penhor, nota promissória);

  • quadros de papéis(gerente, caixa, cliente);

  • quadros de script(falência, assembléia de acionistas, celebração de dias de nome);

  • quadros de situação(alarme, acidente, modo de funcionamento do aparelho), etc.
Tradicionalmente, a estrutura de um quadro pode ser representada como uma lista de propriedades:

^ (NOME DO QUADRO:

(nome do 1º slot: valor do 1º slot),

(Nome do 2º slot: valor do 2º slot),

…………….

(Enésimo nome do slot: enésimo valor do slot)).

A mesma entrada pode ser apresentada em forma de tabela (ver Tabela 1.1), complementando-a com duas colunas.

Tabela 1.1. quadro estrutural


nome do quadro

Nome do slot

Valor do slot

Como obter o valor

Procedimento em anexo

Na tabela, colunas adicionais (3ª e 4ª) destinam-se a descrever como um slot recebe seu valor e possivelmente pode anexar procedimentos especiais a um ou outro slot, o que é permitido na teoria dos quadros. O valor de um slot pode ser o nome de outro quadro, que é como as redes de quadros são formadas.

Existem várias maneiras de um slot receber valores em um frame de instância:


  • por padrão do quadro de referência (valor padrão);

  • através da herança de propriedades do quadro especificado no slot AKO;

  • de acordo com a fórmula especificada no slot;

  • através de um procedimento anexo;

  • explicitamente a partir do diálogo com o usuário;

  • do banco de dados.
A propriedade mais importante da teoria dos frames é tomar emprestado da teoria das redes semânticas - a chamada herança de propriedades. Tanto em quadros quanto em redes semânticas, a herança ocorre ao longo de links AKO (A-Kind-Of = this). O slot ACO aponta para um quadro de nível superior da hierarquia, de onde os valores de slots semelhantes são herdados implicitamente, ou seja, transferidos.

Por exemplo, na rede de quadros da Fig. 1.4 o conceito de "aluno" herda as propriedades dos frames "criança" e "pessoa", que estão em um nível superior da hierarquia. À pergunta "Os alunos gostam de doces?" a resposta é "sim", pois todos os filhos possuem essa propriedade, que é indicada no quadro "filho". A herança de propriedade pode ser parcial: a idade dos alunos não é herdada do quadro "filho", pois é especificada explicitamente em seu próprio quadro.


Arroz. 1.4. Rede de quadros

A principal vantagem dos frames como modelo de representação do conhecimento é que ele reflete a base conceitual da organização da memória humana [Shenk, Hunter, 1987], bem como sua flexibilidade e visibilidade.

Linguagens especiais para representação de conhecimento em redes de quadros FRL (Frame Representation Language) [Baidun, Bunin, 1990], KRL (Knowledge Representation Language) [Waterman, 1989], frame "shell" Kappa [Strelnikov, Borisov, 1997], e outras ferramentas de software permitem efetivamente construir usinas industriais. São amplamente conhecidos os sistemas especialistas orientados a quadros como ANALYST, MODIS, TRISTAN, ALTERID [Kovrigin, Perfilyev, 1988; Nikolov, 1988; Sisodia, Warkentin, 1992].

^ 1.2.4. Modelos lógicos formais

Tradicionalmente, na representação do conhecimento, existem modelos lógicos formais baseados no clássico cálculo de predicados de 1ª ordem, quando a área temática ou tarefa é descrita como um conjunto de axiomas. Na realidade, o cálculo de predicados de primeira ordem praticamente não é usado em sistemas especialistas industriais. Esse modelo lógico é aplicável principalmente em sistemas de "brinquedo" de pesquisa, pois impõe exigências e restrições muito altas à área temática. Em sistemas especialistas industriais, são utilizadas suas diversas modificações e extensões, cuja apresentação está além do escopo deste livro. Ver [Adamenko, Kuchukov, 2003].

^ 1.3. Conclusão sobre o conhecimento

Como já afirmado em seg. 1.2 O modelo de produção de representação do conhecimento mais utilizado. Quando utilizada, a base de conhecimento consiste em um conjunto de regras, e o programa que gerencia a enumeração de regras é chamado máquina de saída.

Definição 1.8

máquina de saída(interpretador de regras) é um programa que simula a conclusão lógica de um especialista usando essa base de conhecimento de produção para interpretar os dados inseridos no sistema.

Geralmente desempenha duas funções:

Visualizando dados existentes (fatos) da memória de trabalho (banco de dados) e regras da base de conhecimento e adicionando (na medida do possível) novos fatos à memória de trabalho;

Determine a ordem em que as regras são visualizadas e aplicadas. Esse mecanismo controla o processo de consulta, armazenando informações sobre as conclusões recebidas para o usuário, e solicita informações dele quando não há dados suficientes na memória de trabalho para acionar a próxima regra [Osuga, Saeki, 1990].

Na grande maioria dos sistemas baseados em conhecimento, o mecanismo de inferência é um programa pequeno e inclui dois componentes - um implementa a inferência real, o outro controla esse processo.

Açao componente de saída com base na aplicação de uma regra chamada modus ponens:"Se a afirmação A é conhecida como verdadeira, e existe uma regra da forma SE A ENTÃO B, então a afirmação B também é verdadeira."

Assim, as regras funcionam quando há fatos que satisfazem seu lado esquerdo: se a premissa é verdadeira, então a conclusão também deve ser verdadeira.

O componente de saída deve funcionar mesmo se houver falta de informação. A solução resultante pode não ser exata, mas o sistema não deve parar porque alguma parte das informações de entrada está faltando.

^ componente de controle determina a ordem em que as regras são aplicadas e executa quatro funções:


  1. Coincidindo- a regra de amostra é comparada com os fatos disponíveis.

  2. Escolha - se em uma situação particular várias regras podem ser aplicadas ao mesmo tempo, então uma delas é selecionada que é mais adequada de acordo com um determinado critério (resolução de conflitos).

  3. Operação - se o padrão da regra, quando correspondido, corresponder a qualquer fato da memória de trabalho, a regra será acionada.

  4. Açao - a memória de trabalho é modificada adicionando a conclusão da regra acionada a ela. Se o lado direito da regra contiver uma indicação de alguma ação, ela será executada (como, por exemplo, em sistemas de segurança da informação).
O interpretador de produção funciona ciclicamente. Em cada ciclo, ele examina todas as regras para identificar aquelas cujas premissas correspondem aos fatos atualmente conhecidos da memória de trabalho. Após a seleção, a regra é acionada, sua conclusão é inserida na memória de trabalho e, em seguida, o ciclo é repetido desde o início.

Apenas uma regra pode disparar em um loop. Se várias regras são comparadas com sucesso com fatos, então o intérprete seleciona, de acordo com um determinado critério, a única regra que funciona neste ciclo. O ciclo do intérprete é mostrado esquematicamente na fig. 1.5.

As informações da memória de trabalho são comparadas sequencialmente com os envios de regras para determinar uma correspondência bem-sucedida. O conjunto de regras selecionadas é o chamado conjunto de conflito. Para resolver o conflito, o intérprete tem um critério pelo qual seleciona uma única regra, após a qual funciona. Isso é expresso ao inserir os fatos que formam a conclusão da regra no trabalho