Difference between revisions of "Package glpk/GLPK.MIPSolve"

From ApCoCoAWiki
(Created page with "{{Version|2|GLPK.MIPSolve}} <command> <title>GLPK.MIPSolve</title> <short_description>Solving linear programmes.</short_description> <syntax> GLPK.MIPSolve(Objective_f:POLY, E...")
 
(description)
 
(One intermediate revision by the same user not shown)
Line 2: Line 2:
 
<command>
 
<command>
 
<title>GLPK.MIPSolve</title>
 
<title>GLPK.MIPSolve</title>
<short_description>Solving linear programmes.</short_description>
+
<short_description>Solves mixed integer problems.</short_description>
 
<syntax>
 
<syntax>
 
GLPK.MIPSolve(Objective_f:POLY, EQ_Poly:LIST, LE_Poly:LIST, GE_Poly:LIST, Bounds:LIST, IntNum:LIST, Binaries:LIST, MinMax:STRING)
 
GLPK.MIPSolve(Objective_f:POLY, EQ_Poly:LIST, LE_Poly:LIST, GE_Poly:LIST, Bounds:LIST, IntNum:LIST, Binaries:LIST, MinMax:STRING)
 
</syntax>
 
</syntax>
 
<description>
 
<description>
<em>Please note:</em> The function(s) explained on this page is/are using the <em>ApCoCoAServer</em>. You will have to start the ApCoCoAServer in order to use it/them.
+
This function is similar to <tt>GLPK.LPSolve</tt>, but is also able to solve mixed integer problems.
 
 
 
<itemize>
 
<itemize>
 
<item>@param <em>Objective_f</em>: A linear polynomial which is equivalent to the linear objective function.</item>
 
<item>@param <em>Objective_f</em>: A linear polynomial which is equivalent to the linear objective function.</item>
Line 55: Line 54:
 
<key>solve lp</key>
 
<key>solve lp</key>
 
<key>GLPK.MIPSolve</key>
 
<key>GLPK.MIPSolve</key>
<wiki-category>ApCoCoA-1:Package_glpk</wiki-category>
+
<wiki-category>Package_glpk</wiki-category>
 
</command>
 
</command>

Latest revision as of 15:24, 1 November 2020

This article is about a function from ApCoCoA-2. If you are looking for the ApCoCoA-1 version of it, see GLPK.MIPSolve.

GLPK.MIPSolve

Solves mixed integer problems.

Syntax

GLPK.MIPSolve(Objective_f:POLY, EQ_Poly:LIST, LE_Poly:LIST, GE_Poly:LIST, Bounds:LIST, IntNum:LIST, Binaries:LIST, MinMax:STRING)

Description

This function is similar to GLPK.LPSolve, but is also able to solve mixed integer problems.

  • @param Objective_f: A linear polynomial which is equivalent to the linear objective function.

  • @param EQ_Poly: List of linear polynomials, which are equivalent to the equality-part in the list of conditions.

  • @param LE_Poly: List of linear polynomials, which are equivalent to the lower or equal-part in the list of conditions.

  • @param GE_Poly: List of linear polynomials, which are equivalent to the greater or equal-part in the list of conditions.

  • @param Bounds: List of lists with two elements. Each List contains the lower and upper bounds for each variable. You can choose between INT or RAT for the type of each bound, if you type in a (empty) string, then it means minus infinity (first place) or plus infinity (second place).

  • @param IntNum: List of variables, which should be integer. Note: For each variable in this list, the borders get rounded (lower bound: up and upper bound: down). In the case that the lower rounded bound becomes greater then the upper rounded bound, glpk returns: Solution Status: INTEGER UNDEFINED - Value of objective function: 0.

  • @param Binaries: List of variables, which should be binaries (0 or 1).

  • @param MinMax: Minimization ("Min") or maximization ("Max"), that's the question.

  • @return List of linear polynomials, the zeros of the polynomials are the points where the optimal value of the objective function is achieved

Example

-- We want to maximize the Function y = - 1/2x, 
-- with the two conditions y ≤ 6 - 3/4x and y ≥ 1 - x and the bounds 0 ≤ x ≤ 6 and 1/3 ≤ y ≤ 4.

-- We prename the input of GLPK.MIPSolve-function.
Use S ::= QQ[x,y];
OF := (1/2)*x + y;
LE := [(3/4)*x + y - 6];
GE := [x + y - 1];
Bounds:=[[0,6], [1/3,4]];
IntNum:=[x,y];
GLPK.MIPSolve(OF, [], LE, GE, Bounds, IntNum, [], "Max");
-- [2, 4]

EQ := [x,y]
GLPK.MIPSolve(OF, EQ, LE, GE, Bounds, IntNum, [], "Max");
-- []


See also

Package glpk/GLPK.LPSolve

Package glpk/GLPK.MIPMin

Package glpk/GLPK.MIPMax