Pulp之四:其它应用样例(1)-一般的整数规划问题 (设置目标约束函数)
解如下整数线性规划
maximize z = cx = 3x1 + 4x2 + 5x3
subject to :
x1 2 3 >= 0
x1 + 2x2 < 20
x2 + 3x3 <= 40
import pulp as pulp
def solve_ilp(objective , constraints) :
print(objective)
print(constraints)
prob = pulp.LpProblem('LP1' , pulp.LpMaximize)
prob += objective
for cons in constraints :
prob += cons
print(prob)
status = prob.solve()
if status != 1 :
return None
else :
return [v.varValue.real for v in prob.variables()]
V_NUM = 3
#变量,直接设置下限,约束条件中的不等式只支持>=或<=,不支持<和>
#如果是解线性规划只需要在生成变量时cat = pulp.LpContinuous
variables = [pulp.LpVariable('X%d'%i , lowBound = 0 , cat = pulp.LpInteger) for i in range(0 , V_NUM)]
#目标函数
c = [3 , 4 , 5]
objective = sum([c[i]*variables[i] for i in range(0 , V_NUM)])
#约束条件
constraints = []
a1 = [1 , 2 , 0]
constraints.append(sum([a1[i]*variables[i] for i in range(0 , V_NUM)]) <= 20)
a2 = [0 , 1 , 3]
constraints.append(sum([a2[i]*variables[i] for i in range(0 , V_NUM)]) <= 40)
print(constraints)
res = solve_ilp(objective , constraints)
print(res)
运行结果:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)