【问题标题】:How to formulate matrix constraint for cost Optmization in PuLP如何在纸浆中为成本优化制定矩阵约束
【发布时间】:2020-09-14 06:18:14
【问题描述】:

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

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

  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。

我们将不胜感激。谢谢!!

【问题讨论】:

    标签: python optimization linear-programming pulp integer-programming


    【解决方案1】:

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

    1. 为活动天数创建一个虚拟的一维二元决策变量。 0- 非活动 1- 活动。

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

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

    M=200000

    1. 添加第一个约束。

    prob += LpSum(m[j] for j in Days) ==3

    1. 添加第二个约束

      for j in Days:
      
           prob += LpSum(vars[i][j] for i in TruckTypes) <= M*m[j]
      

    【讨论】:

      猜你喜欢
      • 2021-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-17
      • 2021-08-01
      相关资源
      最近更新 更多