Skip to content

Add support for solving MIQCQP problems - #20

Open
WilsonGV wants to merge 4 commits into
MATPOWER:masterfrom
WilsonGV:MIQCQP_solver
Open

Add support for solving MIQCQP problems#20
WilsonGV wants to merge 4 commits into
MATPOWER:masterfrom
WilsonGV:MIQCQP_solver

Conversation

@WilsonGV

Copy link
Copy Markdown
Member

Since MP-Opt-Model 5.0, functionality for handling quadratic constraints has been available, enabling Quadratically-Constrained Quadratic Programs (QCQP) to be solved. However, binary and integer variables were not supported in that context.

This PR contributes an initial implementation for handling Mixed-Integer QCQP (MIQCQP) problems. The main functions added are:

  1. miqcqps_master(): the main wrapper function for solving MIQCQP problems based on various solvers. It handles options for relaxing and fixing integer variables.
  2. miqcqps_gurobi: the interface for solving MIQCQP based on Gurobi solver.
  3. t_miqcqps_master(), t_om_solve_miqcqps(), and t_mm_solve_miqcqps test the functions over four cases: convex and nonconvex MIQP, and convex and nonconvex MIQCQP

The base classes opt_model() and solve() were modified to enable the handling of MIQCQP problem types via opt_model.solve() and mp.opt_model.solve(), respectively.

The current implementation supports both convex and nonconvex MIQCQPs via Gurobi. Interfaces for CPLEX and MOSEK (for convex MIQCQPs) are planned as follow-up work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant