Changeset 9352 for branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/Action/StringAction.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/StringAction.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("StringAction", "")] 32 33 public class StringAction : Item, IAction<string> { 34 35 public static IEqualityComparer<IGAssistNiche> Comparer { 36 get { return new DecisionListNicheComparer(); } 37 } 38 39 IEqualityComparer<IGAssistNiche> IGAssistNiche.Comparer { 40 get { return Comparer; } 41 } 33 42 34 43 [Storable] … … 92 101 } 93 102 103 public void Randomize(IRandom random, IEnumerable<IAction> except) { 104 if (except.Count() == 0) { 105 Randomize(random); 106 return; 107 } 108 try { 109 var exceptInt = except.Cast<StringAction>().Select(x => x.CurrentActionIndex); 110 var newPossibleFeatures = Enumerable.Range(0, possibleFeatures.Count()).Except(exceptInt); 111 currentActionIndex = newPossibleFeatures.ElementAt(random.Next(0, newPossibleFeatures.Count())); 112 } 113 catch (InvalidCastException) { 114 throw new InvalidCastException("Actions have to be of type IntAction"); 115 } 116 } 117 94 118 public bool Match(IAction action) { 95 119 var targetCast = action as StringAction; … … 107 131 108 132 public override string ToString() { 109 return CurrentAction; 133 return variableName + ": " + CurrentAction; 134 } 135 136 public bool SameNiche(IGAssistNiche niche) { 137 return Match(niche as IAction); 138 } 139 140 public int GetNicheHashCode() { 141 int result = 1; 142 result = 37 * result + currentActionIndex; 143 result = 37 * result + variableName.GetHashCode(); 144 foreach (var feature in possibleFeatures) { 145 result = 37 * result + feature.GetHashCode(); 146 } 147 return result; 110 148 } 111 149 }
Note: See TracChangeset
for help on using the changeset viewer.