https://github.com/hlefebvr/idol
A C++ Framework for Optimization
https://github.com/hlefebvr/idol
algorithms algorithms-implemented branch-and-bound branch-and-cut-and-price branch-and-price column-generation cpp mathematical-programming milp mixed-integer-programming optimization solver
Last synced: 4 days ago
JSON representation
A C++ Framework for Optimization
- Host: GitHub
- URL: https://github.com/hlefebvr/idol
- Owner: hlefebvr
- License: gpl-3.0
- Created: 2022-09-02T08:30:42.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2026-01-12T19:04:02.000Z (10 days ago)
- Last Synced: 2026-01-13T00:03:22.869Z (10 days ago)
- Topics: algorithms, algorithms-implemented, branch-and-bound, branch-and-cut-and-price, branch-and-price, column-generation, cpp, mathematical-programming, milp, mixed-integer-programming, optimization, solver
- Language: C++
- Homepage: https://hlefebvr.github.io/idol
- Size: 18.9 MB
- Stars: 36
- Watchers: 3
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# A C++ Framework for Optimization





[](https://app.codecov.io/gh/hlefebvr/idol)
[](https://github.com/sponsors/hlefebvr)
## What is idol?
idol is a C++ framework for mathematical optimization and complex decision-making problems. It is designed to help you build new algorithms for solving complex optimization problems. The main philosophy behind idol is interoperability and ease of use. Hence, any algorithm can be seamlessly combined with any other algorithm to create a new one.
For instance, you can combine a branch-and-bound algorithm with a column generation algorithm to create a branch-and-price algorithm.
```cpp
const auto branch_and_price = branch_and_bound + column_generation;
model.use(branch_and_price);
model.optimize();
```
With idol, you can also interface with your favorite solver:
- Mixed-integer optimization ([Gurobi](https://www.gurobi.com/), [Cplex](https://www.ibm.com/products/ilog-cplex-optimization-studio), [Mosek](https://www.mosek.com/), [HiGHS](https://github.com/ERGO-Code/HiGHS), [GLPK](https://www.gnu.org/software/glpk/), [coin-or/Osi](https://github.com/coin-or/Osi/) and julia's framework [JuMP](https://github.com/jump-dev/JuMP.jl));
- Bilevel optimization ([coin-or/MibS](https://github.com/coin-or/MibS));
## Documentation
Visit our [online documentation](https://hlefebvr.github.io/idol/).
## Using idol for Research?
If you're interested in idol or use it for research, don't hesitate to contact me at lefebvre@uni-trier.de.