(Parte 1 de 5)

Laboratório de Inteligência Artificial http://www.lia.ufc.br

Expert SINTA versão 1.1 Uma ferramenta visual para criação de sistemas especialistas manual do usuário

BEM-VINDO AO EXPERT SINTA4
CAPÍTULO I - PLANEJANDO UM SISTEMA ESPECIALISTA6
1.1 Arquitetura de um sistema especialista no Expert SINTA7
1.2 Utilizando regras de produção8
1.2.1 Visão geral8
1.2.2 As regras no Expert SINTA8
1.3 Acompanhando a execução de um sistema10
1.3.1 Conhecimento procedural x conhecimento declarativo10
1.3.2 O método de extração procedural de conhecimento do Expert SINTA1
1.3.3 Exemplo de encadeamento para trás1
1.3.4 Variáveis univaloradas x variáveis multivaloradas13
1.3.5 Leitura adicional: conhecimento monotônico x conhecimento não-monotônico13
1.4.1 Visão geral14
1.4.2 O cálculo de probabilidades no Expert SINTA15
1.5 Lidando com o desconhecido17
1.6 Sumário18
CAPÍTULO I - IMPLEMENTANDO O SISTEMA19
2.1 Gerenciando bases20
2.2 A janela “Knowledge-in-a-box” (KIB)20
2.3 Criando variáveis21
2.4 Definindo o(s) objetivo(s)2
2.5 Trabalhando com regras24
2.6 Definindo interface com o usuário27
2.7 Informações adicionais sobre a base29
2.8 Opções31
2.9 Criando fórmulas34
2.10 Sumário35
CAPÍTULO I - CONSULTANDO O SISTEMA ESPECIALISTA36
3.1 Conceitos rápidos37
3.4 As janelas de acompanhamento41
3.5 Compreendendo os resultados atingidos43
3.6 Sumário47
AGRADECIMENTOS48

3.3 A consulta..........................................................................................................................................39

Capítulo I - Planejando um sistema especialista 4 Bem-Vindo ao Expert SINTA

O que são sistemas especialistas e o que o Expert SINTA é capaz de fazer por você.

Sistemas especialistas são programas de computador que procuram atingir soluções de determinados problemas do mesmo modo que especialistas humanos, se estiverem sob as mesmas condições. Apesar das limitações das máquinas, é possível, hoje, a construção de sistemas especialistas com alto grau de desempenho, dependendo da complexidade de sua estrutura e do grau de abrangência desejado.

no estilo SEENTÃO..., com a possibilidade de inclusão de conectivos lógicos

A arquitetura mais comum de sistemas especialistas é a que envolve regras de produção (production rules). Essas regras são simplesmente um conjunto de condições relacionando os atributos no escopo do conhecimento e o uso de probabilidades, como vemos no exemplo a seguir:

SE carne = vermelha E cor preferida = tinto OUtemperatura = ambiente ENTÃO melhor vinho = exemplo CNF 70;

Um sistema de bom tamanho tem em torno de centena de regras (considerando aqueles que utilizam regras). Visando uma maior viabilidade econômica na implementação de um sistema especialista, e considerando-se que diversos sistemas compartilham uma máquina de inferência e outras características comuns de ambiente, foram criadas ferramentas, shells, aptas a realizar muito do trabalho necessário para transpor um sistema especialista para um computador. Essas ferramentas permitem que o criador do sistema preocupe-se somente com a representação do conhecimento do especialistas, deixando para a shell a tarefa de interpretar o conhecimento representado e executá-lo em uma máquina, além de permitir depurações e explicações de como o computador chegou àquela(s) conclusão(ões). A principal função de uma shell é simplificar ao máximo o trabalho de implementação de um sistema especialista e permitir seu uso por qualquer pessoa sem conhecimentos de informática.

Capítulo I - Planejando um sistema especialista 4

5Expert SINTA

O Expert SINTA é uma ferramenta computacional que utiliza técnicas de

