public override CoordinatesMutator <TAlgorithm, TProblem, TSolution> DeepClone()
 {
     return(new CoordinatesMutatorClamp <TAlgorithm, TProblem, TSolution>
     {
         GetLowerSearchBorders = (Func <double[]>?)GetLowerSearchBorders?.Clone(),
         GetUpperSearchBorders = (Func <double[]>?)GetUpperSearchBorders?.Clone()
     });
 }
Пример #2
0
 public override CoordinatesMutator <TAlgorithm, TProblem, TSolution> DeepClone()
 {
     return(new CoordinatesMutatorMPT <TAlgorithm, TProblem, TSolution>(MutationProbability, Power)
     {
         GetLowerSearchBorders = (Func <double[]>?)GetLowerSearchBorders?.Clone(),
         GetUpperSearchBorders = (Func <double[]>?)GetUpperSearchBorders?.Clone(),
         GetRandom = (Func <Random>?)GetRandom?.Clone()
     });
 }
 public override CoordinatesInitializer <TAlgorithm, TProblem, TSolution> DeepClone()
 {
     return(new CoordinatesInitializerUniform <TAlgorithm, TProblem, TSolution>
     {
         GetDimension = (Func <int>?)GetDimension?.Clone(),
         GetLowerSearchBorders = (Func <double[]>?)GetLowerSearchBorders?.Clone(),
         GetUpperSearchBorders = (Func <double[]>?)GetUpperSearchBorders?.Clone(),
         GetRandom = (Func <Random>?)GetRandom?.Clone()
     });
 }