当前位置:首页>网络学院>程序开发>c#教程>文章内容

C#实现花朵传粉的遗传算法

[ 来源:http://www.it55.com | 作者: | 时间:2008-01-11 | 收藏 | 推荐 ] 【


   /// </summary>
   public void Evolve()
   {
   int[] fitTemperature = new int[kMaxFlowers];
  
   int[] fitWater = new int[kMaxFlowers];
  
   int[] fitSunlight = new int[kMaxFlowers];
  
   int[] fitNutrient = new int[kMaxFlowers];
  
   int[] fitBeneficialInsect = new int[kMaxFlowers];
  
   int[] fitHarmfulInsect = new int[kMaxFlowers];
  
   int[] fitness = new int[kMaxFlowers];
  
   int i;
  
   int leastFit = 0;
  
   int leastFitIndex = 1;
  
   for (i = 1; i < kMaxFlowers; i++)
  
   if (Fitness(i) > leastFit)
   {
  
   leastFit = Fitness(i);
  
   leastFitIndex = i;
  
   }
  
   temperature[leastFitIndex] = temperature[Rnd.Next(1, 10)];
  
   water[leastFitIndex] = water[Rnd.Next(1, 10)];
  
   sunlight[leastFitIndex] = sunlight[Rnd.Next(1, 10)];
  
   nutrient[leastFitIndex] = nutrient[Rnd.Next(1, 10)];
  
   beneficialInsect[leastFitIndex] = beneficialInsect[Rnd.Next(1, 10)];
  
   harmfulInsect[leastFitIndex] = harmfulInsect[Rnd.Next(1, 10)];
  
   for (i = 1; i < kMaxFlowers; i++)
   {
  
   fitTemperature[i] = temperature[Rnd.Next(1, 10)];
  
   fitWater[i] = water[Rnd.Next(1, 10)];
  
   fitSunlight[i] = sunlight[Rnd.Next(1, 10)];
  
   fitNutrient[i] = nutrient[Rnd.Next(1, 10)];
  
   fitBeneficialInsect[i] = beneficialInsect[Rnd.Next(1, 10)];
  
   fitHarmfulInsect[i] = harmfulInsect[Rnd.Next(1, 10)];
  
   }
  
   for (i = 1; i < kMaxFlowers; i++)
   {
  
   temperature[i] = fitTemperature[i];
  
   water[i] = fitWater[i];
  
   sunlight[i] = fitSunlight[i];
  
   nutrient[i] = fitNutrient[i];
  
   beneficialInsect[i] = fitBeneficialInsect[i];
  
   harmfulInsect[i] = fitHarmfulInsect[i];
  
   }
  
   for (i = 1; i < kMaxFlowers; i++)
   {
  
   if (Rnd.Next(1, 100) == 1)
  
   temperature[i] = Rnd.Next(1, 75);
  
   if (Rnd.Next(1, 100) == 1)
  
   water[i] = Rnd.Next(1, 75);
  
   if (Rnd.Next(1, 100) == 1)
  
   sunlight[i] = Rnd.Next(1, 75);
  
   if (Rnd.Next(1, 100) == 1)
  
   nutrient[i] = Rnd.Next(1, 75);
  
   if (Rnd.Next(1, 100) == 1)
  
   beneficialInsect[i] = Rnd.Next(1, 75);
  
   if (Rnd.Next(1, 100) == 1)
  
   harmfulInsect[i] = Rnd.Next(1, 75);
  
   }
  
   }
  
   /**//// <summary>
   /// 显示种群中个体对环境的适应能力,还有所有个体对环境的适应能力之和。
   /// </summary>
   public void Show()
   {
   int sum = 0;
   for (int i = 1; i < kMaxFlowers; i++)
   {
   int fitness = Fitness(i);
   sum += fitness;
   Console.WriteLine("No." + i + "'s fitness is " + fitness);
   }
  
   Console.WriteLine("fitness sum is " + sum);
   }
   }
  } 
    

(编辑:IT资讯之家 www.it55.com

返回顶部
共2页: 上一页 [1] 2 下一页  

网友评论

[以下评论为网友观点,不代表本站。请自觉遵守互联网相关政策法规,所有连带责任均有评论者自负。]
[不超过250字]