KKT Optimality Conditions for that Solution
Jeannine Norris upravil tuto stránku před 1 týdnem


This page explains how to recover and interpret solution information from GLPK. The information presented here should be relevant to both modelers using GLPSOL and programmers using the callable library APIs. You must have made an attempt to solve your problem before the material on this page will apply - but the GLPK solution process need not have produced a usable answer. Answer or no, monitor.yss.su there are many reasons for seeking extra information about the solution process and/or solution. GLPK will normally print information during the solution process - the details of which can be found on the terminal output page. The troubleshooting page offers some suggestions and fixes. Numerical instability warnings, in particular, may result from poor scaling. If you encounter a really puzzling problem and think it a bug in GLPK, please report the issue so it can be addressed. If programming with GLPK, bear in mind that the solver, paradoxically perhaps, need not have found a solution to return success - it only needs to have completed its assigned tasks satisfactorily.


Assuming that GLPK provides an optimal solution, there are several methods for recovering the solution information using both standard calls and tailored methods. Some techniques may also accept and MedicGLP.com process non-optimal feasible solutions. The MathProg language allows for tight control over the output of solution information. The language now supports suffixes for constraints and variables (but not parameters) - a feature that can be useful when seeking, for example, dual values. The section on close-to-zero rounding shows how to use a MathProg conditional to output true zeros instead of very small numbers. GLPSOL offers the options --output and --write for obtaining solution information in human readable and machine parsible formats, respectively. These two output formats are presented on the interoperability page. Terminal output can also be duplicated to a text file with the GLPSOL command-line option --log file.log. Conversely, the special filename /dev/stdout can be used to write "files" to the terminal instead of to a regular file. And both tactics can be used together.


IBM MPS/360 linear programming package, but altered a little, because GLPK uses auxiliary rather than slack/surplus variables. The various GLPK API calls that can be used to recover information are listed below. Elsewhere, the relevant function names are given to aid cross-referencing back to the GLPK API manual, where comprehensive technical descriptions can usually be found. A problem solved to optimality with the simplex solver can be further subject to a sensitivity analysis. This feature is not available to solutions generated by the interior-point solver or for mixed-integer problems. API call produces a sensitivity report in human readable format. The description here is intentionally brief - details can be found in the official GLPK API manual, including an explanation of break points and objective coefficient sensitivities. The two following tables can be used to read a sensitivity analysis report. Abbreviations: RHS means right-hand side. And the analysis of a column is the analysis of its corresponding structural variable.


Formally, there is no innate difference between rows and columns when performing a sensitivity analysis. For pure linear programs (excluding mixed-integer programs), the Karush-Kuhn-Tucker optimality conditions are necessary and sufficient for the given solution to be a global optimum (assuming that some regularity conditions are also met). These KKT conditions are listed here as they apply to GLPK. Numerical solvers also use these KKT conditions to estimate the accuracy of their floating point calculations upon completion. GLPK can provide on request, a human readable report giving, among other things, the KKT conditions for any solution obtained using either the simplex or interior-point solvers. KKT optimality conditions for the current basic solution. This call fills a C struct LPXKKT instance, from which specific information can be recovered. Its use is documented in the official GLPK API manual and the call itself is also described in this wikibook. KKT optimality conditions for that solution.