Inteligência Artificial para geração automática de sistemas especialistas. Esta ferramenta utiliza um modelo de representação do conhecimento baseado em regras de produção e probabilidades, tendo como objetivo principal simplificar o trabalho de implementação de sistemas especialistas através do uso de uma máquina de inferência compartilhada, da construção automática de telas e menus, do tratamento probabilístico das regras de produção e da utilização de explicações sensíveis ao contexto da base de conhecimento modelada. Um sistema especialista baseado em tal tipo de modelo é bastante útil em problemas de classificação. O usuário responde a uma sequência de menus, e o sistema encarrega-se-á de fornecer respostas que se encaixem no quadro apontado pelo usuário. Como exemplos, temos sistemas de diagnósticos médicos e configuração de redes de computadores.

Entre outras características inerentes ao Expert SINTA, temos:

•utilização do encadeamento para trás (backward chaining); •utilização de fatores de confiança;

•ferramentas de depuração;

•possibilidade de incluir ajudas on-line para cada base.

O Expert SINTA procura ser uma ferramenta de criação geral. Dúvidas e sugestões podem ser enviadas ao serviço de suporte:

Laboratório de Inteligência Artificial - LIA

E-mails: bezerra@lia.ufc.br jnando@lia.ufc.br helano@lia.ufc.br adm@lia.ufc.br

Universidade Federal do Ceará - UFC

Capítulo I - Implementando o sistema 6 Capítulo I - Planejando um sistema especialista

Como se deve planejar um sistema especialista no Expert SINTA, algumas definições importantes da área e como entender o funcionamento de um sistema construído.

Capítulo I - Implementando o sistema 6

Esse capítulo procura trazer informações básicas sobre a idéia por trás dos sistemas especialistas e alguns conceitos da área de Inteligência Artificial. Também é explicado o funcionamento interno do Expert SINTA, o modo como representa o conhecimento e o uso de probabilidades na sua máquina de inferência. Aqueles que já estão familiarizados aos assuntos abordados a seguir podem examinar rapidamente o seu conteúdo. Os iniciantes deverão dispensar um pouco mais de tempo.

1.1 Arquitetura de um sistema especialista no Expert SINTA

Os sistemas especialistas (SE) gerados no Expert SINTA seguem a arquitetura abaixo:

Figura 1.1 - Arquitetura simplificada do Expert SINTA onde:

•base de conhecimentos representa a informação (fatos e regras) que um especialista utiliza, representada computacionalmente;

•editor de bases é o meio pelo qual a shell permite a implementação das bases desejadas;

•máquina de inferência é a parte do SE responsável pelas deduções sobre a base de conhecimentos;

•banco de dados global são as evidências apontadas pelo usuário do sistema especialista durante uma consulta.

O objetivo do Expert SINTA é simplificar ao máximo as etapas de criação de um SE completo. Para tanto, já oferece uma máquina de inferência básica, fundamentada no encadeamento para trás (backward chaining).

Capítulo I - Planejando um sistema especialista 8

O encadeamento para trás destaca-se em problemas nos quais há um grande número de conclusões que podem ser atingidas, mas o número de meios pelos quais elas podem ser alcançadas não é grande (um sistema de regras de alto grau de fan out), e em problemas nos quais não se pode reunir um número aceitável de fatos antes de iniciar-se a busca por respostas. O encadeamento para trás também é mais intuitivo para o desenvolvedor, pois é fundamentada na recursão, um meio elegante e racional de programação, para onde a própria Programação em Lógica se direcionou. Em nenhum momento, porém, deixa-se de reconhecer que o encadeamento para frente (foreward chaining) possui vantagens em determinadas ocasiões. É possível, entretanto, simular o encadeamento para frente, como será visto no capítulo I, Implementando o sistema.

1.2 Utilizando regras de produção

1.2.1 Visão geral

As regras de produção são populares por possuírem as seguintes vantagens:

•Modularidade: cada regra, por si mesma, pode ser considerada como uma peça de conhecimento independente;

•Facilidade de edição (uma conseqüência da modularidade): novas regras podem ser acrescentadas e antigas podem ser modificadas com relativa independência;

•Transparência do sistema: garante maior legibilidade da base de conhecimentos.

Portanto, é preciso ter em mente que a modularidade de um sistema baseado nessa arquitetura permite a construção passo-a-passo da base de conhecimentos, ou seja, é possível realizar vários testes com apenas um subconjunto de regras concluído. Obviamente, sabe-se que menos regras implicam geralmente em um menor número de casos abrangidos.

