• 沒有找到結果。

啟發式演算法

在文檔中 中 華 大 學 (頁 37-43)

第三章 FISCHER 及GINZINGER 演算法

3.2 啟發式演算法

Fischer 及 Ginzinger 演算法中根據斷點圖之紅色線與藍色線分別組成四種型 態,圖 3.2 中 Type 1 初始字元可能為獨立字元或左邊終端點之相連區塊,反轉藍 色線並連接到目標字元;Type 2 初始字元為獨立字元或右邊終端點之相連區塊,

反轉藍色線並連接到目標字元;Type 3 初始字元為獨立字元或右邊終端點之相連 區塊,反轉藍色線之前的字元;最後,Type 4 初始字元為獨立字元或左邊終端點 之相連區塊,並不反轉,若排列π中,初始型態為 Type 2,終點型態為 Type 1,

中間區段皆為 Type 4,則需要再利用字首反轉 2b(π)-2 個動作。

圖 3.2 : 斷點與目標線之四種情況

根據斷點圖所示,即利用字首反轉最多只要 2 次便可以消去一個斷點。給定 一段排列π=(1, 2,…, n)和連接斷點圖,以下三種情況(Condition),在排列 中最多二個字首反轉動作ψ(r)和ψ(s)可以消去一個斷點:

Condition 1. Type 1 中斷點圖包含一藍色線(πi, πj),且 i=1。

Condition 2. Type 2 中斷點圖包含一藍色線(πi, πj),且 i≠0。

Condition 3. Type 3 中斷點圖包含一藍色線(πi, πj)。

根據以上三種情況,藍色線(πi, πj)為πj=πi± 1,即πi必須連續到πj, 其中πi 和πj 之間增加一個相鄰點並消去一個斷點數,而不會增加額外的斷點 數。圖 3.3 中舉例來表示三種條件(Case):

Case 1. 圖 3.3-(a)即為 Type 1 也可以被稱有效藍色線段(Good blue edge), 利用字首反轉,在位置ψ(j-1)反轉,π1和πj 之間增加一個相 鄰點,且不會增加額外的斷點數。

Case 2. 圖 3.3-(b)(c)即為 Type 2 也可以被稱有效藍色線段(Good blue edge),利用字首反轉,在位置ψ(j)和ψ(j-i)反轉,第一次 字首反轉ψ(j)後不會增加相鄰點也不會消去斷點數,更不會額 外增加斷點數,但是形成 Type 1。而第二次字首反轉ψ(j-i)後,

增加一個相鄰點和消去一個斷點數。

Case 3. 圖 3.3-(d) (e) (f)即為 Type 3 也可以被稱有效藍色線段(Good blue edge),利用字首反轉,在位置ψ(i)和ψ(j-1)反轉,第一次 字首反轉ψ(i)後不會增加相鄰點也不會消去斷點數,更不會額 外增加斷點數,但是形成 Type 1。而第二次字首反轉ψ(j-1)後,

增加一個相鄰點和消去一個斷點數。

根據 Fischer 及 Ginzinger 演算法我們利用字首反轉排序分別說明前三種情 況:

‹ 首先,斷點和目標線構成斷點圖,圖 3.3-(a)為 Type 1,在ψ(3)的位置利 用字首反轉,藍色線從π1=3 到π4=2,將 3 連接到 2,增加一個相鄰點和 消去一個斷點數,即為 Condition 1,。

‹ 圖 3.3-(b)為 Type 2,在ψ(7)的位置利用字首反轉,藍色線從π2=3 到π7

=2,先將 2 反轉至初始位置之後,不會增加相鄰點也不會消去斷點數,更

不會額外增加斷點數,但是形成 Type 1,此情況即為 Condition 2。接著再將 2 連接到 3,增加一個相鄰點和消去一個斷點數,即為 Condition 1。

‹ 圖 3.3-(c)為 Type 3,在ψ(3)的位置利用字首反轉,藍色線從π3=3 到π6

=2,先將 3 反轉至初始位置之後,不會增加相鄰點也不會消去斷點數,更 不會額外增加斷點數,但是形成 Type 1,此情況即為 Condition 3。接著再將 3 連接到 2,增加一個相鄰點和消去一個斷點數,即為 Condition 1。當演算 法中三種情況皆無法滿足時,要轉成ι,則需要考慮第四種情況。

圖 3.3 : Fischer 及 Ginzinger 演算法之三種情況範例

當排列π≠ι,且演算法中三種情況皆無法滿足,此時斷點圖為獨特循環結 構,其斷點圖第一條藍色線是由 Type 2 所構成,最後一條藍色線是由 Type 1 所 構成,而中間區段至少要二個 Type 4 以上所構成,且不為其它 Type。

下列為獨特循環結構所構成的排列π≠ι,由斷點數=2 以上(b(π)≧2)

和遞減片段(Descending strips)長度=2 以上所組成,其中斷點與斷點之間的排 列由遞減片段 所構成,而遞減片段個數和斷點個數相同。

l

‹

π = ( p

1

,..., 1 , p

2

,..., p

1

+ 1 ,..., n ,..., p

b

( )

π 1

+ 1 )

圖 3.4 中,以藍色目標線和紅色斷點線來表示獨特循環結構所形成之斷點 圖,(πi , πj)為第一條藍色線,和紅色線形成 Type 2;(πn-1 , πn+1)為最後 一條藍色線,和紅色線形成 Type 1;而中間區段藍色線和紅色線全部皆構成 Type 4。

圖 3.4 : Fischer 及 Ginzinger 演算法之獨特循環結構

根據 Fischer 及 Ginzinger 演算法中,給定一段排列π。當排列形成獨特循環 結構時,其演算法之三種情況皆無法滿足,其斷點圖第一條藍色線和紅色線是由 Type 2 所構成,最後一條藍色線和紅色線是由 Type 1 所構成,而中間區段至少 要二個 Type 4 以上所構成,且不為其它 Type。圖 3.5 為獨特循環結構,利用字 首反轉排序將排列π反轉至ι。

圖 3.5 : 獨特循環結構之字首反轉排序

在文檔中 中 華 大 學 (頁 37-43)

相關文件