使用addmaxequality找到最大bool的总和

发布于 2025-02-07 19:22:52 字数 425 浏览 1 评论 0 原文

如何使用addminequality和AddMaxequality均匀分配作业?我的模型变量是布尔值,因此我尝试最大程度地减少布尔总和和最小值之间的差异。

assignments = []
for c in cars:
    a = model.NewIntVar(0, total_assignments, c)
    model.Add(a == sum(car_sch[(d, c)] for d in days))
    assignments.append(a)

assignment_min = model.AddMinEquality(assignments)  
assignment_max = model.AddMaxEquality(assignments)

model.Minimize(assignment_max - assignment_min)

How can one use AddMinEquality and AddMaxEquality to distribute assignments evenly? My model variables are boolean, hence I try to minimize difference between maximum and minimum of sum of bools.

assignments = []
for c in cars:
    a = model.NewIntVar(0, total_assignments, c)
    model.Add(a == sum(car_sch[(d, c)] for d in days))
    assignments.append(a)

assignment_min = model.AddMinEquality(assignments)  
assignment_max = model.AddMaxEquality(assignments)

model.Minimize(assignment_max - assignment_min)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

黯淡〆 2025-02-14 19:22:52

经过一些测试

assignments = []
for c in cars:
    a = model.NewIntVar(0, total_assignments, c)
    model.Add(a == sum(car_sch[(d, c)] for d in days))
    assignments.append(a)

min_value = model.NewIntVar(0, total_assignments, "min val") 
assignment_min = model.AddMinEquality(assignments) 
max_value = model.NewIntVar(0, total_assignments, "max val") 
assignment_max = model.AddMaxEquality(assignments)

model.Minimize(max_value - min_value)

After some testing

assignments = []
for c in cars:
    a = model.NewIntVar(0, total_assignments, c)
    model.Add(a == sum(car_sch[(d, c)] for d in days))
    assignments.append(a)

min_value = model.NewIntVar(0, total_assignments, "min val") 
assignment_min = model.AddMinEquality(assignments) 
max_value = model.NewIntVar(0, total_assignments, "max val") 
assignment_max = model.AddMaxEquality(assignments)

model.Minimize(max_value - min_value)
无法回应 2025-02-14 19:22:52

Model.AddMinEquality(target_var, [expressions])

参见

It is

Model.AddMinEquality(target_var, [expressions])

See the documentation

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文