GLPK简要备忘录

*关于安装*
linux上比较容易(才不,更新源找到正确安装包名字什么的花了好久orz)。Windows是非常简单的!win10亲测可行!
下载:http://www.gnu.org/software/glpk/glpk.html
选择版本:glpk-4.57.tar.gz
修改Build_GLPK_with_VC10.bat和Build_GLPK_with_VC10_DLL.bat两个文件中你VS安装的绝对路径。32位的系统选择w32,64位的系统选择w64,然后做修改,写本机VS的绝对路径。
这里写图片描述
打开你的cmd,到D盘(我的在D)glpk-4.57/w64
Build_GLPK_with_VC10.bat
Build_GLPK_with_VC10_DLL.bat
用glpsol –version查看检查是不是成功

**安装完成后***
把写好的.mod文件放在D:\glpk-4.57\w64里
执行glpsol -m test.mod -o test.sol
执行结果在\w64里的test.sol中,记事本打开就可以看到啦

关于例子:

/* Variables */  
var x1 >= 0;  
var x2 >= 0;  
var x3 >= 0;  

/* Object function */  
maximize z: 3*x1 + x2 +2*x3;  

/* Constrains */  
s.t. con1: x1 + x2 + 3*x3 <= 30;  
s.t. con2: 2*x1 +2*x2 + 5*x3 <= 24;  
s.t. con3: 4*x1 + x2 + 2*x3 <= 36;  

end; 
Problem:    test
Rows:       4
Columns:    3
Non-zeros:  12
Status:     OPTIMAL
Objective:  z = 28 (MAXimum)

   No.   Row name   St   Activity     Lower bound   Upper bound    Marginal
------ ------------ -- ------------- ------------- ------------- -------------
     1 z            B             28                             
     2 con1         B             12                          30 
     3 con2         NU            24                          24      0.166667 
     4 con3         NU            36                          36      0.666667 

   No. Column name  St   Activity     Lower bound   Upper bound    Marginal
------ ------------ -- ------------- ------------- ------------- -------------
     1 x1           B              8             0               
     2 x2           B              4             0               
     3 x3           NL             0             0                   -0.166667 

Karush-Kuhn-Tucker optimality conditions:

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

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

KKT.DE: max.abs.err = 0.00e+000 on column 0
        max.rel.err = 0.00e+000 on column 0
        High quality

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

End of output

复杂一点的例子,比如求和式,可以参考:http://blog.csdn.net/yxf/article/details/1595058
更复杂的话,可以查阅MathProg语法相关,就搞定啦!

参考:http://www.cnblogs.com/Iambda/archive/2012/12/12/3933510.html
http://blog.csdn.net/xuqingict/article/details/24366901
http://wenku.baidu.com/link?url=pbqlgeEJLB7Xd6h1HDW04d8tm7CXAHWyGzFeY0jI9Iq5TxU0h2xyU854FYWfJoJaj3pEnUm3obdtKRGt6mLrj1C9CN8Sdpi_rMWodA1Nk_G

Windows 7上安装pulp和glpk步骤: 亲测环境: Windows 6.1.7601 Service Pack 1 Build 7601 x64 Python 2.7.11 PuLP 1.6.8 GLPK 4.34 安装步骤: 1、下载PuLP安装包:前提是,已安装python2.6以及2.6以上版本,在网页(https://pythonhosted.org/PuLP/main/installing_pulp_at_home.html)上点击PuLP zipfile下载pulp包,当然,也可以在我的资源里下载 2、安装PuLP:将zipfile解压缩,并在命令行窗口中,进入解压缩的目录,然后输入命令:setup.py install 3、下载glpk安装包:在网页(https://sourceforge.net/projects/gnuwin32/files/glpk/4.34/)上,下载glpk-4.34-setup.exe(也可以在我的资源里下载),然后双击默认安装 4、按照以上步骤,安装完以后,写一个.py的脚本并运行,脚本内容: from pulp import * pulp.pulpTestAll() 然后,会看到以下类似输出结果: D:\002-Task_150524\117-17data_thesis\004-code\testPulp.py Testing zero subtraction Testing inconsistant lp solution Testing continuous LP solution Testing maximize continuous LP solution Testing unbounded continuous LP solution Testing Long Names Testing repeated Names Testing zero constraint Testing zero objective Testing LpVariable (not LpAffineExpression) objective Testing Long lines in LP Testing LpAffineExpression divide Testing MIP solution Testing MIP solution with floats in objective Testing MIP relaxation Testing feasibility problem (no objective) Testing an infeasible problem Testing an integer infeasible problem Testing column based modelling Testing dual variables and slacks reporting Testing fractional constraints Testing elastic constraints (no change) Testing elastic constraints (freebound) Testing elastic constraints (penalty unchanged) Testing elastic constraints (penalty unbounded) * Solver pulp.solvers.PULP_CBC_CMD passed. Solver pulp.solvers.CPLEX_DLL unavailable Solver pulp.solvers.CPLEX_CMD unavailable Solver pulp.solvers.CPLEX_PY unavailable Solver pulp.solvers.COIN_CMD unavailable Solver pulp.solvers.COINMP_DLL unavailable Testing zero subtraction Testing inconsistant lp solution Testing continuous LP solution Testing maximize continuous LP solution Testing unbounded continuous LP solution Testing Long Names Testing repeated Names Testing zero constraint Testing zero objective Testing LpVariable (not LpAffineExpression) objective Testing LpAffineExpression divide Testing MIP solution Testing MIP solution with floats in objective Testing MIP relaxation Testing feasibility problem (no objective) Testing an infeasible problem Testing an integer infeasible problem Testing column based modelling Testing fractional constraints Testing elastic constraints (no change) Testing elastic constraints (freebound) Testing elastic constraints (penalty unchanged) Testing elastic constraints (penalty unbounded) * Solver pulp.solvers.GLPK_CMD passed. Solver pulp.solvers.XPRESS unavailable Solver pulp.solvers.GUROBI unavailable Solver pulp.solvers.GUROBI_CMD unavailable Solver pulp.solvers.PYGLPK unavailable Solver pulp.solvers.YAPOSIB unavailable 表示已经成功安装pulp和glpk
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值