Hipster4j
Biblioteca de busca heurística lixeira e potente para Java e Android
Unha potente e amigable biblioteca de busca heurística implementada en Java.
Que é Hipster4j?
O obxectivo de Hipster4j é proporcionar unha biblioteca Java fácil de usar, pero potente e flexible, con seguridade de tipos para a busca heurística. Hipster baséase nun modelo flexible con operadores xenéricos que permiten reutilizar e cambiar o comportamento dos algoritmos con moita facilidade. Os algoritmos tamén están implementados de forma iterativa, evitando a recursividade. Isto ofrece moitas vantaxes: control total sobre a busca, acceso aos elementos internos durante a execución ou unha mellor e máis clara escalabilidade para espazos de busca grandes mediante o uso da memoria do heap.
Podes usar Hipster4j para resolver desde problemas sinxelos de busca en grafos ata problemas máis avanzados de busca en espazos de estados, nos que o espazo de estados é complexo e os pesos non son simplemente valores double, senón custos definidos a medida.
Funcionalidades
A versión actual da biblioteca inclúe algúns algoritmos de busca moi coñecidos e amplamente utilizados. Estamos traballando para engadir máis algoritmos en breve:
- Algoritmos de busca:
- Busca non informada:
- DFS: busca en profundidade.
- BFS: busca en amplitude.
- Algoritmo de Dijkstra.
- Bellman-Ford.
- Busca informada:
- A estrela (A*).
- IDA estrela (IDA), A con profundización iterativa.
- AD estrela (AD): A dinámico en calquera momento.
- Busca local:
- Hill-Climbing.
- Enforced-Hill-Climbing.
- Busca multiobxectivo
- Algoritmo LS multiobxectivo. Artigo orixinal: Martins, E. D. Q. V., & Santos, J. L. E. (1999). "The labeling algorithm for the multiobjective shortest path problem". <i>Departamento de Matematica, Universidade de Coimbra, Portugal, Tech. Rep. TR-99/005</i> (consulta un exemplo)
- Adaptadores de terceiros:
- Adaptador de Java Universal/Graph (JUNG).
Se non atopas o algoritmo ou a funcionalidade que buscas, considera contribuír a Hipster!. Podes abrir unha incidencia ou, mellor aínda, facer un fork deste repositorio e crear unha solicitude de integración coa túa contribución.
Que vén despois?
Se queres aprender a resolver un problema mediante a busca con Hipster, consulta a wiki e a documentación JavaDoc. Tamén che recomendamos consultar esta presentación para unha introdución rápida.