Changeset 11202 for branches/HiveStatistics/sources/HeuristicLab.Problems.LinearAssignment/3.3/LinearAssignmentProblemSolver.cs
- Timestamp:
- 07/18/14 12:01:13 (10 years ago)
- Location:
- branches/HiveStatistics/sources
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HiveStatistics/sources
- Property svn:ignore
-
old new 8 8 FxCopResults.txt 9 9 Google.ProtocolBuffers-0.9.1.dll 10 Google.ProtocolBuffers-2.4.1.473.dll 10 11 HeuristicLab 3.3.5.1.ReSharper.user 11 12 HeuristicLab 3.3.6.0.ReSharper.user 12 13 HeuristicLab.4.5.resharper.user 13 14 HeuristicLab.ExtLibs.6.0.ReSharper.user 15 HeuristicLab.Scripting.Development 14 16 HeuristicLab.resharper.user 15 17 ProtoGen.exe … … 17 19 _ReSharper.HeuristicLab 18 20 _ReSharper.HeuristicLab 3.3 21 _ReSharper.HeuristicLab 3.3 Tests 19 22 _ReSharper.HeuristicLab.ExtLibs 20 23 bin 21 24 protoc.exe 22 _ReSharper.HeuristicLab 3.3 Tests23 Google.ProtocolBuffers-2.4.1.473.dll
-
- Property svn:mergeinfo changed
- Property svn:ignore
-
branches/HiveStatistics/sources/HeuristicLab.Problems.LinearAssignment/3.3/LinearAssignmentProblemSolver.cs
r8022 r11202 1 1 #region License Information 2 2 /* HeuristicLab 3 * Copyright (C) 2002-201 2Heuristic and Evolutionary Algorithms Laboratory (HEAL)3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 4 * 5 5 * This file is part of HeuristicLab. … … 34 34 private const int UNASSIGNED = -1; 35 35 36 public IValueLookupParameter<BoolValue> MaximizationParameter { 37 get { return (IValueLookupParameter<BoolValue>)Parameters["Maximization"]; } 38 } 36 39 public ILookupParameter<DoubleMatrix> CostsParameter { 37 40 get { return (ILookupParameter<DoubleMatrix>)Parameters["Costs"]; } … … 49 52 public LinearAssignmentProblemSolver() 50 53 : base() { 54 Parameters.Add(new ValueLookupParameter<BoolValue>("Maximization", "Whether the costs should be maximized or minimized.")); 51 55 Parameters.Add(new LookupParameter<DoubleMatrix>("Costs", LinearAssignmentProblem.CostsDescription)); 52 56 Parameters.Add(new LookupParameter<Permutation>("Assignment", "The assignment solution to create.")); … … 58 62 } 59 63 64 [StorableHook(HookType.AfterDeserialization)] 65 private void AfterDeserialization() { 66 // BackwardsCompatibility3.3 67 #region Backwards compatible code, remove with 3.4 68 if (!Parameters.ContainsKey("Maximization")) 69 Parameters.Add(new ValueLookupParameter<BoolValue>("Maximization", "Whether the costs should be maximized or minimized.")); 70 #endregion 71 } 72 60 73 public override IOperation Apply() { 61 74 var costs = CostsParameter.ActualValue; 75 var maximization = MaximizationParameter.ActualValue.Value; 76 if (maximization) { 77 costs = (DoubleMatrix)costs.Clone(); 78 for (int i = 0; i < costs.Rows; i++) 79 for (int j = 0; j < costs.Rows; j++) 80 costs[i, j] = -costs[i, j]; 81 } 62 82 double quality; 63 83 var solution = Solve(costs, out quality); 64 84 65 85 AssignmentParameter.ActualValue = new Permutation(PermutationTypes.Absolute, solution); 86 if (maximization) quality = -quality; 66 87 QualityParameter.ActualValue = new DoubleValue(quality); 67 88
Note: See TracChangeset
for help on using the changeset viewer.