CCT-UFCA/Ciência da Computação/Inteligência Artificial/Busca em largura
Aparência
Definição
[editar | editar código]A busca em largura é uma estratégia de busca cega (sem informação) que:
- Expande primeiro o nó raiz (estado inicial).
- Depois expande todos os nós do mesmo nível de profundidade.
- Só então passa para o próximo nível da árvore de busca.
Estrutura usada: Fila (FIFO — First In, First Out).
Ordem de expansão: por níveis.
Como funciona
[editar | editar código]- Coloca o nó raiz na fila (profundidade 0).
- Remove o primeiro nó da fila (o mais antigo) e expande, gerando seus sucessores.
- Coloca todos os sucessores no final da fila.
- Repete o processo até:
- Encontrar o estado objetivo, ou
- Fila ficar vazia (nenhuma solução).
Exemplo 1 – Árvore de Busca
[editar | editar código]Suponha esta árvore e que o objetivo é chegar ao nó D:

Passos da BFS:
- Fila inicial:
[A] - Expande A → adiciona B, C, D →
[B, C, D] - Verifica B → adiciona E, F →
[C, D, E, F] - Verifica C → (sem filhos) →
[D, E, F] - Verifica D → É objetivo! ✅
- Ordem de visita: A → B → C → D.
- Encontrou o objetivo no nível mais raso.
Exemplo 2 – Problema das Cidades
[editar | editar código]Imagine um grafo de cidades conectadas (trecho simplificado):

Objetivo: Sair de Arad e chegar a Bucareste, assumindo custo uniforme.
Execução da BFS:
- Começa em Arad → adiciona
[Sibiu, Zerind] - Verifica Sibiu →
[Zerind, Fagaras] - Verifica Zerind →
[Fagaras, Oradea] - Verifica Fagaras →
[Oradea,Bucareste] - Verifica Oradea (Sem Filhos) →
[Bucareste] - encontra Bucareste ✅
💡 A BFS garantiu o menor número de passos até o objetivo.
Propriedades da BFS
[editar | editar código]Características
- Completa: ✅ Sim, se b (fator de ramificação) e d (profundidade da solução mais rasa) forem finitos.
- Ótima: ✅ Sim, se todas as ações tiverem o mesmo custo.
- Tempo: O(b^d) — porque no pior caso visita todos os nós até a profundidade d.
- Espaço: O(b^d) — precisa guardar todos os nós na memória.
Vantagens
- Sempre encontra a solução mais curta em número de passos (ótima com custo uniforme).
- Simples de implementar.
Desvantagens
- Consome muita memória, pois guarda todos os nós do nível atual antes de passar ao próximo.
- Fica lenta em espaços de estados grandes.
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.