Você está na página 1de 53

LIA Laboratrio de Inteligncia Artificial

http://www.lia.ufc.br

Expert SINTA
manual do usurio

verso 1.1

Uma ferramenta visual para criao de sistemas especialistas

ndice
BEM-VINDO AO EXPERT SINTA.....................................................................4 CAPTULO I - PLANEJANDO UM SISTEMA ESPECIALISTA........................6
1.1 Arquitetura de um sistema especialista no Expert SINTA............................................................7 1.2 Utilizando regras de produo.........................................................................................................8 1.2.1 Viso geral...................................................................................................................................8 1.2.2 As regras no Expert SINTA........................................................................................................8 1.3 Acompanhando a execuo de um sistema....................................................................................10 1.3.1 Conhecimento procedural x conhecimento declarativo............................................................10 1.3.2 O mtodo de extrao procedural de conhecimento do Expert SINTA....................................11 1.3.3 Exemplo de encadeamento para trs.........................................................................................11 1.3.4 Variveis univaloradas x variveis multivaloradas...................................................................13 1.3.5 Leitura adicional: conhecimento monotnico x conhecimento no-monotnico.....................13 1.4.1 Viso geral.................................................................................................................................14 1.4.2 O clculo de probabilidades no Expert SINTA.........................................................................15 1.5 Lidando com o desconhecido..........................................................................................................17 1.6 Sumrio.............................................................................................................................................18

CAPTULO II - IMPLEMENTANDO O SISTEMA............................................19


2.1 Gerenciando bases...........................................................................................................................20 2.2 A janela Knowledge-in-a-box (KIB)..........................................................................................20 2.3 Criando variveis.............................................................................................................................21 2.4 Definindo o(s) objetivo(s).................................................................................................................22 2.5 Trabalhando com regras.................................................................................................................24 2.6 Definindo interface com o usurio.................................................................................................27 2.7 Informaes adicionais sobre a base..............................................................................................29 2.8 Opes...............................................................................................................................................31 2.9 Criando frmulas.............................................................................................................................34 2.10 Sumrio...........................................................................................................................................35

CAPTULO III - CONSULTANDO O SISTEMA ESPECIALISTA...................36


3.1 Conceitos rpidos.............................................................................................................................37 3.2 Guia visual de operaes.................................................................................................................37

3.3 A consulta..........................................................................................................................................39 3.4 As janelas de acompanhamento......................................................................................................41 3.5 Compreendendo os resultados atingidos........................................................................................43 3.6 Sumrio.............................................................................................................................................47

AGRADECIMENTOS.......................................................................................48 APNDICE A - SISTEMA DE DIAGNSTICO DE PRAGAS E DOENAS DO CAJUEIRO (SECAJU).....................................................................................49

Captulo I - Planejando um sistema especialista

Bem-Vindo ao Expert SINTA


O que so sistemas especialistas e o que o Expert SINTA capaz de fazer por voc.

Sistemas especialistas so programas de computador que procuram atingir solues de determinados problemas do mesmo modo que especialistas humanos, se estiverem sob as mesmas condies. Apesar das limitaes das mquinas, possvel, hoje, a construo de sistemas especialistas com alto grau de desempenho, dependendo da complexidade de sua estrutura e do grau de abrangncia desejado. A arquitetura mais comum de sistemas especialistas a que envolve regras de produo (production rules). Essas regras so simplesmente um conjunto de condies no estilo SE... ENTO..., com a possibilidade de incluso de conectivos lgicos 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 OU temperatura = ambiente ENTO 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 econmica na implementao de um sistema especialista, e considerando-se que diversos sistemas compartilham uma mquina de inferncia e outras caractersticas comuns de ambiente, foram criadas ferramentas, shells, aptas a realizar muito do trabalho necessrio para transpor um sistema especialista para um computador. Essas ferramentas permitem que o criador do sistema preocupe-se somente com a representao do conhecimento do especialistas, deixando para a shell a tarefa de interpretar o conhecimento representado e execut-lo em uma mquina, alm de permitir depuraes e explicaes de como o computador chegou quela(s) concluso(es). A principal funo de uma shell simplificar ao mximo o trabalho de implementao de um sistema especialista e permitir seu uso por qualquer pessoa sem conhecimentos de informtica.
Captulo I - Planejando um sistema especialista 4

Expert SINTA

O Expert SINTA uma ferramenta computacional que utiliza tcnicas de Inteligncia Artificial para gerao automtica de sistemas especialistas. Esta ferramenta utiliza um modelo de representao do conhecimento baseado em regras de produo e probabilidades, tendo como objetivo principal simplificar o trabalho de implementao de sistemas especialistas atravs do uso de uma mquina de inferncia compartilhada, da construo automtica de telas e menus, do tratamento probabilstico das regras de produo e da utilizao de explicaes sensveis ao contexto da base de conhecimento modelada. Um sistema especialista baseado em tal tipo de modelo bastante til em problemas de classificao. O usurio responde a uma sequncia de menus, e o sistema encarrega-se- de fornecer respostas que se encaixem no quadro apontado pelo usurio. Como exemplos, temos sistemas de diagnsticos mdicos e configurao de redes de computadores. Entre outras caractersticas inerentes ao Expert SINTA, temos: utilizao do encadeamento para trs (backward chaining); utilizao de fatores de confiana; ferramentas de depurao; possibilidade de incluir ajudas on-line para cada base.

O Expert SINTA procura ser uma ferramenta de criao geral. Dvidas e sugestes podem ser enviadas ao servio de suporte:

Laboratrio de Inteligncia 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

Captulo II - Implementando o sistema

Captulo I - Planejando um sistema especialista


Como se deve planejar um sistema especialista no Expert SINTA, algumas definies importantes da rea e como entender o funcionamento de um sistema construdo.

Esse captulo procura trazer informaes bsicas sobre a idia por trs dos sistemas especialistas e alguns conceitos da rea de Inteligncia Artificial. Tambm explicado o funcionamento interno do Expert SINTA, o modo como representa o conhecimento e o uso de probabilidades na sua mquina de inferncia. Aqueles que j esto familiarizados aos assuntos abordados a seguir podem examinar rapidamente o seu contedo. Os iniciantes devero dispensar um pouco mais de tempo.

Captulo II - Implementando o sistema

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 informao (fatos e regras) que um especialista utiliza, representada computacionalmente; editor de bases o meio pelo qual a shell permite a implementao das bases desejadas; mquina de inferncia a parte do SE responsvel pelas dedues sobre a base de conhecimentos; banco de dados global so as evidncias apontadas pelo usurio do sistema especialista durante uma consulta. O objetivo do Expert SINTA simplificar ao mximo as etapas de criao de um SE completo. Para tanto, j oferece uma mquina de inferncia bsica, fundamentada no encadeamento para trs (backward chaining).

Captulo I - Planejando um sistema especialista

O encadeamento para trs destaca-se em problemas nos quais h um grande nmero de concluses que podem ser atingidas, mas o nmero de meios pelos quais elas podem ser alcanadas no grande (um sistema de regras de alto grau de fan out), e em problemas nos quais no se pode reunir um nmero aceitvel de fatos antes de iniciar-se a busca por respostas. O encadeamento para trs tambm mais intuitivo para o desenvolvedor, pois fundamentada na recurso, um meio elegante e racional de programao, para onde a prpria Programao em Lgica se direcionou. Em nenhum momento, porm, deixa-se de reconhecer que o encadeamento para frente (foreward chaining) possui vantagens em determinadas ocasies. possvel, entretanto, simular o encadeamento para frente, como ser visto no captulo II, Implementando o sistema.

1.2 Utilizando regras de produo


1.2.1 Viso geral
As regras de produo so populares por possurem as seguintes vantagens: Modularidade: cada regra, por si mesma, pode ser considerada como uma pea de conhecimento independente; Facilidade de edio (uma conseqncia da modularidade): novas regras podem ser acrescentadas e antigas podem ser modificadas com relativa independncia; Transparncia do sistema: conhecimentos. garante maior legibilidade da base de

Portanto, preciso ter em mente que a modularidade de um sistema baseado nessa arquitetura permite a construo passo-a-passo da base de conhecimentos, ou seja, possvel realizar vrios testes com apenas um subconjunto de regras concludo. Obviamente, sabe-se que menos regras implicam geralmente em um menor nmero de casos abrangidos.

1.2.2 As regras no Expert SINTA


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

SE OU E E ENTO

galerias nos ramos ou inflorescncias inflorescncias = murchas ou secas brotaes novas murchas orifcios laterais nos ramos ou inflorescncias praga = broca das pontas [90%] Figura 1.2 - Regra de Produo

premissas da regra concluses

