Entendendo o que é uma Busca

Rotas
grafo
grafo

O que é uma Busca?

Primeiramente, uma busca é o processo de percorrer um grafo para visitar cada vértice em uma ordem definida. Em essência, ela descobre nós não visitados durante essa travessia sistemática. Contudo, o ato de visitar pode incluir leitura ou atualização do vértice. Cada vértice é designado como descoberto ou processado após a busca. Além disso, a ordem de visitação determina a estratégia empregada. Grafos representam estados que simulam um espaço físico ou abstrato. Por exemplo, um grafo pode incluir direcionalidade entre suas conexões. Igualmente, um peso pode ser atribuído a uma aresta específica. Esse peso define distância, tempo ou outra métrica relevante. A informação do peso é usada para otimizar caminhos. Portanto, a busca explora essas conexões ponderadas sistematicamente.

Busca não informada (cega)

Na abordagem não informada, a IA não recebe dados além da estrutura do grafo. Assim, ela explora o espaço de estados sem pistas externas. Apenas a topologia do grafo é considerada durante a navegação. Por conseguinte, algoritmos clássicos como BFS e DFS se enquadram aqui. A busca em largura (BFS) visita todos os vizinhos antes de aprofundar. Já a busca em profundidade (DFS) avança até o fim de cada ramo. Ambas não usam heurísticas para guiar suas decisões. Todavia, elas garantem completude em grafos finitos.

Busca informada (heurística)

Por outro lado, a busca informada emprega heurísticas para acelerar a solução. Heurística é uma suposição bem fundamentada sobre o caminho ideal. Por exemplo, ela aponta uma direção sem dar instruções exatas. Essa direção é sugerida com base em conhecimento prévio do problema. Analogamente, estar perdido em uma cidade é uma boa metáfora. As pessoas indicam o rumo do hotel, mas sem detalhes precisos. Às vezes, apenas informam a distância aproximada até o destino. Desse modo, a heurística reduz o número de nós avaliados. Entretanto, ela não garante a solução ótima em todos os casos.

Busca local e otimização

Ademais, a busca local é uma estratégia poderosa para problemas complexos. Ela começa a partir de uma solução atual ou imperfeita. Depois, move-se um passo por vez para soluções vizinhas. A viabilidade de cada vizinho é avaliada iterativamente pelo algoritmo. Assim, ela escapa de complexidades exponenciais típicas de problemas NP. Por exemplo, a busca local melhora a solução até um ponto ótimo local. Contudo, pode ficar presa em máximos ou mínimos locais. Para evitar isso, usam-se técnicas como recozimento simulado ou tabu. Finalmente, a busca local combina heurística astuta com restrições práticas. Essas restrições limitam o número inicial de avaliações possíveis. Em resumo, a busca em grafos é o coração da IA funcional. Ela representa oportunidades futuras a partir do estado atual. Seja cega ou informada, cada estratégia tem seu uso adequado. A escolha do método é determinada pelo contexto e pelos recursos disponíveis. Além disso, a busca local oferece soluções viáveis para problemas reais. Por fim, compreender esses conceitos permite projetar agentes inteligentes mais eficientes. A otimização contínua, passo a passo, refina soluções imperfeitas. Dessa forma, a busca não é apenas um algoritmo – é uma filosofia de exploração.

PlantUML Syntax:
@startuml

title Investigando a melhor abordagem para a Busca

: Antes de iniciar:;
: Embora a IA seja uma automacao inteligente, as vezes a automacao precisa dar lugar a analise. As Maquinas que aprendem sozinhas estao em um futuro distante;
: Definir a Meta;
: O planejamento o ajuda a determinar a sequencia de acoes a serem realizadas para atingir seu objetivo;
: Saiba que um algoritmo e uma sequencia de passos para encontrar a solucao correta, mas nao nescessariamente ele realizara todos esses passos para resolve-lo;
: Escolher a quantidade certa de dados e mais importante do que escolher o algoritmo certo;
: Garanta que seus dados sejam confiaveis e relevantes;

start
: Comece com uma situacao existente (pode ser a situacao presente ou uma solucao aleatoria ou conhecida);
repeat
 :Busque um conjunto de novas solucoes possiveis dentro das proximidades da solucao atual, que constitui a lista de candidatos;
 :Determine qual solucao usar no lugar da solucao atual com base na saida de uma heuristica que aceite a lista de candidatos como entrada;
