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

Optaplanner员工公平计算

夹谷奇
2023-03-14

如何使用约束流api计算员工的公平性。

https://www.optaplanner.org/blog/2017/02/03/FormulaForMeasuringUnfairness.html

我在网球求解器示例中看到了上述流口水的实现。

https://github.com/kiegroup/optaplanner/blob/581d10fb8140f37b7491d06b2bab8d5ac940d7f6/optaplanner-examples/src/main/resources/org/optaplanner/examples/tennis/solver/tennisConstraints.drl

在下面的链接中说将来会实现高级功能,例如负载平衡/公平。如何使用约束流计算它。可以计算吗?

https://www.optaplanner.org/blog/2020/04/07/ConstraintStreams.html

共有1个答案

燕英逸
2023-03-14

ConstraintStreams将分两个阶段支持公平性。

在第1阶段),网球示例通过自定义ConstraintCollector应用公平性。这里正在研究:https://github.com/kiegroup/optaplanner/pull/710这与scoreDRL中的状态非常相似。

在第2阶段)(很久以后),ConstraintStreams本身将有一个开箱即用的同类最佳API,为您完成所有样板。想想类似于(Foo.class). groupBy(Foo::getBar, count()). loadBalance((bar, count)-

 类似资料:
  • 我已经安装了openshift版本的员工花名册演示。我正在使用UI中的呼叫中心示例。在“点花名册”选项卡中,当我将某些点标记为未分配并单击“求解”按钮时,我看到Optaplanner开始优化,并看到软约束和硬约束的分数。即使在完成优化后,标记为未分配的内容仍然保持为未分配。我可以看到硬约束分数:0。为什么这些位置没有分配给可用的员工?

  • 我正在研究一个用例,它是护士排班示例和VRP问题的组合。单独来看,我理解并可以在一定程度上调整两者,但我不太确定如何合并它们。 为了进一步说明我的用例,我正在尝试安排护士(考虑技能、合同和偏好)前往位于20-40英里半径内的患者之家。 例如,具有“胰岛素”技能的护士需要前往患者处,在特定时间窗口内到达,执行一项任务15分钟,然后前往另一个患者处,执行相同的任务,并继续工作,直到8小时轮班结束。需要

  • 公共静态员工getEmployeeDetails()--它获取员工的详细信息-id、姓名和工资,并返回Employee对象。 public static int getpfpercentry()-它获取PF百分比并返回相同的 在main方法中调用上述两个方法,然后调用Employee类中的calculateNetSalary方法并打印输出,如下所示。 输入ID:101输入姓名:Vivek输入工资:

  • 我尝试了一个sql但不起作用 员工(EID,EName,城市) 工时(EID、CID、工资) 公司(CID、CName、城市) 创建表Employee(eid int主键,ename varchar(6),city varchar(6)) 创建表工时(eid int,cid int主键,salary int) 创建表Company(cid int,cname varchar(6),city var

  • 我在公平约束方面遇到了一些麻烦,我想确保员工得到: 周内的偶数班次。 总计偶数班次。 下面是口水: 它似乎大部分时间都在工作,尤其是在较小的数据集中。然而,当我使用更大的数据集时...这是我的结果: A为76.0小时。得分:5776 B为118.0小时。得分:19700 C为76.0小时。得分:25476 D为83.0小时。得分:32365 E为88.0小时。得分:40109 F为72.0小时。得

  • 我已经通过接受了公平和非公平纪律的测试。我写了一个模拟哲学家吃饭的小程序。 每个哲学家都有左右叉子,分别是s。我模拟了1000次思考和进食行为: 在哪里 没什么意思,只是睡了一段时间而已。下面是eat的