TOMLAB OPTIMIZATION ENVIRONMENT: cutplane

   

cutplane

Purpose

For solving mixed integer linear programming problems (MIP).

Syntax

   Result = cutplane(Prob);

Description

Cutting plane algorithm for Mixed-Integer Programming (MIP) using LP relaxation (Formulated as min-IP)

Note that the TOMLAB routine cpTransf.m can be used to rewrite an LP problem on another form to this standard form.

Problem

Solving MIP on the LP standard form, with additional upper bounds on x:

 
         min    c' * x.  x in R^n, A x = b_U, x >= 0, x <= x_U
          x

  Any of the x could be set as integer valued

Input Parameters

 Fields in Prob:
   c:      The vector c in c'x. 
   A:      The linear constraint matrix 
   b_L:    Lower bounds on linear constraints. NOT USED. Assumed to be == b_U
   b_U:    The upper bounds for the linear constraints
   x_L:    Lower bounds on x. NOT USED. Assumed to be 0.
   x_U:    Upper bounds on x. If empty assumed to be Inf.

   x_0:    Starting point x (If EMPTY, lpSolve solves Phase I LP to find a
           feasible point.
 QP.B:     Active set B_0 at start. 
           1  = Include variable x(i) is in basic set.
           0  = Variable x(i) is set on its lower bound
           -1 = Variable x(i) is set on its upper bound. NOT USED
           If EMPTY, lpSolve finds active set.
 MIP.IntVars: If IntVars is a scalar, then variables 1,...,IntVars are 
           assumed to be integers. 
           If empty, all variables are assumed non-integer (LP problem)
           If length(IntVars) > 1 ==> length(IntVars) == length(c) should hold,
           Then IntVars(i) ==1 ==> x(i) integer. IntVars(i) ==0 ==> x(i) real.
           If length(IntVars) < n, IntVars is assumed to be a set of indices.

 Prob.Solver.Alg     Not used
 Prob.Solver.Method  Rule to select new variables:
           = 0 Minimum Reduced Cost, sort variables increasing. (DEFAULT)
           = 1 Bland's Anti-cycling Rule 
           = 2 Minimum Reduced Cost, Dantzig's rule 
 PriLev    Print level in cutplane
 SolverLP  Name of the solver used for initial LP subproblem. If empty,
           the default solver is used. See GetSolver.m and tomSolve.m
 SolverDLP Name of the solver used for dual LP subproblems. If empty,
           the default solver is used. See GetSolver.m and tomSolve.m

 ----------------------------------------------------------------------

 Fields used in Prob.optParam, in lpSolve and DualSolve
 PriLev    Printing level (in lpSolve and DualSolve):
           =0 No output; >0 Convergence results; 
           >1 Output every iteration  >2 Output each step in the simplex alg
 MaxIter   Maximal number of iterations. max(10*dim(x),100) is DEFAULT.
 wait      Wait flag, pause each iteration if set true
 eps_f     Tolerance used to test convergence on the reduced costs
 eps_Rank  Rank tolerance
 xTol      Tolerance to judge if x-values are close

Output Parameters

 Structure Result. Fields used:
   Iter     Number of iterations
   ExitFlag Exit flag 
            == 0  => OK
            == 1  => Maximal number of iterations reached. No bfs found. 
            == 4  => No feasible point found with Phase1 Simplex
            Otherwise  the same flags as the dual LP solver returns
   ExitTest Text string giving ExitFlag and Inform information
   Inform   If ExitFlag > 0, Inform=ExitFlag.
   x_k      Solution
   v_k      Lagrange parameters. Constraints + lower + upper bounds
   QP.B     B  Optimal set. B(i)==1, include variable x(i) in basic set.
            sum(B==1)==length(b)  holds. See QP.B as input.
   QP.y     Dual parameters y (also part of v_k)
   p_dx     Search steps in x
   alphaV   Step lengths for each search step
   f_k      Function value c'*x
   g_k      Gradient c
   Solver   cutplane
   SolverAlgorithm  Description of method used
   x_0      Starting point x_0
   xState   State variable: Free==0; On lower == 1; On upper == 2; Fixed == 3;

  conSolve   DualSolve