Hacker News new | ask | show | jobs
by northernskys30 909 days ago
There is better open source availability than 20 years ago, I think, let say JUMP in Julia.

But I would say the culprit as to why mathematical optimization is not hyped and not as open sourced is the fact that to the layman, mathematical optimization is less impressive than say Midjourney or ChatGpt. The solution of a bus route optimization might be impressive to a public transport planner, but it requires domain knowledge.

Also, problems that are solved with mathematical optimization are often big organization problems. Sure you can model, as in this blog post, access to opiod treatment center, but to see the "product", you would have to implement the solution of the LP, aka building the treatment centers, which is unlikely to happen unless you work for the government. With generative ML, you can see something coming out of your code that is not only x1= 1, x2=3, etc.

2 comments

For someone who might not be familiar, JuMP is not a solver. It is a algebraic modeling language in the same vein as AMPL or Pyomo. You will still need a solver (and JuMP provides a lot of out of the box connections) like Gurobi, CPLEX or open-source ones like HiGHs.
For my public transit planning course, I tried to use gurobi to optimize the schedule of a given fictional city involving a single inner city loop with 8 branches or so. The problem ended up being an MILP with tens or hundreds of thousands of variables, and gurobi couldn’t give me optimal solutions after days of trying - only approximations, with poor bounds.

I know my approach may have been naive, but so was the problem. I think in real life people tend to use some sort of stochastic search to get good solutions, perhaps genetic algorithms or simulated annealing. Which won’t give u provably optimal solutions, but you’ll more quickly get good solutions.

Gurobi is my go to method for optimization, but I often don’t get solutions.

There's an interesting tool called LocalSolver that uses local search methods by default for everything but if it detects a "decidable" class of problem it can also use fancier algorithms capable of returning a global optima, likely running both in parallel.

Sadly I haven't had a chance to try it.