I tend to generally view
MathNet.Numerics.Optimization as a .NET parallel to Python’s
scipy.optimize, and in particular, both have a strong set of implementations for general non-discrete optimization. These days, there’s some amount of work going on in SciPy to include various algorithms for solving combinatorial optimization problems, and I’m wondering if there would be appetite for something similar in Math.NET Numerics?
This would put the relevant part of Numerics at competition with more specialized libraries such as e.g. QuickGraph or Google’s OR-Tools, so a natural question would be where to draw the line, and what the scope should be. Just to have an (obviously non-exhaustive) list of possible examples (some of which have polynomial-time solutions, some of which probably don’t), would there be appetite for algorithms solving things like
- covering/packing problems (e.g. min set/vertex/edge cover, maximum matching, …),
- maximum flow,
- shortest path,
- travelling salesman,
- linear programming,
- circuit minimization?
And just to give a motivating example that I’ve been interested in myself, to phrase this as a yes/no question: SciPy has
scipy.optimize.linear_sum_assignment; do we want that here?