Exercício de engenharia do conhecimento em Prolog

6
Exercício de engenharia do Exercício de engenharia do conhecimento em Prolog conhecimento em Prolog Criar base de conhecimento sobre safári Tarefa do sistema inteligente: Montar expedição para caçar grupo de animais Escolher: Tripulação Veículos Armas Recursos: combustível, munições Em função do tipo de animal e terreno

description

Exercício de engenharia do conhecimento em Prolog. Criar base de conhecimento sobre safári Tarefa do sistema inteligente: Montar expedição para caçar grupo de animais Escolher: Tripulação Veículos Armas Recursos: combustível, munições Em função do tipo de animal e terreno. Safári. - PowerPoint PPT Presentation

Transcript of Exercício de engenharia do conhecimento em Prolog

Page 1: Exercício de engenharia do conhecimento em Prolog

Exercício de engenharia do Exercício de engenharia do conhecimento em Prologconhecimento em Prolog

Criar base de conhecimento sobre safári Tarefa do sistema inteligente:

Montar expedição para caçar grupo de animais Escolher:

Tripulação Veículos Armas Recursos: combustível, munições

Em função do tipo de animal e terreno

Page 2: Exercício de engenharia do conhecimento em Prolog

SafáriSafári

Taxonomia de animais animais de

diversas habilidadese comportamentos:

• sensores,atuadores• tamanho,velocidade •corre,trepa,nada,voa

• inteligência• agressividade

Taxonomia de pessoas pessoas de

diversas habilidadese comportamentos:

• paleontólogo,hacker, piloto,soldado, • líder,corajoso,

altruísta Taxonomia de

terrenosterrenos: • floresta,savana,deserto• mangue,rio,lagoa,mar

• planície,montanha• caverna, construçãoTaxonomia de

veículosveículos:• moto,jipe,

caminhão-lagarta?• helicóptero,hidravião

• hovercraft,lancha,jet-ski,submarino

Taxonomia de armasarmas:• metralhadora• lança-chama• fuzil-arpão

• torpedo

Taxonomia derecursosrecursos:

• bebida,comida• energia,combustível

• munições,peças• telecomunicações

Page 3: Exercício de engenharia do conhecimento em Prolog

Processo de desenvolvimento: Processo de desenvolvimento: modelagem e implementação modelagem e implementação

Modelagem entidade-relacionamento ou OO estrutural em UML como para um BD relacional

Implementação Prolog: Cada classe de entidade implementada por um predicado unário e

uma variável Cada instância de entidade implementada por uma constante Cada atributo de cada classe implementada por uma regra

valorAtributo(X) :- classe(X) ou atributo(V,X) :- classe(X). Cada relacionamento N-ário implementada por um predicado

N-ário e N variáveis Cada relações hierárquica de subclasse/superclasse implementada

por uma regra superclasse(X) :- subclasse(X). Cada relações não diretamente modeladas, mas que podem ser

construídas a partir da junção de vários relacionamentos modelados, para responder a consultas, implementada por uma (ou várias) regra(s)

Cada restrição de integridade do domínio implementada por uma (ou várias) regra(s)

Page 4: Exercício de engenharia do conhecimento em Prolog

Processo de desenvolvimento: testesProcesso de desenvolvimento: testes

Criar conjunto de consultas para cada predicado Prolog definido

Para cada consulta, definir respostas esperadas (valor de verdade e das variáveis)

Desenhar grafo de dependências entre os predicados

Testar os predicados bottom-up, começando pelos predicados nas folhas e subindo do grafo

Para cada predicado, testar todas as soluções retornadas, forçando o backtracking

a(X,Y,Z) :- b(X,Y), c(Y,Z).b(X,Y) :- d(X), e(Y), f(X).c(Y,Z) :- g(Y,U), h(Z,V), c(U,V).

d/1 g/2e/1 f/2 h/2

b/2 c/2

a/3

Page 5: Exercício de engenharia do conhecimento em Prolog

Exemplos de regras e fatosExemplos de regras e fatos

aquatico(Animal) :- tubarao(Animal).aquatico(Animal) :- aveMarina(Animal).terrestre(Animal) :- tarentula(Animal).terrestre(Animal) :- aveMarina(Animal).aereo(Animal) :- aveMarina(Animal).

mata(Arma,Animal) :- potenciaArma(Arma,Potencia), tamanhoAnimal(Animal,Tamanho),

suficiente(Potencia,Tamanho), elementoArma(Arma,Elemento), elementoAnimal(Animal,Elemento).

captura(Arma,Animal) :- ....

elementoArma(fuzil,ar).elementoArma(fuzilHarpao,água).

elementoAnimal(Animal,ar) :- terrestre(Animal).elementoAnimal(Animal,ar) :- aereo(Animal).elementoAnimal(Animal,agua) :-

aquatico(Animal).

aquaticoProfundo(Veiculo) :- submarino(Veiculo).

aquaticoSuperficial(Veiculo) :- hovercraft(Veiculo).

terrestre(Veiculo) :- hovercraft(Veiculo).

terreste(Veiculo) :- jeep(Veiculo).

sabeUsar(fuzil,Pessoa) :- soldado(Pessoa).

sabeUsar(fuzilHarpão) :- mergulhador(Pessoa).

sabeUsar(submarino,Pessoa) :- piloto(Pessoa),marinheiro(Pessoa).

soldado(trinity).mergulhador(trinity).piloto(trinity).marinheiro(trinity).

Page 6: Exercício de engenharia do conhecimento em Prolog

Exemplos de regras e fatosExemplos de regras e fatos

conflito(Tripulacao) :- member(Pessoa1,Tripulacao), member(Pessoa2,Tripulacao),Pessoa1 /= Pessoa2,

paranoica(Pessoa1), paranoica(Pessoa2), semLider(Tripulacao).

semLider([H|T]) :- not lider(H), semLider(T).

perigoso(jacaré).

?- safari([rinoceronte,baleia], Triplucacao, Veiculos,

Combustiveis, Armas, Munições].

Tripulacao = [trinity,buckarooBanzai].

Armas = [fuzil,rede,fuzilHarpão].Veiculos = [hovercraft]Combustiveis =

[combustivel(gasolina,1000)].