• 沒有找到結果。

John H. Holland於1975年大作 Adaptation in Natural and Artificial Systems

(Holland, 1975)提出基因演算法的概念,其精神是以達爾文的生物進化論「物競 天擇、適者生存」而來。Holland是由自然界生物不斷競爭與繁殖所產生的基因原 理中得到靈感,提出了基因演算的方法,用以模擬自然環境與生物的演化。Holland 認 為 , 人 工 或 自 然 環 境 , 都 可 將 其 值 依 屬 性 進 行 如 基 因 編 碼 ( coding and representation),並藉由編碼的交配及突變繁衍出新的一代。透過函數設計可以遴 選適合環境的下一代繼續參與繁衍,以此獲得較適合環境的物種。Holland 在該書 中除了說明基因演算法的基本概念之外,亦奠定了基因演算法的方法原型。Holland 指出基因演算法的三項基本操作(Genetic operators),即「交配」(Cross-over)、

「反轉」(inversion)與「突變」(Mutation)。所以至今,GA 已經被成功的應用 於各種領域,並成功地可被用來解決許多問題。以下為基因演算旳原理,詳述如 下:

(1) 設定初始族群:

選擇研究範圍內的物種。

(2) 編碼(Encoding)

編碼的用意在於將問題的可能解以染色體的型式表達在基因演算法中,因為 我們將問題的解比喻在自然界的生物,而生物的組成架構即為染色體,因此編碼 的設計就如同決定生物的染色體一樣重要。在進行編碼前必須先確定問題的搜尋 空間大小,最常用的編碼方式為二進位編碼(Binary coding),即以0 和1 將問題 的解編成n 個位元的字串,一個字串即代表一個染色體,每一個位元即代表一個 基因。除了二進位編碼外,基因演算法還可以接受以整數(Integer)、實數(Real) 及文字(Alphabet)的編碼方式。

(3) 適應函數(Fitness Functions)

每一個物種在自然界中都有不同的適合性。適應函數,可以被認為是一個大 自然的環境,用來決定每一個染色體的適合度。當演算進行時,整個編碼的方向 會依著最佳的適合度做選擇。而適合度視問題特性而定,可能求最大值抑或是最 小值。

(4) 選擇(Selection)

選擇(或複製)的目的,係模仿自然界中生物同性生殖的特性,將父代優良的 染色體完全保留至子代,此程序可以保留上一代優良的染色體,淘汱適應值低的 染色體,並產生新的族群(Population),再繼續演化。選擇的機制有很多種,最 常使用的方法為輪盤法(Roulette Wheel),即將所有族群中的染色體依適應值的 高低排序,將適應值視為一虛擬的輪盤,適應值高的染色體佔輪盤的面積較大,

選取的方式如同旋轉輪盤一般,佔輪盤面積越大的染色體被選取到參與交配 (Crossover) 機 率 也 越 高 。 另 一 種 常 見 的 方 式 為 競 賽 式 選 擇 法 (Competition selection),通常依據競賽的觀念,會以選擇物種較為優秀的來進行,此即為適 者生存,不適者淘汰的精神所在。

(5) 交配(Crossover)

對染色體進行交配的目的在於產生與父代不同基因的新子代,經由選擇 (Selection)後保留下來的父代,經過兩兩配對,重新組合基因後,會產生新的子 代(Offspring),交配的方法為從父代的基因中隨機挑選數個交配點,將位於交配 點的基因互換後,即產生兩個新的染色體,稱為子代。不同的編碼會有不同的交 配方法,在此只列舉常見的二進位編碼的交配法:

a. 單點交配(One-point crossover):隨機挑選一個交配點,並以交配點為 準,將交配點之後的基因互換,產生子代。

b. 雙點交配(Two-point crossover):隨機挑選二個交配點,並將兩個交配 點之間的基因互換,產生子代。

c. 多點交配(N-point crossover):隨機挑選N 個交配點,並比較各交配點間 的長度,將相同長度區段的基因互換,產生子代。

d. 均勻交配(Uniform crossover):染色體上的每個基因都視為交配點,並隨 機挑選需互換的基因,產生新子代。

e. 算數交配(Arithmetic crossover):藉由某些數學運算來產生新子代。

(6) 基因的突變(Mutation)

在自然環境中,基因的突變是不可預期的,但也就因為這樣可能造成物種更 強壯或更弱,目前常見的突變方式有:

a.選取一個位置做突變點。

b.增加或減少一個或多個字串值。

c.反轉式的突變。

(7) 停止條件(Termination Condition)

基因演算法的執行過程是迴圈,因此必須設定一個停止條件,判斷演化過程 將繼續或是停止,常用的停止條件包括設定固定代數(fixed generations),設定 適應值目標值(fitness target),適應值收斂程度評估(fitness convergence),

多樣化收斂評估(diversity convergence)。

a. 設定固定代數(fixed generations):基因演算法會演化至事先設定的代 數即停止。

b. 設定適應目標值(fitness target):基因演算法會演化至適應值優於某一 給定的適應值為止。

c. 適應值收斂程度評估(fitness convergence):當演化至族群裡染色體的 適應值標準差均低於某一給定的適應值收斂程度時,表示族群中的染色體 均已收斂至某一程度,此時即停止演化。

