jExtreme is a Java library which provides implementations for mathematical optimization of functions (functions can be defined as lambdas). Library offers three optimization algorithms:
- Blind Algorithm - Searches space pseudo-randomly
- Genetic Algorithm - Algorithm is implemented to use a collection of double values to represent possible solutions instead of binary arrays
- Self-Organizing Migrating Algorithm (SOMA) - there is currently an implementation called SomaManyToOne - more details about the algorithm can be found here http://www.ft.utb.cz/people/zelinka/soma/
Library use MersenneTwister implementation from Apache Commons for random numbers.