Denomina-se os conseqentes de uma regra como as cabeas da regra e os antecedentes, caudas. Esta notao proveniente da linguagem PROLOG, na qual as concluses encabeam as clusulas. Para o projetista do conhecimento que cria bases utilizando o Expert SINTA, o seguinte critrio para definies de assertivas deve ser seguido: ( I ). A estrutura de cada cauda (premissa) deve obedecer ao seguinte modelo: <conectivo> onde: conectivo um dos seguintes elementos utilizados na lgica clssica: NO, E, OU. Sua funo unir a sentena ao conjunto de premissas que formam a seo de antecedentes de uma regra. atributo uma varivel capaz de assumir uma ou mltiplas instanciaes 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 doena, no SECAJU, capaz de ser instanciado a qualquer um ou vrios elementos da lista de valores pr-definida [ mofo preto, oidio, antracnose]. Nmeros tambm podem ser atribudos a variveis; operador um elo de ligao entre o atributo e o valor da premissa que define o tipo de comparao a ser realizada. So 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 responsvel pela implementao 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 criao de um atributo, tambm possvel que seja definida uma lista de valores que constituir o universo ao qual suas instanciaes devem necessariamente pertencer. As listas criadas podem ser utilizadas para construo de menus, caso o sistema especialista necessite efetuar uma pergunta ao usurio referente quele determinado atributo. Um valor tambm pode ser um nmero, caso o atributo o permita. <atributo> <operador> <valor>

Captulo I - Planejando um sistema especialista

10

( II ). A estrutura de cada cabea (concluso) deve obedecer ao seguinte modelo: <atributo> onde: atributo eqivale ao mesmo atributo usado em caudas; = um operador de atribuio e no de igualdade. Ou seja, o atributo, nas cabeas de regra, sempre instanciado a um valor. Dependendo se a varivel pode ou no acumular mltiplas instanciaes, o novo valor substitura o antigo ou ser empilhado com os demais. valor eqivale ao mesmo valor utilizado em caudas; grau de confiana uma porcentagem indicando a confiabilidade daquela concluso especfica da regra. O grau de confiana varia de 0% a 100%. Veja a seo 1.4 para maiores detalhes sobre graus de confiana. = <valor> <grau de confiana>

1.3 Acompanhando a execuo 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. Porm, na Inteligncia Artificial, existe um problema a mais quanto ao uso do conhecimento. Supe-se que o conhecimento por si s j o suficiente para a resoluo de problemas. Essa a idia por trs do conhecimento declarativo: no h preocupaes quanto ao seu uso, somente quanto sua posse e especificao, e ela j garantir o alcance dos objetivos desejados. Porm, a realidade bem mais problemtica. Um computador no capaz de decidir qual a prxima informao que ele utilizar para o desenvolvimento de uma atividade. Faltam s mquinas um modo menos metdico e linear de ao. necessrio que especifiquemos uma estratgia de uso do seu saber. Mas, qual o problema, quando a mquina possui o potencial necessrio? Vejamos um exemplo: Todos ns sabemos calcular o fatorial de um nmero. O fatorial de zero um, e o fatorial dos demais nmeros 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 representao 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 estratgia bastante comum simplesmente percorrer as informaes na ordem: inicialmente, a primeira; depois, se necessrio a seguinte, e assim vai. Mas, se desejarmos calcular o prosaico fatorial de 2? Para a mquina, fatorial(2) = 2 x fatorial(1). E quanto o fatorial de 1? Nesse caso, devemos voltar primeira informao 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 extrao de dados, no podemos avaliar a segunda informao enquanto no 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 extrao chamamos de conhecimento procedural. Nota-se que, se simplesmente invertssemos a ordem das informaes, chegaramos a um resultado (sempre antes de calcular um fatorial de um nmero, a mquina verificaria se esse nmero zero)! Por isso, o uso do conhecimento uma questo maior que simplesmente uma descrio do saber.

1.3.2 O mtodo de extrao procedural de conhecimento do Expert SINTA


O Expert SINTA utiliza o encadeamento para trs, o modo mais comum de utilizao de um sistema especialista. O projetista deve incluir na definio da base quais os atributos que devem ser encontrados (ou seja, os objetivos - goals - do sistema especialista). A mquina de inferncia encarrega-se de encontrar uma atribuio para o atributo desejado nas concluses das regras (aps o ENTO...). Obviamente, para que a regra seja aprovada, suas premissas devem ser satisfeitas, obrigando mquina a encontrar os atributos das premissas para que possam ser julgadas, acionando um encadeamento recursivo. Caso o atributo procurado no seja encontrado em nenhuma concluso de regra, uma pergunta direta feita ao usurio.

1.3.3 Exemplo de encadeamento para trs


Sejam as seguintes regras um sistema especialista para decidir se devo ou no ir praia amanh. REGRA 1 SE amanh pode chover = No E tenho dinheiro suficiente = Sim E tenho tempo suficiente = Sim ENTO devo ir praia = Sim REGRA 2 SE amanh pode chover = Sim

Captulo I - Planejando um sistema especialista

12

OU tenho dinheiro suficiente = No OU tenho tempo suficiente = No ENTO devo ir praia = No REGRA 3 SE o servio de meteorologia disse que vai chover amanh = Sim ENTO amanh pode chover = No REGRA 4 SE no vou sair hoje = Sim E nenhuma emergncia ocorrer = Sim ENTO tenho dinheiro suficiente = Sim REGRA 5 SE minha namorada ligar = Sim ENTO no vou sair hoje = No REGRA 6 SE meu orientador passar trabalho extra = Sim ENTO tenho tempo suficiente = No Obs.: Note que as regras acima j esto na sintaxe de regras aceita pelo Expert SINTA, o que demonstra a sua facilidade de entendimento. Os valores atribudos no precisam ser somente Sim e No. Veja o captulo II, Implementando o sistema, para maiores explicaes. Examinando o pequeno sistema especialista acima, claramente distinguimos que o seu objetivo determinar o valor da varivel devo ir praia. Ento, iniciamos a busca por ela. O Expert SINTA procura as regras nas quais a varivel sendo procurada no momento pode receber um valor se a regra for aceita (ou seja, quando ela aparece aps o ENTO). Em seguida, a mquina de inferncia verifica se a regra vale ou no. No exemplo dado, o sistema avalia a regra 1 para poder determinar se devo ir praia ou no. Mas, para isso, temos que determinar se todas as premissas (amanh pode chover = No, tenho dinheiro suficiente = Sim, tenho tempo suficiente = Sim) so verdadeiras. Para descobrir se amanh pode chover, tenho que repetir o processo, avaliando a regra 3. Agora tenho que saber se a meteorologia disse sobre a possibilidade de chuva amanh. Como no existe nenhuma regra que possa concluir o que a meteorologia disse, o Expert SINTA realiza uma pergunta ao usurio, do tipo A meteorologia afirmou se amanh pode chover (Sim/No)? (claro, o computador no ir criar uma frase, essa uma das tarefas do criador da base de conhecimento - veja o captulo II, Implementando o sistema, para maiores detalhes). Se a meteorologia disser que amanh vai chover, ento primeira premissa da regra 1 passar no teste (quem confia nos servios meteorolgicos?). Avaliando a segunda premissa e repetindo o processo do encadeamento para trs, chegamos regra 4. Mas, para descobrir se eu vou sair hoje ou no, preciso recorrer regra 5 (observa-se a forte idia de recurso no backward chaining). A regra 5 leva a uma pergunta, pela qual concluiremos se tal regra vai ser aprovada. Se realmente for aprovada, a primeira premissa da regra 4 verdadeira, fazendo com que verifiquemos agora a segunda premissa. Quando todas as premissas da primeira

regra forem avaliadas, podemos determinar se a regra 1 foi aprovada ou no. Caso contrrio, passamos para a prxima regra que possa concluir um valor para a varivel devo ir praia.

1.3.4 Variveis univaloradas x variveis multivaloradas


Outra questo deve ser levada em conta durante o acompanhamento da execuo de um sistema especialista. Uma nica varivel pode receber vrios valores em uma nica consulta ao sistema. muito comum, por exemplo, em sistemas de diagnstico mdico, onde o paciente pode apresentar mais de uma doena. Portanto, importante saber lidar com variveis que podem ter apenas uma instanciao (univalorada) ou mltiplas (multivaloradas). Para saber como indicar ao Expert SINTA quais so as variveis multivaloradas e univaloradas, consulte o captulo II, Implementando o sistema. Quando a mquina de inferncia est atrs de encontrar instanciaes para uma varivel univalorada, ela ir procurar at encontrar um valor ou at esgotar todas as possibilidades da base de conhecimento. Se, por algum motivo, durante a busca de uma outra varivel, uma varivel univalorada receber um valor quando j possua outro, esse valor antigo ser descartado e o novo vigorar. A busca de valores para variveis multivaloradas prossegue at que toda a base de conhecimento seja explorada. Os valores permanecem acumulados. nessa hora que preciso ter cuidado com contradies presentes na base. O Expert SINTA, na presente verso, no faz verificaes de inconsistncias lgicas. Obs.: variveis numricas so tratadas como univaloradas, sempre.

