如何从遗传算法(genalg)中获得最佳解决方案

时间:2013-12-19 08:37:42

标签: r genetic-algorithm

我正在使用genalg包进行遗传算法。基因是二元是自然的,结果将指定

基因的长度是269,很难理解哪些是难以理解的。有没有办法从中提取结果并将其放在数据框中?

cat(summary.rbga(GAmodel))

GA Settings
Type                  = binary chromosome
Population size       = 100
Number of Generations = 100
Elitism               = TRUE
Mutation Chance       = 0

Search Domain
Var 1 = [,]
Var 0 = [,]

GA Results
Best Solution : 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 

我想将最佳解决方案转换为数据框,以便我可以实际查找哪些是我需要选择的项目。

class(GAmodel) = "rbga"

2 个答案:

答案 0 :(得分:5)

对于最小化优化求解为变量GAModel

bestSolution<-GAmodel$population[which.min(GAmodel$evaluations),]

根据适应度函数从GAmodel $评估中提取最佳染色体的索引。然后使用该指数返回评估的最后一个群体的完整染色体。

答案 1 :(得分:1)

genalg的输出肯定存在问题,这就是我如何设法提取最佳解决方案:

  • 总表&LT ;-( summary.rbga(my_model))
  • 总表&LT; -strsplit(总表, “\ n” 个)[[1]]
  • summar&lt; -strsplit(summar [13],“”)[[1]]
  • 总表&LT; -as.numeric(总表[ - (1:5)])