一、适用环境
1、操作系统:Windows
2、依赖软件:GLPK
二、操作步骤
简介:GLPK安装方法有两种,即在本地安装GLPK包或直接在Anaconda环境中安装,两种方法任取一种即可,若同时安装,会优先调用Anaconda环境安装的GLPK。
1、方法一:
(1)首先,下载GLPK:
①进入官网下载
②或直接采用下载直链:
https://sf-west-interserver-1.dl.sourceforge.net/project/winglpk/winglpk/GLPK-4.65/winglpk-4.65.zip
(2)下载好后解压GLPK压缩包到指定路径,将解压路径添加到环境变量path(glpk解压根路径下的w64路径)
D:\glpk-4.65\w64
(3)打开cmd命令行窗口,执行命令测试
glpsol
至此,本地安装GLPK完毕。
2、方法二(Anaconda环境执行命令安装):
(1)执行以下命令
conda install -c conda-forge glpk
(2)测试:
三、Python代码测试GLPK求解器
1、首先,安装pyomo及pao库
pip install pyomo pao -i https://pypi.tuna.tsinghua.edu.cn/simple
2、若遇到报错No module named 'pyutilib',执行命令:
pip install pyutilib -i https://pypi.tuna.tsinghua.edu.cn/simple
3、使用示例代码
import pyomo.environ as pe
import paoM = pe.ConcreteModel()
M.x = pe.Var(bounds=(2,6))
M.y = pe.Var()
M.L = pao.pyomo.SubModel(fixed=[M.x, M.y])
M.L.z = pe.Var(bounds=(0,None))
M.o = pe.Objective(expr=M.x + 3*M.L.z, sense=pe.minimize)
M.c = pe.Constraint(expr=M.x + M.y == 10)
M.L.o = pe.Objective(expr=M.L.z, sense=pe.maximize)
M.L.c1 = pe.Constraint(expr=M.x + M.L.z <= 8)
M.L.c2 = pe.Constraint(expr=M.x + 4*M.L.z >= 8)
M.L.c3 = pe.Constraint(expr=M.x + 2*M.L.z <= 13)
opt = pao.Solver("pao.pyomo.FA")
results = opt.solve(M, tee=True)
#results = opt.solve(M)
print(M.x.value, M.y.value, M.L.z.value)
4、若未正确配置GLPK,求解过程将出现以下报错:
5、正确安装配置GLPK,将得到以下运行结果,显示调用GLPK求解器
6、若同时采用两种方法安装了GLPK,此时Anaconda环境和本地电脑环境变量中均有GLPK,分别为5.0和4.65版本,会优先调用Anaconda环境的GLPK: