iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 17
0
AI & Data

GA Note - 基因演算法的世界系列 第 17

【Day17】GA with you - R Package genalg R套件 genalg (1)

今天是歡樂(--崩潰--)滿堂日
Happy Wednesday...
昨天講解完 mcga
今天就要來講解另一個genalg
剛剛打一半就不見了 崩潰 rrrrr


genalg

R Documetation : https://www.rdocumentation.org/packages/genalg

Introduction 介紹

rbga跟前兩天的介紹的有幾個特別的地方
monitorFunc可以透過這個函數來監看每一個函數優化的結果
plot.rbga可以用來繪製基因演算法的各世代的結果
summary.rbga可以來總覽詳細的結果

Description 描述

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

Usage 用法

rbga.bin(size=10, 
         suggestions=NULL, 
         popSize=200,
         iters=100, 
         mutationChance=NA,
         elitism=NA,
         zeroToOneRatio=10, 
         monitorFunc=NULL, 
         evalFunc=NULL, 
         showSettings=FALSE, 
         verbose=FALSE)

Arguments 參數

size:一個染色體的基因數量
suggestions:建議染色體列表
popSize:群體
iters:迭代的數量,世代
mutationChance:突變機率
elitism:菁英政略保留的數量
zeroToOneRatio
monitorFunc:監控每一代計算過後的結果
evalFunc:計算染色體的適應函數
showSettings:顯示相關參數設定,預設值為default
verbose:顯示詳細設定,預設值為default

Example 範例

這邊會先用官網的範例示範一次
今天所使用的程式碼都來自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)

rbga.bin


不知道這樣的講法大家能不能更加認識
我想就這樣一步一步帶大家瞭解基因演算法的奧妙(誤)

今天的程式碼也會放到Github


相關資料來源:
R Documetation : https://www.rdocumentation.org/packages/genalg


上一篇
【Day16】GA with you - R Package mcga R套件mcga (3)
下一篇
【Day18】GA with you - R Package genalg R套件genalg (2)
系列文
GA Note - 基因演算法的世界30

尚未有邦友留言

立即登入留言