- Timestamp:
- 03/19/14 16:47:51 (11 years ago)
- Location:
- trunk/sources
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/IslandOffspringSelectionGeneticAlgorithmMainLoop.cs
r9592 r10639 20 20 #endregion 21 21 22 using System.Linq; 22 23 using HeuristicLab.Common; 23 24 using HeuristicLab.Core; … … 28 29 using HeuristicLab.Parameters; 29 30 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 31 using HeuristicLab.Selection; 30 32 31 33 namespace HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm { … … 265 267 mainOperator.SelectorParameter.ActualName = SelectorParameter.Name; 266 268 mainOperator.SuccessRatioParameter.ActualName = SuccessRatioParameter.Name; 269 foreach (var offspringSelector in mainOperator.OperatorGraph.Operators.OfType<OffspringSelector>()) 270 offspringSelector.FillPopulationWithParents = true; 267 271 268 272 islandAnalyzer2.Name = "Island Analyzer (placeholder)"; -
trunk/sources/HeuristicLab.Selection/3.3/OffspringSelector.cs
r9456 r10639 57 57 } 58 58 59 public FixedValueParameter<BoolValue> FillPopulationWithParentsParameter { 60 get { return (FixedValueParameter<BoolValue>)Parameters["FillPopulationWithParents"]; } 61 } 62 59 63 public IOperator OffspringCreator { 60 64 get { return OffspringCreatorParameter.Value; } … … 62 66 } 63 67 68 public bool FillPopulationWithParents { 69 get { return FillPopulationWithParentsParameter.Value.Value; } 70 set { FillPopulationWithParentsParameter.Value.Value = value; } 71 } 72 64 73 [StorableConstructor] 65 74 protected OffspringSelector(bool deserializing) : base(deserializing) { } 75 [StorableHook(HookType.AfterDeserialization)] 76 private void AfterDeserialization() { 77 // BackwardsCompatibility3.3 78 #region Backwards compatible code, remove with 3.4 79 if (!Parameters.ContainsKey("FillPopulationWithParents")) 80 Parameters.Add(new FixedValueParameter<BoolValue>("FillPopulationWithParents", "True if the population should be filled with parent individuals instead of lucky losers.", new BoolValue(false))); 81 #endregion 82 } 83 66 84 protected OffspringSelector(OffspringSelector original, Cloner cloner) : base(original, cloner) { } 67 85 public override IDeepCloneable Clone(Cloner cloner) { … … 78 96 Parameters.Add(new ScopeTreeLookupParameter<BoolValue>("SuccessfulOffspring", "True if the offspring was more successful than its parents.", 2)); 79 97 Parameters.Add(new OperatorParameter("OffspringCreator", "The operator used to create new offspring.")); 98 Parameters.Add(new FixedValueParameter<BoolValue>("FillPopulationWithParents", "True if the population should be filled with parent individuals instead of lucky losers.", new BoolValue(false))); 80 99 } 81 100 … … 133 152 successfulOffspringAdded++; 134 153 } else if (worseOffspringNeeded > 0 || tmpSelPress >= maxSelPress) { 135 IScope currentOffspring = offspring.SubScopes[i]; 136 offspring.SubScopes.Remove(currentOffspring); 137 i--; 154 IScope currentOffspring; 155 if (!FillPopulationWithParents || worseOffspringNeeded > 0) { 156 currentOffspring = offspring.SubScopes[i]; 157 offspring.SubScopes.Remove(currentOffspring); 158 i--; 159 worseOffspringNeeded--; 160 } else { 161 currentOffspring = parents.SubScopes[i]; 162 } 138 163 population.Add(currentOffspring); 139 worseOffspringNeeded--;140 164 } 141 165 tmpSelPress += tmpSelPressInc;
Note: See TracChangeset
for help on using the changeset viewer.