Você está na página 1de 109

Resolução de

problemas por meio de


busca
Geraldo Xexéo

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
1
Agentes de resolução de
problemas
• Agentes reativos não funcionam em ambientes
para quais o número de regras condição-ação
é grande demais para armazenar.
• Nesse caso podemos construir um tipo de
agente baseado em objetivo chamado de
agente de resolução de problemas.

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
2
Busca
• Um agente com várias opções imediatas pode
decidir o que fazer comparando diferentes
sequências de ações possíveis.
• Esse processo de procurar pela melhor
sequência é chamado de busca.
• Formular objetivo → buscar → executar

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
3
Exemplo: Romênia
• De férias na Romênia; atualmente em Arad.
• Vôo sai amanhã de Bucareste.
• Formular objetivo:
• Estar em Bucareste
• Formular problema:
• estados: cidades
• ações: dirigir entre as cidades
• Encontrar solução:
• sequência de cidades, ex., Arad, Sibiu, Fagaras,
Bucareste.
Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
4
Exemplo: Romênia

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
5
Formulação de problemas
• Um problema é definido por quatro itens:
• Estado inicial
• ex., “em Arad"
• Ações ou função sucessor
• S(x) = conjunto de pares estado-ação
• ex., S(Arad) = {<Arad → Zerind, Zerind>, … }
• Teste de objetivo
• explícito, ex., x = “em Bucharest"
• implícito, ex., Cheque-mate(x)
• Custo de caminho (aditivo)
• ex., soma das distâncias, número de ações executadas, etc.
• c(x,a,y) é o custo do passo, que deve ser sempre ≥ 0

• Uma solução é uma sequência de ações que levam do estado inicial


para o estado objetivo.
• Uma solução ótima é uma solução com o menor custo de caminho.

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
6
Agente de
Resolução de Problemas

Supõe que ambiente é estático, observável, discreto e determinístico.

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
7
Espaço de estados
• O conjunto de todos os estados acessíveis a
partir de um estado inicial é chamado de
espaço de estados.
• Os estados acessíveis são aqueles dados pela
função sucessora.
• O espaço de estados pode ser interpretado
como um grafo em que os nós são estados e
os arcos são ações.

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
8
Selecionando um
espaço de estados
• O mundo real é absurdamente complexo
• o espaço de estados é uma abstração
• Estado (abstrato)
• conjunto de estados reais
• Ação (abstrata)
• combinação complexa de ações reais
• ex., "Arad → Zerind" representa um conjunto complexo de rotas,
desvios, paradas, etc.
• Qualquer estado real do conjunto “em Arad“ deve levar a algum
estado real “em Zerind“.
• Solução (abstrata)
• conjunto de caminhos reais que são soluções no mundo real
• A abstração é útil se cada ação abstrata é mais fácil de
executar que o problema original.
Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
9
Exemplo 1: Espaço de Estados do
Mundo do Aspirador de Pó

• Estados: Definidos pela posição do robô e sujeira (8 estados)


• Estado inicial: Qualquer um
• Função sucessor: pode-se executar qualquer uma das ações em
cada estado (esquerda, direita, aspirar)
• Teste de objetivo: Verifica se todos os quadrados estão limpos
• Custo do caminho: Cada passo custa 1, e assim o custo do
caminho é o número de passos do caminho
Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
10
Exemplo 2:
O quebra-cabeça de 8 peças

• Estados: Especifica a posição de cada uma das peças e do espaço vazio


• Estado inicial: Qualquer um
• Função sucessor: gera os estados válidos que resultam da tentativa de
executar as quatro ações (mover espaço vazio para esquerda, direita, acima
ou abaixo)
• Teste de objetivo: Verifica se o estado corresponde à configuração objetivo.
• Custo do caminho: Cada passo custa 1, e assim o custo do caminho é o
número de passos do caminho
Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
11
Exemplo 3:Oito rainhas
Formulação incremental

Quasi solução
• Estados: qualquer disposição de 0 a 8 rainhas
• Estado inicial: nenhuma rainha
• Função sucessor: colocar 1 rainha em qualquer vazio
• Teste: 8 rainhas no tabuleiro, nenhuma atacada
• 64x63x...57 = 3x1014 sequências para investigar
Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
12
Exemplo 3:Oito rainhas
Formulação de estados completos

