Software

  • The SMS++ project: an over-ambitious project centered on the SMS++ modelling framework, a set of C++ classes to represent complex optimization models with multiple nested forms of structure and the corresponding sophisticated solution algorithms, and comprising a(n hopefully growing) set of models (“Block”) for several different structured optimization problems and the corresponding “Solver”.
  • The MCFClass project: several C++ solvers for single-commodity Min Cost Flow problems (now interfaced with SMS++ by MCFBlock).
  • MSArbor: a C++ implementation of the ARBOR algorithm for the Minimal Spanning Arborescence problem on weighted directed (complete) graphs.
  • The NDOSolver / FiOracle project: a suite of C++ solvers for NonDifferentiable Optimization problems whose interface is based on the pair of abstract classes NDOSolver and FiOracle; the project is not being further developed, as it is being superseded by components developed within SMS++, such as BundleSolver and LagrangianDualSolver.
  • The CQKnPClass Project: C++ implementations of a few different approaches for Continuous (Convex) Quadratic Knapsack Problems.
  • The VerySimple01Problem class, a simple C++ code solving the simplest problem in 0-1 variables and “efficiently” enumerating its solutions in objective function value order.
  • PGDoubling: A Matlab package to work with so-called “permuted graph representations” of subspaces, implementing a doubling algorithm to solve continuous-time algebraic Riccati equations.
  • nearest-omega-stable: code to compute the nearest (Hurwitz or Schur) stable matrix using the Manopt Matlab toolbox for optimization on manifolds.