The MOSEK C API manual.
Version 5.0 (Revision 138).
Up :
'Documentation Help'
Next :
Contact information
Contents
Index
The MOSEK C API manual.
Version 5.0 (Revision 138).
Contact information
License agreement
1. Changes and new features in MOSEK
1.1. File formats
1.2. Optimizers
1.3. API changes
1.4. License system
1.5. Other changes
1.6. Interfaces
1.7. Supported platforms
2. About this manual
3. Getting support and help
3.1. MOSEK documentation
3.2. Additional reading
4. Testing installation and compiling examples
4.1. Setting up MOSEK
4.1.1. Windows: Checking the MOSEK installation
4.1.2. Linux: Checking the MOSEK installation
4.1.3. MacOSX: Checking the MOSEK installation
4.2. Compiling and linking
4.2.1. Compiling under Microsoft Windows
4.2.1.1. Compiling examples using NMake
4.2.1.2. Compiling from command line
4.2.1.3. Adding MOSEK to a Visual Studio Project
4.2.2. UNIX versions
4.2.2.1. Compiling examples using GMake
4.2.2.2. Example: Linking with GNU C under Linux
4.2.2.3. Example: Linking with Sun C on Solaris
5. Basic API tutorial
5.1. The basics
5.1.1. The environment and the task
5.1.2. A simple working example
5.1.2.1. Writing a problem to a file
5.1.2.2. Inputting and outputting problem data
5.1.2.3. Setting parameters
5.1.3. Compiling and running examples
5.2. Linear optimization
5.2.1. Example: lo1
5.2.1.1. Source code
5.2.1.2. Example code comments
5.2.2. An alternative implementation: lo2
5.3. Quadratic optimization
5.3.1. Example: Quadratic objective
5.3.1.1. Source code
5.3.1.2. Example code comments
5.3.2. Example: Quadratic constraints
5.3.2.1. Source code
5.4. Conic optimization
5.4.1. Example: cqo1
5.4.1.1. Source code
5.4.1.2. Source code comments
5.5. Integer optimization
5.5.1. Example: milo1
5.5.1.1. Source code
5.5.1.2. Code comments
5.5.2. Specifying an initial solution
5.5.3. Example: Specifying an integer solution
5.6. Problem modification and reoptimization
5.6.1. A production planning problem
5.6.2. Changing the
A
matrix
5.6.3. Appending variables
5.6.4. Reoptimization
5.6.5. Appending constraints
5.7. Efficiency considerations
5.8. Conventions employed in the API
5.8.1. Naming conventions for arguments
5.8.1.1. Bounds
5.8.2. Vector formats
5.8.3. Matrix formats
5.8.3.1. Unordered triplets
5.8.3.2. Row or column ordered sparse matrix
5.8.3.3. Row ordered sparse matrix
6. Advanced API tutorial
6.1. Separable convex optimization
6.1.1. The problem
6.1.2. A numerical example
6.1.3.
scopt
an optimizer for separable convex optimization
6.1.3.1. Design principles of
scopt
6.1.3.2. Example
6.1.3.3. Source code
6.1.3.4. Adding more nonlinear expression types
6.2. Exponential optimization
6.2.1. The problem
6.2.2. Source code
6.2.3. Solving from the command line.
6.2.3.1. The input format
6.2.4. Choosing primal or dual form
6.2.5. An example
6.2.6. Solving from your C code
6.2.7. A warning about exponential optimization problems
6.3. General convex optimization
6.3.1. A warning
6.3.2. The problem
6.3.3. Assumptions about a nonlinear optimization problem
6.3.4. Specifying general convex terms
6.4. Dual geometric optimization
6.4.1. The problem
6.4.2. A numerical example
6.4.3.
dgopt
: A program for dual geometric optimization
6.4.3.1. Data input
6.4.3.2. Solving the numerical example
6.4.4. The source code:
dgopt
6.5. Solving linear systems involving the basis matrix
6.5.1. Identifying the basis
6.5.2. An example
6.5.3. Solving arbitrary linear systems
6.6. The progress call-back
6.6.1. Source code example
6.7. Customizing the warning and error reporting
6.8. Unicode strings
6.8.1. A source code example
6.8.2. Limitations
7. Modelling
7.1. Linear optimization
7.1.1. Duality for linear optimization
7.1.1.1. A primal-dual feasible solution
7.1.1.2. An optimal solution
7.1.1.3. Primal infeasible problems
7.1.1.4. Dual infeasible problems
7.1.2. Primal and dual infeasible case
7.2. Linear network flow problems
7.3. Quadratic and quadratically constrained optimization
7.3.1. A general recommendation
7.3.2. Reformulating as a separable quadratic problem
7.4. Conic optimization
7.4.1. Duality for conic optimization
7.4.2. The dual of the dual
7.4.3. Infeasibility
7.4.4. Examples
7.4.4.1. Quadratic objective and constraints
7.4.4.2. Minimizing a sum of norms
7.4.4.3. Modelling polynomial terms using conic optimization
7.4.4.4. Further reading
7.4.5. Potential pitfalls in conic optimization
7.4.5.1. Non-attainment in the primal problem
7.4.5.2. Non-attainment in the dual problem
7.5. Nonlinear convex optimization
7.5.1. Duality
7.6. Recommendations
7.6.1. Avoid nearly infeasible models
7.7. Examples continued
7.7.1. The absolute value
7.7.2. The Markowitz portfolio model
7.7.2.1. Minimizing variance for a given return
7.7.2.2. Conic quadratic reformulation.
7.7.2.3. Transaction costs with market impact term
7.7.2.4. Further reading
8. The optimizers for continuous problems
8.1. How an optimizer works
8.1.1. Presolve
8.1.2. Dualizer
8.1.3. Scaling
8.1.4. Using multiple CPU's
8.2. Linear optimization
8.2.1. Optimizer selection
8.2.2. The interior-point optimizer
8.2.2.1. Basis identification
8.2.2.2. Interior-point termination criterion
8.2.3. The simplex based optimizer
8.2.3.1. Simplex termination criterion
8.2.3.2. Starting from an existing solution
8.2.3.3. Numerical difficulties in the simplex optimizers
8.2.4. The interior-point or the simplex optimizer?
8.2.5. The primal or the dual simplex variant?
8.3. Linear network optimization
8.3.1. Network flow problems
8.3.2. Embedded network problems
8.4. Conic optimization
8.4.1. The interior-point optimizer
8.4.1.1. Interior-point termination criteria
8.5. Nonlinear convex optimization
8.5.1. The interior-point optimizer
8.5.1.1. Interior-point termination criteria
8.6. Solving problems in parallel
8.6.1. Thread safety
8.6.2. The parallelized interior-point optimizer
8.6.3. The concurrent optimizer
8.6.3.1. Concurrent optimization through the API
8.6.4. A more flexible concurrent optimizer
9. The optimizer for mixed integer problems
9.1. Some notation
9.2. An important fact about integer optimization problems
9.3. How the integer optimizer works
9.3.1. Presolve
9.3.2. Heuristic
9.3.3. The optimization phase
9.4. Termination criterion
9.5. How to speed up the solution process
10. Analyzing infeasible problems
10.1. Example: Primal infeasibility
10.1.1. Locating the cause of primal infeasibility
10.1.2. Locating the cause of dual infeasibility
10.1.2.1. A cautious note
10.1.3. The infeasibility report
10.1.3.1. Example: Primal infeasibility
10.1.3.2. Example: Dual infeasibility
10.2. Theory concerning infeasible problems
10.2.1. Certificat of primal infeasibility
10.2.2. Certificat of dual infeasibility
11. Primal feasibility repair
11.1. The main idea
11.2. Feasibility repair in MOSEK
11.2.1. Usage of negative weights
11.2.2. Automatical naming
11.2.3. Feasibility repair using the API
11.2.4. An example
12. Sensitivity analysis
12.1. Introduction
12.2. Restrictions
12.3. References
12.4. Sensitivity analysis for linear problems
12.4.1. The optimal objective value function
12.4.1.1. Equality constraints
12.4.2. The basis type sensitivity analysis
12.4.3. The optimal partition type sensitivity analysis
12.4.4. Example: Sensitivity analysis
12.5. Sensitivity analysis from the MOSEK API
12.6. Sensitivity analysis with the command line tool
12.6.1. Sensitivity analysis specification file
12.6.2. Example: Sensitivity analysis from command line
12.6.3. Controlling log output
13. Case Studies
13.1. The traveling salesman problem
13.1.1. The TSP formulations
13.1.2. Comparing formulations
13.1.3. Example code
13.2. Geometric (posynomial) optimization
13.2.1. The problem
13.2.2. Applications
13.2.3. Modelling tricks
13.2.3.1. Equalities
13.2.4. Problematic formulations
13.2.4.1. Finite unattainable solution
13.2.4.2. Infinite solution
13.2.5. An example
13.2.6. Solving from the command line tool
13.2.6.1. An example
13.2.7. Further information
14. API developer guidelines
14.1. Turn on logging
14.2. Turn on data checking
14.3. Debugging an optimization task
14.4. Error handling
14.5. Fatal error handling
14.6. Checking for memory leaks and overwrites
14.7. Check the problem status and solution status
14.8. Important API limitations
14.8.1. Thread safety
14.8.2. Unicoded strings
14.8.2.1. Limitations
14.9. Bug reporting
15. API reference
15.1. Type definitions
15.2. API Functionality
15.2.1. Reading and writing data files.
15.2.2. Solutions.
15.2.3. Ccall-backs (put/get).
15.2.4. Memory allocation and deallocation.
15.2.5. Changing problem specification.
15.2.6. Delete problem elements (variables,constraints,cones).
15.2.7. Add problem elements (variables,constraints,cones).
15.2.8. Inspect problem specification.
15.2.9. Conic constraints.
15.2.10. Bounds.
15.2.11. Task initialization and deletion.
15.2.12. Error handling.
15.2.13. Output stream functions.
15.2.14. Objective function.
15.2.15. Inspect statistics from the optimizer.
15.2.16. Parameters (set/get).
15.2.17. Naming.
15.2.18. Preallocating space for problem data.
15.2.19. Integer variables.
15.2.20. Quadratic terms.
15.2.21. Diagnosing infeasibility.
15.2.22. Optimization.
15.2.23. Sensitivity analysis.
15.2.24. Testing data validity.
15.2.25. Solving with the basis.
15.2.26. Initialization of environment.
15.2.27. Change
A
.
15.3. Mosek Env
15.3.1. Methods
15.4. Mosek Task
15.4.1. Methods
16. Parameter reference
16.1. Parameter groups
16.1.1. Logging parameters.
16.1.2. Basis identification parameters.
16.1.3. The Interior-point method parameters.
16.1.4. Simplex optimizer parameters.
16.1.5. Primal simplex optimizer parameters.
16.1.6. Dual simplex optimizer parameters.
16.1.7. Network simplex optimizer parameters.
16.1.8. Nonlinear convex method parameters.
16.1.9. The conic interior-point method parameters.
16.1.10. The mixed integer optimization parameters.
16.1.11. Presolve parameters.
16.1.12. Termination criterion parameters.
16.1.13. Progress call-back parameters.
16.1.14. Non-convex solver parameters.
16.1.15. Feasibility repair parameters.
16.1.16. Optimization system parameters.
16.1.17. Output information parameters.
16.1.18. Extra information about the optimization problem.
16.1.19. Overall solver parameters.
16.1.20. Behavior of the optimization task.
16.1.21. Data input/output parameters.
16.1.22. Solution input/output parameters.
16.1.23. Infeasibility report parameters.
16.1.24. License manager parameters.
16.1.25. Data check parameters.
16.2. Double parameters
16.3. Integer parameters
16.4. String parameter types
17. Response codes
18. Constants
18.1. Constraint or variable access modes
18.2. Basis identification
18.3. Bound keys
18.4. Specifies the branching direction.
18.5. Progress call-back codes
18.6. Types of convexity checks.
18.7. Compression types
18.8. Cone types
18.9. CPU type
18.10. Data format types
18.11. Double information items
18.12. Double values
18.13. Feasibility repair types
18.14. Integer information items.
18.15. Information item types
18.16. Input/output modes
18.17. Bound keys
18.18. Continuous mixed integer solution type
18.19. Integer restrictions
18.20. Mixed integer node selection types
18.21. MPS file format type
18.22. Message keys
18.23. Network detection method
18.24. Objective sense types
18.25. On/off
18.26. Optimizer types
18.27. Ordering strategies
18.28. Parameter type
18.29. Presolve method.
18.30. Problem data items
18.31. Problem types
18.32. Problem status keys
18.33. Interpretation of quadratic terms in MPS files
18.34. Response code type
18.35. Scaling type
18.36. Sensitivity types
18.37. Degeneracy strategies
18.38. Hot-start type employed by the simplex optimizer
18.39. Simplex selection strategy
18.40. Solution items
18.41. Solution status keys
18.42. Solution types
18.43. Solve primal or dual form
18.44. Status keys
18.45. Starting point types
18.46. Stream types
18.47. Integer values
18.48. Variable types
18.49. XML writer output mode
A. Troubleshooting
B. The MPS file format
B.1. The MPS file format
B.1.1. An example
B.1.2.
NAME
B.1.3.
OBJSENSE
(optional)
B.1.4.
OBJNAME
(optional)
B.1.5.
ROWS
B.1.6.
COLUMNS
B.1.7.
RHS
(optional)
B.1.8.
RANGES
(optional)
B.1.9.
QSECTION
(optional)
B.1.10.
BOUNDS
(optional)
B.1.11.
CSECTION
(optional)
B.1.12.
ENDATA
B.2. Integer variables
B.3. General limitations
B.4. Interpretation of the MPS format
B.5. The free MPS format
C. The LP file format
C.1. A warning
C.2. The LP file format
C.2.1. The sections
C.2.1.1. The objective
C.2.1.2. The constraints
C.2.1.3. Bounds
C.2.1.4. Variable types
C.2.1.5. Terminating section
C.2.1.6. An example
C.2.2. LP format peculiarities
C.2.2.1. Comments
C.2.2.2. Names
C.2.2.3. Variable bounds
C.2.2.4. MOSEK specific extensions to the LP format
C.2.3. The strict LP format
C.2.4. Formatting of an LP file
C.2.4.1. Speeding up file reading
C.2.4.2. Unnamed constraints
D. The OPF format
D.1. Intended use
D.2. The file format
D.2.1. Sections
D.2.2. Numbers
D.2.3. Names
D.3. Parameters section
D.4. Writing OPF files from MOSEK
D.5. Examples
D.5.1. Linear example
lo1.opf
D.5.2. Quadratic example
qo1.opf
D.5.3. Conic quadratic example
cqo1.opf
D.5.4. Mixed integer example
milo1.opf
E. The XML (OSiL) format
F. The ORD file format
F.1. An example
G. The solution file format
G.1. The basic and interior solution files
G.2. The integer solution file
Bibliography
Index
The MOSEK C API manual.
Version 5.0 (Revision 138).
Up :
'Documentation Help'
Next :
Contact information
Contents
Index
Mon Sep 14 15:49:59 2009