Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/14/11 18:49:46 (13 years ago)
Author:
cneumuel
Message:

#1215

  • some fixes
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.MetaOptimization/HeuristicLab.MetaOptimization.Test/Program.cs

    r6090 r6197  
    4848    //private static double mutationProbability = 0.10;
    4949
    50     private static int metaAlgorithmPopulationSize = 10;
    51     private static int metaAlgorithmMaxGenerations = 20;
     50    private static int metaAlgorithmPopulationSize = 4;
     51    private static int metaAlgorithmMaxGenerations = 10;
    5252    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;
    5555    private static int baseAlgorithmPopulationSize = 10;
    56    
     56
    5757    public override void Run() {
    5858      ContentManager.Initialize(new PersistenceContentManager());
     
    6060      //TestTableBuilder();
    6161      //TestShorten();
     62
     63
     64      var x = typeof(float).IsPrimitive;
    6265
    6366      //TestSimilarities(); return;
     
    7982
    8083      //TestSymbolicDataAnalysisGrammar(); return;
     84      //TestObjectGraphObjectsTraversal(); return;
     85      //TestParameterizedItem(); return;
    8186
    8287      //MetaOptimizationProblem metaOptimizationProblem = LoadOptimizationProblem("Meta Optimization Problem (Genetic Programming - Symbolic Regression 3.4 scaled).hl");
     
    9297      //EvolutionStrategy metaLevelAlgorithm = GetMetaES(metaOptimizationProblem);
    9398
    94       //Console.WriteLine("Press enter to start");
    95       //Console.ReadLine();
     99      //Console.WriteLine("Press enter to start"); Console.ReadLine();
    96100      //TestConfiguration(algorithmVc, typeof(GeneticAlgorithm), metaOptimizationProblem.Problems.First());
    97101
    98       //Console.WriteLine("Press enter to start");
    99       //Console.ReadLine();
     102      Console.WriteLine("Press enter to start"); Console.ReadLine();
    100103      TestOptimization(metaLevelAlgorithm);
    101104
     
    103106
    104107      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);
    105152    }
    106153
     
    733780    private static ParameterConfigurationTree SetupGAAlgorithm(Type baseLevelAlgorithmType, MetaOptimizationProblem metaOptimizationProblem) {
    734781      metaOptimizationProblem.AlgorithmType.Value = baseLevelAlgorithmType;
    735      
    736       //metaOptimizationProblem.ProblemType.Value = typeof(SingleObjectiveTestFunctionProblem);
     782
     783      metaOptimizationProblem.ProblemType.Value = typeof(SingleObjectiveTestFunctionProblem);
    737784      //metaOptimizationProblem.Problems.Clear();
    738785      //metaOptimizationProblem.Problems.Add(new HeuristicLab.Problems.TestFunctions.SingleObjectiveTestFunctionProblem() {
     
    753800
    754801      // 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;
    757804
    758805      ParameterConfigurationTree algorithmVc = metaOptimizationProblem.ParameterConfigurationTree;
    759806      ((IntValue)algorithmVc.AlgorithmConfiguration.ParameterConfigurations.Single(x => x.Name == "MaximumGenerations").ActualValue.Value).Value = baseAlgorithmMaxGenerations;
    760807      ((IntValue)algorithmVc.AlgorithmConfiguration.ParameterConfigurations.Single(x => x.Name == "PopulationSize").ActualValue.Value).Value = baseAlgorithmPopulationSize;
    761      
     808
    762809      //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);
    765812      //ConfigureElites(algorithmVc, 0, 10, 1);
    766813      //ConfigureSelectionOperator(algorithmVc, true);
    767814
    768       ConfigureSymbolicExpressionGrammar(algorithmVc);
     815      //ConfigureSymbolicExpressionGrammar(algorithmVc);
    769816
    770817      return algorithmVc;
     
    9921039
    9931040      ContentManager.Save((IStorableContent)metaLevelAlgorithm, resultPath + "-before.hl", true);
    994      
     1041
    9951042      using (var sw = new StreamWriter(outputPath)) {
    9961043        sw.AutoFlush = true;
     
    12621309    }
    12631310  }
     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  }
    12641350}
Note: See TracChangeset for help on using the changeset viewer.