public abstract double Evaluate(Individual individual, IRandom random);
 public virtual IEnumerable <Individual> GetNeighbors(Individual individual, IRandom random)
 {
     return(Enumerable.Empty <Individual>());
 }