CP公式和求解逻辑的注释

在本节中,将用一个简化的3-job单机调度问题来阐述CP公式和解决方案逻辑的概念,该问题的约束条件是所有作业都要在到期日当天或之前完成,并且不间断地处理(时间单位=天)。

问题的公式如图所示:

注意,两个变量(Cj和sj)的域是有限集,每个作业的开始时间(sj)和完成时间(Cj)由该作业的处理时间(pj)链接。通过公式中所示的析取约束来表达这样一个事实,即机器一次只能执行一项任务。

CP解决方案逻辑如图所示:

该图根据表示三个作业(C1C2C3)的完成时间的变量的域,映射了域缩减、约束传播和深度优先搜索策略的逻辑。为了跟踪CP如何评估和筛选解决方案空间,在每个步骤中,提供C1C2C3的未探索候选值的数量

由于通过约束传播引起的域缩减而导致不一致的变量的值被着色,并用它们不一致的步骤标记。最后,将绑定值着色为黑色,并用生成它们的步骤进行标记。请注意,首先,有343个(7 x 7 x 7)候选任务。

在步骤1中,在涉及每个作业的完成时间、处理时间、开始时间和截止日期的约束下,对所有三个变量分别进行域缩减。例如,由于作业1的处理时间为3天,因此无法在第0天、第1天和第2天完成。此外,作业1将于第5天到期。因此,它不能在第6天完成。请注意,在修剪253个潜在分配后,初始域减少导致90个未探索的分配(基于图中的空白单元格)。

由于不可能进行更高的域缩减,并且我们没有解决方案,因此在步骤2中启动深度优先搜索策略。使用“最小当前域优先”的搜索启发式,选择C1进行实例化。一旦执行C1=3,约束传播就会发生,对C1C2C3的域产生影响。C1不能再假设值为45C2不能再假设值为234。最后,C3不能再假设值为123。步骤2导致未探索任务从90个减少到6个。

在步骤3中,使用“最小当前域优先”启发式方法,选择C2作为实例。C25的第一个值使得C26不一致,并且还使得C34C35不一致。因此,在步骤3中,搜索实际上遇到了这个问题的第一个可行解决方案(C13C25C36)。

如果我们希望识别所有的解决方案,那么深度优先搜索策略现在回溯到步骤2,用于下一个C2值(注意,对于C1=3C2可以是56),并将C2限制到其当前域中的下一个值,即C2=6。一旦它实例化C13C26,传播过程现在就更新C3的域,以查看C3的哪些值可能与这些实例化一致。它遇到C3=4的单一一致值,并确定第二个解决方案:C1=3C2=6C3=4

回溯,步骤5现在返回到C1级别,并将其实例化为C1=4,并且重复步骤13中提到的逻辑,它识别第三个解决方案:C1=4C2=6C3=1。最后,实例化C1=5得到第四个(也是最后一个)解决方案:C1=5C2=2C3=6

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值