• 关于Ubuntu环境下配置GLPK


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

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

    一、安装

    网上有两种方法

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

    方法二:

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

     

    二、配置中可能出现的问题

    配置中可能出现:glpsol: error while loading shared libraries: libglpk.so.40: cannot open shared object file: No such file or directory 这种错误

    解决方法:

    • 在终上打开 gedit   /etc/ld.so.conf
    • 加入/usr/local/lib一行
    • 执行/sbin/ldconfig这生效

    三、测试

    • 在测试文件目录下输入:
     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;

    • 运行以下命令,这里glpsolEx.mod是上一步编辑的文件,将结果输出到glpsolEx.sol文件中
    glpsol -m glpsolEx.mod -o 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

    http://blog.csdn.net/suibianshen2012/article/details/45788489?locationNum=13&fps=1

    如果您觉得解决了您的问题的话,希望能点一下右下角的推荐,谢谢!

  • 相关阅读:
    Spring,SpringMVC,MyBatis,Hibernate,Servlet的生命周期,jsp有哪些内置对象,Tomcat,Cookie和Session的作用以及区别,oracle,MYSQL等面试题总结
    webpack配置react--ts项目
    防抖(debounce)和节流(throttle)
    js~eventLoop 事件循环
    在Vue 项目中使用echarts
    JS
    ImmuableJS 简单入门用法
    Redux-小案例-加一操作
    Oberver.js
    react-jsx语法
  • 原文地址:https://www.cnblogs.com/clliff/p/7994136.html
Copyright © 2020-2023  润新知