public IOptimizationResults <StringConfiguration> Evolve() { IObjectiveEvaluator <StringSystemConfiguration> objectiveEvaluator = new StringObjEvaluator(this.target); StringSystemConfiguration point = initializationFactory.CreateRandomCandidate(); IObjectiveScores score = objectiveEvaluator.EvaluateScore(point); // TODO: Expand on the details of the algorithm. For now, the high-level interfaces is what we are teasing out. return(null); }