agentes que resolvem resolução de problemas problemasnoel/ia/pesquisa.pdf · encontrar a...

24
© Noel de Jesus Mendonça Lopes 1 Resolução de Problemas o Como é que um agente pode definir os seus objectivos e traçar sequências de acções que o podem levar a atingir esses mesmos objectivos ? o O objectivo e o conjunto de meios necessários para o atingir é designado por problema e o processo levado a cabo para explorar esses meios é designado por pesquisa. © Noel de Jesus Mendonça Lopes 2 Agentes que resolvem problemas o Um agente pode deliberar o que fazer considerando para tal os resultados das sequências de acções que pode tomar. o Estes agentes (problem-solving agents) são um tipo especifico dos agentes baseados em objectivos. o Decidem o que fazer através da procura de sequências de acções que levem a estados desejáveis. o A formulação do objectivo, baseando-nos na situação actual, é o primeiro passo para a resolução de um problema. © Noel de Jesus Mendonça Lopes 3 Objectivo o Nesta fase consideramos o objectivo como sendo um conjunto de estados do mundo, em que determinado critério é satisfeito. o As acções podem ser vistas como sendo responsáveis pelas transições entre estados, pelo que o agente deverá encontrar a sequência de acções que permitem chegar a um dos estados do mundo onde o objectivo é satisfeito. © Noel de Jesus Mendonça Lopes 4 Objectivo o Antes de procurar a sequência de acções que permitem atingir o objectivo, o agente deverá decidir quais os estados e as acções que deve considerar. o Formulação do problema Processo de decisão das acções e dos estados a considerar (passo seguinte à formulação do objectivo).

Upload: hangoc

Post on 14-Dec-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Agentes que resolvem Resolução de Problemas problemasnoel/IA/pesquisa.pdf · encontrar a sequência de acções que ... oUma vez encontrada uma solução, o ... 6 1 7 3 8 2 5 4

1

© Noel de Jesus Mendonça Lopes 1

Resolução de Problemas

o Como é que um agente pode definir os seus objectivos e traçar sequências de acções que o podem levar a atingir esses mesmos objectivos ?

o O objectivo e o conjunto de meios necessários para o atingir é designado por problema e o processo levado a cabo para explorar esses meios é designado por pesquisa.

© Noel de Jesus Mendonça Lopes 2

Agentes que resolvem problemaso Um agente pode deliberar o que fazer

considerando para tal os resultados das sequências de acções que pode tomar.

o Estes agentes (problem-solving agents) são um tipo especifico dos agentes baseados em objectivos.

o Decidem o que fazer através da procura de sequências de acções que levem a estados desejáveis.

o A formulação do objectivo, baseando-nos na situação actual, é o primeiro passo para a resolução de um problema.

© Noel de Jesus Mendonça Lopes 3

Objectivo

o Nesta fase consideramos o objectivo como sendo um conjunto de estados do mundo, em que determinado critério é satisfeito.

o As acções podem ser vistas como sendo responsáveis pelas transições entre estados, pelo que o agente deverá encontrar a sequência de acções que permitem chegar a um dos estados do mundo onde o objectivo é satisfeito.

© Noel de Jesus Mendonça Lopes 4

Objectivo

o Antes de procurar a sequência de acções que permitem atingir o objectivo, o agente deverá decidir quais os estados e as acções que deve considerar.

o Formulação do problema –Processo de decisão das acções e dos estados a considerar (passo seguinte à formulação do objectivo).

Page 2: Agentes que resolvem Resolução de Problemas problemasnoel/IA/pesquisa.pdf · encontrar a sequência de acções que ... oUma vez encontrada uma solução, o ... 6 1 7 3 8 2 5 4

2

© Noel de Jesus Mendonça Lopes 5 © Noel de Jesus Mendonça Lopes 6

Pesquisao Um agente que disponha de várias opções

imediatas, cujo resultado é desconhecido, pode decidir o que fazer através da análise de diferentes sequências de acções que levam a estados cujo resultado é conhecido.

o O agente pode posteriormente escolher a sequência de acções que o beneficia mais.

o Um algoritmo de pesquisa tem como entrada um problema e como saída uma solução, na forma de uma sequência de acções.

© Noel de Jesus Mendonça Lopes 7

Formular, procurar e executar

o Uma vez encontrada uma solução, o agente pode levar a cabo a sequência de acções associada. Esta fase é designada por execução.

© Noel de Jesus Mendonça Lopes 8

Agentes que resolvem problemasfunction AgenteSimpleResolucaoProblemas(p) returns accao

