轮盘赌选择
 重温轮盘赌选择   
 (Roulette Whell Selection Revisited )   
      
    让我们从轮盘赌选择算法开始。请记住,这一个函数的功能是从群体中选择一个 基因组,选中的几率正比于基因组的适应性分数。   
      
    SGenome& CgaBob::RouletteWheelSelection()   
    {   
    double fSlice = RandFloat()*m_dTotalFitnessScore;   
      
    我们从零到整个适应分范围内随机选取了一实数fSlice 。我喜欢把此数看作整个   
    适应性分数饼图中的一块,如早先在图3.4中所示。 [但并不是其中一块,译注]   
      
    double cfTotal = O;   
    int SelectedGenome = 0;   
    for (int i=O; i <m_iPopSize; ++i)   
    {   
    cfTotal += m_vecGenomes[i].dFitness;   
    if (cfTotal > fSlice)   
    {   
    SelectedGenome = i;   
    break;   
    }   
    }   
    return m_vecGenomes[SelectedGenome];   
    }   
 大家帮助看看这段代码,我怎么看不出这种选择方法中,适应度高的被选中的机率就高呢nbsp; 
   
 这是《游戏开发中的人工智能技术》一书的一个章节,请高人指点。  
 原文内容:http://book.csdn.net/bookfiles/206/1002069949.shtml  
   
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!