簡單介紹壹下思路:
最重要的是確定適應度函數,只要確定這個函數就很容易了,就用妳不會編程,直接調用matlab的工具箱就行了。
1st.設置種群規模,並初始化種群p,並計算各個個體的適應度。
例如,20個個體,每個個體包含5個變量,x1,x2,x3,x4,x5.
如果妳用matlab來編程的話,這個可以很容易實現,會用到random('unif',a,b)這個函數吧。
例如x1的取值範圍是[0,1],那麽x1=random('unif',0,1).
2nd.采用輪盤賭選出可以產生後代的父本,p_parents。
額,輪盤賭的實質就是適應度大的被選出的概率大。這個不難,但說起來比較長,妳可以自己去看壹下。
3rd.雜交過程的思路隨機將p_parents中的個體隨機兩兩配對,然後隨機產生壹個1到n的數(n為變量的個數),設為i,交換每對父本中i之後的變量值。交換以後的p_parents成為後代p_offspring.
這裏變起來有點點復雜,不過只要耐心壹點,編好配對過程和交換過程。
4th.變異過程,這個比較簡單,不過需要自己把握的較好。
基本的思路是設置壹個概率,例如0.05,然後產生壹個隨機數如果隨機數比0.05小那麽這個變量值就要產生微小的增加或減少。
這個變異過程要歷遍p_offspring所有的變量喔。
5th.將p和p_offspring合並起來,然後選出適應度大的,重新構成壹個如原始種群規模相等的種群。