Ignore:
Timestamp:
02/07/15 13:52:48 (5 years ago)
Author:
abeham
Message:

#2174:

  • Added ISingleObjectiveOperator and IMultiObjectiveOperator interfaces
    • Added interface to all operators that would fall in either of these categories (excluding MainLoop operators)
  • Added some checks in BasicProblem on whether the MultiEncoding is being used
    • A new event handler is added that reacts on encodings being removed or added to the MultiEncoding
  • Added code to remove the non-fit operators in (Single|Multi)ObjectiveBasicProblem
Location:
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/Analyzer/BestSolution/BestVRPSolutionAnalyzer.cs

    r11171 r11970  
    3838  [Item("BestVRPSolutionAnalyzer", "An operator for analyzing the best solution of Vehicle Routing Problems.")]
    3939  [StorableClass]
    40   public sealed class BestVRPSolutionAnalyzer : SingleSuccessorOperator, IAnalyzer, IGeneralVRPOperator {
     40  public sealed class BestVRPSolutionAnalyzer : SingleSuccessorOperator, IAnalyzer, IGeneralVRPOperator, ISingleObjectiveOperator {
    4141    public ILookupParameter<IVRPProblemInstance> ProblemInstanceParameter {
    4242      get { return (ILookupParameter<IVRPProblemInstance>)Parameters["ProblemInstance"]; }
  • trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/Analyzer/BestSolution/Capacitated/BestCapacitatedVRPSolutionAnalyzer.cs

    r11171 r11970  
    3838  [Item("BestCapacitatedVRPSolutionAnalyzer", "An operator for analyzing the best solution of capacitated Vehicle Routing Problems.")]
    3939  [StorableClass]
    40   public sealed class BestCapacitatedVRPSolutionAnalyzer : SingleSuccessorOperator, IAnalyzer, ICapacitatedOperator {
     40  public sealed class BestCapacitatedVRPSolutionAnalyzer : SingleSuccessorOperator, IAnalyzer, ICapacitatedOperator, ISingleObjectiveOperator {
    4141    public ILookupParameter<IVRPProblemInstance> ProblemInstanceParameter {
    4242      get { return (ILookupParameter<IVRPProblemInstance>)Parameters["ProblemInstance"]; }
  • trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/Analyzer/BestSolution/PickupAndDelivery/BestPickupAndDeliveryVRPSolutionAnalyzer.cs

    r11171 r11970  
    3838  [Item("BestPickupAndDeliveryVRPSolutionAnalyzer", "An operator for analyzing the best solution of Pickup and Delivery Routing Problems.")]
    3939  [StorableClass]
    40   public sealed class BestPickupAndDeliveryVRPSolutionAnalyzer : SingleSuccessorOperator, IAnalyzer, IPickupAndDeliveryOperator {
     40  public sealed class BestPickupAndDeliveryVRPSolutionAnalyzer : SingleSuccessorOperator, IAnalyzer, IPickupAndDeliveryOperator, ISingleObjectiveOperator {
    4141    public ILookupParameter<IVRPProblemInstance> ProblemInstanceParameter {
    4242      get { return (ILookupParameter<IVRPProblemInstance>)Parameters["ProblemInstance"]; }
  • trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/Analyzer/BestSolution/TimeWindowed/BestTimeWindowedVRPSolutionAnalyzer.cs

    r11171 r11970  
    3838  [Item("BestTimeWindowedVRPSolutionAnalyzer", "An operator for analyzing the best solution of time windowed Vehicle Routing Problems.")]
    3939  [StorableClass]
    40   public sealed class BestTimeWindowedVRPSolutionAnalyzer : SingleSuccessorOperator, IAnalyzer, ITimeWindowedOperator {
     40  public sealed class BestTimeWindowedVRPSolutionAnalyzer : SingleSuccessorOperator, IAnalyzer, ITimeWindowedOperator, ISingleObjectiveOperator {
    4141    public ILookupParameter<IVRPProblemInstance> ProblemInstanceParameter {
    4242      get { return (ILookupParameter<IVRPProblemInstance>)Parameters["ProblemInstance"]; }
  • trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/Analyzer/ConstraintRelaxation/Capacitated/CapacityRelaxationVRPAnalyzer.cs

    r11171 r11970  
    3636  [Item("CapacityRelaxationVRPAnalyzer", "An operator for adaptively relaxing the capacity constraints.")]
    3737  [StorableClass]
    38   public class CapacityRelaxationVRPAnalyzer : SingleSuccessorOperator, IAnalyzer, ICapacitatedOperator {
     38  public class CapacityRelaxationVRPAnalyzer : SingleSuccessorOperator, IAnalyzer, ICapacitatedOperator, ISingleObjectiveOperator {
    3939    public ILookupParameter<IVRPProblemInstance> ProblemInstanceParameter {
    4040      get { return (ILookupParameter<IVRPProblemInstance>)Parameters["ProblemInstance"]; }
  • trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/Analyzer/ConstraintRelaxation/PickupAndDelivery/PickupViolationsRelaxationVRPAnalyzer.cs

    r11171 r11970  
    3636  [Item("PickupViolationsRelaxationVRPAnalyzer", "An operator for adaptively relaxing the pickup constraints.")]
    3737  [StorableClass]
    38   public class PickupViolationsRelaxationVRPAnalyzer : SingleSuccessorOperator, IAnalyzer, IPickupAndDeliveryOperator {
     38  public class PickupViolationsRelaxationVRPAnalyzer : SingleSuccessorOperator, IAnalyzer, IPickupAndDeliveryOperator, ISingleObjectiveOperator {
    3939    public ILookupParameter<IVRPProblemInstance> ProblemInstanceParameter {
    4040      get { return (ILookupParameter<IVRPProblemInstance>)Parameters["ProblemInstance"]; }
  • trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/Analyzer/ConstraintRelaxation/TimeWindowed/TimeWindowRelaxationVRPAnalyzer.cs

    r11171 r11970  
    3636  [Item("TimeWindowRelaxationVRPAnalyzer", "An operator for adaptively relaxing the time window constraints.")]
    3737  [StorableClass]
    38   public class TimeWindowRelaxationVRPAnalyzer : SingleSuccessorOperator, IAnalyzer, ITimeWindowedOperator {
     38  public class TimeWindowRelaxationVRPAnalyzer : SingleSuccessorOperator, IAnalyzer, ITimeWindowedOperator, ISingleObjectiveOperator {
    3939    public ILookupParameter<IVRPProblemInstance> ProblemInstanceParameter {
    4040      get { return (ILookupParameter<IVRPProblemInstance>)Parameters["ProblemInstance"]; }
  • trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/LocalImprovement/AlbaLambdaInterchangeLocalImprovementOperator.cs

    r11300 r11970  
    3636  [Item("AlbaLambdaInterchangeLocalImprovementOperator", "Takes a solution and finds the local optimum with respect to the lambda interchange neighborhood by decending along the steepest gradient.")]
    3737  [StorableClass]
    38   public class AlbaLambdaInterchangeLocalImprovementOperator : VRPOperator, IStochasticOperator, ILocalImprovementOperator {
     38  public class AlbaLambdaInterchangeLocalImprovementOperator : VRPOperator, IStochasticOperator, ILocalImprovementOperator, ISingleObjectiveOperator {
    3939
    4040    public IValueLookupParameter<IntValue> MaximumIterationsParameter {
  • trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Moves/MultiVRPMoveOperator/MultiVRPMoveTabuMaker.cs

    r11171 r11970  
    3333  [Item("MultiVRPMoveTabuMaker", "A multi VRP move tabu maker.")]
    3434  [StorableClass]
    35   public class MultiVRPMoveTabuMaker : SingleSuccessorOperator, IMultiVRPMoveOperator, ITabuMaker, IGeneralVRPOperator {
     35  public class MultiVRPMoveTabuMaker : SingleSuccessorOperator, IMultiVRPMoveOperator, ITabuMaker, IGeneralVRPOperator, ISingleObjectiveOperator {
    3636    public ILookupParameter VRPMoveParameter {
    3737      get { return (ILookupParameter)Parameters["VRPMove"]; }
  • trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Moves/VRPMoveMaker.cs

    r11171 r11970  
    3232  [Item("VRPMoveMaker", "Performs a VRP move.")]
    3333  [StorableClass]
    34   public abstract class VRPMoveMaker : VRPMoveOperator, IMoveMaker {
     34  public abstract class VRPMoveMaker : VRPMoveOperator, IMoveMaker, ISingleObjectiveOperator {
    3535    public ILookupParameter<DoubleValue> QualityParameter {
    3636      get { return (ILookupParameter<DoubleValue>)Parameters["Quality"]; }
     
    9191          }
    9292        }
    93       }
    94       finally {
     93      } finally {
    9594        foreach (IParameter parameter in addedParameters) {
    9695          this.Parameters.Remove(parameter);
  • trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/PickupDelivery/PDExchange/PotvinPDExchangeMoveTabuMaker.cs

    r11171 r11970  
    3232  [Item("PotvinPDExchangeMoveTabuMaker", "Declares a given exchange move as tabu.")]
    3333  [StorableClass]
    34   public class PotvinPDExchangeMoveTabuMaker : SingleSuccessorOperator, ITabuMaker, IPotvinPDExchangeMoveOperator, IPotvinOperator, IVRPMoveOperator {
     34  public class PotvinPDExchangeMoveTabuMaker : SingleSuccessorOperator, ITabuMaker, IPotvinPDExchangeMoveOperator, IPotvinOperator, ISingleObjectiveOperator {
    3535    public LookupParameter<ItemList<IItem>> TabuListParameter {
    3636      get { return (LookupParameter<ItemList<IItem>>)Parameters["TabuList"]; }
  • trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/TwoOptStar/PotvinTwoOptStarMoveTabuMaker.cs

    r11171 r11970  
    3333  [Item("PotvinTwoOptStarMoveTabuMaker", "Declares a given two opt star move as tabu.")]
    3434  [StorableClass]
    35   public class PotvinTwoOptStarMoveTabuMaker : SingleSuccessorOperator, ITabuMaker, IPotvinTwoOptStarMoveOperator, IPotvinOperator, IVRPMoveOperator {
     35  public class PotvinTwoOptStarMoveTabuMaker : SingleSuccessorOperator, ITabuMaker, IPotvinTwoOptStarMoveOperator, IPotvinOperator, ISingleObjectiveOperator {
    3636    public LookupParameter<ItemList<IItem>> TabuListParameter {
    3737      get { return (LookupParameter<ItemList<IItem>>)Parameters["TabuList"]; }
  • trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/VehicleAssignment/PotvinVehicleAssignmentMoveTabuMaker.cs

    r11171 r11970  
    3232  [Item("PotvinVehicleAssignmentMoveTabuMaker", "Declares a given vehicle assignment move as tabu.")]
    3333  [StorableClass]
    34   public class PotvinVehicleAssignmentMoveTabuMaker : SingleSuccessorOperator, ITabuMaker, IPotvinVehicleAssignmentMoveOperator, IPotvinOperator, IVRPMoveOperator {
     34  public class PotvinVehicleAssignmentMoveTabuMaker : SingleSuccessorOperator, ITabuMaker, IPotvinVehicleAssignmentMoveOperator, IPotvinOperator, ISingleObjectiveOperator {
    3535    public LookupParameter<ItemList<IItem>> TabuListParameter {
    3636      get { return (LookupParameter<ItemList<IItem>>)Parameters["TabuList"]; }
Note: See TracChangeset for help on using the changeset viewer.