I develop and maintain:
- A solver dedicated to geometrical packing problems fontanf/packingsolver
-
Packages that simplify the implementation of combinatorial optimization algorithms based on the following methods:
- Local search fontanf/localsearchsolver (C++) fontanf/localsearchsolverpy (Python3)
- Heuristic tree search fontanf/treesearchsolver (C++) fontanf/treesearchsolverpy (Python3)
- Column generation heuristics fontanf/columngenerationsolver (C++) fontanf/columngenerationsolverpy (Python3)
-
Other libraries to simplify the implementation of optimizaztion algorithms:
- Various data structures fontanf/optimizationtools
- Simplify solvers integration with CMake + a simple MILP modeler fontanf/mathoptsolverscmake
- A C++ interface for the nonlinear solver Artelys Knitro fontanf/knitrocpp
- A geometry library that supports line segments and circular arcs fontanf/shape
-
Solvers for various fundamental optimization problems that often appear as subproblems of more complex optimization problems:
- 0-1 knapsack problem fontanf/knapsacksolver
- Subset-sum problem fontanf/subsetsumsolver
- Multiple-choice knapsack problem fontanf/multiplechoiceknapsacksolver
- Multiple-choice subset-sum problem fontanf/multiplechoicesubsetsumsolver
- Generalized assignment problem fontanf/generalizedassignmentsolver
- (Unicost) set covering problem fontanf/setcoveringsolver
- Maximum(-weight) independent set and maximum-(weight) clique problems fontanf/stablesolver
- Graph coloring problem fontanf/coloringsolver
- Traveling salesman problem fontanf/travelingsalesmansolver
-
Some research codes:
- Star observation scheduling problems fontanf/starobservationschedulingsolver
- Travelling thief problems fontanf/travellingthiefsolver
- Flow shop, job shop and open shop scheduling problems fontanf/shopschedulingsolver
- Knapsack problem with conflicts fontanf/knapsackwithconflictssolver
Finally, the repository fontanf/teaching contains the material I use to teach.