glpk 使用简介

本文只是简介glpk的简单使用~不涉及原理~做一个简单的备忘~~

GLPK 使用简介:

这几天第一次接触glpk,对于输入文件的格式,有一些繁琐,但不得不承认glpk真的很强大。

通过下面的一个简单(无实际意义的)例子,说明在glpk中的一些简单的格式。

简单示例:

var x1; //每一行以分号结尾
var x2;
var x3;
var x4;
var x5;
var e13;
var e14;
var e15;
var r13;
var r14;
var r15;

var y1 binary; //二值变量,0/1,加上关键字binary,类似关键字还有Integer等。
var y2 binary;

minimize z: y1 + y2;  // 目标函数

s.t. con1 : -x1+ x3 + e13 + r13 = 327;//约束条件
s.t. con2 : -x1+ x4 + e14 + r14 = 275; 
s.t. con3 : -x1+ x5 + e15 + r15 = 277;
s.t. con19 : e13 - 5 <= 0 ;
s.t. con20 : -e13 - 5 <= 0 ;
s.t. con21 : e14 - 5 <= 0 ;
s.t. con22 : -e14 - 5 <= 0 ;
s.t. con23 : e15 - 5 <= 0 ;
s.t. con24 : -e15 - 5 <= 0 ;

在命令行输入:glpsol -m temp.mod -o temp.s ol //指定输入文件为temp.mod。结果文件为temp.sol中。


结果文件为:

Problem:    temp
Rows:       10
Columns:    12 (2 integer, 2 binary)
Non-zeros:  20
Status:     INTEGER OPTIMAL
Objective:  z = 0 (MINimum)

   No.   Row name        Activity     Lower bound   Upper bound
------ ------------    ------------- ------------- -------------
     1 z                           0                             
     2 con1                      327           327             = 
     3 con2                      275           275             = 
     4 con3                      277           277             = 
     5 con19                      -5                           5 
     6 con20                       5                           5 
     7 con21                      -5                           5 
     8 con22                       5                           5 
     9 con23                      -5                           5 
    10 con24                       5                           5 

   No. Column name       Activity     Lower bound   Upper bound
------ ------------    ------------- ------------- -------------
     1 x1                       -282                             
     2 x3                         50                             
     3 x4                         -2                             
     4 x5                          0                             
     5 e13                        -5                             
     6 e14                        -5                             
     7 e15                        -5                             
     8 r13                         0                             
     9 r14                         0                             
    10 r15                         0                             
    11 y1           *              0             0             1 
    12 y2           *              0             0             1 

Integer feasibility conditions:

KKT.PE: max.abs.err = 0.00e+00 on row 0
        max.rel.err = 0.00e+00 on row 0
        High quality

KKT.PB: max.abs.err = 0.00e+00 on row 0
        max.rel.err = 0.00e+00 on row 0
        High quality

End of output


输出文件的详细格式参见:

glpk result

你可能感兴趣的:(glpk 使用简介)