27
1 Inteligência Artificial Aula 6

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

Embed Size (px)

Citation preview

Page 1: 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

1

Inteligência Artificial

Aula 6

Page 2: 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

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;

Page 3: 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

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 ;

Page 4: 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

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;

Page 5: 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

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)

Page 6: 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

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

Page 7: 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

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;

Page 8: 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

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;

Page 9: 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

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;

Page 10: 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

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;

Page 11: 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

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);

Page 12: 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

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;

Page 13: 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

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;

Page 14: 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

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

Page 15: 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

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)

Page 16: 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

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)

Page 17: 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

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

Page 18: 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

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

Page 19: 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

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

Page 20: 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

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;

Page 21: 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

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;

Page 22: 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

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;

Page 23: 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

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;

Page 24: 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

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,_).

Page 25: 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

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

Page 26: 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

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;

Page 27: 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

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;