遺傳演算法的演算法思想
❶ 螞蟻演算法的思想進化公式及遺傳演算法的演算法流程圖
抄的
目前蟻群演算法主要用在組合優化方面,基本蟻群演算法的思路是這樣的:
1. 在初始狀態下,一群螞蟻外出,此時沒有信息素,那麼各自會隨機的選擇一條路徑。
2. 在下一個狀態,每隻螞蟻到達了不同的點,從初始點到這些點之間留下了信息素,螞蟻繼續走,已經到達目標的螞蟻開始返回,與此同時,下一批螞蟻出動,它們都會按照各條路徑上信息素的多少選擇路線(selection),更傾向於選擇信息素多的路徑走(當然也有隨機性)。
3. 又到了再下一個狀態,剛剛沒有螞蟻經過的路線上的信息素不同程度的揮發掉了(evaporation),而剛剛經過了螞蟻的路線信息素增強(reinforcement)。然後又出動一批螞蟻,重復第2個步驟。
每個狀態到下一個狀態的變化稱為一次迭代,在迭代多次過後,就會有某一條路徑上的信息素明顯多於其它路徑,這通常就是一條最優路徑。
關鍵的部分在於步驟2和3:
步驟2中,每隻螞蟻都要作出選擇,怎樣選擇呢?
selection過程用一個簡單的函數實現:
螞蟻選擇某條路線的概率=該路線上的信息素÷所有可選擇路線的信息素之和
假設螞蟻在i點,p(i,j)表示下一次到達j點的概率,而τ(i,j)表示ij兩點間的信息素,則:
p(i,j)=τ(i,j)/∑τ(i)
(如果所有可選路線的信息素之和∑τ(i)=0,即前面還沒有螞蟻來過,概率就是一個[0,1]上的隨機值,即隨機選擇一條路線)
步驟3中,揮發和增強是演算法的關鍵所在(也就是如何數學定義信息素的)
evaporation過程和reinforcement過程定義了一個揮發因子,是迭代次數k的一個函數
ρ(k)=1-lnk/ln(k+1)
最初設定每條路徑的信息素τ(i,j,0)為相同的值
然後,第k+1次迭代時,信息素的多少
對於沒有螞蟻經過的路線:τ(i,j,k+1)=(1-ρ(k))τ(i,j,k),顯然信息素減少了
有螞蟻經過的路線:τ(i,j,k+1)=(1-ρ(k))τ(i,j,k)+ρ(k)/|W|,W為所有點的集合
為什麼各個函數要如此定義,這個問題很難解釋清楚,這也是演算法的精妙所在。如此定義信息素的揮發和增強,以及路徑選擇,根據馬爾可夫過程(隨機過程之一)能夠推導出,在迭代了足夠多次以後,演算法能夠收斂到最佳路徑。
❷ 遺傳演算法的特點
遺傳演算法是解決搜索問題的一種通用演算法,對於各種通用問題都可以使用。搜索演算法的共同特徵為:
① 首先組成一組候選解
② 依據某些適應性條件測算這些候選解的適應度
③ 根據適應度保留某些候選解,放棄其他候選解
④ 對保留的候選解進行某些操作,生成新的候選解。
在遺傳演算法中,上述幾個特徵以一種特殊的方式組合在一起:基於染色體群的並行搜索,帶有猜測性質的選擇操作、交換操作和突變操作。這種特殊的組合方式將遺傳演算法與其它搜索演算法區別開來。
遺傳演算法還具有以下幾方面的特點:
(1)遺傳演算法從問題解的串集開始搜索,而不是從單個解開始。這是遺傳演算法與傳統優化演算法的極大區別。傳統優化演算法是從單個初始值迭代求最優解的;容易誤入局部最優解。遺傳演算法從串集開始搜索,覆蓋面大,利於全局擇優。
(2)遺傳演算法同時處理群體中的多個個體,即對搜索空間中的多個解進行評估,減少了陷入局部最優解的風險,同時演算法本身易於實現並行化。
(3)遺傳演算法基本上不用搜索空間的知識或其它輔助信息,而僅用適應度函數值來評估個體,在此基礎上進行遺傳操作。適應度函數不僅不受連續可微的約束,而且其定義域可以任意設定。這一特點使得遺傳演算法的應用范圍大大擴展。
(4)遺傳演算法不是採用確定性規則,而是採用概率的變遷規則來指導他的搜索方向。
(5)具有自組織、自適應和自學習性。遺傳演算法利用進化過程獲得的信息自行組織搜索時,適應度大的個體具有較高的生存概率,並獲得更適應環境的基因結構。
(6)此外,演算法本身也可以採用動態自適應技術,在進化過程中自動調整演算法控制參數和編碼精度,比如使用模糊自適應法 。
❸ 遺傳演算法思想
首先初始化,包括種群的大小,編碼的方案,遺傳的代數,變異的概率,等等;
然後進行選擇操作;
接著是將選擇的個體進行交叉,;
然後再進行選擇,並將選擇的個體進行變異;
最後就是更新最優值了。
大體過程就是這樣了。
❹ 通過一個實例,敘述該混合遺傳演算法的基本思想是什麼其基本構成原則是什麼
您好,我看到您的問題很久沒有人來回答,但是問題過期無人回答會被扣分的並且你的懸賞分也會被沒收!所以我給你提幾條建議:
一,你可以選擇在正確的分類下去提問,這樣知道你問題答案的人才會多一些,回答的人也會多些。
二,您可以到與您問題相關專業網站論壇里去看看,那裡聚集了許多專業人才,一定可以為你解決問題的。
三,你可以向你的網上好友問友打聽,他們會更加真誠熱心為你尋找答案的,甚至可以到相關網站直接搜索.
四,網上很多專業論壇以及知識平台,上面也有很多資料,我遇到專業性的問題總是上論壇求解決辦法的。
五,將你的問題問的細一些,清楚一些!讓人更加容易看懂明白是什麼意思!
謝謝採納我的建議! !
❺ 遺傳演算法涉及到分片思想嗎
遺傳演算法的中心思想就是對一定數量個體組成的生物種群進行選擇、交叉、變異等遺傳操作,最終求得最優解或近似最優解。在進行遺傳操作時,幾個重要的參數為:染色體長度L,種群大小M,交叉概率Pc,變異概率Pm,終止代數T。
❻ 遺傳演算法的核心是什麼!
運算的核心是評價函數的確定,先確定評價函數後,根據評價函數設計編碼的方案。先將編碼轉為實數再代入評價函數這個是初學者常有的錯誤思路:編碼不一定是數,也可以是復雜的信號序列,篩選的核心是如何設計交叉和變異的方式,從原理上避免變異產生無效的序列,加快搜索進程
❼ 遺傳演算法的基本原理
遺傳演算法通常的實現方式,就是用程序來模擬生物種群進化的過程。對於一個求最優解的問題,我們可以把一定數量的候選解(稱為個體)抽象地表示為染色體,使種群向更好的解來進化。大家知道,使用演算法解決問題的時候,解通常都是用數據或者字元串等表示的,而這個數據或字元串對應到生物中就是某個個體的「染色體」。進化從完全隨機個體的種群開始,之後一代一代發生。在每一代中評價其在整個種群的適應度,從當前種群中隨機地選擇多個個體(基於它們的適應度),通過自然選擇和突變產生新的種群,該種群在演算法的下一次迭代中成為當前種群。其具體的計算步驟如下:
編碼:將問題空間轉換為遺傳空間;
生成初始種群:隨機生成P個染色體;
種群適應度計算:按照確定的適應度函數,計算各個染色體的適應度;
選擇:根據染色體適應度,按照選擇運算元進行染色體的選擇;
交叉:按照交叉概率對被選擇的染色體進行交叉操作,形成下一代種群;
突變:按照突變概率對下一代種群中的個體進行突變操作;
返回第3步繼續迭代,直到滿足終止條件。
❽ 遺傳演算法中的錦標賽選擇演算法的思想是什麼
我理解的抄是,在50個人中,隨機選擇襲兩組人,每組10個人,對於每組的10個人按適應度進行排列,選擇兩組中適應度最好的兩個個體作為母代進行兩兩交叉;
然後再從剩下來的48個人中,隨機選擇兩組人,每組10個人,對於每組的10個人按適應度進行排列,選擇兩組中適應度最好的兩個個體作為母代進行兩兩交叉;
依此類推,知道你選出的母代個數滿足你的要求,這里母代個數肯定是少於50的。
❾ 遺傳演算法是數據挖掘演算法嗎
不是。遺傳演算法可以用於蕨類,但絕不限於此,實際它的應用極廣,它是種優化演算法,是種演算法設計思想,比如貪吃法和動態規劃,絕不會局限於某個應用領域。數據挖掘演算法太窄了,像apriori,k-mean等演算法都是針對關聯規則挖掘和聚類提出的具體演算法。