The MOSEK C API manual.
Version 6.0 (Revision 135).
Up :
'Documentation Help'
Next :
Contact information
Contents
Index
The MOSEK C API manual.
Version 6.0 (Revision 135).
Contact information
License agreement
1. Changes and new features in MOSEK
1.1. Compilers used to build MOSEK
1.2. General changes
1.3. Optimizers
1.3.1. Interior point optimizer
1.3.2. The simplex optimizers
1.3.3. Mixed-integer optimizer
1.4. API changes
1.5. License system
1.6. Other changes
1.7. Interfaces
1.8. Platform changes
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. Linear optimization example: lo1
5.2.1.1. Solving the problem
5.2.1.2. Source code for lo1
5.2.2. Row-wise input
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
5.9. The license system
5.9.1. Waiting for a free license
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. Linear network flow problems
6.5.1. A linear network flow problem example
6.5.1.1. Source code
6.5.1.2. Example code comments
6.6. Embedded network flow problems
6.6.1. Example: Exploit embedded network flow structure in the simplex optimizer
6.7. Solving linear systems involving the basis matrix
6.7.1. Identifying the basis
6.7.2. An example
6.7.3. Solving arbitrary linear systems
6.8. The progress call-back
6.8.1. Source code example
6.9. Customizing the warning and error reporting
6.10. Unicode strings
6.10.1. A source code example
6.10.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. Quadratic and quadratically constrained optimization
7.2.1. A general recommendation
7.2.2. Reformulating as a separable quadratic problem
7.3. Conic optimization
7.3.1. Duality for conic optimization
7.3.2. Infeasibility
7.3.3. Examples
7.3.3.1. Quadratic objective and constraints
7.3.3.2. Minimizing a sum of norms
7.3.3.3. Modelling polynomial terms using conic optimization
7.3.3.4. Optimization with rational polynomials
7.3.3.5. Convex increasing power functions
7.3.3.6. Decreasing power functions
7.3.3.7. Minimizing general polynomials
7.3.3.8. Further reading
7.3.4. Potential pitfalls in conic optimization
7.3.4.1. Non-attainment in the primal problem
7.3.4.2. Non-attainment in the dual problem
7.4. Nonlinear convex optimization
7.4.1. Duality
7.5. Recommendations
7.5.1. Avoid near infeasible models
7.6. Examples continued
7.6.1. The absolute value
7.6.2. The Markowitz portfolio model
7.6.2.1. Minimizing variance for a given return
7.6.2.2. Conic quadratic reformulation
7.6.2.3. Transaction costs with market impact term
7.6.2.4. Further reading
8. The optimizers for continuous problems
8.1. How an optimizer works
8.1.1. Presolve
8.1.1.1. Eliminator
8.1.1.2. Linear dependency checker
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. Interior-point termination criterion
8.2.2.2. Basis identification
8.2.2.3. The interior-point log
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. The convexity requirement
8.5.1.2. The differentiabilty requirement
8.5.1.3. 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
8.7. Understanding solution quality
8.7.1. The solution summary
8.7.1.1. The optimal case
8.7.1.2. The primal infeasible case
8.7.2. Retrieving solution quality information with the API
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
9.6. Understanding solution quality
9.6.1. Solutionsummary
9.6.2. Retrieving solution quality information with the API
10. The analyzers
10.1. The problem analyzer
10.1.1. General characteristics
10.1.2. Objective
10.1.3. Linear constraints
10.1.4. Constraint and variable bounds
10.1.5. Quadratic constraints
10.1.6. Conic constraints
10.2. Analyzing infeasible problems
10.2.1. Example: Primal infeasibility
10.2.2. Locating the cause of primal infeasibility
10.2.3. Locating the cause of dual infeasibility
10.2.3.1. A cautious note
10.2.4. The infeasibility report
10.2.4.1. Example: Primal infeasibility
10.2.4.2. Example: Dual infeasibility
10.2.5. Theory concerning infeasible problems
10.2.6. The certificate of primal infeasibility
10.2.7. The certificate 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. Modeling 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. Usage guidelines
14.1. Verifying the results
14.1.1. Verifying primal feasibility
14.1.2. Verifying optimality
14.2. Turn on logging
14.3. Turn on data checking
14.4. Debugging an optimization task
14.5. Error handling
14.6. Fatal error handling
14.7. Checking for memory leaks and overwrites
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. Analyzing the problem and associated data
15.2.2. Reading and writing data files
15.2.3. Solutions
15.2.4. Call-backs (put/get)
15.2.5. Memory allocation and deallocation
15.2.6. Changing problem specification
15.2.7. Delete problem elements (variables,constraints,cones)
15.2.8. Add problem elements (variables,constraints,cones)
15.2.9. Problem inspection
15.2.10. Conic constraints
15.2.11. Bounds
15.2.12. Task initialization and deletion
15.2.13. Error handling
15.2.14. Output stream functions
15.2.15. Objective function
15.2.16. Optimizer statistics
15.2.17. Parameters (set/get)
15.2.18. Naming
15.2.19. Preallocating space for problem data
15.2.20. Integer variables
15.2.21. Quadratic terms
15.2.22. Diagnosing infeasibility
15.2.23. Optimization
15.2.24. Network optimization
15.2.25. Sensitivity analysis
15.2.26. Testing data validity
15.2.27. Solving with the basis
15.2.28. Initialization of environment
15.2.29. 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. Analysis parameters.
16.1.23. Solution input/output parameters.
16.1.24. Infeasibility report parameters.
16.1.25. License manager parameters.
16.1.26. Data check parameters.
16.1.27. Debugging 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. Function opcode
18.3. Function operand type
18.4. Basis identification
18.5. Bound keys
18.6. Specifies the branching direction.
18.7. Progress call-back codes
18.8. Types of convexity checks.
18.9. Compression types
18.10. Cone types
18.11. CPU type
18.12. Data format types
18.13. Double information items
18.14. Feasibility repair types
18.15. License feature
18.16. Integer information items.
18.17. Information item types
18.18. Input/output modes
18.19. Language selection constants
18.20. Long integer information items.
18.21. Mark
18.22. Continuous mixed-integer solution type
18.23. Integer restrictions
18.24. Mixed-integer node selection types
18.25. MPS file format type
18.26. Message keys
18.27. Network detection method
18.28. Objective sense types
18.29. On/off
18.30. Optimizer types
18.31. Ordering strategies
18.32. Parameter type
18.33. Presolve method.
18.34. Problem data items
18.35. Problem types
18.36. Problem status keys
18.37. Interpretation of quadratic terms in MPS files
18.38. Response code type
18.39. Scaling type
18.40. Scaling type
18.41. Sensitivity types
18.42. Degeneracy strategies
18.43. Exploit duplicate columns.
18.44. Hot-start type employed by the simplex optimizer
18.45. Problem reformulation.
18.46. Simplex selection strategy
18.47. Solution items
18.48. Solution status keys
18.49. Solution types
18.50. Solve primal or dual form
18.51. Status keys
18.52. Starting point types
18.53. Stream types
18.54. Integer values
18.55. Variable types
18.56. XML writer output mode
A. Troubleshooting
B. Problem analyzer examples
B.1. air04
B.2. arki001
B.3. Problem with both linear and quadratic constraints
B.4. Problem with both linear and conic constraints
C. The MPS file format
C.1. The MPS file format
C.1.1. An example
C.1.2.
NAME
C.1.3.
OBJSENSE
(optional)
C.1.4.
OBJNAME
(optional)
C.1.5.
ROWS
C.1.6.
COLUMNS
C.1.7.
RHS
(optional)
C.1.8.
RANGES
(optional)
C.1.9.
QSECTION
(optional)
C.1.10.
BOUNDS
(optional)
C.1.11.
CSECTION
(optional)
C.1.12.
ENDATA
C.2. Integer variables
C.3. General limitations
C.4. Interpretation of the MPS format
C.5. The free MPS format
D. The LP file format
D.1. A warning
D.2. The LP file format
D.2.1. The sections
D.2.1.1. The objective
D.2.1.2. The constraints
D.2.1.3. Bounds
D.2.1.4. Variable types
D.2.1.5. Terminating section
D.2.1.6. An example
D.2.2. LP format peculiarities
D.2.2.1. Comments
D.2.2.2. Names
D.2.2.3. Variable bounds
D.2.2.4. MOSEK specific extensions to the LP format
D.2.3. The strict LP format
D.2.4. Formatting of an LP file
D.2.4.1. Speeding up file reading
D.2.4.2. Unnamed constraints
E. The OPF format
E.1. Intended use
E.2. The file format
E.2.1. Sections
E.2.2. Numbers
E.2.3. Names
E.3. Parameters section
E.4. Writing OPF files from MOSEK
E.5. Examples
E.5.1. Linear example
lo1.opf
E.5.2. Quadratic example
qo1.opf
E.5.3. Conic quadratic example
cqo1.opf
E.5.4. Mixed integer example
milo1.opf
F. The XML (OSiL) format
G. The ORD file format
G.1. An example
H. The solution file format
H.1. The basic and interior solution files
H.2. The integer solution file
Bibliography
Index
The MOSEK C API manual.
Version 6.0 (Revision 135).
Up :
'Documentation Help'
Next :
Contact information
Contents
Index
Wed Feb 29 16:08:55 2012