Course 6 動態規劃 Dynamic Programming

Slides:



Advertisements
Similar presentations
Algorithms Chapter 15 Dynamic Programming - Rod
Advertisements

1 生物計算期末作業 暨南大學資訊工程系 2003/05/13. 2 compare f1 f2  只比較兩個檔案 f1 與 f2 ,比完後將結果輸出。 compare directory  以兩兩比對的方式,比對一個目錄下所有檔案的相 似程度。  將相似度很高的檔案做成報表輸出,報表中至少要.
Divide-and-Conquer. 什麼是 divide-and-conquer ? Divide 就是把問題分割 Conquer 則是把答案結合起來.
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
布林代數的應用--- 全及項(最小項)和全或項(最大項)展開式
第七章 抽樣與抽樣分配 蒐集統計資料最常見的方式是抽查。這 牽涉到兩個問題: 抽出的樣本是否具有代表性?是否能反應出母體的特徵?
: 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.
3Com Switch 4500 切VLAN教學.
指導教授:陳淑媛 學生:李宗叡 李卿輔.  利用下列三種方法 (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 個學生,每個學生都有自己的衣物櫃.
: ShellSort ★★☆☆☆ 題組: Problem D 題號: 10152: ShellSort 解題者:林一帆 解題日期: 2006 年 4 月 10 日 題意:烏龜王國的烏龜總是一隻一隻疊在一起。唯一改變烏龜位置 的方法為:一隻烏龜爬出他原來的位置,然後往上爬到最上方。給 你一堆烏龜原來排列的順序,以及我們想要的烏龜的排列順序,你.
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 觀察變數路徑分析=路徑分析 觀察變數路徑分析.
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
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 第四章 多變數函數的微分學 § 4.1 偏導數定義 定義 極限值 ■. 2 定理 極限值的基本定理 (1) 極限值的唯一性 : 若 存在,則 其值必為唯一。 (2) 若 且 ( 與 為常數 ) , 則 且 為常數且.
Chapter 13 塑模靜態觀點:物件圖 Static View : Object Diagram.
: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.
3-3 使用幾何繪圖工具 Flash 的幾何繪圖工具包括線段工具 (Line Tool) 、橢圓形工具 (Oval Tool) 、多邊星形 工具 (Rectangle Tool) 3 種。這些工具畫出 來的幾何圖形包括了筆畫線條和填色區域, 將它們適當地組合加上有技巧地變形與配 色, 不但比鉛筆工具簡單,
: Tight words ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: : Tight Words 解題者:鐘緯駿、林一帆 解題日期: 2006 年 03 月 14 日 題意: 給定數字 k 與 n (0 ≦ k.
: Happy Number ★ ? 題組: Problem Set Archive with Online Judge 題號: 10591: Happy Number 解題者:陳瀅文 解題日期: 2006 年 6 月 6 日 題意:判斷一個正整數 N 是否為 Happy Number.
: Fast and Easy Data Compressor ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10043: Fast and Easy Data Compressor 解題者:葉貫中 解題日期: 2007 年 3.
Chapter 2 Getting Started Insertion Sort: 能有效率地排序小數字的演算法 範例 :
: 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 日 題意:在這個題目中,我們要定義.
:Nuts for nuts..Nuts for nuts.. ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 10944:Nuts for nuts.. 解題者:楊家豪 解題日期: 2006 年 2 月 題意: 給定兩個正整數 x,y.
資料結構實習-一 參數傳遞.
公用品.  該物品的數量不會因一人的消費而受到 影響,它可以同時地被多人享用。 角色分配  兩位同學當我的助手,負責:  其餘各人是投資者,每人擁有 $100 , 可以投資在兩種資產上。  記錄  計算  協助同學討論.
: Problem G e-Coins ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10306: Problem G e-Coins 解題者:陳瀅文 解題日期: 2006 年 5 月 2 日 題意:給定一個正整數 S (0
: 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 種。 決定每一個可能的實驗結果發生機率。 – 實驗後所有的實驗結果整理得到。
Teacher : Ing-Jer Huang TA : Chien-Hung Chen 2015/6/25 Course Embedded Systems : Principles and Implementations Weekly Preview Question CH 2.4~CH 2.6 &
函式 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.
-Antidifferentiation- Chapter 6 朝陽科技大學 資訊管理系 李麗華 教授.
845: Gas Station Numbers ★★★ 題組: Problem Set Archive with Online Judge 題號: 845: Gas Station Numbers. 解題者:張維珊 解題日期: 2006 年 2 月 題意: 將輸入的數字,經過重新排列組合或旋轉數字,得到比原先的數字大,
Chapter 2. Recurrence Relations (遞迴關係)
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 日.
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 日 題意: 題目會給你一個敵營區內總共的建築物數,以及建築物 之間可以互通的路有哪些,並給你起點的建築物和終點.
Course 7 貪婪法則 Greedy Approach
: 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.
幼兒行為觀察與記錄 第八章 事件取樣法.
: 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:

Course 6 動態規劃 Dynamic Programming

▓ Outlines 本章重點 Divide-and-Conquer v.s. Dynamic Programming Dynamic Programming v.s. Greedy Approach Floyd's Algorithm for Shortest Paths Chained Matrix Multiplication Dynamic Programming and Optimization Problems

▓ Divide-and-Conquer v.s. Dynamic Programming 由前一單元得知,Divided-and-Conquer即為遞迴解法。 以費氏數 (Fibonacci Number) 說明: 終止條件 遞迴關係

Recursive Fibonacci Algorithm inputs: num identified the ordinal of the Fibonacci number outputs: returns the nth Fibonacci number void Fib(int num) { if (num is 0 OR num is 1) return num; else return (Fib(num-1) + Fib(num-2)); }

Based on recursive function, 求取Fib (8)的過程如下: Top-Down求算方式 子問題重覆 (Overlapping Subproblem) 是Divided-and-Conquer主要的問題所在

n 1 2 3 4 5 6 7 8 Fn 13 21 以人的方式求算: 求算F8和F7時,F6會被用到2次,但我們用表格記錄已算過的部份!! Bottom-Up求算方式 動態規劃 (Dynamic Programming)是一種表格式的演算法設計原則。 其精神是將一個較大的問題定義為較小的子問題組合,先處理較小的問題,並將其用表格儲存起來,再進一步地以較小問題的解逐步建構出較大問題的解。 Programming: 用表格存起來,有 “以空間換取時間”之涵意 屬於作業研究 (OR)的技巧 n 1 2 3 4 5 6 7 8 Fn 13 21

Divide-and-Conquer 和 Dynamic Programming都是將問題切割再採用遞迴方式處理子問題,但是: Divide-and-Conquer v.s. Dynamic Programming Divide-and-Conquer Dynamic Programming 額外記憶體空間 不需額外記憶體空間 需要額外記憶體空間 解題方式 Top-Down Bottom-Up 適用時機 適用non-overlap子問題 適用overlap子問題

▓ Dynamic Programming v.s. Greedy Approach 對於具有限制的最佳化問題,可以採用 “貪婪法則” 或 “動態規劃” 來設計演算法則。 Greedy Approach: 是一種階段性 (Stage) 的方法 具有一選擇程序 (Selection Procedure),自某起始點(值) 開始,在每一個階段逐一檢查每一個輸入是否適合加入答案中,重複經過多個階段後,即可順利獲得最佳解 較為簡單 (若遇最佳化問題,先思考可否用Greedy Approach解,若不行再考慮用Dynamic Programming) 如果所要處理的最佳化問題無法找到一個選擇程序,則需要考慮所有的可能情況,就是屬於Dynamic Programming Dynamic Programming 先把所有的情況都看過一遍,才去挑出最佳的結果 考慮問題所有可能的情況,將最佳化問題的目標函數表示成一個遞迴關係式,結合Table的使用以找出最佳解

Ex 1. 有一Graph如下,每一個邊都有一權重值,試找出 “具最小權重值總合且不包含Cycle” 的 Graph。 Sol: (選擇程序) 從最小的邊開始逐一選擇,挑選出來的邊不能構成Cycle,直到所有的邊都被選完為止。 A B C D 2 1 4 3 A B C D 1 3 2 A B C D 2 1 3 或

Ex 2. 一有向加權圖Graph如下,該圖可分成2個部份,請找出由第一個部份的出發頂點到最後部份的目的地頂點的最短距離路。 Sol: 找不到一個選擇程序,可自某起始點(值) 開始逐一檢查每一個輸入是否適合加入答案中。 A B C D 2 4 3 A B C D 2 4 3

▓ Floyd's Algorithm for Shortest Paths 給定一個有向加權圖形 (Directed Weighted Graph),G=(V, E),找出任意兩個頂點 (v1, v2  V) 之間的最短路徑 All-pair Shortest Path問題 In Figure 3.2, there are three simple paths from v1 to v3—namely [v1, v2, v3], [v1, v4, v3] and [v1, v2, v4, v3] . Because [v1, v4, v3] is the shortest path from v1 to v3.

The Shortest Paths problem is an optimization problem. There can be more than one candidate solution to an instance of an optimization problem. Each candidate solution has a value associated with it, and a solution to the instance is any candidate solution that has an optimal value. Depending on the problem, the optimal value is either the minimum or the maximum. In the case of the Shortest Paths problem, a candidate solution is a path from one vertex to another, the value is the length of the path, and the optimal value is the minimum of these lengths.

佛洛依德最短路徑演算法 (Floyd‘s Algorithm for Shortest Paths) : Floyd-Warshall Algorithm 假設G=(V, E),|V| = n Dk矩陣: 為一 nn的矩陣,其中Dk[i, j]表示自 vi 至 vj (vi  vj )的最短路徑長,且途中經過的頂點編號均 ≤ k (其中k≥0) 範例: v1 v2 v3 6 4 11 3 2 D1[2, 1] = 6 2 → 1 (合法) 2 → 1 → 2 → 1 (不合法) 2 → 3 → 1 (不合法) D2[2, 1] = 6 2 → 1 (合法) 2 → 1 → 2 → 1 (合法) 2 → 3 → 1 (不合法) D3[2, 1] = 5 2 → 1 (合法) 2 → 1 → 2 → 1 (合法) 2 → 3 → 1 (合法) ∵節點個數為 3 ∴ D3[i, j]可得到總體最短路徑

當k = 0時, 矩陣D0[i, j]表示為Adjacency Matrix (相鄰矩陣; W)。 自 vi 至 vj 途中不會經過其它頂點 Floyd‘s Algorithm求解過程: 找出相鄰矩陣 W 逐步求出D1, D2, …, Dn矩陣 Dn矩陣即為結果 v1 v2 v3 6 4 11 3 2

求解右圖的All-pair Shortest Path Sol: v1 v2 v3 6 4 11 3 2 求解右圖的All-pair Shortest Path Sol: 找出相鄰矩陣 W 逐步求出D1, D2, D3矩陣 Step 1: 由 W 矩陣求出 D1 矩陣 4 11 6 2 3 7

Step 2: 由 D1 矩陣求出 D2 矩陣 Step 3: 由 D2 矩陣求出 D3 矩陣 4 6 6 2 3 7 4 6 5 2 3 7

Floyd‘s Algorithm觀念圖解: 求矩陣Dk[i, j],是由矩陣Dk-1[i, j]而來 vi vj vk Dk-1[i, j] Dk-1[i, k] Dk-1[k, j]

//k為 Dk 的k值 Time Complexity: O(n3)

Floyd‘s Algorithm的假設條件: 圖形中不得有負長度的Cycle存在 例 1: 1 →2的最短路徑為 - 例 2: 1 →2的最短路徑為 3 1 3 2 4 -4 1 3 2 4 -1

▓ Chained Matrix Multiplication Suppose we want to multiply a 2 × 3 matrix times a 3 × 4 matrix as follows: The resultant matrix is a 2 × 4 matrix. If we use the standard method of multiplying matrices, it takes three elementary multiplications to compute each item in the product. Because there are 2 × 4 = 8 entries in the product, the total number of elementary multiplication is In general, to multiply an i × j matrix times a j × k matrix using the standard method, it is necessary to do

Note: n個matrix相乘有 種可能的配對組合 (括號方式) Ex: Consider the multiplication of the following four matrices: There are five different orders in which we can multiply four matrices, each possibly resulting in a different number of elementary multiplications: The third order is the optimal order for multiplying the four matrices.

((Ai Ai+1 … Ak )(Ak+1 Ak+2 …, Aj)) Chained Matrix Multiplication: Def: 給一Matrix Chain: A1, A2, …, An,求此Chain所需之純量積乘法次數為最少之括號方式 (即: 最佳的矩陣乘法組合方式)。 若Ai, Ai+1, …, Aj 在某組合方式所需的純量積乘法次數為最小 (最佳),則必存在一個k,使得Ai, Ai+1, …, Ak 和Ak+1, Ak+2, …, Aj皆為最佳。 ((Ai Ai+1 … Ak )(Ak+1 Ak+2 …, Aj)) Matrix Chain的遞迴式 最佳組合 最佳子組合 最佳子組合

Chained Matrix Multiplication 問題的演算法需有兩個表格和一個主要變數: M[i, j] 記錄多個矩陣相乘 (e.g., Ai  …  Aj)時,所需的 “最少” 乘法次數 P[i, j] 記錄多個矩陣相乘 (e.g., Ai  …  Aj) 所需最少乘法次數之 “最佳乘法順序” 是由哪一個矩陣開始分割 diagonal 主要指出在Matrix Chain中,每一次有多少個矩陣要相乘 diagonal = 1  只有1個矩陣,∴不會執行乘法動作 diagonal = 2  每一次有2個矩陣要相乘 diagonal = 3  每一次有3個矩陣要相乘 diagonal = 4  每一次有4個矩陣要相乘 …

The optimal order for multiplying six matrices must have one of these factorizations: 第k個分解型式所需的乘法總數,為前後兩部份 (一為A1, A2, …, Ak 和Ak+1, …, A6) 各自所需乘法數目的最小值相加,再加上相乘這前後兩部份矩陣所需的乘法數目。

Example: A133, A237, A372, A429, A594, 求此五矩陣的最小乘法次數。 Sol: Matrix Chain的遞迴式 Example: A133, A237, A372, A429, A594, 求此五矩陣的最小乘法次數。 Sol: 建立兩陣列 M[1…5, 1…5]及P[1…4, 2…5] M 1 2 3 4 5 P 2 3 4 5 1

Case  (When diagonal = 1) 陣列M的中間對角線為0,陣列P則不填任何數值 Case  (When diagonal > 1) diagonal = 2,有2個矩陣相乘 當 i = 1及 j = 2,為A1及A2矩陣相乘,此時: M[1, 2] = M[1,1]+M[2,2]+337 = 63, 其中 A1 及A2 的分割點 k 如下: A1A2 M 1 2 3 4 5 P 2 3 4 5 1 diagonal = 1 M 1 2 3 4 5 63 42 126 72 P 2 3 4 5 1 diagonal = 2 分割點k = 1

Case  (When diagonal > 1) 當 i = 2及 j = i+diagnal-1 = 2+3-1=4,為A2至A4間的所有矩陣相乘,此時: M 1 2 3 4 5 63 60 42 96 126 128 72 P 2 3 4 5 1 diagonal = 3

Case  (When diagonal > 1) 當 i = 1及 j = 4,為A1至A4間的所有矩陣相乘,此時: M 1 2 3 4 5 63 60 114 42 96 138 126 128 72 P 2 3 4 5 1 diagonal = 4

Case  (When diagonal > 1) 當 i = 1及 j = 5,為A1至A5間所有矩陣相乘,此時: M 1 2 3 4 5 63 60 114 156 42 96 138 126 128 72 P 2 3 4 5 1 diagonal = 5

[Note]此演算法的概念如下: A1, A2, A3, A4, A5 A1 A2, A2A3, A3A4, A4A5 diagonal = 1 diagonal = 2 diagonal = 3 diagonal = 4 diagonal = 5

Case  (When diagonal > 1)

▓ Dynamic Programming and Optimization Problems Dynamic Programming 和 Greedy Approach看似可以處理所有的最佳化問題,然而它們所能處理的最佳化問題需滿足下列原則 Definition: The principle of optimality (最佳化原則) is said to apply in a problem if an optimal solution to an instance of a problem optimal solutions to all substances. (當一個問題存在著最佳解,則表示其所有子問題也必存在著最佳解) In the case of the Shortest Paths problem we showed that if vk is a vertex on an optimal path form vi to vj , then the subpaths from vi to vk and from vk to vj must also be optimal.

然而,並不是所有求最佳化的問題都合乎最佳化原則,此時就只能用其它的方法求解了。 每一個輸入的計算都必須是根據其餘輸入的最佳結果再進一步計算,如此才能夠得到最佳解,同時可以將無法獲得最佳解的情況去除,以避免需要將每一種可能情況都加以考慮。 對於n個輸入的最佳化問題 (X1, X2, …, Xn): 有些被歸類為 “部份集合” (Subset) 問題,會有2n種可能的情況 有些被歸類為 “排列組合” (Permutation) 問題,會有n!種可能的情況 因此皆屬指數複雜度的問題,若可採用最佳化原則通常可以將這一些問題的複雜度由指數複雜度降為多項式複雜度。 然而,並不是所有求最佳化的問題都合乎最佳化原則,此時就只能用其它的方法求解了。

補 充

 The Pairwise Sequence Alignment Compare two sequence Some reasons to perform the sequence alignment operations Measure the similarity of two sequences. A DNA sequence X and a database containing a set of DNA sequences. Data compression.

String v.s. Sequence String Sequence Example: a segment of consecutive characters. usually called sequence in Biology. Sequence need not be consecutive. Example: S = “a t g a t g c a a t” Substrings of S: “g a t g c”, “t g c a a t”. Subsequences of S: “a g g t”, “a a a a”. In Biology, String → Sequence.

Score=0 Score=9 Better A C T G S1 S2 A C T G --- S1 S2 +2 -1 2 +2 -1 2 We have two sequences S1 and S2: A scoring rule to measure the goodness of an alignment: ai=bj, Score=2 ai or bj align with a blank, Score=-1 ai≠bj, Score=-1 Better A C T G S1 S2 A C T G --- S1 S2 +2 -1 2 Score=9 +2 -1 2 Score=0

Sequence A: GAACTG Sequence B: GAGCTG An alignment of A and B: A C T G Match Mismatch A C T G --- S1 S2 Insertion gap Deletion gap

S1 G A G C T G G A A C T G A C T G --- S1 S2 S2

b c a d S1 e S2 a b c d 1 2 3 4 5 6 i ai e a c b 1 2 3 4 j bj -1 -2 -3 Find an alignment which has the highest score. b c a d S1 e S2 a b c d 1 2 3 4 5 6 i ai e a c b 1 2 3 4 j bj -1 -2 -3 -4 -5 -6 A(i,j)=the score of optimal alignment A(0,0)=0 A(i,0)= -i A(0,j)= -j If ai=bj, then A(i,j)= A(i-1,j-1) +2 Else A(i,j)=Max(A(i-1,j) –1, A(i,j-1) –1, A(i-1,j-1) –1 ) -1 -2 -3 -4 -1 -2 -3 -4 -5 -6 1 2

b c a d S1 e S2 -1 -2 -3 -4 -5 -6 1 2 a b c d 3 4 5 6 e i j b c a d e - -1 1 -1 1 -1 b c a d e - 1 b c a d e - 2 1 -1 Tracing back the table