Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
02/24/12 23:27:06 (12 years ago)
Author:
abeham
Message:

#1614

  • sorted operators
  • added crossover defined by Cordeau et al.
  • fixed a few bugs
Location:
branches/GeneralizedQAP/HeuristicLab.Problems.GeneralizedQuadraticAssignment/3.3
Files:
7 added
2 edited
17 moved

Legend:

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

    r7480 r7523  
    3838  [Creatable("Problems")]
    3939  [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> {
    4146
    4247    public override Image ItemImage {
     
    208213    }
    209214
     215    #region Problem Instance Consumptions
    210216    public bool LoadFrom(IQAPInstance instance) {
    211217      try {
     
    330336    }
    331337
     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
    332368    private void EvaluateAndLoadAssignment(int[] vector) {
    333369      EvaluateAndLoadAssignment(new IntegerVector(vector));
    334370    }
    335371    private void EvaluateAndLoadAssignment(IntegerVector assignment) {
    336       if (!IsConfigurationValid()) return;
     372      if (!IsConfigurationValid()) {
     373        BestKnownQuality = null;
     374        BestKnownSolution = null;
     375        BestKnownSolutions = null;
     376      }
    337377      double flowDistanceQuality, installationQuality, overbookedCapacity;
    338378      GQAPEvaluator.Evaluate(assignment, Weights, Distances, InstallationCosts, Demands, Capacities,
  • branches/GeneralizedQAP/HeuristicLab.Problems.GeneralizedQuadraticAssignment/3.3/HeuristicLab.Problems.GeneralizedQuadraticAssignment-3.3.csproj

    r7505 r7523  
    9999    <Compile Include="Evaluators\GQAPNMoveEvaluator.cs" />
    100100    <Compile Include="GQAPAssignment.cs" />
     101    <Compile Include="Operators\Crossovers\CordeauCrossover.cs" />
     102    <Compile Include="SolutionCreators\GQAPSolutionCreator.cs" />
     103    <Compile Include="SolutionCreators\GQAPStochasticSolutionCreator.cs" />
     104    <Compile Include="SolutionCreators\GreedyRandomizedSolutionCreator.cs" />
     105    <Compile Include="SolutionCreators\RandomSolutionCreator.cs" />
    101106    <None Include="Plugin.cs.frame" />
    102107    <Compile Include="Evaluators\GQAPEvaluator.cs" />
     
    140145    <Compile Include="Moves\StochasticNMoveMultiMoveGenerator.cs" />
    141146    <Compile Include="Moves\StochasticNMoveSingleMoveGenerator.cs" />
    142     <Compile Include="Operators\ApproximateLocalSearch.cs" />
    143     <Compile Include="Operators\MultiGQAPCrossover.cs" />
    144     <Compile Include="Operators\GQAPPathRelinking.cs" />
    145     <Compile Include="Operators\GQAPStochasticSolutionCreator.cs" />
    146     <Compile Include="Operators\DemandEquivalentSwapEquipmentManipluator.cs" />
    147     <Compile Include="Operators\GQAPCrossover.cs" />
    148     <Compile Include="Operators\DiscreteLocationCrossover.cs" />
    149     <Compile Include="Operators\GQAPSolutionCreator.cs" />
    150     <Compile Include="Operators\GreedyRandomizedSolutionCreator.cs" />
    151     <Compile Include="Operators\MultiGQAPManipulator.cs" />
    152     <Compile Include="Operators\NMoveShakingOperator.cs" />
    153     <Compile Include="Operators\GQAPQualitySimilarityReducer.cs" />
    154     <Compile Include="Operators\RandomSolutionCreator.cs" />
    155     <Compile Include="Operators\RelocateEquipmentManipluator.cs" />
    156     <Compile Include="Operators\GQAPManipulator.cs" />
    157     <Compile Include="Operators\SwapEquipmentManipluator.cs" />
    158     <Compile Include="Operators\SwapLocationManipulator.cs" />
     147    <Compile Include="Operators\Crossovers\DiscreteLocationCrossover.cs" />
     148    <Compile Include="Operators\Crossovers\GQAPCrossover.cs" />
     149    <Compile Include="Operators\Crossovers\GQAPPathRelinking.cs" />
     150    <Compile Include="Operators\Crossovers\MultiGQAPCrossover.cs" />
     151    <Compile Include="Operators\LocalImprovers\ApproximateLocalSearch.cs" />
     152    <Compile Include="Operators\Manipulators\DemandEquivalentSwapEquipmentManipluator.cs" />
     153    <Compile Include="Operators\Manipulators\GQAPManipulator.cs" />
     154    <Compile Include="Operators\Manipulators\MultiGQAPManipulator.cs" />
     155    <Compile Include="Operators\Manipulators\RelocateEquipmentManipluator.cs" />
     156    <Compile Include="Operators\Manipulators\SwapEquipmentManipluator.cs" />
     157    <Compile Include="Operators\Manipulators\SwapLocationManipulator.cs" />
     158    <Compile Include="Operators\PopulationReducers\GQAPQualitySimilarityReducer.cs" />
     159    <Compile Include="Operators\Shakers\NMoveShakingOperator.cs" />
    159160    <Compile Include="Plugin.cs" />
    160161    <Compile Include="Properties\AssemblyInfo.cs" />
Note: See TracChangeset for help on using the changeset viewer.