CCT-UFCA/Ciência da Computação/Inteligência Artificial/Busca em profundidade
Aparência
Busca em Profundidade - Definição
[editar | editar código]A busca em profundidade é uma estratégia de busca sem informação (cega) que:
- Sempre expande o nó mais profundo que está na fronteira.
- Explora um caminho até não haver mais sucessores (nó folha) ou até atingir um limite.
- Ao chegar num beco sem saída, retrocede (backtracking) para explorar outros caminhos.
- Estrutura usada: Pilha (LIFO — Last In, First Out).
- Ordem de expansão: segue um ramo até o fim antes de voltar.
Como funciona (versão árvore)
[editar | editar código]- Coloca o nó raiz na pilha.
- Remove o último nó adicionado (topo da pilha) e expande.
- Coloca os sucessores no topo da pilha.
- Repete até encontrar o objetivo ou não haver mais nós.
Exemplo – Árvore de Busca (Objetivo: M)
[editar | editar código]
Execução DFS:
- Pilha:
[A] - Expande A → adiciona C, B →
[C, B] - Expande B → adiciona E, D →
[C, E, D] - Expande D → adiciona I, H →
[C, E, I, H] - Expande H → sem filhos →
[C, E, I] - Expande I → sem filhos →
[C, E] - Expande E → sem filhos →
[C] - Expande C → adiciona G, F →
[G, F] - Expande F → sem filhos →
[G] - Expande G → adiciona M, L →
[M, L] - Expande M → Objetivo encontrado ✅
Ordem de visita: A → B → D → H → I → E → C → F → G → M.
DFS Ilimitada
[editar | editar código]Características
- Não tem limite de profundidade.
- Segue o ramo até profundidade máxima possível antes de retroceder.
- Pode entrar em loop infinito em grafos com ciclos.
Exemplo de loop
Se houver um caminho que retorna a um estado anterior (A → B → A → B...), a DFS ilimitada pode nunca encontrar o objetivo, mesmo que ele exista em outro ramo.
DFS Limitada
[editar | editar código]Características
- Adota limite fixo de profundidade (L).
- Ao atingir esse limite, trata o nó como folha (não expande mais).
- Evita loops infinitos, mas pode perder soluções se L < profundidade do objetivo.
Exemplo
Objetivo está a profundidade 5. Se definirmos limite L = 3, a busca nunca o encontrará. Se definirmos L = 6, ela encontra, mas pode não ser ótima.
Comparação – DFS Ilimitada vs Limitada
[editar | editar código]| Característica | DFS Ilimitada | DFS Limitada (l) |
|---|---|---|
| Limite de profundidade | ❌ Não | ✅ Sim |
| Loop infinito | ❌ Possível | ✅ Evitado |
| Completa | ❌ Não (exceto grafos finitos) | ❌ Não se l < d |
| Ótima | ❌ Não | ❌ Não |
| Uso | Espaços profundos, soluções rápidas | Quando temos noção da profundidade máxima |
Referências
[editar | editar código]- RUSSELL, S. J.; NORVIG, P. Inteligência artificial. 3 ed. LTC, 2013. 1016 p.
- COPPIN, B. Inteligência Artificial. 1a ed. LTC, 2010. 664 p.