- Timestamp:
- 02/23/17 10:42:58 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/PerformanceComparison/ProblemInstanceIdentifier/InstanceExplorer.cs
r14690 r14691 1 using System.Linq; 1 using System; 2 using System.Linq; 2 3 using System.Threading; 4 using HeuristicLab.Algorithms.MemPR.Permutation; 3 5 using HeuristicLab.Analysis.FitnessLandscape; 4 6 using HeuristicLab.Data; … … 57 59 var walk = new RandomWalk() { 58 60 SeedParameter = { Value = { Value = seed ?? 0 } }, 59 SetSeedRandomlyParameter = { Value = { Value = seed.HasValue } },61 SetSeedRandomlyParameter = { Value = { Value = !seed.HasValue } }, 60 62 MaximumIterationsParameter = { Value = { Value = Iterations } }, 61 63 RepetitionsParameter = { Value = { Value = 1 } } … … 71 73 } 72 74 } 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 } 73 113 }
Note: See TracChangeset
for help on using the changeset viewer.