【问题标题】:How to formulate discrete-time resource scheduling into problem?如何将离散时间的资源调度问题化为问题?
【发布时间】:2020-02-06 20:31:11
【问题描述】:

我是线性规划的新手,正在尝试围绕我要解决的问题开发 ILP 模型。

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

我很难弄清楚如何表达一个约束,这样当一个作业被分配给一台机器时,它占用的单元在时间变量中是连续的。有没有一个如何建模这个约束的例子?如果有帮助,我正在使用 PuLP。

谢谢!

【问题讨论】:

    标签: linear-programming operations-research


    【解决方案1】:

    你想实现约束:

    x(t-1) = 0 and x(t) = 1 ==> x(t)+...+x(t+n-1) = n
    

    一种方法是:

    x(t)+...+x(t+n-1) >= n*(x(t)-x(t-1))
    

    注意事项:

    1. 您需要对每个t 重复此约束。

    2. 稍微好一点的版本是:

      x(t+1)+...+x(t+n-1) >= (n-1)*(x(t)-x(t-1))
      
    3. 此约束还有一个分解版本可能有助于提高性能(取决于求解器:一些求解器可以自动执行此分解)。

    4. 在计划期的开始和结束时,事情可能会变得有趣。例如。机器开始于t=-1

    更新:

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

     x(j,t-1) = 0 and x(j,t) = 1
    

    对于给定的工作 j。这可以用类似的方式处理:

     start(j,t) >= x(j,t)-x(j,t-1)
     sum(t, start(j,t)) <= 1
     0 <= start(j,t) <= 1
    

    【讨论】:

    • 谢谢!是什么让 #2 稍微好一点的版本成为改进?
    • x(t-1) 的系数略小。我这边有点吹毛求疵。
    猜你喜欢
    • 2017-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-24
    • 2019-01-13
    • 1970-01-01
    相关资源
    最近更新 更多