Home > mpt > solvers > mpt_mpmiqp.m

mpt_mpmiqp

PURPOSE ^

MPT_MPMIQP Multi-Parametric Mixed-Integer QP solver

SYNOPSIS ^

function sol = mpt_mpmiqp(Matrices, Options)

DESCRIPTION ^

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

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:
Generated on Thu 30-Mar-2006 10:26:47 by m2html © 2003