Professional Documents
Culture Documents
CAPTULO IV
INTRODUO AOS SISTEMAS
PERICIAIS
E. Oliveira / MIEIC
Engenharia do Conhecimento
E. Oliveira / MIEIC
Engenharia do Conhecimento
manpower
L. Programao
ambientes
shells lab
shells comerciais
shells + plataformas
1975
80
85
90
E. Oliveira / MIEIC
95
2000
Sistemas Periciais
Sistemas Periciais
- O QUE NO SO :
Programas
E. Oliveira / MIEIC
Sistemas Periciais
Os Sistemas Periciais podem ajudar :
E ainda ao :
E. Oliveira / MIEIC
Sistemas Periciais
EXPLICAES
METACONHECIMENTO
MOTOR
DE
BASE DE
CONHECIMENTO
AQUISIO
INFERNCIA
BASE DE FACTOS/
DADOS
MEMRIA
DE
TRABALHO
INTERFACE
UTILIZADOR
E. Oliveira / MIEIC
Sistemas Periciais
Exemplos simples de Regras em prolog:
ave(albatroz_leysan):- familia(albatroz), cor(branca).
famlia(albatroz):- ordem(tubenose), tamanho(grande), asas(grandes_estreitas).
ordem(tubenose):- configurao(tubular), vive(mar), bico(anguloso).
Exemplos de factos conhecidos na Base de Conhecimentos em prolog:
configurao(tubular).
vive(mar).
bico(anguloso).
tamanho(grande).
asas(grandes_estreitas).
cor(branca).
Outras hipteses de representao de factos (para outras regras):
facto(cor,branca).
Ou:
av(cor, branca) % av i.e. Atributo-Valor
E. Oliveira / MIEIC
Sistemas Periciais
Outro formato de Regras em prolog:
regra(Nome, ListaPermissas,Concluso).
Ou seja:
regra(Nome,lper([av(A1,V1), av(A2,V2)|R]), conc(av(A,V),FC)).
Exemplo concreto:
regra(1, lper([av(configurao,tubular), av(vive,mar), av(bico,anguloso)]),
conc(av(ordem, tubenose), 80)).
Motores de Inferncia:
Por Encadeamento Inverso (BC)
Por Encadeamento Directo (FC)
Motor de Inferncia um programa que usa a Base de Conhecimentos para:
- encontrar Valores para Atributos
- combinar incertezas e
- actualizar evidncias na memria (e na BC)
E. Oliveira / MIEIC
Sistemas Periciais
Valores de Atributos podem ser:
- j conhecidos da BC
- perguntveis ao utilizador (ou a BD)
- deduzidos pelo Motor de Inferncia a partir da BC
Exemplo de Motor de inferncia em Prolog (Encadeamento Inverso):
:- findgoal(av(problema,X), FC) %tentar conhecer o valor X do atributo problema
findgoal(av(A,V),FC):-
facto(av(A,V),FC),!.
%1 hiptese
findgoal(av(A,V),FC):-
not(facto(av(A,_),_),
%2 hiptese
perguntavel(A,TextoP),
pergunta_utilizador(A,TextoP), !,
findgoal(av(A,V),FC).
E. Oliveira / MIEIC
Sistemas Periciais
findgoal(Goal,FCcorrente):-
fg(Goal,FCcorrente).
fg(Goal,FCcorrente):-
regra(N,lper(LP), conc((Goal,FC)) ),
provar(LP, Cert_P),
combinar(FC, Cert_P,NFC),
actualizar(Goal,NFC,FCcorrente),
FCcorrente = = 100, !.
fg(Goal,FC):-
facto(Goal,FC).
provar(LP, Cert_P):-
%3 hiptese
E. Oliveira / MIEIC
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).
actualizar(Goal, NFC,FC):- facto(Goal,VFC), comb(NFC,VFC,FC), % caso 1 do modelo FC
retract(facto(Goal,VFC)), asserta(facto(Goal,FC)).
actualizar(Goal,FC,FC):- asserta(facto(Goal,FC)).
comb((FC1,FC2,FC)):comb((FC1,FC2,FC)):comb((FC1,FC2,FC)):-
E. Oliveira / MIEIC
FC1>=0, FC2>=0,
X is FC1+FC2*(100-FC1)/100, arredondar(X,FC).
FC1<0, FC2<0,
X is (-FC1-FC2*(100+FC1)/100, arredondar(X,FC).
(FC1<0; FC2<0), (FC1>0;FC2>0),
min_abs(FC1,FC2,FCmin),
X is 100* (FC1+FC2)/(100-FCmin), arredondar(X,FC).
4-Inroduo aos Sistemas Periciais
Sistemas Periciais
Exemplo de Motor de inferncia em Prolog (Encadeamento Directo):
Quando as premissas unificam com factos na memria, isso implica que as aces
da concluso so activadas.
Ciclo de Execuo:
1- Seleccionar regras cujas premissas unificam com Estado corrente memorizado;
2- Executar as Aces correspondentes concluso das Regras;
3- Repetir Enquanto existirem regras aplicveis.
Tipo de Regra:
regra(Nome, LPe, LAc).
Motor de inferncia (Encadeamento Directo)
go:call(regra(N,LP,LA)),
tentar(LP,LA), !, go.
go:nl, write(fim).
tentar(LP,LA):- match(LP), processar(LA,LP).
E. Oliveira / MIEIC
Sistemas Periciais
tentar(LP,LA):- match(LP), processar(LA,LP).
match([]):-!.
match([P|R]):- !, (facto(P);teste(P)), match(R).
teste(X>=Y):- X>=Y,!.
teste(X=Y):- X is Y,!.
teste(member(X,Y)):- member(X,Y),!.
teste(not(X)):- facto(X),!,fail.
teste(not(X)).
teste(X==Y):- X=Y,!.
processar([],_):-!.
processar([A1|RA],LP):- aco(A1,LP), processar(RA,LP).
aco(retract(X),LP):- retract(facto(X)).
.... ... ...
E. Oliveira / MIEIC
aco(write(X),_):- write(X).
Sistemas Periciais
CARACTERSTICAS INTERACTIVAS:
Explicaes tipo WHY? (Porqu)
Exemplo do Sistema Mycin:
... ... ...
-O Organismo-2 cresce aerobicamente ou no?
> Porqu?
- J conhecido que a mancha Gram-negativa
SE o Organismo-2 cresce aerobicamente
ENTO h evidncia sugestiva que a Identidade do Organismo-2
IGUAL a STAPHILOCOCCUS
Explicaes tipo HOW? (Como?)
Exemplo do Sistema ORBI:
>Qual o valor da aptido do ponto de coordenadas 79,673 agricultura?
- No ponto 79,673 a Aptido 3 (Agricultura no intensiva) tem o valor
MUITO APTO (comrepresentatividade 3/5) PORQUE:
E. Oliveira / MIEIC
Sistemas Periciais
O valor MUITO APTO foi calculado com base em
25% Factor6 + 60% Factor4 + 5% Factor 3 + ...
e o Factor6 (Riqueza Florstica) tem o valor 1
porque depende do Descritor11 e do Descritor7 e
O Descritor11 (Equilbrio da Vegetao) tem o valor 1
porque segundo o especialista:
O Equilbrio da Vegetao MUITO BAIXO devido ao facto
das Fitocenoses Naturais se encontrarem degradadas com difcil
regresso ao climax potencial.
O Descritor7 (Escoamento) tem o valor 2
porque segundo o especialista:
.... .... ....
E. Oliveira / MIEIC
Sistemas Periciais
AQUISIO DO CONHECIMENTO e SISTEMAS PERICIAIS
Aquisio por comunicao directa (Learning by being told)
Nesta forma mais elementar de adquirir conhecimento, os Sistemas Periciais adquirem
ou modificam novas Regras por interaco natural com o especialista.
Aquisio por induo:
- Algortmos da famlia ID3
- Induo de Programas em Lgica
- ...
Aquisio por Adaptao:
- Aprendizagem por Reforo
- Redes Neuronais Artificiais no so SBC
E. Oliveira / MIEIC
Sistemas Periciais
Exemplo Prtico de Sistema Pericial:
ORBI
SISTEMA PERICIAL PARA O ORDENAMENTO BIOFSICO DO
TERRITRIO
O Problema:
Estudo das potencialidades de um territrio- tipicamente um
concelho
*Dezenas de mapas com valores observados em pontos (quadrados de
200x200 m); os valores so quantificados (0 a 5) com credibilidades
associadas e textos justificativos
*ORBI integra em Regras e numa Rede semntica o conhecimento de
especialistas em campos diferentes:
Geologia,Hidrologia, Clima, Arquitectura Paisagstica, Biologia,
Botnica, Tcnica Agrcola, etc...
*Usado para fornecer pareceres justificados na secretaria de Estado do
Ambiente.
E. Oliveira / MIEIC
Sistemas Periciais
SINTESE BIOFSICA
Agricultura intensiva
APTIDES
REDE C.Nat.
FACTORES
DESCRIPTORES
Sistemas Periciais
E. Oliveira / MIEIC
Sistemas Periciais
NVEIS DE CONHECIMENTO
METACONHECIMENTO:
AUTOCONHECIMENTO
METACONTROLO
TRS NVEIS
ARQUTIPOS
ex: CONCEITOS (Qdade, Dep, Contr, atrib, Sig).
CATEGORIAS
ex: aptido (num-nome, instancias. [sntese, rede],[factor], sig (apt).
ex: factor (num-nome, instancias. [aptido],[descritor], sig(factor) )
INSTNCIAS CONCRETAS
ex: factor (3-resistncia-eroso,[a1,a3.-],[d7,d10],
sig (f3)).
E. Oliveira / MIEIC
Sistemas Periciais
Ex.
(com operadores pr-declarados)
aptido (1-habitao, Desc, Valor, Rep):Valor=no apto se (F4=4 ou F4=5) onde factor(4-p.agrcola, Desc, F4-Rep).
ou (F6=selectivo ou F6=3) onde factor(6-rgeolgica,F6,Desc, Rep)
ou(F6b/=0 e F6b /=1 e F6b/=2)onde factor(6b-fitocenose,F6b,Desc, Rep)
ou F6f=5 onde factor (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(factor(1-clima,Desc,F1-R1),factor(2-c-terrenos-fund,Desc,F2-R2),... ).
E. Oliveira / MIEIC
Sistemas Periciais
EXPLICAES "COMO"
* Explicaes incluem:
2 nveis de profundidade
dinamicamente computadas
opcionais
formatadas
E. Oliveira / MIEIC
Sistemas Periciais
AQUISIO DAS REGRAS :
("Learning by being told")
1- Entrada em "Linguagem quase - Natural"
2- Transformao em Representao prolog intermdia
3- Execuo por interpretador apropriado
ex:
E. Oliveira / MIEIC
Sistemas Periciais
2 compor(A se B,(Cabea:-Corpo)):- tratar1(A, Cabea), %simplificado, D
tratar(B, Corpo).
...
tratar1 (At = V, regra (At, D, V)):- retract(regras(Num)), N is Num+1,
assert(regras(N)).
.... .... ...
tratar (B ou C, (NB; NC)): -
Sistemas Periciais
AQUISIO
BC DINMICAS
(ORBI)
GRAMTICA
UTILIZAO DO
METACONHECIMENTO
U
T
I
L
I
Z
A
D
O
R
entrada
aquisio
sada
retribuio
ESPERTEZA NA INTERACO
VALIDADE/REJEIO
TESTES SINTTICOS E SEMNTICOS
ANLISE
VALIDAO
METACONHECIMENTO
APRESENTAOREFORMULAO
BASE DE CONHECIMENTOS
Motor de Inferncia
E. Oliveira / MIEIC
Sistemas Periciais
MYCIN
SISTEMA PERICIAL para DIAGNOSTICAR a IDENTIDADE DE
ORGANISMOS causadores de INFECES 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
Sistemas Periciais
Sistemas Derivados
NEOMYCIN
EMYCIN
ICPMYCIN
RMYCIN
MYCIN
SHORT MYCIN
TEIRESIAS
atributos
PACIENTE
meio
Objectos
Do
Domnio
CULTURA
data
identidade
ORGANISMO
morfologia
aerobicidade
E. Oliveira / MIEIC
Sistemas Periciais
cultura-2
organismo-2 organismo-3
terapia-1 terapia-2
terapia-3
E. Oliveira / MIEIC
Sistemas Periciais
E. Oliveira / MIEIC
Sistemas Periciais
E. Oliveira / MIEIC
Sistemas Periciais
E. Oliveira / MIEIC
Sistemas Periciais
Inferncia desde os dados do ECG ao diagnstico
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
Sistemas Periciais
Ciclo de Desenvolvimento do SP ARCA
E. Oliveira / MIEIC
Sistemas Periciais
SHELLS (CONCHAS):
Programas que incluem:
- Motor de Inferncia
- Tratamento de Raciocnio 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 Construo da Base de Conhecimentos
- Modo de Consulta
Exemplos de Shells:
Consultar:
- 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
Sistemas Periciais
SHELLS (CONCHAS):
- JESS (Java Expert Systems Shell) http://herzberg.ca.sandia.gov/jess/
Programa em Java
Herdeiro do CLIPS (Lisp)
Desenvolvido nos Sandia National Labs Livermore, CA
Motor de Inferncia para REGRAS. Tipo Encadeamento Directo.
Usa Algoritmo RETE para fazer a seleco das Regras aplicveis em cada situao
RETE: Usa uma rede em que os nodos de cada ramo so premissas de uma regra com
factos associados que as satisfazem. A propagao de novos factos memorizados
dinmica e quando todos os ns de um ramo so satisfeitos essa regra activada.
RETE aumenta a velocidade custa do uso de memria
E. Oliveira / MIEIC
Sistemas Periciais
Expert Systems Applications
Outros domnios de aplicao: (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
Sistemas Periciais
Exemplo simplificado de Base de Conhecimentos de um SP (Expert System)
E. Oliveira / MIEIC
Sistemas Periciais
Exemplo simplificado de Base de Conhecimentos de um SP (Expert System)
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.
E. Oliveira / MIEIC
Sistemas Periciais
Exemplo simplificado de Base de Conhecimentos de um SP (Expert System)
Fuzzy Sets:
1
30 lit
O,1 lit
30 lit
O,5 lit
0,2 ma
0,5 ma
E. Oliveira / MIEIC
Sistemas Periciais
Exemplo simplificado de Base de Conhecimentos de um SP (Expert System)
inicio:- verifica(problema,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
actualizaFC(Atb,Valor,FCNovo,FC),
% combina FC com outros ja existentes
FC==1,!.
E. Oliveira / MIEIC
Sistemas Periciais
Exemplo simplificado de Base de Conhecimentos de um SP (Expert System)