MPT_MPMIQP Multi-Parametric Mixed-Integer QP solver sol = mpt_mpmiqp(Matrices, yalmipOptions) --------------------------------------------------------------------------- DESCRIPTION --------------------------------------------------------------------------- Solves a multi-parametric Mixed Integer QP (mpMIQP): min 1/2 U H U + x' F U + x' Y x + Cf U + Cx x + Cc U s.t. G U <= W + E x bndA*x <= bndb where certain elements of the U vector are known to be either continuous, or binary, or they belong to a finite alphabet. As a solution we get n regions sol.Pn(i) = {x : H x <= K} with the optimizer U = sol.Fi{i}*x + sol.Gi{i} and the corresponding cost function expression V(x) = x'*sol.Ai{i}*x + sol.Bi{i}*x + sol.Ci{i} --------------------------------------------------------------------------- INPUT --------------------------------------------------------------------------- Matrices - a struct with all the parameters which are needed. See description above for explanation. Matrices.H, Matrices.G, Matrices.W, Matrices.E, Matrices.Y, Matrices.Cf, Matrices.Cx, Matrices.Cc Matrices.bndA=bndA - Limits on exploration space, i.e. bndA*x<=bndb Matrices.bndb=bndb Matrices.vartype - Vector of {'C', 'B', 'A'} indicies. vartype(i)='C' denotes a continuous variable vartype(i)='B' denotes a binary variable (0/1) vartype(i)='A' denotes a variable which can take values from a finite alphabet Matrices.alphabet - Matrices.alphabet{i} must contain a list of values which the variable U(i) can take. For instance: Matrices.vartype(2) = 'A'; Matrices.alphabet{2} = [-0.5 0 3.4]; and U(2) can only take values -0.5, 0, or 3.4 Options - additional options to pass to YALMIP: .verbose - level of verbosity .mp.algorithm - which enumeration algorithm to use (Options.mp_algorithm=3 uses different enumeration) .mp.presolve - perform pre-solving if this option is true (default) --------------------------------------------------------------------------- OUTPUT --------------------------------------------------------------------------- "sol" structure with following fields: Pn,Fi,Gi - for region Pn(i).H*x <= Pn(i).K computed input is U=Fi{i}*x+Gi{i} Pfinal - Defines the feasible state space partition (i.e. union of all regions) as Phard.H*x<=Phard.K Bi, Ci - cost associate to every region see also MPT_MPLP. SOLVEMP