【问题标题】:Multiple Planning Variables in OptaPlannerOptaPlanner 中的多个计划变量
【发布时间】:2014-10-27 07:11:06
【问题描述】:

我已经使用 optaPlanner 解决了一个问题,使用增量 java,其中一个计划变量和一个计划实体, 但是现在在我们的项目中,需要许多规划变量,比如我们必须找到最好的 Room(容量、isAC 等)、Car(totalSeatsLeft、isAC 等) ) 而且我们不知道有多少资源,因为每天我们都需要根据用户要求添加更多资源,例如会议室设施等,所以请给我一些想法,以便我们可以为 Opta Planner 制作域。 谢谢。

【问题讨论】:

  • 为什么不知道需要多少资源?试试training zip 的lab201。它将教您如何扭转您的想法并选择正确的类/领域作为规划实体/变量。
  • 我知道所有这些,但让我向您澄清我们的问题。例如,我们必须计划一个活动,而对于活动,需要人力资源(取决于技能)、房间(取决于停车设施、空调等)。拼车设施取决于(汽车和位置)等。有很多资源我们要计划,而且可能是资源需求的变化。现在我们使用增量 java 解决两个规划变量 Car 和 Rooms 的问题。那么,现在我的问题是,如果我们在一个规划实体中制作许多规划变量,会有什么问题吗?谢谢

标签: optaplanner drools-planner


【解决方案1】:

实体中的每个计划变量都需要是字段。目前 OptaPlanner 不支持将数组(或列表)作为计划变量。目前还不清楚我们是否愿意这样做(因为它会引入其他问题)。

为什么这样的东西不起作用?

@PlanningEntity class Event {
    long eventId;
    long eventName;
    @PlanningVariable Car car;
    @PlanningVariable Room room;
}

【讨论】:

  • 请仔细阅读我的评论。正如我之前所说,我解决了 2 个计划变量并且它有效,我只想知道一个计划实体是否有 10 个或更多计划变量,它是否有效?我按照您的建议解决了 2 个计划变量的问题
  • 我知道它对使用增量 java 的 2 个规划变量工作得很好,但我们不知道将来需要多少资源。假设 1 年后我们需要 10 个资源。所以我只想知道,它会不会对许多计划变量造成问题?
  • 我知道有 5 个计划变量及更多的案例。一切都好。唯一的问题是构造启发式:他们需要按照手册中所述的“高级配置”来避免对所有变量进行笛卡尔积(如果它变得太大)。
  • @Geoffry De Smet,是否可以将房间数组作为计划变量? stackoverflow.com/questions/48257903/…
  • 今天,没有。但我确实有一个计划变量的计划,它是未来版本中的一个列表,主要是针对 VRP 的。有一个深入分析的 jira。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多