首页 > 解决方案 > 在 MILP 的调度问题中,我应该将时间作为参数还是变量考虑在内?

问题描述

我正在尝试制定一个问题,该问题将为我的任务完成提供最佳时间表。为了对信息保密,我将我的任务称为需要撰写的论文。这是我的问题的前提。

这个问题的目标是尽量减少与我的员工一起撰写所有这些论文所需的总时间。我们受到以下限制:

我的方法:

自从我正确地完成 LP 以来已经有一段时间了,所以我生疏了。我已经定义了以下变量,但不确定这些变量是否好。我不知道是否将时间 $t$ 作为这些变量的参数或作为它自己的变量,这就是我主要在努力解决的问题。

$D_j$:完成论文 $j$ 的时间长度。

$S_{j,w}$:作者 $w$ 开始写论文 $j$ 的时间点。

$X_{j,w}$:表示作者 $w$ 是否正在撰写论文 $j$ 的二进制变量。

$M_{m,w}$:移动者 $m$ 是否为作者 $w$ 移动论文

我提出的约束如下:

我正在努力思考如何将时间线作为变量或某个集合或其他因素考虑在内。

编辑:我花了更多时间发现这是这类问题的常见困难(耶!)。要采取的两条路线是将时间视为离散变量或连续变量。虽然精度会很好,但我在设施中拥有的数据是每分钟可用的,所以我认为将时间视为间隔为一分钟的离散变量是合理的。

我希望能够得到一个输出,为我提供一个最佳的论文写作时间表,并让输出告诉我哪些作者在什么时间完成了哪些论文。如果需要任何澄清,我将在评论中尽可能活跃。

注意:我还在 OR.SE 链接上发布了这个问题: https ://or.stackexchange.com/questions/2734/how-to-formulate-scheduling-matrix-problem-with-mixed-integer-linear-programming

我还在 Math.SE 链接上发布了这个:https ://math.stackexchange.com/questions/3384542/should-i-factor-in-time-as-a-parameter-or-a-variable-in-a -调度问题机智

标签: linear-programminginteger-programmingmixed-integer-programming

解决方案


推荐阅读