Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
01/25/17 01:53:30 (7 years ago)
Author:
pkimmesw
Message:

#2665 PushGP HL Integration

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/PushGP/HeuristicLab.Algorithms.PushGP/HeuristicLab.Algorithms.PushGP.Cli/Program.cs

    r14513 r14602  
    2626
    2727      Console.WriteLine("\nPress any key to continue...");
     28
     29      //if (args.Length == 0) return;
     30
     31      //var code = args[0];
     32      //EvaluateStepwise(code).Wait();
     33
    2834      Console.ReadKey();
    2935    }
    3036
    31     static void SimpleTest() {
    32       var interpreter = new PushGpInterpreter();
    33 
    34       interpreter.Interpret("5 INTEGER.DUP INTEGER.+");
    35 
    36       interpreter.PrintStacks();
    37     }
    38 
    39     static async Task Stepwise() {
    40       var interpreter = new PushGpInterpreter();
    41 
    42       interpreter.InterpretAsync("( 0 2 CODE.QUOTE ( 1 INTEGER.+ 0 3 CODE.QUOTE ( 1 INTEGER.+ INTEGER.* ) CODE.DO*RANGE INTEGER.+ ) CODE.DO*RANGE )", true).Wait();
     37    static async Task EvaluateStepwise(string code) {
     38      var interpreter = new PushGpInterpreter(new Configuration {
     39        TopLevelPushCode = false
     40      });
     41
     42      interpreter.RunAsync(code, true).Wait();
    4343
    4444      while (!interpreter.IsCompleted) {
     
    5959    }
    6060
     61    static void SimpleTest() {
     62      var interpreter = new PushGpInterpreter();
     63
     64      interpreter.Run("5 INTEGER.DUP INTEGER.+");
     65
     66      interpreter.PrintStacks();
     67    }
     68
     69    static async Task Stepwise() {
     70      var interpreter = new PushGpInterpreter();
     71
     72      interpreter.RunAsync("( 0 2 CODE.QUOTE ( 1 INTEGER.+ 0 3 CODE.QUOTE ( 1 INTEGER.+ INTEGER.* ) CODE.DO*RANGE INTEGER.+ ) CODE.DO*RANGE )", true).Wait();
     73
     74      while (!interpreter.IsCompleted) {
     75        Console.Clear();
     76        interpreter.PrintStacks();
     77        interpreter.Step();
     78
     79        var input = Console.ReadKey();
     80        if (input.Key == ConsoleKey.Escape) {
     81          break;
     82        } else if (input.Key == ConsoleKey.Spacebar) {
     83          await interpreter.ResumeAsync();
     84        }
     85      }
     86
     87      Console.Clear();
     88      interpreter.PrintStacks();
     89    }
     90
    6191    static void PerformanceTestInterpreter() {
    6292      var program = PushGPParser.Parse("( 5 INTEGER.DUP INTEGER.+ )");
     
    6797      sw.Start();
    6898      for (var i = 0; i < 60000000; i++) {
    69         interpreter.Interpret(program);
     99        interpreter.Run(program);
    70100        interpreter.Clear();
    71101      }
     
    94124
    95125          for (var j = 0; j < amount; j++) {
    96             interpreter.Interpret(program);
     126            interpreter.Run(program);
    97127            interpreter.Clear();
    98128          }
     
    111141      sw.Stop();
    112142
    113       Console.WriteLine(string.Format("Generated {0} in {1}", expressions.Count(), sw.Elapsed));
     143      Console.WriteLine("Generated {0} in {1}", expressions.Count(), sw.Elapsed);
    114144    }
    115145
     
    131161            var program = CodeGenerator.RandomProgram(maxProgramSizeLimit);
    132162
    133             interpreter.Interpret(program);
     163            interpreter.Run(program);
    134164
    135165            execCounters[i] += interpreter.ExecCounter;
     
    150180
    151181      using (var interpreter = pool.GetInstance()) {
    152         interpreter.Interpret("( 1 2 INTEGER.+ )");
     182        interpreter.Run("( 1 2 INTEGER.+ )");
    153183
    154184        id = interpreter.GetHashCode();
     
    158188      using (var interpreter = pool.GetInstance())
    159189      using (var interpreter2 = pool.GetInstance()) {
    160         interpreter.Interpret("( 1 2 INTEGER.+ )");
     190        interpreter.Run("( 1 2 INTEGER.+ )");
    161191        if (id == interpreter.GetHashCode()) Console.WriteLine("equal 2");
    162192        if (id == interpreter2.GetHashCode()) Console.WriteLine("equal 3");
     
    198228        solution => {
    199229          interpreter.Clear();
    200           interpreter.Interpret(solution);
     230          interpreter.Run(solution);
    201231          return interpreter.IntegerStack.Top == 10;
    202232        });
Note: See TracChangeset for help on using the changeset viewer.