repeat while (Ainda posso melhorar ?)
stop

@enduml



Navegando no Labirinto: Como a IA Escolhe o Melhor Caminho?

Anteriormente, exploramos o conceito fundamental de “O que é uma Busca” e como ela é o coração da Inteligência Artificial. Vimos que a busca é o processo de percorrer um grafo para visitar vértices em uma ordem definida, seja para ler ou atualizar informações. Entendemos que, em essência, a IA resolve problemas encontrando caminhos em um “espaço de estados”.

Agora, vamos dar um passo adiante. Se a busca é a arte de explorar um labirinto, precisamos entender quais estratégias a IA pode usar para não se perder. É sobre isso que falaremos hoje: os diferentes métodos de busca, desde os mais simples e “cegos” até os mais sofisticados que utilizam “intuição” (heurísticas) e até mesmo enfrentam adversários.


Mapeando o Problema: Representação de Estados e Operadores

Antes de qualquer algoritmo, precisamos responder a uma pergunta crucial: “O que estamos procurando e como podemos mudar o cenário atual?”.

  • Estados: Cada estado é uma fotografia do problema em um determinado momento. Uma boa representação captura apenas as informações essenciais, ignorando detalhes irrelevantes. Por exemplo, no problema clássico das jarras d’água, a quantidade de água em cada jarra define o estado.
  • Operadores: São as ações que transformam um estado em outro. “Encher a jarra”, “esvaziar” ou “transferir água” são operadores que criam novos estados na nossa árvore de busca.
Dica: Dominar essa modelagem é o primeiro passo. Uma boa representação muitas vezes vale mais que um algoritmo sofisticado aplicado a uma modelagem ruim.

Busca Cega: Explorando sem um Mapa

Quando a IA não possui nenhuma informação extra sobre o problema, ela utiliza a Busca Cega (ou Não-Informada). Imagine estar em um labirinto sem saber onde fica a saída; você só pode explorar corredores metodicamente. As principais estratégias são:

  • Busca em Largura (BFS): Explora todos os estados de um nível antes de avançar para o próximo. É garantido que encontrará a solução mais curta, mas pode consumir muita memória.
  • Busca em Profundidade (DFS): Avança até o fim de um caminho antes de retroceder. É econômica em memória, mas pode se perder em caminhos infinitos e não garante a solução mais curta.
  • Busca de Custo Uniforme (UCS): Leva em conta que ações podem ter custos diferentes. Ela sempre expande o caminho com o menor custo acumulado, garantindo a solução de menor custo total.

Busca Heurística: A Inteligência para Acelerar a Solução

Em problemas maiores, como encontrar a rota mais rápida em um GPS, a busca cega se torna inviável. É aqui que entra a Busca Heurística (ou Informada). Uma heurística funciona como um “palpite fundamentado” sobre qual caminho é mais promissor.

Em vez de explorar todas as opções, a IA “aposta” em caminhos que parecem levar mais rapidamente ao objetivo, como a distância em linha reta até o destino final. Os dois principais algoritmos são:

  • Gulosa – Best-First Search: Expande o estado que parece estar mais próximo do objetivo, guiado exclusivamente pela heurística.
  • Algoritmo A Estrela (A*): Considera tanto o custo já percorrido quanto a estimativa heurística. Ele combina o melhor do mundo real (custo) com o melhor da intuição (heurística) para encontrar o caminho mais eficiente.

Busca com Adversários: Quando Você Tem um Oponente

E quando o problema envolve um adversário que também quer vencer? É o caso dos jogos de tabuleiro, como xadrez ou jogo da velha. A IA precisa planejar seus movimentos antecipando as jogadas do oponente. É o reino da Busca com Adversários.

  • Algoritmo Minimax: A IA assume que ambos os jogadores jogarão de forma otimizada. O agente principal (maximizador) busca maximizar seu resultado, enquanto o adversário (minimizador) tenta minimizá-lo. O algoritmo constrói uma árvore de jogo e propaga os valores das jogadas, escolhendo a que oferece a melhor garantia.
  • Poda Alfa-Beta: Esta é uma otimização inteligente para o Minimax. Ela “poda” (corta) ramos da árvore de busca que são irrelevantes, pois não afetarão a decisão final. Imagine que você já encontrou uma jogada que garante uma boa vantagem; a IA não precisa analisar detalhadamente outras jogadas que são claramente piores. Isso acelera a tomada de decisão sem comprometer a qualidade.

