Exercício de engenharia do conhecimento em Prolog

Post on 07-Jan-2016

25 views 0 download

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

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

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

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)

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

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

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)].