0.3 – Busca e Solucao de Problemas
0.3.1.1 – Busca em Largura BFS
0.3.1.2 – Busca em Profundidade DFS
0.3.1.3 – Busca de Custo Uniforme
o que caracteriza a busca cega
Busca cega é uma estratégia que explora o espaço de estados sem usar informações adicionais sobre o problema. Ela não possui conhecimento sobre qual caminho pode levar mais rapidamente ao objetivo. O algoritmo simplesmente segue uma ordem predefinida para expandir estados, sem preferências. Essa abordagem também recebe o nome de busca não-informada, pois falta orientação externa. A única informação disponível é a descrição do problema e as ações possíveis. Por exemplo, em um labirinto, a busca cega não sabe em que direção fica a saída. Ela apenas explora corredores sistematicamente até encontrar o destino desejado.
busca em largura: explorando por níveis
A busca em largura (BFS) expande todos os estados de um nível antes de avançar para o próximo. Ela utiliza uma estrutura de fila (FIFO) para gerenciar os estados a serem explorados. Por exemplo, em um jogo de palavras, ela encontra a menor sequência de letras para transformar uma palavra em outra. A BFS garante encontrar a solução com o menor número de ações possível. Contudo, ela consome muita memória, pois mantém todos os estados de um nível armazenados. Em problemas com fator de ramificação alto, o uso de memória cresce exponencialmente. Apesar disso, sua completude e otimalidade a tornam valiosa para muitos problemas.
busca em profundidade: avançando sem olhar para trás
A busca em profundidade (DFS) explora um caminho até o fim antes de retroceder e tentar outro. Ela utiliza uma estrutura de pilha (LIFO) para gerenciar os estados a serem explorados. Por exemplo, em um jogo de quebra-cabeça, ela tenta uma sequência de movimentos até um beco sem saída. A DFS consome pouca memória, pois mantém apenas um caminho por vez na pilha. Entretanto, ela pode ficar presa em caminhos infinitos se o espaço não tiver limites claros. Além disso, ela não garante encontrar a solução mais curta disponível. Mesmo assim, sua eficiência de memória a torna útil para problemas com muitas possibilidades.
busca de custo uniforme: levando pesos em conta
A busca de custo uniforme (UCS) expande o estado com o menor custo acumulado até o momento. Diferente da BFS, ela considera que ações podem ter custos diferentes entre si. Por exemplo, em um mapa rodoviário, a UCS expande primeiro os caminhos com menor distância percorrida. Ela utiliza uma fila de prioridades onde o custo acumulado define a ordem de expansão. Essa abordagem garante encontrar a solução de menor custo total para o problema. Contudo, ela também pode consumir muita memória em espaços de estados grandes. É uma generalização da BFS para problemas onde ações possuem custos variados.
comparando as estratégias cegas
Cada estratégia de busca cega apresenta vantagens e desvantagens específicas para diferentes contextos. A busca em largura é ideal quando a solução mais curta é prioridade absoluta. A busca em profundidade se destaca quando a memória é limitada e a profundidade não é excessiva. A busca de custo uniforme é a escolha certa quando ações possuem custos variados e importantes. Nenhuma delas utiliza conhecimento sobre o problema para guiar a exploração. Por isso, em espaços muito grandes, essas estratégias podem se tornar inviáveis na prática. Para iniciantes, compreender essas diferenças ajuda a escolher a ferramenta certa para cada problema.