Conclusão

A busca, em Inteligência Artificial, vai muito além de simplesmente percorrer caminhos. Ela envolve uma jornada por um “espaço de estados” bem definido, utilizando desde métodos sistemáticos e seguros (cegos) até estratégias inteligentes que usam heurísticas para encontrar atalhos.

Quando um adversário entra em cena, algoritmos como o Minimax e a Poda Alfa-Beta permitem que a IA pense no futuro, antecipando movimentos para garantir a vitória. Dominar esses conceitos é essencial para quem deseja projetar agentes inteligentes e eficientes, seja para jogar xadrez, otimizar rotas de entrega ou solucionar problemas complexos do mundo real.

— Artigo complementar ao post “Entendendo o que é uma Busca”

Tribos de Inteligência Artificial

tribo

Quando falamos das tribos no aprendizado de máquina, estamos olhando pelo método empregado para resolver problemas. Cada tribo possui uma filosofia própria, um “motor” interno que processa os dados. Essa visão foi popularizada por Pedro Domingos no livro “O Algoritmo Mestre”.

Tribo Simbólica

Método: Baseia-se na lógica formal e na manipulação de símbolos. O aprendizado é visto como a descoberta de regras explícitas do tipo “Se-Então”.

Essa tribo busca representar o conhecimento através de estruturas simbólicas. A dedução e a indução são usadas para generalizar a partir dos dados. Sua força está na interpretabilidade, pois as regras são compreensíveis por humanos.

🎯 Lema: “Se os dados seguem regras, eu vou encontrar a lógica por trás deles.”

Exemplos: Árvores de Decisão, Sistemas Especialistas e Regras de Associação.

Tribo Conexionista

Método: Inspirada no cérebro biológico, ela utiliza redes de neurônios artificiais. O aprendizado ocorre pelo ajuste de pesos sinápticos durante o treinamento.

Essa abordagem é excelente para reconhecer padrões complexos em dados não estruturados. O conhecimento é distribuído por toda a rede, o que torna o modelo uma “caixa preta”. Grandes avanços em visão computacional e processamento de linguagem natural são atribuídos a ela.

🧬 Lema: “Se os dados têm padrões sutis, o cérebro artificial vai capturá-los.”

Exemplos: Redes Neurais Profundas (CNNs, Transformers) e Perceptrons.

Tribo Evolucionista

Método: Baseia-se nos princípios da seleção natural e evolução darwiniana. Populações de soluções competem, cruzam e sofrem mutações ao longo das gerações.

Essa tribo é eficaz para espaços de busca enormes, onde o gradiente não está disponível. A otimização é guiada por uma função de aptidão (fitness). Ela não calcula derivadas, mas explora o espaço por tentativa e erro.

🌱 Lema: “Se o espaço de busca é imenso, a evolução vai encontrar o caminho.”

Exemplos: Algoritmos Genéticos, Programação Genética e Estratégias Evolutivas.

Tribo Bayesiana

Método: Trabalha com incerteza usando o Teorema de Bayes. O aprendizado é a atualização de crenças (probabilidades) à medida que novos dados são observados.

Ela lida muito bem com dados ruidosos e pequenos conjuntos. Cada predição vem acompanhada de um intervalo de confiança. A abordagem é probabilística, e não determinística, o que a torna robusta em cenários de risco.

📊 Lema: “Se os dados são barulhentos, eu calculo a chance de cada hipótese.”

Exemplos: Naive Bayes, Redes Bayesianas e Processos Gaussianos.

Tribo Analogista

Método: Aprende por comparação direta com exemplos vistos anteriormente. A previsão é feita pela similaridade entre o novo ponto e os dados de treino armazenados.

Essa tribo não constrói um modelo explícito. Em vez disso, ela memoriza os casos e usa uma métrica de distância para classificar ou regredir. É simples, mas pode ser computacionalmente custosa para grandes volumes de dados.

🔍 Lema: “Para prever algo novo, veja os exemplos mais parecidos que eu já vi.”

Exemplos: K-Vizinhos Mais Próximos (KNN) e Máquinas de Vetores de Suporte (com kernel).



Como as tribos (método) se relacionam com os paradigmas (tipo de aprendizado)?

Essa pergunta é fundamental para entender o mapa da IA. As tribos (Simbólica, Conexista, Evolucionista, Bayesiana, Analogista) respondem “como” o algoritmo aprende. Já os paradigmas (Supervisionado, Não Supervisionado, Semi-supervisionado, Por Reforço) respondem “com qual tipo de dado/feedback” ele aprende.

