private void UpdateMutators() { IManipulator oldMutator = MutatorParameter.Value; MutatorParameter.ValidValues.Clear(); IManipulator defaultMutator = Problem.Operators.OfType <IManipulator>().FirstOrDefault(); foreach (IManipulator mutator in Problem.Operators.OfType <IManipulator>().OrderBy(x => x.Name)) { MutatorParameter.ValidValues.Add(mutator); } if (oldMutator != null) { IManipulator mutator = MutatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldMutator.GetType()); if (mutator != null) { MutatorParameter.Value = mutator; } else { oldMutator = null; } } if (oldMutator == null && defaultMutator != null) { MutatorParameter.Value = defaultMutator; } }
private void UpdateMutators() { IManipulator oldMutator = MutatorParameter.Value; MutatorParameter.ValidValues.Clear(); foreach (IManipulator mutator in Problem.Operators.OfType <IManipulator>().OrderBy(x => x.Name)) { ParameterizeStochasticOperatorForIsland(mutator); MutatorParameter.ValidValues.Add(mutator); } if (oldMutator != null) { IManipulator mutator = MutatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldMutator.GetType()); if (mutator != null) { MutatorParameter.Value = mutator; } } }
private void UpdateMutators() { IManipulator oldMutator = MutatorParameter.Value; MutatorParameter.ValidValues.Clear(); foreach (IManipulator mutator in Problem.Operators.OfType <IManipulator>().OrderBy(x => x.Name)) { MutatorParameter.ValidValues.Add(mutator); } if (oldMutator != null) { IManipulator mutator = MutatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldMutator.GetType()); if (mutator != null) { MutatorParameter.Value = mutator; } } else if (MutatorParameter.ValidValues.Count > 0 && Problem.Operators.OfType <ISelfAdaptiveManipulator>().Count() > 0) { ISelfAdaptiveManipulator mutator = Problem.Operators.OfType <ISelfAdaptiveManipulator>().First(); if (mutator != null) { MutatorParameter.Value = mutator; } } }