Quasi solução
• Estados: disposições de n rainhas, uma por coluna,
nas n colunas mais a esquerda sem que nenhuma
rainha ataque outra
• Função sucessor: adicionar uma rainha a qualquer
quadrado na coluna vazia mais à esquerda, de tal
modo que ela não seja atacada
• Tamanho do espaço de estados: 2.057
Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
13
Problemas do mundo real
• Problema de roteamento
• encontrar a melhor rota de um ponto a outro (aplicações: redes de
computadores, planejamento militar, planejamento de viagens aéreas)
• Problemas de tour
• visitar cada ponto pelo menos uma vez
• Caixeiro viajante
• visitar cada cidade exatamente uma vez
• encontrar o caminho mais curto
• Layout de VLSI
• posicionamento de componentes e conexões em um chip
• Projeto de proteínas
• encontrar uma sequência de aminoácidos que serão incorporados em
uma proteína tridimensional para curar alguma doença.
• Solução geral de jogos
• Tomada de decisão geral

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
14
Busca de soluções
• Idéia: Percorrer o espaço de estados a partir
de uma árvore de busca.
• Expandir o estado atual aplicando a função
sucessor, gerando novos estados.
• Busca: seguir um caminho, deixando os outros
para depois.
• A estratégia de busca determina qual caminho
seguir.

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
15
Exemplo de árvore de busca
Estado inicial

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
16
Exemplo de árvore de busca
Depois de expandir Arad

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
17
Exemplo de árvore de busca

Depois de expandir Sibiu

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
18
Descrição informal do algoritmo
geral de busca em árvore

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
19
Árvore de busca não é equivalente
a espaço de estados!
• Há 20 estados no mapa da Romênia (espaço
de estados), mas infinitos caminhos a
percorrer. Portanto a árvore de busca, neste
caso, tem tamanho infinito.
• Caminho infinito:
• Arad-Sibiu-Arad-Sibiu-Arad-...
• (ninguém disse que era um bom caminho)

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
20
Estados vs. nós
• Um estado é uma (representação de) uma configuração física
• Um nó é uma estrutura de dados que é parte da árvore de busca e inclui estado, nó pai, ação, custo
do caminho g(x), profundidade

• A função Expand cria novos nós, preenchendo os vários campos e usando a função sucessor do
problema para gerar os estados correspondentes.
• A coleção de nós que foram gerados, mas ainda não foram expandidos é chamada de borda (ou
fringe)
• Geralmente implementados como uma fila.
• A maneira como os nós entram na fila determina a estratégia de busca.

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
21
Algoritmo geral de busca em
árvore

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
22
Estratégias de
Busca

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
23
Estratégias de busca
• Uma estratégia de busca é definida pela
escolha da ordem da expansão de nós

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
24
E.B. Sem Informação (ou
Busca Cega)
• Usam apenas a informação disponível na
definição do problema.
• Apenas geram sucessores e verificam se o estado
objetivo foi atingido.

• Se distinguem pela ordem em que os nós são


