0.3 – Busca e Solucao de Problemas
0.3.2 – Busca Heuristica – Informada
0.3.2.1 – Algoritmo A Estrela
0.3.2.2 – Gulosa – Best-First Search
a fórmula mágica f = g + h
O algoritmo A* combina duas informações para tomar decisões inteligentes durante a busca. Ele utiliza o custo real g(n) do caminho percorrido até o estado atual. Adiciona a esse valor a estimativa heurística h(n) do custo restante até o objetivo. O resultado f(n) = g(n) + h(n) representa o custo total estimado do caminho completo. Por exemplo, em um mapa, g é a distância já dirigida, h é a distância em linha reta até o destino. O A* sempre expande o estado com o menor valor f disponível na fronteira. Essa estratégia equilibra explorar caminhos já percorridos com a promessa do que está adiante.
heurísticas admissíveis: garantia de otimalidade
Uma heurística é admissível quando nunca superestima o custo real para alcançar o objetivo. Essa propriedade é fundamental para garantir que o A* encontra a solução ótima. Por exemplo, a distância em linha reta é admissível porque nenhum caminho real pode ser mais curto. Heurísticas admissíveis fornecem um limite inferior otimista para o custo restante do trajeto. Quando a heurística é admissível, o A* é completo e ótimo para problemas. Ele encontra o caminho de menor custo sem explorar estados desnecessários durante a busca. Quanto mais precisa a heurística, menos estados o algoritmo precisa expandir.
exemplo prático: navegação em um mapa
Imagine que você precisa encontrar a rota mais curta entre duas cidades em um mapa rodoviário. O A* começa na cidade de origem com g=0 e h = distância em linha reta até o destino. Ele calcula f para cada cidade vizinha e adiciona essas opções à fila de prioridades. A cada passo, o algoritmo expande a cidade com o menor valor f disponível na fila. Quando expande uma cidade, atualiza os custos g dos vizinhos se encontrar caminhos melhores. O processo continua até que a cidade destino seja removida da fila para expansão. Nesse momento, o A* garante que encontrou o caminho de menor custo possível.
propriedades fundamentais do a*
O A* possui propriedades matemáticas que o tornam uma escolha preferencial em muitas aplicações. Ele é completo: sempre encontra uma solução quando ela existe no espaço de busca. Além disso, é ótimo quando a heurística utilizada é admissível e consistente. O algoritmo é também eficientemente ótimo, expandindo menos estados que qualquer outro algoritmo ótimo. Em termos de complexidade, o A* pode consumir muita memória em espaços de busca grandes. Ele mantém todos os estados explorados na fronteira simultaneamente durante a execução. Variações como o IDA* foram desenvolvidas para lidar com limitações de memória.
aplicações no mundo real
Sistemas de navegação GPS utilizam o A* como núcleo para calcular rotas otimizadas. Eles combinam distâncias reais, limites de velocidade e condições de trânsito como custos. Em jogos eletrônicos, personagens não-jogadores usam A* para navegar por cenários complexos. A indústria de robótica emprega o algoritmo para planejamento de trajetórias em ambientes dinâmicos. Sistemas de logística aplicam A* para otimizar rotas de entrega em larga escala. Para iniciantes, o A* representa o ponto alto dos algoritmos de busca tradicionais. Ele demonstra como combinar conhecimento imperfeito com informações concretas produz resultados excepcionais.