d. 多樣化收斂評估(diversity convergence):類似於適應值收斂程度評估,

當族群中染色體的多樣性低於某一給定的多樣性收斂程度時,即停止演

(8) 參數設定

為了最佳化基因演算法的搜尋效能,適當的參數設定是必要的,常設定的控 制參數有族群大小(Population size),交配率(Crossover rate),交配點數,及 突變率(Mutation rate)等。

a. 族群大小(Population size):

族群大小指的是同一代族群中染色體的個數,族群的大小會影響搜尋的效 能與效果,如果族群設的較小,每一代訓練的時間也較少,但容易產生區 域最佳解的情況,使搜尋成效降低,若族群設的較大,計算成本也越高,

雖然搜尋的時間會增加,但較不容易落入區域最佳解的情況,因此在基因 演算法中,搜尋效能和效果間存在一取捨(Trade-off)的關係,而實際上 族群大小的設定,則須依照實際問題以及經驗法則,選擇一個適當的族群 大小,才能兼顧搜尋效能和效果。

b. 交配率(Crossover rate):

交配率指的是每一代演化中,染色體發生交配的機率,交配率設的越高,

交配會發生的越頻繁,搜尋的廣度也會增加;和族群大小類似,若交配率 設的太低,則容易落入區域最佳解,但若交配率設的太高,也可能讓優良 的基因消失,反而降低搜尋成效。舉例來說,若族群大小每一代中有500 個染色體,而交配率設為0.7,則表示每一代中有350 個染色體需要發生 交配。

c. 突變率(Mutation rate):

突變率指的是每一代的染色體發生突變的機率,常用的突變方法是位元反 相運算,即將基因從0 變為1,1 變為0,突變是一項非必要的運算,因為 突變很可能使好的基因遺失,因此一般而言,突變率發生的機率都遠低於 交配率。

第三 第三

第三 第三章 章 章 章 研究方法 研究方法 研究方法 研究方法

本研究提出以代理人協商為基礎的智慧型 IT 專案資源配置系統,在進行資源 配置時,使專案管理在進行遴選人才及效用分析時,參與者可以被假設為代理人 (agent),依據各自的 BDI 模式,藉由自主、協同、溝通、生存、活動等特性,來 配置專案資源。

為簡化表達在本研究協商模式運作中,不同代理人所扮演的角色,我們定義:

進行專案管理時,參與者將對各項元素設定效用函數,當專案需求提出時,代理 人即會開啟協商機制,稱為啟始代理人,本研究將針對所提出的協商機制與成本 效益分析方法論進行整體需求設計,並探討代理人在此協商模式下,運用各種元 素之效用函數進行多代理人之間的協商,而且判斷當協商不成立時,須要進行基 因演算法演算,並提出以成本效益最大為基礎的專案計畫書。

3.1 代理人協商環境架構設計

本系統將利用 JADE 程式分析銀行 IT 如何達到資源配置之最佳化,指派代理 人對使用者及 IT 人員尋求適當的解決方案,應用協商代理人的協調功能及工程師 代理人的技術分析,讓雙方進行協商,期望可使 IT 的資源配置更有效率。

本研究依據表 3.1 代理人角色配置、圖 3.1 代理人之關係圖以及圖 3.2 協商 代理人架構圖分析的結果,整理出代理人需求。此處在於分析代理人的主要工作、

目標、行為。利用這些特性將代理人分為:IT 專案管理代理人、工程師代理人、

技術人員代理人、顧問代理人、廠商代理人、使用者代理人、協商代理人等。各 個代理人皆會賦與行為能力及協商執行能力,針對這些代理人,以下將會個別分 析其特質:

1. IT 專案管理代理人:

目標:接收使用者代理人投入的需求與之協商及委派其它代理人任務。

行為:

(1) TickerBehaviour 為每隔固定時間就會執行行為定義。

(2) Negotiation with UserAgent behaviours 為接收使用者的需求時,

所啟動的的機制。

工作:

(1) 接收使用者代理人投入的需求。

(2) 做資料分析,依據結果與使用者代理人進行協商。

(3) 如有需要則會委派其它代理人共同進行協商。

(4) 回覆協商結果。

2. 工程師代理人、技術人員代理人、廠商代理人:

目標:接收各個代理人詢問並提供本身資源。

行為:

(1) TickerBehaviour 為每隔固定時間就會執行行為定義。

(2) Provide Resource Message With Other Agent。

工作:提供本身資源狀況。

3. 顧問代理人:提供 IT 專案管理人專業建議。

4. 使用者代理人:

目標:與 IT 專案管理人進行協商,並視其需要與其它代理人進行共同協商。

行為:

(1) TickerBehaviour 為每隔固定時間就會執行行為定義。

(2) Negotiation with ITAgent behaviours 為接收其它代理人的訊息 時,所啟動的的機制。

工作:

(1) 接收 IT 專案管理代理人回覆的訊息進行協商。

(2) 做資料分析,依據結果再次提供提案進行協商。

(3) 如有需要則會加入其它代理人共同進行協商。

4. 協商代理人:接收所有代理人訊息,進行共同協商,並在協商不成功後進行

基因演算法,可代替當專案管理之協商不成功時,藉助基因演算法找出替代

圖 3. 1 代理人之關係圖

相關文件