inputs : p, percepçõesstatic : a, uma sequência de acções inicialmente vazia

estado, descrição do estado do mundo actualo, um objectivo, inicialmente nuloproblema, a formulação de um problema

estado ← ActualizaEstado(estado, p)if a is empty then

o ← FormulaObjectivo(estado)problema ← FormulaProblema(estado, o)a ← Pesquisa(problema)

endaccao ← Recomendada(a, estado)a ← Resto(a, estado)return accao

Page 3: Agentes que resolvem Resolução de Problemas problemasnoel/IA/pesquisa.pdf · encontrar a sequência de acções que ... oUma vez encontrada uma solução, o ... 6 1 7 3 8 2 5 4

3

© Noel de Jesus Mendonça Lopes 9

Aspirar o lixo1 2 3 4

5 6 7 8

© Noel de Jesus Mendonça Lopes 10

Tipos de problemas

o Estado único (single-state)n Ambiente acessível;n Agente sabe as consequências das suas

acções.

o Estados múltiplos (multiple-state)n Ambiente inacessível;n Agente sabe as consequências das suas

acções.

© Noel de Jesus Mendonça Lopes 11

Ignorância dos efeitos das acções

Lei de Murphy

Problema de estados múltiplosProblema de estados múltiplos

Ambiente Ambiente eestocásticostocástico(não (não deteministicodeteministico))

© Noel de Jesus Mendonça Lopes 12

Ignorância dos efeitos das acções

2

AspirarDireitaAspirar

6

8

Page 4: Agentes que resolvem Resolução de Problemas problemasnoel/IA/pesquisa.pdf · encontrar a sequência de acções que ... oUma vez encontrada uma solução, o ... 6 1 7 3 8 2 5 4

4

© Noel de Jesus Mendonça Lopes 13

Ignorância dos efeitos das acções

1

2

Impede o agente de encontrar uma sequência de acções Impede o agente de encontrar uma sequência de acções que garanta uma solução para o problema.que garanta uma solução para o problema.

? 8

4

© Noel de Jesus Mendonça Lopes 14

Problemas de contingência

o Se o agente dispuser de um sensor que lhe indique se a sala onde se encontra está limpa, poderá aspirar apenas se esta tiver lixo.

o É necessário obter informações a partir dos sensores durante a fase de execução.

o Problemas reais a previsão exacta é impossível.

© Noel de Jesus Mendonça Lopes 15

Problemas de exploraçãoo Tipo de problema mais difícil para um

agente, já que este não dispõe de nenhum conhecimento sobre os efeitos das suas acções.

o O agente deve experimentar e descobrir de forma gradual as consequências das suas acções bem como os tipos de estado existentes (Ex: Recém nascidos).

o A pesquisa é feita no mundo real em vez de num modelo, pelo que pode representar um risco significativo para um agente ignorante.

© Noel de Jesus Mendonça Lopes 16

Problemas

o Problema - Colecção de informação que o agente pode usar para decidir o que fazer.

o Os elementos básicos de um problema são os estados e as acções.

Page 5: Agentes que resolvem Resolução de Problemas problemasnoel/IA/pesquisa.pdf · encontrar a sequência de acções que ... oUma vez encontrada uma solução, o ... 6 1 7 3 8 2 5 4

5

© Noel de Jesus Mendonça Lopes 17

Problemas de estado único

o Dado um estado inicial no qual o agente sabe que se encontra.

o Dado um conjunto de acções disponíveis para o agente.n Operador : Uma descrição de uma acção em

termos do estado que será alcançado quando a acção em causa é levada a cabo num dado estado.

n Função Sucessor S : Dado um estado x, S(x) retorna o conjunto de estados que se podem alcançar aplicando uma única acção no estado x.

© Noel de Jesus Mendonça Lopes 18

Espaço dos estados

o O estado inicial e o conjunto de acções disponíveis definem o espaço dos estados do problema : O conjunto de todos os estados que se podem atingir a partir do estado inicial e de uma qualquer sequência de acções.

o Um caminho no espaço dos estados é simplesmente uma sequência de acções que vão de um estado para outro.

© Noel de Jesus Mendonça Lopes 19

Problemas de estado único

o Dado um teste de objectivo que o agente pode aplicar a uma descrição de um estado para determinar se esse estado é um estado que satisfaz objectivo.n Nalguns casos existe um conjunto explicito de

todos os estados que satisfazem o objectivo;n Noutros, o objectivo é especificado através de

