inteligência artificial - iaaraguaia2.ufmt.br/professor/disciplina_arquivo/90/20161213916.pdf ·...

19
Inteligência Artificial - IA Busca sem informação Estratégias para determinar a ordem de expansão dos nós: 1. Busca em extensão 2. Busca de custo uniforme 3. Busca em profundidade 4. Busca com aprofundamento iterativo Direção da expansão: 1. Do estado inicial para um estado final 2. De um estado final para o estado inicial 3. Busca bi-direcional 1

Upload: trinhmien

Post on 28-May-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Inteligência Artificial - IAaraguaia2.ufmt.br/professor/disciplina_arquivo/90/20161213916.pdf · Inteligência Artificial - IA Busca sem informação Estratégias para determinar

Inteligência Artificial - IA

Busca sem informação

Estratégias para determinar a ordem de expansão dos nós:

1. Busca em extensão

2. Busca de custo uniforme

3. Busca em profundidade

4. Busca com aprofundamento iterativo

Direção da expansão:

1. Do estado inicial para um estado final

2. De um estado final para o estado inicial

3. Busca bi-direcional

1

Page 2: Inteligência Artificial - IAaraguaia2.ufmt.br/professor/disciplina_arquivo/90/20161213916.pdf · Inteligência Artificial - IA Busca sem informação Estratégias para determinar

Inteligência Artificial - IA

Busca em extensão

Ordem de expansão dos nós:

1. Nó raiz

2. Todos os nós de profundidade 1

3. Todos os nós de profundidade 2, etc…

Algoritmo:

função Busca-em-Extensão (problema)

retorna uma solução ou falha

Busca-Genérica (problema, FILA-FIFO())

2

Page 3: Inteligência Artificial - IAaraguaia2.ufmt.br/professor/disciplina_arquivo/90/20161213916.pdf · Inteligência Artificial - IA Busca sem informação Estratégias para determinar

Inteligência Artificial - IA

Exemplo: Jogo dos 8 números

3

4 5 8

1 6

7 3 2

5 8

4 1 6

7 3 2

4 5 8

7 1 6

3 2

4 5 8

6

7 3 2

1

up down right

1 2 3

4 6

7 8

5

down right

Page 4: Inteligência Artificial - IAaraguaia2.ufmt.br/professor/disciplina_arquivo/90/20161213916.pdf · Inteligência Artificial - IA Busca sem informação Estratégias para determinar

Inteligência Artificial - IA

Busca em extensão

Esta estratégia é completa

É ótima ?

Sempre encontra a solução mais “rasa”

→ que nem sempre é a solução de menor custo de caminho,

caso os operadores tenham valores diferentes.

É ótima se

Quando os custos de todos os passos são iguais, porque sempre

expande o nó mais raso não-expandido.

4

Page 5: Inteligência Artificial - IAaraguaia2.ufmt.br/professor/disciplina_arquivo/90/20161213916.pdf · Inteligência Artificial - IA Busca sem informação Estratégias para determinar

Inteligência Artificial - IA

Busca em Extensão Fator de ramificação da árvore de busca: número de nós gerados a partir de cada nó (b)

Custo de tempo:

se o fator de expansão do problema = b, e a primeira solução para o problema está no nível d,

então o número total de nós gerados até se encontrar a solução será b + b2 + b3 + … + bd + ( bd+1 – b) = O(b d+1 )

custo exponencial = O (bd +1).

Custo de memória:

Devido a complexidade ser exponencial implica diretamente no custo de memória (espaço de estados deve permanecer na memória )

é um problema mais crucial do que o tempo de execução da busca

5

Page 6: Inteligência Artificial - IAaraguaia2.ufmt.br/professor/disciplina_arquivo/90/20161213916.pdf · Inteligência Artificial - IA Busca sem informação Estratégias para determinar

Inteligência Artificial - IA

Busca em extensão

Esta estratégia só dá bons resultados quando a profundidade da árvore de busca é pequena.

Exemplo:

suponha que o fator de expansão b = 10 e que 10.000 nós possam ser gerados por segundo, e que um nó exige 1000 bytes de espaço de armazenamento.

6

Profundidade Nós Tempo Memória

2 1100 0,11 segundos 1 megabyte

4 111.100 11 segundos 106 megabytes

6 107

19 minutos 10 gigabytes

8 109 31 horas 1 terabyte

10 1011

129 dias 101 terabytes

12 1013

35 anos 10 pentabyte

14 1015

3523 anos 1 exabyte

Page 7: Inteligência Artificial - IAaraguaia2.ufmt.br/professor/disciplina_arquivo/90/20161213916.pdf · Inteligência Artificial - IA Busca sem informação Estratégias para determinar