expandidos.
• Busca em extensão (Breadth-first)
• Busca de custo uniforme
• Busca em profundidade (Depth-first)
• Busca em profundidade limitada
• Busca de aprofundamento iterativo

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
25
Avaliação da Estratégia
• Estratégias são avaliadas de acordo com os
seguintes critérios:
• completeza:
• o algoritmo sempre encontra a solução se ela existe?
• complexidade de tempo:
• número de nós gerados
• complexidade de espaço:
• número máximo de nós na memória
• otimização:
• a estratégia encontra a solução ótima?

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
26
Parâmetros de Avaliação
• b:
• máximo fator de ramificação da árvore (número
máximo de sucessores de qualquer nó)
• d:
• profundidade do nó objetivo menos profundo
• m:
• o comprimento máximo de qualquer caminho no
espaço de estados
• (pode ser ∞)

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
27
Busca em extensão
• Expandir o nó não-expandido mais perto da
raiz.
• Implementação:
• a borda é uma fila FIFO (first-in, first-out), isto é,
novos itens entram no final.

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
28
Busca em extensão
• Expandir o nó não-expandido mais perto da
raiz.
• Implementação:
• a borda é uma fila FIFO (first-in, first-out), isto é,
novos itens entram no final.

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
29
Busca em extensão
• Expandir o nó não-expandido mais perto da
raiz.
• Implementação:
• a borda é uma fila FIFO (first-in, first-out), isto é,
novos itens entram no final.

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
30
Busca em extensão
• Expandir o nó não-expandido mais perto da
raiz.
• Implementação:
• a borda é uma fila FIFO (first-in, first-out), isto é,
novos itens entram no final.

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
31
Propriedades da
busca em extensão
• Completa?
• Sim (se b é finito)
• Tempo?
• 1+b+b2+b3+… +bd + b(bd-1) = O(bd+1)
• Espaço?
• O(bd+1) (mantém todos os nós na memória)
• Ótima?
• Sim (se todas as ações tiverem o mesmo custo)

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
32
Requisitos de Tempo e Memória
para a Busca em Extensão
• Busca com fator de ramificação b=10.
• Supondo que 10.000 nós possam ser gerados por
segundo e que um nó exige 1KB de espaço.
Profundidade Nós Tempo Memória
2 1100 0.11 segundo 1 megabyte
4 111.10 11 segundos 106 megabytes
0
6 107 19 minutos 10 gigabytes
8 109 31 horas 1 terabyte
10 1011 129 dias 101 terabytes
12 1013 35 anos 10 petabytes
14 1015 3.523 anos 1 exabyte
Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
33
Busca de Custo
Uniforme

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
34
Busca de custo uniforme
• Expande o nó não-expandido que tenha o caminho de custo
mais baixo.
• Implementação:
• borda = fila ordenada pelo custo do caminho
• Equivalente a busca em extensão se os custos são todos
iguais
• Completa?
• Sim, se o custo de cada passo ≥ ε
• Tempo?
• # de nós com g ≤ custo da solução ótima, O(bC*/ ε) onde C* é o custo
da solução ótima
• Espaço?
• # de nós com g ≤ custo da solução ótima, O(b C*/ ε )
• Ótima?
• Sim pois os nós são expandidos em ordem crescente de custo total.

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
35
Exercício
• Aplicar busca de custo uniforme para achar o
caminho mais curto entre Arad e Bucareste.

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
36
Busca em
Profundidade

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
37
Busca em Profundidade
• Expande o nó não-expandido mais profundo.
• Implementação:
• borda = fila LIFO (last-in, first-out) = pilha

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
38
Busca em Profundidade
• Expande o nó não-expandido mais profundo.
• Implementação:
• borda = fila LIFO (last-in, first-out) = pilha

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
39
Busca em Profundidade
• Expande o nó não-expandido mais profundo.
• Implementação:
• borda = fila LIFO (last-in, first-out) = pilha

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
40
Busca em Profundidade
• Expande o nó não-expandido mais profundo.
• Implementação:
• borda = fila LIFO (last-in, first-out) = pilha

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
41
Busca em Profundidade
• Expande o nó não-expandido mais profundo.
• Implementação:
• borda = fila LIFO (last-in, first-out) = pilha

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
42
Busca em Profundidade
• Expande o nó não-expandido mais profundo.
• Implementação:
• borda = fila LIFO (last-in, first-out) = pilha

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
43
Busca em Profundidade
• Expande o nó não-expandido mais profundo.
• Implementação:
• borda = fila LIFO (last-in, first-out) = pilha

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
44
Busca em Profundidade
• Expande o nó não-expandido mais profundo.
• Implementação:
• borda = fila LIFO (last-in, first-out) = pilha

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
45
Busca em Profundidade
• Expande o nó não-expandido mais profundo.
• Implementação:
• borda = fila LIFO (last-in, first-out) = pilha

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
46
Busca em Profundidade
• Expande o nó não-expandido mais profundo.
• Implementação:
• borda = fila LIFO (last-in, first-out) = pilha

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
47
Busca em Profundidade
• Expande o nó não-expandido mais profundo.
• Implementação:
• borda = fila LIFO (last-in, first-out) = pilha

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
48
Busca em Profundidade
• Expande o nó não-expandido mais profundo.
• Implementação:
• borda = fila LIFO (last-in, first-out) = pilha

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
49
Propriedades da
Busca em Profundidade
• Completa?
• Não: falha em espaços com profundidade infinita, espaços com
loops
• Se modificada para evitar estados repetidos é completa para
espaços finitos
• Tempo?
• O(bm): péssimo quando m é muito maior que d.
• mas se há muitas soluções pode ser mais eficiente que a busca
em extensão
• Espaço?
• O(bm), i.e., espaço linear!
• 118 kilobytes ao invés de 10 petabytes para busca com b=10,
d=m=12
• Ótima?
• Não
Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
50
Busca em
Profundidade
Limitada

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
51
Busca em Profundidade
Limitada
• busca em profundidade com limite de
profundidade l,
• isto é, nós com profundidade l não tem
sucessores

