An Open Source Java Library for Heuristic Search

Hipster is an easy to use yet powerful and flexible type-safe library for heuristic search, written in pure Java. It relies on a flexible model with generic operators to define search problems.

All the algorithms are iterators. Just iterate over an algorithm to obtain the next expanded state. You can control the search process or change the behaviour of an algorithm according to your needs.

Hipster comes with a permissive Apache 2.0 license that allows you to use the library in a wide variety of commercial and non-commercial projects. All the source code of this library is also hosted on GitHub.

Let's se how to search the shortest path in a directed graph using Dijkstra. Although Hipster is graph-agnostic, we have included some nice classes and builders to create directed and undirected graphs to start playing with the library. You can also use other library graphs such as JUNG, JGraphT or Blueprints/TinkerPop API.

`Total number of iterations: 7. States: [A, B, C, E, D, F], Actions: [2.0, 1.0, 3.0, 2.0, 2.0], Search information: WeightedNode{state=F, cost=10.0, estimation=0.0, score=10.0}`

Learn how fast you can code and solve in a concise way the 8-Puzzle problem with Hipster with this three minute video tutorial. Full source code of this example can be found in the examples module.