• 沒有找到結果。

以家族競爭基因演算法解資料庫索引選擇問題

N/A
N/A
Protected

Academic year: 2021

Share "以家族競爭基因演算法解資料庫索引選擇問題"

Copied!
6
0
0

加載中.... (立即查看全文)

全文

(1)

以家族競爭基因演算法解資料庫索引選擇問題

唐偉閔 高國峰 廖宜恩

國立中興大學資訊科學學系

E-mail: w9156010@cs.nchu.edu.tw,kfkao@mail.hit.edu.tw, ieliao@nchu.edu.tw

摘要

摘要

摘要

摘要

資料庫索引選擇問題(Index Selection Problem,ISP)是一個 NP-hard 的問題。而基因演 算法(Genetic Algorithm ,GA)則是解決 NP-hard 問題的一個有效的方式。在以往的論文中,針對 ISP 的 GA 研究,多採取競爭式選擇及均勻交配的 標準演化方法。本研究進一步採取了家族競爭演算 法(Family Competition Evolutionary Algorithm, FCEA)。FCEA 在傳統的基因變異過程中,加入族群 競爭的觀念,使問題在求解的過程中,能夠更具有 多樣性及變化性,進而提高找到可行解的機率。本 研究並建立了多種不同的案例資料及不同索引個 數的測試樣本。從多個測試結果中,確實顯示本研 究提出的方法,較諸傳統基因演算法,具有較好的 效能。 關鍵 關鍵關鍵 關鍵詞詞詞:基因演算法、資料庫索引選擇、案例資料、詞 家族競爭演算法。

1.

1.

1.

1.

簡介

簡介

簡介

簡介

在資料庫系統中,索引是一個重要的輔助工 具,索引建立與否會關係到資料庫效能。如何在一 組大量查詢中,找到適合的索引組態更是一個很重 要的課題。這個尋找最佳索引組態的問題,被稱為 索引選擇問題(Index Selection Problem,ISP)。 在抽象的數學模式上,ISP 與著名的工廠選址問題 (Uncapacitanted Facility Location Problem, UFLP)[4,11]是類似的。UFLP 和 ISP 都已被證明 是 NP-hard 的問題[8]。

對於複雜的 NP-hard 問題,我們經常使用基因 演算法來求近似解,以避免尋找最佳解所需耗費的 巨大計算成本。在以往的研究中,Jozef Kratica、 Ivana Ljubic 和 Dusan Tosic 也提出用基因演算 法來解索引選擇問題的做法[7],經由選擇、交配、 突變等基因演化步驟找到最佳近似解。在 Kratica 的基因演算法中,選擇方法是採用競爭式選擇,交 配方式是用均勻交配,突變是用單一位元發生突 變。我們認為這樣的做法較為單調,很容易陷入局 部最佳解。因此,在本研究中,我們採用家族競爭 演算法(Family Competition Evolutionary Algorithm, FCEA)[6],來改善演化的流程。在本 論文的實驗結果中,我們證實,針對 ISP 問題,家 族競爭演算法的確比 Kratica 基因演算法擁有較 佳的效能。採用本論文的做法,不但可以減少 Kratica 演算法需要參數設定的困擾,更可以以較 少的時間找到較好的近似解。 除了效能的改善,對於模擬資料的建立,我們 也提出一些改進的做法。在 Kratica 研究所採用的 測試資料多是使用亂數產生,並不是很符合實際資 料庫的狀況。例如說一個讀取的查詢 Q1,單單使 用 index1 的獲利是 10,則當資料庫的查詢最佳化 程式(query optimizer),決定讓查詢 Q1 同時使 用 index1 及 index2 時,其獲利就不應該小於 10。 因為若其獲利小於 10,則對一個正常的查詢最佳 化程式而言,它會知道單單採用 index1 就會有更 好的效能。那麼它就應該要採用 index1 而不該同 時採用 index1 及 index2。像這些實際運作時的規 則,亂數產生的數據是無法符合要求的。本研究在 建立案例資料( Instances)時,同時做索引組態與 查詢語句的分析,並限制模擬資料產生的條件,這 會比 Kratica 的測試資料更接近實際資料庫的測 試案例資料。 本論文其它部分的內容如下。第二章相關研 究,將介紹索引選擇和基因演算法的基礎定義及過 去的研究成果。第三章介紹家族競爭基因演算法。 第四章為系統實作與實驗結果的分析。第五章將描 述我們的結論與未來研究方向。

