Changeset 9352 for branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/Action/IntAction.cs
- Timestamp:
- 04/10/13 15:15:13 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/Action/IntAction.cs
r9334 r9352 25 25 using HeuristicLab.Common; 26 26 using HeuristicLab.Core; 27 using HeuristicLab.Optimization.Operators.LCS; 27 28 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 28 29 … … 31 32 [Item("IntAction", "")] 32 33 public class IntAction : Item, IAction<int> { 34 35 public static IEqualityComparer<IGAssistNiche> Comparer { 36 get { return new DecisionListNicheComparer(); } 37 } 38 IEqualityComparer<IGAssistNiche> IGAssistNiche.Comparer { 39 get { return Comparer; } 40 } 33 41 34 42 [Storable] … … 88 96 } 89 97 98 public void Randomize(IRandom random, IEnumerable<IAction> except) { 99 if (except.Count() == 0) { 100 Randomize(random); 101 return; 102 } 103 try { 104 var exceptInt = except.Cast<IntAction>().Select(x => x.currentAction); 105 var newPossibleFeatures = possibleFeatures.Except(exceptInt); 106 currentAction = newPossibleFeatures.ElementAt(random.Next(0, newPossibleFeatures.Count())); 107 } 108 catch (InvalidCastException) { 109 throw new InvalidCastException("Actions have to be of type IntAction"); 110 } 111 } 112 90 113 public bool Match(IAction action) { 91 114 var targetCast = action as IntAction; … … 103 126 104 127 public override string ToString() { 105 return currentAction.ToString(); 128 return variableName + ": " + currentAction.ToString(); 129 } 130 131 public bool SameNiche(IGAssistNiche niche) { 132 return Match(niche as IAction); 133 } 134 135 public int GetNicheHashCode() { 136 int result = 1; 137 result = 37 * result + currentAction; 138 result = 37 * result + variableName.GetHashCode(); 139 foreach (var feature in possibleFeatures) { 140 result = 37 * result + feature; 141 } 142 return result; 106 143 } 107 144 }
Note: See TracChangeset
for help on using the changeset viewer.