Changeset 6017 for branches/HeuristicLab.MetaOptimization/HeuristicLab.MetaOptimization.Test/Program.cs
- Timestamp:
- 04/17/11 11:03:48 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.MetaOptimization/HeuristicLab.MetaOptimization.Test/Program.cs
r5927 r6017 15 15 using HeuristicLab.Data; 16 16 using HeuristicLab.Encodings.RealVectorEncoding; 17 using HeuristicLab.Hive.ExperimentManager;17 //using HeuristicLab.Hive.ExperimentManager; 18 18 using HeuristicLab.Optimization; 19 19 using HeuristicLab.Parameters; … … 30 30 class Program { 31 31 static void Main(string[] args) { 32 //PluginLoader.pluginAssemblies.Any();33 32 PluginManager pm = new PluginManager(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)); 34 33 pm.DiscoverAndCheckPlugins(); 35 36 34 pm.Run(pm.Applications.Where(x => x.Name == "TestApp").SingleOrDefault()); 37 35 } … … 49 47 //private static int baseAlgorithmMaxGenerations = 1000; 50 48 51 private static int metaAlgorithmPopulationSize = 10;52 private static int metaAlgorithmMaxGenerations = 15;49 private static int metaAlgorithmPopulationSize = 20; 50 private static int metaAlgorithmMaxGenerations = 20; 53 51 private static int metaProblemRepetitions = 3; 54 private static int baseAlgorithmMaxGenerations = 10 ;52 private static int baseAlgorithmMaxGenerations = 100; 55 53 private static double mutationProbability = 0.10; 56 54 … … 82 80 MetaOptimizationProblem metaOptimizationProblem = new MetaOptimizationProblem(); 83 81 metaOptimizationProblem.Repetitions = new IntValue(metaProblemRepetitions); 84 GeneticAlgorithm metaLevelAlgorithm = GetMetaGA(metaOptimizationProblem);85 //GeneticAlgorithm metaLevelAlgorithm = GetParallelMetaGA(metaOptimizationProblem);82 //GeneticAlgorithm metaLevelAlgorithm = GetMetaGA(metaOptimizationProblem); 83 GeneticAlgorithm metaLevelAlgorithm = GetParallelMetaGA(metaOptimizationProblem); 86 84 //GeneticAlgorithm metaLevelAlgorithm = GetHiveParallelMetaGA(metaOptimizationProblem); 87 85 … … 95 93 //Console.WriteLine("Press enter to start"); 96 94 //Console.ReadLine(); 97 TestConfiguration(algorithmVc, typeof(GeneticAlgorithm), metaOptimizationProblem.Problems.First());98 99 Console.WriteLine("Press enter to start");100 Console.ReadLine();95 //TestConfiguration(algorithmVc, typeof(GeneticAlgorithm), metaOptimizationProblem.Problems.First()); 96 97 //Console.WriteLine("Press enter to start"); 98 //Console.ReadLine(); 101 99 TestOptimization(metaLevelAlgorithm); 102 100 … … 111 109 var grammar1 = new TypeCoherentExpressionGrammar(); 112 110 var grammar2 = new TypeCoherentExpressionGrammar(); 113 114 grammar2.Symbols.Single(x => x.Name == "Addition").InitialFrequency = 0.5; 115 111 116 112 Console.WriteLine("========== Grammar1: =========="); 117 113 PrintGrammar(grammar1); 118 Console.WriteLine("========== Grammar2: =========="); 119 PrintGrammar(grammar2); 120 121 122 RealVector v1 = GetInitialFrequenciesAsRealVector(grammar1); 123 RealVector v2 = GetInitialFrequenciesAsRealVector(grammar2); 124 125 for (int i = 0; i < 10; i++) { 126 RealVector v3 = DiscreteCrossover.Apply(random, new ItemArray<RealVector>(new List<RealVector> { v1, v2 })); 127 128 var grammar3 = new TypeCoherentExpressionGrammar(); 129 SetInitialFrequenciesFromRealVector(grammar3, v3); 130 131 Console.WriteLine("\n========== Crossed: =========="); 132 PrintGrammar(grammar3); 133 } 114 //Console.WriteLine("========== Grammar2: =========="); 115 //PrintGrammar(grammar2); 116 117 var vc1 = new SymbolicExpressionGrammarValueConfiguration(grammar1); 118 ConfigureSymbolicExpressionGrammarVc(vc1); 119 var vc2 = new SymbolicExpressionGrammarValueConfiguration(grammar2); 120 ConfigureSymbolicExpressionGrammarVc(vc2); 121 122 vc1.Mutate(random, new MutateDelegate(ParameterConfigurationManipulator.Mutate), new UniformIntValueManipulator(), new UniformDoubleValueManipulator()); 123 vc1.Parameterize(grammar1); 124 125 Console.WriteLine("========== Grammar1 (mutated): =========="); 126 PrintGrammar(grammar1); 127 128 vc1.Cross(random, vc2, new CrossDelegate(ParameterConfigurationCrossover.Cross), new DiscreteIntValueCrossover(), new AverageDoubleValueCrossover()); 129 vc1.Parameterize(grammar1); 130 131 Console.WriteLine("========== Grammar1 (crossed): =========="); 132 PrintGrammar(grammar1); 133 134 //RealVector v1 = GetInitialFrequenciesAsRealVector(grammar1); 135 //RealVector v2 = GetInitialFrequenciesAsRealVector(grammar2); 136 137 //for (int i = 0; i < 10; i++) { 138 // RealVector v3 = DiscreteCrossover.Apply(random, new ItemArray<RealVector>(new List<RealVector> { v1, v2 })); 139 140 // var grammar3 = new TypeCoherentExpressionGrammar(); 141 // SetInitialFrequenciesFromRealVector(grammar3, v3); 142 143 // Console.WriteLine("\n========== Crossed: =========="); 144 // PrintGrammar(grammar3); 145 //} 134 146 135 147 } … … 421 433 422 434 GeneticAlgorithm ga = new GeneticAlgorithm(); 423 ga.PopulationSize.Value = 3;424 ga.MaximumGenerations.Value = 1;435 ga.PopulationSize.Value = 5; 436 ga.MaximumGenerations.Value = 5; 425 437 ga.Engine = new SequentialEngine.SequentialEngine(); 426 438 ga.Problem = new SingleObjectiveTestFunctionProblem(); 427 439 428 MetaOptimizationProblem metaOptimizationProblem = new MetaOptimizationProblem();429 // metaOptimizationProblem.Repetitions = new IntValue(metaProblemRepetitions);430 GeneticAlgorithm metaLevelAlgorithm = GetMetaGA(metaOptimizationProblem);431 ParameterConfigurationTree algorithmVc = SetupGAAlgorithm(typeof(GeneticAlgorithm), metaOptimizationProblem);432 algorithmVc.Randomize(random);440 //MetaOptimizationProblem metaOptimizationProblem = new MetaOptimizationProblem(); 441 ////metaOptimizationProblem.Repetitions = new IntValue(metaProblemRepetitions); 442 //GeneticAlgorithm metaLevelAlgorithm = GetMetaGA(metaOptimizationProblem); 443 //ParameterConfigurationTree algorithmVc = SetupGAAlgorithm(typeof(GeneticAlgorithm), metaOptimizationProblem); 444 //algorithmVc.Randomize(random); 433 445 Stopwatch sw = new Stopwatch(); 434 446 … … 449 461 algs.Enqueue(clonedGa); 450 462 451 if (algs.Count > 24)452 algs.Dequeue();463 //if (algs.Count > 24) 464 // algs.Dequeue(); 453 465 clonedGa.StartSync(); 454 466 sw.Stop(); … … 610 622 611 623 private static void TestTypeDiscovery() { 612 PluginLoader.pluginAssemblies.Any();613 614 624 var items = ApplicationManager.Manager.GetInstances(typeof(DoubleArray)).ToArray(); 615 625 … … 667 677 } 668 678 669 private static GeneticAlgorithm GetHiveParallelMetaGA(MetaOptimizationProblem metaOptimizationProblem) {670 GeneticAlgorithm metaLevelAlgorithm = GetParallelMetaGA(metaOptimizationProblem);671 metaLevelAlgorithm.Engine = new HiveEngine.HiveEngine();672 ServiceLocator.Instance.ClientFacadePool.UserName = "cneumuel";673 ServiceLocator.Instance.ClientFacadePool.Password = "cneumuel";674 ServiceLocator.Instance.StreamedClientFacadePool.UserName = "cneumuel";675 ServiceLocator.Instance.StreamedClientFacadePool.Password = "cneumuel";676 return metaLevelAlgorithm;677 }679 //private static GeneticAlgorithm GetHiveParallelMetaGA(MetaOptimizationProblem metaOptimizationProblem) { 680 // GeneticAlgorithm metaLevelAlgorithm = GetParallelMetaGA(metaOptimizationProblem); 681 // metaLevelAlgorithm.Engine = new HiveEngine.HiveEngine(); 682 // ServiceLocator.Instance.ClientFacadePool.UserName = "cneumuel"; 683 // ServiceLocator.Instance.ClientFacadePool.Password = "cneumuel"; 684 // ServiceLocator.Instance.StreamedClientFacadePool.UserName = "cneumuel"; 685 // ServiceLocator.Instance.StreamedClientFacadePool.Password = "cneumuel"; 686 // return metaLevelAlgorithm; 687 //} 678 688 679 689 private static EvolutionStrategy GetMetaES(MetaOptimizationProblem metaOptimizationProblem) { … … 714 724 715 725 //ConfigurePopulationSize(algorithmVc, 15, 20, 1); 716 ConfigureMutationRate(algorithmVc, 0.0, 1.0, 0.01);717 ConfigureMutationOperator(algorithmVc);726 //ConfigureMutationRate(algorithmVc, 0.0, 1.0, 0.01); 727 //ConfigureMutationOperator(algorithmVc); 718 728 //ConfigureElites(algorithmVc, 0, 8, 1); 719 729 //ConfigureSelectionOperator(algorithmVc, true); … … 736 746 } 737 747 } 748 749 ConfigureSymbolicExpressionGrammarVc(symbolicExpressionGrammarVc); 750 } 751 752 private static void ConfigureSymbolicExpressionGrammarVc(SymbolicExpressionGrammarValueConfiguration symbolicExpressionGrammarVc) { 738 753 symbolicExpressionGrammarVc.Optimize = true; 739 740 var additionPc = symbolicExpressionGrammarVc.ParameterConfigurations.Single(x => x.Name == "Addition"); 741 additionPc.Optimize = true; 742 var initialFrequencyVc = ((ParameterizedValueConfiguration)additionPc.ValueConfigurations.First()).ParameterConfigurations.Single(x => x.Name == "InitialFrequency"); 743 initialFrequencyVc.Optimize = true; 754 foreach (var pc in symbolicExpressionGrammarVc.ParameterConfigurations) { 755 if (pc.Name != "Constant" 756 && pc.Name != "Variable" 757 && pc.Name != "ProgramRootSymbol" 758 && pc.Name != "StartSymbol") { 759 pc.Optimize = true; 760 var initialFrequencyVc = ((ParameterizedValueConfiguration)pc.ValueConfigurations.First()).ParameterConfigurations.Single(x => x.Name == "InitialFrequency"); 761 initialFrequencyVc.Optimize = true; 762 } 763 } 764 //var additionPc = symbolicExpressionGrammarVc.ParameterConfigurations.Single(x => x.Name == "Addition"); 765 //additionPc.Optimize = true; 744 766 } 745 767 … … 896 918 string resultPath = Path.Combine(path, string.Format("{0} - Result.hl", id)); 897 919 string outputPath = Path.Combine(path, string.Format("{0} - Console.txt", id)); 920 921 ContentManager.Save((IStorableContent)metaLevelAlgorithm, resultPath+"-before.hl", true); 898 922 899 923 using (var sw = new StreamWriter(outputPath)) { … … 946 970 var orderedRuns = rc.OrderBy(x => x.Results["AverageQualityNormalized"]); 947 971 948 TableBuilder tb = new TableBuilder("QNorm", "Qualities"/*, "PoSi"*/ ,"MutRa" /*,"Eli", "SelOp"*/, "MutOp"/*, "NrSelSubScopes"*/);972 TableBuilder tb = new TableBuilder("QNorm", "Qualities"/*, "PoSi"*/ /*,"MutRa"*/ /*,"Eli", "SelOp",*/ /*"MutOp"*//*, "NrSelSubScopes"*/); 949 973 foreach (IRun run in orderedRuns) { 950 974 //string selector; … … 959 983 ,((DoubleArray)run.Results["RunsAverageQualities"]).ToString() 960 984 //,((IntValue)run.Parameters["PopulationSize"]).Value.ToString() 961 ,((DoubleValue)run.Parameters["MutationProbability"]).Value.ToString("0.0000")985 //,((DoubleValue)run.Parameters["MutationProbability"]).Value.ToString("0.0000") 962 986 //,((IntValue)run.Parameters["Elites"]).Value.ToString() 963 987 //,Shorten(selector, 20) 964 ,Shorten(run.Parameters.ContainsKey("Mutator") ? run.Parameters["Mutator"].ToString() : "null", 40)988 //,Shorten(run.Parameters.ContainsKey("Mutator") ? run.Parameters["Mutator"].ToString() : "null", 40) 965 989 //,((ISelector)run.Parameters["Selector"]).NumberOfSelectedSubScopesParameter.Value.ToString() 966 990 );
Note: See TracChangeset
for help on using the changeset viewer.