在遗传算法中生成初始种群

时间:2017-02-15 06:13:42

标签: r genetic-algorithm population

我尝试使用二进制矩阵初始化我的初始种群。为了增加种群的多样性,每个染色体的1's数量范围从2到5。

然而,我获得的初始人口缺乏多样性。我的人口规模是100,但其中97人中有5人1's。以下是我在R中的实现,使用GA包:

library(GA)

set.seed(1)

initial_population <- function(object) {
    ## generating a 10 x 10 matrix (population)
    init <- t(replicate(object@popSize, {i <- sample(2:5, 1); sample(c(rep(1, i), rep(0, object@nBits - i)))}))

    return(init)
}

g2<- ga(type = "binary", 
    population = initial_population, 
    fitness = DBI2, 
    selection = ga_rwSelection,
    ## intentionally disable crossover and mutation for testing
    pcrossover = 0,
    pmutation = 0,
    ## popSize is small to illustrate my problem
    popSize = 10, 
    nBits = 10)

检查初始种群g2@population,染色体似乎是相同的。

Initial population showing all same chromosomes

我的代码中有错误吗?或者是否有更好的替代方案来产生多样化的人口?

0 个答案:

没有答案