uma propriedade abstracta (Ex: Xadrez).

© Noel de Jesus Mendonça Lopes 20

Problemas de estado único

o Dada uma função de custo do caminho :n A soma dos custos das acções individuais

ao longo do caminho.n Normalmente designa-se por g.

Page 6: Agentes que resolvem Resolução de Problemas problemasnoel/IA/pesquisa.pdf · encontrar a sequência de acções que ... oUma vez encontrada uma solução, o ... 6 1 7 3 8 2 5 4

6

© Noel de Jesus Mendonça Lopes 21

Problema de estado único

Estado inicial+

Conjunto de operadores+

Teste de objectivo+

Custo do caminho

© Noel de Jesus Mendonça Lopes 22

Saída de um algoritmo de pesquisa

SoluçãoCaminho desde o estado inicial até um Caminho desde o estado inicial até um estado que satisfaça o teste de objectivo.estado que satisfaça o teste de objectivo.

© Noel de Jesus Mendonça Lopes 23

Problemas de estados múltiplos

Conjunto de estados iniciais+

Conjunto de operadores+

Teste de objectivo+

Custo do caminho

© Noel de Jesus Mendonça Lopes 24

Problemas de estados múltiploso Quando se aplica um operador a um conjunto de

estados obtemos a reunião de todos os estados que se atingem aplicando o operador individualmente a cada um dos estados.

o Um caminho liga vários conjuntos de estados.o Uma solução é o caminho que leva a um conjunto

de estados, em que todos eles satisfazem o objectivo.

o O espaço dos estados é substituído pelo espaço do conjunto de estados.

Page 7: Agentes que resolvem Resolução de Problemas problemasnoel/IA/pesquisa.pdf · encontrar a sequência de acções que ... oUma vez encontrada uma solução, o ... 6 1 7 3 8 2 5 4

7

© Noel de Jesus Mendonça Lopes 25

Eficácia da pesquisa

o Encontrou-se uma solução ?o É uma boa solução (com um custo do

caminho baixo) ?o Qual é o custo da pesquisa (tempo

e memória necessários para encontrar a solução) ?

© Noel de Jesus Mendonça Lopes 26

Custo total

Custo do caminho+

Custo da pesquisa

© Noel de Jesus Mendonça Lopes 27

Custo da pesquisa

o Depende de o ambiente ser:n Estático (0)n Semi-dinâmicon Dinâmico

© Noel de Jesus Mendonça Lopes 28

Abstracção

o Retirar tantos detalhes quanto possível, garantindo no entanto que cada uma das acções abstractas podem ser levadas a cabo.n Descrição do estadon Acçõesn Efeitos das acções

Page 8: Agentes que resolvem Resolução de Problemas problemasnoel/IA/pesquisa.pdf · encontrar a sequência de acções que ... oUma vez encontrada uma solução, o ... 6 1 7 3 8 2 5 4

8

© Noel de Jesus Mendonça Lopes 29

Exemplos de problemaso Puzzle com 8 peçasn Estado : A localização de cada uma das peças

(incluindo o branco).n Operadores : Branco move-se para esquerda,

direita, cima ou baixo.n Custo do caminho : Número de movimentos.

5 4

6 1

7 3

8

2 5

4

6

1

7

3

8

2

© Noel de Jesus Mendonça Lopes 30

Exemplos de problemas

Problemadasoito

rainhas

© Noel de Jesus Mendonça Lopes 31

Problema das oito rainhas

o Teste de objectivo : 8 rainhas no tabuleiro, não estar nenhuma a ser atacada.

o Custo do caminho : zero.o Estados : Qualquer combinação de 0

a 8 rainhas no tabuleiro.o Operadores : Adicionar rainhas a

uma dada posição do tabuleiro.

© Noel de Jesus Mendonça Lopes 32

Problema das oito rainhas -Dimensão do espaço de procura

o Estados : Arranjos de 8 rainhas, uma em cada coluna.

o Operadores : Mover uma rainha atacada, para outra posição do tabuleiro, na mesma coluna.

648 2057

Page 9: Agentes que resolvem Resolução de Problemas problemasnoel/IA/pesquisa.pdf · encontrar a sequência de acções que ... oUma vez encontrada uma solução, o ... 6 1 7 3 8 2 5 4

9

© Noel de Jesus Mendonça Lopes 33

Aspirador (Problema de estado único)

o Teste de objectivo : Todas as salas limpas.

o Custo do caminho : Cada acção custa 1.

o Estados : Todos os estados da figura seguinte.

