2012-02-03 72 views
1

我使用遺傳算法來解決NP難題。事實上,它使用額外的本地搜索方法,這是一個考慮問題衝突的特別程序。 改寫標題: 我想知道蜜蜂/蟻羣和PSO算法與現代GA相比是否有缺點?其實,我必須證明遺傳算法解決我的問題的選擇。 我故意不想提出這個問題,只想知道默認和明顯的(也許是唯一的)GA優勢。讓我們假裝我們被賦予宣傳廣告和批評其他最先進的metaheuristics的任務。與更現代的蜜蜂/蟻羣和PSO算法相比,遺傳算法是否有優勢?

回答

0

遺傳算法在其標準形式最初被髮明用於優化可通過二進制值的向量來表示問題。如果你有這樣的問題,而且你什麼都不知道,我會說GA可能是第一個申請的選擇。如何優化這樣的問題在圖式理論中被描述,這是一個整潔的理論基礎。

一個問題我有PSO是在調整參數的難度。有羣體規模,慣性權重,對個人最好的吸引力和對全球最好的吸引力。這是一個離散的和三個連續的參數。但它不是參數的數量,而是它們的效果。人們可以用這些參數創建各種不同的羣體行爲,並且我已經將參數建議爲違反直覺的好參數。例如,我們的基於Pederson博士論文的PSO實現默認爲消極的個人最佳吸引力。

另一方面,遺傳算法具有種羣大小,變異率,交叉,變異算子和選擇算子。這是4個離散的,只有一個連續的參數。這看起來可能起初很多,但通常情況下,您可以選擇兩個或三個交叉算子,也可能選擇兩個或三個變異算子,並且變異率通常不會對性能產生如此大的影響,只要它大於0.您可能設置它要麼5或10%,並完成它。這讓你的人口規模和選擇運營商調整,這是不是很困難。所以基本上你可以嘗試4-5個不同的參數配置,如果它能夠解決問題,就已經獲得了一個好的照片。我不得不承認,有些實現也有交叉概率。

另外遺傳算法也可以用於組合優化,所以它可以做二元問題,連續問題,組合問題,因此有更多的應用程序。我認爲這也是它受歡迎的原因之一。因此,我認爲遺傳算法是一個關於參數的更穩健的算法(它的行爲當然會發生變化,但不會像它在PSO中那樣具有戲劇性)。由於它不限於連續搜索空間,因此適用範圍更廣。

順便說一句,如果你有興趣,我們開發了一個軟件,其中許多這樣的算法實施,還有一些問題。我們用它來解決新問題,比較算法以及參數。它被稱爲HeuristicLab並在Windows上運行(它有一個GUI)。

3

遺傳算法(GA)是一種搜索算法,用於查找NP難問題的近似解。您無法證明GA在大多數現實生活問題中找到的解決方案的全局最優性。

粒子羣優化(PSO)和GA可以根據他們的計算效率和他們找到解決方案的質量進行比較。在連續變量的無約束非線性問題中,PSO往往在兩個標準specially in computational efficiency中都優於GA。

如果搜索空間是離散的,是高度受限和不連續的,那麼GA可能會尋找更高質量的解決方案。突變和交叉算子將幫助GA跳躍搜索空間的不連續性並導致更好的探索。另一方面,規範(標準)PSO將陷入搜索空間的不連接組件。

不連續的搜索空間的存在於很多現實生活中的設計問題,即使它在這一領域的許多研究者所忽視。