问题描述
亲爱的,
我想知道 CP-SAT 是否作为任何内置功能,允许我平衡分配给用户的任务数量。
现在我正在计算方差并在目标函数中最小化它,所以有可能使用内置函数计算方差会很棒,但我想知道我是否有其他选择。>
谢谢
解决方法
别无选择。
如果任务和工人的数量是固定的。您可以计算平均值,并使用 epsilon 添加以下约束:
for all workers:
model.Add(sum(assigned_tasks) <= average + epsilon)
model.Add(sum(assigned_tasks) >= average - epsilon)
model.Minimize(epsilon)
这不太精确,但要快得多。