Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
02/23/17 10:42:58 (7 years ago)
Author:
abeham
Message:

#2457: working on identification of problem instances

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/PerformanceComparison/ProblemInstanceIdentifier/InstanceExplorer.cs

    r14690 r14691  
    1 using System.Linq;
     1using System;
     2using System.Linq;
    23using System.Threading;
     4using HeuristicLab.Algorithms.MemPR.Permutation;
    35using HeuristicLab.Analysis.FitnessLandscape;
    46using HeuristicLab.Data;
     
    5759      var walk = new RandomWalk() {
    5860        SeedParameter = { Value = { Value = seed ?? 0 } },
    59         SetSeedRandomlyParameter = { Value = { Value = seed.HasValue } },
     61        SetSeedRandomlyParameter = { Value = { Value = !seed.HasValue } },
    6062        MaximumIterationsParameter = { Value = { Value = Iterations } },
    6163        RepetitionsParameter = { Value = { Value = 1 } }
     
    7173    }
    7274  }
     75
     76  public class MemPRExplorer : InstanceExplorer {
     77    public int Seconds { get; set; }
     78
     79    public bool IncludeLocalSearch { get; set; }
     80
     81    public override string Name { get { return "MemPR Explorer"; } }
     82    public override int Effort { get { return Seconds; } }
     83
     84    public MemPRExplorer() {
     85
     86    }
     87
     88    public override InstanceDescriptor Explore(QuadraticAssignmentProblem problem, int? seed = null) {
     89      var memPr = new PermutationMemPR();
     90      memPr.Problem = problem;
     91      memPr.Prepare(true);
     92      memPr.MaximumExecutionTime = TimeSpan.FromSeconds(Seconds);
     93      memPr.SetSeedRandomly = !seed.HasValue;
     94      memPr.Seed = seed ?? 0;
     95      memPr.StartSync();
     96      if (memPr.Context.RelinkedPaths.IsEmpty
     97        || IncludeLocalSearch && memPr.Context.LocalSearchPaths.IsEmpty) {
     98        Console.Write("{0} not all paths present!", problem.Name);
     99        return null;
     100      };
     101
     102      var features = PermutationPathAnalysis.GetCharacteristics(memPr.Context.RelinkedPaths.Paths.ToList());
     103      var result = features.GetValues();
     104      var resultNames = features.GetNames();
     105      if (IncludeLocalSearch) {
     106        features = PermutationPathAnalysis.GetCharacteristics(memPr.Context.LocalSearchPaths.Paths.ToList());
     107        result = result.Concat(features.GetValues()).ToArray();
     108        resultNames = resultNames.Concat(features.GetNames()).ToArray();
     109      }
     110      return new InstanceDescriptor(problem.Name, InstanceDescriptor.GetClass(problem.Name), problem.Weights.Rows, resultNames, result);
     111    }
     112  }
    73113}
Note: See TracChangeset for help on using the changeset viewer.