Python中pulp的基础操作

1. 安装Pulp

conda install --channel https://conda.anaconda.org/conda-forge pulp 

注:如果直接使用 conda install pulp 或是 pip install pulp 总是出现如下错误,使用以上操作可以成功安装。(借鉴自:https://blog.csdn.net/winter_python/article/details/108085295)
在这里插入图片描述

2. 基础操作

2.1 样例

import pulp
MyProbLP = pulp.LpProblem("LPProbDemo1", sense=pulp.LpMaximize)
x1 = pulp.LpVariable('x1', lowBound=0, upBound=7, cat='Continuous') 
x2 = pulp.LpVariable('x2', lowBound=0, upBound=7, cat='Continuous') 
x3 = pulp.LpVariable('x3', lowBound=0, upBound=7, cat='Continuous') 
MyProbLP += 2*x1 + 3*x2 - 5*x3      # 设置目标函数
MyProbLP += (2*x1 - 5*x2 + x3 >= 10)  # 不等式约束
MyProbLP += (x1 + 3*x2 + x3 <= 12)  # 不等式约束
MyProbLP += (x1 + x2 + x3 == 7)  # 等式约束
MyProbLP.solve()
print("Status:", pulp.LpStatus[MyProbLP.status]) # 输出求解状态
for v in MyProbLP.variables():
    print(v.name, "=", v.varValue)  # 输出每个变量的最优值
print("F(x) = ", pulp.value(MyProbLP.objective))  #输出最优解的目标函数值
#= 关注 Youcans,分享原创系列 https://blog.csdn.net/youcans =

(样例借鉴自:https://blog.csdn.net/guolindonggld/article/details/89950877)

2.2 设置优化方向

  • 最大化
MyProbLP = pulp.LpProblem("LPProbDemo1", sense=pulp.LpMaximize)
  • 最小化
MyProbLP = pulp.LpProblem("LPProbDemo1", sense=pulp.LpMinimize)

2.3 写入目标函数

MyProbLP += 2*x1 + 3*x2 - 5*x3  # 设置目标函数

2.4 变量设置:01变量

x = LpVariable("x",cat='Binary')

2.5 变量设置:整数变量

x = LpVariable("x",cat='Integer')

2.6 变量设置:连续变量

x = pulp.LpVariable('x', cat='Continuous') 

2.7 变量设置:变量上下限

x = pulp.LpVariable('x', lowBound=0, upBound=7, cat='Continuous') 

2.8 写入不等式约束

MyProbLP += (x1 + 3*x2 + x3 <= 12)  # 不等式约束

2.9 写入等式约束

MyProbLP += (x1 + x2 + x3 == 7)  # 等式约束
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值