使用Z3最小化调度问题的完工时间

时间:2017-09-11 19:55:16

标签: z3 job-scheduling

我正在尝试使用Z3建模车间调度问题。具体来说,让我说我有一组任务,每个任务都可能有其他任务依赖。然后我希望最小化安排最后任务的时间,即完工时间。

由于可能有多个作业依赖于其他作业但没有前向依赖性(即没有作业依赖于此作业),因此Z3中的简单最小化操作可能不够。并且Z3不承认列表中的最大功能。

因此,为了解决这个问题,我正在考虑添加一个假工作,这取决于所有这些工作,然后最大限度地减少安排这项工作的时间。我想知道这种方法是否可扩展,因为我需要为许多工作添加约束。

这是唯一的方法还是还有其他更优雅的方法?

1 个答案:

答案 0 :(得分:0)

您可以自己使用一系列max来定义ite;假设您确切知道有多少工作。见这里:Use Z3 and SMT-LIB to get a maximum of two values