Mcga: R语言GA遗传算法包

首席躺平官 2021-07-19 18:14:12 阅读: 1794

mcga包主要包含两个函数 mcga, multi_mcga,其中mcga适用于单目标函数的最小化问题,

multi_mcga 可以使用mcga的逻辑实现多目标的优化。

library("mcga")
#定义适应度函数
f<-function(x){
  return ((x[1]-7)^2 + (x[2]-77)^2 +(x[3]-777)^2 +(x[4]-7777)^2 +(x[5]-77777)^2)
}
m <- mcga(	popsize=200,  #种群规模,即染色体数量或个体数目
           chsize=5,  #参数数量
           minval=0.0,  #随机生成初始种群的下限
           maxval=999999999.9,  #随机生成初始种群的上线
           maxiter=2500, #最大世代数,即繁殖次数,默认为10
           crossprob=1.0, #交叉概率
           mutateprob=0.01, #变异概率
           evalFunc=f)

cat("Best chromosome:\n")
print(m$population[1,])
str(m)
m$population


> cat("Best chromosome:\n")
Best chromosome:
> print(m$population[1,])
[1] 2.151489e-01 7.811483e+01 7.769824e+02 7.776895e+03
[5] 7.777596e+04
> str(m)
List of 10
 $ population: num [1:200, 1:5] 0.215 0.215 0.215 0.215 0.215 ...
 $ costs     : num [1:200] 48.4 48.4 48.4 48.4 48.4 ...
 $ popsize   : num 200
 $ chsize    : num 5
 $ crossprob : num 1
 $ mutateprob: num 0.01
 $ elitism   : num 1
 $ minval    : num 0
 $ maxval    : num 1e+09
 $ maxiter   : num 2500
> m$population
               [,1]         [,2]         [,3]         [,4]
  [1,] 2.151489e-01 7.811483e+01 7.769824e+02 7776.8949432
  [2,] 2.151489e-01 7.811477e+01 7.769819e+02 7776.8988647






邀请讨论

附件

{{f.title}} 大小 {{f.file_size}} 下载 {{f.count_download}} 金币 {{f.count_gold}}
{{item.nick_name}} 受邀请回答 {{item.create_time}}
{{item.refer_comment.nick_name}} {{item.refer_comment.create_time}}

附件

{{f.title}} 大小 {{f.file_size}} 下载 {{f.count_download}} 金币 {{f.count_gold}}
切换到完整回复 发送回复
赞({{item.count_zan}}) 踩({{item.count_cai}}) 删除 回复 关闭
科研狗©2015-2024 科研好助手,京ICP备20005780号-1 建议意见

服务热线

178 0020 3020

微信服务号