public static CancellationConditions CreateCancellation() { var cancrlation = new CancellationConditions() { Iteration = 1000, ErrorStep = 0.000000001 }; return(cancrlation); }
/// <summary> /// Конструирует условие завершения алгоритма по умолчанию /// </summary> /// <returns></returns> public static Genetic.CancellationConditions CreateCancellation() { CancellationConditions cond = new CancellationConditions() { Iteration = 1000 }; // cond.TimerElapsed.Elapsed += TimerElapsed_Elapsed; return(cond); }
public void CheckCancellationTest() { GeneticAlgorithm alg = Factory.DefaultGeneticAlgorithmFactory.Create(2, 2); CancellationConditions cond = alg.Cancellation; GeneticGeneration temp1 = new GeneticGeneration(2, 2); alg.Result.Push(temp1); alg.Result.Data[0][0].FitnessResult = 1; GeneticGeneration temp2 = new GeneticGeneration(2, 2); alg.Result.Push(temp2); alg.Result.Data[1][0].FitnessResult = 0.5; Assert.IsFalse(cond.CheckCancellation(alg)); alg.Result.Data[1][0].FitnessResult = alg.Result.Data[0][0].FitnessResult - cond.ErrorStep; Assert.IsTrue(cond.CheckCancellation(alg)); cond.ErrorStep = -1; alg.CurrentGeneration = temp1; cond.MoreOrEquals = 1; Assert.IsTrue(cond.CheckCancellation(alg)); cond.MoreOrEquals = double.MaxValue; cond.LessOrEquals = 1; Assert.IsTrue(cond.CheckCancellation(alg)); cond.LessOrEquals = double.MinValue; Assert.IsFalse(cond.CheckCancellation(alg)); Assert.IsFalse(cond.CheckCancellation(alg)); }