public static Element Mate(Element e1, Element e2) { int length = e1.NumWeights(); int mesto = (int)Math.Floor(length * Functions.rand.NextDouble()); double[] geni = new double[length]; double[] temp = e1.GetWeights(); for (int i = 0; i < mesto; i++) { geni[i] = temp[i]; } temp = e2.GetWeights(); for (int i = mesto; i < length; i++) { geni[i] = temp[i]; } Element novElement = new Element(); novElement.PutWeights(geni); novElement.Mutate(); return novElement; }
public ArrayList Inicializiraj() { for (int i = 0; i < velikost_populacije; i++) { Element p = new Element(); p.Mutate(); populacija.Add(p); } return populacija; }
public Element(Element el) { //Kopirni konstruktor PutWeights(el.GetWeights()); }
void MarkAsBest(Element el) { if (NajbolsiElement != null) { NajbolsiElement.setColor(Color.Red, false); NajbolsiElement.SetRisiCrte(false); } NajbolsiElement = el; NajbolsiElement.setColor(Color.Yellow, true); NajbolsiElement.SetRisiCrte(true); if (el.Cost > BestCost) BestCost = el.Cost; }