MINLP - Mixed-Integer Nonlinear Programming

1,192 views
Skip to first unread message

Y. K.

unread,
May 27, 2023, 2:11:44 PM5/27/23
to Pyomo Forum
Hi All

I have a simple question. As I know, Mixed-Integer Nonlinear Programming (MINLP) is the area of optimization that addresses nonlinear problems with continuous and integer variables.  It means the MINLP is a kind of Nonlinear Programming. 

My question is why we need to use solvers for both the linear and non linear programing when we write code. 

For example,

The question is maximize x + x*y. The constraint is  -x+2yx<=8, 2x - y <=14,  and 2x -y<=10, so on.

The objective is nonlinear due to x*y.. But why do we need to use the following:


opt = SolverFactory ('mindtpy')
opt.solve(model, mip_solver ='gurobi', nlp_solver ='ipopt')


For here, guobi is solver for linear... but ipopt is solver for non linear..

The objective is non linear as well as MINLP is nonlinear type. Why do we need to use for two linear and nonlinear solver???

Always Thanks

YK.





khalid salman

unread,
May 27, 2023, 3:29:32 PM5/27/23
to pyomo...@googlegroups.com
Hello Kim,

According to my understanding, the MindtPy makes use of the Gurobi solver for the MILP and IPOPT solver for the NLP.

MindtPy then merges the results, checks the solution feasibility, and if all constraints are respected, results the optimal solution for the problem. 
The decomposition routine implemented by MindtPy relies on the Outer Approximation (OA) and Extended Cutting Plane (ECP) algorithms.

I hope this answer your question. 

Best regards,
Khalid Salman Khan,
PhD Student, PEA-USP, 
SP, Brazil. 

--
You received this message because you are subscribed to the Google Groups "Pyomo Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pyomo-forum...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pyomo-forum/5a5e5acb-ad61-4b7b-bce8-8d7fd64a33fen%40googlegroups.com.
--
Khalid Salman Khan,
PhD Student,
Laboratory of Advanced Electric Grids (LGrid), 
Department of Energy Engineering and Electrical Automation,
Escola Politécnica, University of São Paulo, SP Brazil.

Y. K.

unread,
May 27, 2023, 4:01:58 PM5/27/23
to pyomo...@googlegroups.com

Dear Mr. Khalid Salman Khan,

Thank you so much for your kind response and concerns.

Q1) Can we use other solvers for MILP and for the NLP instead of  Gurobi and IPOPT?

For example, Can we replace Cplex,CBC,GLPK solver For MILP instead of Gurobi ?

Can we replace SCIP or Baron solvers for Nonlinear Program?

Q2) Do you know any site or documents to compare performance between Linear and Nonlinear PROGRAMS solvers in the pymo Framework (AML)?

Regards
Kim.










berna...@gmail.com

unread,
May 28, 2023, 8:51:16 PM5/28/23
to Pyomo Forum
Hi Kim and Khalid,
Thank you for considering using MindtPy. I'm leading that solver development.
Regarding your questions:
0. MindtPy stands for Mixed-integer nonlinear decomposition toolbox in Pyomo. As such, it implements decomposition techniques to address MINLP problems. These techniques rely on breaking down the problem into subproblems, which can, for example, be addressed more efficiently using other solvers. In particular, the main algorithm implemented in MindtPy is Outer-approximation. The MINLP problem is decomposed on mixed-integer linear and continuous nonlinear programs there. Each one of those needs to be solved with a solver tailored to that problem structure. The solutions of these subproblems are synchronized to provide a solution to the original MINLP problem.
1. With MindtPy, you can use any solver supported by Pyomo for the mixed-integer linear program (CBC, CPLEX, GLPK, Gurobi) and the nonlinear program (IPOPT, BARON, SCIP). For the first case, the issue is mainly a matter of what works best for your problem and for which you have licenses to use, while in the NLP, the difference is a little more significant. IPOPT can only guarantee that you reach the global optimal solution if you have a convex problem, while SCIP and BARON can solve to global optimality, even non-convex problems, at the expense of taking some extra time to prove global optimality in these problems. We have a version of the algorithm called Global Outer Approximation, which can tackle those problems. Also, note that both SCIP and BARON can solve the original MINLP problem.
2. I wrote some years ago a paper comparing the performance of solvers for convex MINLP https://link.springer.com/article/10.1007/s11081-018-9411-8, but it is a little outdated. Hans Mittelmann maintains a benchmark for general (non-convex) MINLP problems here http://plato.asu.edu/ftp/minlp.html. We are completing a paper on MindtPy, which includes a benchmark in there; I'll keep you posted.
Cheers,
David

Reply all
Reply to author
Forward
0 new messages