Course 7 貪婪法則 Greedy Approach

Slides:



Advertisements
Similar presentations
Divide-and-Conquer. 什麼是 divide-and-conquer ? Divide 就是把問題分割 Conquer 則是把答案結合起來.
Advertisements

本章結構 前言 符號介紹與立透法則 指數機率分配 基本無限來源模式 基本有限來源模式 等候系統的經濟分析-最佳化 進階等候模式 16-1.
布林代數的應用--- 全及項(最小項)和全或項(最大項)展開式
第七章 抽樣與抽樣分配 蒐集統計資料最常見的方式是抽查。這 牽涉到兩個問題: 抽出的樣本是否具有代表性?是否能反應出母體的特徵?
: A-Sequence 星級 : ★★☆☆☆ 題組: Online-judge.uva.es PROBLEM SET Volume CIX 題號: Problem D : A-Sequence 解題者:薛祖淵 解題日期: 2006 年 2 月 21 日 題意:一開始先輸入一個.
:Word Morphing ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10508:word morphing 解題者:楊家豪 解題日期: 2006 年 5 月 21 日 題意: 第一行給你兩個正整數, 第一個代表下面會出現幾個字串,
1 Q10276: Hanoi Tower Troubles Again! 星級 : ★★★ 題組: Online-judge.uva.es PROBLEM SET Volume CII 題號: Q10276: Hanoi Tower Troubles Again! 解題者:薛祖淵 解題日期: 2006.
指導教授:陳淑媛 學生:李宗叡 李卿輔.  利用下列三種方法 (Edge Detection 、 Local Binary Pattern 、 Structured Local Edge Pattern) 來判斷是否為場景變換,以方便使用者來 找出所要的片段。
1.1 線性方程式系統簡介 1.2 高斯消去法與高斯-喬登消去法 1.3 線性方程式系統的應用(-Skip-)
亂數產生器安全性評估 之統計測試 SEC HW7 姓名:翁玉芬 學號:
Lecture 8 Median and Order Statistics. Median and Order Statistics2 Order Statistics 問題敘述 在 n 個元素中,找出其中第 i 小的元素。 i = 1 ,即為找最小值。 i = n ,即為找最大值。 i = 或 ,即為找中位數。
Review of Chapter 3 - 已學過的 rules( 回顧 )- 朝陽科技大學 資訊管理系 李麗華 教授.
Graph V(G 1 )={0, 1, 2, 3, 4, 5, 6, 7, 8, 9} E(G 1 )={(0, 2), (0, 3), (1, 4), (2, 3), (2, 5), (2, 6), (3, 6), (3, 7), (4, 7), (5, 6), (5,
:New Land ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11871: New Land 解題者:施博修 解題日期: 2011 年 6 月 8 日 題意:國王有一個懶兒子,為了勞動兒子,他想了一個 辦法,令他在某天早上開始走路,直到太陽下山前,靠.
: OPENING DOORS ? 題組: Problem Set Archive with Online Judge 題號: 10606: OPENING DOORS 解題者:侯沛彣 解題日期: 2006 年 6 月 11 日 題意: - 某間學校有 N 個學生,每個學生都有自己的衣物櫃.
Chapter 2 聯立線性方程式與矩陣 緒言 線性方程式組 (systems of linear equations) 出現 在多數線性模式 (linear model) 中。根據以往解 題的經驗,讀者們也許已發現方程式的解僅與 該方程式的係數有關,求解的過程也僅與係數 的運算有關,只要係數間的相關位置不改變,
Chapter 3 Growth of Functions Asymptotic notation Θ-notation: f(n) = Θ(g(n)) , g(n) is an asymptotically tight bound for f(n) 。 Θ(g(n)) = {f(n)|
STAT0_sampling Random Sampling  母體: Finite population & Infinity population  由一大小為 N 的有限母體中抽出一樣本數為 n 的樣 本,若每一樣本被抽出的機率是一樣的,這樣本稱 為隨機樣本 (random sample)
1. 假設以下的敘述為一未提供 “ 捷徑計算 ” 能力的程式段,試用程 式設計的技巧,使此敘述經此改 寫的動作後,具有與 “ 捷徑計算 ” 之 處理方法相同之處理模式。 if and then E1 else E2 endif.
Structural Equation Modeling Chapter 7 觀察變數路徑分析=路徑分析 觀察變數路徑分析.
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. 肆 資料分析與表達.
: The Playboy Chimp ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10611: The Playboy Chimp 解題者:蔡昇宇 解題日期: 2010 年 2 月 28 日 題意:給一已排序的數列 S( 升冪.
Monte Carlo Simulation Part.2 Metropolis Algorithm Dept. Phys. Tunghai Univ. Numerical Methods C. T. Shih.
第一章 演算法:效率、分析與量級 1.1演算法 1.2發展有效率演算法的重要性 1.3演算法的分析 1.4量級(Order)
第 1 章 PC 的基本構造. 本章提要 PC 系統簡介 80x86 系列 CPU 及其暫存器群 記憶體: Memory 80x86 的分節式記憶體管理 80x86 的 I/O 結構 學習組合語言的基本工具.
1 第四章 多變數函數的微分學 § 4.1 偏導數定義 定義 極限值 ■. 2 定理 極限值的基本定理 (1) 極限值的唯一性 : 若 存在,則 其值必為唯一。 (2) 若 且 ( 與 為常數 ) , 則 且 為常數且.
Chapter 13 塑模靜態觀點:物件圖 Static View : Object Diagram.
Introduction to Java Programming Lecture 17 Abstract Classes & Interfaces.
第 5 章 深入 Response 物件 製作. 網頁的轉向與強制輸出 - 讓網頁轉彎的 Redirect 敘述 運用 Response 物件的 Redirect 方法,將瀏覽器顯 示的網頁,導向至其他網頁,語法如下: Response.Redirect 網頁路徑與名稱 此網頁路徑與名稱  若是導向到同一台.
: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.
: Happy Number ★ ? 題組: Problem Set Archive with Online Judge 題號: 10591: Happy Number 解題者:陳瀅文 解題日期: 2006 年 6 月 6 日 題意:判斷一個正整數 N 是否為 Happy Number.
: 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)
: Multisets and Sequences ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11023: Multisets and Sequences 解題者:葉貫中 解題日期: 2007 年 4 月 24 日 題意:在這個題目中,我們要定義.
:Nuts for nuts..Nuts for nuts.. ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 10944:Nuts for nuts.. 解題者:楊家豪 解題日期: 2006 年 2 月 題意: 給定兩個正整數 x,y.
: Problem G e-Coins ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10306: Problem G e-Coins 解題者:陳瀅文 解題日期: 2006 年 5 月 2 日 題意:給定一個正整數 S (0
Management Abstracts Retrieval System; MARS 檢索操作.
Course 6 動態規劃 Dynamic Programming
: A-Sequence ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10930: A-Sequence 解題者:陳盈村 解題日期: 2008 年 5 月 30 日 題意: A-Sequence 需符合以下的條件, 1 ≤ a.
: 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 二元搜尋法.
Chapter 6 線性規劃 緒言 如何在有限的經濟資源下進行最有效的調配與 選用,以求發揮資源的最高效能。此問題愈來 愈受到重視,也就是以最低的代價,獲取最大 的效益。 茲列舉如下: – 決定緊急設備與人員的地點,使反應時間最短化。 – 決定飛機、飛行員、地勤人員的飛航最佳日程安排。
Chapter 3 Entropy : An Additional Balance Equation
845: Gas Station Numbers ★★★ 題組: Problem Set Archive with Online Judge 題號: 845: Gas Station Numbers. 解題者:張維珊 解題日期: 2006 年 2 月 題意: 將輸入的數字,經過重新排列組合或旋轉數字,得到比原先的數字大,
Structural Equation Modeling Chapter 6 CFA 根據每個因素有多重指標,以減少 測量誤差並可建立問卷的構念效度 驗證性因素分析.
Learning Method in Multilingual Speech Recognition Author : Hui Lin, Li Deng, Jasha Droppo Professor: 陳嘉平 Reporter: 許峰閤.
Chapter 10 m-way 搜尋樹與B-Tree
: Function Overloading ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 11032:Function Overloading 解題者:許智祺 解題日期: 2007 年 5 月 8 日 題意:判對輸入之數字是否為.
演算法課程 (Algorithms) 國立聯合大學 資訊管理學系 陳士杰老師 Course 7 貪婪法則 Greedy Approach.
: Help My Brother ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 11033: Help My Brother 解題者: 呂明璁 解題日期: 2007 年 5 月 14 日.
Course 9 NP Theory序論 An Introduction to the Theory of NP
ArcINFO &Geodatabase 由 ESRI 產生 1970 ArcINFO 一開始被設計在迷你電 腦上, 後來逐漸發展, 在 UNIX 系統上也能 執行, 直到今天, 已經可以在不同的平台上 運作.
SQL 進階查詢.
: Wine trading in Gergovia ★★☆☆☆ 題組: Contest Volumes with Online Judge 題號: 11054: Wine trading in Gergovia 解題者:劉洙愷 解題日期: 2008 年 2 月 29 日 題意:在 Gergovia.
:Commandos ★★★☆☆ 題組: Contest Archive with Online Judge 題號: 11463: Commandos 解題者:李重儀 解題日期: 2008 年 8 月 11 日 題意: 題目會給你一個敵營區內總共的建築物數,以及建築物 之間可以互通的路有哪些,並給你起點的建築物和終點.
: SAM I AM ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11419: SAM I AM 解題者:李重儀 解題日期: 2008 年 9 月 11 日 題意: 簡單的說,就是一個長方形的廟裡面有敵人,然 後可以橫的方向開砲或縱向開砲,每次開砲可以.
: 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.
:Rings and Glue ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10301: Rings and Glue 解題者:施博修 解題日期: 2011 年 5 月 18 日 題意:小約翰有了個大麻煩,他不小心將 rings.
幼兒行為觀察與記錄 第八章 事件取樣法.
第 1 章 PC 的基本構造. 本章提要 PC 系統簡介 80x86 系列 CPU 及其暫存器群 記憶體: Memory 80x86 的分節式記憶體管理 80x86 的 I/O 結構 學習組合語言的基本工具.
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
Activity Networks AOV 網路 AOE 網路. AOV 網路 (Activity on Vertx Networks)  為了表示一件工作中,各子工程間的先後 關係,我們可以利用有向圖中的有向邊代 表事情進行的順序,位於一條有向邊終點 的事件必須要等待起點的事情完成後,才 可以進行。
Presentation transcript:

Course 7 貪婪法則 Greedy Approach

▓ Outlines 本章重點 Concepts of Greedy Approach Dynamic Programming v.s. Greedy Approach Minimum Spanning Trees The Greedy Approach versus Dynamic Programming: The Knapsack Problem

▓ Concepts of Greedy Approach Greedy approach grabs data items in sequence, each time taking the one that is deemed "best" according to some criterion, without regard for the choices it has made before or will in the future. Like dynamic programming, greedy algorithms are often used to solve optimization problems. However, the greedy approach is more straightforward. In dynamic programming, a recursive property is used to divide an instance into smaller instances. In the greedy approach, there is no division into smaller instances. A greedy algorithm arrives at a solution by making a sequence of choices, each of which simply looks the best at the moment.

▓ Dynamic Programming v.s. Greedy Approach 對於具有限制的最佳化問題,可以採用 “貪婪法則” 或 “動態規劃” 來設計演算法則。 Greedy Approach: 是一種階段性 (Stage) 的方法 具有一選擇程序 (Selection Procedure),自某起始點(值) 開始,在每一個階段逐一檢查每一個輸入是否適合加入答案中,重複經過多個階段後,即可順利獲得最佳解 一個選擇程序正確與否,會影響貪婪法則所設計出之演算法在執行過後的答案是否為最佳答案。 較為簡單 (若遇最佳化問題,先思考可否用Greedy Approach解,若不行再考慮用Dynamic Programming) 如果所要處理的最佳化問題無法找到一個選擇程序,則需要考慮所有的可能情況,就是屬於Dynamic Programming

對於具有限制條件的最佳化問題的答案而言: Dynamic Programming 先把所有的情況都看過一遍,才去挑出最佳的結果 考慮問題所有可能的情況,將最佳化問題的目標函數表示成一個遞迴關係式,結合Table的使用以找出最佳解 所謂具有限制條件的最佳化問題,是指可以將這一個問題表示成為具有一個目標函數 (Objective Function)與一些限制函數 (Constraint Function)的式子。 對於具有限制條件的最佳化問題的答案而言: 如果符合限制條件的所有答案,一般通稱為可行解 (Feasible Solution) 但是在這一群可行解中,如果能夠讓目標函數最佳化,則這一個可行解就稱為最佳解 (Optimal Solution)

[找零錢問題]: 售貨員在找零錢問題中,不但要找對錢,而且還要找給顧客最少的銅板。 利用Greedy Approach如下: 選擇程序 (selection procedure): 售貨員開始找尋收銀機中最大幣值的硬幣,且此時在他腦中用來選擇的準則是究竟哪一枚硬幣的幣值是目前最佳的選擇 (局部最佳解) 可行性檢查 (feasibility check): 售貨員必須判斷他剛剛選擇出那一枚硬幣的幣值加上 “目前顧客方已經收到的幣值總數” 是否超過 “應找給顧客的最後總數”。 解答檢查 (solution check):售貨員必須檢查目前 “已找給顧客方的零錢總數” 是否等於 “應找給顧客的最後總數”。 如果兩者不相等,則售貨員必須繼續利用他的選擇硬幣機制拿出硬幣,並重複上述的過程直到 “已找給顧客方的零錢總數” 等於 “應找給顧客的最後總數”; 或是收銀機裡的硬幣全部用盡為止。

Each iteration consists of the following components: A greedy algorithm starts with an empty set and adds items to the set in sequence until the set represents a solution to an instance of a problem. Each iteration consists of the following components: A selection procedure: Chooses the next item to add to the set. The selection is performed according to a greedy criterion that satisfies some locally optimal consideration at the time. A feasibility check: Determines if the new set is feasible by checking whether it is possible to complete this set in such a way as to give a solution to the instance. A solution check: Determines whether the new set constitutes a solution to the instance.

▓ Minimum Spanning Trees (最小成本擴張樹) Def: G = <V, E>為一Connected無向圖,令F為追蹤Graph時所經過的邊集合,B為未經過的邊集合,則S = (V, F)為G的一個Spanning Tree,且S滿足: E = F+B 自B中任取一邊加入S中,必形成Cycle 在S中,任何頂點對之間必存在一唯一Simple path。 Ex: A B C D A B C D A B C D

[Note]: S中的V等於G中的V 若G is not connected,則G無Spanning Tree |F| = n-1 同一G中的任二個不同之Spanning Tree不一定有交集的邊存在 Ex: A C D E B A C D E B A C D E B

Minimal Spanning Tree (最小成本擴張樹) Def: 給予一個Connected 的無向圖 G=(V, E),且邊上具有成本 (Cost)或加權值 (Weight),則在G 的所有Spanning Tree中,具有最小的邊成本 (加權) 總和者稱之。 應用: 電路佈局的最小成本 連接n 個城市之交通連線之最少架設成本 旅遊n個城市之最少花費 (不回原點) Algorithm: Kruskal’s Algorithm Prim’s Algorithm

Kruskal’s Algorithm Kruskal’s Algorithm 解題要件: Steps: 選擇程序:由擴張樹的所有邊中,挑選出具最小值者。 限制條件:不允許有迴路 Steps: 建構一個空的邊集合F 自原無向圖G = (V, E)的邊集合E中,挑選出最小成本的邊,並將之從邊集合E中刪除 (其中,頂點V的個數 |V| = n) 若該邊加入Spanning Tree中未形成Cycle,則加入F中;否則放棄 Repeat ~直到下列任一條件成立為止: (n-1)個邊已挑出 //n是頂點的個數 無邊可挑 Check若 |F| < n-1,則無Spanning Tree

試利用Kruskal’s Algo.求下圖的Minimum Spanning Tree

Sol: 根據權重值來排列邊線 (V1, V2): 1 (V3, V5): 2 (V1, V3): 3 (V2, V3): 4 該數值指的是此邊線的順序,不是權重!! Set F Min. Cost = 1+2+3+4 = 10

結合上面兩個工作的時間複雜度,此演算法總共花 O(n log n) + O(n) 執行工作 分析: 先將各邊依權重由小到大排序 利用 Quick Sort,當 |E| = n時  O(n log n) While迴圈 當 |E| = n時 此迴圈共花費O(n)的時間執行: 挑選最小權重的邊  O(1) 判斷有無Cycle  O(1) 結合上面兩個工作的時間複雜度,此演算法總共花 O(n log n) + O(n) 執行工作  Time complexity = O(n log n)

Prim’s Algorithm Prims’s Algorithm 解題要件: Steps: 選擇程序:由擴張樹的某一頂點與其它頂點的所有邊中,挑選出具最小值者。 限制條件:不允許有迴路 Steps: 建構一個空的邊集合F 設定兩個頂點集合及其初始值: Y = {1} V-Y 挑選出具最小成本的邊 (u, w),其中 u  Y,w  V-Y (u, w)自E中刪除,加入Spanning Tree T中,同時從V-Y集合中刪除w,並將w加入集合Y中 Repeat ~直到下列任一條件成立為止: Y = V 無邊可挑 若 |F| < n-1,則無Spanning Tree

試利用Prim’s Algo.求下圖的Minimum Spanning Tree

Sol: Y V-Y {1} {2, 3, 4, 5} {1, 2} {3, 4, 5} {1, 2, 3} {4, 5} {1, 2, 3, 5} {4} {1, 2, 3, 4, 5} {} Set F ∵Y = V, ∴ Stop

Time Complexity: O(n2)

Summary 這兩個演算法皆屬於 “Greedy” 策略 這兩個演算法以Kruskal’s algo. 較為快速 (∵ n log n) 連通的無向圖G,其min. spanning tree不一定唯一 ∵ 可能會有 2 個或 2 個以上的邊具有相同的cost 若一連通無向圖G,其各邊cost皆不相同,則會具有唯一的min. spanning tree 在min. spanning tree中,各頂點之間距離並非是shortest path Ex: 之前兩個演算法所用的例子,其中頂點對 (V2, V4) 的最短距離應為6,但所導出的兩個MST,於該頂點對的距離皆大於6!! 所有成本最小,並非其中一邊最小