在Optaplanner中构建模型:基本

时间:2016-04-02 21:02:08

标签: optaplanner

我对Optaplanner着迷,并试图通过构建示例来学习它。我会很感激任何可以帮助我解决这个问题的技巧。

问题域

  • 在表演班级中表演的表演者:一名表演者可以在多个班级演出
  • 表演者表演的场地
  • 表演者执行的时段
  • 表演者在一系列场地中表演的比赛
  • 哪些表演者将提前知道哪个班级
  • 每次演出需要一段固定的时间
  • 对类的大小没有限制:类对所有人开放,但表演者及其请求的类列表在模型运行开始时修复

目标和限制是:

  1. 在比赛中安排表演以花费最少的时间(即尽量充分利用多个场地);
  2. 课程必须在同一场地开始和结束,但任何课程都可以使用任何场地;
  3. 一旦一个班级在一个场地开始,它就会专门使用场地直到它完成;
  4. 在指定时间段内,只有一位表演者可以在指定地点演出;
  5. 表演者不能同时在两个不同的场地;
  6. 每个表演者必须被允许在他们要求的每个班级中表演;
  7. 课堂表演顺序并不重要;
  8. 表演者必须至少拥有" n"表演之间的时间段;
  9. 希望避免场地中的死时间段;
  10. 个人表演恰好是" m"分钟,无论是班级,表演者还是场地;
  11. 如果一个班级有n个表演者且每个表演需要几分钟,一个班级将从指定的开始时间到指定的场地继续,直到n * m分钟后(如果有x个死区时间,则加上x * m); < / LI>
  12. 在一个典型的问题中,可能有4个场地,15个班级和200个表演者,班级规模差异很大(每班1到30或更多表演者)。
  13. 我的第一个想法是将课程安排到场地并首先开始时间段,然后重新排列表演的顺序,如果这样做是必要的,以解决冲突。只有通过改变课堂表演的顺序才能解决冲突,才能将课程分配到场地或开始时间。

    我不清楚的是如何处理表演者/时间段/场地映射的混乱,然后如果仍然存在冲突则恢复到改组课程/场地/开始时间映射。

    问题的第一部分(决定初始课程到场地/开始时间)看起来像是简单的装箱。但是,我不确定这是否是考虑重新排序表演的最佳时机。

    非常感谢任何协助。

    谢谢!

0 个答案:

没有答案