Show HN: Sokoban AI Solver resolve quebra-cabeças clássicos em milissegundos
Ferramenta open-source usa variantes de A* para provar a solução ótima em puzzles da década de 80
O que aconteceu
O usuário mkornreich postou no Hacker News (HN) um projeto intitulado "Show HN: Sokoban AI Solver" (Hacker News, 2026). A ferramenta é um solver (resolvedor) de IA para Sokoban, um jogo de lógica de 1980 onde o jogador deve empurrar todas as caixas para posições-alvo. O diferencial é que a IA não encontra qualquer solução, mas a provavelmente ótima, com o menor número de movimentos. Os tabuleiros de teste 1 a 14 são resolvidos ao ótimo em milissegundos. O 15º tabuleiro, com 8 caixas, é uma exceção: sua busca ótima explora aproximadamente 49 milhões de estados (Hacker News, 2026).
Contexto
Sokoban é um quebra-cabeça clássico de resolução NP-difícil. A versão apresentada adiciona uma regra: o "dono do armazém" (o personagem controlado pelo jogador) também deve terminar em uma posição-alvo. Isso significa que cada tabuleiro tem uma posição-alvo a mais do que o número de caixas. A busca por soluções ótimas nesse tipo de problema é computacionalmente intensa, pois o espaço de estados cresce exponencialmente com a complexidade do tabuleiro. Solvers anteriores existem, mas este se destaca por ser um port JavaScript de um solver nativo em C++ otimizado para web, focado em performance e compactação de dados.
Por que importa
O projeto ilustra uma aplicação prática e educacional de algoritmos de busca avançados. A técnica de "macro-push A*" pula os passos intermediários de caminhada do personagem, contando cada empuxo de caixa como uma unidade de custo, o que reduz drasticamente o espaço de busca. A compactação de estados usando bitmasks (máscaras de bits) permite que milhões de estados caibam em dezenas de MB, viabilizando a execução em navegadores. Para desenvolvedores e entusiastas de IA, é um exemplo claro de como escolhas de representação de dados e estruturas de dados eficientes (como filas de balde e hashes de array) podem transformar um problema teoricamente intratável em algo resolvível em tempo real.
Impacto
A implementação demonstra que algoritmos de busca clássicos, quando cuidadosamente otimizados, continuam sendo ferramentas poderosas para problemas de resolução de problemas, frequentemente superando abordagens baseadas em aprendizado por reforço para tarefas de lógica pura com regras fixas. Para o ecossistema de IA, reforça a importância de heurísticas admissíveis e técnicas de poda de deadlock (situções sem solução) em problemas de busca. A disponibilidade do código em JavaScript abre caminho para integração em jogos educacionais, ferramentas de ensino de algoritmos ou demonstrações interativas.
O que muda
O projeto destaca a viabilidade de executar soluções de IA complexas e ótimas diretamente no navegador, sem necessidade de backend. Isso reduz barreiras para experimentação e compartilhamento de soluções algorítmicas. Para o desenvolvimento de jogos, oferece um padrão de referência para como implementar assistentes ou solucionadores inteligentes em títulos de lógica. A abordagem de "estado compacto" também pode inspirar otimizações em outros domínios onde a representação eficiente do estado é um gargalo, como em planejamento de rotas ou otimização de configurações.
O que vem agora
O autor indica que o solver é um "port" de uma implementação C++ anterior. O próximo passo natural seria expandir o conjunto de tabuleiros de teste, otimizar ainda mais a performance para tabuleiros maiores ou explorar variações das regras de Sokoban. Dado o interesse da comunidade HN (pontuação de 74 no momento da análise), é provável que surjam contribuições, discussões sobreComplexidade computacional e, possivelmente, aplicações derivadas em áreas como robótica de planejamento de movimentos ou resolução de problemas com restrições.
