Free cookie consent management tool by TermsFeed Policy Generator

source: branches/OaaS/HeuristicLab.Services.Optimization.Controller/Parameters/HL/PathTSPParameterHandler.cs @ 12344

Last change on this file since 12344 was 9350, checked in by fschoepp, 12 years ago

#1888:

  • Added input parameters to the run class. They will be populated by the back-end and returned to the web pages which renders them.
  • Added a ParameterMapper class which converts HL specific model classes to OaaS independent classes. The conversion gets delegated to IParameterHandler which have to be implemented manually and registered for a certain Type before. All parameters which can be converted to IStringConvertible, IStringConvertibleMatrix, IString* will be converted into a OaaS-StringValue instance.
  • Added IParameterHandlers for PathTSPTour and PermutationType (required for TSP).
  • AlgorithmConverter now makes sure that the id of a run is unique. (All runs of a RunList will be shown now.)
  • Web pages are capable of rendering both the results of a run and their input parameters (added a accordion to wrap their content).
  • Renamed "Traveling Salesman Problem" to "Genetic Algorithm - TSP".
  • Changed js-files to render both input and result parameters of a Run.
File size: 1.1 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using HeuristicLab.Core;
6using HeuristicLab.Problems.TravelingSalesman;
7
8namespace HeuristicLab.Services.Optimization.ControllerService.Parameters.HL {
9  public class PathTSPParameterHandler : IParameterHandler<IItem> {
10    public Type HandledType {
11      get {
12        return typeof(PathTSPTour);
13      }
14    }
15
16    public Model.Parameter Map(IItem item) {
17      var tour = item as PathTSPTour;
18      var parameter = new Model.Parameter();
19      var resultMatrix = new Model.DecimalMatrix();
20      // simply create a matrix which contains all the coordinates in correct order
21      // the client may now display them as table
22      double[][] matrix = new double[tour.Permutation.Length][];
23     
24      for (var i=0; i < tour.Permutation.Length; i++) {
25        matrix[i] = new double[2];
26        matrix[i][0] = tour.Coordinates[tour.Permutation[i], 0];
27        matrix[i][1] = tour.Coordinates[tour.Permutation[i], 1];
28      }
29      parameter.Value = new Model.DecimalMatrix() { Value = matrix };
30      return parameter;
31    }
32  }
33}
Note: See TracBrowser for help on using the repository browser.