sistemas periciais e robÓticaeol/ia/1617/apontamentos/4_s… · · 2017-01-25quando as premissas...
TRANSCRIPT
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
CAPÍTULO IV
INTRODUÇÃO AOS SISTEMAS
PERICIAIS
Inteligência Artificial
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
A abordagem à Inteligência Artificial que realça os aspectos implementacionais da realização prática de Sistemas Baseados em Conhecimentos, é conhecida por Engenharia do Conhecimento.
Engenharia do Conhecimento
ENGENHARIA DO CONHECIMENTO E SISTEMAS PERICIAIS
A Engenharia do Conhecimento estuda os métodos práticos de representar conhecimento operacional e suas estratégias de manipulação. Os Sistemas Periciais são os mais típicos Sistemas Baseados em Conhecimento e constituem as realizações práticas mais conhecidas da área da Inteligência Artificial.
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
Engenharia do Conhecimento
PROGRESSÃO Nas Ferramentas de desenvolvimento de SISTEMAS PERICIAIS
L. Programação ambientes
shells lab
shells comerciais
manpower
1975 80 85 90 95 95 2000
shells + plataformas
2010
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
SISTEMAS PERICIAIS ("EXPERT SYSTEMS") • Definição Extensiva : Conjunto de Programas que de uma forma modular englobam : * Conhecimento simbólico sobre domínios formalizados (pode ser incerto) * Capacidades de Inferência * Heurísticas * Explicabilidade * "Auto-Conhecimento" * Interface amigável (ex: Linguagem Natural) * Capacidades evolutivas (ex: Aprendizagem)
Sistemas Periciais
SISTEMAS PERICIAIS ("EXPERT SYSTEMS") - O QUE SÃO SISTEMAS PERICIAIS • Definição Intensiva : Sistemas computacionais incorporando Conhecimento Simbólico próprio de Especialista(s) em um ou vários domínios (restritos), capaz de emular (ou assistir) tais Especialistas na forma como decidem e explicam, comunicam ou adquirem tais conhecimentos.
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
Sistemas Periciais
- O QUE NÃO SÃO :
• Programas + complexos de códigos + eficientes baseados em cálculo numérico, produzindo resultados de forma totalmente opaca e sem possibilidades de evolução a não ser por reprogramação.
• Programas de armazenamento e retribuição de grandes quantidades de Dados organizados.
- SISTEMAS PERICIAIS VERSUS BASES DE DADOS :
• SP usam-se quando a complexidade do tratamento da informação se sobrepõe à grande quantidade
de informação a manipular.
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
Sistemas Periciais
Os Sistemas Periciais podem ajudar à :
• Integração de diversas Fontes de Conhecimento existentes sobre um mesmo Domínio (Ex: Vários Especialistas numa Base de Conhecimentos)
• Integração de Especialidades diferentes que abordam problemas comuns. (Ex: ORBI).
• Divulgação de Cópias eletrónicas do Conhecimento (raro e caro)
• Estruturação necessária de um domínio de Conhecimento e teste da sua validade.(Ex: ORBI).
E ainda ao :
• Acesso mais simples e natural a Bases de Dados Relacionais.
• Estudo de processos inteligentes Naturais.
• Aprendizagem de conceitos através de grande quantidade de Dados.
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
Sistemas Periciais
ESTRUTURA BÁSICA DE UM SISTEMA PERICIAL
EXPLICAÇÕES
MOTOR DE INFERÊNCIA
MEMÓRIA DE TRABALHO
METACONHECIMENTO
BASE DE CONHECIMENTO
BASE DE FACTOS/
DADOS
AQUISIÇÃO
INTERFACE
UTILIZADOR
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
Exemplos simples de Regras em prolog: ave(albatroz_leysan):- familia(albatroz), cor(branca). família(albatroz):- ordem(tubenose), tamanho(grande), asas(grandes_estreitas). ordem(tubenose):- configuração(tubular), vive(mar), bico(anguloso).
Exemplos de factos conhecidos na Base de Conhecimentos em prolog: configuração(tubular). vive(mar). bico(anguloso). tamanho(grande). asas(grandes_estreitas). cor(branca). Outras hipóteses de representação de factos (para outras regras): facto(cor,branca). facto(tamanho, grande). Ou: av(cor, branca) % av i.e. Atributo-Valor
Sistemas Periciais- Base de Conhecimentos
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
Outro formato de Regras em prolog: regra(Nome, ListaPermissas,Conclusão). Ou seja: regra(Nome,lper([av(A1,V1), av(A2,V2)|R]), conc(av(A,V),FC)). Exemplo concreto:
regra(1, lper([av(configuração,tubular), av(vive,mar), av(bico,anguloso)]), conc(av(ordem, tubenose), 80)).
Sistemas Periciais
Motor de Inferência é um programa que usa a Base de Conhecimentos para: - encontrar Valores para Atributos - combinar incertezas e - atualizar evidências na memória (e na BC)
Motores de Inferência: Por Encadeamento Inverso (BC) Por Encadeamento Direto (FC)
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
Valores de Atributos podem ser: - já conhecidos da BC - perguntáveis ao utilizador (ou a BD) - deduzidos pelo Motor de Inferência a partir da BC
Sistemas Periciais
Exemplo de Motor de inferência em Prolog (Encadeamento Inverso):
:- findgoal(av(diagnostico,X), FC) %tentar conhecer o valor X do atributo diagnóstico findgoal(av(A,V),FC):- facto(av(A,V),FC),!. %1ª hipótese findgoal(av(A,V),FC):- not(facto(av(A,_),_), %2ª hipótese perguntavel(A,TextoP), %lista de perguntáveis pergunta_utilizador(A,TextoP), !, findgoal(av(A,V),FC). pergunta_utilizador(A,TextoP):- write(TextoP), read(V), read(FC), asserta(facto(av(A,V),FC)).
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
findgoal(Goal,FCcorrente):- fg(Goal,FCcorrente). %3ª hipótese fg(Goal,FCcorrente):- regra(N,lper(LP), conc((Goal,FC)) ), provar(LP, Cert_P), combinar(FC, Cert_P,NFC), atualizar(Goal,NFC,FCcorrente), FCcorrente = = 100, !. fg(Goal,FC):- facto(Goal,FC). %quando não atinje FC=1
Sistemas Periciais
provar(LP, Cert_P):- prove(LP,100,Cert_P). %100 valor inicial. %Não interfere em mínimo
prove([], Cert_P, Cert_P). prove([P1|RP], Cert_corr,Cert_P):- findgoal(P1,FC), min(Cert_corr, FC, Cert), %caso2 do modelo dos FC Cert>=20, prove(RP,Cert, Cert_P).
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
min(X,Y,X):- X=<Y,!. min(X,Y,Y):- Y<X. combinar(FC1,FC2,FC):- X is FC1*FC2 /100, %arredondar(X,FC). % caso 3 do modelo FC %arredondar(X,FC):- X>=0, FC is integer(X+0.5). %arredondar(X,FC):- X<0, FC is integer(X-0.5). atualizar(Goal, NFC,FC):- facto(Goal,VFC), comb(NFC,VFC,FC), % caso 1 do modelo FC retract(facto(Goal,VFC)), asserta(facto(Goal,FC)). atualizar(Goal,FC,FC):- asserta(facto(Goal,FC)).
Sistemas Periciais
comb((FC1,FC2,FC)):- FC1>=0, FC2>=0, X is FC1+FC2*(100-FC1)/100, % arredondar(X,FC). comb((FC1,FC2,FC)):- FC1<0, FC2<0, X is –(-FC1-FC2*(100+FC1)/100), %arredondar(X,FC). comb((FC1,FC2,FC)):- (FC1<0; FC2<0), (FC1>0;FC2>0), min_abs(FC1,FC2,FCmin), X is 100* (FC1+FC2)/(100-FCmin), %arredondar(X,FC).
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
Exemplo de Motor de inferência em Prolog (Encadeamento Direto): Quando as premissas unificam com factos na memória, isso implica que as ações da conclusão são ativadas. Ciclo de Execução: 1- Seleccionar regras cujas premissas unificam com Estado corrente memorizado; 2- Executar as Ações correspondentes à conclusão das Regras; 3- Repetir Enquanto existirem regras aplicáveis.
Sistemas Periciais
Tipo de Regra: regra(Nome, LPe, LAc). Motor de inferência (Encadeamento Direto)
go:- regra(N,LP,LA), tentar(LP,LA), !, go. go:- nl, write(fim). tentar(LP,LA):- match(LP), processar(LA,LP).
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
tentar(LP,LA):- match(LP), processar(LA,LP). % repetido match([]):-!. match([P|R]):- !, (facto(P);teste(P)), match(R). teste(X>=Y):- X>=Y,!. teste(X=Y):- X is Y,!. teste(X==Y):- X=Y,!. teste(member(X,Y)):- member(X,Y),!. teste(not(X)):- facto(X),!,fail. teste(not(X)).
Sistemas Periciais
processar([],_):-!. processar([A1|RA],LP):- ação(A1,LP), processar(RA,LP). ação(retract(X),LP):- retract(facto(X)). ação(write(X),_):- write(X). .... ... ...
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
SISTEMA: -O Organismo-2 cresce aerobicamente ou não? UTILIZADOR: > Porquê? SISTEMA: - Já é conhecido que a mancha é Gram-negativa SE o Organismo-2 cresce aerobicamente ENTÃO há evidência sugestiva que a Identidade do Organismo-2 é IGUAL a STAPHILOCOCCUS
Sistemas Periciais
Exemplo: (Exemplo de Regra de Conhecimento no Sistema Mycin) SE tipo_organismo GRAM NEGATIVO E aerobicidade AEROBICO ENTÃO há evidência sugestiva (0.6) de STAPHILOCOCCUS
CARATERÍSTICAS INTERATIVAS: Explicações tipo “WHY?” (Porquê) Exemplo do Sistema Mycin:
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
CARATERÍSTICAS INTERATIVAS:
Sistemas Periciais
Explicações tipo “HOW?” (Como?) Exemplo do Sistema ORBI: UTILIZADOR:>Qual o valor da aptidão do ponto de coordenadas 79,673 à agricultura? SISTEMA: - No ponto 79,673 a Aptidão 3 (Agricultura não intensiva) tem o valor MUITO APTO (com representatividade 3/5) PORQUE:
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
O valor MUITO APTO foi calculado com base em 25% Fator6 + 60% Fator4 + 5% Fator 3 + ... e o Fator6 (Riqueza Florística) tem o valor 1 porque depende do Descritor11 e do Descritor7 e O Descritor11 (Equilíbrio da Vegetação) tem o valor 1 porque segundo o especialista: O Equilíbrio da Vegetação é MUITO BAIXO devido ao facto das Fitocenoses Naturais se encontrarem degradadas com difícil regresso ao climax potencial. O Descritor7 (Escoamento) tem o valor 2 porque segundo o especialista: .... .... ....
Sistemas Periciais
Explicações tipo “COMO” são um “trace” formatado do caminho percorrido durante a inferência realizada
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
AQUISIÇÃO DO CONHECIMENTO e SISTEMAS PERICIAIS Aquisição por comunicação direta (“Learning by being told”) Nesta forma mais elementar de adquirir conhecimento, os Sistemas Periciais adquirem ou modificam novas Regras por interação natural com o especialista.
Sistemas Periciais
Aquisição por indução: - Algorítmos tipo Árvores de Decisão inferem Regras de classificação - Indução de Programas em Lógica (ILP) infere Cláusulas prolog - ... Aquisição por Adaptação: - Aprendizagem por Reforço - Redes Neuronais Artificiais não são SBC
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
Sistemas Periciais
Exemplo Prático de Sistema Pericial:
ORBI
SISTEMA PERICIAL PARA O ORDENAMENTO BIOFÍSICO DO TERRITÓRIO
•O Problema: Estudo das potencialidades de um território - tipicamente um concelho
*Dezenas de mapas com valores observados em pontos (quadrados de 200x200 m); os valores dos atributos são quantificados (0 a 5) com Representatividades associadas e textos justificativos
*ORBI integra em Regras e numa Rede semântica o conhecimento de especialistas em campos diferentes:
Geologia, Hidrologia, Clima, Arquitectura Paisagística, Biologia, Botânica, Técnica Agrícola, etc...
*Usado para fornecer pareceres justificados na secretaria de Estado do Ambiente.
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
SINTESE BIOFÍSICA
APTIDÕES REDE C.Nat.
FATORES
DESCRITORES
Textos justificativos dos valores observados nos Pontos
MODELO HIERÁRQUICO do CONHECIMENTO DE (ALTO NÍVEL)
Sistemas Periciais
Ex: Agricultura intensiva
Ex: Resistência do solo à erosão
Ex: Inclinação do solo
Ex: Apto para agricultura e
Pouco apto para a Indústria
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
Sistemas Periciais
ORBI responde a questões colocadas em PORTUGUÊS sobre: O Domínio do Conhecimento: Valores que existem na Base de Factos ou dedutíveis Ex: Quais os valores do descritor… Médias de valores da aptidão2 na região de coordenadas…. Quais as coordenadas dos pontos com valor de aptidão… Todos os valores são computados com representatividade associada
O Domínio do Meta-Conhecimento: Questões sobre o Conhecimento que o Sistema possui sobre o seu próprio Conhecimento Ex: Quais os conceitos? Quais são as aptidões? Quantos são os fatores? Qual a regra da aptidão para a agricultura?
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
Sistemas Periciais
NÍVEIS DE CONHECIMENTO
METACONHECIMENTO:
AUTOCONHECIMENTO METACONTROLO
TRÊS NÍVEIS
ex: CONCEITOS (Qdade, Dep, Contr, atrib, Sig).
ESQUEMAS
CATEGORIAS
ex: aptidão (num-nome, instancias. [síntese, rede],[fator], sig (apt).
INSTÂNCIAS CONCRETAS
ex: fator (3-resistência-erosão,[a1,a3.-],[d7,d10],
sig (f3)).
ex: fator (num-nome, instancias. [aptidão],[descritor], sig(fator) )
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
Sistemas Periciais
ponto (X-Y, VD1-RD1, VD2-RD2, ...).
Regras em Cláusulas condicionais ( com operadores pré-declarados):
Factos em Cláusulas unárias:
Ex. (com operadores pré-declarados)
aptidão (1-habitação, Desc, Valor, Rep):-
Valor=não apto se (F4=4 ou F4=5) onde fator(4-p.agrícola, Desc, F4-Rep)
ou (F6=selectivo ou F6=3) onde fator(6-rgeológica,F6,Desc, Rep) ou(F6b/=0 e F6b /=1 e F6b/=2)onde fator(6b-fitocenose,F6b,Desc, Rep) ou F6f=5 onde fator (6f-r-cineg-paisag, F6f, Desc, Rep)
senao expr(6,Valor is(40*F1+25*F2+20*F2a+5*F2b+5*F3+5*F5+50)/100), Rep is(40*R1+25*R2+20*R3+5*R4+5*R5+5*R6+50)/100 onde(fator(1-clima,Desc,F1-R1),fator(2-c-terrenos-fund,Desc,F2-R2),... ).
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
Sistemas Periciais
EXPLICAÇÕES "COMO"
* Explicações incluem:
2 níveis de profundidade
dinamicamente computadas opcionais formatadas
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
Sistemas Periciais
AQUISIÇÃO DAS REGRAS : ("Learning by being told")
1- Entrada em "Linguagem quase - Natural" 2- Transformação em Representação prolog intermédia 3- Execução por interpretador apropriado
ex: 1 aptidão industria = apto se fator pluviosidade > 3 ou fator erosão = grande senão aptidão industria = 20 * f1 + 80 * f3
Atributo = Valor
Operadores pré- declarados
1- Entrada em "Linguagem quase - Natural"
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
Sistemas Periciais
2 compor(A se B,(Cabeça:-Corpo)):- tratar1(A, Cabeça), %simplificado, D tratar(B, Corpo).
. . .
3 executar (Regra, ER): - i(Regra, NR, ER), NR.
i (A senão B, NA, EA): - i (A, NA, EA).
i (_ senão B, NB, EB): - i (B, NB, EB).
i (A se B, NB, EB-> A): - i (B, NB, EB).
i (X ou Y, (NX;NY), (EX; EY)): - i (X, NX, EX); i (Y, NY, EY).
... ... ...
input Regra formada
. . . tratar1 (At = V, regra (At, D, V)):- retract(regras(Num)), N is Num+1, assert(regras(N)). .... .... ...
tratar (B ou C, (NB; NC)): - tratar (B, NB),
. tratar (B e C, (NB, NC)): - tratar (B, NB), tratar (C, NC). . . . . . . . .
tratar (C, NC).
2- Transformação em Representação prolog intermédia
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
Sistemas Periciais
ANÁLISE VALIDAÇÃO
RETRIBUIÇÃO REPRESENTAÇÃO U
T
I
L
I
Z
A
D
O
R
Motor de Inferência
METACONHECIMENTO
BASE DE CONHECIMENTOS
Aquisição de Conhecimento para BC Dinâmicas
Input Conhecimento
Inter
face
c/
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
Sistemas Periciais
MYCIN
SISTEMA PERICIAL para DIAGNOSTICAR a IDENTIDADE DE
ORGANISMOS causadores de INFECÇÕES NO SANGUE
E. Shortliffe - U. Stanford (E. U. A.)
bibl.: "Mycin: Computer Based Medical Diagnosis" - North-Holland
Artificial Intelligence Series - 1976
Eduard Shortliffe.
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
Sistemas Periciais
Sistemas Derivados
MYCIN
NEOMYCIN
EMYCIN
RMYCIN
SHORT MYCIN
ICPMYCIN
TEIRESIAS
MYCIN guia-se por uma Àrvore CONTEXTUAL ESTÁTICA
Objetos
Do
Domínio
PACIENTE
CULTURA
ORGANISMO
nome
idade
sexo
meio
data
identidade
morfologia
aerobicidade
atr
ibu
tos
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
Sistemas Periciais
Valores dos atributos podem ser: - fornecidos pelo utilizador (se perguntáveis) - encontrados na Base de Dados (se "asserted") - deduzidos (pelas Regras)
MYCIN
CRIA CONTEXTOS DINÂMICOS
EX: paciente-1
cultura-1 cultura-2
organismo-1 organismo-2 organismo-3
terapia-1 terapia-2 terapia-3
Exemplo: de Regra com Factores de Certeza
(do Sistema Mycin.)
SE tipo_organismo GRAM POSITIVO
E morfologia ROD
E aerobicidade AEROBICO
OU aerobicidade DESCONHECIDA
ENTÃO há evidência sugestiva (0.6) de ENTEROBACTERACEAE
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
Sistemas Periciais podem receber informação: Interativamente dos utilizadores de Bases de Dados de interfaces com aparelhos de medida e aquisição de sinal Exemplo de aplicação na Medicina: ARCA
Sistemas Periciais
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
Sistemas Periciais
• fornecer aos especialistas uma forma de auxiliar e facilitar o diagnóstico, permitindo, sempre que solicitado, explicar os passos percorridos até atingir uma dada conclusão;
Os objetivos fundamentais do sistema ARCA são:
• fornecer aos não especialistas uma forma acessível de detectar a existência de arritmias cardíacas (e o seu tipo), podendo levar estes a aconselhar o paciente a consultar um médico especialista;
• possibilitar a sua utilização como tutor elementar, permitindo aos utilizadores que o desejarem uma maior especialização no domínio.
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
Sistemas Periciais
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
Sistemas Periciais
Inferência desde os dados do ECG ao diagnóstico
aVR (qi,[479,1192,1868,2707,3748,4452]). aVR (sf,[594,1303,1974,2814,3858,4563]). aVR (rp,[561,1270,1942,2781,3822,4526]). aVR (dp,[41,53,61,66,53,66]). d2 (pp,[426,1118,1794,2634,3678,4375]). ... h_rate(75). linha_base(existe). ...
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
Ciclo de Desenvolvimento do SP ARCA
Sistemas Periciais
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
SHELLS (CONCHAS): Programas que incluem: - Motor de Inferência - Tratamento de Raciocínio Incerto - Interface por Menus - Capacidades Explicativas do tipo “Porquê” e, por vezes, “Como” - Editor de Regras e (eventualmente) de “Frames” As Shells de Sistemas Periciais podem utilizar-se em 2 modos: - Modo de Construção da Base de Conhecimentos - Modo de Consulta
Sistemas Periciais
Exemplos de Shells: Consultar: - Knowledge-Based Systems Corporation (http://www.kbsc.com/rulebase.html) - CLIPS ( C Language Integrated Expert Systems) www.ghg.net/clips/CLIPS.html
- JESS (Java Expert Systems Shell) http://herzberg.ca.sandia.gov/jess/ - Knowledge Wright (Amzi Prolog) www.amzi.com/products/knowledgewright.html - Mike (Micro Interpreter for Knowledge Engineering; Open University, UK)
- FLEX (em Prolog - Logic Programming Associates Ltd.) www.lpa.co.uk/ind_pro.htm
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
SHELLS (CONCHAS):
Sistemas Periciais
- JESS (Java Expert Systems Shell) http://herzberg.ca.sandia.gov/jess/ • Programa em Java
• Herdeiro do CLIPS
• Desenvolvido nos Sandia National Labs – Livermore, CA
• Motor de Inferência para REGRAS. Tipo Encadeamento Directo.
• Usa Algoritmo RETE para fazer a selecção das Regras aplicáveis em cada situação • RETE: Usa uma rede em que os nodos de cada ramo são premissas de uma regra com factos associados que as satisfazem. A propagação de novos factos memorizados é dinâmica e quando todos os nós de um ramo são satisfeitos essa regra é ativada.
• RETE aumenta a velocidade à custa do uso de memória
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
Expert Systems Applications
Sistemas Periciais
Outros domínios de aplicação: (retirado da Web)
Diagnosis and Troubleshooting of Devices and Systems of All Kinds Planning and Scheduling Configuration of Manufactured Objects from Sub-assemblies Financial Decision Making Process Monitoring and Control Design and Manufacturing Cooperative Distributed Expert Systems for Networks maintenance
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
Exemplo simplificado de Base de Conhecimentos de um SP (Expert System)
Sistemas Periciais
•Regras usando os operadores “se” (premissas), “e” (conectiva entre premissas), “então”, (separa premissas da conclusão) “com” (FC) •Sensores dão valores dos atributos ao SP (At=Val) menos um que é perguntável. • Usar Modelo dos FC e Conjuntos Difusos
Regras de Conhecimento para a Situação: o carro não se movimenta Se o motor não arranca e sei que a bateria está “em baixo” então tenho a certeza que o problema é da bateria. Também quando a luz ou o rádio estão fracos tenho 50% de certeza que o a bateria está “em baixo”. Se o motor arranca mas há um cheiro a gasolina então o problema é, com quase total certeza, motor_encharcado. Mas se o indicador da gasolina está no zero ou muito baixo então o problema é falta de gasolina com maior ou menor certeza.
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
Exemplo simplificado de Base de Conhecimentos de um SP (Expert System)
Sistemas Periciais
Regras: se liga=nao e bateria=em_baixo entao problema=bateria com fc=1. se luz=fraca entao bateria=em_baixo com fc=0.5. se radio=fraca entao bateria=em_baixo com fc=0.5. se liga=sim e cheiro_gas=sim entao problema=encharcado com fc=0.8. se liga=sim e indicador_gas=vazio entao problema=sem_gasolina com fc=0.9. se liga=sim e indicador_gas=muito_baixo entao problema=sem_gasolina com fc=0.3.
perguntável(cheiro_gas, 'Sente cheiro a gasolina ?', [sim,nao]).
Conjuntos difusos (funções de pertença)
Vazio: VCaraterístico a partir de 1 decilitro
Muito_baixo: VCaraterístico = ½ litro
Fraca: VCaraterístico até 0,2 miliampéres
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
Exemplo simplificado de um SP (Expert System)
Sistemas Periciais
Fuzzy Sets (Conjuntos Difusos):
Função de pertença de depósito Muito_baixo
O,1 lit 30 lit
1
O,5 lit 30 lit
1
Função de pertença de depósito Vazio
0,2 ma
1
0,5 ma
Função de pertença de bateria ou rádio Fraca
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
Exemplo simplificado de um SP (Expert System)
Sistemas Periciais
inicio:- verifica(diagnostico,Valor, FC).
verifica(Atb,Valor,FC):- facto(Atb,Valor,FC), !.
verifica(Atb,Valor,FC):- facto(Atb,_,1), !, fail. % facto ja conhecido com FC=1
% valores diferentes com FCs diferentes
verifica(Atb,Valor,FC):-
perguntavel(Atb,TextoPerg,ListaVal),
pergunta(Atb,TextoPerg,ListaVal),!,
facto(Atb,Valor,FC).
verifica(Atb,V,FC):- verif_regras(Atb,V,FC).
verif_regras(Atb,Valor,FC):-
se Premissas entao Atb=Valor com fc=FCRegra,
verif_premissas(Premissas,1,FCPrem), % calcula FC premissas
ajustaFC(FCRegra,FCPrem,FCNovo), % combina FC regra com FC premissa
atualizaFC(Atb,Valor,FCNovo,FC), % combina FC com outros ja existentes
FC==1,!.
E. Oliveira / MIEIC 4-Inrodução aos Sistemas Periciais
Exemplo simplificado de um SP (Expert System)
Sistemas Periciais
% ve_regras(Atb,V,FC):- setof( (Vx,FCx), facto(Atb,Vx,FCx), L), maiorFC(L,V,FC).
pergunta(Atb,Texto,ListaV):-
repeat,
write(Texto), write(ListaV), write(' ? '), read(V),
valido(V,ListaV),
write('fator de certeza: '),read(FC),
assert(facto(Atb,V,FC)).
verif_premissas(Atb1=V1,FCAnt,FC):-
verifica(Atb1,V1,FC1),
min(FCAnt,FC1,FC), !.
verif_premissas(Atb1=V1 e OPs,FCAnt,FC):-
verifica(Atb1,V1,FC1),
min(FCAnt,FC1,FCAux),
verif_premissas(OPs,FCAux,FC), !.