Skip to content
Jan Drchal edited this page Jul 10, 2024 · 14 revisions

JCOOL (Java COntinuous Optimization Library)

JCOOL is an open-source Java library for continuous optimization. It implements both numerical and nature-inspired algorithms. We have included a huge set of benchmarking problems and a GUI tool with various visualizations.

Quickstart documentation can be found here.

Methods and benchmarking problems are described in Vladimír Bičík's Master's Thesis.

Implemented Methods

Note: some of the methods from other packages are adapted to our interfaces.

  • AACA (Adaptive Ant Colony Algorithm)
  • ACO* (Extended Ant Colony Optimization)
  • API
  • CACO (Continuous Ant Colony Optimization)
  • CGM (Conjugated Gradient Method)
    • Brent line search w/o derivatives
    • Fletcher-Reeves, Polak-Ribiere, Beale-Sorenson/Hestenes-Stiefel updates
  • CMA-ES (Covariance Matrix Adaptation Evolution Strategy)
  • two versions of original CMA-ES
  • IPOP-CMA-ES (Increasing Population CMA-ES)
  • History IPOP-CMA-ES
  • DACO (Direct Ant Colony Optimization)
  • Deterministic Crowding GA
  • Differential Evolution
    • two versions
  • DIRECT (Dividing Rectangle Optimization)
  • Evolutionary Strategy
  • Genetic Algorithm
  • HGAPSO (Hybrid of the GA and the PSO)
  • Levenberg-Marquardt
  • Orthogonal Search
  • Parallel Hillclimbing
  • PBIL (Population Based Incremental Learning)
  • Powell
    • Brent line search w/o derivatives
  • PSO (Particle Swarm Optimization)
  • Quasi Newton
    • Davidon-Fletcher-Powell, Broyden, Broyden Family, Broyden-Fletcher-Goldfarb-Shanno (BFGS) update
  • Random Search
  • SADE Genetic Algorithm
  • Sequential Niching
  • Steepest Descent
    • Brent line search w/o derivatives

GUI

GUI application is distibuted along with the library. You can use it to quickly compare algorithms and visualize their convergence. The following figure show a visualization of DIviding RECTangle method optimizing two dimensional Rosenbrock's function. Note the regular sampling pattern.

GUI: main window DIRECT method

The sampling by means of Particle Swarm Optimization looks quite different. GUI: main window PSO

Quasi Newton will be the method of choice for this problem. GUI: main window Quasi Newton


© Vladimír Bičík, Jan Drchal, Martin Hvizdoš, Pavel Kordík, Roman Machytka, Martin Miklánek, Antonín Šulc, FEL ČVUT, 2012

Clone this wiki locally