示例#1
0
 public override Unit CalculateFitnes(Unit osob,Population population)
 {
     osob.Function = 0;
     foreach (var gen in osob.Gens)
     {
         osob.Function += osob.BinToDec(gen);
     }
     return osob;
 }
示例#2
0
 public void GenerateFrom(Population p, List<Unit> data = null)
 {
     Length = p.Length;
     Max = p.Max;
     Min = p.Min;
     Osobi = p.Osobi;
     Count = p.Count;
     GensCount = p.GensCount;
     TempPopulation = p.TempPopulation;
     Pars = p.Pars;
     if (data == null) return;
     Osobi = data;
     Count = data.Count;
 }
示例#3
0
        public override Dictionary<double, double> Start()
        {
            Form1 f= GetOption("form", null);
            var resultt = new Dictionary<double, double>();
            double y = 0;

            var pop = new Population(this);
            f.progressBar1.Minimum = 0;
            f.progressBar1.Maximum = pop.Formula.Generations;
            for (int i = 0; i < Generations; i++)
            {
                pop.OneGeneration(Selector,Crosser,Mytator,Screener);
                var max=pop.GetMax();
                y = y + 1;
                resultt.Add(y,max);
                f.progressBar1.Value = i;
                Application.DoEvents();
            }
            return resultt;
        }
示例#4
0
 public abstract Unit CalculateFitnes(Unit osob, Population population);
示例#5
0
        public virtual Population Calculate(Population p)
        {
            for (int i = 0; i < p.Osobi.Count; i++)
             {
                 var vvv = p.Osobi[i];
                 p.Change(CalculateFitnes(vvv, p));
             }
             for (int i = 0; i < p.Pars.Count; i++)
             {
                 var para = p.Pars[i];
                 para.Father = CalculateFitnes(para.Father, p);
                 para.Mother = CalculateFitnes(para.Mother, p);
                 for (int i2 = 0; i2 < para.Children.Count; i2++)
                 {
                     para.Children[i2] = CalculateFitnes(para.Children[i2], p);
                 }
             }

             return p;
        }
示例#6
0
 public void Init(Population p)
 {
     Population = p;
     Randomizer=new Random();
 }