首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将离散时间资源调度问题转化为问题?

如何将离散时间资源调度问题转化为问题?
EN

Stack Overflow用户
提问于 2020-02-05 02:05:37
回答 1查看 48关注 0票数 0

我对线性规划很陌生,并试图围绕我想要解决的一个问题开发一个ILP模型。

我的问题类似于一个机器资源调度问题。我有一组二进制变量来表示机器与离散时间网格的配对组合。作业A需要1小时,作业B需要1小时15分钟,因此时间网格应该间隔15分钟。因此,作业A将使用4个时间单位,而作业B将使用5个时间单位。

我很难理解如何表达约束,这样当任务被分配给机器时,它所占用的单元在时间变量中是顺序的。有关于如何建模此约束的示例吗?如果有帮助的话,我正在使用PuLP。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-05 09:00:39

您希望实现约束:

代码语言:javascript
复制
x(t-1) = 0 and x(t) = 1 ==> x(t)+...+x(t+n-1) = n

一种方法是:

代码语言:javascript
复制
x(t)+...+x(t+n-1) >= n*(x(t)-x(t-1))

备注:

对于每个稍微好一些的t.

  • A,您需要重复这个约束的
  1. 是:

x(t+1)+...+x(t+n-1) >= >=也是该约束的一个分类版本,它可能有助于性能(取决于求解者:一些求解者可以这样做),automatically).

  • Things可能在规划周期的开始和结束时变得有趣。在t=-1.

启动的机器

更新:

另一种方法是将作业的“开始”限制为1,即只允许组合。

代码语言:javascript
复制
 x(j,t-1) = 0 and x(j,t) = 1

对于给定的作业,j.这可以用类似的方式处理:

代码语言:javascript
复制
 start(j,t) >= x(j,t)-x(j,t-1)
 sum(t, start(j,t)) <= 1
 0 <= start(j,t) <= 1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60068060

复制
相关文章

相似问题

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