1.2.2 As regras no Expert SINTA

Vejamos o seguinte exemplo (extraído da base SECAJU, um exemplo que acompanha o Expert SINTA):

SEgalerias nos ramos ou inflorescências OUinflorescências = murchas ou secas Ebrotações novas murchas Eorifícios laterais nos ramos ou inflorescências ENTÃOpraga = broca das pontas [90%]

Figura 1.2 - Regra de Produção

Denomina-se os conseqüentes de uma regra como as cabeças da regra e os antecedentes, caudas. Esta notação é proveniente da linguagem PROLOG, na qual as conclusões encabeçam as cláusulas.

Para o projetista do conhecimento que cria bases utilizando o Expert SINTA, o seguinte critério para definições de assertivas deve ser seguido:

( I ). A estrutura de cada cauda (premissa) deve obedecer ao seguinte modelo:

<conectivo> <atributo> <operador> <valor> onde:

•conectivo é um dos seguintes elementos utilizados na lógica clássica: NÃO, E, OU.

Sua função é unir a sentença ao conjunto de premissas que formam a seção de antecedentes de uma regra.

•atributo é uma variável capaz de assumir uma ou múltiplas instanciações no decorrer da consulta à base de conhecimentos. Cabe ao desenvolvedor definir o tipo de atributo. Um atributo é uma entidade totalmente abstrata, capaz de armazenar listas de valores cujo significado depende do contexto da base. Por exemplo, um atributo doença, no SECAJU, é capaz de ser instanciado a qualquer um ou vários elementos da lista de valores pré-definida [mofo preto, oidio, antracnose]. Números também podem ser atribuídos a variáveis;

•operador é um elo de ligação entre o atributo e o valor da premissa que define o tipo de comparação a ser realizada. São operadores relacionais: =, >, <=, <>, entre outros;

•valor é um item de uma lista a qual foi previamente criada e relacionada a um atributo. Como veremos posteriormente, a interface visual do Expert SINTA foi idealizada de modo a minimizar o trabalho do responsável pela implementação da base de conhecimentos. Para tanto, o Expert SINTA exige que os atributos sejam definidos antes de criarmos uma regra que o utilize. No momento da criação de um atributo, também é possível que seja definida uma lista de valores que constituirá o universo ao qual suas instanciações devem necessariamente pertencer. As listas criadas podem ser utilizadas para construção de menus, caso o sistema especialista necessite efetuar uma pergunta ao usuário referente àquele determinado atributo. Um valor também pode ser um número, caso o atributo o permita.

premissas da regra conclusões

Capítulo I - Planejando um sistema especialista 10

( I ). A estrutura de cada cabeça (conclusão) deve obedecer ao seguinte modelo: <atributo>=<valor><grau de confiança> onde:

•atributo eqüivale ao mesmo atributo usado em caudas;

•“=” é um operador de atribuição e não de igualdade. Ou seja, o atributo, nas cabeças de regra, é sempre instanciado a um valor. Dependendo se a variável pode ou não acumular múltiplas instanciações, o novo valor substituíra o antigo ou será empilhado com os demais.

•valor eqüivale ao mesmo valor utilizado em caudas;

•grau de confiança é uma porcentagem indicando a confiabilidade daquela conclusão específica da regra. O grau de confiança varia de 0% a 100%.

Veja a seção 1.4 para maiores detalhes sobre graus de confiança.

1.3 Acompanhando a execução de um sistema

1.3.1 Conhecimento procedural x conhecimento declarativo

Quando uma pessoa tem conhecimento de algum fato, certamente ela poderá extrair tudo o que souber sobre aquele fato quando bem entender. Porém, na Inteligência Artificial, existe um problema a mais quanto ao uso do conhecimento.

Supõe-se que o conhecimento por si só já é o suficiente para a resolução de problemas. Essa é a idéia por trás do conhecimento declarativo: não há preocupações quanto ao seu uso, somente quanto à sua posse e especificação, e ela já garantirá o alcance dos objetivos desejados.

