Free cookie consent management tool by TermsFeed Policy Generator

source: branches/OaaS/HeuristicLab.Services.Optimization.Web/Mappings/tsp.cs @ 8958

Last change on this file since 8958 was 8958, checked in by fschoepp, 11 years ago

#1888:

  • Added a administrator web interface for job management
  • Fixed Hive Client (PluginValidator) to find the assemblies within the right directories
  • Reorganized controller classes (Folders HL, Interfaces, Azure)
  • You may now successfully schedule and run jobs with the web ui.
File size: 2.9 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using HeuristicLab.Data;
6using HeuristicLab.Services.Optimization.ControllerService.Model;
7using HeuristicLab.Optimization;
8using HeuristicLab.Services.Optimization.ControllerService;
9using HeuristicLab.Algorithms.GeneticAlgorithm;
10using HeuristicLab.Problems.TravelingSalesman;
11public class TSPScenarioMapper : IScenarioMapper {
12  public void MapScenario(OptimizationScenario scenario, IAlgorithm algorithm) {
13    Console.WriteLine("Mapping scenario!");
14    var ga = algorithm as GeneticAlgorithm;
15    var problem = algorithm.Problem as TravelingSalesmanProblem;
16                 
17    problem.BestKnownQuality = HLMapper.ConvertToDoubleValue(scenario.InputParameters.FindByName("BestKnownQuality"));
18    problem.BestKnownSolution = HLMapper.ConvertToPermutation(scenario.InputParameters.FindByName("BestKnownSolution"));
19    problem.Coordinates = HLMapper.ConvertToDoubleMatrix(scenario.InputParameters.FindByName("Coordinates"));
20    var evalParam = HLMapper.GetStringValue(scenario.InputParameters.FindByName("EvaluatorParameter"));
21    if (evalParam == "HeuristicLab.Problems.TravelingSalesman.TSPRoundedEuclideanPathEvaluator") {
22      problem.EvaluatorParameter.Value = new TSPRoundedEuclideanPathEvaluator();
23    }
24    else if (evalParam == "HeuristicLab.Problems.TravelingSalesman.TSPGeoPathEvaluator") {
25      problem.EvaluatorParameter.Value = new TSPGeoPathEvaluator();
26    }
27    else {
28      problem.EvaluatorParameter.Value = new TSPEuclideanPathEvaluator();
29    }
30    problem.UseDistanceMatrix = HLMapper.ConvertToBoolValue(scenario.InputParameters.FindByName("UseDistanceMatrix"));
31    Console.WriteLine("Mapping algorithm...");
32    ga.Mutator = HLMapper.FindInItemSet<HeuristicLab.Optimization.IManipulator>(ga.MutatorParameter.ValidValues, scenario.AlgorithmParameters.FindByName("Mutator"));
33    ga.CrossoverParameter.Value = HLMapper.FindOperator<HeuristicLab.Optimization.ICrossover>(problem, scenario.AlgorithmParameters.FindByName("CrossoverParameter"));
34    ga.Elites = HLMapper.ConvertToIntValue(scenario.AlgorithmParameters.FindByName("Elites"));
35    ga.MaximumGenerations = HLMapper.ConvertToIntValue(scenario.AlgorithmParameters.FindByName("MaximumGenerations"));
36    ga.MutationProbability = HLMapper.ConvertToPercentValue(scenario.AlgorithmParameters.FindByName("MutationProbability"));               
37    ga.PopulationSize = HLMapper.ConvertToIntValue(scenario.AlgorithmParameters.FindByName("PopulationSize"));
38    ga.Seed = HLMapper.ConvertToIntValue(scenario.AlgorithmParameters.FindByName("Seed"));
39    ga.Selector = HLMapper.FindInItemSet<HeuristicLab.Optimization.ISelector>(ga.SelectorParameter.ValidValues, scenario.AlgorithmParameters.FindByName("Selector"));
40    ga.SetSeedRandomly = HLMapper.ConvertToBoolValue(scenario.AlgorithmParameters.FindByName("SetSeedRandomly"));
41  }
42}
Note: See TracBrowser for help on using the repository browser.