📊 Build status for all bb4 projects
Heuristic search and optimization algorithms for continuous and discrete parameter spaces. Implement an Optimizee, pick a strategy (hill climbing, simulated annealing, genetic search, and others), and let Optimizer find a good solution — used by bb4-puzzles, bb4-games, and bb4-simulations. Algorithms largely follow Michalewicz and Fogel's How to Solve It: Modern Heuristics.
implementation 'com.barrybecker4:bb4-optimization:2.0.0'See the releases page or Maven Central for newer versions.
Optimizer— facade that runs a chosen strategy against anOptimizee(optional logging, listeners, evaluation budget)Optimizee/AbsoluteOptimizee— interface (and absolute-fitness adapter) for the thing being optimized; fitness is minimized (0 is best)BudgetedOptimizee— wraps an optimizee with a hard evaluation limitDiscreteStateSpace— marker for discrete problems used with state-space searchOptimizationStrategyType— hill climbing, global sampling / global hill climbing, simulated annealing, genetic search (including concurrent), state-space search, and brute forceparameter— typed parameters (DoubleParameter,IntegerParameter,BooleanParameter, …), arrays (NumericParameterArray,PermutedParameterArray,VariableLengthIntSet), sampling, distance metrics, and optional redistribution functionsviewer/OptimizerEvalApp— Swing UI that visualizes strategies on demo problems (./gradlew run)
See the Building bb4 Projects wiki.
MIT — see LICENSE.