public Gene mutate(int mutations) { Gene mutation = new Gene(this); //copy host for (int m = 0; m < mutations; m++) { int muta = r.Next(0, expression.Count); //find area to mutate int updown = (r.Next(0, 100) >= 50 ? 1 : -1); //up or down? mutation.expression[muta] += updown; //apply mutation } mutation.find_overlaps_on_train(); //fit after mutation mutation.complexity = 0; // complexity after fit for (int e = 0; e < mutation.expression.Count; e++) //complexity { mutation.complexity += Math.Abs(mutation.expression[e]); } return mutation; }
static void test(Gene gene) { }
//mutations constructor public Gene(Gene gene) { expression = new List<int>(); for (int e = 0; e < gene.expression.Count; e++) expression.Add(gene.expression[e]); //copy expression from host // complexity after mutation }