【问题标题】:Implementing a planning optimization algorithm on hierarchical problem实现分层问题的规划优化算法
【发布时间】:2020-04-28 20:58:48
【问题描述】:

我正在处理一个规划问题,涉及:

  1. 计划实体的集合,每个实体都包含计划变量 A
  2. 全局规划变量 B​​(包含在规划解决方案中)

由于我是 Optaplanner 和总体规划优化的初学者,我从一个更简单的版本问题开始,专注于优化 A 与 B 建模为规划事实。

现在我有一个程序成功地优化了 A 给定 B。我想实现一个新的求解器优化 A 和 B。事实证明,最好的优化搜索策略是首先选择一个 B 值,然后优化 A 给定B 值。应该重复这个过程,直到找到一个最优值(手头的问题是分层的)

我正在寻找有关如何使用 Optaplanner 实现此功能的建议。我最初以为我会将其实现为两个阶段(优化 B -> 优化 A),但我现在明白 Optaplanner 阶段并不意味着这样做。例如,求解器无法遍历这个有序的两个阶段序列。

相反,我认为我应该实现一个自定义 MoveSelector,它以 B 上的移动开始,然后是 A 移动的无限列表..

你怎么看?我在正确的轨道上吗?

亲切的问候,

【问题讨论】:

    标签: optaplanner


    【解决方案1】:

    A 和 B 是不同的阶段,而不是不同的阶段(在 OptaPlanner 术语中)。

    多阶段规划(参见文档中的简短条目)中,它基本上是 2 个不同的求解器,一个输入另一个。当 A 和 B 发生在不同的时间(考虑战略、战术和运营计划)或由于康威定律(用户的组织结构)时,这很常见。这是最简单的解决方案,而且通常也是迄今为止在业务变更管理期间最实用的解决方案。这是风险最小的。但是,它不是最理想的(至少在理论上)。

    替代方案确实是拥有多个计划实体,这使其成为一个大的计划问题。那是完美的解决方案。这是具有挑战性的。完美可能是善的敌人。 OptaPlanner 的架构支持它,但确实需要自定义移动(今天在 OptaPlanner 7.35 中),因为默认移动选择器不会经常逃避局部最优。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-03
      • 1970-01-01
      • 1970-01-01
      • 2011-01-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多