o Operadores : Esquerda, direita, aspirar.

D

D D

D

D

DD

D

EE

EE

E

E

EE

AA

A AAA

A A

© Noel de Jesus Mendonça Lopes 35

Aspirador (Problema de estados múltiplos)

o Teste de objectivo : Todas as salas limpas.

o Custo do caminho : Cada acção custa 1.

o Conjunto de estados : Todos os conjuntos da figura seguinte.

o Operadores : Esquerda, direita, aspirar.

D E

E D

A

DE

A

A

E

D E D

DE A

D E

A

A

E D

AA, E A, D

A

DE

DE

A A

Page 10: Agentes que resolvem Resolução de Problemas problemasnoel/IA/pesquisa.pdf · encontrar a sequência de acções que ... oUma vez encontrada uma solução, o ... 6 1 7 3 8 2 5 4

10

© Noel de Jesus Mendonça Lopes 37

Missionários e canibais

© Noel de Jesus Mendonça Lopes 38

Outros problemas

o Pesquisa de rotasn Redes de computadoresn Assistentes de viagem (computador

carro)

o Caixeiro viajanteo Navegação de robôso Determinar a melhor sequência de

montagem de um objecto.

© Noel de Jesus Mendonça Lopes 39

Geração de sequências de acções

o Ao aplicarmos os operadores ao estado actual estamos a gerar um novo conjunto de estados. Este processo designa-se por expansãodo estado. DE

A

© Noel de Jesus Mendonça Lopes 40

Pesquisa da solução

o Quando temos várias possibilidades temos de escolher qual considerar primeiro (determinado pela estratégia da pesquisa).

o Escolher, testar, expandir.E

Page 11: Agentes que resolvem Resolução de Problemas problemasnoel/IA/pesquisa.pdf · encontrar a sequência de acções que ... oUma vez encontrada uma solução, o ... 6 1 7 3 8 2 5 4

11

Oradea

Zerind

Arad

Timisoara

Lugoj

Mehadia

Dobreta

Sibiu

Rimnicu Vilcea

Fagaras

Criova

PitestiBucharest

© Noel de Jesus Mendonça Lopes 42

Árvore de pesquisa

Estado inicial

Depois de expandir Arad

Arad

Zerind Timisoara Sibiu

Arad

© Noel de Jesus Mendonça Lopes 43

Árvore de pesquisa

Depois de expandir Zerind

ZerindTimisoara Sibiu

Arad

Oradea AradNós de pesquisa

© Noel de Jesus Mendonça Lopes 44

Algoritmo Geral de Pesquisa

function PesquisaGeral(problema, estratégia) returns solução ou falhaInicializar a árvore de pesquisa, utilizando o estado inicial do problema.do

if não existem candidatos para expandir then return falhaEscolher um nó (folha) para expandir, de acordo com a estratégiaif nó contém um estado que satisfaz o objectivo then

return solução correspondenteendExpandir o nó e adicionar os nós resultantes à arvore de pesquisa

loop

Page 12: Agentes que resolvem Resolução de Problemas problemasnoel/IA/pesquisa.pdf · encontrar a sequência de acções que ... oUma vez encontrada uma solução, o ... 6 1 7 3 8 2 5 4

12

© Noel de Jesus Mendonça Lopes 45

Estrutura dos nós

o O estado do espaço dos estados ao qual o nó corresponde;

o Pai;o Operador que foi aplicado para o

gerar;o Profundidade;o Custo do caminho g(n).

© Noel de Jesus Mendonça Lopes 46

Fronteira

o O conjunto dos nós que ainda não foram expandidos formam a fronteira.

o O objectivo da estratégia de pesquisa é escolher um nó da fronteira.

o Se considerarmos os nós que fazem parte da fronteira como estando numa lista, em que os nós que aparecem primeiro são os que o algoritmo de pesquisa escolhe primeiro para expandir podemos rescrever o algoritmo geral de pesquisa.

© Noel de Jesus Mendonça Lopes 47

Algoritmo geral de pesquisa

function PesquisaGeral(problema, FuncaoAdicaoFila) returns solução ou falha

nos ← CriaFila(CriaNo(EstadoInicial(problema)))do

if nos is empty then return falhano ← RetiraPrimeiro(nos)if ObjectivoSatisfeito(problema, Estado(no)) then return nonos ← FuncaoAdicaoFila(nos, Expande(no, Operadores(problema)))

loop

© Noel de Jesus Mendonça Lopes 48

Avaliação das estratégias de pesquisao Completa