1.3.5 Leitura adicional: conhecimento monotnico x conhecimento no-monotnico


Digamos que voc estacionou o seu carro em frente ao local de trabalho. Evidentemente, ao retornar, voc saber o local onde deixou o seu carro e saber que o utilizar para voltar para casa. Mas, em um intervalo de trabalho, algum lhe diz que seu carro foi roubado! Agora voc sabe que no o encontrar onde o tinha deixado. No dia-a-dia, enfrentamos situaes que modificam as nossas certezas. O que antes tnhamos por certo agora estamos convictos que no so mais realidade. Isso porque ns pensamos em um tipo de lgica no-monotnica, ou seja, podemos receber informaes que contrarie as que j possumos. No tratamento tradicional de informaes da Inteligncia Artificial, o conhecimento monotnico, ou seja, aquele que ao acrescentarmos novas informaes nunca fica contraditrio, inconsistente, o comumente usado. O Expert SINTA trata o conhecimento de forma essencialmente monotnica.

1.4 Fatores de confiana

Captulo I - Planejando um sistema especialista

14

1.4.1 Viso geral


No exemplo dado na seo 1.3.3, as variveis recebiam apenas valores determinsticos (sim e no). Porm, comum que no queiramos determinar com exatido o valor que cada varivel pode receber. Sabemos que o conhecimento humano no determinstico. No h especialista que sempre se encontre em condies de afirmar determinada concluso com certeza absoluta. Graus de confiana so freqentemente atribudos s suas respostas, principalmente quando existe mais de uma. Este, sem dvida, um dos mais fortes pontos crticos na elaborao de uma representao computacional do saber humano. Vejamos a dificuldade em representar a confiabilidade das informaes: Especialistas humanos no se sentem confortveis em pensar em termos de probabilidade. Suas estimativas no precisam corresponder quelas definidas matematicamente; Tratamentos rigorosamente matemticos de probabilidade utilizam informaes nem sempre disponveis ou simplificaes que no so claramente justificveis em aplicaes prticas. Na verdade, existem duas correntes de pensamento: aquela que utiliza frmulas estatsticas rigorosas, com teoria das probabilidades, e aquela que utiliza uma abordagem da teoria das possibilidades sobre os fatores de certeza, ou seja, mais generalizada e sem uma base matemtica forte. O Expert SINTA utiliza atualmente uma abordagem possibilista.

1.4.2 O clculo de probabilidades no Expert SINTA


Vejamos como se atribuem fatores de confiana na presente verso do Expert SINTA: Caso 1: Quando queremos saber o valor final atribudo s variveis na concluso de um regra. Seja c1 o grau de confiana atribudo ao resultado final da premissa de uma regra r. Na concluso de r, devemos ter expresses como var = value CNF c 2, onde var uma varivel, value um termo qualquer que pode ser atribudo a uma varivel, c2 um real pertencente ao intervalo [0; 100] que representa o grau de confiana da atribuio. Mas, c2 apenas uma referncia, pois o valor final dependente do resultado da premissa. Assim sendo, realizar-se- a operao var = value CNF c1. c2. Exemplo de aplicao: SE ENTO fumagina = sim suspeita de praga = mosca branca, grau de confiana (CNF) 70%.

Assim sendo, supondo que o grau de confiana da igualdade fumagina = sim 80%, teremos que varivel suspeita de praga ser atribudo o valor mosca branca, com o respectivo grau de confiana 0.80 * 0.70 = 0.56 = 56%. Caso 2: Clculo do grau de confiana com o operador E. Se possumos duas igualdades var1 = value1 e var2 = value2, com os respectivos graus de confiana c1 e c2, temos que a sentena var 1 = value1 E var2 = value2 retornar como valor de confiana c1 x c2. Exemplo de aplicao: SE estados das folhas = esfarelam facilmente E presena de manchas irregulares = sim... Se o grau de confiana da igualdade estados das folhas = esfarelam facilmente 80% e o grau de confiana da igualdade presena de manchas irregulares = sim 70%, temos que a conjuno das duas sentenas retornar um valor CNF de 56%, pois esse o produto dos dois valores. Caso 3: Clculo do grau de confiana com o operador OU. Se possumos duas igualdades var1 = value1 e var2 = value2, com os respectivos graus de confiana c1 e c2, temos que a sentena var1 = value1 OU var2 = value2 retornar como valor de confiana c1 + c2 - c1 x c2.

Captulo I - Planejando um sistema especialista

16

Exemplo de aplicao: SE besouros vermelhos = sim OU larvas marrons = sim ... Se o grau de confiana da igualdade besouros vermelhos = sim 80% e o grau de confiana da igualdade larvas marrons = sim 70%, temos que a disjuno das duas sentenas retornar um valor CNF de 0.70 + 0.80 - 0.70 * 0.80 = 1.50 - 0.56 = 0.94 = 94%. Caso 4: Quando uma varivel recebe duas vezes o mesmo valor em pontos diferentes da consulta. Em momentos diferentes de uma consulta, uma mesma varivel var pode receber o mesmo valor v, sendo que at penltima instanciao ela possua grau de confiana c1, e a ltima atribuiu um CNF c2. Sendo assim, temos que o valor final de confiana para var = v ser dado pela frmula c a + cn - ca * cn, onde ca representa o grau de confiana antes da ltima mudana e c n o ltimo grau de confiana atribudo. Exemplo de aplicao: A varivel doena possua valor mofo preto com grau de confiana 60%. Aps a aplicao de outras regras chegou-se a uma outra atribuio doena = mofo preto, desta vez com CNF 50%. O clculo se d de maneira semelhante aplicao da regra OU: doena ter como um dos valores mofo preto, com respectivo grau de confiana 0.60 + 0.50 0.60 * 0.50 = 1.10 - 0.30 = 0.80 = 80%. Obs.: O sistema admite 50% como valor mnimo de confiana para que uma igualdade seja considerada verdadeira, mas esse valor pode ser modificado. O intervalo de grau de confiana varia de 0 a 100. Obs2.: Observe que as funes para conjuno e disjuno utilizadas seguem a Teoria dos Possibilidades, no envolvendo nenhum tratamento estatstico mais aprofundado. Obs3.: possvel mudar as frmulas utilizadas. Consulte o captulo II, Implementando o sistema.

1.5 Lidando com o desconhecido


Vamos relembrar o exemplo dado na seo 1.3.3. Se respondermos que o servio de meteorologia disse que amanh VAI chover, ento a regra 3 ir falhar. Mas, observe que isso NO quer dizer que a varivel amanh pode chover ir receber o valor Sim. Muito pelo contrrio, essa varivel no vai ser instanciada, permanecendo inalterada. Portanto, a regra 2 tambm vai falhar, e o sistema simplesmente responder que no conseguiu atingir nenhuma concluso. Quando se projeta um sistema especialista, deve-se levar em conta o maior nmero de possibilidades possvel, para evitar mensagens desagradveis como Nenhum valor encontrado... Alm do uso de graus de confiana para tratamento de incertezas, e da noinstanciao de variveis, o Expert SINTA permite o uso de um valor especial, passvel de ser usado por todas as variveis. o DESCONHECIDO, que representa uma indeterminao total sobre as instanciaes de uma varivel. Este valor pode ser tanto includo nas regras como dado como resposta pelo usurio (consulte o captulo III, Realizando uma consulta com o Expert SINTA).

Captulo I - Planejando um sistema especialista

18

1.6 Sumrio
Neste captulo, vimos: A arquitetura bsica de um sistema especialista construdo com o uso do Expert SINTA; Explicaes sobre regras de produo e encadeamento para trs; Definies de conhecimento procedural, declarativo, monotnico e no-monotnico; O uso de regras no Expert SINTA e explicaes sobre variveis univaloradas e multivaloradas; Exemplo de funcionamento da mquina de inferncia; Tratamento de fatores de confiana e do valor DESCONHECIDO.

Captulo III - Consultando o sistema especialista

19

Captulo II - Implementando o sistema


Com o sistema j definido, deve-se agora transport-lo para o computador utilizando o Expert SINTA.

O Expert SINTA foi criado de modo a permitir ao prprio analista de conhecimento implementar a base desejada. O usurio do Expert SINTA no necessita do menor conhecimento de programao, apenas saber como interagir em ambientes visuais. Uma base de conhecimento no Expert SINTA envolve os seguintes conjuntos de atributos que devem ser indicados pelo projetista da base: Variveis Regras Perguntas Objetivos Informaes adicionais

Quando esses elementos estiverem definidos, j se torna possvel utilizar o sistema especialista.
Captulo III - Consultando o sistema especialista 19

Captulo II - Implementando o sistema

20

2.1 Gerenciando bases


