- Timestamp:
- 01/19/12 17:33:28 (13 years ago)
- Location:
- branches/GeneralizedQAP/HeuristicLab.Problems.GeneralizedQuadraticAssignment/3.3
- Files:
-
- 4 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/GeneralizedQAP/HeuristicLab.Problems.GeneralizedQuadraticAssignment/3.3/GeneralizedQuadraticAssignmentProblem.cs
r7319 r7373 36 36 [Creatable("Problems")] 37 37 [StorableClass] 38 public sealed class GeneralizedQuadraticAssignmentProblem : SingleObjectiveHeuristicOptimizationProblem<IGQAPEvaluator, I IntegerVectorCreator>, IStorableContent {38 public sealed class GeneralizedQuadraticAssignmentProblem : SingleObjectiveHeuristicOptimizationProblem<IGQAPEvaluator, IGQAPSolutionCreator>, IStorableContent { 39 39 public override Image ItemImage { 40 40 get { return HeuristicLab.Common.Resources.VSImageLibrary.Type; } … … 109 109 } 110 110 public GeneralizedQuadraticAssignmentProblem() 111 : base(new GQAPEvaluator(), new UniformRandomIntegerVectorCreator()) {111 : base(new GQAPEvaluator(), new RandomSolutionCreator()) { 112 112 Parameters.Add(new ValueParameter<DoubleMatrix>("Weights", "The weights matrix describes the flows between the equipments.", new DoubleMatrix())); 113 113 Parameters.Add(new ValueParameter<DoubleMatrix>("Distances", "The distances matrix describes the distances between the locations at which the equipment can be installed.", new DoubleMatrix())); … … 146 146 Capacities[0] = 4; Capacities[1] = 1; Capacities[2] = 4; 147 147 148 SolutionCreator. IntegerVectorParameter.ActualName = "Assignment";148 SolutionCreator.AssignmentParameter.ActualName = "Assignment"; 149 149 Parameterize(); 150 150 … … 184 184 [StorableHook(HookType.AfterDeserialization)] 185 185 private void AfterDeserializationHook() { 186 // BackwardsCompatibility3.3187 #region Backwards compatible code, remove with 3.4188 if (!Parameters.ContainsKey("EquipmentNames"))189 Parameters.Add(new OptionalValueParameter<StringArray>("EquipmentNames", "Optional: A list of names that describes the equipments.", null, false));190 if (!Parameters.ContainsKey("LocationNames"))191 Parameters.Add(new OptionalValueParameter<StringArray>("LocationNames", "Optional: A list of names that describes the locations.", null, false));192 #endregion193 186 AttachEventHandlers(); 194 187 } … … 196 189 private void AttachEventHandlers() { 197 190 Evaluator.QualityParameter.ActualNameChanged += new System.EventHandler(Evaluator_QualityParameter_ActualNameChanged); 198 SolutionCreator. IntegerVectorParameter.ActualNameChanged += new EventHandler(SolutionCreator_IntegerVectorParameter_ActualNameChanged);191 SolutionCreator.AssignmentParameter.ActualNameChanged += new EventHandler(SolutionCreator_IntegerVectorParameter_ActualNameChanged); 199 192 } 200 193 … … 214 207 Evaluator.DemandsParameter.ActualName = DemandsParameter.Name; 215 208 Evaluator.CapacitiesParameter.ActualName = CapacitiesParameter.Name; 216 Evaluator.AssignmentParameter.ActualName = SolutionCreator.IntegerVectorParameter.ActualName; 217 218 SolutionCreator.LengthParameter.Value = new IntValue(Demands.Length); 219 SolutionCreator.MinimumParameter.Value = new IntValue(0); 220 SolutionCreator.MaximumParameter.Value = new IntValue(Capacities.Length); 209 Evaluator.AssignmentParameter.ActualName = SolutionCreator.AssignmentParameter.ActualName; 210 211 SolutionCreator.DemandsParameter.ActualName = DemandsParameter.Name; 212 SolutionCreator.CapacitiesParameter.ActualName = CapacitiesParameter.Name; 221 213 222 214 foreach (var op in Operators.OfType<IIntegerVectorCrossover>()) { 223 op.ParentsParameter.ActualName = SolutionCreator. IntegerVectorParameter.ActualName;224 op.ChildParameter.ActualName = SolutionCreator. IntegerVectorParameter.ActualName;215 op.ParentsParameter.ActualName = SolutionCreator.AssignmentParameter.ActualName; 216 op.ChildParameter.ActualName = SolutionCreator.AssignmentParameter.ActualName; 225 217 } 226 218 foreach (var op in Operators.OfType<IIntegerVectorManipulator>()) { 227 op.IntegerVectorParameter.ActualName = SolutionCreator. IntegerVectorParameter.ActualName;219 op.IntegerVectorParameter.ActualName = SolutionCreator.AssignmentParameter.ActualName; 228 220 } 229 221 foreach (var op in Operators.OfType<IGQAPCrossover>()) { 230 op.ParentsParameter.ActualName = SolutionCreator. IntegerVectorParameter.ActualName;231 op.ChildParameter.ActualName = SolutionCreator. IntegerVectorParameter.ActualName;222 op.ParentsParameter.ActualName = SolutionCreator.AssignmentParameter.ActualName; 223 op.ChildParameter.ActualName = SolutionCreator.AssignmentParameter.ActualName; 232 224 } 233 225 foreach (var op in Operators.OfType<IGQAPManipulator>()) { 234 op.IntegerVectorParameter.ActualName = SolutionCreator. IntegerVectorParameter.ActualName;226 op.IntegerVectorParameter.ActualName = SolutionCreator.AssignmentParameter.ActualName; 235 227 } 236 228 foreach (var op in Operators.OfType<ILocationAwareGQAPOperator>()) { 237 229 op.CapacitiesParameter.ActualName = CapacitiesParameter.Name; 238 230 } 239 foreach (var op in Operators.OfType<IEquipmentAwareGQAP Manipulator>()) {231 foreach (var op in Operators.OfType<IEquipmentAwareGQAPOperator>()) { 240 232 op.DemandsParameter.ActualName = DemandsParameter.Name; 241 233 } … … 245 237 BestSolutionAnalyzer.DistancesParameter.ActualName = DistancesParameter.Name; 246 238 BestSolutionAnalyzer.WeightsParameter.ActualName = WeightsParameter.Name; 247 BestSolutionAnalyzer.AssignmentParameter.ActualName = SolutionCreator. IntegerVectorParameter.ActualName;239 BestSolutionAnalyzer.AssignmentParameter.ActualName = SolutionCreator.AssignmentParameter.ActualName; 248 240 BestSolutionAnalyzer.ResultsParameter.ActualName = "Results"; 249 241 BestSolutionAnalyzer.BestKnownQualityParameter.ActualName = BestKnownQualityParameter.Name; -
branches/GeneralizedQAP/HeuristicLab.Problems.GeneralizedQuadraticAssignment/3.3/Interfaces/IEquipmentAwareGQAPOperator.cs
r7319 r7373 24 24 25 25 namespace HeuristicLab.Problems.GeneralizedQuadraticAssignment { 26 public interface IEquipmentAwareGQAP Manipulator : IGQAPManipulator {26 public interface IEquipmentAwareGQAPOperator : IGQAPOperator { 27 27 ILookupParameter<DoubleArray> DemandsParameter { get; } 28 28 } -
branches/GeneralizedQAP/HeuristicLab.Problems.GeneralizedQuadraticAssignment/3.3/Operators/DemandEquivalentSwapEquipmentManipluator.cs
r7319 r7373 34 34 [Item("DemandEquivalentSwapEquipmentManipluator", "Swaps equipment X from location A with as much equipments from location B that the demand of X is less than or equal to the demand of the swapped equipments in B.")] 35 35 [StorableClass] 36 public class DemandEquivalentSwapEquipmentManipluator : GQAPManipulator, ILocationAwareGQAPOperator, IEquipmentAwareGQAP Manipulator {37 36 public class DemandEquivalentSwapEquipmentManipluator : GQAPManipulator, ILocationAwareGQAPOperator, IEquipmentAwareGQAPOperator { 37 38 38 public ILookupParameter<DoubleArray> CapacitiesParameter { 39 39 get { return (ILookupParameter<DoubleArray>)Parameters["Capacities"]; }
Note: See TracChangeset
for help on using the changeset viewer.