今天是歡樂(--崩潰--)滿堂日
Happy Wednesday...
昨天講解完 mcga 後
今天就要來講解另一個genalg
剛剛打一半就不見了 崩潰 rrrrr
R Documetation : https://www.rdocumentation.org/packages/genalg
rbga跟前兩天的介紹的有幾個特別的地方monitorFunc
可以透過這個函數來監看每一個函數優化的結果plot.rbga
可以用來繪製基因演算法的各世代的結果summary.rbga
可以來總覽詳細的結果
R based genetic algorithm for binary and floating point chromosomes.
由此可知genalg
可以用在二元或是浮點數的染色體計算
今天先講解binary
的部分
R Documetation : https://www.rdocumentation.org/packages/genalg/versions/0.2.0/topics/rbga.bin
rbga.bin(size=10,
suggestions=NULL,
popSize=200,
iters=100,
mutationChance=NA,
elitism=NA,
zeroToOneRatio=10,
monitorFunc=NULL,
evalFunc=NULL,
showSettings=FALSE,
verbose=FALSE)
size
:一個染色體的基因數量suggestions
:建議染色體列表popSize
:群體iters
:迭代的數量,世代mutationChance
:突變機率elitism
:菁英政略保留的數量zeroToOneRatio
monitorFunc
:監控每一代計算過後的結果evalFunc
:計算染色體的適應函數showSettings
:顯示相關參數設定,預設值為defaultverbose
:顯示詳細設定,預設值為default
這邊會先用官網的範例示範一次
今天所使用的程式碼都來自R Documetation
第一次使用的時候要先安裝套件
install.packages("genalg")
library(genalg)
evaluate <- function(string=c()) {
returnVal = 1 / sum(string);
returnVal
}
plot(rbga.results)
這邊的設定都先跟官網一樣
rbga.results = rbga.bin(size=10, mutationChance=0.01, zeroToOneRatio=0.5,
evalFunc=evaluate)
plot(rbga.results)
不知道這樣的講法大家能不能更加認識
我想就這樣一步一步帶大家瞭解基因演算法的奧妙(誤)
今天的程式碼也會放到Github上
相關資料來源:
R Documetation : https://www.rdocumentation.org/packages/genalg