• Implementação Recursiva:

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
52
Propriedades da
Busca em Profundidade Limitada
• Completa?
• Não; a solução pode estar além do limite.
• Tempo?
• O(bl)
• Espaço?
• O(bl)
• Ótima?
• Não

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
53
Busca de
Aprofundamento
Iterativo em
Profundidade

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
54
Busca de Aprofundamento
Iterativo em Profundidade

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
55
Busca de Aprofundamento
Iterativo em Profundidade l =0

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
56
Busca de Aprofundamento
Iterativo em Profundidade l =1

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
57
Busca de Aprofundamento
Iterativo em Profundidade l =2

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
58
Busca de Aprofundamento
Iterativo em Profundidade l =3

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
59
Busca de Aprofundamento
Iterativo
• Número de nós gerados em uma busca de extensão com fator de
ramificação b:
NBE = b1 + b2 + … + bd-2 + bd-1 + bd + (bd+1 – b)

• Número de nós gerados em uma busca de aprofundamento iterativo


até a profundidade d com fator de ramificação b:
NBAI = (d+1)b0 + d b1 + (d-1)b2 + … + 3bd-2 +2bd-1 + 1bd

• Para b = 10, d = 5,
• NBE = 10 + 100 + 1.000 + 10.000 + 100.000 + 999.990= 1.111.100

• NBAI = 6 + 50 + 400 + 3.000 + 20.000 + 100.000 = 123.456

• Overhead = (123.456 – 111.111)/111.111 = 11%

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
60
Propriedades da busca de
aprofundamento iterativo
• Completa?
• Sim
• Tempo?
• (d+1)b0 + d b1 + (d-1)b2 + … + bd = O(bd)
• Espaço?
• O(bd)
• Ótima?
• Sim, se custo de passo = 1

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
61
Resumo dos algoritmos

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
62
Resumo
• A formulação de problemas usualmente requer a
abstração de detalhes do mundo real para que
seja definido um espaço de estados que possa ser
explorado através de algoritmos de busca.

• Há uma variedade de estratégias de busca sem


informação (ou busca cega).

• A busca de aprofundamento iterativo usa somente


espaço linear e não muito mais tempo que outros
algoritmos sem informação.

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
63
Estados repetidos
• O processo de busca pode perder tempo
expandindo nós já explorados antes
• Estados repetidos podem levar a loops infinitos
• Estados repetidos podem transformar um
problema linear em um problema exponencial

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
64
Estados Repetidos
• Não detectar estados repetidos pode
transformar um problema linear em um
problema exponencial.

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
65
Detecção de estados
repetidos
• Comparar os nós prestes a serem expandidos
com nós já visitados.
• Se o nó já tiver sido visitado, será descartado.
• Lista “closed” (fechado) armazena nós já visitados.
• Busca em profundidade e busca de aprofundamento
iterativo não tem mais espaço linear.
• A busca percorre um grafo e não uma árvore.

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
66
Busca com
informação e
exploração

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
67
Busca com informação
(ou heurística)
• Utiliza conhecimento específico sobre o problema
para encontrar soluções de forma mais eficiente
do que a busca cega.
• Conhecimento específico além da definição do
problema.
• Abordagem geral:
• Busca pela melhor escolha.
• Utiliza uma função de avaliação para cada nó.
• Expande o nó que tem a função de avaliação mais
baixa.
• Dependendo da função de avaliação, a estratégia de
busca muda.
Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
68
Busca pela melhor escolha
• Idéia:
• usar uma função de avaliação f(n) para cada nó.
• estimativa do quanto aquele nó é desejável
• Expandir nó mais desejável que ainda não foi expandido

