Free cookie consent management tool by TermsFeed Policy Generator

Changeset 14604


Ignore:
Timestamp:
01/25/17 14:30:18 (7 years ago)
Author:
jkarder
Message:

#2205: worked on optimization networks

  • updated ttp networks (1, 2, 3)
  • added lrp network (1)
  • fixed plugin dependencies
Location:
branches/OptimizationNetworks
Files:
10 added
1 deleted
22 edited

Legend:

Unmodified
Added
Removed
  • branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.TravelingThief/3.3/HeuristicLab.Networks.IntegratedOptimization.TravelingThief-3.3.csproj

    r14601 r14604  
    171171    <Compile Include="Problems\LootProfitProblem.cs" />
    172172    <Compile Include="Problems\TourProfitProblem.cs" />
    173     <Compile Include="TtpImporter.cs" />
    174173    <Compile Include="TtpNetwork1.cs" />
    175174    <Compile Include="TtpNetwork2.cs" />
  • branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.TravelingThief/3.3/Plugin.cs.frame

    r14601 r14604  
    2828  [Plugin("HeuristicLab.Networks.IntegratedOptimization.TravelingThief", "3.3.14.$WCREV$")]
    2929  [PluginFile("HeuristicLab.Networks.IntegratedOptimization.TravelingThief-3.3.dll", PluginFileType.Assembly)]
     30  [PluginDependency("HeuristicLab.Algorithms.CMAEvolutionStrategy", "3.4")]
     31  [PluginDependency("HeuristicLab.Algorithms.LocalSearch", "3.3")]
     32  [PluginDependency("HeuristicLab.Algorithms.ParameterlessPopulationPyramid", "3.3")]
     33  [PluginDependency("HeuristicLab.Collections", "3.3")]
     34  [PluginDependency("HeuristicLab.Common", "3.3")]
     35  [PluginDependency("HeuristicLab.Core", "3.3")]
     36  [PluginDependency("HeuristicLab.Data", "3.3")]
     37  [PluginDependency("HeuristicLab.Encodings.BinaryVectorEncoding", "3.3")]
     38  [PluginDependency("HeuristicLab.Encodings.PermutationEncoding", "3.3")]
     39  [PluginDependency("HeuristicLab.Encodings.RealVectorEncoding", "3.3")]
     40  [PluginDependency("HeuristicLab.Networks", "3.3")]
     41  [PluginDependency("HeuristicLab.Networks.IntegratedOptimization", "3.3")]
     42  [PluginDependency("HeuristicLab.Optimization", "3.3")]
     43  [PluginDependency("HeuristicLab.Parameters", "3.3")]
     44  [PluginDependency("HeuristicLab.Persistence", "3.3")]
     45  [PluginDependency("HeuristicLab.Problems.Binary", "3.3")]
     46  [PluginDependency("HeuristicLab.Problems.Knapsack", "3.3")]
     47  [PluginDependency("HeuristicLab.Problems.TravelingSalesman", "3.3")]
    3048  public class HeuristicLabNetworksIntegratedOptimizationTravelingThiefPlugin : PluginBase {
    3149  }
  • branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.TravelingThief/3.3/Problems/LootProfitProblem.cs

    r14601 r14604  
    5454    [Storable]
    5555    public double MaxSpeed { get; set; }
     56    [Storable]
     57    public TtpUtils.DistanceType DistanceType { get; set; }
    5658
    5759    [StorableConstructor]
     
    6567      MinSpeed = original.MinSpeed;
    6668      MaxSpeed = original.MaxSpeed;
     69      DistanceType = original.DistanceType;
    6770    }
    6871    public LootProfitProblem() : base() {
     
    7578
    7679    public override double Evaluate(BinaryVector vector, IRandom random) {
    77       return TtpUtils.EvaluateTtp(Tsp, FixedTspSolution.ToArray(),
     80      return TtpUtils.Evaluate(Tsp, FixedTspSolution.ToArray(),
    7881                                  Ksp, vector.ToArray(),
    79                                   Availability, RentingRatio, MinSpeed, MaxSpeed);
     82                                  Availability, RentingRatio, MinSpeed, MaxSpeed, DistanceType);
    8083    }
    8184
  • branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.TravelingThief/3.3/Problems/TourProfitProblem.cs

    r14601 r14604  
    5353    [Storable]
    5454    public double MaxSpeed { get; set; }
     55    [Storable]
     56    public TtpUtils.DistanceType DistanceType { get; set; }
    5557
    5658    [StorableConstructor]
     
    6466      MinSpeed = original.MinSpeed;
    6567      MaxSpeed = original.MaxSpeed;
     68      DistanceType = original.DistanceType;
    6669    }
    6770    public TourProfitProblem() : base() {
     
    7477
    7578    public override double Evaluate(Individual individual, IRandom random) {
    76       return TtpUtils.EvaluateTtp(Tsp, individual.Permutation().ToArray(),
     79      return TtpUtils.Evaluate(Tsp, individual.Permutation().ToArray(),
    7780                                  Ksp, FixedKspSolution.ToArray(),
    78                                   Availability, RentingRatio, MinSpeed, MaxSpeed);
     81                                  Availability, RentingRatio, MinSpeed, MaxSpeed, DistanceType);
    7982    }
    8083
  • branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.TravelingThief/3.3/Properties/AssemblyInfo.cs.frame

    r14601 r14604  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-201 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2017 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.TravelingThief/3.3/TtpNetwork1.cs

    r14601 r14604  
    2828using HeuristicLab.Core;
    2929using HeuristicLab.Core.Networks;
    30 using HeuristicLab.Data;
    3130using HeuristicLab.Optimization;
    3231using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     
    9998      orchestratorNode.KspSolverOrchestrationPort.ConnectedPort = kspSolverNode.OrchestrationPort;
    10099      Nodes.Add(kspSolverNode);
    101 
    102       #region Import
    103       DoubleMatrix tspCoordinates;
    104       IntValue kspCapacity; IntArray kspItemWeights; IntArray kspItemValues;
    105       IntArray ttpAvailability; DoubleValue ttpMinSpeed; DoubleValue ttpMaxSpeed; DoubleValue ttpRentingRatio;
    106       TtpImporter.ImportTtpInstance(@"ttp-instances\berlin52-ttp\berlin52_n51_uncorr_01.ttp",
    107           out tspCoordinates,
    108           out kspCapacity, out kspItemValues, out kspItemWeights,
    109           out ttpAvailability, out ttpMinSpeed, out ttpMaxSpeed, out ttpRentingRatio);
    110 
    111       var tsp = orchestratorNode.TspParameter.Value;
    112       tsp.Coordinates = tspCoordinates;
    113 
    114       var ksp = orchestratorNode.KspParameter.Value;
    115       ksp.KnapsackCapacity = kspCapacity;
    116       ksp.Encoding.Length = kspItemValues.Length;
    117       ksp.Values = kspItemValues;
    118       ksp.Weights = kspItemWeights;
    119 
    120       orchestratorNode.AvailabilityParameter.Value = ttpAvailability;
    121       orchestratorNode.MinSpeedParameter.Value = ttpMinSpeed;
    122       orchestratorNode.MaxSpeedParameter.Value = ttpMaxSpeed;
    123       orchestratorNode.RentingRatioParameter.Value = ttpRentingRatio;
    124       #endregion
    125100
    126101      RegisterEvents();
  • branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.TravelingThief/3.3/TtpNetwork2.cs

    r14601 r14604  
    2828using HeuristicLab.Core;
    2929using HeuristicLab.Core.Networks;
    30 using HeuristicLab.Data;
    3130using HeuristicLab.Optimization;
    3231using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     
    9998      orchestratorNode.KspSolverOrchestrationPort.ConnectedPort = kspSolverNode.OrchestrationPort;
    10099      Nodes.Add(kspSolverNode);
    101 
    102       #region Import
    103       DoubleMatrix tspCoordinates;
    104       IntValue kspCapacity; IntArray kspItemWeights; IntArray kspItemValues;
    105       IntArray ttpAvailability; DoubleValue ttpMinSpeed; DoubleValue ttpMaxSpeed; DoubleValue ttpRentingRatio;
    106       TtpImporter.ImportTtpInstance(@"ttp-instances\berlin52-ttp\berlin52_n51_uncorr_01.ttp",
    107           out tspCoordinates,
    108           out kspCapacity, out kspItemValues, out kspItemWeights,
    109           out ttpAvailability, out ttpMinSpeed, out ttpMaxSpeed, out ttpRentingRatio);
    110 
    111       var tsp = orchestratorNode.TspParameter.Value;
    112       tsp.Coordinates = tspCoordinates;
    113 
    114       var ksp = orchestratorNode.KspParameter.Value;
    115       ksp.KnapsackCapacity = kspCapacity;
    116       ksp.Encoding.Length = kspItemValues.Length;
    117       ksp.Values = kspItemValues;
    118       ksp.Weights = kspItemWeights;
    119 
    120       orchestratorNode.AvailabilityParameter.Value = ttpAvailability;
    121       orchestratorNode.MinSpeedParameter.Value = ttpMinSpeed;
    122       orchestratorNode.MaxSpeedParameter.Value = ttpMaxSpeed;
    123       orchestratorNode.RentingRatioParameter.Value = ttpRentingRatio;
    124       #endregion
    125100
    126101      RegisterEvents();
  • branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.TravelingThief/3.3/TtpNetwork3.cs

    r14601 r14604  
    2828using HeuristicLab.Core;
    2929using HeuristicLab.Core.Networks;
    30 using HeuristicLab.Data;
    3130using HeuristicLab.Optimization;
    3231using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     
    9998      orchestratorNode.KspSolverOrchestrationPort.ConnectedPort = kspSolverNode.OrchestrationPort;
    10099      Nodes.Add(kspSolverNode);
    101 
    102       #region Import
    103       DoubleMatrix tspCoordinates;
    104       IntValue kspCapacity; IntArray kspItemWeights; IntArray kspItemValues;
    105       IntArray ttpAvailability; DoubleValue ttpMinSpeed; DoubleValue ttpMaxSpeed; DoubleValue ttpRentingRatio;
    106       TtpImporter.ImportTtpInstance(@"ttp-instances\berlin52-ttp\berlin52_n51_uncorr_01.ttp",
    107           out tspCoordinates,
    108           out kspCapacity, out kspItemValues, out kspItemWeights,
    109           out ttpAvailability, out ttpMinSpeed, out ttpMaxSpeed, out ttpRentingRatio);
    110 
    111       var tsp = orchestratorNode.TspParameter.Value;
    112       tsp.Coordinates = tspCoordinates;
    113 
    114       var ksp = orchestratorNode.KspParameter.Value;
    115       ksp.KnapsackCapacity = kspCapacity;
    116       ksp.Encoding.Length = kspItemValues.Length;
    117       ksp.Values = kspItemValues;
    118       ksp.Weights = kspItemWeights;
    119 
    120       orchestratorNode.AvailabilityParameter.Value = ttpAvailability;
    121       orchestratorNode.MinSpeedParameter.Value = ttpMinSpeed;
    122       orchestratorNode.MaxSpeedParameter.Value = ttpMaxSpeed;
    123       orchestratorNode.RentingRatioParameter.Value = ttpRentingRatio;
    124       #endregion
    125100
    126101      RegisterEvents();
  • branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.TravelingThief/3.3/TtpOrchestratorNode1.cs

    r14601 r14604  
    4343  public sealed class TtpOrchestratorNode1 : OrchestratorNode {
    4444    #region Constants
     45    private const string InstanceParameterName = "Instance";
    4546    private const string TspParameterName = "TSP";
    4647    private const string KspParameterName = "KSP";
     
    4950    private const string MaxSpeedParameterName = "MaxSpeed";
    5051    private const string RentingRatioParameterName = "RentingRatio";
    51     private const string IterationsParameterName = "Iterations";
    5252    private const string MetaSolverName = "MetaSolver";
    5353    private const string TspSolverName = "TspSolver";
     
    5555    #endregion
    5656
     57    private CancellationTokenSource cts;
    5758    private ResultCollection tspResults, kspResults;
    5859
    59     private CancellationTokenSource cts;
     60    [Storable]
     61    double[,] tspCoordinates;
     62    [Storable]
     63    TtpUtils.DistanceType distanceType;
     64    [Storable]
     65    int kspCapacity;
     66    [Storable]
     67    int[] kspItemWeights, kspItemValues, ttpAvailability;
     68    [Storable]
     69    double ttpMinSpeed, ttpMaxSpeed, ttpRentingRatio;
    6070
    6171    #region Parameters
    62     public IValueParameter<IntValue> IterationsParameter {
    63       get { return (IValueParameter<IntValue>)Parameters[IterationsParameterName]; }
     72    public IFixedValueParameter<TextFileValue> InstanceParameter {
     73      get { return (IFixedValueParameter<TextFileValue>)Parameters[InstanceParameterName]; }
    6474    }
    6575
     
    118128    private TtpOrchestratorNode1(bool deserializing) : base(deserializing) { }
    119129    private TtpOrchestratorNode1(TtpOrchestratorNode1 original, Cloner cloner) : base(original, cloner) {
     130      tspCoordinates = (double[,])original.tspCoordinates.Clone();
     131      kspCapacity = original.kspCapacity;
     132      kspItemWeights = (int[])original.kspItemWeights.Clone();
     133      kspItemValues = (int[])original.kspItemValues.Clone();
     134      ttpAvailability = (int[])original.ttpAvailability.Clone();
     135      ttpMinSpeed = original.ttpMinSpeed;
     136      ttpMaxSpeed = original.ttpMaxSpeed;
     137      ttpRentingRatio = original.ttpRentingRatio;
     138
    120139      RegisterEvents();
    121140    }
     
    123142    public TtpOrchestratorNode1(string name) : base(name) {
    124143      #region Configure Parameters
    125       Parameters.Add(new ValueParameter<IntValue>(IterationsParameterName, new IntValue(20)));
     144      Parameters.Add(new FixedValueParameter<TextFileValue>(InstanceParameterName));
    126145      Parameters.Add(new ValueParameter<TravelingSalesmanProblem>(TspParameterName, new TravelingSalesmanProblem()));
    127146      Parameters.Add(new ValueParameter<BinaryKnapsackProblem>(KspParameterName, new BinaryKnapsackProblem()));
     
    154173
    155174    private void RegisterEvents() {
     175      InstanceParameter.Value.ToStringChanged += InstanceParameter_Value_ToStringChanged;
    156176      MetaSolverOrchestrationPort.ConnectedPortChanged += MetaSolverOrchestrationPort_ConnectedPortChanged;
    157177      TspSolverOrchestrationPort.ConnectedPortChanged += TspSolverOrchestrationPort_ConnectedPortChanged;
    158178      KspSolverOrchestrationPort.ConnectedPortChanged += KspSolverOrchestrationPort_ConnectedPortChanged;
     179    }
     180
     181    private void InstanceParameter_Value_ToStringChanged(object sender, EventArgs e) {
     182      string filePath = InstanceParameter.Value.Value;
     183      TtpUtils.Import(filePath, out tspCoordinates, out distanceType,
     184                                out kspCapacity, out kspItemValues, out kspItemWeights,
     185                                out ttpAvailability, out ttpMinSpeed, out ttpMaxSpeed, out ttpRentingRatio);
     186
     187      var tsp = TspParameter.Value;
     188      tsp.Coordinates = new DoubleMatrix(tspCoordinates);
     189
     190      var ksp = KspParameter.Value;
     191      ksp.KnapsackCapacity.Value = kspCapacity;
     192      ksp.Encoding.Length = kspItemValues.Length;
     193      ksp.Values = new IntArray(kspItemValues);
     194      ksp.Weights = new IntArray(kspItemWeights);
     195
     196      AvailabilityParameter.Value = new IntArray(ttpAvailability);
     197      MinSpeedParameter.Value.Value = ttpMinSpeed;
     198      MaxSpeedParameter.Value.Value = ttpMaxSpeed;
     199      RentingRatioParameter.Value.Value = ttpRentingRatio;
    159200    }
    160201
     
    234275
    235276      var ksp = (BinaryKnapsackProblem)KspParameter.Value.Clone();
    236       for (int i = 0; i < factors.Length; i++)
     277      for (int i = 0; i < ksp.Values.Length; i++)
    237278        ksp.Values[i] = (int)Math.Ceiling(ksp.Values[i] * factors[i]);
    238279
     
    243284      cts.Token.ThrowIfCancellationRequested();
    244285
    245       var bestKspSolution = (BinaryVector)kspResults["Best Solution"].Value;
     286      var bestKspSolution = (BinaryVector)kspResults["Best Solution"].Value.Clone();
    246287      var kspCapacity = (IntValue)KspParameter.Value.KnapsackCapacity.Clone();
    247288      var kspPenalty = new DoubleValue(0.0);
     
    260301        RentingRatio = RentingRatioParameter.Value.Value,
    261302        MinSpeed = MinSpeedParameter.Value.Value,
    262         MaxSpeed = MaxSpeedParameter.Value.Value
     303        MaxSpeed = MaxSpeedParameter.Value.Value,
     304        DistanceType = distanceType
    263305      };
    264306      tpp.Encoding.Length = TspParameter.Value.Coordinates.Rows;
     
    267309      cts.Token.ThrowIfCancellationRequested();
    268310
    269       var bestTspSolution = (Permutation)tspResults["Best TSP Solution"].Value;
     311      var bestTspSolution = (Permutation)tspResults["Best TSP Solution"].Value.Clone();
    270312      var coordinates = (DoubleMatrix)TspParameter.Value.Coordinates.Clone();
    271313      var tour = new PathTSPTour(coordinates, bestTspSolution, new DoubleValue(TSPCoordinatesPathEvaluator.Apply(new TSPEuclideanPathEvaluator(), coordinates, bestTspSolution)));
    272314
    273315      #region Analyze
    274       double objectiveValue = TtpUtils.EvaluateTtp(TspParameter.Value, tour.Permutation.ToArray(), KspParameter.Value, loot.BinaryVector.ToArray(),
    275         AvailabilityParameter.Value.ToArray(), RentingRatioParameter.Value.Value, MinSpeedParameter.Value.Value, MaxSpeedParameter.Value.Value);
     316      double objectiveValue = TtpUtils.Evaluate(TspParameter.Value, tour.Permutation.ToArray(), KspParameter.Value, loot.BinaryVector.ToArray(),
     317        AvailabilityParameter.Value.ToArray(), RentingRatioParameter.Value.Value, MinSpeedParameter.Value.Value, MaxSpeedParameter.Value.Value, distanceType);
    276318      ((DoubleValue)message["Quality"]).Value = objectiveValue;
    277319
  • branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.TravelingThief/3.3/TtpOrchestratorNode2.cs

    r14601 r14604  
    4343  public sealed class TtpOrchestratorNode2 : OrchestratorNode {
    4444    #region Constants
     45    private const string InstanceParameterName = "Instance";
    4546    private const string TspParameterName = "TSP";
    4647    private const string KspParameterName = "KSP";
     
    4950    private const string MaxSpeedParameterName = "MaxSpeed";
    5051    private const string RentingRatioParameterName = "RentingRatio";
    51     private const string IterationsParameterName = "Iterations";
    5252    private const string MetaSolverName = "MetaSolver";
    5353    private const string TspSolverName = "TspSolver";
     
    5555    #endregion
    5656
     57    private CancellationTokenSource cts;
    5758    private ResultCollection tspResults, kspResults;
    5859
    59     private CancellationTokenSource cts;
     60    [Storable]
     61    double[,] tspCoordinates;
     62    [Storable]
     63    TtpUtils.DistanceType distanceType;
     64    [Storable]
     65    int kspCapacity;
     66    [Storable]
     67    int[] kspItemWeights, kspItemValues, ttpAvailability;
     68    [Storable]
     69    double ttpMinSpeed, ttpMaxSpeed, ttpRentingRatio;
    6070
    6171    #region Parameters
    62     public IValueParameter<IntValue> IterationsParameter {
    63       get { return (IValueParameter<IntValue>)Parameters[IterationsParameterName]; }
     72    public IFixedValueParameter<TextFileValue> InstanceParameter {
     73      get { return (IFixedValueParameter<TextFileValue>)Parameters[InstanceParameterName]; }
    6474    }
    6575
     
    118128    private TtpOrchestratorNode2(bool deserializing) : base(deserializing) { }
    119129    private TtpOrchestratorNode2(TtpOrchestratorNode2 original, Cloner cloner) : base(original, cloner) {
     130      tspCoordinates = (double[,])original.tspCoordinates.Clone();
     131      kspCapacity = original.kspCapacity;
     132      kspItemWeights = (int[])original.kspItemWeights.Clone();
     133      kspItemValues = (int[])original.kspItemValues.Clone();
     134      ttpAvailability = (int[])original.ttpAvailability.Clone();
     135      ttpMinSpeed = original.ttpMinSpeed;
     136      ttpMaxSpeed = original.ttpMaxSpeed;
     137      ttpRentingRatio = original.ttpRentingRatio;
     138
    120139      RegisterEvents();
    121140    }
     
    123142    public TtpOrchestratorNode2(string name) : base(name) {
    124143      #region Configure Parameters
    125       Parameters.Add(new ValueParameter<IntValue>(IterationsParameterName, new IntValue(20)));
     144      Parameters.Add(new FixedValueParameter<TextFileValue>(InstanceParameterName));
    126145      Parameters.Add(new ValueParameter<TravelingSalesmanProblem>(TspParameterName, new TravelingSalesmanProblem()));
    127146      Parameters.Add(new ValueParameter<BinaryKnapsackProblem>(KspParameterName, new BinaryKnapsackProblem()));
     
    137156      AddOrchestrationPort<TravelingSalesmanProblem>(TspSolverName);
    138157      AddEvaluationPort<Permutation>(TspSolverName, "TSPTour", "TSPTourLength");
    139       AddOrchestrationPort<lootpro>(KspSolverName);
     158      AddOrchestrationPort<LootProfitProblem>(KspSolverName);
    140159      AddEvaluationPort<BinaryVector>(KspSolverName, "KnapsackSolution", "Quality");
    141160
     
    154173
    155174    private void RegisterEvents() {
     175      InstanceParameter.Value.ToStringChanged += InstanceParameter_Value_ToStringChanged;
    156176      MetaSolverOrchestrationPort.ConnectedPortChanged += MetaSolverOrchestrationPort_ConnectedPortChanged;
    157177      TspSolverOrchestrationPort.ConnectedPortChanged += TspSolverOrchestrationPort_ConnectedPortChanged;
    158178      KspSolverOrchestrationPort.ConnectedPortChanged += KspSolverOrchestrationPort_ConnectedPortChanged;
     179    }
     180
     181    private void InstanceParameter_Value_ToStringChanged(object sender, EventArgs e) {
     182      string filePath = InstanceParameter.Value.Value;
     183      TtpUtils.Import(filePath, out tspCoordinates, out distanceType,
     184                                out kspCapacity, out kspItemValues, out kspItemWeights,
     185                                out ttpAvailability, out ttpMinSpeed, out ttpMaxSpeed, out ttpRentingRatio);
     186
     187      var tsp = TspParameter.Value;
     188      tsp.Coordinates = new DoubleMatrix(tspCoordinates);
     189
     190      var ksp = KspParameter.Value;
     191      ksp.KnapsackCapacity.Value = kspCapacity;
     192      ksp.Encoding.Length = kspItemValues.Length;
     193      ksp.Values = new IntArray(kspItemValues);
     194      ksp.Weights = new IntArray(kspItemWeights);
     195
     196      AvailabilityParameter.Value = new IntArray(ttpAvailability);
     197      MinSpeedParameter.Value.Value = ttpMinSpeed;
     198      MaxSpeedParameter.Value.Value = ttpMaxSpeed;
     199      RentingRatioParameter.Value.Value = ttpRentingRatio;
    159200    }
    160201
     
    234275
    235276      var tsp = (TravelingSalesmanProblem)TspParameter.Value.Clone();
    236       for (int i = 0; i < factors.Length / 2; i++) {
     277      for (int i = 0; i < tsp.Coordinates.Rows; i++) {
    237278        tsp.Coordinates[i, 0] = (int)Math.Ceiling(tsp.Coordinates[i, 0] * factors[i * 2]);
    238279        tsp.Coordinates[i, 1] = (int)Math.Ceiling(tsp.Coordinates[i, 1] * factors[i * 2 + 1]);
     
    245286      cts.Token.ThrowIfCancellationRequested();
    246287
    247       var bestTspSolution = (PathTSPTour)tspResults["Best TSP Solution"].Value;
     288      var bestTspSolution = (PathTSPTour)tspResults["Best TSP Solution"].Value.Clone();
    248289      var coordinates = (DoubleMatrix)TspParameter.Value.Coordinates.Clone();
    249290      var tour = new PathTSPTour(coordinates, bestTspSolution.Permutation, new DoubleValue(TSPCoordinatesPathEvaluator.Apply(new TSPEuclideanPathEvaluator(), coordinates, bestTspSolution.Permutation)));
     
    258299        RentingRatio = RentingRatioParameter.Value.Value,
    259300        MinSpeed = MinSpeedParameter.Value.Value,
    260         MaxSpeed = MaxSpeedParameter.Value.Value
     301        MaxSpeed = MaxSpeedParameter.Value.Value,
     302        DistanceType = distanceType
    261303      };
    262304      lpp.Encoding.Length = KspParameter.Value.Length;
     
    265307      cts.Token.ThrowIfCancellationRequested();
    266308
    267       var bestKspSolution = (BinaryVector)kspResults["Best Solution"].Value;
     309      var bestKspSolution = (BinaryVector)kspResults["Best Solution"].Value.Clone();
    268310      var kspCapacity = (IntValue)KspParameter.Value.KnapsackCapacity.Clone();
    269311      var kspPenalty = new DoubleValue(0.0);
     
    274316
    275317      #region Analyze
    276       double objectiveValue = TtpUtils.EvaluateTtp(TspParameter.Value, tour.Permutation.ToArray(), KspParameter.Value, loot.BinaryVector.ToArray(),
    277         AvailabilityParameter.Value.ToArray(), RentingRatioParameter.Value.Value, MinSpeedParameter.Value.Value, MaxSpeedParameter.Value.Value);
     318      double objectiveValue = TtpUtils.Evaluate(TspParameter.Value, tour.Permutation.ToArray(), KspParameter.Value, loot.BinaryVector.ToArray(),
     319        AvailabilityParameter.Value.ToArray(), RentingRatioParameter.Value.Value, MinSpeedParameter.Value.Value, MaxSpeedParameter.Value.Value, distanceType);
    278320      ((DoubleValue)message["Quality"]).Value = objectiveValue;
    279321
  • branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.TravelingThief/3.3/TtpOrchestratorNode3.cs

    r14601 r14604  
    4343  public sealed class TtpOrchestratorNode3 : OrchestratorNode {
    4444    #region Constants
     45    private const string InstanceParameterName = "Instance";
    4546    private const string TspParameterName = "TSP";
    4647    private const string KspParameterName = "KSP";
     
    4950    private const string MaxSpeedParameterName = "MaxSpeed";
    5051    private const string RentingRatioParameterName = "RentingRatio";
    51     private const string IterationsParameterName = "Iterations";
    5252    private const string MetaSolverName = "MetaSolver";
    5353    private const string TspSolverName = "TspSolver";
     
    5555    #endregion
    5656
     57    private CancellationTokenSource cts;
    5758    private ResultCollection tspResults, kspResults;
    5859
    59     private CancellationTokenSource cts;
     60    [Storable]
     61    double[,] tspCoordinates;
     62    [Storable]
     63    TtpUtils.DistanceType distanceType;
     64    [Storable]
     65    int kspCapacity;
     66    [Storable]
     67    int[] kspItemWeights, kspItemValues, ttpAvailability;
     68    [Storable]
     69    double ttpMinSpeed, ttpMaxSpeed, ttpRentingRatio;
    6070
    6171    #region Parameters
    62     public IValueParameter<IntValue> IterationsParameter {
    63       get { return (IValueParameter<IntValue>)Parameters[IterationsParameterName]; }
     72    public IFixedValueParameter<TextFileValue> InstanceParameter {
     73      get { return (IFixedValueParameter<TextFileValue>)Parameters[InstanceParameterName]; }
    6474    }
    6575
     
    118128    private TtpOrchestratorNode3(bool deserializing) : base(deserializing) { }
    119129    private TtpOrchestratorNode3(TtpOrchestratorNode3 original, Cloner cloner) : base(original, cloner) {
     130      tspCoordinates = (double[,])original.tspCoordinates.Clone();
     131      kspCapacity = original.kspCapacity;
     132      kspItemWeights = (int[])original.kspItemWeights.Clone();
     133      kspItemValues = (int[])original.kspItemValues.Clone();
     134      ttpAvailability = (int[])original.ttpAvailability.Clone();
     135      ttpMinSpeed = original.ttpMinSpeed;
     136      ttpMaxSpeed = original.ttpMaxSpeed;
     137      ttpRentingRatio = original.ttpRentingRatio;
     138
    120139      RegisterEvents();
    121140    }
     
    123142    public TtpOrchestratorNode3(string name) : base(name) {
    124143      #region Configure Parameters
    125       Parameters.Add(new ValueParameter<IntValue>(IterationsParameterName, new IntValue(20)));
     144      Parameters.Add(new FixedValueParameter<TextFileValue>(InstanceParameterName));
    126145      Parameters.Add(new ValueParameter<TravelingSalesmanProblem>(TspParameterName, new TravelingSalesmanProblem()));
    127146      Parameters.Add(new ValueParameter<BinaryKnapsackProblem>(KspParameterName, new BinaryKnapsackProblem()));
     
    154173
    155174    private void RegisterEvents() {
     175      InstanceParameter.Value.ToStringChanged += InstanceParameter_Value_ToStringChanged;
    156176      MetaSolverOrchestrationPort.ConnectedPortChanged += MetaSolverOrchestrationPort_ConnectedPortChanged;
    157177      TspSolverOrchestrationPort.ConnectedPortChanged += TspSolverOrchestrationPort_ConnectedPortChanged;
    158178      KspSolverOrchestrationPort.ConnectedPortChanged += KspSolverOrchestrationPort_ConnectedPortChanged;
     179    }
     180
     181    private void InstanceParameter_Value_ToStringChanged(object sender, EventArgs e) {
     182      string filePath = InstanceParameter.Value.Value;
     183      TtpUtils.Import(filePath, out tspCoordinates, out distanceType,
     184                                out kspCapacity, out kspItemValues, out kspItemWeights,
     185                                out ttpAvailability, out ttpMinSpeed, out ttpMaxSpeed, out ttpRentingRatio);
     186
     187      var tsp = TspParameter.Value;
     188      tsp.Coordinates = new DoubleMatrix(tspCoordinates);
     189
     190      var ksp = KspParameter.Value;
     191      ksp.KnapsackCapacity.Value = kspCapacity;
     192      ksp.Encoding.Length = kspItemValues.Length;
     193      ksp.Values = new IntArray(kspItemValues);
     194      ksp.Weights = new IntArray(kspItemWeights);
     195
     196      AvailabilityParameter.Value = new IntArray(ttpAvailability);
     197      MinSpeedParameter.Value.Value = ttpMinSpeed;
     198      MaxSpeedParameter.Value.Value = ttpMaxSpeed;
     199      RentingRatioParameter.Value.Value = ttpRentingRatio;
    159200    }
    160201
     
    246287      cts.Token.ThrowIfCancellationRequested();
    247288
    248       var bestKspSolution = (BinaryVector)kspResults["Best Solution"].Value;
     289      var bestKspSolution = (BinaryVector)kspResults["Best Solution"].Value.Clone();
    249290      var kspCapacity = (IntValue)KspParameter.Value.KnapsackCapacity.Clone();
    250291      var kspPenalty = new DoubleValue(0.0);
     
    269310        RentingRatio = RentingRatioParameter.Value.Value,
    270311        MinSpeed = MinSpeedParameter.Value.Value,
    271         MaxSpeed = MaxSpeedParameter.Value.Value
     312        MaxSpeed = MaxSpeedParameter.Value.Value,
     313        DistanceType = distanceType
    272314      };
    273315      tpp.Encoding.Length = TspParameter.Value.Coordinates.Rows;
     
    276318      cts.Token.ThrowIfCancellationRequested();
    277319
    278       var bestTspSolution = (Permutation)tspResults["Best TSP Solution"].Value;
     320      var bestTspSolution = (Permutation)tspResults["Best TSP Solution"].Value.Clone();
    279321      var coordinates = (DoubleMatrix)TspParameter.Value.Coordinates.Clone();
    280322      var tour = new PathTSPTour(coordinates, bestTspSolution, new DoubleValue(TSPCoordinatesPathEvaluator.Apply(new TSPEuclideanPathEvaluator(), coordinates, bestTspSolution)));
    281323
    282324      #region Analyze
    283       double objectiveValue = TtpUtils.EvaluateTtp(TspParameter.Value, tour.Permutation.ToArray(), KspParameter.Value, loot.BinaryVector.ToArray(),
    284         AvailabilityParameter.Value.ToArray(), RentingRatioParameter.Value.Value, MinSpeedParameter.Value.Value, MaxSpeedParameter.Value.Value);
     325      double objectiveValue = TtpUtils.Evaluate(TspParameter.Value, tour.Permutation.ToArray(), KspParameter.Value, loot.BinaryVector.ToArray(),
     326        AvailabilityParameter.Value.ToArray(), RentingRatioParameter.Value.Value, MinSpeedParameter.Value.Value, MaxSpeedParameter.Value.Value, distanceType);
    285327      ((DoubleValue)message["Quality"]).Value = objectiveValue;
    286328
  • branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.TravelingThief/3.3/TtpUtils.cs

    r14601 r14604  
    11using System;
     2using System.IO;
    23using System.Linq;
    34using HeuristicLab.Problems.TravelingSalesman;
     
    56namespace HeuristicLab.Networks.IntegratedOptimization.TravelingThief {
    67  public static class TtpUtils {
    7     public static double EvaluateTtp(TravelingSalesmanProblem tsp, int[] tour, BinaryKnapsackProblem ksp, bool[] loot, int[] availability, double rentingRatio, double minSpeed, double maxSpeed) {
    8       bool feasible;
    9       return EvaluateTtp(tsp, tour, ksp, loot, availability, rentingRatio, minSpeed, maxSpeed, out feasible);
     8    public enum DistanceType {
     9      Unknown = int.MinValue,
     10      CEIL_2D = 0,
     11      EUC_2D = 1,
    1012    }
    1113
    12     public static double EvaluateTtp(TravelingSalesmanProblem tsp, int[] tour, BinaryKnapsackProblem ksp, bool[] loot, int[] availability, double rentingRatio, double minSpeed, double maxSpeed, out bool feasible) {
     14    public static void Import(string filePath, out double[,] tspCoordinates,
     15                                               out DistanceType distanceType,
     16                                               out int kspCapacity,
     17                                               out int[] kspItemValues,
     18                                               out int[] kspItemWeights,
     19                                               out int[] ttpAvailability,
     20                                               out double ttpMinSpeed,
     21                                               out double ttpMaxSpeed,
     22                                               out double ttpRentingRatio) {
     23      int nrOfCities = 0, nrOfItems = 0; kspCapacity = 0;
     24      ttpMinSpeed = 0.0; ttpMaxSpeed = 0.0; ttpRentingRatio = 0.0;
     25      distanceType = DistanceType.Unknown;
     26
     27      using (var fs = new FileStream(filePath, FileMode.Open))
     28      using (var sr = new StreamReader(fs)) {
     29        string input;
     30        while ((input = sr.ReadLine()) != null && !input.Contains("NODE_COORD_SECTION")) {
     31          if (input.Contains("DIMENSION:")) int.TryParse(input.Replace("DIMENSION:", string.Empty), out nrOfCities);
     32          if (input.Contains("NUMBER OF ITEMS:")) int.TryParse(input.Replace("NUMBER OF ITEMS:", string.Empty), out nrOfItems);
     33          if (input.Contains("CAPACITY OF KNAPSACK:")) int.TryParse(input.Replace("CAPACITY OF KNAPSACK:", string.Empty), out kspCapacity);
     34          if (input.Contains("MIN SPEED:")) double.TryParse(input.Replace("MIN SPEED:", string.Empty), out ttpMinSpeed);
     35          if (input.Contains("MAX SPEED:")) double.TryParse(input.Replace("MAX SPEED:", string.Empty), out ttpMaxSpeed);
     36          if (input.Contains("RENTING RATIO:")) double.TryParse(input.Replace("RENTING RATIO:", string.Empty), out ttpRentingRatio);
     37          if (input.Contains("EDGE_WEIGHT_TYPE:")) Enum.TryParse(input.Replace("EDGE_WEIGHT_TYPE:", string.Empty), out distanceType);
     38        }
     39
     40        tspCoordinates = new double[nrOfCities, 2];
     41        kspItemValues = new int[nrOfItems];
     42        kspItemWeights = new int[nrOfItems];
     43        ttpAvailability = new int[nrOfItems];
     44
     45        // read cities
     46        while ((input = sr.ReadLine()) != null && !input.Contains("ITEMS SECTION")) {
     47          string[] data = input.Split('\t');
     48          int index; double x, y;
     49          int.TryParse(data[0], out index);
     50          double.TryParse(data[1], out x);
     51          double.TryParse(data[2], out y);
     52          tspCoordinates[index - 1, 0] = x;
     53          tspCoordinates[index - 1, 1] = y;
     54        }
     55        // read items
     56        while ((input = sr.ReadLine()) != null) {
     57          string[] data = input.Split('\t');
     58          int index, value, weight, city;
     59          int.TryParse(data[0], out index);
     60          int.TryParse(data[1], out value);
     61          int.TryParse(data[2], out weight);
     62          int.TryParse(data[3], out city);
     63          kspItemValues[index - 1] = value;
     64          kspItemWeights[index - 1] = weight;
     65          ttpAvailability[index - 1] = city - 1;
     66        }
     67      }
     68    }
     69
     70    public static double Evaluate(TravelingSalesmanProblem tsp, int[] tour, BinaryKnapsackProblem ksp, bool[] loot, int[] availability, double rentingRatio, double minSpeed, double maxSpeed, DistanceType distanceType) {
     71      bool feasible;
     72      return Evaluate(tsp, tour, ksp, loot, availability, rentingRatio, minSpeed, maxSpeed, distanceType, out feasible);
     73    }
     74
     75    public static double Evaluate(TravelingSalesmanProblem tsp, int[] tour, BinaryKnapsackProblem ksp, bool[] loot, int[] availability, double rentingRatio, double minSpeed, double maxSpeed, DistanceType distanceType, out bool feasible) {
    1376      double collectedWeight = 0.0;
    1477      double objectiveValue = 0.0;
     
    3194        }
    3295
    33         objectiveValue -= Distance(tsp.Coordinates.CloneAsMatrix(), tour[lastCityIdx], tour[cityIdx]) * rentingRatio /
     96        objectiveValue -= Distance(tsp.Coordinates.CloneAsMatrix(), tour[lastCityIdx], tour[cityIdx], distanceType) * rentingRatio /
    3497                          (maxSpeed - speedCoefficient * oldCollectedWeight);
    3598        lastCityIdx = cityIdx;
     
    37100      }
    38101
    39       objectiveValue -= Distance(tsp.Coordinates.CloneAsMatrix(), tour[lastCityIdx], tour[hideoutIdx]) * rentingRatio /
     102      objectiveValue -= Distance(tsp.Coordinates.CloneAsMatrix(), tour[lastCityIdx], tour[hideoutIdx], distanceType) * rentingRatio /
    40103                        (maxSpeed - speedCoefficient * collectedWeight);
    41104
     
    46109    }
    47110
    48     private static double Distance(double[,] coords, int fromIdx, int toIdx) {
     111    private static double Distance(double[,] coords, int fromIdx, int toIdx, DistanceType distanceType) {
    49112      double fromX = coords[fromIdx, 0], fromY = coords[fromIdx, 1],
    50113             toX = coords[toIdx, 0], toY = coords[toIdx, 1];
    51       return (int)Math.Ceiling(Math.Sqrt((toX - fromX) * (toX - fromX) + (toY - fromY) * (toY - fromY)));
     114      double distance = Math.Sqrt((toX - fromX) * (toX - fromX) + (toY - fromY) * (toY - fromY));
     115      switch (distanceType) {
     116        case DistanceType.CEIL_2D: return (int)Math.Ceiling(distance);
     117        case DistanceType.EUC_2D: return distance;
     118        default: return 0.0;
     119      }
    52120    }
    53121  }
  • branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.Views/3.3

    • Property svn:ignore
      •  

        old new  
        11Plugin.cs
         2obj
  • branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization.Views/3.3/Plugin.cs.frame

    r14586 r14604  
    2828  [Plugin("HeuristicLab.Networks.IntegratedOptimization.Views", "3.3.14.$WCREV$")]
    2929  [PluginFile("HeuristicLab.Networks.IntegratedOptimization.Views-3.3.dll", PluginFileType.Assembly)]
     30  [PluginDependency("HeuristicLab.Common.Resources", "3.3")]
     31  [PluginDependency("HeuristicLab.Core", "3.3")]
     32  [PluginDependency("HeuristicLab.Core.Views", "3.3")]
     33  [PluginDependency("HeuristicLab.MainForm", "3.3")]
     34  [PluginDependency("HeuristicLab.MainForm.WindowsForms", "3.3")]
     35  [PluginDependency("HeuristicLab.Networks", "3.3")]
     36  [PluginDependency("HeuristicLab.Networks.IntegratedOptimization", "3.3")]
     37  [PluginDependency("HeuristicLab.Networks.Views", "3.3")]
     38  [PluginDependency("HeuristicLab.Optimization", "3.3")]
     39  [PluginDependency("HeuristicLab.Optimization.Views", "3.3")]
    3040  public class HeuristicLabNetworksIntegratedOptimizationViewsPlugin : PluginBase {
    3141  }
  • branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization/3.3/Plugin.cs.frame

    r14598 r14604  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2017 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2828  [Plugin("HeuristicLab.Networks.IntegratedOptimization", "3.3.14.$WCREV$")]
    2929  [PluginFile("HeuristicLab.Networks.IntegratedOptimization-3.3.dll", PluginFileType.Assembly)]
    30   [PluginDependency("HeuristicLab.Algorithms.CMAEvolutionStrategy", "3.4")]
    31   [PluginDependency("HeuristicLab.Algorithms.GeneticAlgorithm", "3.3")]
    32   [PluginDependency("HeuristicLab.Algorithms.LocalSearch", "3.3")]
    33   [PluginDependency("HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm", "3.3")]
    34   [PluginDependency("HeuristicLab.Algorithms.ParameterlessPopulationPyramid", "3.3")]
    35   [PluginDependency("HeuristicLab.Algorithms.SimulatedAnnealing", "3.3")]
    36   [PluginDependency("HeuristicLab.Algorithms.TabuSearch", "3.3")]
    37   [PluginDependency("HeuristicLab.Analysis", "3.3")]
    3830  [PluginDependency("HeuristicLab.Collections", "3.3")]
    3931  [PluginDependency("HeuristicLab.Common", "3.3")]
    4032  [PluginDependency("HeuristicLab.Core", "3.3")]
    4133  [PluginDependency("HeuristicLab.Data", "3.3")]
    42   [PluginDependency("HeuristicLab.Encodings.BinaryVectorEncoding", "3.3")]
    43   [PluginDependency("HeuristicLab.Encodings.IntegerVectorEncoding", "3.3")]
    44   [PluginDependency("HeuristicLab.Encodings.PermutationEncoding", "3.3")]
    4534  [PluginDependency("HeuristicLab.Encodings.RealVectorEncoding", "3.3")]
    4635  [PluginDependency("HeuristicLab.Networks", "3.3")]
    4736  [PluginDependency("HeuristicLab.Operators", "3.3")]
    4837  [PluginDependency("HeuristicLab.Optimization", "3.3")]
    49   [PluginDependency("HeuristicLab.ParallelEngine", "3.3")]
    5038  [PluginDependency("HeuristicLab.Parameters", "3.3")]
    51   [PluginDependency("HeuristicLab.Problems.Binary", "3.3")]
    52   [PluginDependency("HeuristicLab.Problems.Instances", "3.3")]
    53   [PluginDependency("HeuristicLab.Problems.Knapsack", "3.3")]
    54   [PluginDependency("HeuristicLab.Problems.TravelingSalesman", "3.3")]
    55   [PluginDependency("HeuristicLab.Random", "3.3")]
    56   [PluginDependency("HeuristicLab.Scripting", "3.3")]
    57   [PluginDependency("HeuristicLab.Selection", "3.3")]
     39  [PluginDependency("HeuristicLab.Persistence", "3.3")]
    5840  public class HeuristicLabNetworksIntegratedOptimizationPlugin : PluginBase {
    5941  }
  • branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization/3.3/Properties/AssemblyInfo.cs.frame

    r14586 r14604  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-201 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2017 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization/3.3/VariegationProblem.cs

    r14601 r14604  
    1010  [StorableClass]
    1111  public class VariegationProblem : SingleObjectiveBasicProblem<RealVectorEncoding> {
     12    private bool maximization;
    1213    public override bool Maximization {
    13       get { return true; }
     14      get { return maximization; }
     15    }
     16
     17    public void SetMaximization(bool value) {
     18      maximization = value;
    1419    }
    1520
  • branches/OptimizationNetworks/HeuristicLab.Networks.Views.NetworkVisualization.Views/3.3/Plugin.cs.frame

    r13077 r14604  
    3434  [PluginDependency("HeuristicLab.Core.Views", "3.3")]
    3535  [PluginDependency("HeuristicLab.MainForm", "3.3")]
     36  [PluginDependency("HeuristicLab.MainForm.WindowsForms", "3.3")]
    3637  [PluginDependency("HeuristicLab.Networks", "3.3")]
    3738  [PluginDependency("HeuristicLab.Networks.Views", "3.3")]
  • branches/OptimizationNetworks/HeuristicLab.Networks.Views.NetworkVisualization/3.3/Plugin.cs.frame

    r13077 r14604  
    2929  [PluginFile("HeuristicLab.Networks.Views.NetworkVisualization-3.3.dll", PluginFileType.Assembly)]
    3030  [PluginDependency("HeuristicLab.Collections", "3.3")]
     31  [PluginDependency("HeuristicLab.Common", "3.3")]
    3132  [PluginDependency("HeuristicLab.Core", "3.3")]
    3233  [PluginDependency("HeuristicLab.Networks", "3.3")]
     34  [PluginDependency("HeuristicLab.Optimization", "3.3")]
     35  [PluginDependency("HeuristicLab.Persistence", "3.3")]
    3336  [PluginDependency("HeuristicLab.Visualization", "3.3")]
    3437  public class HeuristicLabNetworksViewsNetworkVisualizationPlugin : PluginBase {
  • branches/OptimizationNetworks/HeuristicLab.Problems.FacilityLocation.CplexSolver/3.3/Plugin.cs.frame

    r14595 r14604  
    2727  [PluginDependency("HeuristicLab.Collections", "3.3")]
    2828  [PluginDependency("HeuristicLab.Common", "3.3")]
    29   [PluginDependency("HeuristicLab.Common.Resources", "3.3")]
    3029  [PluginDependency("HeuristicLab.Core", "3.3")]
    3130  [PluginDependency("HeuristicLab.Data", "3.3")]
     
    3332  [PluginDependency("HeuristicLab.Optimization", "3.3")]
    3433  [PluginDependency("HeuristicLab.Parameters", "3.3")]
     34  [PluginDependency("HeuristicLab.Problems.FacilityLocation", "3.3")]
    3535  [PluginDependency("HeuristicLab.Persistence", "3.3")]
    36   [PluginDependency("HeuristicLab.Problems.Instances", "3.3")]
     36  [PluginDependency("HeuristicLab.Random", "3.3")]
    3737  public class HeuristicLabProblemsFacilityLocationCplexSolverPlugin : PluginBase {
    3838    }
  • branches/OptimizationNetworks/HeuristicLab.Problems.FacilityLocation/3.3/Plugin.cs.frame

    r14587 r14604  
    2525  [Plugin("HeuristicLab.Problems.FacilityLocation", "Plugin that provides the definition for the facility location problem (FLP)", "3.3.14.$WCREV$")]
    2626  [PluginFile("HeuristicLab.Problems.FacilityLocation-3.3.dll", PluginFileType.Assembly)]
     27  [PluginDependency("HeuristicLab.Analysis", "3.3")]
    2728  [PluginDependency("HeuristicLab.Collections", "3.3")]
    2829  [PluginDependency("HeuristicLab.Common", "3.3")]
    29   [PluginDependency("HeuristicLab.Common.Resources", "3.3")]
    3030  [PluginDependency("HeuristicLab.Core", "3.3")]
    3131  [PluginDependency("HeuristicLab.Data", "3.3")]
    3232  [PluginDependency("HeuristicLab.Encodings.IntegerVectorEncoding", "3.3")]
    3333  [PluginDependency("HeuristicLab.Optimization", "3.3")]
     34  [PluginDependency("HeuristicLab.Optimization.Operators", "3.3")]
    3435  [PluginDependency("HeuristicLab.Parameters", "3.3")]
    3536  [PluginDependency("HeuristicLab.Persistence", "3.3")]
    36   [PluginDependency("HeuristicLab.Problems.Instances", "3.3")]
    3737  public class HeuristicLabProblemsFacilityLocationPlugin : PluginBase { }
    3838}
  • branches/OptimizationNetworks/LRP-Network.sln

    r14595 r14604  
    1919EndProject
    2020Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.FacilityLocation.CplexSolver-3.3", "HeuristicLab.Problems.FacilityLocation.CplexSolver\3.3\HeuristicLab.Problems.FacilityLocation.CplexSolver-3.3.csproj", "{307DF76A-9D9D-4D0A-BB67-DEEF934A70FF}"
     21EndProject
     22Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Networks.IntegratedOptimization.LocationRouting-3.3", "HeuristicLab.Networks.IntegratedOptimization.LocationRouting\3.3\HeuristicLab.Networks.IntegratedOptimization.LocationRouting-3.3.csproj", "{B364F111-5C05-4B28-9A29-F6A50E539003}"
     23EndProject
     24Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Networks.IntegratedOptimization-3.3", "HeuristicLab.Networks.IntegratedOptimization\3.3\HeuristicLab.Networks.IntegratedOptimization-3.3.csproj", "{B6263D3E-DCAF-42B0-A440-3DEEF1FF0429}"
    2125EndProject
    2226Global
     
    126130    {307DF76A-9D9D-4D0A-BB67-DEEF934A70FF}.Release|x86.ActiveCfg = Release|Any CPU
    127131    {307DF76A-9D9D-4D0A-BB67-DEEF934A70FF}.Release|x86.Build.0 = Release|Any CPU
     132    {B364F111-5C05-4B28-9A29-F6A50E539003}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
     133    {B364F111-5C05-4B28-9A29-F6A50E539003}.Debug|Any CPU.Build.0 = Debug|Any CPU
     134    {B364F111-5C05-4B28-9A29-F6A50E539003}.Debug|x64.ActiveCfg = Debug|x64
     135    {B364F111-5C05-4B28-9A29-F6A50E539003}.Debug|x64.Build.0 = Debug|x64
     136    {B364F111-5C05-4B28-9A29-F6A50E539003}.Debug|x86.ActiveCfg = Debug|x86
     137    {B364F111-5C05-4B28-9A29-F6A50E539003}.Debug|x86.Build.0 = Debug|x86
     138    {B364F111-5C05-4B28-9A29-F6A50E539003}.Release|Any CPU.ActiveCfg = Release|Any CPU
     139    {B364F111-5C05-4B28-9A29-F6A50E539003}.Release|Any CPU.Build.0 = Release|Any CPU
     140    {B364F111-5C05-4B28-9A29-F6A50E539003}.Release|x64.ActiveCfg = Release|x64
     141    {B364F111-5C05-4B28-9A29-F6A50E539003}.Release|x64.Build.0 = Release|x64
     142    {B364F111-5C05-4B28-9A29-F6A50E539003}.Release|x86.ActiveCfg = Release|x86
     143    {B364F111-5C05-4B28-9A29-F6A50E539003}.Release|x86.Build.0 = Release|x86
     144    {B6263D3E-DCAF-42B0-A440-3DEEF1FF0429}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
     145    {B6263D3E-DCAF-42B0-A440-3DEEF1FF0429}.Debug|Any CPU.Build.0 = Debug|Any CPU
     146    {B6263D3E-DCAF-42B0-A440-3DEEF1FF0429}.Debug|x64.ActiveCfg = Debug|x64
     147    {B6263D3E-DCAF-42B0-A440-3DEEF1FF0429}.Debug|x64.Build.0 = Debug|x64
     148    {B6263D3E-DCAF-42B0-A440-3DEEF1FF0429}.Debug|x86.ActiveCfg = Debug|x86
     149    {B6263D3E-DCAF-42B0-A440-3DEEF1FF0429}.Debug|x86.Build.0 = Debug|x86
     150    {B6263D3E-DCAF-42B0-A440-3DEEF1FF0429}.Release|Any CPU.ActiveCfg = Release|Any CPU
     151    {B6263D3E-DCAF-42B0-A440-3DEEF1FF0429}.Release|Any CPU.Build.0 = Release|Any CPU
     152    {B6263D3E-DCAF-42B0-A440-3DEEF1FF0429}.Release|x64.ActiveCfg = Release|x64
     153    {B6263D3E-DCAF-42B0-A440-3DEEF1FF0429}.Release|x64.Build.0 = Release|x64
     154    {B6263D3E-DCAF-42B0-A440-3DEEF1FF0429}.Release|x86.ActiveCfg = Release|x86
     155    {B6263D3E-DCAF-42B0-A440-3DEEF1FF0429}.Release|x86.Build.0 = Release|x86
    128156  EndGlobalSection
    129157  GlobalSection(SolutionProperties) = preSolution
Note: See TracChangeset for help on using the changeset viewer.