docplex 解决列表决策变量的单目标优化问题

本文介绍了如何使用Python的docplex库建立和解决线性规划问题。从定义优化模型、创建连续决策变量、设定约束条件到定义目标函数,然后最大化或最小化该函数并求解,最后获取解的数据。示例代码详细展示了整个过程。
摘要由CSDN通过智能技术生成

使用背景

通过 列表创建 决策变量

mdl.continuous_var_list()

1. 定义优化模型

# 导入 docplex 
from docplex.mp.model import Model
# 定义优化模型 
mdl = Model(name='example_constraints')

2. 创建决策变量

直接通过 列表创建 决策变量 x0, x1, x2.

x = mdl.continuous_var_list(3, lb=-1.0, ub=1.0, name='x')

在这里插入图片描述

当然也可以一个一个创建,使用 mdl.continuous_var()

x = [mdl.continuous_var(lb=-1.0, ub=1.0, name='x_{0}'.format(i)) for i in range(3)] 

3. 定义约束条件

约束条件可以通过列表的方式添加进来。

# 定义约束条件 (通过列表定义约束条件)
constraints = [xi >= -0.5 for xi in x] + [xi <= 0.5 for xi in x]

for constraint in constraints:
    mdl.add_constraint(constraint)

4. 定义优化函数

# 定义优化函数 
obj = mdl.sum(x)  

5. 最大化/最小化 目标函数,并求解

# 最大化/最小化 目标函数,并求解  
mdl.maximize(obj) 
solution = mdl.solve()

6. 获取求解数据

# 获取求解数据
print("x = {0}".format([xi.solution_value for xi in x]))
print("obj result: ", obj.solution_value)

7. 代码整合

# 导入 docplex 
from docplex.mp.model import Model
# 定义优化模型 
mdl = Model(name='example_constraints')

# 创建决策变量
x = mdl.continuous_var_list(3, lb=-1.0, ub=1.0, name='x')

# 定义约束条件 (通过列表定义约束条件)
constraints = [xi >= -0.5 for xi in x] + [xi <= 0.5 for xi in x]

for constraint in constraints:
    mdl.add_constraint(constraint)

# 定义优化函数 
obj = mdl.sum(x)  

# 最大化/最小化 目标函数,并求解  
mdl.maximize(obj) 
solution = mdl.solve()

# 获取求解数据
print("x = {0}".format([xi.solution_value for xi in x]))
print("obj result: ", obj.solution_value)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值