Inteligência Artificial - IA

Busca com custo uniforme

Modifica a busca em extensão: • expande o nó n que tiver o caminho de custo mais baixo na

lista do espaço de estados

• cada operador pode ter um custo associado diferente, medido pela função g(n), para o nó n. – onde g(n) dá o custo do caminho da origem ao nó n

Na busca em extensão: g(n) = profundidade (n)

Algoritmo:

função Busca-de-Custo-Uniforme (problema)

retorna uma solução ou falha

Busca-Genérica (problema, FILA-FIFO)

7

Page 8: Inteligência Artificial - IAaraguaia2.ufmt.br/professor/disciplina_arquivo/90/20161213916.pdf · Inteligência Artificial - IA Busca sem informação Estratégias para determinar

Inteligência Artificial - IA

Exemplo:

8

Page 9: Inteligência Artificial - IAaraguaia2.ufmt.br/professor/disciplina_arquivo/90/20161213916.pdf · Inteligência Artificial - IA Busca sem informação Estratégias para determinar

Inteligência Artificial - IA

Busca com custo uniforme (exemplo lista anterior)

F = {S} testa se S é o estado objetivo, expande-o e guarda seus filhos A, B e C

ordenadamente na lista

F = {A, B, C} testa A, expande-o e guarda seu filho GA ordenadamente

obs.: o algoritmo de geração e teste guarda na lista todos os nós gerados, testando se um nó é o objetivo apenas quando ele é retirado da lista

F= {B, GA, C} testa B, expande-o e guarda seu filho GB ordenadamente

F= {GB, GA, C} testa GB e para

9

Page 10: Inteligência Artificial - IAaraguaia2.ufmt.br/professor/disciplina_arquivo/90/20161213916.pdf · Inteligência Artificial - IA Busca sem informação Estratégias para determinar

Inteligência Artificial - IA

Busca com custo uniforme

Esta estratégia é completa

É ótima se g (sucessor(n)) ≥ g (n)

custo de caminho no mesmo caminho não decresce

i.e., não tem operadores com custo negativo

caso contrário, teríamos que expandir todo o espaço de estados em busca da melhor solução. Ex. Seria necessário expandir também o nó C do exemplo, pois o

próximo operador poderia ter custo associado = -13, por exemplo, gerando um caminho mais barato do que através de B

Custo de tempo e de memória • teoricamente, igual ao da busca em extensão

10

Page 11: Inteligência Artificial - IAaraguaia2.ufmt.br/professor/disciplina_arquivo/90/20161213916.pdf · Inteligência Artificial - IA Busca sem informação Estratégias para determinar

Inteligência Artificial - IA

Busca em profundidade Ordem de ramificação dos nós: Sempre expande o nó no nível mais profundo da árvore:

nó raiz primeiro nó de profundidade 1 primeiro nó de profundidade 2, e assim por diante

Variante: Quando um nó final não é solução (ou é, mas se quer

encontrar todas as soluções), o algoritmo volta para expandir os nós que ainda estão na lista do espaço de estados. Processo denominado de retrocesso ou backtracking

Algoritmo: função Busca-em-Profundidade (problema)

retorna uma solução ou falha Busca-Genérica (problema, FILA-LIFO())

11

Page 12: Inteligência Artificial - IAaraguaia2.ufmt.br/professor/disciplina_arquivo/90/20161213916.pdf · Inteligência Artificial - IA Busca sem informação Estratégias para determinar

Inteligência Artificial - IA

Busca em profundidade

12

Page 13: Inteligência Artificial - IAaraguaia2.ufmt.br/professor/disciplina_arquivo/90/20161213916.pdf · Inteligência Artificial - IA Busca sem informação Estratégias para determinar

Inteligência Artificial - IA

Busca em profundidade

Esta estratégia não é completa nem é ótima.

Essa estratégia deve ser evitada quando as árvores geradas são muito profundas ou geram caminhos infinitos

Custo de memória:

Só precisa armazenar um único caminho da raiz até um nó de folha, junto com os nós irmãos não expandidos restante de cada nó no caminho (para possibilitar o backtracking).

Custo de tempo: O(bm), no pior caso. (sendo m = profundidade máxima de qualquer nó)

Para problemas com várias soluções, esta estratégia pode ser bem mais rápida do que a busca em extensão.

13

Page 14: Inteligência Artificial - IAaraguaia2.ufmt.br/professor/disciplina_arquivo/90/20161213916.pdf · Inteligência Artificial - IA Busca sem informação Estratégias para determinar

Inteligência Artificial - IA

Busca em profundidade limitada

