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

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

Missionários e Canibais

Apresentações semelhantes


Apresentação em tema: "Missionários e Canibais"— Transcrição da apresentação:

1 Missionários e Canibais
Estratégias de Busca Bruno Kinder Almentero Yura Carvalho Ferreira

2 Descrição do Problema O problema é bastante popular na literatura pois foi assunto do primeiro artigo a tratar de formulação de problemas de busca de forma analítica. Pode ser formulado de várias maneiras

3 Descrição do Problema Três missionários e três canibais estão às margens de um rio. Na mesma margem existe um bote com capacidade para no máximo duas pessoas. O problema é o de encontrar uma forma de levar as 6 pessoas para a outra margem do rio, sem nunca deixar numa margem um número maior de canibais do que de missionários.

4 Busca em Largura Expande primeiro todos os nós de um nível antes de avançar para o próximo É ótima e completa Armazena todos os nós

5 Busca em Profundidade Expande primeiro todos os nós de um caminho
Não é ótimo nem completo Armazena somente os nós do caminho

6 Busca Limitada em Profundidade
BP com um limite máximo de profundidade É completo se a profundidade máxima for maior ou igual ao nível da solução. Não é ótimo Armazena somente os nós do caminho.

7 Busca em Profundidade Iterativa
Combinação de BP com Busca Limitada em Profundidade É completa e ótima. Armazena somente os nós do caminho

8 Busca A* Utilizada o custo real mais uma função heurística
É completa e ótima Armazena todos os nós

9 Modelagem Um estado tem a seguinte forma: (m, c, b), onde m é o número de missionários na margem de origem, c é o número de canibais na mesma margem e se b = 1 indica que o barco está na margem de origem, se b = 0 indica que o barco está na margem oposta. Um nó possui um estado, um nível, uma heurística e um ponteiro para o seu pai.

10 Modelagem Os operadores do problema são:
mover 1 missionário mover 1 canibal mover 2 missionários mover 2 canibais mover 1 missionário e 1 canibal Dessa maneira o nosso estado inicial será (3, 3, 1) e aplicando-se os operadores e descartando os estados inválidos ( nº canibais > nº missionários em uma mesma margem) devemos chegar a solução (0, 0, 0).

11 Implementação Neste problema especificamente, estados repetidos são gerados freqüentemente e para evitar que a busca em Profundidade entre em “loop”, não visitamos estados repetidos. A busca Limitada em Profundidade e a busca em Profundidade Iterativa são análogas à busca em Profundidade. A única diferença é que não precisamos testar os estados repetidos já que impomos um limite máximo de profundidade.

12 Implementação Todos as buscas são implementadas em uma mesma função (função busca) e a busca Iterativa nada mais é que um loop que chama a busca em Profundidade para cada limite até que a solução seja encontrada.

13 Heurística A* Número de missionários na margem destino é uma boa heurística? A heurística escolhida foi o número de Missionários na margem de origem. Por que? A heurística é admissível? Pode decrescer?

14 Heurística A* Margem RIO Margem Origem Destino (2 , 3 , 1) (1, 0 , 0)
(2 , 3 , 1) (1, 0 , 0) (1, 1, 0) (2, 2, 1)

15 Resultados Máquina: AMD –750 Mhz, 640MB RAM e Sistema Operacional Windows XP

16 Resultados Para finalizar salientamos que estes dados gerados como resultado foram muito importantes para avaliarmos a corretude do algoritmo. Isso foi conseguido pois examinando os dados e verificando informações incoerentes, permitiu uma gradativa correção do algoritmo até se encontrar a solução certa e livre de erros

17 Conclusões Todos os algoritmos acham a solução, a única exceção é a busca em profundidade limitada que só encontra a solução se a profundidade máxima for maior que o nível da solução mais rasa. Basicamente a diferença entre os algoritmos implementados é a ordenação da lista que armazena os nós que deverão ser expandidos.


Carregar ppt "Missionários e Canibais"

Apresentações semelhantes


Anúncios Google