Changeset 7523 for branches/GeneralizedQAP/HeuristicLab.Problems.GeneralizedQuadraticAssignment/3.3/GeneralizedQuadraticAssignmentProblem.cs
- Timestamp:
- 02/24/12 23:27:06 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/GeneralizedQAP/HeuristicLab.Problems.GeneralizedQuadraticAssignment/3.3/GeneralizedQuadraticAssignmentProblem.cs
r7480 r7523 38 38 [Creatable("Problems")] 39 39 [StorableClass] 40 public sealed class GeneralizedQuadraticAssignmentProblem : SingleObjectiveHeuristicOptimizationProblem<IGQAPEvaluator, IGQAPSolutionCreator>, IStorableContent, IProblemInstanceConsumer<IQAPInstance>, IProblemInstanceConsumer<ICTAPInstance>, IProblemInstanceConsumer<ITSPInstance>, IProblemInstanceConsumer<IATSPInstance> { 40 public sealed class GeneralizedQuadraticAssignmentProblem : SingleObjectiveHeuristicOptimizationProblem<IGQAPEvaluator, IGQAPSolutionCreator>, IStorableContent, 41 IProblemInstanceConsumer<IQAPInstance>, 42 IProblemInstanceConsumer<ICTAPInstance>, 43 IProblemInstanceConsumer<ITSPInstance>, 44 IProblemInstanceConsumer<IATSPInstance>, 45 IProblemInstanceConsumer<IGQAPInstance> { 41 46 42 47 public override Image ItemImage { … … 208 213 } 209 214 215 #region Problem Instance Consumptions 210 216 public bool LoadFrom(IQAPInstance instance) { 211 217 try { … … 330 336 } 331 337 338 public bool LoadFrom(IGQAPInstance instance) { 339 try { 340 Name = instance.Name; 341 Description = instance.Description; 342 343 Capacities = new DoubleArray(instance.Capacities); 344 Demands = new DoubleArray(instance.Demands); 345 InstallationCosts = new DoubleMatrix(instance.InstallationCosts); 346 Weights = new DoubleMatrix(instance.Weights); 347 Distances = new DoubleMatrix(instance.Distances); 348 TransportationCosts.Value = instance.TransportationCosts; 349 350 if (instance.BestKnownAssignment != null) { 351 EvaluateAndLoadAssignment(instance.BestKnownAssignment); 352 } else if (instance.BestKnownQuality.HasValue) { 353 BestKnownQuality = new DoubleValue(instance.BestKnownQuality.Value); 354 BestKnownSolution = null; 355 BestKnownSolutions = null; 356 } else { 357 BestKnownQuality = null; 358 BestKnownSolution = null; 359 BestKnownSolutions = null; 360 } 361 } catch { 362 return false; 363 } 364 return true; 365 } 366 #endregion 367 332 368 private void EvaluateAndLoadAssignment(int[] vector) { 333 369 EvaluateAndLoadAssignment(new IntegerVector(vector)); 334 370 } 335 371 private void EvaluateAndLoadAssignment(IntegerVector assignment) { 336 if (!IsConfigurationValid()) return; 372 if (!IsConfigurationValid()) { 373 BestKnownQuality = null; 374 BestKnownSolution = null; 375 BestKnownSolutions = null; 376 } 337 377 double flowDistanceQuality, installationQuality, overbookedCapacity; 338 378 GQAPEvaluator.Evaluate(assignment, Weights, Distances, InstallationCosts, Demands, Capacities,
Note: See TracChangeset
for help on using the changeset viewer.