- Timestamp:
- 08/25/15 10:38:20 (9 years ago)
- Location:
- trunk/sources/HeuristicLab.Problems.ArtificialAnt/3.5
- Files:
-
- 1 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Problems.ArtificialAnt/3.5/AntTrail.cs
r12012 r12895 39 39 } 40 40 [Storable] 41 private SymbolicExpressionTree expression; 42 public SymbolicExpressionTree SymbolicExpressionTree { 43 get { return expression; } 44 set { 45 if (expression != value) { 46 //if (expression != null) DeregisterSymbolicExpressionTreeEvents(); 47 expression = value; 48 //if (expression != null) RegisterSymbolicExpressionTreeEvents(); 49 OnSymbolicExpressionTreeChanged(); 50 } 51 } 52 } 41 public ISymbolicExpressionTree SymbolicExpressionTree { get; private set; } 42 [Storable] 43 public BoolMatrix World { get; private set; } 44 [Storable] 45 public int MaxTimeSteps { get; private set; } 46 [Storable] 47 public double Quality { get; private set; } 53 48 54 [Storable] 55 private BoolMatrix world; 56 public BoolMatrix World { 57 get { return world; } 58 set { 59 if (world != value) { 60 if (world != null) DeregisterWorldEvents(); 61 world = value; 62 if (world != null) RegisterWorldEvents(); 63 OnWorldChanged(); 64 } 65 } 66 } 67 [Storable] 68 private IntValue maxTimeSteps; 69 public IntValue MaxTimeSteps { 70 get { return maxTimeSteps; } 71 set { 72 if (maxTimeSteps != value) { 73 if (maxTimeSteps != value) { 74 if (maxTimeSteps != null) DeregisterMaxTimeStepsEvents(); 75 maxTimeSteps = value; 76 if (maxTimeSteps != null) RegisterMaxTimeStepsEvents(); 77 OnWorldChanged(); 78 } 79 } 80 } 81 } 82 83 public AntTrail() : base() { } 84 public AntTrail(BoolMatrix world, SymbolicExpressionTree expression, IntValue maxTimeSteps) 85 : this() { 86 this.world = world; 87 this.expression = expression; 88 this.maxTimeSteps = maxTimeSteps; 89 Initialize(); 49 public AntTrail(BoolMatrix world, ISymbolicExpressionTree expression, int maxTimeSteps, double quality) { 50 this.World = world; 51 this.SymbolicExpressionTree = expression; 52 this.MaxTimeSteps = maxTimeSteps; 53 this.Quality = quality; 90 54 } 91 55 … … 93 57 private AntTrail(bool deserializing) : base(deserializing) { } 94 58 [StorableHook(HookType.AfterDeserialization)] 95 private void AfterDeserialization() { 96 Initialize(); 97 } 59 private void AfterDeserialization() { } 60 98 61 private AntTrail(AntTrail original, Cloner cloner) 99 62 : base(original, cloner) { 100 expression = cloner.Clone(original.expression);101 world = cloner.Clone(original.world);102 maxTimeSteps = cloner.Clone(original.maxTimeSteps);103 Initialize();63 SymbolicExpressionTree = cloner.Clone(original.SymbolicExpressionTree); 64 World = cloner.Clone(original.World); 65 MaxTimeSteps = original.MaxTimeSteps; 66 Quality = original.Quality; 104 67 } 68 105 69 public override IDeepCloneable Clone(Cloner cloner) { 106 70 return new AntTrail(this, cloner); 107 71 } 108 109 private void Initialize() {110 //if (expression != null) RegisterSymbolicExpressionTreeEvents();111 if (world != null) RegisterWorldEvents();112 if (maxTimeSteps != null) RegisterMaxTimeStepsEvents();113 }114 115 #region Events116 public event EventHandler SymbolicExpressionTreeChanged;117 private void OnSymbolicExpressionTreeChanged() {118 var changed = SymbolicExpressionTreeChanged;119 if (changed != null) changed(this, EventArgs.Empty);120 }121 public event EventHandler WorldChanged;122 private void OnWorldChanged() {123 var changed = WorldChanged;124 if (changed != null) changed(this, EventArgs.Empty);125 }126 public event EventHandler MaxTimeStepsChanged;127 private void OnMaxTimeStepsChanged() {128 var changed = MaxTimeStepsChanged;129 if (changed != null) changed(this, EventArgs.Empty);130 }131 132 //private void RegisterSymbolicExpressionTreeEvents() {133 // SymbolicExpressionTree.ItemChanged += new EventHandler<EventArgs<int>>(SymbolicExpressionTree_ItemChanged);134 // SymbolicExpressionTree.Reset += new EventHandler(SymbolicExpressionTree_Reset);135 //}136 //private void DeregisterSymbolicExpressionTreeEvents() {137 // SymbolicExpressionTree.ItemChanged -= new EventHandler<EventArgs<int>>(SymbolicExpressionTree_ItemChanged);138 // SymbolicExpressionTree.Reset -= new EventHandler(SymbolicExpressionTree_Reset);139 //}140 141 private void RegisterWorldEvents() {142 World.ItemChanged += new EventHandler<EventArgs<int, int>>(World_ItemChanged);143 World.Reset += new EventHandler(World_Reset);144 }145 private void DeregisterWorldEvents() {146 World.ItemChanged -= new EventHandler<EventArgs<int, int>>(World_ItemChanged);147 World.Reset -= new EventHandler(World_Reset);148 }149 private void RegisterMaxTimeStepsEvents() {150 MaxTimeSteps.ValueChanged += new EventHandler(MaxTimeSteps_ValueChanged);151 }152 private void DeregisterMaxTimeStepsEvents() {153 MaxTimeSteps.ValueChanged -= new EventHandler(MaxTimeSteps_ValueChanged);154 }155 156 void MaxTimeSteps_ValueChanged(object sender, EventArgs e) {157 OnMaxTimeStepsChanged();158 }159 private void World_ItemChanged(object sender, EventArgs<int, int> e) {160 OnWorldChanged();161 }162 private void World_Reset(object sender, EventArgs e) {163 OnWorldChanged();164 }165 #endregion166 72 } 167 73 }
Note: See TracChangeset
for help on using the changeset viewer.