Congratulations on the amazing conference of 2020 at first…Let me tell you my problem briefly
I have a non convex NLP (OPF or Optimal Power Flow) and I want to try different solvers on this problem. I decided first to try installing solvers like COUENNE but I got lost actually so until I figure my way out of this loop of installing solvers (why are not all solvers like IPOPT, Gosh) I decided to try something like Juniper since it is very easy to use with Julia
only these two lines and I can use Juniper
optimizer = Juniper.Optimizer
nl_solver = optimizer_with_attributes(Ipopt.Optimizer, “print_level”=>0)
So I used Juniper, but I get LOCALLY_SOLVED as a termination status, and as far as I understand this solver finds the global optimal point so how can this be explained ?
On a related note. The only Julia-native global solver that I am aware of is Alpine.jl. It is not yet working with JuMP v0.19+, but you can track that progress here, https://github.com/lanl-ansi/Alpine.jl/pull/149.
In the case of AC-OPF, last I recall, Alpine did not support trig functions yet, so it would not help you in that case.
If you switch to the rectangular voltage form of the AC-OPF you could then use Alpine or Gurobi v9 to get global optimality proofs for small to medium sized problems.
What I understand so far is that if I i want to get global optimum with a rather larger system, I have to make convex relaxation and use different solvers?? @ccoffrin
That is the most scaleable approach that I am aware of.
To my knowledge there is no off-the-self solver that can provide AC-OPF optimality proof for cases with more than 50 buses. I have seen research prototypes go up to 300 buses, larger than this the only approach I know that runs in a reasonable amount of time is to solve the non-convex problem locally with Ipopt and then get a lower bound with a convex relaxation of the problem. Depending on the specifics of the OPF problem you are considering, this can show gaps of less than 1% with just a few minutes of computation.
In most of the applications I have looked at, Ipopt’s local solutions are near optimal.
I will give the rectangular formulation with Gurobi a try.
My main objective is not the ACOPF but rather a multi objective OPF for example combining minimum losses and minimum generation cost, to make use of the great combination of formulations that PowerModels provide , will it be easy to edit code and have something with multiobjectives like that using PowerModels or currently not easy or possible ? @ccoffrin
I don’t recall where JuMP is with respect to multi-objective support. @odow, can you comment? At the very least you could explore multi-objective pareto front by solving a series of single objective problems. Modification of one of these JuMP models should be fairly strait forward.
SO I will concentrate on this path for me now… I will work with power models to investigate performance of the different formulations, then use to powermodelsannex to enable me to edit and put my own formulations
Thank you so much
@odow
great work…I will definitely need this after I start being confident on my opf with different formulations… I plan to use powermodelsannex to change something like the objective function…etc