Post on 17-Apr-2015
1
Inteligência Artificial
Aula 6
2
Regras de produção
• Exemplo de sistema de representação procedimental , baseado na lógica de primeira ordem (prolog constitui um exemplo desta abordagem);
• especialistas tendem a expressar suas técnicas de solução de problemas em termos de conjuntos de regras situação-ação;
• regras de produção = conhecimento é representado como uma coleção de regras do tipo se condição então ação;
3
– A ação corresponde a algum procedimento que acarreta uma conclusão ou mudança no estado corrente;
– o conjunto de regras de produção é visto como uma representação de conhecimento procedimental, baseada em lógica de primeira ordem;
• este esquema representa um dos melhores meios disponíveis para codificação da experiência de especialistas, na resolução de problemas;
• regra de produção apresentam um estilo estímulo-resposta na representação ;
4
• Principais propriedades das regras de produção:– incorporam conhecimento prático (heurístico) em regras se-
então;– sua habilidade cresce em uma taxa proporcional ao crescimento
da base de conhecimento (crescimento incremental);– pode resolver um grande intervalo de problemas possivelmente
complexos utilizando regras relativamente simples e combinando os resultados de maneira apropriada;
– podem explicar suas conclusões refazendo suas linhas de raciocínio e traduzindo a lógica de cada regra empregada em linguagem natural;
5
• Cada regra aproxima um fragmento independente do conhecimento (conhecimento refinado com a adição de nova regra);
• as regras de produção descrevem as relações entre os objetos do domínio ( se... então...);– os objetos tem diversos atributos ligados a ele;
• cada condição da regra representa uma informação na forma objeto-atributo-valor ou objeto-atributo:– exemplo retirado do MYCIN ( programa de
diagnóstico de doenças infecciosas)
6
– Se local da cultura for o sangue e a morfologia do organismo for bastonete e a mancha de gram do organismo for gram-positiva e o doente estiver em perigo então existe evidência de que a identidade do organismo é Pseudomonas-aeruginosa (regra102);
• mostrando objeto-atributo valor da regra;
Objeto Atributo Valor
cultura local sangue
organismo morfologia bastonete
organismo mancha de gram gram-positiva
doente comprometimento verdade
organismo identidade Pseudomonas-aeruginosa
7
• Um sistema típico de regras de produção é formado por:– uma base de conhecimento;– memória de trabalho;– máquina de inferências;
• linguagens como Prolog e Lisp já incorporam a memória de trabalho e a máquina de inferências:– o que não ocorre em linguagens tradicionais
como C e Java onde há necessidade de implementar estes mecanismos;
8
– existem shells (programas específicos para implementação de regras) que já incorporam a memória de trabalho,a máquina de inferências e as rotinas de interface com o usuário, tornado muito mais fácil o trabalho sendo que o desenvolvedor precisa apenas codificar o conhecimento ;
– shells = pseudo linguagens interpretadas, não gera executável;
• base de conhecimento:base de conhecimento:– composta por regras e fatos;– regras: declaração sobre classes e objetos:
• SE condição (antecedente) ENTÂO ação (consequente);
– fatos: declarações sobre objetos específicos;
9
• Memória de trabalho:Memória de trabalho:– representa o estado do problema em um dado
instante (permite comunicação entre regras);– possui dados dinâmicos de curta duração que
existem enquanto uma regra estiver sendo interpretada;
• com a especificação do estado meta do problema, a máquina de inferência é ativada:– responsável pela execução das regras,
determinando quais são relevantes, de acordo com a configuração da memória de trabalho e pela escolha de quais aplicar;
– isto acontece em ciclos;
10
– em cada ciclo:• as regras são examinadas buscando as que são apropriadas para ativação;
– um ciclo pode ser dividido nem três fases:– Seleção de regras;– resolução de conflitos;– ação;– se o desenvolvedor estiver utilizando Prolog, Lisp ou uma shell
não terá como interferir nestas fases;
• Seleção de regras ou matching:Seleção de regras ou matching:– objetivo é encontrar todas as regras que são satisfeitas pelo
conteúdo da memória de trabalho;
11
– tarefa de “casar” as regras com os dados da memória de trabalho gerando um conjunto de conflito;
– conjunto de conflito= regras que satisfazem as “condições de casamento”, ou seja, regras passíveis de serem executadas;
• as estratégias mais utilizadas para este casamento são:– raciocínio para frente (raciocínio dirigido por
regras);– raciocínio para trás (raciocínio orientado por
metas);
12
• Raciocínio para Frente:– dirigido por dados, antecedente, progressivo,
“foward-chaining” ou bottom-up”;– os dados da memória de trabalho são “casados”
com as condições das regras;– o programa inicia do estado inicial e gera
estados intermediários através da execução das ações das regras;
– a meta permanece a mesma durante todo o processo de solução do problema;
– quando um destes estados alcançáveis casar com a meta, o problema está resolvido;
13
• Raciocínio para trás:– dirigido por metas, conseqüente, regressivo,
“top-down” ou “backward-chining”;– o programa inicia com a configuração objetivo
final = meta;– seleciona uma ou mais regras, cuja ação casa
com o objetivo em alguma extensão;;– o lado esquerdo das regras selecionadas é
utilizado para gerar novos objetivos a serem atingidos e o processo continua até que um deles seja casado com o estado inicial;
14
• Veja o exemplo:– possuímos a seguinte base de conhecimento:
fatos regras
Marcos é homem. SE x é homem
César é homem. ENTÃO x é pessoa.
– A meta é responder a questão
– Estado meta: “ Existe x que é pessoa ?”
– Estado inicial: fatos
15
– Com a estratégia raciocínio para frente o nó raiz conterá o estado inicial (conjunto de fatos) e a meta será encontrar uma pessoa;
– como o antecedente da regra 1 casa com o estado inicial, o segundo nível será composto do nó “ Marcos é pessoa” ;
– o processo de inferência é encerrado porque houve o casamento com a meta, através da substituição da variável x por Marcos;
– o sistema responde com “ sim, x= Marcos”;
homem(Marcos)
homem(César)
pessoa(Marcos)
16
– Com a estratégia raciocínio para trás o nó raiz conterá a meta;
– o próximo nível é formado pelo antecedente da regra 1, isto é “ x é homem”, pois o seu conseqüente casa com a raiz;
– analogamente o segundo nível é formado por “ Marcos é homem” e a inferência é interrompida pois se atingiu um estado inicial;
– o sistema responde com “ sim, x=Marcos”;
pessoa(x)
homem(x)
homem(Marcos)
17
• Utilizado em sistemas especialistas, mesclando de acordo com a situação o raciocínio para frente e o raciocínio para trás;
• exemplo:
Objetivo: escolher um vinho;
Fatos: dados de entrada;
Regras:
Regra 1Se tem molho
e molho = apimentado
então melhorcorpo = encorpado
18
Regra2 Se sabor = delicado
então melhorcorpo = leve
Regra3Se pratoprincipal = peixe
então melhorcor = branco
Regra4
Se pratoprincipal <> peixee tem molho
e molho = tomate
então melhorcor = tinto
19
Regra5Se cor recomendada = branco
e corpo recomendado = leve
e suavidade recomendada = medio
então vinho = chenin blanc
Regra5Se cor recomendada = tinto
e corpo recomendado = medio
e suavidade recomendada = medio
então vinho = Pinot Noir
20
Prolog
• É uma linguagem que utiliza o paradigma de programação em lógica;
• representamos conhecimento positivos;• hipótese do mundo fechado=as declarações relevantes
e verdadeiras estão contidas na base de conhecimento ou podem ser derivadas ( método de inferência);
• negação = ausência da declaração;• resolução por refutação = P é consistente se falha ao
tentar provar ¬P;
21
• definições lógicas em programas Prolog constituem cláusulas de Horn;
• Cláusulas de Horn:– tem no máximo um literal positivo;– qualquer fbf (fórmula bem formada) de uma lógica de primeira ordem
pode ser representada na forma clausal;– não possui conectivo ;– quantificadores universais () é aplicado a predicados conectados por ;
• Prolog:– os quantificadores não são explicitados;– o conectivo é representado por vírgula;
22
– As implicações do tipo p q são representados invertidos como q:-p ;
– as disjunções são representadas por uma lista de declarações alternativas representadas por ; ;
– os comandos são finalizados com um ponto;– cabeças de regra no Prolog são as conseqüentes
nas regras de produção (então);– cada cabeça de regra representa uma ação (se
condição e condição e ... então ação);– variáveis iniciam com letras maiúsculas;– constantes iniciam com letras minúsculas;– predicados iniciam com letras minúsculas;
23
• Os fatos das cláusulas de Horn são decidíveis:– há garantias de parar quando a cláusula que
tiver de se demonstrada não for dedutível a partir dos fatos e regras conhecidos;
• a base de conhecimento é expressa por conhecimento codificado como cláusulas de Horn transformadas, ou seja, cláusulas prolog;
• a máquina de inferência do Prolog é composto do procedimento de inferência e de uma estratégia de busca;
24
• usa resolução e raciocínio para trás e estratégia de busca em profundidade, analisando as regras da esquerda para a direita e de cima para baixo;
• Exemplo de programas em Prolog
1.amigo(joao,jose).
amigo(joao,jorge).
amigo(joao,jaco).
amigo(pedro,paulo).
amigo(pedro,julio).
Tem_amigos(X):-amigo(X,_).
25
female(pam).
male(tom).
Male(bob).
female(liz).
female(pat).
female(ann).
male(jim).
parent(tom,liz).
parent(pam,bob).
parent(tom,bob).
parent(bob,ann).
parent(bob,pat).
parent(pat,jim).
offspring(Y,X):-parent(X,Y).
father(X,Y):-male(X),parent(X,Y).mother(X,Y):-female(X),parent(X,Y).grandparent(X,Y):-parent(Z,Y),parent(X,Z).sister(X,Y):-female(X),parent(Z,X),parent(Z,Y).hasachild(X):-parent(X,Y).happy(X):-hasachild(X).hastwochildren(X):-parent(X,Y),sister(Y,Z).grandchild(X,Z):-parent(Y,X),parent(Z,Y).aunt(X,Y):-parent(Z,Y),sister(X,Z),not(mother(X,Y)).
Exemplo 2
26
Vantagens:
• Ampla expressividade;
• representação de associações empíricas (heurísticas) em domínios não estruturados;
• codificação da experiência de especialistas na resolução de problemas;
• possui sintaxe e semântica simples;
• aplicação: sistemas de diagnóstico;
• prototipação: crescimento incremental da base de conhecimento;
27
Desvantagens• Falta de estruturação da base de conhecimento dificulta:
– introduzir modificações na base;– localizar informações desejadas;– representar estruturas inerentes ao domínio:
• taxonomia de classes;• relações temporais;• relações estruturais;• herança de atributos;
• não facilita a distinção semântica entre propriedades essenciais e propriedades complementares dos objetos;