2.

2.

2.

2. 相關研究

相關研究

相關研究

相關研究

索引主要的作用,是在資料庫系統中,額外建 立一個只包含資料指標及資料鍵值的檔案。使得系 統在查詢時,能更快找到資料。但是對更新(update, insert, delete)資料的查詢而言,不管是否使用 索引去找到資料,索引檔將被同步更新,以維護資 料的一致性。所以索引對一個同時包含讀與寫查詢 的工作負載(Workload)而言,其作用可能是正面 的,也可能是負面的。索引選擇問題可描述成:在 包括多個查詢的工作負載中,找出有那些該被建立 的索引,可以使得整個工作負載的執行效能達到最 好的狀態。 資料庫索引選擇問題已被証實為 NP-hard 問 題[8],且研究出很多方式來解決索引選擇問題。 A. Caprara ,M. Fischetti and D. Maio [2]用

(2)

heuristics based 和 Branch_and_bound 演算法來 解索引選擇問題,除了利用 divide and conquer 來準確解索引選擇問題外,並用索引和查詢在測試 案例資料的分布特性,求出近似解。雖比不上 divide and conquer 方式準確,確也大大縮短執 行時間。A. Caprara and J.J. Salazar Gonzalez [3]提出 branch-and-cut(BnC) 演算法來改善 branch-and-bound 演算法來解決 Uncapacitanted Facility Location Problem(UFLP)問題,Jozef Kratica, Ivana Ljubic and Dusan Tosic [7] 則 提出基因演算法來解決索引選擇問題,並和 BnC 較 比較,在大部分的測試案例資料,基因演算法有比 較好的效能。

2.1

2.1

2.1

2.1

基因演算法

基因演算法

基因演算法

基因演算法

基因演算算是應用達爾文物競天擇原則,利用 不斷選擇優良基因交配,加上突變和演化而產生最 強物種。基因演算法主要的目的是用自然生物系統 的進化過程,來解決各類問題的最佳解,藉由生物 每代進行演化,尋得適當問題的最佳解。 基因演算法採用隨機多點同時運做的方式(複 製交配突變),而非傳統的單點依序搜尋方 式,因此可以避免侷限在區域的最佳解上,而得到 問題的最佳解上。如圖 1 是基因演算法流程圖。 圖 1 基因演算法流程圖 基因演算法運作的幾個主要步驟為:編碼 (Coding)、初始化(Initialization)、複製 (reproduction)、交配(crossover)、突變 (mutation)。其重點概述如下:

 編碼編碼編碼編碼(coding)(coding)(coding)(coding)::::

定義一個對應的方式,讓每一組解,都分別對 應到一個唯一的字串。為了運算方便,該字串的編 碼多採用二進位編碼。一組字串,即為基因演算法 中的一組染色體。  初始化初始化初始化:初始化::: 染色體基因字串,在初始時,多由亂數隨機產 生的0或1所組成。染色體族群數量大小會因問題而 改變。初始族群太多會造成運算太慢,若初始族群 太少則會缺少多樣性,易造成局部最佳解。

 複製複製複製(複製(((reproductionreproductionreproductionreproduction))))::::

是依據每一物種的適應程度,來決定下一代中 應被淘汰或複製的一種運算過程。複製過程有兩種 形式:(a)輪盤式選擇(b)競爭式選擇。 輪盤式選擇是在每一代演化過程中,以字串應 函數大小以比例來決定機率。輪盤所佔的面積愈大 所選中的機率就愈大。競爭式選擇是在每一代選擇 二個以上字串適應函數最高放入交配池。競爭式有 很多不同的形式,Fine Grained Tournament Selection[9,10]是其中的一種演算法。

 交配交配交配 交配 (crossover)(crossover)(crossover)(crossover)::::

是依據交配率從父代族群中隨機地取兩個字 元串,交換彼此的基因位元,產生兩個新的下一 代。基本交配模式有三種(a)單點交配(one-point crossover) (b)兩點交配(two-point

crossover )(c)均勻交配(uniform crossover)。  突變突變突變:突變:::

