本文只是简介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 ;
结果文件为:
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
输出文件的详细格式参见: