求教Matlab遺傳算法對變量的細分程度
各位大神,假設遺傳算法中的種群數量為20個,有倆個變量x1和x2。根據我自己的理解,遺傳算法首先需要在變量的取值范圍內對變量進行編碼,例如1<x1<4,1<x2<5,那么編碼時細分程度是如何控制的?
例如對于x1,是編碼成以1為間隔:1,2,3,4?還是以0.1為間隔:1,1.1,1.2,1.3,1.4,... 3.6,3.7,3.8,3.9,4.0?
是通過種群數量來定的嗎?例如:種群數量為20,就是把x1分成4份,x2分成5份嗎?
有這個問題主要是因為當我把種群數量設置為500時,計算非常慢。還是以種群數量為500舉例,如果有兩個變量下x1和x2,把x1分成25份,x2分成10份,其實變量也很稀疏,感覺和最優(yōu)值可能有一定的距離。但是如果增大種群數量,計算過程慢得難以想象。
雖然看了幫助文件,還是沒有得到解答。謝謝大家!
返回小木蟲查看更多
今日熱帖
京公網安備 11010802022153號
求大神賜教!
編碼確定的,比如你x1用2位編碼,那間隔為1,你用4位,間隔就可以細分到0.2
非常感謝您的回答。如果一個變量就簡單分成4份,那么間隔會非常大,優(yōu)化結果誤差就會很大。我就是想問一下matlab到底細分到什么程度呢?如果可以改變細分程度通過哪個參數來設置呢
,
細分程度需要你自己根據問題決定。參數就是編碼數量。想連續(xù)搜索的話,可以用其他優(yōu)化方法
不熟悉Matlab的ga,單算法應該是不分語言的,方法上面說過了