突變的過程是隨機的選取一物種的字串,並隨 機選取突變點,並改變基因字串裡的位元資訊。例 如原本是 0 改成 1,原本是 1 改成 0。突變過程發 生機率可由突變機率所控制。

 終止條件終止條件終止條件(termination criterion)終止條件(termination criterion)(termination criterion)(termination criterion)::::

在演化過程中,不可能無窮盡演化下去,所以 會設終止條件.終止條件有三種: 1.依據適應函數的變化,決定是否停止 2.設定最大演化世代的次數,達到即停止 3.結合1和2的終止條件.

2.2

2.2

2.2

2.2 以基因演算法解索引選擇問題

以基因演算法解索引選擇問題

以基因演算法解索引選擇問題

以基因演算法解索引選擇問題

基因演算法的是用二進位編碼方式,把索引引 建立與否轉成二進位編碼方式,位元值1表示建立 索引,位元值0表示不建立,即可用基因演算法解 索引選擇問題。在Jozef Kratica, Ivana Ljubic and Dusan Tosic 的論文 [7]中,其基因演算法中 的選擇方法是用Fine Grained Tournament Selection (FGTS)[10],交配方式是用均勻交配 (uniform crossover)[11],突變是用單一位元發 生突變。圖2 是Kratica基因演算法示意圖,把母 體放入配交池中,經由交配、突變產生子代,再由 FGTS找出下一母體。圖3是FGTS示意圖,設 Ftour=5.6,則把子代分成40%和60%二大部分,40% 母體每個父代由40%子代亂數取5個子代取最好解 當下一次父代,另60%母體每個父代由60%子代亂數 取6個子代取最好解當下一次父代。

(3)

圖 2 Kratica 基因演算法示意圖 圖 3 是 FGTS 示意圖

3.

3.

3.

3.

家族競爭

家族競爭

家族競爭基因

家族競爭

基因

基因

基因演算法

演算法

演算法

演算法

本節是本論文的核心,我們將詳細描述 ISP 問 題正式的數學定義,並且說明其如何運用到家族競 爭演算法。

3.1

3.1

3.1

3.1 問題定義

問題定義

問題定義

問題定義

N =

{

1, 2 , ...,n

}

是索引集合,M=

{

1, 2,...,m

}

是查詢集合。每一個索引j可以建立或不建立,每 一個索引建立都會產生維護成本

f

j和增益值 (gain)。

n

個索引都可以建立或者不建立,形成了 n

p

=

2

種組態(configuration),我們用

{1, 2,..., }

P

=

p

來代表所有的組態。令組態

k

P

,

查詢

i

M

,索引

j

N

,則g 表示查詢ik

i

使用組 態

k

的增益值。xik是決策變數,其值為0或1,代 表查詢

i

是否使用組態

k

fj是建立第

j

個索引所 需的維護成本。 j y 也是決策變數,代表第

j

個索引 是否建立。則我們的目標函式為目為:

max(

ik ik j j

)

i M k P j N

g

x

f

y

∈ ∈ ∈

∑∑

(3-1) 該目標函式並受限於以下限制式:

1,

ik k P

x

i

M

(3-2)

,

,

,

ik j j

x

y

i M j

N k

P

(3-3)

{ }

,

0,1

,

,

ik j

x y

i M j N k P

(3-4) 在每一個可能解 S,

S

N

,S 需滿足 1, 0 , j i n d e x j S y o t h e r w i s e ∈  =   (3-5)

1,

0,

ik

query i uses configuration k

x

otherwise

=

(3-6) 公式(3-1)表示建立索引會增加資料庫效能, 但也會產生維護成本,把所有增益值總和減去建立 索引花費的維護成本即是索引的效能,求其最大值 即是我們要的結果。 公式(3-2)表示每一個查詢i最多能用一個組 態(configuration), j P 表示P包含j索引的組態 集。公式(3-3)表示查詢i使用的組態內之索引必須 存在。公式(3-4)表示 xi kyj的值只有0或1。 公式(3-5)表示若索引j屬於解集合S,則 j y =1,否 則

y

