Changeset 15575
- Timestamp:
- 01/05/18 00:22:04 (7 years ago)
- Location:
- branches/GeneralizedQAP/HeuristicLab.Problems.GeneralizedQuadraticAssignment.Algorithms/3.3
- Files:
-
- 2 added
- 1 deleted
- 2 edited
- 1 copied
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
branches/GeneralizedQAP/HeuristicLab.Problems.GeneralizedQuadraticAssignment.Algorithms/3.3/CPLEX/CplexSolver.cs
r15574 r15575 59 59 } 60 60 61 protected override void Initialize(CancellationToken cancellationToken) {62 base.Initialize(cancellationToken);63 64 try {65 Context.RunOperator(Analyzer, cancellationToken);66 } catch (OperationCanceledException) { }67 }68 69 61 protected override void Run(CancellationToken cancellationToken) { 70 62 var factory = new OplFactory(); … … 100 92 if (HasIncumbent()) { 101 93 var val = GetIncumbentObjValue(); 102 if (val == prev) return;94 if (val >= prev) return; 103 95 algorithm.Context.Iterations++; 104 96 algorithm.Context.BestQuality = val; -
branches/GeneralizedQAP/HeuristicLab.Problems.GeneralizedQuadraticAssignment.Algorithms/3.3/HeuristicLab.Problems.GeneralizedQuadraticAssignment.Algorithms-3.3.csproj
r15574 r15575 32 32 </PropertyGroup> 33 33 <PropertyGroup> 34 <SignAssembly> true</SignAssembly>34 <SignAssembly>false</SignAssembly> 35 35 </PropertyGroup> 36 36 <PropertyGroup> … … 38 38 </PropertyGroup> 39 39 <PropertyGroup> 40 <AssemblyOriginatorKeyFile>HeuristicLab.snk</AssemblyOriginatorKeyFile> 40 <AssemblyOriginatorKeyFile> 41 </AssemblyOriginatorKeyFile> 41 42 </PropertyGroup> 42 43 <ItemGroup> … … 133 134 <Compile Include="LocalSearch\IteratedLS.cs" /> 134 135 <Compile Include="LocalSearch\MultistartLS.cs" /> 136 <Compile Include="LocalSolverNet\GQAPIntegerSolver.cs" /> 137 <Compile Include="LocalSolverNet\LocalSolverContext.cs" /> 138 <Compile Include="LocalSolverNet\GQAPBinarySolver.cs" /> 135 139 <Compile Include="Plugin.cs" /> 136 140 <Compile Include="Infrastructure\Contexts\SingleSolutionContext.cs" /> … … 156 160 </ProjectReference> 157 161 </ItemGroup> 158 <ItemGroup>159 <None Include="HeuristicLab.snk" />160 </ItemGroup>161 162 <ItemGroup /> 162 163 <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> -
branches/GeneralizedQAP/HeuristicLab.Problems.GeneralizedQuadraticAssignment.Algorithms/3.3/LocalSolverNet/LocalSolverContext.cs
r15574 r15575 22 22 using HeuristicLab.Common; 23 23 using HeuristicLab.Core; 24 using HeuristicLab.Parameters; 24 25 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 25 26 26 namespace HeuristicLab.Problems.GeneralizedQuadraticAssignment.Algorithms.CPLEX { 27 [Item("CPLEX Context", "A context for CPLEX solvers.")] 28 public class CplexContext : SingleSolutionContext<ISingleObjectiveSolutionScope<GQAPSolution>> { 29 27 namespace HeuristicLab.Problems.GeneralizedQuadraticAssignment.Algorithms.LocalSolverNet { 28 [Item("LocalSolver Context", "A context for CPLEX solvers.")] 29 public class LocalSolverContext : SingleSolutionContext<ISingleObjectiveSolutionScope<GQAPSolution>> { 30 31 [Storable] 32 private IValueParameter<GQAP> problem; 33 public GQAP Problem { 34 get { return problem.Value; } 35 set { problem.Value = value; } 36 } 37 38 [Storable] 39 private IValueParameter<GQAPSolution> bestSolution; 40 public GQAPSolution BestSolution { 41 get { return bestSolution.Value; } 42 set { bestSolution.Value = value; } 43 } 44 30 45 [StorableConstructor] 31 protected CplexContext(bool deserializing) : base(deserializing) { }32 protected CplexContext(CplexContext original, Cloner cloner)46 protected LocalSolverContext(bool deserializing) : base(deserializing) { } 47 protected LocalSolverContext(LocalSolverContext original, Cloner cloner) 33 48 : base(original, cloner) { 49 problem = cloner.Clone(original.problem); 50 bestSolution = cloner.Clone(original.bestSolution); 34 51 } 35 public CplexContext() : base() { } 36 public CplexContext(string name) : base(name) { } 37 public CplexContext(string name, ParameterCollection parameters) : base(name, parameters) { } 38 public CplexContext(string name, string description) : base(name, description) { } 39 public CplexContext(string name, string description, ParameterCollection parameters) : base(name, description, parameters) { } 52 public LocalSolverContext() : base() { 53 Parameters.Add(problem = new ValueParameter<GQAP>("Problem")); 54 Parameters.Add(bestSolution = new ValueParameter<GQAPSolution>("BestFoundSolution")); 55 } 56 public LocalSolverContext(string name) : base(name) { 57 Parameters.Add(problem = new ValueParameter<GQAP>("Problem")); 58 Parameters.Add(bestSolution = new ValueParameter<GQAPSolution>("BestFoundSolution")); 59 } 60 public LocalSolverContext(string name, ParameterCollection parameters) : base(name, parameters) { 61 Parameters.Add(problem = new ValueParameter<GQAP>("Problem")); 62 Parameters.Add(bestSolution = new ValueParameter<GQAPSolution>("BestFoundSolution")); 63 } 64 public LocalSolverContext(string name, string description) : base(name, description) { 65 Parameters.Add(problem = new ValueParameter<GQAP>("Problem")); 66 Parameters.Add(bestSolution = new ValueParameter<GQAPSolution>("BestFoundSolution")); 67 } 68 public LocalSolverContext(string name, string description, ParameterCollection parameters) : base(name, description, parameters) { 69 Parameters.Add(problem = new ValueParameter<GQAP>("Problem")); 70 Parameters.Add(bestSolution = new ValueParameter<GQAPSolution>("BestFoundSolution")); 71 } 40 72 41 73 public override IDeepCloneable Clone(Cloner cloner) { 42 return new CplexContext(this, cloner); 74 return new LocalSolverContext(this, cloner); 75 } 76 77 public ISingleObjectiveSolutionScope<GQAPSolution> ToScope(GQAPSolution code, double fitness = double.NaN) { 78 var name = Problem.Encoding.Name; 79 var scope = new SingleObjectiveSolutionScope<GQAPSolution>(code, 80 name + "Solution", fitness, Problem.Evaluator.QualityParameter.ActualName) { 81 Parent = Scope 82 }; 83 scope.Variables.Add(new Variable(name, code.Assignment)); 84 scope.Variables.Add(new Variable("Evaluation", code.Evaluation)); 85 return scope; 43 86 } 44 87 }
Note: See TracChangeset
for help on using the changeset viewer.