JAMES – A Java Metaheuristics Search Framework

JAMES is a modern Java framework for discrete optimization using local search metaheuristics. Various optimization algorithms are provided that can be applied to any user-defined problem by plugging in a custom solution type and corresponding neighbourhood. Predefined components are included for subset selection.

A major advantage of metaheuristics is that they are generally applicable to various optimization problems. A framework like JAMES enables the user to apply existing algorithms to newly defined problems with minimum effort. The performance of different algorithms and influence of parameter values can easily be studied and the focus can go to what really matters: carefully defining the problem and selecting an appropriate optimization strategy – not implementation.

Get started with JAMES

Download and install the latest version of the JAMES framework. You can either add a Maven dependency to automatically pull in all required packages or you can manually download and install the JAR files.

Read the documentation

Scroll through the list of available optimization algorithms, consult the Javadoc API or take a look at the GitHub wiki pages for more detailed information about the architecture of the framework.

Look at some examples

Step-by-step implementation guides are provided for a series of example problems. In these examples, several different optimization algorithms are applied to obtain solutions for the specified problems.


If you use JAMES for your research, please cite:

De Beukelaer H, Davenport GF, De Meyer G, and Fack V. JAMES: An object-oriented Java framework for discrete optimization using local search metaheuristics. Software: Practice and Experience. 2016; DOI: 10.1002/spe.2459
Other references:
De Beukelaer H, Davenport GF, De Meyer G, and Fack V. JAMES: A Modern Object-Oriented Java Framework For Discrete Optimization Using Local Search Metaheuristics. 4th International Symposium And 26th National Conference On Operational Research. Chania: Hellenic Operational Research Society, 2015; 134–138.

Source code repository

The JAMES framework is fully open source, visit GitHub to view the JAMES source code repository.

License and copyright

The source code and binaries of JAMES are licensed under the permissive Apache License, Version 2.0 with a joint copyright (see below). For a quick summary of what can, cannot and must be done according to the Apache license we recommend looking at tl;drLegal. Unused modules can be dropped from the copyright statement.

JAMES Core Module
JAMES Extensions Module

Copyright 2014-2017
Ghent University
Bayer CropScience

The documentation and website are licensed under the Creative Commons Attribution 4.0 International License © 2014-2017 Ghent University. The website is built using Bootstrap released under the MIT license © 2011 - 2017 Twitter (with icons from Font Awesome © Dave Gandy).