o Garante que se houver uma solução ela é encontrada ?

o Complexidaden Tempo o Quanto tempo é necessário para encontrar uma

solução ?n Espaçoo Qual a memória necessária para efectuar a

pesquisa ?o Solução óptima

o Quando existem várias soluções é encontrada a solução de qualidade mais elevada ?

Page 13: Agentes que resolvem Resolução de Problemas problemasnoel/IA/pesquisa.pdf · encontrar a sequência de acções que ... oUma vez encontrada uma solução, o ... 6 1 7 3 8 2 5 4

13

© Noel de Jesus Mendonça Lopes 49

Algoritmos de pesquisa

o Pesquisa uniforme (pesquisa cega)n Não existe informação do nº de passos

ou do custo do caminho desde o estado actual ao objectivo

o Pesquisa informadan heurística

© Noel de Jesus Mendonça Lopes 50

Algoritmos de pesquisa cega

o Breadth-first searcho Uniform cost searcho Depth-first searcho Depth-limited searcho Iterative deepening searcho Bidirectional search

© Noel de Jesus Mendonça Lopes 51

Breadth-first search

o Todos os nós com profundidade d são expandidos antes dos nós com profundidade d + 1.

o Se existir uma solução é garantido que o algoritmo a encontra.

o A solução encontrada é sempre a solução que tem o menor número de acções.

© Noel de Jesus Mendonça Lopes 52

Breadth-first search

Function BreadthFirstSearch(problema) returns solução ou falha

return PesquisaGeral(problema, FuncaoAdicionaFimFila)

Page 14: Agentes que resolvem Resolução de Problemas problemasnoel/IA/pesquisa.pdf · encontrar a sequência de acções que ... oUma vez encontrada uma solução, o ... 6 1 7 3 8 2 5 4

14

© Noel de Jesus Mendonça Lopes 53

Breadth-first search

o Completoo Óptimo se o custo do caminho for

uma função não decrescente da profundidade do nó, isto é quando todos os operadores têm o mesmo custo.

o Complexidade (tempo e espaço)n Problema

© Noel de Jesus Mendonça Lopes 54

Breadth-first search(Complexidade)

o Consideremos um espaço de estados hipotético onde cada estado pode ser expandido dando origem a b estados.

o Diz-se que o factor de ramificação (branching factor) desses estados (e da árvore) é b.

o Suponhamos que para atingirmos a solução necessitamos de percorrer um caminho de comprimento d (com d passos).

© Noel de Jesus Mendonça Lopes 55

Breadth-first search(Complexidade)

o O número máximo de nós que temos de percorrer antes de encontrar a solução é :

1 + b + b2 + b3 + ... + bd

o ComplexidadeO(bd)

© Noel de Jesus Mendonça Lopes 56

Breadth-first search(Complexidade)

100 Bytes11 Kb1 Mb

111 Mb11 Gb

1 Terabyte111 Terabytes

11111 Terabytes

1 milisegundo0,1 segundos11 segundos18 minutos31 horas128 dias35 anos

3500 anos

1111

111111106

108

1010

1012

1014

02468

101214

MemóriaTempoNós (b=10)Profundidade (d)

Page 15: Agentes que resolvem Resolução de Problemas problemasnoel/IA/pesquisa.pdf · encontrar a sequência de acções que ... oUma vez encontrada uma solução, o ... 6 1 7 3 8 2 5 4

15

© Noel de Jesus Mendonça Lopes 57

Uniform cost search

o Escolhe o nó com menor custo de caminho para expandir.

o Idêntica à Breadth-first search nos casos em que g(n) = Profundidade(n)

o Assume-se que :∀n, g(sucessor(n)) ≥ g(n)

© Noel de Jesus Mendonça Lopes 58

Uniform cost search

I F

A

B

1 10

C

5 5

15 5

0I

© Noel de Jesus Mendonça Lopes 59

Uniform cost search

I F

A

B

1 10

C

5 5

15 5

I

A B C1 5 15

© Noel de Jesus Mendonça Lopes 60

Uniform cost search

I F

A

B

1 10

C

5 5

15 5

I

A B C5 15

11F

Page 16: Agentes que resolvem Resolução de Problemas problemasnoel/IA/pesquisa.pdf · encontrar a sequência de acções que ... oUma vez encontrada uma solução, o ... 6 1 7 3 8 2 5 4

16

© Noel de Jesus Mendonça Lopes 61

Uniform cost search

I F

A

B

1 10

C

5 5

15 5

I

