public void Awake() { if (graphDefinition != null && !graphDefinition.text.Equals("")) { graph = new QGraph(graphDefinition); } }
public void Evolve(bool reinjectOriginal) { graphs = QGraph.Evolve(graphs, useSmartMutation); if (reinjectOriginal) { Array.Sort(graphs); Array.Reverse(graphs); graphs[graphs.Length - 1] = new QGraph(heuristicInitFile); graphs = Utils.ShuffleArray(graphs); } }
public void Awake() { int f_l = float_restriction_range.Length; List <FloatRange> float_r = new List <FloatRange> (float_restriction_range); List <float> float_m = new List <float> (f_l); //List<float> float_noise = new List<float> (f_l); for (int i = 0; i < f_l; ++i) { //float_r.Add (floatRestrictions [i].second); float_m.Add(floatMult [i].second); //float_noise.Add (multiplier_randomness [i].second); } graphs = new QGraph[numGraphs]; for (int i = 0; i < numGraphs; ++i) { if (heuristicInitFile == null || string.IsNullOrEmpty(heuristicInitFile.text)) { /* * Generate random graph */ graphs [i] = new QGraph(possibleStates, possibleActions, float_m, float_r, stateConstraints, actionConstraints, edgeMutationChance, actionMutationChance, addNodeChance, changeInterruptWeightChance, numNodesToConnectToNewNode, numNodesToConnectNewNodeTo, comparisonOperators, this.windowSize, this.timeCostDiscount); graphs [i].MutationIncrement = mutationIncrement; } else { /* * Parse QGraph from file */ graphs [i] = new QGraph(heuristicInitFile); graphs [i].MutationIncrement = mutationIncrement; if (i > 0) { graphs [i] = QGraph.Mutate(graphs [i], false); } } graphs [i].ActionConstraints = new ConstraintMapping(actionConstraints); graphs [i].StateConstraints = new ConstraintMapping(stateConstraints); } }