Como padro, O Expert SINTA grava as bases de conhecimento geradas em arquivos *.BCM. Para abrir bases pr-existentes em seus discos, utilize o menu Arquivo|Abrir. Consulte a ajuda do Windows se precisar de maiores informaes de como trabalhar com a caixa de dilogo Abrir Arquivo. Para criar uma base totalmente nova, use o menu Arquivo|Novo. Imediatamente, uma nova base de conhecimento, vazia, ser criada para voc. Finalmente, quando desejar salvar uma base na qual se est trabalhando para posterior uso, utiliza-se o menu Arquivo|Salvar. Quando voc estiver salvando a base pela primeira vez, uma caixa de dilogo aparecer para que seja indicado o nome do arquivo na qual a base ser gravada e a pasta na qual ele ser encontrada. Consulte a ajuda do Windows se precisar de maiores explicaes sobre o uso da caixa de dilogo Salvar Arquivo. A impresso se d atravs do menu Arquivo|Imprimir. Uma caixa de dilogo de configurao de impressoras aparecer. Consulte a ajuda para detalhes de como usar a caixa de dilogo de configurao de impressoras. Muitas das opes dos menus encontram-se tambm na barra de ferramentas, inicialmente presente no topo da rea de trabalho do Expert SINTA. possvel mudar a posio da barra de ferramentas clicando sobre ela e arrastando o mouse.

Opes relativas gerncia de bases.

2.2 A janela Knowledge-in-a-box (KIB)


Clique aqui para criar uma nova regra. Abre a regra que est selecionada na lista ao lado. Exclui a regra que est selecionada na lista ao lado. Chama a janela de edio de variveis. Define os objetivos da base de conhecimento. Chama a janela edio de interface. de Lista de regras: um duplo-clique abre a regra. possvel arrastar o nome da regra at a posio desejada, para alterar a ordem na qual elas aparecem.

Permite a incluso de informaes extras sobre a base. Fecha a base de conhecimento. Somente uma pode estar aberta por vez.

21

Expert SINTA

Essa janela traz todas as opes de edio de base, alm de uma lista com todas as regras presentes at o momento. Tais opes, e outras, encontram-se repetidas na barra de ferramentas, inicialmente presente no topo da rea de trabalho do Expert SINTA.

O p e s re la tiv a s j a n e la K I B .

Deixe o cursor do mouse momentaneamente sobre cada boto para exibir uma descrio breve.

2.3 Criando variveis


Antes de podermos criar regras, necessrio que todas as variveis utilizadas, bem como seus respectivos valores, sejam criados. Atravs desse mecanismo, a base fica organizada, fcil de manter e as regras podem ser criadas visualmente. Vejamos os passos necessrios para criao e edio de variveis e valores: Na janela da base de conhecimentos, clique o boto Variveis; A janela de variveis aberta, e duas caixas de listagem podem ser vistas. A caixa da esquerda representa as variveis j existentes, enquanto da direita, os valores relativos varivel que est atualmente selecionada (clique em determinado item da lista de variveis para exibir os valores correntes); Adicionar variveis simples: basta que pressione o boto Adicionar Varivel e, em seguida, digitemos um valor na caixa de texto Varivel. Ateno: Para confirmarmos o novo valor necessrio que se tecle <ENTER> imediatamente aps a digitao ou que se pressione o pequeno boto direita (o que possui a marca de verificao). Para cancelar a insero, s clicar em qualquer outro controle da janela (incluindo os botes OK e Cancelar, os quais fecham a janela). Adicionar valores um procedimento anlogo, s necessrio que uma varivel esteja selecionada; Para indicar se uma determinada varivel numrica, multivalorada ou univalorada, primeiro selecionamos uma varivel e, em seguida, o tipo desejado entre os botes de opo localizados no canto inferior direito da janela; Variveis numricas no podem ter valores pr-definidos. Nesse caso, a lista de valores passa atuar como lista de intervalo, ou seja, nela exibido o intervalo de valores aceitveis para aquela varivel. Intervalos so includos de maneiras idnticas a valores, mas necessrio obedecer a certas regras:

Captulo II - Implementando o sistema

22

- Os intervalos devem ser da forma a;b ou ;b ou a;, onde a e b representam nmeros reais . Assim sendo a;b representa um nmero entre a e b; ;b um nmero maior ou igual a b; a; um nmero menor ou igual a a; Quando esses - Somente um intervalo pode ser includo por varivel numrica;
Todas as variveis includas aparecero deste lado. Nessa caixa aparecero os valores relacionados quela determinada varivel.

Pressione OK para fechar essa janela e confirmar as alteraes feitas, no para efetuar uma nica alterao. Para isso, use o boto pequeno marcado com um V verde ou a tecla ENTER.

botes esto com a legenda em cinza, porque realmente no possvel utiliz-los. Se desejar utilizlos, verifique o voc est fazendo de diferente para isso ocorrer.

O boto marcado com V confirma alteraes e equivale tecla ENTER. O boto marcado com X cancela alteraes e equivale tecla ESC.

Veja a seo 1.3.4 para entender melhor a diferena entre variveis multi e univaloradas.

Obs1.: Mudar de varivel no numrica para numrica pode implicar perda de valores. Obs2.: Apagar uma varivel ou valor encontrado em uma regra ou mais regras implica que as mesmas tambm devem ser eliminadas. O Expert SINTA efetua uma confirmao antes de elimin-las. Obs3.: Se voc no definir nenhum valor para determinada varivel, o Expert SINTA assume que ela uma varivel lgica, ou seja, que aceita apenas valores Sim e No.

2.4 Definindo o(s) objetivo(s)

23

Expert SINTA

O objetivo de uma consulta a um especialista encontrar a resposta para um determinado problema. Assim tambm o um sistema especialista. A diferena que, aqui, os problemas so representados por variveis. Antes de podermos executar nosso sistema pela primeira vez, preciso que definamos quais so as variveis (chamadas variveis objetivo) que iro controlar o modo como a mquina de inferncia se comporta. Sigamos o seguinte esquema para determinao de objetivos: Na janela de base de conhecimentos, pressionemos o boto Objetivos. Aparecer uma janela com duas listas: a lista das variveis comuns e a das variveis objetivo; Para fazer de uma varivel comum uma varivel objetivo e vice-versa, selecione e varivel desejada e clique no boto correspondente, aquele que aponta para a lista de destino. A lista com uma seta dupla (seja para a esquerda ou para direita) move todos os itens de uma lista para outra. Para mudar a ordem dos elementos da lista de objetivos, clique em um item e arraste-o at a posio desejada.
Lista variveis objetivo. das

Lista das variveis que podem ser utilizadas como objetivos do sistema especialista.

Deixe marcada este caixa para o Expert SINTA mostre em destaque os resultados atingidos do objetivo marcado acima. Para maiores detalhes, veja o captulo III.

Observao: caso o sistema seja posto em funcionamento sem nenhum objetivo definido, nada acontecer (seria como falar com um especialista sem ter nada para descobrir!)

Captulo II - Implementando o sistema

24

Simulando encadeamento para frente


O Expert SINTA trabalha naturalmente com encadeamento para trs, mas possvel manipular a mquina de inferncia de modo a simular encadeamento para frente Para tal, as variveis que se deseja encontrar inicialmente devem ser colocadas na lista de objetivos. Obviamente, como no desejado que uma janela de resultados aparea a cada varivel encontrada, possvel desabilitar essa exibio simplesmente desmarcando a caixa Mostrar resultados relativo varivel desejada na janela de edio de objetivos. Para maiores informaes sobre a janela de exibio de resultados, consulte o captulo III, Consultando o sistema especialista .

2.5 Trabalhando com regras


O Expert SINTA utiliza regras de produo para modelar o conhecimento humano, o que o torna ideal para problemas de seleo, no qual uma determinada soluo deve ser atingida a partir de um conjunto de selees. Para excluir uma regra, selecione-a na janela da base de conhecimentos e pressione o boto Excluir. Para abrir uma regra, selecione-a na janela da base de conhecimentos e pressione o boto Abrir. Para criar uma regra, faa os seguintes passos: Clique o boto Nova Regra, na janela da base de conhecimentos;

Indique a posio da regra (lembre-se que, em conhecimento procedural, a ordem das regras importante). Se desejar, mude sua posio depois.

Se a regra que voc est criando muito parecida com outra, possvel reaproveit-la. No exemplo, a regra 33 ser criada a partir de ligeiras alteraes na regra 28.

Um caixa de dilogo pedir para que voc indique a posio dessa regra em relao s demais (pois a ordem das regras influencia o descobrimento de solues). Selecione a ordem desejada na lista;

25

Expert SINTA

Embora no seja necessrio, definir um nome para uma regra facilita sua identificao posterior.

Tambm possvel mudar a ordem da regra a partir daqui.

aqui que aparecem as sentenas da sua regra. A sentena selecionada ser aquela que sofre-r alteraes.

Cada um desses botes efetua uma operao diferente com a sentena selecionada.