A B C15

11F

10F

© Noel de Jesus Mendonça Lopes 62

Depth-first search

o Algoritmo :Function DepthFirstSearch(problema) returns solução ou falha

return PesquisaGeral(problema, FuncaoAdicionaInicioFila)

o Necessita de pouca memória.o Para um espaço com um factor de

ramificação de b e para uma profundidade máxima de m o algoritmo necessita apenas de bm nós.

o Complexidade : O(bm)

© Noel de Jesus Mendonça Lopes 63

Depth-first search

o Para problemas que têm muitas soluções este algoritmo pode encontrar uma solução primeiro que o Breath-first search.

o Muitos problemas têm árvores de pesquisa muito profundas ou mesmo infinitas, pelo que este algoritmo pode não conseguir recuperar de uma má escolha de um dos ramos no inicio da árvore.

© Noel de Jesus Mendonça Lopes 64

Depth-first search

o Pode encontrar uma solução com um custo de caminho muito maior que a solução óptima.

o Não é óptimo nem completo.o Fácil de implementar com uma função

recursiva.

Page 17: Agentes que resolvem Resolução de Problemas problemasnoel/IA/pesquisa.pdf · encontrar a sequência de acções que ... oUma vez encontrada uma solução, o ... 6 1 7 3 8 2 5 4

17

© Noel de Jesus Mendonça Lopes 65

Depth-limited search

o Igual ao Depth-first search só que é imposto um limite de profundidade.

o Não é óptimoo Pode ou não ser completo, dependendo dos

limites impostos.o Para um espaço com um factor de

ramificação de b e para um limite de profundidade l o algoritmo necessita apenas de bl nós.

o Complexidade : O(bl)

© Noel de Jesus Mendonça Lopes 66

Iterative deepening search

o Objectivo é determinar o diâmetrodo espaço de estados por tentativas.

o Combina os benefícios do Breadth-first search com os do Depth-first search.

o É óptimo e completo como o Breadth-first search.

o Necessita de pouca memória como o Depth-first search.

© Noel de Jesus Mendonça Lopes 67

Iterative deepening search

o Muitos estados são expandidos múltiplas vezes. No entanto o tempo adicional de pesquisa não é tão significativo como pode parecer à primeira vista.

o Tomemos como exemplo o caso do depth-limited search em o que número máximo de nós a percorrer é de :1 + b + b2 + ... + bd-2 + bd-1 + bd

© Noel de Jesus Mendonça Lopes 68

Iterative deepening search

o Para uma profundidade d = 5 e para um factor de ramificação b = 10. O número máximo de nós a percorrer é de :1 + 10 + 100 + 1000 +10000 + 100000 = 111111

o No iterative deepening search o número máximo de nós a percorrer será de :

(d+1)1 + db + (d-1)b2 + ... + 3bd-2 + 2bd-1 + 1bd

o Para o caso :6 + 50 + 400 + 3000 + 20000 + 100000 = 123456

Page 18: Agentes que resolvem Resolução de Problemas problemasnoel/IA/pesquisa.pdf · encontrar a sequência de acções que ... oUma vez encontrada uma solução, o ... 6 1 7 3 8 2 5 4

18

© Noel de Jesus Mendonça Lopes 69

Iterative deepening search

o Temos assim um aumento de cerca de 11% que será ainda menor para factores de ramificação maiores.

© Noel de Jesus Mendonça Lopes 70

Bidirectional search

o Complexidade : O(2bd/2) = O(bd/2)

Inicio Objectivo

© Noel de Jesus Mendonça Lopes 71

Bidirectional search

o O que significa procurar para trás?o Procurar para trás significa gerar

sucessivamente predecessores a partir do objectivo.

o Os predecessores de um nó n são todos os nós que têm o nó n como sucessor.

o Quando todos os operadores são reversíveis o conjunto dos predecessores e sucessores é idêntico.

o Nalguns problemas calcular os predecessores pode ser bastante difícil.

© Noel de Jesus Mendonça Lopes 72

Bidirectional search

o E se existir não apenas um estado correspondente ao objectivo, mas vários ?

o Se existir uma lista explicita destes estados, podemos aplicar uma função predecessora ao conjunto de estados, tal como aplicamos os sucessores.

o Se dispusermos apenas uma descrição do conjunto de estados correspondentes ao objectivo (tal como no xadrez – cheque mate) o problema torna-se mais complicado.

Page 19: Agentes que resolvem Resolução de Problemas problemasnoel/IA/pesquisa.pdf · encontrar a sequência de acções que ... oUma vez encontrada uma solução, o ... 6 1 7 3 8 2 5 4

