Changeset 15341 for branches/PushGP/HeuristicLab.PushGP/Push.Thesis
- Timestamp:
- 08/28/17 09:03:34 (7 years ago)
- Location:
- branches/PushGP/HeuristicLab.PushGP/Push.Thesis
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/PushGP/HeuristicLab.PushGP/Push.Thesis/Program.cs
r15334 r15341 3 3 4 4 namespace Push.Thesis { 5 using System.Collections.Generic; 5 6 using System.IO; 7 using System.Threading; 6 8 using System.Threading.Tasks; 7 9 8 10 using HeuristicLab.Algorithms.GeneticAlgorithm; 9 11 using HeuristicLab.BenchmarkSuite; 12 using HeuristicLab.Clients.Hive; 13 using HeuristicLab.Core; 14 using HeuristicLab.MainForm; 10 15 using HeuristicLab.Optimization; 11 16 using HeuristicLab.ParallelEngine; 12 17 using HeuristicLab.Persistence.Default.Xml; 18 using HeuristicLab.Problems.Instances; 13 19 using HeuristicLab.Problems.ProgramSynthesis.Push.Analyzer; 14 20 using HeuristicLab.Problems.ProgramSynthesis.Push.Crossover; … … 18 24 using HeuristicLab.Problems.ProgramSynthesis.Push.Problem.BenchmarkSuite; 19 25 using HeuristicLab.Problems.ProgramSynthesis.Push.Selector; 26 using HeuristicLab.SequentialEngine; 20 27 21 28 class Program { … … 23 30 //BuildListOfInstructions(); 24 31 GenerateRuns(); 25 GenerateExperiments(); 32 //GenerateExperiments(false); 33 //GenerateHiveHJobs(); 26 34 //GenerateExperimentWithAllProblems(); 35 36 //var cancellationTokenSource = new CancellationTokenSource(); 37 //var progress = UploadHiveJob(new Median(), cancellationTokenSource.Token); 38 //progress.ProgressStateChanged += (sender, a) => { 39 // if (progress.ProgressState == ProgressState.Finished) { 40 // Environment.Exit(0); 41 // } 42 //}; 43 44 //Console.ReadKey(false); 27 45 } 28 46 … … 54 72 } 55 73 56 static void GenerateExperiments( ) {74 static void GenerateExperiments(bool parallel = true) { 57 75 var provider = new BenchmarkSuiteInstanceProvider(); 58 76 var descriptors = provider.GetDataDescriptors(); … … 60 78 Parallel.ForEach(descriptors, descriptor => { 61 79 var benchmarkSuiteProblemDescriptor = (BenchmarkSuiteDataDescriptor)descriptor; 62 var alg = GetAlgorithm(benchmarkSuiteProblemDescriptor );63 var experiment = GetExperiment(alg, 10);80 var alg = GetAlgorithm(benchmarkSuiteProblemDescriptor, parallel); 81 var experiment = GetExperiment(alg, 50); 64 82 65 83 XmlGenerator.Serialize(experiment, $@"C:\tmp\Plush - GA\Experiments\Experiment_{descriptor.Name}.hl"); … … 67 85 } 68 86 87 static IProgress UploadHiveJob(IBenchmarkSuiteDataDescriptor descriptor, CancellationToken token) { 88 var job = GenerateHiveJob(descriptor); 89 HiveClient.StartJob(e => { }, job, token); 90 91 return job.Progress; 92 } 93 94 static IEnumerable<RefreshableJob> GenerateHiveHJobs() { 95 var provider = new BenchmarkSuiteInstanceProvider(); 96 var descriptors = provider.GetDataDescriptors(); 97 var jobs = descriptors 98 .AsParallel() 99 .Select(GenerateHiveJob); 100 101 return jobs; 102 } 103 104 static RefreshableJob GenerateHiveJob(IDataDescriptor descriptor) { 105 var alg = GetAlgorithm((IBenchmarkSuiteDataDescriptor)descriptor, false); 106 var experiment = GetExperiment(alg, 50); 107 var job = GenerateHiveJob(experiment); 108 109 return job; 110 } 111 112 static RefreshableJob GenerateHiveJob(IOptimizer optimizer) { 113 var hiveTask = ItemTask.GetItemTaskForItem(optimizer); 114 var task = hiveTask.CreateHiveTask(); 115 var job = new RefreshableJob { 116 Job = 117 { 118 Name = "[SFL][pkimmesw] - " + optimizer.Name, 119 ResourceNames = "HEAL;Labs" 120 } 121 }; 122 123 task.ItemTask.ComputeInParallel = true; 124 125 return job; 126 } 127 69 128 static Experiment GetExperiment(IAlgorithm alg, int repeats) { 70 var experiment = new Experiment( "Experiment: " +alg.Problem.Name);129 var experiment = new Experiment(alg.Problem.Name); 71 130 experiment.Optimizers.Add(new BatchRun { 72 131 Optimizer = alg, … … 77 136 } 78 137 79 static IAlgorithm GetAlgorithm(IBenchmarkSuiteDataDescriptor descriptor ) {138 static IAlgorithm GetAlgorithm(IBenchmarkSuiteDataDescriptor descriptor, bool parallel = true) { 80 139 var ga = new GeneticAlgorithm(); 81 140 … … 128 187 } 129 188 130 ga.Engine = new ParallelEngine(); 189 ga.Engine = parallel 190 ? (IEngine)new ParallelEngine() 191 : (IEngine)new SequentialEngine(); 131 192 132 193 return ga; -
branches/PushGP/HeuristicLab.PushGP/Push.Thesis/Push.Thesis.csproj
r15334 r15341 42 42 <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Analysis-3.3.dll</HintPath> 43 43 </Reference> 44 <Reference Include="HeuristicLab.Clients.Hive-3.3"> 45 <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Clients.Hive-3.3.dll</HintPath> 46 </Reference> 44 47 <Reference Include="HeuristicLab.Collections-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL"> 45 48 <SpecificVersion>False</SpecificVersion> … … 58 61 </Reference> 59 62 <Reference Include="HeuristicLab.Encodings.IntegerVectorEncoding-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec" /> 63 <Reference Include="HeuristicLab.Hive-3.3"> 64 <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Hive-3.3.dll</HintPath> 65 </Reference> 66 <Reference Include="HeuristicLab.MainForm-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL"> 67 <SpecificVersion>False</SpecificVersion> 68 <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.MainForm-3.3.dll</HintPath> 69 </Reference> 60 70 <Reference Include="HeuristicLab.Operators-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL"> 61 71 <SpecificVersion>False</SpecificVersion> … … 82 92 </Reference> 83 93 <Reference Include="HeuristicLab.Selection-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec" /> 94 <Reference Include="HeuristicLab.SequentialEngine-3.3"> 95 <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.SequentialEngine-3.3.dll</HintPath> 96 </Reference> 84 97 <Reference Include="System" /> 85 98 <Reference Include="System.Core" /> 99 <Reference Include="System.Runtime.Serialization" /> 86 100 <Reference Include="System.Xml.Linq" /> 87 101 <Reference Include="System.Data.DataSetExtensions" />
Note: See TracChangeset
for help on using the changeset viewer.