O problema de árvores ilimitadas podem ser atenuados pela busca em profundidade com limite de profundidade predeterminado l.

Nós na profundidade l são tratados como se não tivessem sucessores.

Problemas:

- se l <d: gera incompletude

Se o limite for muito pequeno (menor que qualquer caminho até uma solução) então a busca falha

- se l > d: gera complexidade de tempo e espaço

Se o limite for muito grande, a busca se torna muito complexa

14

Page 15: Inteligência Artificial - IAaraguaia2.ufmt.br/professor/disciplina_arquivo/90/20161213916.pdf · Inteligência Artificial - IA Busca sem informação Estratégias para determinar

Inteligência Artificial - IA

Busca de aprofundamento iterativo em profundidade É uma estratégia geral, que encontra o melhor limite de profundidade (l ).

Ou seja, aumenta-se gradualmente o limite de profundidade: primeiro zero, depois 1, depois 2, e assim por diante, até encontrar um objetivo.

Isso ocorrerá quando o limite de profundidade alcançar d, a profundidade do nó objetivo mais raso.

função BUSCA-POR-APROFUNDAMENTO-ITERATIVO (problema) retorna uma solução ou falha

entradas: problema, um problema para profundidade 0 até ∞ faça

resultado BUSCA-EM-PROFUNDIDADE-LIMITADA (problema, profundidade)

se resultado ≠ corte então retornar resultado

Combina as vantagens de busca em largura com busca em profundidade.

15

Page 16: Inteligência Artificial - IAaraguaia2.ufmt.br/professor/disciplina_arquivo/90/20161213916.pdf · Inteligência Artificial - IA Busca sem informação Estratégias para determinar

Inteligência Artificial - IA

Comparação entre as estratégias de busca sem informação

Complicações nos critérios de busca:

- Expansão de estados já expandidos

- Desperdício de tempo

16

Critério Em extensão

Custo uniforme

Em profundidade

Em profundidade limitada

Aprofunda-mento iterativo

Completa? Sim a Sim a Não Não Sim a

Ótima? Sim c Sim Não Não Sim c

Page 17: Inteligência Artificial - IAaraguaia2.ufmt.br/professor/disciplina_arquivo/90/20161213916.pdf · Inteligência Artificial - IA Busca sem informação Estratégias para determinar

Inteligência Artificial - IA

Busca com informações parciais O que acontece quando o conhecimento dos estados ou ações é

incompleto? 1- problemas sem sensores (conformidade): se o agente não tem

nenhum sensor, então ele poderia estar em qualquer um dos vários estados iniciais possíveis, e cada ação poderia levar a um entre vários estados sucessores possíveis. (Estado de crença)

2 – problemas de contingência: se o ambiente for parcialmente observável ou se as ações forem incertas, as percepções do agente fornecerão novas informações depois de cada ação. Cada percepção possível define uma contingência que deve ser planejada. Um problema é chamado adverso se a incerteza é causada pelas ações de outro agente.

3 – problemas de exploração: quando os estados e as ações do ambiente são desconhecidos, o agente deve atuar e descobri-los. Esses são casos extremos de problemas de contingência.

17

Page 18: Inteligência Artificial - IAaraguaia2.ufmt.br/professor/disciplina_arquivo/90/20161213916.pdf · Inteligência Artificial - IA Busca sem informação Estratégias para determinar

Inteligência Artificial - IA

Exercícios a) Para o problema de rota (Barra-Goiânia), implemente os

algoritmos de: busca em extensão, custo uniforme e profundidade.

b) Para o problema do jogo de 8 números, implemente sua solução num dos tipos de busca dado.

c) Utilize o mapa do livro Russel (anexo) e implemente o algoritmo de busca em extensão e aprofundamento iterativo em profundidade. Compare os resultados.

d) Considerando o mundo do aspirador de pó; qual algoritmo dos estudados seria mais conveniente para esse problema. O algoritmo deve verificar estados repetidos?

e) Aplique o algoritmo escolhido para calcular a sequencia de ações para um mundo 3x3, cujo estado inicial tem sujeira nos três quadrados superiores e o agente está no centro.

A linguagem de programação fica a sua escolha.

18

Page 19: Inteligência Artificial - IAaraguaia2.ufmt.br/professor/disciplina_arquivo/90/20161213916.pdf · Inteligência Artificial - IA Busca sem informação Estratégias para determinar

Inteligência Artificial - IA

Referências Rich, Elaine; Knight, Kevin, Artificial Intelligence, Second Edition, McGraw. Hill, 1993.

Russel, S.; Norvig, P. Artificial Intelligence: A Modern Approach, 2ª ed., Elsevier, Ed. Campus, 2004.

19