Deseja criar logo a prxima regra? Clique aqui. A regra aberta no momento ser fechada.

SOMENTE pressione esse boto QUANDO FINALIZAR a regra.

Para inserir uma premissa, marque o local na caixa de listagem na qual se desejar inserir a sentena e clique o boto Inserir. Uma outra janela aparecer com vrias listas. Valor: clique na seta
Operador de comparao: estabelece uma relao entre a varivel e o valor (igualdade, diferena, etc.) qual posteriormente ser dado um grau de confiana. ao lado da caixa para exibir uma lista com todos os valores relacionados varivel escolhida ao lado.

Varivel: clique na seta ao lado da caixa para exibir uma lista com as variveis criadas.

Conectivo: escolha o conectivo que ir ligar a sentena de regra s outras sentenas na mesma regra.

Negao: deixe marcada essa caixa para avaliar essa sentena por sua negativa. Equivale inverter os operadores (transformar = em <>, <= em >, etc.)

Aperte aqui para inserir uma nova premissa ou concluso. Voc poder inserir vrias sem necessidade de fechar esta janela, contanto que as premissas/concluses inseridas sejam consecutivas.

Aperte aqui quando terminar de inserir os itens desejados.

A primeira lista indica a varivel a ser utilizada e a ltima o valor com o qual estabelecemos uma relao. tambm possvel identificar o tipo de relao: igualdade (=), diferena (<>), superioridade (> - somente para variveis

Captulo II - Implementando o sistema

26

numricas), entre outras. Caso a premissa no seja a primeira da regra, voc dever indicar o tipo de conectivo (E ou OU) pelo qual a premissa se liga anterior. Para inserir uma concluso, proceda de maneira anloga. escolhendo um item a partir do conectivo ENTO na sua regra. Em concluses, somente o operador de atribuio (=) pode ser utilizado. A ltima lista presente indica o grau de confiana daquela atribuio. Deixar a lista vazia indica uma confiana de 100% (cem por cento).

Para editar uma sentena, selecione-a e clique o boto Alterar (ou d um duplo clique sobre ela). Para eliminar uma sentena, selecione-a e clique o boto Excluir.

Aperte aqui para confirmar a mudana de um item, fechando a janela.

Fecha a janela sem efetuar alteraes.

Observao: tambm possvel visualizar regras em conjunto. Clique no boto Visualizar da janela KIB.

27

Expert SINTA

Como posso acelerar a digitao de regras?


O ambiente do Expert SINTA permite a criao de regras sem grandes esforos. Basta que se sejam seguidas as dicas abaixo: Procure definir a priori todas as variveis antes de iniciar as regras. Mas nada impede que uma regra seja iniciada e novas variveis sejam definidas com a regra aberta. Apenas no esquea de fechar a janela de variveisvars com o boto OK antes de prosseguir; Use as duas mos. Enquanto uma usa o mouse para selecionar um item na listas com as variveis e seus valores, possvel acelerar digitando a primeira ou as primeiras letras que formam o nome de uma varivel ou valor. Assim, as listas iro abrir prximas ao item desejado; Nessa ocasio, tambm possvel utilizar as setas do teclado para cima e para baixo para selecionar um item de uma lista. Digite a primeira ou as primeiras letras de um nome de uma varivel/valor e, em seguida, use a seta para baixo at aparecer o nome desejado. Mesmo em bases grandes, esse um mtodo mais eficaz que digitar todo o nome; Use e abuse dos modelos. Eles existem para diminuir ao mximo seu trabalho. muito comum em sistemas especialistas aparecerem regras derivadas de outras, portanto muito comum tambm ser o uso de modelos; O boto Nova... na janela de edio de regras acelera bastante o processo. Quando voc terminar a digitao de regra e desejar criar uma nova, aperte esse boto para uma nova surgir e a antiga ser fechada, tudo em um passo s;

2.6 Definindo interface com o usurio


Um sistema especialista implementado com o Expert SINTA comunica-se com o usurio final atravs de menus de mltipla escolha (ou escolha simples, se a varivel em questo for univalorada). Estes menus so construdos automaticamente pela shell, mas alguns detalhes devem ser fornecidos pelo criador da base. Os elementos da interface com o usurio so os seguintes:

Captulo II - Implementando o sistema

28

Entrada para grau de confiana: construdo automaticamente. Pergunta realizada sistema usurio. pelo ao

Opes referentes quela varivel. Foram definidas na janela de Variveis.

Indicativo de que a varivel multi ou univalorada. Definido na janela de Variveis. Explicao rpida sobre aquela pergunta.

Por exemplo, a pergunta realizada pela mquina de inferncia deve ser personalizada para que seja inteligvel. Quando o Expert SINTA necessita perguntar o valor de determinada varivel, ele cria uma sentena genrica do tipo Qual o valor de x?, onde x o nome da varivel. Deve-se criar uma sentena mais clara atravs do editor de interface. Para isso, clique no boto Interface da janela KIB. O Expert SINTA permite modificaes em apenas dois itens: perguntas e explicaes rpidas.
Variveis que ainda no possuem perguntas relacionadas. Use esses botes para mandar elementos de uma lista para outra. Variveis que j possuem perguntas.

permitido usar graus de confiana na resposta? Ento, marque esta caixa. Aqui so modificadas as perguntas. As mudanas so acionadas automaticamente.

Explicaes sobre a pergunta, motivo pelo qual feita, entre outras informaes.

29

Expert SINTA

Na parte superior direita da janela, encontra-se uma lista das variveis que j possuem perguntas prontas. Para visualiz-las, clique em alguma. Para modificar a pergunta ou o motivo, simplesmente rescreva o contedo das caixas de texto. As mudanas so automticas. Para eliminar uma pergunta, simplesmente mova o item selecionado para a lista da esquerda, pressionando o boto correspondente; Na lista superior esquerda, aparecem as variveis que ainda no possuem nenhuma pergunta pronta. Para criar uma nova pergunta, selecione a varivel desejada e mova-o para a lista da direita, pressionando o boto correspondente, e digite o contedo das caixa de texto. As mudanas so automticas.

2.7 Informaes adicionais sobre a base


A janela Informaes sobre a Base, exibida a partir do boto Informaes da janela KIB, permite a definio de informaes esclarecedoras sobre a base, indicao dos autores e definio de contextos de ajuda que podem ser vitais para o aproveitamento do sistema especialista. A janela se divide em duas partes: Geral: Aqui, informaes iniciais sobre o sistema so includas, tais como o nome da base, os autores e um texto de abertura. Todo os dados aparecero em uma tela de abertura quando a base colocada em funcionamento. Para permitir a exibio desses dados, deixe marcada a caixa de verificao Exibir tela de abertura, na parte inferior da janela.

Deixe marcada se quiser que uma tela de abertura com essas informaes aparea no incio de cada consulta.

Arquivo de Ajuda: um bom sistema especialista no deve saber somente encontrar respostas, mas tambm fazer o usurio utilizar a resposta com fins prticos. Para isso, o Expert SINTA possibilita a incluso de tpicos de ajuda para os valores possveis de determinados atributos, associando a um arquivo no formato Ajuda do Windows a sua base. Explicaes sobre

Captulo II - Implementando o sistema

30

a criao de arquivos de ajuda fogem ao escopo do presente documento, mas existem diversas documentaes fornecidas por terceiros. O Expert SINTA tambm no distribui o compilador necessrio para a criao do arquivo final. A idia desses textos explicativos no somente ativar uma ajuda online quando o usurio estiver utilizando o sistema, mas ir diretamente ao tpico explicativo de uma resposta, quando o Expert SINTA atinge um determinado objetivo. Para isso, o desenvolvedor deve, na janela Informaes sobre a Base, escolher os valores das variveis-objetivo que iro possuir um nmero de contexto de ajuda. Quando o usurio final ativar a ajuda on-line, ela aparecer diretamente no tpico referente soluo especfica. O desenvolvedor tambm deve incluir o nome do arquivo de ajuda na caixa de texto nome do arquivo de ajuda, na mesma janela. Por exemplo, no caso da configurao de redes de computadores, o protocolo ideal sugerido pelo sistema foi o TCP/IP. Ento, bastar ao usurio selecionar esse item e acionar a ajuda que imediatamente aparecero informaes sobre tal protocolo. Maiores informaes sobre nmeros de contexto de ajuda e compiladores de Windows Help (como o HC31 ou o Microsoft Help Workshop) podem ser conseguidas atravs de terceiros. Para garantir melhor aproveitamento da sua base, textos didticos podem ser relacionados a cada soluo encontrada. Para tanto, crie um arquivo de ajuda no formato Ajuda do Windows e defina os contextos de ajuda relativos a cada valor (se desejado) de cada varivel objetivo.
Digite aqui o nome do arquivo de ajuda. S pressione aqui quando concluir tudo.

Selecione a varivel objetivo desejada aqui...

Desfaz ltima alterao. Confirma mudanas .

