A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Exercício de engenharia do conhecimento em Prolog

Apresentações semelhantes


Apresentação em tema: "Exercício de engenharia do conhecimento em Prolog"— Transcrição da apresentação:

1 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 Em função do tipo de animal e terreno

2 Safári Taxonomia de armas: metralhadora lança-chama fuzil-arpão
torpedo Taxonomia de pessoas de diversas habilidades e comportamentos: paleontólogo,hacker, piloto,soldado Taxonomia de veículos: moto,jipe, caminhão-lagarta? helicóptero,hidravião hovercraft,lancha, jet-ski,submarino Taxonomia de animais de diversas habilidades e comportamentos: sensores,atuadores tamanho,velocidade corre,trepa,nada,voa inteligência agressividade Taxonomia de terrenos: floresta,savana,deserto mangue,rio,lagoa,mar planície,montanha caverna, construção

3 Processo de desenvolvimento: 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)

4 Processo 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). a/3 b/2 c/2 d/1 e/1 f/2 h/2 g/2

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

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


Carregar ppt "Exercício de engenharia do conhecimento em Prolog"

Apresentações semelhantes


Anúncios Google