j=0。公式(3-6)表示查詢i使用組態k,則 i k x =1,否則xi k=0。

3.

3.

3.

3.2

22

2

家族競爭演算法

家族競爭演算法

家族競爭演算法

家族競爭演算法

家族競爭演算法的做法,是在每一父代和其它 父代交配突變,在同一個父代所產生的子孫中找出 最佳解,當成下一次的父代。因此每一個父代將產 生一個族群,族群之間在下一輪迴中又將彼此競 爭,藉此增加求解過程中的多樣性及變化性。以下 圖4,是家族競爭演算法的示意圖。 圖 4 是家族競爭演算法的示意圖 比較ISP家族競爭基因演算法和Kratica基因 演算法最大的不同,是要把每一個父代看以一個家 族,由此家族基因最好者和其它家族基因最好者交 配和突變產生下一代。產生的下一代歸此父代的子 孫,視為同一家族。同時在由子孫中,找出基因最 好者,當下一父代。除此之外,本論文在交配步驟, 採用均勻交配(uniform crossover),突變用位元

(4)

突變方式,選擇用家族競爭,決定產生多少子代的 參數L則採固定值。如圖5所示,為一個ISP家族競 爭基因演算法的流程圖。 圖 5 ISP家族競爭基因演算法流程圖 在本研究中的基因演算法,幾個設定較為特 殊的步驟,再額外說明如下所示。  適應函數: 每一個組態中所有查詢增益值的總合,就是適 應函數的回傳值。  交配: 在交配過成使用圴勻交配法[5],傳入一交配 遮罩參數PCRO,用此參數控制交配基因位元。  突變: 在突變收斂速度,由 p ms t a r tpmendNgen 是第幾代產生後代, p mg e n是一乖離(Bias)參數 值。當

N

gen值愈大時突變的機率愈小。

(

)

2 g e n g e n N p m e n d s t a r t e n d p m p m p m p m − = + − ⋅  選擇: 在經由交配產生子代的族群中,在同一家族中 找最好適應值,當成一下個父代。

4

44

4.

.

. 系統實作與實驗結果

.

系統實作與實驗結果

系統實作與實驗結果

系統實作與實驗結果

本節主要在說明系統實作的架構、環境和結 果。並分析比較窮舉法、Kratica基因演算法和ISP 家族競爭基因演算法,解索引選擇問題的結果。本 論文的系統實做,主要分成四個單元: 案例產生 器、窮舉法、Kratica基因演算法和ISP家族競爭基 因演算法。

4.1

4.1

4.1

4.1

案例資料

案例資料

案例資料

案例資料及

及效益值函數

效益值函數

效益值函數

效益值函數

案例資料(Instances))是指資料庫的查詢 (Query)和索引(Index)的互動行為。在Kratica基 因演算法中案例資料是用Class A[1],Class A包 括建立索引的維護成本,和索引與查詢的組態狀 況,其建立索引的維護成本是固定值。但在實際資 料庫建不同索引不可能所有索引維護成本都是一 樣的。所以在本論文的案例資料產生器,將索引的 維護成本

f

j修改為以亂數的方式產生。 除此之外,亂數對於讀出的查詢也會有一些不 合理的現象。例如查詢Q1的屬性是讀出時,使用索 引index1增益值是50,使用索引index2增益值是 80,如果同時使用索引index1和索引index2,因亂 數產生增益值,就可能產生低於80的不合理值。本 研究案例資料產生器程式是修改Class A[11]產生 器程式,把索引維護成本、查詢屬性和增益值限制 條件加入程式中。 每一組增益值模擬資料包含查詢的代碼、索引 組態及增益值三項資料。在產生增益值的過程中, 我們只隨機產生部份組態的增益值,沒有產生的就 當作零。這是因為如果要把所有組態的增益值都產 生出來,所耗費的紀錄空間會太大。例如,50個索 引及20個查詢,就必須紀錄

20 ×

2

