遗传算法-目标函数与适应度函数变换
基本概念
最優(yōu)化問(wèn)題可分為兩類(lèi),一類(lèi)是求最大值,一類(lèi)是求最小值,這里的最大最小指的是目標(biāo)函數(shù),當(dāng)然通常也把目標(biāo)函數(shù)叫適應(yīng)度;
而遺傳算法本身是求最大值的,因?yàn)閮?yōu)勝劣汰,得到的是適應(yīng)度最大的個(gè)體;
如果想求最小值,就需要做適應(yīng)度函數(shù)變換;
如果目標(biāo)函數(shù)之間差別很小,個(gè)體被選擇的概率也就相差不大,這樣算法的選擇功能將被大大弱化,此時(shí)也可作適應(yīng)度函數(shù)變換;
如果有其他需求,或者個(gè)性化設(shè)計(jì),也需要適應(yīng)度函數(shù)變換;
適應(yīng)度函數(shù)變換也叫 標(biāo)定
適應(yīng)度(目標(biāo)函數(shù))的設(shè)計(jì) 和 適應(yīng)度函數(shù)變換 是 兩碼事
函數(shù)設(shè)計(jì)的基本思想
適應(yīng)度函數(shù)(目標(biāo)函數(shù))
目標(biāo)函數(shù)的設(shè)計(jì)主要是結(jié)合業(yè)務(wù),可分為單目標(biāo)和多目標(biāo)
設(shè)計(jì)不當(dāng)有可能出現(xiàn)欺騙問(wèn)題:
(1)進(jìn)化初期,個(gè)別超常個(gè)體控制選擇過(guò)程;
(2)進(jìn)化末期,個(gè)體差異太小導(dǎo)致陷入局部極值 ;
適應(yīng)度函數(shù)變換
1. 適應(yīng)度不能既有正又有負(fù),這樣算概率時(shí)沒(méi)法算,為了方便計(jì)算,一般保證適應(yīng)度全為正;
2. 適應(yīng)度一般不為 0,因?yàn)?0 的概率為 0,永遠(yuǎn)不會(huì)被選擇,沒(méi)有意義;
3. 適應(yīng)度函數(shù)變換的核心就是為了使得 適應(yīng)度高的個(gè)體更容易被選擇;
標(biāo)定方法
方法很多,這里做個(gè)總結(jié)
線(xiàn)性變換
max:減去最小值的目的,一是防止出現(xiàn)負(fù)數(shù),二是增加相對(duì)差別;
min:目標(biāo)函數(shù)加負(fù)號(hào),即取最小,最大值減去目標(biāo)函數(shù)也是防止出現(xiàn)負(fù)數(shù);
加上 ξ 是為了避免出現(xiàn) 0;
動(dòng)態(tài)線(xiàn)性變換
把線(xiàn)性標(biāo)定中 ξ改成了ξ的k次方,希望開(kāi)始的時(shí)候,大家都有機(jī)會(huì),而越到后面,越要保留優(yōu)秀的個(gè)體
下面這張圖挺不錯(cuò)的,雖然內(nèi)容有重復(fù),也貼上來(lái)
M 就是一個(gè)初始值,可為 1, 也可不為 1,ξk€ [0, 1]
其他標(biāo)定
以下方法不太常用,包括 冪律標(biāo)定、對(duì)數(shù)標(biāo)定、指數(shù)變換、窗口技術(shù)、正規(guī)化技術(shù)、
參考資料:
https://blog.csdn.net/qcyfred/article/details/76731706 遺傳算法(2):對(duì)適應(yīng)度函數(shù)的改進(jìn)
總結(jié)
以上是生活随笔為你收集整理的遗传算法-目标函数与适应度函数变换的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python 的下划线_
- 下一篇: ASP.ENT Core Linux 下