演算法第四章作業

2022-07-09 12:06:10 字數 1480 閱讀 2074

1.你對貪心演算法的理解:

貪心演算法就是先選好貪心策略,在每個子問題點作出在當時看來是最優的選擇。就是一直遵循某種規則,做出區域性最優的選擇,然後再推導出全域性最優解。貪心演算法對問題都是從區域性最優來考慮而不是從整體上,因此不是所有問題都能得到整體最優解,所以選擇的貪心策略必須保證某狀態以前的過程不會影響到以後的狀態,只與當前的狀態有關。

動態規劃方法一般是我們自底向上構造子問題的解,對每乙個子樹的根,求出下面每乙個葉子的值,以其中的最優值作為自身的值,其它捨棄。與動態規劃方法不同的是,貪心演算法對解空間樹的遍歷不需要自底向上,只需要自根開始,選擇最優的路一直走到底即可。

2.請選擇一道作業題目說明你的演算法滿足貪心選擇性質:

(1)選擇的題目:4-1 程式儲存問題

設有n 個程式要存放在長度為l的磁帶上。程式i存放在磁帶上的長度是 li,1≤i≤n。 程式儲存問題要求確定這n個程式在磁帶上的乙個儲存方案, 使得能夠在磁帶上儲存盡可能多的程式。 對於給定的n程式存放在磁帶上的長度,計算磁帶上最多可以儲存的程式數。

輸入格式:

第一行是2 個正整數,分別表示檔案個數n和磁帶的長度l。接下來的1行中,有n個正整數,表示程式存放在磁帶上的長度。

輸出格式:

輸出最多可以儲存的程式數。

輸入樣例:

在這裡給出一組輸入。例如:

6 50

2 3 13 8 80 20

輸出樣例:

在這裡給出相應的輸出。例如:

5

(2)貪心選擇性質:

選擇存放在磁帶上的長度最小的程式,由小到大依次存放。

先將磁帶長度由小到大進行排序,選擇最小長度的程式開始在磁帶上依次存放,若沒有超出磁帶總長度,則程式數+1,若超出了總長度,則存不下,跳出。最後得到最多可以儲存的程式數。

3.請說明在本章學習過程中遇到的問題及結對程式設計的情況:

(1)遇到的問題:

一開始不能很快的找到最合適的貪心選擇性質。

(2)結對程式設計情況:

我的結對程式設計夥伴是方楠楠。這一次我們的結對程式設計進展的比以往順利,我們合作討論一起確定了貪心選擇方案,然後我負責敲**,他負責監督指導。最後都較好的理解了貪心演算法。

演算法第四章作業

1.我對貪心演算法的理解 貪心演算法是指,在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,他所做出的是在某種意義上的區域性最優解。貪心演算法不是對所有問題都能得到整體最優解,關鍵是貪心策略的選擇,選擇的貪心策略必須具備無後效性,即某個狀態以前的過程不會影響以後的狀態...

演算法第四章作業

一 對貪心演算法的理解 貪心演算法的基本要素是 貪心選擇性質和最優子結構性質 貪心選擇每次選取當前最優解,可以依賴以往的選擇,但絕不依賴於將來所做的選擇,也不依賴於子問題的解。貪心演算法通常以自頂向下的方式進行。二 汽車加油問題的貪心選擇性質 汽車應選擇在能到達的前提下離自己最遠的加油站進行加油 i...

演算法第四章作業

我的理解 主要是在貪心二字上面,但是重要的是在哪些方面上貪心,是解決題目的最重要的思路。因此要考慮貪心選擇性質和子結構性質 貪心選擇性質 從區域性的最優解擴充套件到整體的最優解 最優子結構性質 整體的最優解包含子問題的最優解 由於要計算汽車從起點到終點的最少加油次數 故,每次可以盡可能多的在滿油量內...