磁帶的最優儲存 貪心演算法

2021-04-23 00:01:49 字數 1103 閱讀 9205

題目:磁帶的最優儲存:假定有

n個程式需存放在長度為

l的磁帶上,每乙個程式

i有長度l(

i),1<=i<=n,l(1)+l(2)+....+l(n)<=l.

假定無論什麼時候,檢索該帶上的某個程式時,帶的位置都處於始端。因此,若程式按

i=i(1),i(2)...i(n)

存放時,則檢索時間

i(j)的時間

t(j)

為l[i

(1)]+l[i

(2)]+...+l[i(j)],

如果各程式的檢索機會相等,則期望檢索時間為

[t(1)+t(2)+...+t(n)]/n.

試給出乙個貪心演算法,找出

n個程式的一種排列,證明當他們按此順序存放時,能使期望檢索時間最少。

演算法思想:

最短時間設想:

(貪心策略)

因為程式長度和檢索該程式的時間成正比,輸入個程式後,先按程式長度由小到大序,即程式短的放前面。則由題意的檢索方法可知該方法檢索時間最短。

演算法過程:

1、輸入n和

l[1]

、l[2] 、…、

l[n] 。

2、將l陣列從小到大排序。 3

、計算出各個程式的從頭查詢的檢索時間

t[i] 4

、計算出最優儲存的平均檢索時間st

演算法證明:

假設排序後的理想最優序列為:a1、

a2、…、an

則對於檢索的平均排程時間為:

st=(0+a1+(a1+a2)+(a1+a2+a3)+...+(a1+a2+…+an-1)) / n

=((n-1)a1+(n-2)a2+...+an-1) / n

利用反正法思想

假設存在乙個序列b1、

b2、…、

bn的平均排程時間小於上面的貪心策略時間,則至少存在

a1,a2,...,aj,...,ai,...an,

使得aj>ai,

且j>i 。

那麼(n-i)aj+(n-j)ai>(n-i)ai+(n-j)aj,

與最優解矛盾,故貪心解為最優解。

磁碟最優儲存問題 貪心演算法

設有n 個程式要存放在長度為l的磁帶上。程式i存放在磁帶上的長度是li,1 i n。這n 個程式的讀取概率分別是p1,p2,pn,且pi p2 pn 1。如果將這n 個程式按 i1,i2,in 的次序存放,則讀取程式ir 所需的時間tr c pi1 li2 pi2 li2 pir lir 這n 個程...

磁碟最優儲存問題 貪心演算法

設有n 個程式要存放在長度為l的磁帶上。程式i存放在磁帶上的長度是li,1 i n。這n 個程式的讀取概率分別是p1,p2,pn,且pi p2 pn 1。如果將這n 個程式按 i1,i2,in 的次序存放,則讀取程式ir 所需的時間tr c pi1 li2 pi2 li2 pir lir 這n 個程...

貪心演算法 最優裝載

貪心演算法思想 不從整體最優上加以考慮,它所做出的選擇只是在某種意義上的區域性最優選擇,當然希望貪心演算法得到的最終結果也是整體最優的 貪心演算法性質 指所求問題的整體最優解可以通過一系列區域性最優的選擇,即貪心選擇來達到 1 問題描述 有一批貨櫃要裝上一艘載重量為 tatol 的輪船,其中貨櫃 i...