Changeset 6197 for branches/HeuristicLab.MetaOptimization/HeuristicLab.MetaOptimization.Test/Program.cs
- Timestamp:
- 05/14/11 18:49:46 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.MetaOptimization/HeuristicLab.MetaOptimization.Test/Program.cs
r6090 r6197 48 48 //private static double mutationProbability = 0.10; 49 49 50 private static int metaAlgorithmPopulationSize = 10;51 private static int metaAlgorithmMaxGenerations = 20;50 private static int metaAlgorithmPopulationSize = 4; 51 private static int metaAlgorithmMaxGenerations = 10; 52 52 private static double metaAlgorithmMutationProbability = 0.10; 53 private static int metaProblemRepetitions = 2;54 private static int baseAlgorithmMaxGenerations = 10;53 private static int metaProblemRepetitions = 3; 54 private static int baseAlgorithmMaxGenerations = 20; 55 55 private static int baseAlgorithmPopulationSize = 10; 56 56 57 57 public override void Run() { 58 58 ContentManager.Initialize(new PersistenceContentManager()); … … 60 60 //TestTableBuilder(); 61 61 //TestShorten(); 62 63 64 var x = typeof(float).IsPrimitive; 62 65 63 66 //TestSimilarities(); return; … … 79 82 80 83 //TestSymbolicDataAnalysisGrammar(); return; 84 //TestObjectGraphObjectsTraversal(); return; 85 //TestParameterizedItem(); return; 81 86 82 87 //MetaOptimizationProblem metaOptimizationProblem = LoadOptimizationProblem("Meta Optimization Problem (Genetic Programming - Symbolic Regression 3.4 scaled).hl"); … … 92 97 //EvolutionStrategy metaLevelAlgorithm = GetMetaES(metaOptimizationProblem); 93 98 94 //Console.WriteLine("Press enter to start"); 95 //Console.ReadLine(); 99 //Console.WriteLine("Press enter to start"); Console.ReadLine(); 96 100 //TestConfiguration(algorithmVc, typeof(GeneticAlgorithm), metaOptimizationProblem.Problems.First()); 97 101 98 //Console.WriteLine("Press enter to start"); 99 //Console.ReadLine(); 102 Console.WriteLine("Press enter to start"); Console.ReadLine(); 100 103 TestOptimization(metaLevelAlgorithm); 101 104 … … 103 106 104 107 Console.ReadLine(); 108 } 109 110 private void TestParameterizedItem() { 111 var value = new MyParameterizedItem(); 112 Console.WriteLine("P1=1;; " + value.ToString()); 113 114 var vc = new ParameterizedValueConfiguration(value, typeof(MyParameterizedItem), true); 115 vc.Optimize = true; 116 ((IntValue)vc.ParameterConfigurations.Single(x => x.Name == "P1").ActualValue.Value).Value = 22; 117 Console.WriteLine("P1=22;; " + value.ToString()); 118 vc.ParameterConfigurations.Single(x => x.Name == "P1").ActualValue.Value = new IntValue(33); 119 Console.WriteLine("P1=33;; " + value.ToString()); 120 vc.Parameterize(value); 121 Console.WriteLine("P1=33;; " + value.ToString()); 122 123 Console.ReadLine(); 124 } 125 126 private void TestObjectGraphObjectsTraversal() { 127 //var obj = new GeneticAlgorithm(); 128 var obj = ContentManager.Load("Genetic Programming - Symbolic Regression 3.4_scaled_paused.hl"); 129 Console.WriteLine("loaded"); 130 131 for (int i = 0; i < 10; i++) { 132 var sw = new Stopwatch(); 133 sw.Start(); 134 var objects = obj.GetObjectGraphObjects().ToArray(); 135 sw.Stop(); 136 137 var typeCount = GetTypeCount(objects).ToArray(); 138 Console.WriteLine("objects: {0}", objects.Count()); 139 Console.WriteLine(sw.Elapsed); 140 } 141 } 142 143 private IOrderedEnumerable<KeyValuePair<Type, long>> GetTypeCount(object[] objects) { 144 var dict = new Dictionary<Type, long>(); 145 foreach (var item in objects) { 146 var t = item.GetType(); 147 if (!dict.ContainsKey(t)) 148 dict.Add(t, 0); 149 dict[t]++; 150 } 151 return dict.OrderByDescending(x => x.Value); 105 152 } 106 153 … … 733 780 private static ParameterConfigurationTree SetupGAAlgorithm(Type baseLevelAlgorithmType, MetaOptimizationProblem metaOptimizationProblem) { 734 781 metaOptimizationProblem.AlgorithmType.Value = baseLevelAlgorithmType; 735 736 //metaOptimizationProblem.ProblemType.Value = typeof(SingleObjectiveTestFunctionProblem);782 783 metaOptimizationProblem.ProblemType.Value = typeof(SingleObjectiveTestFunctionProblem); 737 784 //metaOptimizationProblem.Problems.Clear(); 738 785 //metaOptimizationProblem.Problems.Add(new HeuristicLab.Problems.TestFunctions.SingleObjectiveTestFunctionProblem() { … … 753 800 754 801 // tower problem 755 metaOptimizationProblem.ImportAlgorithm((IAlgorithm)ContentManager.Load("Genetic Programming - Symbolic Regression 3.4_scaled.hl"));756 metaOptimizationProblem.Maximization.Value = true;802 //metaOptimizationProblem.ImportAlgorithm((IAlgorithm)ContentManager.Load("Genetic Programming - Symbolic Regression 3.4_scaled.hl")); 803 //metaOptimizationProblem.Maximization.Value = true; 757 804 758 805 ParameterConfigurationTree algorithmVc = metaOptimizationProblem.ParameterConfigurationTree; 759 806 ((IntValue)algorithmVc.AlgorithmConfiguration.ParameterConfigurations.Single(x => x.Name == "MaximumGenerations").ActualValue.Value).Value = baseAlgorithmMaxGenerations; 760 807 ((IntValue)algorithmVc.AlgorithmConfiguration.ParameterConfigurations.Single(x => x.Name == "PopulationSize").ActualValue.Value).Value = baseAlgorithmPopulationSize; 761 808 762 809 //ConfigurePopulationSize(algorithmVc, 10, 100, 1); 763 //ConfigureMutationRate(algorithmVc, 0.0, 1.0, 0.01);764 //ConfigureMutationOperator(algorithmVc);810 ConfigureMutationRate(algorithmVc, 0.0, 1.0, 0.01); 811 ConfigureMutationOperator(algorithmVc); 765 812 //ConfigureElites(algorithmVc, 0, 10, 1); 766 813 //ConfigureSelectionOperator(algorithmVc, true); 767 814 768 ConfigureSymbolicExpressionGrammar(algorithmVc);815 //ConfigureSymbolicExpressionGrammar(algorithmVc); 769 816 770 817 return algorithmVc; … … 992 1039 993 1040 ContentManager.Save((IStorableContent)metaLevelAlgorithm, resultPath + "-before.hl", true); 994 1041 995 1042 using (var sw = new StreamWriter(outputPath)) { 996 1043 sw.AutoFlush = true; … … 1262 1309 } 1263 1310 } 1311 1312 class MyParameterizedItem : ParameterizedNamedItem { 1313 public MyParameterizedItem() { 1314 this.Parameters.Add(new ValueParameter<IntValue>("P1", new IntValue(1))); 1315 this.Parameters.Add(new ValueParameter<IntValue>("P2", new IntValue(2))); 1316 this.Parameters.Add(new ValueParameter<IntValue>("P3", new IntValue(3))); 1317 this.Parameters.Add(new ValueParameter<MyOtherParameterizedItem>("P4", new MyOtherParameterizedItem())); 1318 } 1319 1320 protected MyParameterizedItem(MyParameterizedItem original, Cloner cloner) 1321 : base(original, cloner) { 1322 } 1323 public override IDeepCloneable Clone(Cloner cloner) { 1324 return new MyParameterizedItem(this, cloner); 1325 } 1326 1327 public override string ToString() { 1328 return string.Format("P1: {0}, P2: {1}, P3: {2}, P4: {3}", Parameters["P1"].ActualValue, Parameters["P2"].ActualValue, Parameters["P3"].ActualValue, Parameters["P4"].ActualValue); 1329 } 1330 } 1331 1332 class MyOtherParameterizedItem : ParameterizedNamedItem { 1333 public MyOtherParameterizedItem() { 1334 this.Parameters.Add(new ValueParameter<IntValue>("PP1", new IntValue(1))); 1335 this.Parameters.Add(new ValueParameter<IntValue>("PP2", new IntValue(2))); 1336 this.Parameters.Add(new ValueParameter<IntValue>("PP3", new IntValue(3))); 1337 } 1338 1339 protected MyOtherParameterizedItem(MyOtherParameterizedItem original, Cloner cloner) 1340 : base(original, cloner) { 1341 } 1342 public override IDeepCloneable Clone(Cloner cloner) { 1343 return new MyOtherParameterizedItem(this, cloner); 1344 } 1345 1346 public override string ToString() { 1347 return string.Format("PP1: {0}, PP2: {1}, PP3: {2}", Parameters["PP1"].ActualValue, Parameters["PP2"].ActualValue, Parameters["PP3"].ActualValue); 1348 } 1349 } 1264 1350 }
Note: See TracChangeset
for help on using the changeset viewer.