public override Unit CalculateFitnes(Unit osob,Population population) { osob.Function = 0; foreach (var gen in osob.Gens) { osob.Function += osob.BinToDec(gen); } return osob; }
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; }
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; }
public abstract Unit CalculateFitnes(Unit osob, Population population);
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; }
public void Init(Population p) { Population = p; Randomizer=new Random(); }