GitHub Repository
https://github.com/SkafteDev/codename-courage
Project Description
The Codename Courage framework is a modular Java library for multi-objective optimization and trade-off decision-making in domain problems. It enables you to define and evaluate competing objectives (e.g., cost vs. performance vs. risk), apply evolutionary algorithms (MOEAs) for exploring solution spaces, and then select best solutions via decision-making modules according to your domain’s preferences. The library is built in a modular fashion: core abstractions live in a commons module, while evaluation, decision-making, import/export, and MOEA modules provide plug-in capabilities depending on your needs. It’s ideal for applications in engineering design, resource allocation, co-simulation, or any scenario where you must optimize across multiple metrics simultaneously.
Feature Highlights
- Modular architecture with separate modules for commons, evaluation, decision-making, MOEAs, import/export and examples.
- Built-in implementations of multi-objective evolutionary algorithms (MOEAs) such as mutation, crossover, and selection operators.
- Evaluation module for defining domain-specific objectives and constraints, and integrating custom problem definitions.
- Decision-making module for selecting or ranking Pareto-optimal solutions based on configurable criteria.
- Example problem implementations out-of-the-box, including classic benchmarks like the knapsack problem and domain-specific case studies (cone optimization, etc.).
- Import and export utilities for loading and saving solution populations, enabling offline analysis and tool integration.