Porém, a realidade é bem mais problemática. Um computador não é capaz de decidir qual a próxima informação que ele utilizará para o desenvolvimento de uma atividade. Faltam às máquinas um modo menos metódico e linear de ação. É necessário que especifiquemos uma estratégia de uso do seu “saber”. Mas, qual é o problema, quando a máquina possui o potencial necessário? Vejamos um exemplo:

Todos nós sabemos calcular o fatorial de um número. O fatorial de zero é um, e o fatorial dos demais números positivos é simplesmente ele multiplicado pelo fatorial do seu antecessor (como quando dizemos que o fatorial de 5 é 5 vezes o fatorial de 4). Ao colocarmos essa representação no computador, podemos representar simbolicamente por

Fatorial (n) = n x Fatorial(n - 1) Ah, e é claro: Fatorial(0) = 1

O conhecimento está aí: agora devemos ditar ao computador o meio pelo qual ele utilizará tais afirmativas. Uma estratégia bastante comum é simplesmente percorrer as informações na ordem: inicialmente, a primeira; depois, se necessário a seguinte, e assim vai. Mas, se desejarmos calcular o prosaico fatorial de 2? Para a máquina, fatorial(2) = 2 x fatorial(1). E quanto é o fatorial de 1? Nesse caso, devemos voltar à primeira informação de como se calcula o fatorial, Fatorial (n) = n x Fatorial(n - 1). Assim chegamos que fatorial(1) é 1 vezes fatorial de zero. E o fatorial de zero? Observe que, como temos um mecanismo fixo de extração de dados, não podemos avaliar a segunda informação enquanto não terminarmos a primeira. Assim, simplesmente o computador calcularia que o fatorial de zero é zero vezes o fatorial de menos um! E continuaria eternamente com essa regra.

Esse tipo de conhecimento que depende de uma regra de extração chamamos de conhecimento procedural. Nota-se que, se simplesmente invertêssemos a ordem das informações, chegaríamos a um resultado (sempre antes de calcular um fatorial de um número, a máquina verificaria se esse número é zero)! Por isso, o uso do conhecimento é uma questão maior que simplesmente uma descrição do saber.

1.3.2 O método de extração procedural de conhecimento do Expert SINTA

O Expert SINTA utiliza o encadeamento para trás, o modo mais comum de utilização de um sistema especialista. O projetista deve incluir na definição da base quais os atributos que devem ser encontrados (ou seja, os objetivos - goals - do sistema especialista). A máquina de inferência encarrega-se de encontrar uma atribuição para o atributo desejado nas conclusões das regras (após o ENTÃO...). Obviamente, para que a regra seja aprovada, suas premissas devem ser satisfeitas, obrigando à máquina a encontrar os atributos das premissas para que possam ser julgadas, acionando um encadeamento recursivo. Caso o atributo procurado não seja encontrado em nenhuma conclusão de regra, uma pergunta direta é feita ao usuário.

1.3.3 Exemplo de encadeamento para trás

Sejam as seguintes regras um sistema especialista para “decidir se devo ou não ir à praia amanhã”.

REGRA 1 SE amanhã pode chover = Não Etenho dinheiro suficiente = Sim Etenho tempo suficiente = Sim ENTÃO devo ir à praia = Sim

REGRA 2 SE amanhã pode chover = Sim

Capítulo I - Planejando um sistema especialista 12

OUtenho dinheiro suficiente = Não OUtenho tempo suficiente = Não ENTÃO devo ir à praia = Não

REGRA 3 SEo serviço de meteorologia disse que vai chover amanhã = Sim ENTÃOamanhã pode chover = Não

REGRA 4 SEnão vou sair hoje = Sim Enenhuma emergência ocorrer = Sim ENTÃOtenho dinheiro suficiente = Sim

REGRA 5 SEminha namorada ligar = Sim ENTÃOnão vou sair hoje = Não

REGRA 6 SEmeu orientador passar trabalho extra = Sim ENTÃOtenho tempo suficiente = Não

Obs.: Note que as regras acima já estão na sintaxe de regras aceita pelo Expert

SINTA, o que demonstra a sua facilidade de entendimento. Os valores atribuídos não precisam ser somente Sim e Não. Veja o capítulo I, Implementando o sistema, para maiores explicações.

(Parte 1 de 5)

Comentários