演算法課程 (Algorithms) 國立聯合大學 資訊管理學系 陳士杰老師 Course 7 貪婪法則 Greedy Approach.

Slides:



Advertisements
Similar presentations
1 生物計算期末作業 暨南大學資訊工程系 2003/05/13. 2 compare f1 f2  只比較兩個檔案 f1 與 f2 ,比完後將結果輸出。 compare directory  以兩兩比對的方式,比對一個目錄下所有檔案的相 似程度。  將相似度很高的檔案做成報表輸出,報表中至少要.
Advertisements

本章結構 前言 符號介紹與立透法則 指數機率分配 基本無限來源模式 基本有限來源模式 等候系統的經濟分析-最佳化 進階等候模式 16-1.
布林代數的應用--- 全及項(最小項)和全或項(最大項)展開式
建立使用案例敘述 --Use Case Narrative
第七章 抽樣與抽樣分配 蒐集統計資料最常見的方式是抽查。這 牽涉到兩個問題: 抽出的樣本是否具有代表性?是否能反應出母體的特徵?
Section 1.2 Describing Distributions with Numbers 用數字描述分配.
3Com Switch 4500 切VLAN教學.
Reference, primitive, call by XXX 必也正名乎 誌謝 : 部份文字取於前輩 TAHO 的文章.
指導教授:陳淑媛 學生:李宗叡 李卿輔.  利用下列三種方法 (Edge Detection 、 Local Binary Pattern 、 Structured Local Edge Pattern) 來判斷是否為場景變換,以方便使用者來 找出所要的片段。
1 Advanced Chemical Engineering Thermodynamics Appendix BK The Generalized van der Waals Partition Function.
亂數產生器安全性評估 之統計測試 SEC HW7 姓名:翁玉芬 學號:
Review of Chapter 3 - 已學過的 rules( 回顧 )- 朝陽科技大學 資訊管理系 李麗華 教授.
Chapter 2 聯立線性方程式與矩陣 緒言 線性方程式組 (systems of linear equations) 出現 在多數線性模式 (linear model) 中。根據以往解 題的經驗,讀者們也許已發現方程式的解僅與 該方程式的係數有關,求解的過程也僅與係數 的運算有關,只要係數間的相關位置不改變,
STAT0_sampling Random Sampling  母體: Finite population & Infinity population  由一大小為 N 的有限母體中抽出一樣本數為 n 的樣 本,若每一樣本被抽出的機率是一樣的,這樣本稱 為隨機樣本 (random sample)
: Matrix Decompressing ★★★★☆ 題組: Contest Volumes with Online Judge 題號: 11082: Matrix Decompressing 解題者:蔡權昱、劉洙愷 解題日期: 2008 年 4 月 18 日 題意:假設有一矩陣 R*C,
第 4 章 迴歸的同步推論與其他主題.
1. 假設以下的敘述為一未提供 “ 捷徑計算 ” 能力的程式段,試用程 式設計的技巧,使此敘述經此改 寫的動作後,具有與 “ 捷徑計算 ” 之 處理方法相同之處理模式。 if and then E1 else E2 endif.
JAVA 程式設計與資料結構 第十四章 Linked List. Introduction Linked List 的結構就是將物件排成一列, 有點像是 Array ,但是我們卻無法直接經 由 index 得到其中的物件 在 Linked List 中,每一個點我們稱之為 node ,第一個 node.
8.1 何謂高度平衡二元搜尋樹 8.2 高度平衡二元搜尋樹的加入 8.3 高度平衡二元搜尋樹的刪除
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
基礎物理總論 基礎物理總論 熱力學與統計力學(三) Statistical Mechanics 東海大學物理系 施奇廷.
Department of Air-conditioning and Refrigeration Engineering/ National Taipei University of Technology 模糊控制設計使用 MATLAB 李達生.
Monte Carlo Simulation Part.2 Metropolis Algorithm Dept. Phys. Tunghai Univ. Numerical Methods C. T. Shih.
JAVA 程式設計與資料結構 第十章 GUI Introdution III. File Chooser  File Chooser 是一個選擇檔案的圖形介面, 無論我們是要存檔還是要開啟檔案,使 用這個物件都會讓我們覺得容易且舒適。
1 第四章 多變數函數的微分學 § 4.1 偏導數定義 定義 極限值 ■. 2 定理 極限值的基本定理 (1) 極限值的唯一性 : 若 存在,則 其值必為唯一。 (2) 若 且 ( 與 為常數 ) , 則 且 為常數且.
Chapter 13 塑模靜態觀點:物件圖 Static View : Object Diagram.
Introduction to Java Programming Lecture 17 Abstract Classes & Interfaces.
:Problem D: Bit-wise Sequence ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10232: Problem D: Bit-wise Sequence 解題者:李濟宇 解題日期: 2006 年 4 月 16.
: The largest Clique ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11324: The largest Clique 解題者:李重儀 解題日期: 2008 年 11 月 24 日 題意: 簡單來說,給你一個 directed.
第三部分:研究設計 ( 二): 研究工具的信效度 與研究效度 (第九章之第 306 頁 -308 頁;第四章)
Matlab Assignment Due Assignment 兩個 matlab 程式 : Eigenface : Eigenvector 和 eigenvalue 的應用. Fractal : Affine transform( rotation, translation,
選舉制度、政府結構與政 黨體系 Cox (1997) Electoral institutions, cleavage strucuters, and the number of parties.
第三章 自動再裝載運用篇 使用時機:裝載計劃完成時,尚有剩餘空 間的情形,維持已固定計劃而繼續做裝載 最佳化。以支持次日裝載計劃而提前調整 作業模式。 裝載物品設定和裝載容器設定如前兩章介 紹,於此不再重複此動作,直接從裝載計 劃設定開始,直接從系統內定的物品和容 器選取所需.
Chapter 2 Getting Started Insertion Sort: 能有效率地排序小數字的演算法 範例 :
: Playing War ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11061: Playing War 解題者:陳盈村 解題日期: 2008 年 3 月 14 日 題意:在此遊戲中,有一類玩家一旦開始攻擊, 就會不停攻擊同一對手,直到全滅對方或無法再.
: Ahoy, Pirates! ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11402: Ahoy, Pirates! 解題者:李重儀 解題日期: 2008 年 8 月 26 日 題意:有一個海盜島有 N 個海盜,他們的編號 (id)
短缺,盈餘與均衡. 遊戲規則  老師想出售一些學生喜歡的小食。  老師首先講出價錢,有興趣買的請舉手。
Fugacity Coefficient and Fugacity
: Multisets and Sequences ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11023: Multisets and Sequences 解題者:葉貫中 解題日期: 2007 年 4 月 24 日 題意:在這個題目中,我們要定義.
公司加入市場的決定. 定義  平均成本 = 總成本 ÷ 生產數量 = 每一單位產量所耗的成本  平均固定成本 = 總固定成本 ÷ 生產數量  平均變動成本 = 總變動成本 ÷ 生產數量.
The application of boundary element evaluation on a silencer in the presence of a linear temperature gradient Boundary Element Method 期末報告 指導老師:陳正宗終身特聘教授.
公用品.  該物品的數量不會因一人的消費而受到 影響,它可以同時地被多人享用。 角色分配  兩位同學當我的助手,負責:  其餘各人是投資者,每人擁有 $100 , 可以投資在兩種資產上。  記錄  計算  協助同學討論.
: Problem G e-Coins ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10306: Problem G e-Coins 解題者:陳瀅文 解題日期: 2006 年 5 月 2 日 題意:給定一個正整數 S (0
Course 6 動態規劃 Dynamic Programming
: Beautiful Numbers ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11472: Beautiful Numbers 解題者:邱經達 解題日期: 2011 年 5 月 5 日 題意: 若一個 N 進位的數用到該.
Section 4.2 Probability Models 機率模式. 由實驗看機率 實驗前先列出所有可能的實驗結果。 – 擲銅板:正面或反面。 – 擲骰子: 1~6 點。 – 擲骰子兩顆: (1,1),(1,2),(1,3),… 等 36 種。 決定每一個可能的實驗結果發生機率。 – 實驗後所有的實驗結果整理得到。
函式 Function Part.2 東海大學物理系‧資訊教育 施奇廷. 遞迴( Recursion ) 函式可以「呼叫自己」,這種動作稱為 「遞迴」 此程式的執行結果相當於陷入無窮迴圈, 無法停止(只能按 Ctrl-C ) 這給我們一個暗示:函式的遞迴呼叫可以 達到部分迴圈的效果.
JAVA 程式設計與資料結構 第二十章 Searching. Sequential Searching Sequential Searching 是最簡單的一種搜尋法,此演 算法可應用在 Array 或是 Linked List 此等資料結構。 Sequential Searching 的 worst-case.
演算法 8-1 最大數及最小數找法 8-2 排序 8-3 二元搜尋法.
: Expect the Expected ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11427: Expect the Expected 解題者:李重儀 解題日期: 2008 年 9 月 21 日 題意:玩一種遊戲 (a game.
Chapter 3 Entropy : An Additional Balance Equation
產出外界效果的權利. 外界效果  是社會成本和私人成本發生分歧的原因。 外界效果可以是成本,也可以是收益。
845: Gas Station Numbers ★★★ 題組: Problem Set Archive with Online Judge 題號: 845: Gas Station Numbers. 解題者:張維珊 解題日期: 2006 年 2 月 題意: 將輸入的數字,經過重新排列組合或旋轉數字,得到比原先的數字大,
Learning Method in Multilingual Speech Recognition Author : Hui Lin, Li Deng, Jasha Droppo Professor: 陳嘉平 Reporter: 許峰閤.
Chapter 10 m-way 搜尋樹與B-Tree
Extreme Discrete Summation ★★★★☆ 題組: Contest Archive with Online Judge 題號: Extreme Discrete Summation 解題者:蔡宗翰 解題日期: 2008 年 10 月 13 日.
Course 9 NP Theory序論 An Introduction to the Theory of NP
SQL 進階查詢.
: Problem E Antimatter Ray Clearcutting ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11008: Problem E Antimatter Ray Clearcutting 解題者:林王智瑞.
第 6 章 迴圈結構 6-1 計數迴圈 6-1 計數迴圈 6-2 條件迴圈 6-2 條件迴圈 6-3 巢狀迴圈 6-3 巢狀迴圈 6-4 While/End While 迴圈 6-4 While/End While 迴圈 6-5 跳出迴圈 6-5 跳出迴圈 6-6 VB.NET 的錯誤處理 6-6 VB.NET.
: Wine trading in Gergovia ★★☆☆☆ 題組: Contest Volumes with Online Judge 題號: 11054: Wine trading in Gergovia 解題者:劉洙愷 解題日期: 2008 年 2 月 29 日 題意:在 Gergovia.
Course 7 貪婪法則 Greedy Approach
11 Ch05 遞迴 淡江大學 周清江 1. 2  遞迴函數乃是一個自己反覆呼叫自己的函數  一個典型的遞迴演算法 n! = n * (n-1)! = n * (n-1) * (n-2)! = n * (n-1) * (n-2) * (n-3)! = … = n * (n-1) * (n-2)
: Finding Paths in Grid ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11486: Finding Paths in Grid 解題者:李重儀 解題日期: 2008 年 10 月 14 日 題意:給一個 7 個 column.
:Problem E.Stone Game ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10165: Problem E.Stone Game 解題者:李濟宇 解題日期: 2006 年 3 月 26 日 題意: Jack 與 Jim.
1 Knapsack Cryptosystems 2 ◎ Merkle-Hellman Knapsack Cryptosystem 觀察: (1) 0/1 knapsack problem (i.e. sum of subset) 例:已知 C = 14, A = (1, 10, 5, 22, 3)
幼兒行為觀察與記錄 第八章 事件取樣法.
: How many 0's? ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 11038: How many 0’s? 解題者:楊鵬宇 解題日期: 2007 年 5 月 15 日 題意:寫下題目給的 m 與 n(m
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
Presentation transcript:

演算法課程 (Algorithms) 國立聯合大學 資訊管理學系 陳士杰老師 Course 7 貪婪法則 Greedy Approach

國立聯合大學 資訊管理學系 演算法課程 ( 陳士杰 ) 2 ▓ The Knapsack Problem ( 背包問題 )  Def: 所謂 Knapsack Problem ,是指有 N 個物品和一個背包, 其中 : 物品具有重量 (w 1, w 2, …, w n ) 和利潤 (p 1, p 2, …, p n ) 背包的最大重量承受限制為 W 問如何取物可得最高價值 ?  此問題可以表示如下 :

國立聯合大學 資訊管理學系 演算法課程 ( 陳士杰 ) 3 brute-force solution  The brute-force solution is to consider all subsets of the n items Discard those subsets whose total weight exceeds W; and, of those remaining, take one with maximum total profit. 2 n subsets Example A.10 in Appendix A shows that there are 2 n subsets of a set containing n items. Therefore, the brute-force algorithm is exponential-time.Appendix A  Knapsack Problem 可分成兩種問題型態 : Fractional Knapsack Problem:  物品可被切割,亦即取物時可取部份  採用 Greedy Approach 0/1 Knapsack Problem:  物品不可被切割,亦即取物時得取全部  採用 Dynamic Programming

國立聯合大學 資訊管理學系 演算法課程 ( 陳士杰 ) 4  我們將以下列範例說明上述兩種類型的背包問題 : 背包可承擔的最大重量 : 30 lb( 磅 ) 三個物品之重量及其利潤 :  Item 1: 5 lb, $50  Item 2: 10 lb, $60  Item 3: 20 lb, $140

國立聯合大學 資訊管理學系 演算法課程 ( 陳士杰 ) 5 Fractional Knapsack Problem  物品可被切割,亦即取物時可取部份  採用 Greedy Approach ,因此需設定「選擇程序」。 由於物品放入背包可以獲得利潤,但是也同時會增加重量,所以共有三種 可供使用的選擇程序,分別是 :  利潤  利潤 : 採用最大利潤優先的選擇程序。自利潤最大之物品依序取物,直到物品 拿完或負重 = W 為止,就可以得到一個可行解  重量  重量 : 採用最小重量優先的選擇程序。自重量最小之物品依序取物,直到物品 拿完或負重 = W 為止,就可以得到一個可行解  利潤與重量比  利潤與重量比 : 採用最大利潤與重量比的選擇程序。自利潤與重量比最大之物 品依序取物,直到物品拿完或負重 = W 為止,就可以得到一個可行解 以上三種選擇程序,只有利潤與重量比可以得到一個最佳解,其餘兩個只 能得到可行解 因此,貪婪法則的選擇程序適題與否,對於是否可以得到一個問題之最佳 解具有決定性的影響

國立聯合大學 資訊管理學系 演算法課程 ( 陳士杰 ) 6  根據題目定義,我們可以得到下列表格 : 最大利潤優先  選擇程序採 “ 最大利潤優先 ”: Step 1: 取 20 bl 的 Item 1 ,可得利潤為 $140 ,背包剩餘重量 : 10 bl Step 2: 取 10 bl 的 Item 2 ,連同 Step 1 所取之 20 bl 的 Item 1 ,可得總利潤為 $200 ,背包剩餘重量 : 0 bl Step 3: 因為背包已無剩餘重量,故完全無法取得 Item 3 所得總利潤 = $200 所得總利潤 = $200 Item 重量 (bl) 利潤利潤 / 重量比 15$ $ $1407

國立聯合大學 資訊管理學系 演算法課程 ( 陳士杰 ) 7 最小重量優先  選擇程序採 “ 最小重量優先 ”: Step 1: 取 5 bl 的 Item 1 ,可得利潤為 $50 ,背包剩餘重量 : 25 bl Step 2: 取 10 bl 的 Item 2 ,連同 Step 1 所取之 5 bl 的 Item 1 ,可得總利潤為 $110 , 背包剩餘重量 : 15 bl Step 3: 由於背包剩餘重量為 15 bl ,而 Item 3 的重量有 20 bl ,因此僅能取 ¾ 的 Item 3 ,連同前兩步的結果,可得總利潤為 $215 ,背包剩餘重量 : 0 bl 所得總利潤 = $215 所得總利潤 = $215 最大利潤與重量比  選擇程序採 “ 最大利潤與重量比 ”: Step 1: 取 5 bl 的 Item 1 ,可得利潤為 $50 ,背包剩餘重量 : 25 bl Step 2: 取 20 bl 的 Item 3 ,連同 Step 1 的結果,可得總利潤為 $190 ,背包剩餘 重量 : 5 bl Step 3: 由於背包剩餘重量為 5 bl ,而 Item 2 的重量有 10 bl ,因此僅能取 ½ 的 Item 2 ,連同前兩步的結果,可得總利潤為 $220 ,背包剩餘重量 : 0 bl 所得總利潤 = $220 所得總利潤 = $220

國立聯合大學 資訊管理學系 演算法課程 ( 陳士杰 ) 8 0/1 Knapsack Problem  物品不可被切割,亦即取物時得取全部  若仍採用 Greedy Approach ,選擇程序為 “ 最大利潤與重量 比 ”: Step 1: 取 5 bl 的 Item 1 ,可得利潤為 $50 ,背包剩餘重量 : 25 bl Step 2: 取 20 bl 的 Item 3 ,連同 Step 1 的結果,可得總利潤為 $190 , 背包剩餘重量 : 5 bl Step 3: 由於背包剩餘重量為 5 bl ,而 Item 2 的重量有 10 bl 。由於物 品不可被分割,因此完全無法取得 Item 2 ,而背包剩餘重量 : 5 bl 所得總利潤 = $190 ,但是真正的最佳解 ( 最佳總利潤 ) 為 200 所得總利潤 = $190 ,但是真正的最佳解 ( 最佳總利潤 ) 為 200   0/1 Knapsack Problem 不可用 Greedy Approach 求解 !!

國立聯合大學 資訊管理學系 演算法課程 ( 陳士杰 ) 9

10  [0/1 問題的最佳解結構 ]: 給一背包可負重 W ,且可拿的物品 O = {O 1, O 2, …, O n } 共 n 樣 item ,其 中 O i 的重量為 w i ,利潤為 p i ,取物時得全取。設 {x 1, x 2, …, x j } ≤ O 為最 高獲利取法,則 :  若 x j = O n ,則 {x 1, x 2, …, x j-1 } 為可負重 W – w n 且能取 {O 1, O 2, …, O n-1 } 之最佳 取法  若 x j ≠ O n ,則 {x 1, x 2, …, x j } 為可負重 W 且能取 {O 1, O 2, …, O n-1 } 之最佳取法  P[i, k]: 背包可負重 k 且有 i 樣物品 {O 1, O 2, …, O i } 可拿之下,所 能得到之最高利潤 i: 可以拿的物品數, k: 包包所能夠承載的重量  label[i, k]: 背包可負重 k 且有 i 樣物品 {O 1, O 2, …, O i } 可拿之下, 所能得到之取物方法

國立聯合大學 資訊管理學系 演算法課程 ( 陳士杰 ) 11  [ 遞迴式 ]:  沒物品可拿  無法負重  拿第 i 物後可得的利潤  不拿第 i 物可得的利潤  第 i 物的重量比背包目 前可承受之重量還重

國立聯合大學 資訊管理學系 演算法課程 ( 陳士杰 ) 12  範例 : 假設有一背包 W = 5 ,考慮以下的 Items ,求 0/1 Knapsack 最佳解 : Sol: 先建立 P[0…n, 0…W] 和 label[0…n, 0…W] 兩個 Table P Item 重量利潤 O1O1 1$6 O2O2 2$10 O3O3 3$12 label

國立聯合大學 資訊管理學系 演算法課程 ( 陳士杰 ) 13 Step 1: 當 i = 0 ,表示沒有任何物品可以拿 ( 即 : 狀況  ) 。  P[0, k] = 0 且 label[0, k] = {ø} P label øøøøøø 1 2 3

國立聯合大學 資訊管理學系 演算法課程 ( 陳士杰 ) 14 Step 2: 當 i = 1 ,表示有 1 個物品可以拿 ( 即 : O 1 ) 。  ∵ k = 0 ,表示無法負重 ( 狀況  ); ∴ P[1, 0] = 0 且 label[1, 0] = ø  k=1 ,表示能負重 1; 此時 :  K = 2~5 ,表示能負重 2 ~ 5; 但由於僅 1 個物品 ( 即 : O 1 ) 可拿,因此 P[1, k] 與 label[1, k] 的其它值皆同 P[1, 1] 與 label[1, 1] 。 P label øøøøøø 1 ø {1} 2 3

國立聯合大學 資訊管理學系 演算法課程 ( 陳士杰 ) 15 Step 3: 當 i = 2 ,表示有 2 個物品可以拿 ( 即 : O 1 與 O 2 ) 。  ∵ k = 2 ,表示負重 2; 此時 :  ∵ k = 3 ,表示負重 3; 此時 : P label øøøøøø 1ø{1} 2ø {2}{1, 2} 3

國立聯合大學 資訊管理學系 演算法課程 ( 陳士杰 ) 16 Step 4: 當 i = 3 ,表示有 3 個物品可以拿 ( 即 : O 1 、 O 2 與 O 3 ) 。  ∵ k = 3 ,表示負重 3; 此時 : P label øøøøøø 1ø{1} 2ø {2}{1, 2} 3ø{1}{2}{1, 2}

國立聯合大學 資訊管理學系 演算法課程 ( 陳士杰 ) 17 P label øøøøøø 1ø{1} 2ø {2}{1, 2} 3ø{1}{2}{1, 2}{1, 3}{2, 3}  ∵ k = 4 ,表示負重 4; 此時 :  ∵ k = 5 ,表示負重 5; 此時 :

國立聯合大學 資訊管理學系 演算法課程 ( 陳士杰 ) 18   