• Implementação:
• Ordenar nós na borda em ordem decrescente de acordo
com a função de avaliação

• Casos especiais:
• Busca gulosa pela melhor escolha
• Busca A*
Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
69
Busca gulosa pela
melhor escolha

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
70
Busca gulosa pela melhor
escolha
• Função de avaliação
• f(n) = h(n) (heurística)
• estimativa do custo de n até o objetivo
• hDLR(n) = distância em linha reta de n até
Bucareste.
• Busca gulosa pela melhor escolha expande o
nó que parece mais próximo ao objetivo de
acordo com a função heurística.

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
71
Romênia com custos em km
Distância em
linha reta para
Bucareste

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
72
Exemplo de busca gulosa
pela melhor escolha

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
73
Exemplo de busca gulosa
pela melhor escolha

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
74
Exemplo de busca gulosa
pela melhor escolha

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
75
Exemplo de busca gulosa
pela melhor escolha

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
76
Busca gulosa pela melhor
escolha
• Não é ótima, pois segue o melhor passo
considerando somente o estado atual.
• Pode haver um caminho melhor seguindo
algumas opções piores em alguns pontos da
árvore de busca.
• Minimizar h(n) é suscetível a falsos inícios.
• Ex. Ir de Iasi a Fagaras
• Heurística sugerirá ir a Neamt, que é um beco sem
saída.
• Se repetições não forem detectadas a busca entrará em
loop.
Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
77
Propriedades da busca
gulosa pela melhor escolha
• Completa?
• Não – pode ficar presa em loops, ex., Iasi →
Neamt → Iasi → Neamt
• Tempo?
• O(bm) no pior caso, mas uma boa função
heurística pode levar a uma redução substancial
• Espaço?
• O(bm) – mantém todos os nós na memória
• Ótima?
• Não

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
78
Busca A*

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
79
Busca A*
• Idéia: evitar expandir caminhos que já são
caros
• Função de avaliação
• f(n) = g(n) + h(n)
• g(n) = custo até o momento para alcançar n
• h(n) = custo estimado de n até o objetivo
• f(n) = custo total estimado do caminho através de n
até o objetivo.

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
80
Exemplo de busca A*

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
81
Exemplo de busca A*

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
82
Exemplo de busca A*

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
83
Exemplo de busca A*

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
84
Exemplo de busca A*

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
85
Exemplo de busca A*

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
86
Propriedades da Busca A*
• Completa?
• Sim (a não ser que exista uma quantidade infinita de nós com f ≤
f(G) )
• Tempo?
• Exponencial no pior caso
• Espaço?
• Mantém todos os nós na memória
• Ótima?
• Sim
• Otimamente eficiente
• Nenhum outro algoritmo de busca ótimo tem garantia de
expandir um número de nós menor que A*. Isso porque qualquer
algoritmo que não expande todos os nós com f(n) < C* corre o
risco de omitir uma solução ótima.

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
87
Busca Local

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
88
Algoritmos de Busca Local
• Em muitos problemas de otimização o caminho
para o objetivo é irrelevante.
• Queremos apenas encontrar o estado objetivo,
não importando a seqüência de ações.
• Espaço de estados = conjunto de configurações
completas.
• Queremos encontrar a melhor configuração.
• Neste caso podemos usar algoritmos de busca
local.
• Mantêm apenas o estado atual, sem a necessidade de
manter a árvore de busca.
Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
89
Exemplo: n-rainhas
• Colocar n rainhas em um tabuleiro n  n, sendo
que cada linha coluna ou diagonal pode ter
apenas uma rainha.

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
90
Busca de Hill-Climbing
• “É como subir o Everest em meio a um
nevoeiro durante uma crise de amnésia”

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
91
Busca de Hill Climbing
• Elevação é a função objetivo
• queremos encontrar o máximo global.
• Elevação é o custo
• queremos encontrar o mínimo global.
• O algoritmo consiste em uma repetição que
percorre o espaço de estados no sentido do
valor crescente (ou decrescente).
• Termina quando encontra um pico (ou vale) em
que nenhuma vizinho tem valor mais alto.
Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
92
Busca de Hill Climbing
• Não mantém uma árvore, o nó atual só registra
o estado atual e o valor da função objetivo.
• Não examina antecipadamente valores de
estados além dos valores dos vizinhos
imediatos do estado atual.

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
93
Problema do H.C.
• Dependendo do estado inicial pode ficar presa
em máximos (ou mínimos) locais.

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
94
Subida de encosta:
melhorias
• Movimento lateral para evitar platôs
• Porém pode ocorrer repetição infinita, temos que
impor um limite para o número de movimentos
laterais.
• Subida de encosta com reinícios aleatórios.
• Conduz várias buscas a partir de vários estados
iniciais escolhidos aleatoriamente.
• É completa, pois no pior acaso irá acabar gerando
o estado objetivo como estado inicial, porém é
ineficiente.

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
95
Perturbações

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
96
Simulated Annealing

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
97
Simulated Annealing
• Combina o Hill Climbing com um percurso
aleatório resultando em eficiência e
completeza.
• Dando uma “chacoalhada” nos estados
sucessores.
• Estados com avaliação pior podem ser escolhidos
com uma certa probabilidade.
• Esta probabilidade diminui com o tempo.

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
98
Saltos do S.A.
T Baixa