...e o valor correspondente aqui.

Entre o nmero de contexto de ajuda daquele valor e pressione <ENTER> ou o pequeno boto verde ao lado.

31

Expert SINTA

2.8 Opes
Para permitir maior flexibilidade na construo de um sistema especialista, o Expert SINTA oferece diversas opes de configurao. Para acess-las, utilize o menu Exibir|Opes. Uma caixa de dilogo com trs partes aparecer. Mquina de inferncia: permite pequenas modificaes no comportamento da mquina de inferncia, como o modo pelo qual as premissas so avaliadas. Dependendo do modo
Defina aqui qual a precedncia dos operadores lgicos E e OU. Lembre-se da diferena: na expresso A e B ou C, se mativermos a precedncia no e, ela pode ser intepretada como (A e B) ou C. Se a precedncia for do ou, A e (B ou C). como a precedncia for organizada ou como os fatores de confiana forem definidos, a mquina de inferncia pode saber que uma regra no vai atingir o grau mnimo de confiana para ser aceita antes mesmo de avali-la por completo. Se voc desejar que as regras sejam sempre avaliadas completamente, mesmo quando j se sabe se sero aceitas ou no, marque esta caixa.

Fatores de confiana: aps avaliar todas as premissas de uma regra, o Expert SINTA pode aceit-la ou rejeit-la. Se, ao calcular o fator de confiana final ele for maior que o mnimo estipulado, a regra ser aceita. nessa janela que se define o valor mnimo. Tambm aqui que se pode personalizar as funes de clculo de fatores de confiana.

Captulo II - Implementando o sistema

32

Aqui definido o valor de confiana mnimo para que uma regra seja aceita. Coloque na escala percentual: mnimo 0 e mximo 100.

O Expert SINTA utiliza algumas funes para calcular fatores de confiana em determinados eventos. Estes eventos podem ser uma conjuno, uma disjuno ou uma regra aceita. Pode-se usar as funes padres do Expert SINTA ou criar novas. Cada funo apresenta dois parmetros implcitos, cnf1 e cnf2 (ou seja, o grau de confiana do primeiro termo da conjuno e o grau de confiana do segundo termo da conjuno, respectivamente). Para, por exemplo, mudar a funo da conjuno para o mnimo entre os dois valores (aperte o boto Alterar se a frmula padro estiver sendo utilizada) ao lado da funo de conjuno e digite Min(cnf1, cnf2). Para retorna forma padro, aperte o boto respectivo. Maiores informaes sobre frmulas posteriormente neste captulo ( Criando frmulas).

Senha: um sistema especialista no deixa de ser um programa de computador. Portanto, pode se fazer necessrio algum tipo de proteo sobre este software. O Expert SINTA permite trs nveis de proteo: Permitir execuo e visualizao O usurio do seu sistema especialista no tem permisso para modificar a base, mas pode execut-la, depur-la e imprimi-la. uma opo para evitar que estranhos modifiquem a base, fazendo com que perca sua consistncia. Permitir somente execuo Um pouco mais polmica, essa opo permite que o usurio sem senha apenas possa executar o sistema especialista, mas no pode modific-la e menos ainda visualiz-la. Porm, um sistema especialista que no exibe o contedo de suas regras, no permite acompanhar sua execuo e verificar como atingiu o resultado exibido no merece a mesma confiabilidade de um sistema que permite o completo acesso s suas regras. O principal motivo que levaria um projetista a escolher essa opo de restrio o perigo de pirataria do contedo do sistema especialista. Mas, recomenda-se esquecer o risco e dar prioridade confiabilidade de seu trabalho. Alm disso, um sistema especialista que no protegido por

33

Expert SINTA

nenhuma lei de direitos autorais d sempre a impresso de no ser to profissional quanto deveria. Nenhuma permisso Somente pessoas com senha podem utilizar esse sistema especialista.

Define diferentes nveis de acesso que uma pessoa que no dispe de senha tem direito em relao ao sistema especialista.

Clique aqui para chamar a caixa de dilogo de definio de senhas para criar ou apagar uma senha que esteja protegendo o sistema especialista.

O uso de senhas para proteo da base de conhecimento s se efetivar de verdade quando esta caixa de verificao estiver marcada.

O Expert SINTA no pretende criar protees realmente seguras para seu sistema, mas apenas desencorajar modificaes no autorizadas. Se voc realmente deseja criar um senha, clique no boto Nova Senha... (ele se chama Mudar Senha... caso alguma senha j esteja sendo utilizada). Uma caixa de dilogo aparecer:
Digite aqui a senha que ir proteger seu sistema. Note que ela no ir aparecer na tela. Repita a senha que foi digitada acima para sua maior segurana, j que no se est vendo qual a palavra-chave.

Se voc no quiser mais nenhuma senha no seu sistema, clique esse boto.

Captulo II - Implementando o sistema

34

2.9 Criando frmulas


Quando se utiliza variveis numricas, comum que queiramos atribuir a elas valores extrados de frmulas matemticas, ou compar-las a valores equivalentes. Se voc j sabe como criar regras, j deve saber como inserir uma sentena de regra contendo uma varivel numrica e um valor. Para inserir uma funo ou expresso, simplesmente digite-a no lugar reservado ao valor. Deve-se, porm, seguir as seguintes regras: Os operadores matemticos vlidos so: + (adio), - (subtrao), * (multiplicao), / (diviso), + (sinal unrio indicando que um nmero positivo), - (sinal unrio indicando que um nmero negativo); As seguinte funes podem ser utilizadas: - Min(a, b): retorna o menor valor entre a e b; - Max(a, b): retorna o maior valor entre a e b; - Sqr(x): raiz quadrada de x; - Exp(x): exponencial de x; - Pot(a, b): retorna a elevado a b; - Log(a, b): logaritmo de a na base b; - Ln(x): logaritmo natural de x; - Abs(x): mdulo (valor absoluto) de x; - Sen(x): seno de x, x em radianos; - Cos(x): cosseno de x, x em radianos; - Tan(x): tangente de x, x em radianos; Variveis podem ser utilizadas nas expresses. Para atribuir a raiz de uma varivel a outra, pode-se fazer algo do tipo a = sqr(b). A diferena entre maisculas e minsculas no considerada. Ateno: se o nome da varivel contiver espaos em branco ou smbolos, coloque-a na expresso entre aspas. Por exemplo: Min(juros de dezembro, juros de janeiro); Se o valor da expresso for desconhecido, uma varivel que esteja recebendo o valor retornado tambm ser instanciada para desconhecido; possvel utilizar parnteses e aninhar funes.

35

Expert SINTA

2.10 Sumrio
Neste captulo, vimos: Como tratar com os arquivos de base de conhecimento, os denominados arquivos BCM; Quais so as entidades que formam a base de conhecimento: variveis, objetivos, regras, perguntas, informaes adicionais; A janela Knowledge-in-a-Box e os editores de entidades do Expert SINTA. Opes de configurao e senhas; Usando frmulas matemticas; A esta altura, voc est apto a criar seu especialista digital!

Captulo III - Consultando o sistema especialista


Como utilizar um sistema especialista construdo com o Expert SINTA, alm de permitir entender o seu funcionamento.

O Expert SINTA mantm uma interface uniforme para a consulta de qualquer base de conhecimento criada em seu ambiente. Existem dois modos pelos quais podem ser efetuadas consultas: a execuo usual, na qual o usurio acompanha uma sequncia de menus de mltipla (ou nica) escolha, nos quais deve-se indicar informaes que resultaro nas concluses atingidas pelo sistema especialista; o modo de acompanhamento, pelo qual possvel examinar o contedo das regras que formam o sistema, bem como acompanhar a execuo passo a passo e as instncias (valores) que cada varivel possui em determinado momento. Para utilizar este modo, preciso que o projetista da base no tenha protegido o acesso s regras por meio de uma senha

Um sistema especialista procura atingir concluses para determinados objetivos. Sempre que um desses objetivos atingido, ou quando se esgotam todas as possibilidades, o Expert SINTA apresentar uma janela com os resultados e o acompanhamento de como se chegou quela concluso (tambm necessrio que o projetista no tenha restringido o acesso). Alguns sistemas tambm devem trazer um sistema de ajuda on-line, pelo qual sero dadas maiores informaes de como se deve melhor utilizar as respostas conseguidas, bem como explicaes mais detalhadas sobre as funes daquele determinado sistema especialista.

37

Expert SINTA

3.1 Conceitos rpidos


