9.3. 分数约束级别


有时,分数约束为另一个分数约束,无论后者中断了多少。在这种情况下,这些分数限制在不同的级别。例如,由于物理现实的限制,nurse 无法同时进行两次转换,因此此约束会降低所有 nurse happiness 约束。

大多数用例仅有两个分数级别,即 hard 和 soft。按顺序比较两个分数的级别。首先比较第一个分数级别。如果两个分数不同,则忽略剩余的分数级别。例如,破坏 0 个硬约束和 1000000 软限制的分数比中断 1 硬约束和 0 软限制的分数更高。

如果分数级别或两个以上分数级别,如果没有硬限制,则分数是 可行的

注意

默认情况下,OptaPlanner 为计划值分配所有计划变量。如果没有可行的解决方案,这意味着最佳解决方案是不可行的。要保留某些计划实体没有被分配,请对受限的计划应用。

对于每个约束,您必须选择一个分数级别、分数权重和分数号。例如,-1 soft 的分数级别为,权重为 1,负符号为。当您的业务确实需要不同的分数级别时,请勿使用大约束权重。这个临时解决方案(称为 分数折叠 )无法正常工作:

注意

您的业务可能会告诉您所有硬限制都有相同的权重,因为它们无法被破坏,因此权重无关紧要。这不是正确的。如果特定数据集不存在可行的解决方案,则业务可以使用最小的解决方案来估算其缺少多少个业务资源。例如,在云平衡问题中,最可行的解决方案可以发现需要多少新计算机。

另外,如果您的所有硬约束都有相同的权重,您可能会创建一个分数陷阱。例如,如果计算机在其进程中有 7 个太多 CPU,那么在云平衡问题中,如果计算机在其进程中,必须有 7 倍,就像它只有一个 CPU 太少。

OptaPlanner 也支持三个或更多分数级别。例如,公司可能决定营收员工满意度,反之亦然,而这两个限制则受到物理现实的局限性。

注意

要建模公平或负载平衡,您不需要使用大量分数级别,即使 OptaPlanner 可以处理许多分数级别。

大多数用例都使用具有两个或三个权重的分数,如 HardSoftScoreHardMediumSoftScore。您可以组合所有这些技术,看似无疑:

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat