mobook / MO-book

Hands-On Optimization with Python
MIT License
153 stars 40 forks source link

Pooling and Blending notebook #46

Closed krzysztofpostek closed 1 year ago

krzysztofpostek commented 2 years ago

Hi, in the textbook I have changed the solver in this code snippet to IPOPT. I also added in the textbook a code file named ch5_milkpooling_nonlinear_badstart,py to overleaf with the following ending to the script:

solver = pyo.SolverFactory('ipopt') solver.options["bound_frac"] = 0.4 solver.solve(m)

This one makes IPOPT converge to another point p = 0.45 and the objective function value equal to 101392.15, which is about 1.4% worse than the best solution. Would be great if it could be also updated over here! Many thanks.

Krzysztof

jckantor commented 1 year ago

I think we can close this one. I've added couenne to show the advantages of a global optimizer on this problem, which provides a didactic opportunity to explain the issue of using a local solver like ipopt to find a global maxima.