Estes conceitos so para entendimento das sees a seguir. Se voc leu os captulos anteriores, encontrar alguns termos repetidos: projetista do conhecimento: o encarregado de transporta o conhecimento humano para uma srie de passos que um computador capaz de entender; base de conhecimento: o conjunto de informaes, representado no Expert SINTA na forma de regras SE-ENTO, as quais supostamente devem agir conforme um especialista humano. Seria, ento, a alma do sistema especialista; variveis: so os elementos do mundo real representados na base de conhecimento, como, por exemplo, uma tipo de doena, a quilometragem de um carro, pragas de um cajueiro, a posse ou no de crdito em determinada agncia bancria, etc. valores: so instncias das variveis, ou seja, uma varivel pode possuir um ou mais valores (quem decide o projetista do conhecimento). Tambm podem existir casos nos quais uma varivel permanece DESCONHECIDA, ou seja, o sistema no conseguiu nenhum valor satisfatrio para ela; depurao: acompanhamento da execuo da consulta com o intuito de compreender como o sistema especialista chegou quela(s) concluso(es). Tambm pode ser usada com o intuito de corrigir falhas na base de conhecimento;

3.2 Guia visual de operaes


Existem dois modos pelos quais se pode acompanhar uma consulta no Expert SINTA. Utilizando o menu da janela principal ou a barra de ferramentas. As operaes de execuo/depurao podem ser: iniciar a consulta; interromper a execuo para saber que regra est utilizando naquele ponto; executar passo a passo; adicionar elementos da base (variveis) para acompanhar os valores que eles recebem durante a consulta;

Captulo III - Consultando o sistema especialista

38

ver esses valores escolhidos; abandonar a consulta. Os comandos equivalentes na barra de ferramentas so:
Interrompe a execuo da base, exibindo as regras no modo de acompanhamento. Inicia a execuo/termina o modo de acompanhamento e retorna ao modo de execuo. Volta para a ltima pergunta realizada ao usurio pelo sistema. Estando no modo de acompanhamento, avana sentena por sentena na base de conhecimento (tambm conhecido como execuo passo a passo). Cancela a consulta. O sistema pedir confirmao. Visualiza todas os valores das variveis que voc escolheu. Escolhe variveis para que sejam exibidos seus valores durante uma consulta . figura 3.1 A barra ferramentas para execuo consultas de de

A seguir, so especificados os comandos equivalentes atravs do menu. Aqueles que estiverem em cinza no esto disponveis naquele momento. Os itens de menu no explicados aparecem em figuras anteriores. Alguns itens apresentam um nome representando uma tecla (ou uma combinao de teclas) que pode ser utilizada em substituio ao menu. Consulte a ajuda do Windows para maiores informaes sobre teclas de atalho. Antes do incio da consulta:

Inicia a execuo do sistema especialista.

Inicia a execuo no modo de acompanhamento. Exibe os valores das variveis que voc escolheu.

Escolhe variveis para exibio.

Durante o modo de execuo :

Coloca o sistema no modo de acompanhamento.

Durante o modo de acompanhamento:

Encerra a consulta antes do final.

39

Expert SINTA

Retorna ao modo de execuo.

figura 3.2 - Os itens de menu para execuo de consultas

3.3 A consulta
Iniciando-se a consulta, seja no modo de execuo ou acompanhamento, o sistema especialista poder apresentar uma tela de abertura, com informaes sobre seu funcionamento, os autores e casos aos quais ele se aplica. Leia atentamente esse texto de abertura, pois poder trazer informaes teis. Se o boto de ajuda estiver disponvel (aquele situado no canto inferior direito), aperte-o se desejar informaes mais detalhadas. Para iniciar a consulta, pressione o boto OK. O boto Cancelar abandona a execuo do sistema especialista. O boto Ajuda chama a ajuda da base, se ela estiver disponvel.

figura 3.3 - Uma abertura tpica de um sistema especialista

Obs.: Nem todas os sistemas trazem uma abertura, pois sua criao depende do projetista do conhecimento. A consulta se desenvolve por meio de menus de mltipla (ou nica) escolha. Um menu tpico mostrado na figura 3.4. A figura 3.5 mostra um menu para entrada de valores numricos.

Captulo III - Consultando o sistema especialista

40

Preste ateno quantas opes so passveis de escolha. As opes de escolha aparecem dentro desse grupo de caixas de verificao.

Qual o grau de confiana da sua resposta? Coloque aqui, em porcenta-gem.

Pressione aqui para confirmar a sua resposta.

Se esse boto estiver habilitado, possvel ler algumas explicaes extras sobre a importncia daquela pergunta.

figura 3.4 - Uma pergunta realizada pelo sistema a voc

figura 3.5 - Uma pergunta sobre um valor numrico

Escolha a(s) opo(es) desejada(s) marcando as respectivas caixas de verificao, localizadas sempre esquerda de cada alternativa. Observe, direita, na figura 3.4, a possibilidade de entrar com o grau de confiana da sua resposta. Graus de confiana so utilizados quando no se possui certeza absoluta sobre um fato. Assim sendo, voc pode expressar sua dvida por meio de um nmero percentual, ou seja, a sua resposta ter validade no intervalo de zero a cem por cento. Cada resposta assinalada pode ter o seu prprio grau de confiana. Caso realmente no saiba responder quela pergunta, simplesmente deixe todas as alternativas em branco. O Expert SINTA entender que voc no sabe como responder ao questionamento apresentado. No esquea que, a qualquer momento, possvel mudar o modo de execuo da base ou interromp-la usando o menu ou a barra de ferramentas.

41

Expert SINTA

3.4 As janelas de acompanhamento


Quando se est no modo de acompanhamento, uma nova janela sempre estar aberta, o depurador (figura 3.6).

figura 3.6 - O depurador

O depurador exibe, em sua caixa de listagem, todas as regras da base de conhecimento. A sentena em destaque aquela que est sendo analisada no momento pela mquina de inferncia. Observe que possvel rolar a lista para cima e para baixo, exibindo o resto da base, mas somente a linha representando o ponto de parada pode ser selecionada. Utilize o menu Depurar|Passo, ou o boto respectivo da barra de ferramentas, ou ainda a tecla F8 para continuar a acompanhar, passo a passo, a execuo do sistema. Se o sistema estiver realizando uma pergunta para voc, primeiro responda antes de executar um passo, ou nada acontecer. Fechar o Depurador equivale a voltar ao modo de execuo. Se voc deseja abandonar a consulta, utilize os mtodos explicados anteriormente neste captulo. Para acompanhar mudanas nas instanciaes das variveis, primeiro deve-se escolher quais delas se deseja que sejam acompanhadas. Use o menu Depurar| Adicionar Variveis..., ou o boto respectivo. A caixa de dilogo da figura 3.7 aparecer.

Captulo III - Consultando o sistema especialista

42

S sero exibidas as variveis que ainda no foram adicionadas.

figura 3.7 - Caixa de dilogo Adicionar Variveis

Selecione uma ou mais variveis. Mantenha pressionada a tecla CONTROL para selecionar mais de uma. Use a tecla SHIFT para selecionar uma seqncia. Ao apertar o boto OK, elas iro para a lista de variveis acompanhadas. possvel exibir essa lista a qualquer momento. Use o menu Depurar| Variveis, ou o boto respectivo da barra de ferramentas, ou ainda as teclas CONTROL e R ao mesmo tempo.

figura 3.8 - A lista de variveis acompanhadas

Sempre que a consulta alterar uma dessa variveis, essa janela atualizar-se- automaticamente. Para retirar uma varivel da lista de acompanhamento, selecione-a com o mouse e pressione a tecla DELETE. Relembrando: para poder utilizar livremente as janelas de acompanhamento, necessrio que o projetista da base no tenha inserido uma proteo por senha.

43

Expert SINTA

3.5 Compreendendo os resultados atingidos


Como foi dito anteriormente, o sistema especialista divide a sua consulta em uma busca de objetivos. Ao final de cada busca, uma janela de resultados apresentada. Ela se divide em quatro partes: Resultados: so apresentados todos os valores atingidos pelo objetivo, com os respectivos graus de confiana. Caso o sistema no tenha chegado a nenhuma soluo, ele indicar. Observe tambm o pequeno boto localizado no canto superior esquerdo, marcado com um ponto de interrogao. Se ele estiver habilitado, significa que o projetista da base tambm criou uma ajuda sobre o sistema especialista. Assim sendo, selecione no grid de qual soluo voc deseja maiores explicaes (um leve retngulo envolve a seleo). Em seguida, aperte esse boto, e um texto explicativo sobre o que voc deve fazer com essa soluo aparecer. Ou d um clique duplo sobre a resposta, ou ainda pressione F2 com a soluo desejada selecionada. O boto Ajuda localizado direita apenas mostra como se deve utilizar a janela de resultados;
O objetivo em questo. Indica o grau de confiana das solues respectivas.

O boto est habilitado, indicando que esse sistema especialista possui ajuda.

Este item est selecionado

figura 3.9 - Os resultados atingidos

Histrico: exibe todo o caminho realizado pelo sistema especialista at atingir quela(s) soluo(es). Mova a lista para cima e para baixo para visualizar o resto. Clique nos cones para fechar regras ou abri-

Captulo III - Consultando o sistema especialista

44

