Open Source Evolutionary Computation with Chips-n-Salsa
Vincent A. Cicirello
TL;DR
Chips-n-Salsa extends an open-source Java framework from stochastic local search to evolutionary computation, delivering multiple EA models, problem representations, and a rich set of operators and benchmarks for reproducible research. It details generational and steady-state EAs, including the ($bc0lambda$)-EA, adaptive rates, parallel execution, and extensive permutation-focused tooling, all integrated within a modular, interface-driven design. The paper emphasizes robust development practices (TDD, static analysis, CI/CD) and artifact publishing to Maven Central, ensuring reproducible experiments and ease of integration. Collectively, the work provides a production-grade, extensible EA toolkit that supports rigorous benchmarking, hybrids, and practical deployment in Java environments.
Abstract
When it was first introduced, the Chips-n-Salsa Java library provided stochastic local search and related algorithms, with a focus on self-adaptation and parallel execution. For the past four years, we expanded its scope to include evolutionary computation. This paper concerns the evolutionary algorithms that Chips-n-Salsa now provides, which includes multiple evolutionary models, common problem representations, a wide range of mutation and crossover operators, and a variety of benchmark problems. Well-defined Java interfaces enable easily integrating custom representations and evolutionary operators, as well as defining optimization problems. Chips-n-Salsa's evolutionary algorithms include implementations with adaptive mutation and crossover rates, as well as both sequential and parallel execution. Source code is maintained on GitHub, and immutable artifacts are regularly published to the Maven Central Repository to enable easily importing into projects for reproducible builds. Effective development processes such as test-driven development, as well as a variety of static analysis tools help ensure code quality.
