0

我正在研究用线性规划解决时间调度问题。我正在阅读本书的第 2.5 段(第 32-35 页),我正在尝试使用 Java 和 javailp-lp_solve 来解决它。

长话短说,我有一个二进制变量 v(s,c,h),如果主题 s 在课堂 c 的时间段 h 中教授,则其值为 1,否则为 0。

我有一个关于我无法完全理解的约束类型的问题。例如,每位讲师每小时最多教授一门课程(时间段)

在此处输入图像描述

在哪里

在此处输入图像描述

有两位老师教授以下科目:

在此处输入图像描述

我想问:我如何开发这个双重求和,有 3 个元素?

如果我理解得很好,我必须实现这样的东西

在此处输入图像描述

但是h呢?它的作用是什么,因为在总结中没有参考它?有一个包含 3 个元素的变量,我应该如何实现它?我在这里完全迷失了,我什至无法创建代码。我很感激你能向我解释这里发生了什么。先感谢您。

4

1 回答 1

0

在上面的等式upside down A中是foreach或的数学符号forall。换句话说,这必须是真的foreach h。要对此进行编码,您需要一个顶级的h值循环。因此,您将h在每个循环中获得一个值,然后在其中您需要创建两个循环:首先是 for s(检索主题子集),然后是 for c[这与您的理解非常一致]。

假设如果 h={1,2} ,那么案例将有四个约束:

  1. h=1 欧姆=ohm1
  2. h=1 欧姆=欧姆2
  3. h=2 欧姆=ohm1
  4. h=2 欧姆=ohm2
于 2017-02-24T15:01:14.030 回答