las, facilitando a visualizao. Esta pgina s est disponvel livremente se o projetista da base no houver protegido a base de conhecimento;
Clique aqui para expandir todas as sentenas.

Clique aqui para fechar todos os itens, exibindo apenas a chama-da de cada regra.

Clique aqui rolar a rvore para cima e para baixo.

figura 3.10 - A rvore de pesquisa

Todos os valores: uma generalizao da primeira pgina. Exibe todos os valores de todas as variveis. D um clique duplo na figura indicando a varivel para exibir ou esconder todos os seus valores. Tambm s est disponvel com permisso do projetista.

45

Expert SINTA

Clique aqui para mostrar os valores de todas as variveis.

Clique aqui para esconder todos os valores. D um clique duplo nessa figurinha para abrir a varivel.

figura 3.11 - Todos os valores atingidos pelo sistema especialista

O sistema: exibe as todas as regras do sistema especialista. til tambm para entender como o sistema chegou quela(s) concluso(es), em conjunto com o Histrico.

figura 3.12 - A base de conhecimento

Captulo III - Consultando o sistema especialista

46

Essa janela pode aparecer em uma consulta tantas vezes quanto for o nmero de objetivos a serem alcanados. Pressione o boto Fechar para continuar a consulta. Parabns, voc agora deve saber tudo sobre a utilizao de um sistema especialista construdo com o Expert SINTA.

47

Expert SINTA

3.6 Sumrio
Neste captulo, vimos: Reviso de conceitos bsicos sobre variveis e valores; Itens de menu e botes de atalho para aes de consulta; Estrutura da janela de perguntas do Expert SINTA; Acompanhamento da consulta; A janela de resultados. Voc pode utilizar este captulo para a elaborao de manuais dos sistemas especialistas de sua autoria!

Apndice A - Regras do SECAJU 48

Agradecimentos
O Expert SINTA foi criado pelo Grupo SINTA (Sistemas INTeligentes Aplicados), um projeto UFC / UECE. A presente ferramenta foi o fruto do primeiro ano de trabalho desse grupo. O grupo espera receber vrias crticas e sugestes sobre o que foi apresentado at o momento. O contato pode ser feito pelo endereo WWW do Laboratrio de Inteligncia Artificial (LIA) - http://www.lia.ufc.br. Grupo SINTA - Sistemas INTeligentes Aplicados Coordenao geral: Prof. Jos Helano Matos Nogueira Integrantes: Joo Fernando Lima Alcntara Rafael Castro de Andrade Ricardo Bezerra de Andrade e Silva Expert SINTA - idia original de Ricardo Sousa Silvestre, ex-integrante, 1995 SECAJU - Sistema especialista em pragas e doenas do cajueiro - de autoria dos seguintes membros do CNPAT: Qulzia Maria Silva Melo (Doutora em Entomologia) Antonio Lindemberg M. Mesquita (Mestre em Entomologia) Lianna Maria Saraiva Teixeira (Mestre em Fitossanidade) Francisco das Chagas O. Freire (Doutor em Fitopatologia). SECAJU - CNPAT, 1988 - 1996 Agradecimentos especiais: Genaro Frana - EMBRAPA Marcelino Pequeno - UFC Tarcsio Pequeno - UFC Expert SINTA 1995, 1996 - Laboratrio de Inteligncia Artificial/LIA-UFC Projeto financiado pela CAPES e CNPq.

Apndice A - Regras do SECAJU 48

Apndice A - Sistema de Diagnstico de Pragas e Doenas do Cajueiro (SECAJU)


A seguir, as regras que compem o SECAJU, base de conhecimento de autoria de membros do CNPAT. Objetivos: praga suspeita de praga doena suspeita de doena Regras:
Regra 1 SE castanha broqueada com amndoa totalmente destruda = Sim ENTO praga = traa das castanhas CNF 100% Regra 2 SE galerias nos ramos ou inflorescncias = Sim ENTO praga = broca das pontas CNF 100% Regra 3 SE inflorescncias = Murchas ou secas E brotaes novas murchas = Sim E orifcios laterais nos ramos ou inflorescncias = Sim ENTO praga = broca das pontas CNF 100% Regra 4 SE inseto mole amarelo ou verde = Sim ENTO praga = pulgo das inflorescncias CNF 100% Regra 5 SE caro estreito ou longo nas inflorescncias = Sim ENTO praga = eriofideo das flores CNF 100% Regra 6 SE inseto com cinta avermelhada sob as folhas = Sim ENTO praga = tripes CNF 100% Regra 7 SE lagarta cinza lisa com partes pretas e manchas brancas = Sim OU lagarta enrolada em folha = Sim OU espirais de ovos = Sim ENTO praga = lagarta saia justa CNF 100%

Apndice A - Regras do SECAJU 50

Regra 8 SE lagarta grande verde - alaranjada = Sim ENTO praga = lagarta verde CNF 100%

51

Expert SINTA

Regra 9 SE lagarta verde com plos avermelhados e urticantes = Sim ENTO praga = lagarta das folhas CNF 100% Regra 10 SE lagarta pequena com plos longos e verdes = Sim ENTO praga = lagarta vu de noiva CNF 100% Regra 11 SE besourinhos vermelhos = Sim OU larvas marrom - claras e lentas = Sim ENTO praga = besouro vermelho CNF 100% Regra 12 SE secreo pulverulenta branca sob as folhas = Sim ENTO praga = mosca branca CNF 100% Regra 13 SE folhas do broto terminal repolhadas = Sim ENTO praga = larva do broto terminal CNF 100% Regra 14 SE espuma sobre inflorescncias ou maturis = Sim ENTO praga = cigarrinha CNF 100% Regra 15 SE praga <> broca das pontas E goma nos ramos = Sim ENTO suspeita de praga = broca das pontas CNF 30% Regra 16 SE praga <> broca das pontas E brotaes novas murchas = Sim ENTO suspeita de praga = broca das pontas CNF 40% Regra 17 SE praga <> broca das pontas E inflorescncias = Murchas ou secas ENTO suspeita de praga = broca das pontas CNF 40% Regra 18 SE praga <> pulgo das inflorescncias E inflorescncias = Murchas ou secas E maturis = Deformados ENTO suspeita de praga = pulgo das inflorescncias CNF 20% Regra 19 SE praga <> pulgo das inflorescncias E mela nas inflorescncias, folhas e maturis = Sim ENTO suspeita de praga = pulgo das inflorescncias CNF 20%

Apndice A - Regras do SECAJU 52

Regra 20 SE praga <> eriofideo das flores E queda das inflorescncias = Sim ENTO suspeita de praga = eriofideo das flores CNF 50% Regra 21 SE praga <> eriofideo das flores E inflorescncias clorticas = Sim ENTO suspeita de praga = eriofideo das flores CNF 70% Regra 22 SE praga <> tripes E folhas = Com colorao prateada ENTO suspeita de praga = tripes CNF 45% Regra 23 SE praga <> lagarta saia justa E praga <> lagarta das folhas E praga <> lagarta verde E praga <> lagarta vu de noiva E praga <> besouro vermelho E diminuio da rea foliar = Sim ENTO suspeita de praga = lagarta saia justa CNF 50% suspeita de praga = lagarta da folhas CNF 50% suspeita de praga = lagarta verde CNF 50% suspeita de praga = lagarta vu de noiva CNF 50% suspeita de praga = besouro vermelho CNF 50% Regra 24 SE praga <> lagarta saia justa E teias envolvendo inflorescncias e brotaes novas = Sim ENTO suspeita de praga = lagarta saia justa CNF 100% Regra 25 SE praga <> besouro vermelho E folhas = Perfuradas E ocorrncia de janeiro a abril = Sim ENTO suspeita de praga = besouro vermelho CNF 50% Regra 26 SE fumagina na face superior das folhas = Sim ENTO suspeita de praga = mosca branca CNF 70% Regra 27 SE inflorescncias <> Nenhum valor encontrado E maturis = Rachados OU maturis = Necrosados (muito escuros) OU maturis = Mumificados ENTO doena = antracnose CNF 100%

53

Expert SINTA

Regra 28 SE bolor negro na face inferior das folhas = Sim ENTO doena = mofo preto CNF 100% Regra 29 SE cinza vegetal sobre as folhas = Sim ENTO doena = oidio CNF 100% Regra 30 SE doena <> antracnose E folhas = Deformadas OU folhas = Esfarelam facilmente quando amassadas E manchas irregulares nas folhas = Sim ENTO suspeita de doena = antracnose CNF 75% Regra 31 SE doena <> antracnose E folhas = Deformadas OU folhas = Esfarelam facilmente quando amassadas E manchas irregulares nas folhas = Sim E folhas = Com exsudao de resina (goma) ENTO suspeita de doena = antracnose CNF 85% Regra 32 SE doena <> oidio E queda das inflorescncias = Sim ENTO suspeita de doena = oidio CNF 50%