19

© Noel de Jesus Mendonça Lopes 73

Bidirectional search

o Deve existir uma forma eficiente de verificar se cada um dos novos nós já existe na árvore de pesquisa da outra metade da pesquisa.

o Devemos decidir que tipo de algoritmo vamos utilizar de cada lado da pesquisa.

© Noel de Jesus Mendonça Lopes 74

Bidirectional search

oComplexidade : O(bd/2) assumindo que o processo de teste de intercessão das duas fronteiras pode ser levado a cabo num tempo constante (isto é independente do número de estados).

© Noel de Jesus Mendonça Lopes 75

Bidirectional search

o Normalmente essa verificação é possível através da utilização de uma HASH table.

o Para determinar se as duas fronteiras se têm nós em comum, é necessário que os todos os nós de pelo menos uma delas estejam em memória (tal como no breath-first search).

o Complexidade do espaço : O(bd/2)© Noel de Jesus Mendonça Lopes 76

Comparação das estratégias de pesquisa

bm

bmNãoNão

Depth-first

bl

blNão

Sim, se l ≥ d

Depth-Limited

TempoEspaçoÓptimo?

Completo?

Critério

bd

bd

SimSim

Breadth-First

bd

bd

SimSim

Uniform-Cost

bd/2

bd/2

SimSim

Bidirectional(quando aplicável)

bd

bdSimSim

IterativeDeepening

Page 20: Agentes que resolvem Resolução de Problemas problemasnoel/IA/pesquisa.pdf · encontrar a sequência de acções que ... oUma vez encontrada uma solução, o ... 6 1 7 3 8 2 5 4

20

© Noel de Jesus Mendonça Lopes 77

Evitar estados repetidos

o Estados repetidos implicam perda de tempo.

o Em muitos problemas é comum aparecerem estados repetidos.

o O exemplo mais flagrante é quando existem operações reversíveis.

o As árvores de pesquisa para estes problemas são infinitas. No entanto se retirarmos os estados repetidos podemos reduzir o tamanho da árvore de pesquisa a um tamanho finito.

© Noel de Jesus Mendonça Lopes 78

Evitar estados repetidos

o Mesmo quando a árvore de pesquisa é finita, evitar os estados repetidos pode levar a uma redução exponencial do custo da pesquisa.

© Noel de Jesus Mendonça Lopes 79

Formas de evitar estados repetidos

o Não retornar ao estado donde viemos. A função de expansão deverá recusar-se a gerar qualquer sucessor com o mesmo estado que o estado correspondente ao nó pai.

o Não criar caminhos com círculos. A função de expansão deverá recusar-se a gerar qualquer sucessor com o mesmo que qualquer estado correspondente a um dos nós antecessores.

© Noel de Jesus Mendonça Lopes 80

Formas de evitar estados repetidos

o Não gerar qualquer estado que já tenha sido gerado antes. Isto requer que todos os estados estejam em memória.n Complexidade do espaço O(bd) ou O(s) em que

s é o número de estados do espaço dos estados.n Normalmente é utilizada uma tabela HASH que

guarda os estados correspondentes a todos os nós gerados. Desta forma verificar a existência de espaços repetidos pode ser feito eficientemente.

Page 21: Agentes que resolvem Resolução de Problemas problemasnoel/IA/pesquisa.pdf · encontrar a sequência de acções que ... oUma vez encontrada uma solução, o ... 6 1 7 3 8 2 5 4

21

© Noel de Jesus Mendonça Lopes 81

Constraint satisfaction search

o Um problema que para além dos requisitos básicos em geral, satisfaz propriedades estruturais adicionais designa-se por constraint satisfaction problem(CSP).

o Num CSP os estados são definidos por um conjunto de variáveis e o teste de objectivo especifica um conjunto de restrições a que esses valores devem obedecer.

© Noel de Jesus Mendonça Lopes 82

Constraint satisfaction search

o O problema das 8 rainhas pode ser visto como um CSP em que as variáveis são a posição de cada uma das 8 rainhas; os valores possíveis são os quadrados do tabuleiro; e as restrições especificam que não podem existir duas rainhas na mesma linha, coluna ou diagonal. Uma solução num CSP especifica os valores de todas as variáveis, de tal modo que todas as restrições são satisfeitas.

© Noel de Jesus Mendonça Lopes 83

Constraint satisfaction search

