首页 > 数据库 > 数据库开发技术 > pulp解决混合整数规划问题


#投资组合问题
import pulp
InvestLP = pulp.LpProblem("投资组合问题", sense=pulp.LpMaximize) # 定义问题,求最大值 最小值Minmize
x1 = pulp.LpVariable('A', cat='Binary') # 定义 x1,A 项目
x2 = pulp.LpVariable('B', cat='Binary') # 定义 x2,B 项目
x3 = pulp.LpVariable('C', cat='Binary') # 定义 x3,C 项目
x4 = pulp.LpVariable('D', cat='Binary') # 定义 x4,D 项目
x5 = pulp.LpVariable('E', cat='Binary') # 定义 x5,E 项目
x6 = pulp.LpVariable('F', cat='Binary') # 定义 x6,F 项目
x7 = pulp.LpVariable('G', cat='Binary') # 定义 x7,G 项目
InvestLP += (1*x1 + 3*x2 + 2*x3 + 3*x4 + 1*x5+1.5*x6+2.8*x7) # 设置目标函数 f(x)
InvestLP += (6*x1 + 7*x2 + 5*x3 + 8*x4 + 4*x5+7*x6+4*x7 <= 30) # 不等式约束
InvestLP += (5*x1 + 1*x2 + 3*x3 + 3*x4 + 3*x5+4*x6+2*x7 <= 15) # 不等式约束
InvestLP += (3*x1 + 2*x2 + 3*x3 + 1*x4 + 3*x5+3*x6+2*x7 <= 10) # 不等式约束
InvestLP.solve()
print(InvestLP.name) # 输出求解状态
print("求解状态:", pulp.LpStatus[InvestLP.status]) # 输出求解状态
for v in InvestLP.variables():
print(v.name, "=", v.varValue) # 输出每个变量的最优值
print("最大收益 =", pulp.value(InvestLP.objective)) # 输出最优解的目标函数值
原文作者:Python学习杂记;如有侵权,请联系管理员删除。