Changeset 5522 for branches/HeuristicLab.MetaOptimization/HeuristicLab.MetaOptimization.Test/Program.cs
- Timestamp:
- 02/21/11 00:46:33 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.MetaOptimization/HeuristicLab.MetaOptimization.Test/Program.cs
r5361 r5522 23 23 using HeuristicLab.Hive.ExperimentManager; 24 24 using System.Threading.Tasks; 25 using HeuristicLab.PluginInfrastructure.Manager; 26 using System.Reflection; 25 27 26 28 namespace HeuristicLab.MetaOptimization.Test { 27 29 class Program { 30 static void Main(string[] args) { 31 //PluginLoader.pluginAssemblies.Any(); 32 PluginManager pm = new PluginManager(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)); 33 pm.DiscoverAndCheckPlugins(); 34 35 pm.Run(pm.Applications.Where(x => x.Name == "TestApp").SingleOrDefault()); 36 } 37 } 38 39 [Plugin("TestPlugin", "1.0.0.0")] 40 [PluginFile("HeuristicLab.MetaOptimization.Test.exe", PluginFileType.Assembly)] 41 public class TestPlugin : PluginBase { } 42 43 [Application("TestApp")] 44 public class TestApp : ApplicationBase { 28 45 //private static int metaAlgorithmPopulationSize = 50; 29 46 //private static int metaAlgorithmMaxGenerations = 30; … … 31 48 //private static int baseAlgorithmMaxGenerations = 1000; 32 49 33 private static int metaAlgorithmPopulationSize = 10;34 private static int metaAlgorithmMaxGenerations = 10;50 private static int metaAlgorithmPopulationSize = 20; 51 private static int metaAlgorithmMaxGenerations = 20; 35 52 private static int metaProblemRepetitions = 2; 36 private static int baseAlgorithmMaxGenerations = 20;53 private static int baseAlgorithmMaxGenerations = 10; 37 54 private static double mutationProbability = 0.10; 38 55 39 static void Main(string[] args) {56 public override void Run() { 40 57 ContentManager.Initialize(new PersistenceContentManager()); 41 58 42 59 //TestTableBuilder(); 43 60 //TestShorten(); 44 61 62 //TestSimilarities(); return; 45 63 //TestIntSampling(); 46 64 //TestDoubleSampling(); return; … … 51 69 //TestCombinations3(); 52 70 //TestEnumeratorCollectionEnumerator(); 53 TestCombinations4(); return;71 //TestCombinations4(); return; 54 72 //TestAlgorithmPerformanceIssue(); 55 73 //TestWaitAny(); … … 59 77 //TestItemDictionary(); 60 78 61 79 62 80 63 81 MetaOptimizationProblem metaOptimizationProblem = new MetaOptimizationProblem(); … … 87 105 } 88 106 107 private static void TestSimilarities() { 108 Console.WriteLine("\nDoubleRange:"); 109 var doubleRange = new DoubleValueRange(new DoubleValue(0), new DoubleValue(10), new DoubleValue(1)); 110 var a = new DoubleValue(5.0); 111 112 for (double d = 0; d < 10; d += 0.1) { 113 var similarity = doubleRange.CalculateSimilarity(a, new DoubleValue(d)); 114 Console.WriteLine("{0}: {1}", d, similarity); 115 } 116 117 Console.WriteLine("\nPecentRange:"); 118 var percentRange = new PercentValueRange(new PercentValue(0), new PercentValue(1), new PercentValue(1)); 119 var b = new PercentValue(0.05); 120 121 for (double d = 0; d < 1; d += 0.01) { 122 var similarity = percentRange.CalculateSimilarity(b, new PercentValue(d)); 123 Console.WriteLine("{0}: {1}", d, similarity); 124 } 125 126 Console.WriteLine("\nIntRange:"); 127 var intRange = new IntValueRange(new IntValue(50), new IntValue(100), new IntValue(1)); 128 var c = new IntValue(90); 129 130 for (int i = 0; i < 100; i++) { 131 var similarity = intRange.CalculateSimilarity(c, new IntValue(i)); 132 Console.WriteLine("{0}: {1}", i, similarity); 133 } 134 135 Console.WriteLine("\nValueConfigurations:"); 136 var vc1 = SetupGAAlgorithm(typeof(GeneticAlgorithm), new MetaOptimizationProblem()); 137 vc1.ParameterConfigurations.Single(x => x.Name == "Elites").Optimize = true; 138 vc1.ParameterConfigurations.Single(x => x.Name == "PopulationSize").Optimize = true; 139 vc1.ParameterConfigurations.Single(x => x.Name == "MutationProbability").Optimize = true; 140 vc1.ParameterConfigurations.Single(x => x.Name == "Selector").Optimize = true; 141 142 var vc2 = (IValueConfiguration)vc1.Clone(); 143 Console.WriteLine("Assert(1): {0}", vc1.CalculateSimilarity(vc2)); 144 145 ((IntValue)vc2.ParameterConfigurations.Single(x => x.Name == "PopulationSize").ValueConfigurations[0].ActualValue.Value).Value = 75; 146 Console.WriteLine("{0}", vc1.CalculateSimilarity(vc2)); 147 148 ((PercentValue)vc2.ParameterConfigurations.Single(x => x.Name == "MutationProbability").ValueConfigurations[0].ActualValue.Value).Value = 0.15; 149 Console.WriteLine("{0}", vc1.CalculateSimilarity(vc2)); 150 151 ((PercentValue)vc2.ParameterConfigurations.Single(x => x.Name == "MutationProbability").ValueConfigurations[0].ActualValue.Value).Value = 0.25; 152 Console.WriteLine("{0}", vc1.CalculateSimilarity(vc2)); 153 ((PercentValue)vc2.ParameterConfigurations.Single(x => x.Name == "MutationProbability").ValueConfigurations[0].ActualValue.Value).Value = 0.35; 154 Console.WriteLine("{0}", vc1.CalculateSimilarity(vc2)); 155 ((PercentValue)vc2.ParameterConfigurations.Single(x => x.Name == "MutationProbability").ValueConfigurations[0].ActualValue.Value).Value = 0.45; 156 Console.WriteLine("{0}", vc1.CalculateSimilarity(vc2)); 157 ((PercentValue)vc2.ParameterConfigurations.Single(x => x.Name == "MutationProbability").ValueConfigurations[0].ActualValue.Value).Value = 0.55; 158 Console.WriteLine("{0}", vc1.CalculateSimilarity(vc2)); 159 160 vc2.ParameterConfigurations.Single(x => x.Name == "Selector").ActualValueConfigurationIndex = 3; 161 Console.WriteLine("{0}", vc1.CalculateSimilarity(vc2)); 162 163 var random = new Random.MersenneTwister(0); 164 for (int i = 0; i < 10; i++) { 165 vc2.Randomize(random); 166 Console.WriteLine("Randomized: {0}", vc1.CalculateSimilarity(vc2)); 167 } 168 } 169 89 170 private static void TestItemDictionary() { 90 171 var dict = new ItemDictionary<StringValue, RunCollection>(); … … 116 197 using (var sw = new StreamWriter("normalCrossover-IntValue.txt")) { 117 198 for (int i = 0; i < 10000; i++) { 118 sw.WriteLine(NormalIntValueCrossover.ApplyStatic(random, new IntValue(i1), new IntValue(i2), intRange));199 sw.WriteLine(NormalIntValueCrossover.ApplyStatic(random, new IntValue(i1), new IntValue(i2), intRange)); 119 200 } 120 201 } … … 557 638 ProblemSize = new IntValue(2) 558 639 }); 559 metaOptimizationProblem.Problems.Add(new HeuristicLab.Problems.TestFunctions.SingleObjectiveTestFunctionProblem() {560 Evaluator = new GriewankEvaluator(),561 ProblemSize = new IntValue(20)562 });563 metaOptimizationProblem.Problems.Add(new HeuristicLab.Problems.TestFunctions.SingleObjectiveTestFunctionProblem() {564 Evaluator = new GriewankEvaluator(),565 ProblemSize = new IntValue(500)566 });640 //metaOptimizationProblem.Problems.Add(new HeuristicLab.Problems.TestFunctions.SingleObjectiveTestFunctionProblem() { 641 // Evaluator = new GriewankEvaluator(), 642 // ProblemSize = new IntValue(20) 643 //}); 644 //metaOptimizationProblem.Problems.Add(new HeuristicLab.Problems.TestFunctions.SingleObjectiveTestFunctionProblem() { 645 // Evaluator = new GriewankEvaluator(), 646 // ProblemSize = new IntValue(500) 647 //}); 567 648 568 649 ConfigurePopulationSize(algorithmVc, 0, 20, 1); 569 //ConfigureMutationRate(algorithmVc, 0.0, 1.0, 0.01);570 //ConfigureMutationOperator(algorithmVc);650 ConfigureMutationRate(algorithmVc, 0.0, 1.0, 0.01); 651 ConfigureMutationOperator(algorithmVc); 571 652 ConfigureElites(algorithmVc, 0, 30, 1); 572 //ConfigureSelectionOperator(algorithmVc, true);653 ConfigureSelectionOperator(algorithmVc, true); 573 654 return algorithmVc; 574 655 }
Note: See TracChangeset
for help on using the changeset viewer.