動態規劃及貪心選擇實驗

2022-06-03 12:42:04 字數 1352 閱讀 1925

實驗報告

實驗內容

姓名: 魏成林

學號: 201101020126

班級: 電腦科學與技術

完成日期: 2013-11-7

實驗要求

一、實驗目的

1. 了解動態規劃和貪心選擇演算法

2. 區分兩個演算法

二、實驗內容

1. 實現矩陣連乘、0-1揹包問題、最優搜尋樹三個問題的動態規劃演算法。

2.實現活動安排的貪心演算法。

3. 對動態規劃和貪心演算法進行比較。

實驗報告

一 、實驗問題回答

1. 概述動態規劃演算法思想。

答:將待求解問題分解成若干個子問題,先求解子問題,然後從這些子問題的解得到原問題的解。儲存已解決的子問題的答案,在需要的時候再找出來避免重複計算,從而得到演算法。

2. 滿足什麼條件的問題可以用動態規劃演算法求解。

答:具有最優子結構和子問題重疊性質。

3. 寫出動態規劃演算法求解的步驟。

答:(1)找出最優解的性質,並刻畫其結構特徵;

(2)遞迴的定義最優值;

(3)以自底向上的方式計算出最優值;

(4)根據計算最優值時得到的資訊,構造最優解。

4. 什麼是最優子結構,如何證明乙個問題有最優子結構性質。

答:問題的最優解包含著其子問題的最優解;利用反證法來證明乙個問題有最優子結構性質,假設乙個問題不具有最優子結構性質,然後逐步的證明該問題存在最優子結構性質,與假設的產生矛盾,假設不成立,所以該問題就有最優子結構。

5. 寫出貪心演算法思想。

答:貪心演算法並不從整體最優考慮,而是作出在某種區域性意義上的最優選擇。

6. 貪心演算法的基本要素是什麼?

答:具有最優子結構性質和貪心選擇性質。

7. 0-1揹包問題可否用貪心演算法求解?不可以是為什麼?如果可以請用貪心演算法實現,並與動態規劃演算法實現的0-1揹包問題求解結果對比,是否正確。

答:0-1揹包問題不能用貪心演算法求解。因為在某種情況下,不能保證揹包被裝滿,也就是說揹包有剩餘的空間沒有利用起來,導致無法達到最大價值。

8. 分治策略和動態規劃的異同。

答:分治策略得到的子問題往往是獨立的,而動態規劃得到的子問題不是獨立的。分治法得到的子問題太多導致耗費時間,而且存在許多的重複計算。動態規劃則可以避免重複計算。

9. 動態規劃和貪心選擇的異同。

答:共同點是兩種演算法都需要問題具有最優子結構。不同的是有些問題可以用貪心演算法求解,而有些問題不能用貪心演算法求解。

二、實驗總結與收穫

用幾句簡短的話對實驗進行總結,並寫出自己的心得和收穫。每一項都用幾個小點表示。如:

本次實驗收穫如下:

1. 。。。。。。

2. 。。。。。。

實驗5動態規劃實驗

曹加站 20111060255 資訊計科 1.實驗目的要求 把動態規劃演算法應用到求貨郎擔問題和矩陣乘法問題,並程式設計實現。2.實驗主要內容 1 寫出並除錯用動態規劃方法求中點座標程式。2 寫出並除錯用動態規劃方法求矩陣乘法的程式。下面是矩陣連乘問題的動態規劃演算法 假設有6個矩陣 a1 a2 a...

實驗七動態規劃求解揹包問題

實驗目的 1 以0 1揹包問題為例,掌握動態規劃演算法的基本設計策略 2 掌握並實現求解0 1揹包問題的動態規劃演算法 3 分析實驗結果。實驗環境 計算機 c語言程式設計環境 實驗學時 2學時實驗內容與步驟 1.理解0 1揹包問題 0 1揹包問題的描述 已知有n個物品和乙個承重為m的揹包,物品i的重...

動態規劃練習題及解答

題1 多公尺諾骨牌 domino 問題描述 有一種多公尺諾骨牌是平面的,其正面被分成上下兩部分,每一部分的表面或者為空,或者被標上1至6個點。現有一行排列在桌面上 頂行骨牌的點數之和為6 1 1 1 9 底行骨牌點數之和為1 5 3 2 11。頂行和底行的差值是2。這個差值是兩行點數之和的差的絕對值...