当前位置: 首页 > 知识库问答 >
问题:

Optaplanner:过度受限的计划,有用的起诉报告

卫昊东
2023-03-14

我有一个过度约束的计划案例。

我的约束设置使用具有多个硬约束的 HardMediumSoftScore、惩罚可为空变量以鼓励计划者分配它们的中等约束以及各种软约束。这在寻找解决方案方面似乎效果很好。

不过,我现在想从规划处拿到起诉书。所有有趣的信息都在硬约束中,硬约束阻止了可空变量的分配,也就是说,剩余1000个可空值的可行解决方案最终的得分类似于< code > 0 hard/-1000 medium/x soft 。

由于在这个可行的解决方案中没有违反任何硬约束,起诉书只列出了可空变量的中等约束,这对我没有帮助。我真正想使用起诉书的是确定哪些硬约束在防止分配给可为空变量方面最“重要”。

如果可空变量的惩罚本身是硬约束(比其他硬约束具有“更硬”的分数),这“有效”,我看到了对较小硬分数的相关起诉,但现在计划者无法创建可行的解决方案。

如何解决这个问题?

共有1个答案

司徒运锋
2023-03-14

a)为每个未分配的实体运行模拟。

将其分配给每个可能的变量,计算分数,从中获取最佳分配,提取理由。现在,您可以按未分配的实体使用它们。

汇总这些理由,您就很清楚哪些硬约束是PITA。

B) 使用@ConstraintWeight启用超硬约束,则必须分配所有实体。然后在解决该问题后获得理由。

A)和B)将提供(稍微)不同的结果。A)更好地解释为什么不能将单个实体分配给用户。B)更好地解释系统中缺少哪些资源,管理层应该投资哪些资源。

 类似资料:
  • 我正在尝试使用MoveSelectionFilter从计划中排除一些计划整体实例。 然而,即使我拒绝所有的移动,根据调试输出,实例仍然在构建启发式阶段进行初始规划。我使用WEAKEST_FIT启发式,两个自定义的MoveListFactory(目前根本不生成任何移动),并且没有默认的MoveListWorks。 如何阻止OptaPlanner规划这些实体?我看了护士名册示例,如果您提前日期但无法重

  • 我正试图用java的Optaplanner实现一个简单的云平衡系统,该系统具有过度约束的规划。 最喜欢的是,我正在尝试使用Optaplanner Java库实现一个简单的云平衡系统,该系统具有过度约束的规划。我将模型映射到我的问题(车辆和资产),进行变量替换cpuPower- 如果我使用这个简单的例子,我会收到一个所有进程都已签名的响应,尽管其中一些不能分配给计算机。对于这个问题,optaplan

  • 各位opatplanner用户, 我的规划问题是:获取遥感卫星星座的有效时间表。 @PlanningEntity: @PlanningVariable: 我的问题数据主要是这样的: Image_Strip: D1 Sat2 22-12-2015 11:02:24.051 D1 Sat1 22-12-2015 11:04:24.122 A2 Sat3 22-12-2015 11:06:24.172

  • Navicat Monitor 可让你设置发送电子邮件报告的计划。每个报告将包含图表的 PDF 文件,通过电子邮件发送。创建或编辑报告时,有一个部分可以配置电子邮件计划。 你可以在“计划”为报告设置计划,然后选择发送报告的频率: 仅一次 - 报告将使用报告数据的时间段之间的数据生成,并且在你选择的结束日期和时间仅发送一次。如果结束日期早于当前日期,它将立即发送。 每天 - 报告将使用前一天的数据生

  • 我用增量java解决了optaPlanner的一个问题,其中有一个规划变量和一个规划实体,但是现在在我们的项目中有很多规划变量的需求,比如我们要找到最好的房间(容量,isAC等),汽车(totalSeatsLeft,isAC等),我们不知道有多少资源,因为我们每天都需要根据用户的需求增加更多的资源,比如会议室设施等,所以给我一些想法,这样我们就可以为optaPlanner做一个域。多谢了。

  • 我想用Optaplanner解决VRP问题(添加一些内容)。在文档中,人们经常说,预先计算位置之间的距离,然后对每个位置使用