50個值,這樣的 做法太耗資源也沒有必要。實際上,每個案例我們 只產生了2500組增益值資料,在實驗中,這些資料 已經足以讓我們觀察到不同演算法的影響。 三種演算法,都需要用到計算效益值的函數 cal_gain()。cal_gain()的輸入,為一代表索引建 立狀況的二位元字串。此二位元字串長度表示索引 個數大小,在每一位元中,0表示索引不建立,1 表示索引建立。我們使用二位元字串的值,來檢查 模擬案例資料中有那些索引組態是可用的,求出每 個查詢使用這些可用索引組態的增益最大值。把每 個查詢得的增益值累加,並加總建立索引的維護成 本,把增益值總計減維護成本總計即是效益值,也 就是cal_gain()的回傳值。

4.

4.

4.

4.2

22

2

實驗結果及分析

實驗結果及分析

實驗結果及分析

實驗結果及分析

為了驗證本篇論文提出方法之效能,用窮舉法 和Kratica基因演算法[7],一同比較結果。三種方 式實驗條件如下: 1. 窮舉法:用可建立N個索引條件下,則會有

2

N 可能解,因窮舉法太花時間,只建立25 個索引和部分30個索引解。 2. Kratica 基因演算法:在初代為母體 200 個,在選擇參數 Ftour=5.6,均勻交配參數 Pcro=85,突變參數 Pmstart=0.01, Pmend=0.002,Pmgen=300,執行 300 代子 孫,、分別產生索引數為 25、 30、 35 、 40 、45 、50 的解。 3. ISP 家族競爭基因演算法:初代為母體 200 個,子代競爭數 L=3,均勻交配參數 Pcro=85,突變參數 Pmstart=0.01, Pmend=0.002,Pmgen=300,執行 100 代和 300 代子孫,分別產生索引個數為 25、 30、 35 、

(5)

40 、45 、50 的解。 在表 1 中,三種演算法以 25 個索引解做比較。 t200111 表示案例編號,200 表示增益值產生參 數,111 表示亂數種子。增益值參數的可能值包括 200、175、150、125、100、75、50、25,值越大 代表增益的效果越強。亂數種子的可能值則包括 111、222、333、444、555。 效益值表示查詢增益值總計減索引維護成本 總計,以案例編號前四碼做為群組分類,每個群在 不同的亂數種子的效益值都差不多,效益值從上到 下都呈群組遞減方式,符合控制增益值參數由大至 小排列。在表中效益值為負值表示索引建立的維護 成本比增益值高,不值得建立此索引組態。實驗結 果窮舉法雖可以找到最佳解,但所花的時間太長, 約是其它二種方式的 50 多倍。在 Kratica 基因演 算法中,每一測試案例資料模式都需要 10 秒,ISP 家族競爭基因演算法則需要約 7 秒。且測試案例資 料模式在家族競爭基因演算法所得的效益值都比 Kratica 基因演算法還好,因此,ISP 家族競爭基 因演算法比 Kratica 基因演算法有更好的效能與 效益。 表 1 索引個數 n=25 的三種演算法測試結果 在表 2 中,比較 ISP 家族競爭基因演算法和 Kratica 基因演算法在 40 個索引與 50 個索引的測 試結果,每一個測試案例資料模式不管在 40 個索 引個數或 50 個索引個數,ISP 家族競爭基因演算 法所花的時間都比基因演算法還少,效益值都較 高,更加說明家族競爭基因演算法會比 Kratica 基 因演算法在解索引選擇問題效能還好。 表 2 ISP家族競爭與Kratica基因演算法40個索引 與50個索引測試結果

5

55

5.

..

.

結論與未來研究方向

結論與未來研究方向

結論與未來研究方向

結論與未來研究方向

針對 ISP 問題,窮舉法雖可以找到最佳解,但 所花的時間太長。而 Kratica 基因演算法雖不用花 太多時間找最佳解,但必需在選擇方法時輸入競爭 選擇參數來尋找最佳近似值,而且所花的時間比 ISP 家族競爭基因演算法多,效益值比 ISP 家族競 爭基因演算法低。ISP 家族競爭基因演算法讓每個 家族有獨立的交配和突變行為,在選擇方式直接找 家族最好的,減少調整競爭參數,除了執行效率較 高外,更有較好的效益。 不管用Kratica基因演算法或家族競爭演算法 所得到的解都是近似解,還是有誤差值,即使增加 子孫代數,也無法很快逼近最佳解,如何在短時問 把誤差值縮小甚至等於最佳解是重要的研究方向。

