累积约束的过载检查与归纳逻辑编程
1. 累积调度问题的 O(n log n) 过载检查算法
在累积调度问题中,若将任务集合 T 中的任务按最新完成时间(lct)升序排列,即 lct(t1) ≤ … ≤ lct(tn) ,基于 E({t1, …, tj}) 的计算结果来计算 E({t1, …, tj, tj + 1}) 的复杂度为 O(log n) ,其中 j 取值从 1 到 n 。因此,对于所有的 j ,总的复杂度为 O(n log n) 。
1.1 算法 1:累积调度问题的 O(n log n) 过载检查算法
- 输入 :有序任务序列 T = {t1, …, tn} ,满足 lct(t1) ≤ … ≤ lct(tn) ,以及累积资源的容量 C 。
- 私有变量 :按最早开始时间(est)排序的任务平衡二叉树 M ,以及平衡二叉树 M 中所有非空任务子集的最大能量级别 E 。
begin
1. M ← ∅;
2. for i = 1, …, n do
3. M ← M ∪ {ti};
4. compute E ← E(M);
5. // 过载检查:
if E > C · lct(ti) then
6. exit with failure;
7. // 因为检测到过载
end
8.
end
超级会员免费看
订阅专栏 解锁全文
5522

被折叠的 条评论
为什么被折叠?