o Os CSP podem ser resolvidos por algoritmos de pesquisa de propósito geral, mas devido à sua estrutura especial os algoritmos desenhados para os CSP têm um desempenho muito melhor.

© Noel de Jesus Mendonça Lopes 84

Restrições

o Unáriasn Referem-se ao valor de uma única

variável

o Bináriasn Relacionam pares de variáveis

o Ordem maiorn Envolvem três ou mais variáveis

Page 22: Agentes que resolvem Resolução de Problemas problemasnoel/IA/pesquisa.pdf · encontrar a sequência de acções que ... oUma vez encontrada uma solução, o ... 6 1 7 3 8 2 5 4

22

© Noel de Jesus Mendonça Lopes 85

Restrições

o Absolutasn Quando violadas impedem a obtenção de

uma solução

o Preferêncian Indicam quais as soluções que são

preferíveis.

© Noel de Jesus Mendonça Lopes 86

Variáveis e restrições

o Cada variável Vi num CSP tem um domínio Di, que é o conjunto de valores que a variável pode tomar.

o O domínio pode ser discreto ou continuo.

o Uma restrição unária especifica o subconjunto de valores pertencentes ao domínio Di que a uma dada variável Vi pode ter.

© Noel de Jesus Mendonça Lopes 87

Aplicar um algoritmo de pesquisa geral a um CSP

o Estado inicial – Um estado em que todas as variáveis não têm nenhum valor.

o Operadores – Atribuem um valor a uma variável a partir de um conjunto de valores possíveis.

o Objectivo – Todas as variáveis têm valores atribuídos que satisfazem todas as restrições.

© Noel de Jesus Mendonça Lopes 88

Aplicar um algoritmo de pesquisa geral a um CSP

oA profundidade máxima da árvore de pesquisa, bem como a profundidade onde se encontram todas as soluções é n (número de variáveis).

oNeste caso qual será o algoritmo adequado?

Page 23: Agentes que resolvem Resolução de Problemas problemasnoel/IA/pesquisa.pdf · encontrar a sequência de acções que ... oUma vez encontrada uma solução, o ... 6 1 7 3 8 2 5 4

23

© Noel de Jesus Mendonça Lopes 89

Backtracking search

o É despendido tempo quando pelo menos uma das restrições já foi violada.

o O que podemos fazer é inserir um teste antes da geração de sucessores que garanta que não são gerados sucessores caso o estado actual viole as restrições.

© Noel de Jesus Mendonça Lopes 90

Forward checking

o Suponhamos que colocamos as primeiras 6 rainhas de tal forma que todas as colunas da 8 linha estão a ser atacadas.

o O backtracking irá tentar todas as posições para a 7ª rainha apesar de o problema já não ser solúvel.

o O forward checking evita isto olhando para a frente de forma a detectar se o problema já é insolúvel.

© Noel de Jesus Mendonça Lopes 91

Forward checking

o Cada vez que uma variável é instanciada, são eliminados todos os valores dos domínios que entrem em conflito com os valores das variáveis instanciadas até à data.

o Se algum dos domínios ficar com o conjunto vazio de valores a pesquisa retorna automaticamente.

© Noel de Jesus Mendonça Lopes 92

Forward checking

oNa maioria dos casos é mais rápido que o backtracking e é bastante fácil de implementar.

Page 24: Agentes que resolvem Resolução de Problemas problemasnoel/IA/pesquisa.pdf · encontrar a sequência de acções que ... oUma vez encontrada uma solução, o ... 6 1 7 3 8 2 5 4

24

© Noel de Jesus Mendonça Lopes 93

Verificação da consistência dos arcos

o O forward checking é um caso especial da verificação da consistência dos arcos.

o Um estado diz-se ter consistência de arco quando todas as suas variáveis têm valores do seu domínio que são consistentes com todas as restrições que envolvem essa variável.

© Noel de Jesus Mendonça Lopes 94

Verificação da consistência dos arcos

oA consistência de arco pode ser obtida apagando sucessivamente todos os valores que são inconsistentes com uma dada restrição.

© Noel de Jesus Mendonça Lopes 95

Propagação de restrições

o À medida que se vão apagando valores, outros valores podem tornar-se inconsistentes porque dependiam daqueles que foram apagados para serem consistentes.

o Nalguns casos atingir a consistência dos arcos é suficiente para resolver o problema.

© Noel de Jesus Mendonça Lopes 96

Consistência dos arcos

o A verificação da consistência dos arcos é usada normalmente como um passo de pré processamento, mas pode também ser usada na pesquisa.