Chips-n-Salsa

0

A Java library of Customizable, Hybridizable, Iterative, Parallel, Stochastic, and Self-Adaptive Local Search Algorithms

Miscellaneous

local-search
simulated-annealing
hill-climbing
stochastic-sampling
Chips-n-Salsa - A Java library of customizable, hybridizable, iterative, parallel, stochastic, and self-adaptive local search algorithms

Chips-n-Salsa - A Java library of customizable, hybridizable, iterative, parallel, stochastic, and self-adaptive local search algorithms

Chips-n-Salsa is a Java library that provides customizable, hybridizable, iterative, parallel, stochastic, and self-adaptive local search algorithms. It includes various stochastic local search algorithms like simulated annealing, hill climbers, and constructive search algorithms such as stochastic sampling. The library also supports genetic algorithms and evolutionary algorithms. It extensively supports simulated annealing and provides classes for representing solutions to optimization problems. The library offers mutation operators and crossover operators for generating random neighbors and use with evolutionary algorithms. It supports permutation optimization problems and utilizes the Permutation class from the JavaPermutationTools (JPT) library.

Table of Contents

  • Java Requirements
  • Versioning Scheme
  • Building the Library (with Maven)
  • Example Programs
  • Java Modules
  • Importing from Package Repositories
  • Downloading Jar Files
  • License
  • Contribute

Java Requirements

Chips-n-Salsa requires Java 17 or later versions. The library's versioning scheme follows Semantic Versioning.

Building the Library (with Maven)

The Chips-n-Salsa library is built using Maven. Use the provided Maven pom.xml file to build the library. Running mvn package at the root of the repository will compile all classes, run tests, generate jar files, and produce build outputs in the target directory. To enable a code coverage report, use mvn package -Pcoverage. Static analysis tools can be executed with mvn package -Panalysis.

Example Programs

Example programs demonstrating library usage are available in a separate repository named cicirello/chips-n-salsa-examples. The examples provide detailed comments within the source code.

Java Modules

Chips-n-Salsa provides a Java module, org.cicirello.chips_n_salsa. If your project uses modules, you can add this module to your module-info.java file. Additionally, the chips_n_salsa module requires the org.cicirello.jpt module for permutational problems optimization.

Importing from Package Repositories

Prebuilt artifacts are regularly published to Maven Central, GitHub Packages, and JitPack. To import from Maven Central, add the dependency to your pom.xml file. If importing from GitHub Packages or JitPack, follow the instructions provided and adjust your repositories section accordingly. Jar files can also be downloaded manually from GitHub Releases.

License

The Chips-n-Salsa library is licensed under the GNU General Public License 3.0.

Contribute

If you would like to contribute to Chips-n-Salsa, please refer to the contribution guidelines and the Contributor Covenant Code of Conduct.

Company Screenshot