Introdução à Linguagem Prolog

Slides:



Advertisements
Apresentações semelhantes
Algoritmos de Caminho Mínimo em Grafos
Advertisements

Algoritmo de Caminho Mínimo
Árvores CC/EC/Mestrado Teoria dos Grafos ‏ 1.
Prof. M.Sc. Fábio Francisco da Costa Fontes Maio
Gustavo Sant´Anna Ferreira Rodrigo Ribeiro de Souza
Introdução à Linguagem Prolog
Inteligência Artificial
Celso C. Ribeiro Caroline T. Rocha
Fluxo em Redes Prof. Ricardo R. Santos.
Exercícios PAA- Grafos
Introdução à Programação Lógica
Introdução à Linguagem Prolog
Introdução à Linguagem Prolog
Busca em Profundidade Para encontrar um caminho de solução Sol, de um dado nó para algum nó objetivo Se N é um nó objetivo, então Sol=[N] Se há um nó N1.
Meta - heurísticas Prof. Aurora
Busca Cega (Exaustiva)
Árvore Geradora de Peso Mínimo
- Conceitos e termos - Aplicações
WAR STORY Stripping Triangulations Luciana Oliveira e Silva
Ronaldo Celso Messias Correia –
Pesquisa Operacional - Profa Úrsula L. F. Ribeiro
Capítulo 3 - Russell e Norvig
Estruturas de Dados e Complexidade de Algoritmos
Inteligência Artificial
Inteligência Artificial
Inteligência Artificial
Árvore Geradora Mínima
INF 1771 – Inteligência Artificial
INF 1771 – Inteligência Artificial
Caminhos e caminhamentos em Grafos
Algoritmos em Grafos.
T ÓPICOS DE I.A. Métodos de Busca Busca em Espaços de Estado Prof. Mário Dantas.
Grafos Árvores Geradoras.
Estratégias de Busca com informação e exploração
Exercícios PAA- Grafos
Algoritmos Genéticos em Problemas com Restrições
Histórico, exemplos e problemas
Introdução e Busca Cega
Introdução aos Agentes Inteligentes Busca Cega (Exaustiva)
Faculdade de Informática e Tecnologia de Pernambuco ESTRUTURA DE DADOS
Sistemas Especialistas
Algoritmos de Busca Local
Tópicos Avançados em Inteligência Artificial
Inteligência Artificial
Algoritmos e Estruturas de Dados I – Ponteiros
Busca sem Informação Álvaro Vinícius “Degas”
Tópicos em Sistemas Inteligentes
Ronaldo Celso Messias Correia –
Sistemas Especialistas Podem ser definidos como programas de computador desenvolvidos para representar o conhecimento humano num dado domínio específico.
Inteligência Artificial
Construção e Análise de Algoritmos
Busca Combinatorial e Métodos de Heurística
Inteligência Artificial
1 Introdução aos Agentes Inteligentes Inventando Funções Heurísticas Flávia Barros.
Satisfação de problemas restritos (CSP)
Resolução de Problemas de Busca
1 Introdução aos Agentes Inteligentes Resolução de Problemas de Busca Flávia Barros.
REVISÃO Prof. Mário Dantas

Algoritmos em Grafos Celso C. Ribeiro Caroline T. Rocha.
Resolução de Problemas Sistemas de Produção Prof. Cláudio M. N. A. Pereira.
Busca em Espaço de Estados Parte2 Algoritmos de Busca Cega
Busca em Espaço de Estados
Principais Tópicos Introdução Métodos de busca Busca cega
Projetando para WEB Composição Processos Mapa Decisões.
Sistemas Inteligentes Busca Cega (Exaustiva)
Busca Heurística Prof. Valmir Macário Filho. 2 Busca com informação e exploração Capítulo 4 – Russell & Norvig Seção 4.1 Estratégias de Busca Exaustiva.
Disciplina: Estrutura de dados e Algoritmos Docentes: MSc. Manuel Zunguze.
Transcrição da apresentação:

Introdução à Linguagem Prolog Prof. Fabrício Enembreck PPGIA – Programa de Pós Graduação em Informática Aplicada

Conteúdo do Curso Introdução à Lógica e à Programação Lógica Introdução ao Prolog e ao SWI-Prolog Matching e Backtraking Múltiplas soluções Listas e predicados recursivos Grafos em Prolog

Resolução de Problema como um Espaço de Estados Uma possível estratégia para solução de problemas é listar todos os estados possíveis. A solução do problema consiste em percorrer o espaço de estados a partir do estado inicial até o estado meta. É necessário desenvolver um conjunto de operadores que modifique um estado para um outro estado. NDFSA as a description of a problem. Other examples of the notion of state robot - coordinates in the world what direction is facing speed of movement what is looking for parsing a sentence

Definição do Problema como um Espaço de Estados (Cont.) Conjunto de Estados possíveis. Conjunto de operações possíveis que modifiquem um estado. Especificação de um estado inicial(s). Especificação de um estado meta(s).

Exemplo: Problema dos Jarros de Água 4 lt Sem limite de Água 3 lt No partial scale on jugs unlimited water from a pump. Can pour on the ground. Don’t known how much is left (unless empty). Could specify other goals, would like to develop state and operation definition that is not specific to a goal or start state. Not always so obvious that we are doing this (English vs.. klingon). Objetivo: 2 litros no jarro 4 lt