Na prática, toda tribo pode ser aplicada a qualquer paradigma, mas algumas combinações são mais naturais e populares. A tabela abaixo mostra essa relação, destacando os usos mais frequentes.

Simbólica Conexista Evolucionista Bayesiana Analogista ✅ = Combinação clássica 🔶 = Uso possível, mas menos comum ⭕ = Uso raro ou não convencional
Paradigma / Tribo Simbólica Conexista Evolucionista Bayesiana Analogista
Supervisionado
(rótulos conhecidos)
Simbólica

Árvores de Decisão e regras são usadas para classificar e regredir.

Conexista

Redes neurais são treinadas com backpropagation para ajustar pesos.

Evolucionista

Otimiza parâmetros e seleciona características para o modelo.

Bayesiana

Naive Bayes calcula probabilidades a priori e a posteriori.

Analogista

KNN classifica por similaridade com vizinhos rotulados.

Não Supervisionado
(sem rótulos)
Simbólica

Regras de associação (ex: Apriori) encontram padrões em transações.

Conexista

Autoencoders reduzem dimensionalidade sem supervisão.

Evolucionista

Evolui clusters ou regras para agrupar dados automaticamente.

Bayesiana

Modelos de mistura gaussiana agrupam com inferência probabilística.

Analogista

KNN pode ser usado para agrupamento por densidade.

Semi-supervisionado
(poucos rótulos)
Simbólica

Regras são induzidas a partir de dados rotulados e não rotulados.

Conexista

Redes neurais usam pseudo-rótulos para melhorar o aprendizado.

Evolucionista

Algoritmos genéticos podem propagar rótulos para dados vizinhos.

Bayesiana

Redes bayesianas incorporam incerteza em dados parcialmente rotulados.

Analogista

Propagação de rótulos por similaridade entre exemplos.

Por Reforço
(recompensa/punição)

Raramente usada; lógica simbólica é muito rígida para ambientes dinâmicos.

Conexista

Deep Q-Learning e Policy Gradients são padrão em RL.

Evolucionista

Robótica evolucionária otimiza políticas por seleção natural.

Bayesiana

RL Bayesiana lida com incerteza na função de recompensa.

KNN não se adapta bem a sequências; é pouco usado em RL.

Detalhamento por tribo e seus paradigmas preferenciais

🔴 Tribo Simbólica

Onde brilha: Supervisionado e Não Supervisionado. Árvores de decisão e regras de associação são aplicações clássicas.

Por que: A lógica formal é excelente para extrair regras legíveis de dados rotulados ou para encontrar correlações em transações.

Desafio no Reforço: A rigidez das regras simbólicas dificulta a adaptação a ambientes dinâmicos, que exigem flexibilidade.

🟢 Tribo Conexista

Onde brilha: Supervisionado, Não Supervisionado e Por Reforço. É a tribo mais versátil e dominante atualmente.

Por que: Redes neurais se adaptam a qualquer paradigma com arquiteturas apropriadas (CNNs para visão, LSTM para séries, DQN para RL).

Destaque: No Reforço, os métodos Deep Q-Learning e Policy Gradients são a base dos maiores avanços em IA (AlphaGo, por exemplo).

🟠 Tribo Evolucionista

Onde brilha: Otimização em todos os paradigmas, mas com destaque no Por Reforço.

Por que: A busca evolutiva é independente de gradiente, o que é valioso em RL com recompensas esparsas.

Uso comum: Ajuste de hiperparâmetros, seleção de características e evolução de arquiteturas de redes neurais (Neuroevolução).

🟣 Tribo Bayesiana

Onde brilha: Supervisionado e Não Supervisionado. É especialmente útil com poucos dados.

Por que: O Teorema de Bayes permite atualizar crenças probabilisticamente, lidando naturalmente com incerteza e ruído.

No Reforço: A RL Bayesiana é uma área de pesquisa, mas ainda não é tão difundida quanto as abordagens conexionistas.

🔵 Tribo Analogista

Onde brilha: Supervisionado e Não Supervisionado. KNN e clustering por similaridade são exemplos clássicos.

Por que: A simplicidade da comparação direta funciona bem para dados tabulares e de baixa dimensão.

No Reforço: A analogia é pouco explorada, pois RL exige generalização para estados não vistos, o que o KNN não oferece bem.