我們假設乙個時間點只能處理乙個任務,處理任務j
jj所需處理時長為t
jt_j
tj且到期時間為d
jd_j
dj。
如果任務j
jj的開始時間為s
js_j
sj,那麼它的完成時間為fj=
sj+d
jf_j = s_j + d_j
fj=sj
+dj
任務j
jj的延遲為:lj=
maxl_j = max\
lj=ma
x目標:設計一種安排策略最小化最大延遲,即l=m
axjl
jl =max_j
l=maxj
lj
按照到期時間從早到晚進行排序,然後無間隙執行,得到的就是最優解
下圖就是貪心安排的乙個圖,最大時延為1
反證法:若最優解存在一些逆序對
我們可以假設其中乙個最優解s
∗s^*
s∗沒有間隙時間
如果s
∗s^*
s∗存在乙個逆序對,那麼我們可以保證不增加最大時延的情況下消除該逆序對。
重複上述操作,我們可以得到一種最優解不存在逆序對且沒有間隙時間,而這種方案唯一且為我們的貪心解,因此我們的貪心策略可以得到最優解。
活動安排 貪心演算法
活動安排問題就是要在所給的活動集合中選出最大的相容活動子集合,是可以用貪心演算法有效求解的很好例子。該問題要求高效地安排一系列爭用某一公共資源的活動。貪心演算法提供了乙個簡單 漂亮的方法使得盡可能多的活動能相容地使用公共資源。設有n個活動的集合e 其中每個活動都要求使用同一資源,如演講會場等,而在同...
活動安排問題 貪心演算法
問題表述 設有n個活動的集合 e 其中每個活動都要求使用同一資源,如演講會場等,而在同一時間內只有乙個活動能使用這一資源。每個活 i都有乙個要求使用該資源的起始時間 si和乙個結束時間 fi,且 si 如果選擇了活動 i,則它在半開時間區間 si,fi 內占用資源。若區間 si,fi 與區間 sj,...
活動安排問題(貪心演算法)
類似的問題是 選點問題和區間覆蓋問題。活動安排問題就是要在所給的活動集合中選出最大的相容活動子集合,是可以用貪心演算法有效求解的很好例子。該問題要求高效地安排一系列爭用某一公共資源的活動。貪心演算法提供了乙個簡單 漂亮的方法使得盡可能多的活動能相容地使用公共資源。設有n個活動的集合e 其中每個活動都...