Espaço de Estados do Problema dos Jarros de Água O espaço de estados pode ser representado por dois inteiros x e y: x = litros no jarro de 4 litros y = litros no jarro de 3 litros Espaço de Estados = (x,y) tal que x  {0,1,2,3,4}, y  {0,1,2,3} State space defined abstractly (not explicitly listed).

Início dos Jarros de Água e Estados Meta O Estado Inicial ocorre quando ambos os jarros estão vazios: (0,0) O Estado Meta é qualquer estado que possua 2 litros de água no jarro de 4 litros: (2,n) para qualquer n

Estados do Jarros de Água Inicial Estados Meta (0,0) (1,0) (2,0) (3,0) (4,0) (0,1) (1,1) (2,1) (3,1) (4,1) (0,2) Explicit description of state space - usually not possible for interesting problems. (1,2) (2,2) (3,2) (4,2) (0,3) (1,3) (2,3) (3,3) (4,3)

Operações com Jarros de Água Colocar 3 lt. no jarro 3 Colocar 4 lt. no jarro 4 Esvaziar jarro 3 Esvaziar jarro 4 Coloca o conteúdo do jarro 3 no jarro 4 Outros ??? (x,y) -> (x,3) (x,y) -> (4,y) (x,y) -> (x,0) (x,y) -> (0,y) (0,y) -> (y,0) A bunch of rules - the book also has others.

(x,y), x + y <= 4 -> (y,0) Restrições Não é possível colocar água em um jarro cheio. Restrições são associadas para que uma operação possa ser aplicada sobre um estado (x,y), x < 4 -> (x,0) (x,y), y < 3 -> (0,y) (x,y), x + y <= 4 -> (y,0) Specifying when rules are applicable. Conditions that must be met before a rule is applied. Does not mean we try to describe rules that do not result in conflict or that there can never be a situation that does not match any rule. Development of a hierarchy of specificity is very useful in many domains. Default behaviors (operations)

Regras de Produção Uma operação e as condições que devem ser satisfeitas (restrições) antes da operação poder ser aplicada é chamada de regra. Tipicamente é necessário mesclar regras gerais e regras específicas. Informação prévia sobre a solução tende a produzir regras específicas e aumentar a velocidade da busca.

Domínio de Regras Específicas Para o problema dos Jarros de Água : (0,2) -> (2,0) (x,2) -> (0,2) Utilizando estas regras soluções podem ser encontradas rapidamente! Sometimes it is useful to write rules that focus on the goal - general patterns that we embed into the rules that will allow the system to detect solutions when more than 1 step away. Sometimes we create backwards rules and attempt to move from the goal state to the start state (sometimes a mixture of the two).

Grafo dos Jarros de Água (0,0) (4,0) (4,3) (1,3) (0,0) (0,3) (4,3) (0,0) (3,0) . . . . . . Uma solução possível: (4, 0) (1, 3) (1, 0) (0, 1) (4, 1) (2, 3)

Busca em Profundidade Algoritmo Estabeleça alguma ordenação às regras; Enquanto existem regras aplicáveis Aplique a próxima regra e gere um novo estado; Faça uma busca em profundidade (BP) no novo estado. fim_enquanto Follow a single path until exhausted (solution found or some termination condition arises).

Características da Busca em Profundidade g e h i k j f Não necessita armazenar o caminho de uma grande lista de estados. Pode encontrar uma solução muito rapidamente. “Poda” é possível Exemplo: utilização de heurísticas Pode facilmente encontrar problemas com ciclos (loops). “may find a solution fast” in contrast to BFS which will not explore any path of length N until all paths of length N-1 have been checked. Branch and Bound: ability to ignore some paths (subpaths) based on information we alreasy have acuqired about the solution. TTT - if we already know the other guy can win, why look at other outcomes from a specific move we make? Example of loops is necessary - water jug is good example.

Busca em Largura A estratégia de árvore para o problema dos jarros de água é um exemplo de busca em largura. Algoritmo geral para BL: crie lista_nós e a inicialize com o estado inicial; enquanto um estado meta não é encontrado ou lista_nós != {}; remova o primeiro elemento de lista_nós, primeiro_nó; aplique todas as regras possíveis em primeiro_nó e adicione os estados resultantes em lista_nós; fim_enquanto Show order of nodes generated using water jug tree picture Show development of the nodelist.

Características da Busca em Largura h i k j f Se há uma solução, BL a encontrará. Encontrará a solução mínima (o caminho mais curto até a solução). Não terá problemas com ciclos. Requer espaço disponível para armazenar lista_nós, que pode ser muito grande!!! No path of length N is tried until all paths of length N-1 have been tried.

Grafos em Prolog São normalmente utilizados para representar espaços de busca Exemplo: faz_divisa(sc, pr). % (1) faz_divisa(sc, rs). % (2) faz_divisa(pr, sp). % (3) faz_divisa(pr, ms). % (4) faz_divisa(sp, rj). % (5) faz_divisa(sp, mg). % (6) faz_divisa(sp, ms). % (7) faz_divisa(sp, pr). % (8) MG RJ MS 6 7 5 SP 4 SC 1 3 , 8 PR 2 RS

Exercícios 1) A partir do MAPA do Brasil: A) Crie um grafo em Prolog para representar as fronteiras entre os estados; B) Escreva um programa Prolog para colorir o MAPA de maneira que dois estados vizinhos não apresentem a mesma cor. Um número pequeno de cores deve ser utilizada (3 ou 4)

Exercícios 2) Implementar a resolução do problema dos jarros de água usando uma estratégia de busca em largura