參考文獻

[ 1 ] A. Caprara and J.J Salazar Gonzalez,”Separating Lifted Odd-hole Inequalities to Solve the Index Selection Problem”,Discrete Applied

(6)

Mathematics, 92:111–134, 1999.

[ 2 ] A. Caprara, M. Fischetti, and D. Maio,”Exact and Approximate Algorithms for the Index Selection Problem in Physical Database Design”, IEEE Transactions on Knowledge and Data Engineering, 7(6):955-967, 1995.

[ 3 ] A. Caprara and J.J. Salazar Gonzalez,”A Branch-and-Cut Algorithm for a Generalization of the Uncapacitated Facility Location Problem”, Trabajos de Operativa TOP, 4(1):135–163, 1996.

[ 4 ] D. W. Tcha and B.Y. Lee,”A Branch-and-Bound Algorithm for the Multilevel Uncapacitated Facility Location Problem”, European Journal of Operational Research,18(1):35–43, 1984. [ 5 ] G. Syswerda,”Uniform Crossover in Genetic

Algorithms”, In 3th International Conference on Genetic ALgorithms, ICGA’89, pp. 2–9, 1989.Morgan Kaufmann.

[ 6 ] Jinn-Moon Yang and Cheng-Yan Kao,”A Family Competition Evolutionary Algorithm for

Automated Docking of Flexible Ligands to Proteins”,IEEE Transactions on Information Technology in Biomedicine, Vol. 4, No. 3,pp.227-229,September 2000.

[ 7 ] Jozef Kratica, Ivana Ljubic ,and Dusan Tosic,”A Genetic Algorithm for the Index Selection Problem”,In Günther R. Raidl et al., editors, Applications of Evolutionary Computing: EvoWorkshops2003, Vol 2611, LNCS,

pp.281-291, University of Essex, England, UK, 14-16 April 2003.

[ 8 ] J. Krarup and P.M. Pruzan,”The Simple Plant Location Problem: Survey and

Synthesis”,European Journal of Operational Research, 12:36–81, 1983.

[ 9 ] V. Filipovic,”Proposition for Improvement Tournament Selection Operator in Genetic Algorithms (in serbian)”,Master’s thesis, Faculty of Mathematics, Belgrade, 1998.

[10] V. Filipovic, J. Kratica, D. Tosic, and I. Ljubic,”Fine Grained Tournament Selection for the Simple Plant Location Problem”, In 5th Online World Conference on Soft Computing Methods in Industrial Applications, WSC5, pp.152–158, 2000.

[11] Y. A. Kochetov and E. N.

Goncharov,”Probabilistic Tabu Search Algorithm for the Multi-stage Uncapacitated Facility Location Problem”,In B. Fleischmann, R. Lasch,U. Derigs, W. Domschke, and U. Rieder, editors, Operations Research

參考文獻

相關文件

這些問題目前尚未找到可以在 polynomial time 內解決的 algorithm.. 這些問題目前尚未被證明無法在 polynomial time

應用閉合電路原理解決生活問題 (常識) 應用設計循環進行設計及改良作品 (常識) 以小數加法及乘法計算成本 (數學).

在選擇合 適的策略 解決 數學問題 時,能與 別人溝通 、磋商及 作出 協調(例 如在解決 幾何問題 時在演繹 法或 分析法之 間進行選 擇,以及 與小組成 員商 討統計研

活動的設計對學生要有挑戰性。教師需要從學生生活層面中尋找他們會遇到並需 要解決的問題,這樣才可以引起他們參與

4.2 Copy the selected individuals, then apply genetic operators (crossover and mutation) to them to produce new individuals.. 4.3 Select other individuals at random and

本論文之目的,便是以 The Up-to-date Patterns Mining 演算法為基礎以及導 入 WDPA 演算法的平行分散技術,藉由 WDPA

介面最佳化之資料探勘模組是利用 Apriori 演算法探勘出操作者操作介面之 關聯式法則,而後以法則的型態儲存於介面最佳化知識庫中。當有

本章將對 WDPA 演算法進行實驗與結果分析,藉由改變實驗的支持度或資料 量來驗證我們所提出演算法的效率。實驗資料是以 IBM synthetic data generator