首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PuLP中成本优化矩阵约束的构造

PuLP中成本优化矩阵约束的构造
EN

Stack Overflow用户
提问于 2020-09-14 06:18:14
回答 1查看 194关注 0票数 0

我试图在PuLP中为一个成本优化问题制定这个基于复杂矩阵的约束:我有一个vars[(i,j)] for i in TruckTypes for j in Days作为我的决策变量,它只能取非负整数值。我正在尝试实现对active天数的限制。

现在,由于Days被表示为列,任何具有全部零值的列都是inactive日,其他所有列都是active日。有6列代表星期一到星期六。例如,在下面的矩阵中:

代码语言:javascript
复制
  1 0 0 1 3 0
  0 0 0 1 1 0
  2 0 0 1 0 0
  0 0 0 1 0 0

列2、3和6是inactive,列1、4和5是active。现在,如何为这个决策变量制定一个约束,比如Number of active Days == 3

任何帮助都将不胜感激。谢谢!!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-14 07:52:50

想了一会儿..。我想我已经破解了这个。

  1. 为活动天数创建一个虚拟的一维二进制决策变量.0- NonActive 1-Active.

ActiveDays = LpVariable.dicts('activedays',Days,0,1,LpBinary)

  1. 创建一个虚拟的非常大的常量。

M=200000

  1. 添加第一个约束.

prob += LpSum(mj for J in Days) ==3

  1. 添加第二个约束

+= LpSum(varsi for I in TruckTypes) <= M*mj

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63879001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档