T Alta

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
99
Ideia Básica
• Considerar um estado vizinho s* do estado s atual
• Decidir probabilisticamente mover para s* ou
continuar em s
• A probabilidade de mover depende da energia dos
dois estados e da Temperatura, um parâmetro do
algoritmo
• Menos energia é melhor
• T pequeno faz ir para estados mais baixos
• T zero é o algoritmo guloso
• Sempre pula para o “melhor”

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
100
Como funciona?
• Ele aceita soluções que melhoram (busca
local) mas também soluções que pioram
(reiniciando)
• Em função da temperatura
• Permitem fugir do máximo local
• A “função de aceite” é normalmente
Δ
−𝑇
• 𝑒 , onde Δ = s − s ∗
• Pequenos aumentos são mais aceitos que os
grandes

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
101
Ciclo
Copiar
Diminui a
Solução
Temperatura
Atual

Guarda a
Modifica a
Melhor
Cópia
Solução

Determina a
Energia da
Cópia

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
102
Algoritmo Básico
• Escapa de máximos locais permitindo alguns
passos “ruins” mas gradualmente decresce a
sua freqüência.

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
103
Melhorias
• Vários vizinhos ao mesmo tempo

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
104
Propriedades da S.A.
• Pode-se provar que se T decresce devagar o
suficiente, a busca pode achar uma solução
ótima global com probabilidade tendendo a 1.
• Muito usada em projetos de circuitos
integrados, layout de instalações industriais,
otimização de redes de telecomunicações, etc.

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
105
FIM

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
106
Material Original
• Aula 2 , Profª Bianca Zadrozny
http://www.ic.uff.br/~bianca/ia

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
107
Bibliografia
1. Stuart Russell and Peter Norvig.
2009. Artificial Intelligence: A Modern
Approach (3rd ed.). Prentice Hall Press,
Upper Saddle River, NJ, USA

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
108
Contato

Geraldo Xexéo
xexeo@cos.ufrj.br
gxexeo@gmail.com
Este obra está licenciado com uma Licença Creative Commons
Atribuição-NãoComercial-SemDerivações 4.0 Internacional.

Geraldo Xexéo
xexeo@cos.ufrj.br
Solução por Busca
109

Você também pode gostar