[14586] | 1 | //using HeuristicLab.Algorithms.GeneticAlgorithm;
|
---|
| 2 | //using HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm;
|
---|
| 3 | //using HeuristicLab.Common;
|
---|
| 4 | //using HeuristicLab.Core;
|
---|
| 5 | //using HeuristicLab.Core.Networks;
|
---|
| 6 | //using HeuristicLab.Data;
|
---|
| 7 | //using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
|
---|
| 8 |
|
---|
| 9 | //namespace HeuristicLab.Networks.IntegratedOptimization {
|
---|
| 10 | // [Item("TtpNetwork", "An optimization network for the TTP.")]
|
---|
| 11 | // [Creatable("Optimization Networks")]
|
---|
| 12 | // [StorableClass]
|
---|
| 13 | // // partial ttp
|
---|
| 14 | // // User-defined variegation (exchange all cities with all deselected cities)
|
---|
| 15 | // // 1) best ksp
|
---|
| 16 | // // 2) best reduced tsp
|
---|
| 17 | // // 3) local optimization of tour
|
---|
| 18 | // // 4) if better quality, then increase ksp values for items found in better city
|
---|
| 19 | // public sealed class TtpNetwork : Network {
|
---|
| 20 | // [StorableConstructor]
|
---|
| 21 | // private TtpNetwork(bool deserializing) : base(deserializing) { }
|
---|
| 22 | // private TtpNetwork(TtpNetwork original, Cloner cloner) : base(original, cloner) { }
|
---|
| 23 | // public TtpNetwork() : base("TtpNetwork") {
|
---|
| 24 | // var orchestratorNode = new TtpOrchestratorNode1();
|
---|
| 25 | // Nodes.Add(orchestratorNode);
|
---|
| 26 |
|
---|
| 27 | // var tspSolverNode = new OrchestratedAlgorithmNode("TspSolver");
|
---|
| 28 | // tspSolverNode.Algorithm = new OffspringSelectionGeneticAlgorithm();
|
---|
| 29 | // tspSolverNode.Algorithm.Problem = orchestratorNode.TspParameter.Value;
|
---|
| 30 | // orchestratorNode.TspSolverOrchestrationPort.ConnectedPort = tspSolverNode.OrchestrationPort;
|
---|
| 31 | // Nodes.Add(tspSolverNode);
|
---|
| 32 |
|
---|
| 33 | // var kspSolverNode = new OrchestratedAlgorithmNode("KspSolver");
|
---|
| 34 | // kspSolverNode.Algorithm = new GeneticAlgorithm();
|
---|
| 35 | // kspSolverNode.Algorithm.Problem = orchestratorNode.KspParameter.Value;
|
---|
| 36 | // orchestratorNode.KspSolverOrchestrationPort.ConnectedPort = kspSolverNode.OrchestrationPort;
|
---|
| 37 | // Nodes.Add(kspSolverNode);
|
---|
| 38 |
|
---|
| 39 | // #region Import
|
---|
| 40 | // DoubleMatrix tspCoordinates;
|
---|
| 41 | // IntValue kspCapacity; IntArray kspItemWeights; IntArray kspItemValues;
|
---|
| 42 | // IntArray ttpAvailability; DoubleValue ttpMinSpeed; DoubleValue ttpMaxSpeed; DoubleValue ttpRentingRatio;
|
---|
| 43 | // TtpImporter.ImportTtpInstance(@"ttp-instances\berlin52-ttp\berlin52_n51_uncorr_01.ttp",
|
---|
| 44 | // out tspCoordinates,
|
---|
| 45 | // out kspCapacity, out kspItemValues, out kspItemWeights,
|
---|
| 46 | // out ttpAvailability, out ttpMinSpeed, out ttpMaxSpeed, out ttpRentingRatio);
|
---|
| 47 |
|
---|
| 48 | // var tsp = orchestratorNode.TspParameter.Value;
|
---|
| 49 | // tsp.Coordinates = tspCoordinates;
|
---|
| 50 | // var ksp = orchestratorNode.KspParameter.Value;
|
---|
| 51 | // ksp.KnapsackCapacity = kspCapacity;
|
---|
| 52 | // ksp.Penalty.Value = ksp.KnapsackCapacity.Value;
|
---|
| 53 | // ksp.Values = kspItemValues;
|
---|
| 54 | // ksp.Weights = kspItemWeights;
|
---|
| 55 |
|
---|
| 56 | // orchestratorNode.AvailabilityParameter.Value = ttpAvailability;
|
---|
| 57 | // orchestratorNode.MinSpeedParameter.Value = ttpMinSpeed;
|
---|
| 58 | // orchestratorNode.MaxSpeedParameter.Value = ttpMaxSpeed;
|
---|
| 59 | // orchestratorNode.RentingRatioParameter.Value = ttpRentingRatio;
|
---|
| 60 | // #endregion
|
---|
| 61 | // }
|
---|
| 62 |
|
---|
| 63 | // public override IDeepCloneable Clone(Cloner cloner) {
|
---|
| 64 | // return new TtpNetwork(this, cloner);
|
---|
| 65 | // }
|
---|
| 66 | // }
|
---|
| 67 | //}
|
---|