Como medir se estamos chegando no objetivo
no contexto do 8-puzzle?
Como medir se estamos chegando no objetivo
no contexto do 8-puzzle?
Distância de Manhattam (em vermelho) e distância Euclideana (em azul). Fonte: Machine Learning with Swift.
Distância de Manhattam (em azul) e distância Euclideana (em verde). Fonte: DataCamp.
A distância de Manhattan mede o número total de movimentos horizontais e verticais necessários para levar cada peça de sua posição atual até a posição correta.
onde:
Estado inicial:
2 8 3
1 6 4
7 5
Objetivo:
1 2 3
8 4
7 6 5
Fonte da imagem: https://8-puzzle.readthedocs.io/en/latest/
Uma heurística é admissível se
nunca superestima o custo real até o objetivo.
A Distância de Manhattan é considerada uma heurística mais eficaz que apenas contar peças fora do lugar?
Seja
Considere encontrar o melhor caminho entre as cidades de Arad (estado inicial) e Bucharest (estado objetivo).
Qual heurística você usaria para encontrar um bom (ou o melhor) caminho entre
Arad e Bucharest?
A tabela à direita da imagem mostra distância em linha reta estimada de cada cidade presente no mapa até à capital do país, Bucharest.
A cada passo escolhe a ação que parece mais promissora no presente.
Greedy Best-First: Voltamos ao exemplo anterior. Vamos encontrar o caminho mais curto:
(A) de Arad a Bucharest. (B) de Iasi para Fagaras.
1. Inserir nó inicial na fila aberta (open).
2. Enquanto open não vazio:
3. Selecionar n = node com menor f(n).
4. Se n é objetivo: reconstruir caminho e terminar.
5. Expandir n → gerar filhos {n'}.
6. Para cada filho n':
7. g' = g(n) + custo(n, n')
8. h' = heurística(n')
9. f' = g' + h'
10. Se n' já em closed com menor f: ignorar
11. Caso contrário, inserir/atualizar open.
12. Inserir n em closed.
A*: Voltamos (de novo!?) ao exemplo anterior. Vamos encontrar o caminho mais curto de Arad a Bucharest.
Domínio | Uso de A* |
---|---|
Robótica móvel | Planejamento de trajeto em malha 2‑D/3‑D. |
Jogos | Pathfinding em mapas com obstáculos (ex.: RTS, RPG). |
Complexidade:
A* para encontrar o caminho mínimo entre dois pontos em uma grade (matriz) 5 × 5, onde alguns quadrados são obstáculos.
S
- Estado inicial (posição (0, 0)).G
- Meta (posição (3, 4)).#
- Obstáculos (não podem ser atravessados)..
- Células livres.0 | 1 | 2 | 3 | 4 | |
---|---|---|---|---|---|
0 | S | . | . | # | . |
1 | . | # | . | # | . |
2 | . | # | . | . | . |
3 | . | . | . | # | G |
4 | . | # | . | . | . |
Como avaliar a qualidade de uma heurística?
Atividade recomendada: Leitura do capítulo 3.