- Timestamp:
- 05/21/12 13:46:48 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/VehicleRoutingProblem.cs
r7203 r7852 92 92 } 93 93 94 public DoubleValue BestKnownQuality { 95 get { return BestKnownQualityParameter.Value; } 96 set { BestKnownQualityParameter.Value = value; } 97 } 98 94 99 public ISingleObjectiveEvaluator Evaluator { 95 get { return ProblemInstance.EvaluatorParameter.Value; }100 get { return EvaluatorParameter.Value; } 96 101 } 97 102 … … 101 106 102 107 public ISolutionCreator SolutionCreator { 103 get { return ProblemInstance.SolutionCreatorParameter.Value; }108 get { return SolutionCreatorParameter.Value; } 104 109 } 105 110 … … 121 126 Parameters.Add(new OptionalValueParameter<VRPSolution>("BestKnownSolution", "The best known solution of this VRP instance.")); 122 127 128 Parameters.Add(new ConstrainedValueParameter<IVRPCreator>("SolutionCreator", "The operator which should be used to create new VRP solutions.")); 129 Parameters.Add(new ValueParameter<IVRPEvaluator>("Evaluator", "The operator which should be used to evaluate VRP solutions.")); 130 131 EvaluatorParameter.Hidden = true; 132 123 133 operators = new List<IOperator>(); 124 134 … … 175 185 176 186 private void AttachProblemInstanceEventHandlers() { 177 if (Parameters.ContainsKey("Evaluator")) 178 Parameters.Remove("Evaluator"); 179 180 if (Parameters.ContainsKey("SolutionCreator")) 181 Parameters.Remove("SolutionCreator"); 182 183 if (Parameters.ContainsKey("BestKnownSolution")) 184 Parameters.Remove("BestKnownSolution"); 185 186 if (Parameters.ContainsKey("BestKnownQuality")) 187 Parameters.Remove("BestKnownQuality"); 188 187 var solutionCreatorParameter = SolutionCreatorParameter as ConstrainedValueParameter<IVRPCreator>; 188 solutionCreatorParameter.ValidValues.Clear(); 189 189 190 190 if (ProblemInstance != null) { 191 ProblemInstance.SolutionCreatorParameter.ValueChanged += new EventHandler(SolutionCreatorParameter_ValueChanged); 192 ProblemInstance.EvaluatorParameter.ValueChanged += new EventHandler(EvaluatorParameter_ValueChanged); 193 Parameters.Add(ProblemInstance.EvaluatorParameter); 194 Parameters.Add(ProblemInstance.SolutionCreatorParameter); 195 196 Parameters.Add(ProblemInstance.BestKnownQualityParameter); 197 Parameters.Add(ProblemInstance.BestKnownSolutionParameter); 191 EvaluatorParameter.Value = ProblemInstance.SolutionEvaluator; 192 foreach (IVRPCreator creator in ProblemInstance.Operators.Where(o => o is IVRPCreator)) { 193 solutionCreatorParameter.ValidValues.Add(creator); 194 } 195 ProblemInstance.EvaluationChanged += new EventHandler(ProblemInstance_EvaluationChanged); 196 } 197 } 198 199 void ProblemInstance_EvaluationChanged(object sender, EventArgs e) { 200 if (BestKnownSolution != null) { 201 //call evaluator 202 BestKnownQuality = new DoubleValue(ProblemInstance.Evaluate(BestKnownSolution.Solution).Quality); 203 BestKnownSolution.Quality = BestKnownQuality; 204 } else { 205 BestKnownQuality = null; 198 206 } 199 207 } … … 260 268 parser.Parse(); 261 269 270 this.Name = parser.ProblemName; 262 271 MDCVRPTWProblemInstance problem = new MDCVRPTWProblemInstance(); 263 272 … … 291 300 parser.Parse(); 292 301 302 this.Name = parser.ProblemName; 293 303 CVRPPDTWProblemInstance problem = new CVRPPDTWProblemInstance(); 294 304 … … 444 454 else { 445 455 VRPSolution solution = new VRPSolution(ProblemInstance, encoding, new DoubleValue(0)); 446 ProblemInstance.BestKnownSolutionParameter.Value = solution;456 BestKnownSolutionParameter.Value = solution; 447 457 } 448 458 }
Note: See TracChangeset
for help on using the changeset viewer.