小编Eli*_*Eli的帖子

这个 CP-SAT 模型会更快吗?

我的团队正在构建一个 CP-SAT 求解器,该求解器可以在一段时间内安排作业(例如家庭作业),并且可用性可变(可用于完成作业的时间)。我们正在努力加速我们的模型。

我们尝试了 num_search_workers 和其他参数调整,但想检查其他速度的提高。目标是在 5-10 秒内解决约 100 天的问题和最多 2000 个作业(以 M1 mac 为基准)。有任何想法吗?

问题描述:按照这些要求在 d 天内布置作业

  • 一天的分配时间不得超过当天的可用时间
  • 应尊重赋值依赖性(如果 A 需要 B,则 B 不应出现在 A 之后)
  • 作业可以分开(以便更好地适应时间很少的日子)
  • 针对一天中任务类型的多样性进行优化

# 天和 # 个作业后,解决问题的速度显着减慢。这是预料之中的,但我们想知道您是否可以提出可能的加速建议

这是一个单元测试示例。希望能够展示拆分、排序和时间限制。

days = [{"secondsAvailable": 1200}, {"secondsAvailable": 1200}, {"secondsAvailable": 1200}, {"secondsAvailable": 1200}]
assignments = [
    {"id": 1, "resourceType": "Type0", "seconds": 2400, "deps": [], "instances": 2},
    {"id": 2, "resourceType": "Type0", "seconds": 1200, "deps": [1], "instances": 1},
    {"id": 3, "resourceType": "Type0", "seconds": 1200, "deps": [1, 2], "instances": 1},
    ]
result …
Run Code Online (Sandbox Code Playgroud)

python operations-research or-tools cp-sat

1
推荐指数
1
解决办法
1721
查看次数

标签 统计

cp-sat ×1

operations-research ×1

or-tools ×1

python ×1