Buscar uma solução em um espaço (geralmente) grande de soluções.
Espaço de busca (de estados)
(x=0, y=0)
.Norte, Sul, Leste, Oeste
(restritas por limites e obstáculos).Result((x,y), Norte) → (x, y+1)
se não houver obstáculo.(i,j)
tais que 0 ≤ i,j < 4
e sem obstáculos.Um puzzle de empilhamento de blocos.
Elemento | Descrição |
---|---|
Estado inicial |
|
Conjunto de ações |
Mover o disco superior da torre |
Função sucessora |
Remove o topo da torre origem e coloca sobre a torre destino, gerando novo estado. |
Custo da ação |
1 (todos os movimentos têm custo unitário). |
Condição de meta |
Todos os discos na torre |
O espaço de estados possui
mas apenas 15 são válidas quando se considera a regra de empilhamento.
Fonte da imagem: https://8-puzzle.readthedocs.io/en/latest/
Fonte da imagem: https://8-puzzle.readthedocs.io/en/latest/
Fonte da imagem: https://8-puzzle.readthedocs.io/en/latest/
Iteração Principal – enquanto a fronteira não estiver vazia:
Algoritmos que exploram o espaço de estados sem utilizar nenhuma informação adicional (heurística) sobre a distância até o objetivo que ajude a filtrar ações, sendo necessário buscar exaustivamente pelo espaço de estados.
Busca em Largura (BFS) – Nós são expandidos na ordem que foram criados. Usa fila. Expande níveis sucessivos; garante solução ótima em custo unitário.
Busca em Profundidade (DFS) – O último nó criado é o primeiro a ser expandido. Usa pilha. Não é completa. Não garante otimalidade.
n
da fila.n
é solução, retornar caminho até n
.n
, gerando todos os sucessores e inserindo-os na fila (apenas se ainda não foram visitados).Note que
n
.n
é objetivo, retornar caminho até n
.n
, gerando todos os sucessores e inserindo-os na pilha (apenas se ainda não foram visitados).limite
que indica a profundidade máxima permitida.n
.n
é solução → retornar caminho até n
.limite
: expandir n
, inserir sucessores na pilha com profundidade +1 (apenas se ainda não visitados).l = 0, 1, 2, …
executar Busca em Profundidade Limitada (DLS) até a profundidade l
.l
e repetir.Atividade recomendada: Leitura do capítulo 3.
- A busca prossegue imediatamente até o nível mais profundo da árvore de busca, onde os nós não têm sucessores (folhas). - À medida que esses nós são expandidos, eles são retirados da borda e, então, a busca "retorna" ao nó seguinte mais profundo que ainda tem sucessores inexplorados.
# Estratégias de Busca Informada **Algoritmos baseados em avaliação**: $f(n) = g(n) + h(n)$. - $g(n)$: custo acumulado até o nó $n$. - $h(n)$: estimativa heurística do restante. *Tipos de heurísticas:* admissíveis, consistentes, e seu impacto na optimalidade. ---
# Algoritmos Populares - **Busca A\*** – Garante solução ótima se $h$ é admissível e consistente; usa prioridade pelo menor $f(n)$. - **Greedy Best‑First Search** – Usa apenas $h(n)$; rápido, mas sem garantias de optimalidade.
# Heurísticas: Exemplos e Construção - **Heurística admissível**: distância Euclidiana no problema do 8‑puzzle. - **Heurística consistente**: soma das distâncias de Manhattan; satisfaz a desigualdade triangular. ---