首页 > 系统服务 > 详细

关于Ubuntu环境下配置GLPK

时间:2017-12-06 18:59:39      阅读:735      评论:0      收藏:0      [点我收藏+]

最近要做卜东波老师线性规划的算法作业,要求用GLPK和Gurobi对结果进行验证

本来想在Windows下安装GLPK的,但是貌似Windows下必须安装VS才能对GLPK进行编译,不想装VS......于是在虚拟机里面的Ubuntu配置GLPK

一、安装

网上有两种方法

方法一:添加源然后更新源并安装,这种方法我试了一下,在添加源后再更新用sudo apt-get update貌似会出错?试了几次之后不行然后用了第二种方法

方法二:

  • 到官网下载http://ftp.gnu.org/gnu/glpk/
  • 选择一个版本进行下载(划重点!这里有很坑的地方!选择尽量稍微之前一点的版本,新版本可能会出错)这里我选的4.60
  • 在Ubuntu里面用火狐下载之后提取到桌面
  • GLPK支持使用GMP来计算大数字以及高精度浮点,默认不适用,但是使用GMP的话效率更高,因此本人在配置时添加了对GMP的支持。进入解压安装文件目录,并配置:./configure –with-gmp
  • 之后再输入命令行:./configure
  • 根据配置变异安装文件:make
  • 然后就可以进行安装了,安装的默认路径是/usr/local/lib,因此需要取得管理员权限:sudo make install
  • 这就安装完了,然后就可以写程序了

二、使用

 gedit glpsolEx.mod然后编辑以下代码

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

/* Object function */
maximize z: x1 + 14*x2 + 6*x3;

/* Constrains */
s.t. con1: x1 + x2 + x3 <= 4;
s.t. con2: x1 <= 2;
s.t. con3: x3 <= 3;
s.t. con4: 3*x2 + x3 <= 6;

end;

 

运行 glpsol -m glpsolEx.mod -o glpsolEx.sol,输出到glpsolEx.sol文件中

然后gedit glpsolEx.sol就可以查看输出的内容了

Problem:    glpsolEx
Rows:       5
Columns:    3
Non-zeros:  10
Status:     OPTIMAL
Objective:  z = 32 (MAXimum)

   No.   Row name   St   Activity     Lower bound   Upper bound    Marginal
------ ------------ -- ------------- ------------- ------------- -------------
     1 z            B             32                             
     2 con1         NU             4                           4             2 
     3 con2         B              0                           2 
     4 con3         B              3                           3 
     5 con4         NU             6                           6             4 

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

Karush-Kuhn-Tucker optimality 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 = 4.44e-16 on row 4
        max.rel.err = 1.11e-16 on row 4
        High quality

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

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

End of output

 

参考:

http://blog.sciencenet.cn/home.php?mod=space&uid=3249403&do=blog&id=1019884

https://www.cnblogs.com/jostree/p/4156204.html

 

关于Ubuntu环境下配置GLPK

原文:http://www.cnblogs.com/clliff/p/7994136.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!