Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
01/27/12 02:01:25 (12 years ago)
Author:
abeham
Message:

#1614

  • Added shaking operator based on n-moves
  • Added pareto analyzer regarding flowdistance and installation qualities
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/GeneralizedQAP/HeuristicLab.Problems.GeneralizedQuadraticAssignment/3.3/Analyzers/BestGQAPSolutionAnalyzer.cs

    r7415 r7418  
    130130    }
    131131
    132     [StorableHook(HookType.AfterDeserialization)]
    133     private void AfterDeserialization() {
    134       // BackwardsCompatibility3.3
    135       #region Backwards compatible code, remove with 3.4
    136       if (!Parameters.ContainsKey("EquipmentNames"))
    137         Parameters.Add(new LookupParameter<StringArray>("EquipmentNames", "Optional: A list of names that describes the equipments."));
    138       if (!Parameters.ContainsKey("LocationNames"))
    139         Parameters.Add(new LookupParameter<StringArray>("LocationNames", "Optional: A list of names that describes the locations."));
    140       #endregion
    141     }
    142 
    143132    public override IOperation Apply() {
    144133      var assignments = AssignmentParameter.ActualValue;
     
    172161      GQAPAssignment assignment = BestSolutionParameter.ActualValue;
    173162      if (assignment == null) {
    174         assignment = new GQAPAssignment((IntegerVector)assignments[bestIndex].Clone(), (DoubleValue)qualities[bestIndex].Clone(),
    175           equipmentNames, locationNames, distances, weights, installationCosts, demands, capacities, transportationCosts,
    176           overbookedCapacityPenalty, flowDistanceQualities[bestIndex], installationQualities[bestIndex], overbookedCapacities[bestIndex]);
     163        assignment = new GQAPAssignment((IntegerVector)assignments[bestIndex].Clone(), (DoubleValue)qualities[bestIndex].Clone(), flowDistanceQualities[bestIndex], overbookedCapacities[bestIndex], installationQualities[bestIndex], equipmentNames, locationNames, distances, weights, installationCosts, demands, capacities, transportationCosts, overbookedCapacityPenalty);
    177164        assignment.Distances = distances;
    178165        BestSolutionParameter.ActualValue = assignment;
    179166        results.Add(new Result("Best GQAP Solution", assignment));
    180167      } else {
    181         if (HasSolutionImproved(assignment.Quality.Value, qualities[bestIndex].Value, maximization)) {
    182           assignment.Assignment = (IntegerVector)assignments[bestIndex].Clone();
    183           assignment.Quality = (DoubleValue)qualities[bestIndex].Clone();
     168        if (HasSolutionImproved(assignment.Solution.Quality.Value, qualities[bestIndex].Value, maximization)) {
     169          assignment.Solution = new GQAPSolution((IntegerVector)assignments[bestIndex].Clone(),
     170            (DoubleValue)qualities[bestIndex].Clone(), (DoubleValue)flowDistanceQualities[bestIndex].Clone(),
     171            (DoubleValue)installationQualities[bestIndex].Clone(), (DoubleValue)overbookedCapacities[bestIndex].Clone());
    184172          assignment.EquipmentNames = equipmentNames;
    185173          assignment.LocationNames = locationNames;
     
    191179          assignment.TransportationCosts = transportationCosts;
    192180          assignment.OverbookedCapacityPenalty = overbookedCapacityPenalty;
    193           assignment.FlowDistanceQuality = (DoubleValue)flowDistanceQualities[bestIndex].Clone();
    194           assignment.InstallationQuality = (DoubleValue)installationQualities[bestIndex].Clone();
    195           assignment.OverbookedCapacity = (DoubleValue)overbookedCapacities[bestIndex].Clone();
    196181        }
    197182      }
Note: See TracChangeset for help on using the changeset viewer.