![]() |
lpopt
Purpose
MEX Interface for LPOPT
For solving linear programming problems (LP)
Syntax
[Inform, Iter, iState, Ax, cLamda, Obj, x] = lpopt( ...
A, bl, bu, c, Warm, x, iState, ...
SpecsFile, PrintFile, SummFile, PriLev, optPar );
Description
lpopt solves the following linear programming problem (LP):
minimize c'x subject to:
x ( x )
bl <= ( Ax ) <= bu
where
A is an m x n dense matrix (linear constraints).
c is an n x 1 dense vector of linear objective coefficients.
bl, bu have dimension n+m
If isempty(c) (or all(c==0), then a feasible point problem is solved (FP).
Otherwise a standard linear programming problem is solved (LP).
If running TOMLAB
bl, bu and other input are generated in
lpoptTL.m from Prob input.
lpopt is called using mexRun('lpopt',Prob), or
using the GUI, the menu program tomMenu, or the
driver routine tomRun.
Input Parameters
At least the first 3 parameters must be given.
A Constraint matrix, m x n (DENSE).
bl Lower bounds on (x,Ax), m+n x 1 vector (DENSE).
bu Upper bounds on (x,Ax), m+n x 1 vector (DENSE).
c Linear objective function cost coeffs, n x 1 (DENSE).
If length(c) < n, setting c(1:n)=0;
Warm If Warm > 0, then warm start, otherwise cold Start. Default 0.
If warm start, then x and iState must be set properly.
Normally the values from last call to lpopt are used.
x Initial estimate of solution vector x. (DENSE) If length(x) < n,
the rest of the elements in x are set to 0.
iState Working set (if Warm start) (n+m) x 1 (DENSE).
If length(iState) < n+m, setting iState(1:n+m)=0;
iState(i)=0: Corresponding constraint not in the initial QP working set.
iState(i)=1: Inequality constraint at its lower bound in QP working set.
iState(i)=2: Inequality constraint at its upper bound in QP working set.
iState(i)=3: Equality constraint in the initial QP working set,bl(i)==bu(i).
SpecsFile Name of the OPTIONS File, see QPOPT Guide, ch.6.
Fortran unit 20 is used to read the OPTIONS File in the interface.
PrintFile Name of the Print file. If optPar(3) > 0, lpopt opens that unit,
otherwise lpopt opens Fortran unit 9.
Name includes the path, maximal number of characters = 500.
SummFile Name of the Summary file. If optPar(4) > 0, lpopt opens that unit,
otherwise lpopt opens Fortran unit 8.
Name includes the path, maximal number of characters = 500
PriLev Print level in the lpopt MEX-interface.
= 0 Silent
= 1 Summary information
= 2 More detailed information
if isempty(PriLev), set as 0.
optPar Vector with optimization parameters overriding defaults and the
optionally specified SPECS file.
If length(optPar) < 62, lpopt sets the rest of the values to
missing value (-999).
Description of the optPar vector
Use missing value (-999 or less), when no change of parameter
setting is
wanted. No call is then done to internal routines lpprmi,
lpprmr and lpprm.
The default value will then be used by LPOPT, unless the value is
altered
in the SPECS file.
# SPECS keyword text Lower Default Upper Comment
Printing
1. PRINT LEVEL 0 10 {0,1,5,10,20,30}
3. PRINT FILE 0 0 Fortran Unit #
SET BY INTERFACE IF PrintFile is given
4. SUMMARY FILE 0 0 Fortran Unit #
SET BY INTERFACE IF SummFile is given
10. OPTIMALITY TOLERANCE >0 1.1E-8 sqrt(eps)
11. FEASIBILITY TOLERANCE >0 1.1E-8 sqrt(eps)
21. CRASH TOLERANCE >0 0.01 <1
27. RANK TOLERANCE >0 1.1E-14 100*eps
30. ITERATION LIMIT >0 max(50,5(n+m))
33. MIN SUM YES (or NO) 0 0 1 1=min infeas
IF 1 (MIN SUM YES), minimize the infeasibilities before return
36. FEASIBILITY PHASE ITERATIONS >0 max(50,5(n+m))
45. INFINITE STEP SIZE >0 1E20
47. HESSIAN ROWS 0 n n 0 if FP or LP
IMPLICITLY GIVEN BY THE DIMENSIONS OF H IN THE CALL FROM MATLAB
48. MAX DEGREES OF FREEDOM 0 n n
ONLY USED IF HESSIAN ROWS == N
51. CHECK FREQUENCY >0 50
52. EXPAND FREQUENCY >0 5
Output Parameters
Inform Result of LPOPT run.
0 = Optimal solution found
Iter Number of iterations.
iState Status of working set, se input description of iState.
Ax A*x.
cLamda Lagrangian multipliers (dual solution vector) (m x 1 vector).
Obj Objective function value at optimum.
x Solution vector with decision variable values (n x 1 vector).
See Also
, lpoptTL
| lpoptTL | ![]() |