Changeset 2917 for trunk/sources/HeuristicLab.Algorithms.SGA
- Timestamp:
- 03/03/10 06:46:30 (15 years ago)
- Location:
- trunk/sources/HeuristicLab.Algorithms.SGA/3.3
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Algorithms.SGA/3.3/SGA.cs
r2891 r2917 108 108 OperatorGraph.InitialOperator = randomCreator; 109 109 110 var selectors = ApplicationManager.Manager.GetInstances<ISelector>().Where(x => !(x is IMultiObjectiveSelector)); 111 foreach (ISelector selector in selectors) { 112 selector.CopySelected = new BoolData(true); 113 selector.NumberOfSelectedSubScopesParameter.Value = new IntData(2 * (PopulationSizeParameter.Value.Value - ElitesParameter.Value.Value)); 114 if (selector is IStochasticOperator) ((IStochasticOperator)selector).RandomParameter.ActualName = "Random"; 115 SelectorParameter.ValidValues.Add(selector); 110 if (ApplicationManager.Manager != null) { 111 var selectors = ApplicationManager.Manager.GetInstances<ISelector>().Where(x => !(x is IMultiObjectiveSelector)).OrderBy(x => x.Name); 112 foreach (ISelector selector in selectors) { 113 selector.CopySelected = new BoolData(true); 114 selector.NumberOfSelectedSubScopesParameter.Value = new IntData(2 * (PopulationSizeParameter.Value.Value - ElitesParameter.Value.Value)); 115 if (selector is IStochasticOperator) ((IStochasticOperator)selector).RandomParameter.ActualName = "Random"; 116 SelectorParameter.ValidValues.Add(selector); 117 } 116 118 } 117 119 } … … 159 161 } 160 162 163 ICrossover oldCrossover = CrossoverParameter.Value; 161 164 CrossoverParameter.ValidValues.Clear(); 162 foreach (ICrossover crossover in Problem.Operators.OfType<ICrossover>() )165 foreach (ICrossover crossover in Problem.Operators.OfType<ICrossover>().OrderBy(x => x.Name)) 163 166 CrossoverParameter.ValidValues.Add(crossover); 164 167 if (oldCrossover != null) { 168 CrossoverParameter.Value = CrossoverParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldCrossover.GetType()); 169 } 170 171 IManipulator oldMutator = MutatorParameter.Value; 165 172 MutatorParameter.ValidValues.Clear(); 166 foreach (IManipulator mutator in Problem.Operators.OfType<IManipulator>() )173 foreach (IManipulator mutator in Problem.Operators.OfType<IManipulator>().OrderBy(x => x.Name)) 167 174 MutatorParameter.ValidValues.Add(mutator); 175 if (oldMutator != null) { 176 MutatorParameter.Value = MutatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldMutator.GetType()); 177 } 168 178 169 179 base.OnProblemChanged(); -
trunk/sources/HeuristicLab.Algorithms.SGA/3.3/Tests/UnitTest.cs
r2916 r2917 22 22 using System; 23 23 using System.Threading; 24 using HeuristicLab.Common; 24 25 using HeuristicLab.Optimization; 25 26 using HeuristicLab.Persistence.Default.Xml; … … 76 77 77 78 private EventWaitHandle trigger = new AutoResetEvent(false); 79 private Exception ex; 78 80 79 81 [TestMethod] 80 82 [DeploymentItem(@"SGA.hl")] 81 83 public void SGAPerformanceTest() { 84 ex = null; 82 85 IAlgorithm sga = (IAlgorithm)XmlParser.Deserialize("SGA.hl"); 86 sga.ExceptionOccurred += new EventHandler<EventArgs<Exception>>(sga_ExceptionOccurred); 83 87 sga.Stopped += new EventHandler(sga_Stopped); 84 88 sga.Prepare(); … … 86 90 trigger.WaitOne(); 87 91 TestContext.WriteLine("Runtime: {0}", sga.ExecutionTime.ToString()); 92 if (ex != null) throw ex; 93 } 94 95 void sga_ExceptionOccurred(object sender, EventArgs<Exception> e) { 96 ex = e.Value; 88 97 } 89 98
Note: See TracChangeset
for help on using the changeset viewer.