Free cookie consent management tool by TermsFeed Policy Generator

source: branches/3026_IntegrationIntoSymSpace/Heuristiclab.ConfigStarter/Program.cs @ 17481

Last change on this file since 17481 was 17477, checked in by dpiringe, 5 years ago

#3026:

  • refactored JsonTemplateInstantiator -> now returns a InstantiatorResult which contains the optimizer and an IEnumerable of IResultJsonItem
  • code cleanup in JCGenerator
  • relocated the serialization of json items into IJsonItem with method GenerateJObject (virtual base implementation in JsonItem)
    • this allows custom serialization for json items (example: ValueLookupJsonItem)
    • items of interface IIntervalRestrictedJsonItem have a custom implementation of GenerateJObject -> hides Minimum and Maximum if the values are the physically min/max of their type
  • code cleanup in BaseConverter
File size: 2.2 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using System.Threading.Tasks;
6using HeuristicLab.PluginInfrastructure;
7using HeuristicLab.JsonInterface.App;
8using HeuristicLab.Algorithms.GeneticAlgorithm;
9using HeuristicLab.Problems.TravelingSalesman;
10using HeuristicLab.JsonInterface;
11using System.IO;
12using HeuristicLab.Problems.DataAnalysis.Symbolic.Regression;
13using HeuristicLab.PluginInfrastructure.Manager;
14using HeuristicLab.SequentialEngine;
15using System.Threading;
16
17namespace Heuristiclab.ConfigStarter {
18  public class Program {
19
20    public static void Main(string[] args) {
21
22      try {
23        string pluginPath = Path.GetFullPath(Directory.GetCurrentDirectory());
24        var pluginManager = new PluginManager(pluginPath);
25        pluginManager.DiscoverAndCheckPlugins();
26       
27      } catch(Exception e) {
28        Console.WriteLine(e);
29      }
30
31      HEAL.Attic.Mapper.StaticCache.UpdateRegisteredTypes();
32
33
34      HeuristicLabJsonInterfaceAppApplication app = new HeuristicLabJsonInterfaceAppApplication();
35
36      GeneticAlgorithm alg = new GeneticAlgorithm();
37      alg.MaximumGenerations.Value = 10000;
38      TravelingSalesmanProblem tsp = new TravelingSalesmanProblem();
39      tsp.Coordinates[0, 0] = 123;
40
41
42
43      SymbolicRegressionSingleObjectiveProblem prop = new SymbolicRegressionSingleObjectiveProblem();
44     
45      alg.Problem = prop;
46
47      IJsonItem root = JsonItemConverter.Extract(alg);
48      ActivateJsonItems(root);
49
50      JCGenerator.GenerateTemplate(@"C:\Workspace", "Template", alg, root);
51     
52      List<ICommandLineArgument> arguments = new List<ICommandLineArgument>();
53      arguments.Add(new StartArgument("JsonInterface"));
54      arguments.Add(new OpenArgument(@"C:\Workspace\Template.json"));
55      arguments.Add(new OpenArgument(@"C:\Workspace\Config.json"));
56      arguments.Add(new StringArgument(@"C:\Workspace\Output.json"));
57
58      app.Run(arguments.ToArray());
59     
60    }
61
62    private static void ActivateJsonItems(IJsonItem item) {
63      foreach (var x in item) {
64        x.Active = true;
65        if (x is ValueLookupJsonItem i) {
66          i.Active = true;
67        }
68      }
69    }
70  }
71}
Note: See TracBrowser for help on using the repository browser.