第三章 投標決策支援系統
3.3 最佳投標策略分析
3.3.1 基因演算法
在 1960 年代,生物學家提出了以人為方式交換染色體 DNA,刺激 生物演化的方法,成為發展基因演算法之來源。較成熟的基因演算法概 念於 1975 年由 John H. Holland 所提出。Holland 由生物基因中 DNA 編 碼與繁殖的原理中得到靈感,提出了基因演算的方法,以模擬自然環境 與人造環境中的一些現象。換言之,無論自然環境或人造環境,均可以 運用基因演算法來描述一些現象,甚至用來預測某些未知現象之發生。
基因演算法模擬「物競天擇」的搜尋法則,以染色體(chromosome
)進行演化過程(Mitchell, 1996)。反覆複製、交配、突變等演化的過程 中,可視為在問題的可行區域中,做系統化的多維空間搜尋。研究顯示
,基因演算法是一個強健的演算法,它能跳脫區域最佳解而求得整體較 佳解,且能有效率的搜尋複雜的求解空間(Heng et al , 1998)。因此,
本研究使用基因演算法做為廠商最有利標投標策略的分析工具。一般而 言,基因演算法操作的流程與方法如下。
1.染色體編碼:
在使用基因演算法進行運算之前,必須進行染色體編碼(coding and representation)。基因演算法中視所探討問題的一組解為自然界中的一個 個體。常見的編碼方式有以下兩種。首先是二元編碼方式,此編碼方式是 以二進位碼〈0,1〉替染色體編碼,常應用在數值型的問題中。其次為符
號編碼方式,此種編碼方式是以數字或符號來編碼,常應用於排列型的問 題。研究人員必需根據問題的屬性予以編碼,以建立「染色體」(
chromosome)的資料結構。染色體編碼可以是目的導向的,可根據資料 處理的目的而進行編碼。也可以是問題導向的,根據面臨問題的屬性以選 擇適合的染色體編碼法。本研究應用基因演算法,將各種可行策略組合進 行編碼。其編碼是以一條線性的染色體來表達每一組可行解。本研究的編 碼方式為實數編碼,每條染色體長度代表評選準則的數目,而每個基因代 表評選準則所對應策略的等級。如圖 3- 1 所示。每一個染色體下的都表 示其對應的投標策略組合
1.1 3.2 1.7 2.2
圖 3- 1 基因編碼示意圖
2.設定族群大小;
族群(Population Size )由染色體所構成的,可透過隨機產生染色體數 或是事先設定所需的染色體數。每個染色體都分別代表想要求解的問題中 的一個暫存解。一群染色體的演化過程,就相當於一組暫存解同時在其中 做平行搜尋。一般而言,族群越大容易得到更佳的解答,不過相對求解時 間則較長,族群越小求解的速度越快,然而其解答卻未必能符合研究者所 需。因此,研究者應該視需要來決定合適的族群大小。本研究設定每一世 代有 50 組的染色體。
A B C D
不同評選準則所在區位 廠商所提出的策略等級
2.2
D
3.設定適應函數與目標函數:
「適應函數」(fitness functions)是評估各組染色體的機制,觀察其 適應值的高低可以獲知其對目標函數(objective functions)的適應程度。
其結果必須滿足「適者生存」的觀念,即染色體越佳,其適應值就越高,
operational rates settings),以決定基因進行「交配」或「突變」的配比
最大演化世代數。2.族群內各染色體的同質性已達到預先設定的水準,
同質性是指非常多的染色體在相同位置上的值,完全一樣。3.演化最大 時間已達。4.已經獲得所需要的解答。本研究以的演化世代數目〈2000 代〉,作為基因演算法終止的條件。