Free cookie consent management tool by TermsFeed Policy Generator

source: branches/HeuristicLab.Problems.GaussianProcessTuning/HeuristicLab.Problems.GaussianProcessTuning/TreeNodes.cs @ 9212

Last change on this file since 9212 was 9212, checked in by gkronber, 11 years ago

#1967: worked on Gaussian Process evolution problem

File size: 13.0 KB
Line 
1using System;
2using HeuristicLab.Common;
3using HeuristicLab.Core;
4using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
5using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
6using HeuristicLab.Random;
7
8namespace HeuristicLab.Problems.GaussianProcessTuning {
9
10  [StorableClass]
11  public sealed class EmptyTerminalTreeNode : SymbolicExpressionTreeTerminalNode {
12    [StorableConstructor]
13    private EmptyTerminalTreeNode(bool deserializing) : base(deserializing) { }
14    private EmptyTerminalTreeNode(EmptyTerminalTreeNode original, Cloner cloner)
15      : base(original, cloner) {
16    }
17    public EmptyTerminalTreeNode(ISymbol symbol)
18      : base(symbol) {
19    }
20
21    [StorableHook(HookType.AfterDeserialization)]
22    private void AfterDeserialization() {
23    }
24    public override IDeepCloneable Clone(Cloner cloner) {
25      return new EmptyTerminalTreeNode(this, cloner);
26    }
27  }
28  [StorableClass]
29  public sealed class MeanConstTreeNode : SymbolicExpressionTreeTerminalNode {
30    public new MeanConst Symbol { get { return (MeanConst)base.Symbol; } }
31
32    [StorableConstructor]
33    private MeanConstTreeNode(bool deserializing) : base(deserializing) { }
34    private MeanConstTreeNode(MeanConstTreeNode original, Cloner cloner)
35      : base(original, cloner) {
36    }
37
38    public MeanConstTreeNode() : base(new MeanConst()) { }
39
40    [StorableHook(HookType.AfterDeserialization)]
41    private void AfterDeserialization() {
42    }
43    public override IDeepCloneable Clone(Cloner cloner) {
44      return new MeanConstTreeNode(this, cloner);
45    }
46  }
47  [StorableClass]
48  public sealed class MeanLinearTreeNode : SymbolicExpressionTreeTerminalNode {
49    public new MeanLinear Symbol { get { return (MeanLinear)base.Symbol; } }
50
51    [StorableConstructor]
52    private MeanLinearTreeNode(bool deserializing) : base(deserializing) { }
53    private MeanLinearTreeNode(MeanLinearTreeNode original, Cloner cloner)
54      : base(original, cloner) {
55    }
56
57    public MeanLinearTreeNode(MeanLinear symbol)
58      : base(symbol) {
59    }
60
61    [StorableHook(HookType.AfterDeserialization)]
62    private void AfterDeserialization() {
63    }
64    public override IDeepCloneable Clone(Cloner cloner) {
65      return new MeanLinearTreeNode(this, cloner);
66    }
67  }
68
69
70  [StorableClass]
71  public sealed class MeanScaleTreeNode : SymbolicExpressionTreeNode {
72    public new MeanScale Symbol { get { return (MeanScale)base.Symbol; } }
73
74    [StorableConstructor]
75    private MeanScaleTreeNode(bool deserializing) : base(deserializing) { }
76    private MeanScaleTreeNode(MeanScaleTreeNode original, Cloner cloner)
77      : base(original, cloner) {
78    }
79
80    public MeanScaleTreeNode() : base(new MeanScale()) { }
81
82    [StorableHook(HookType.AfterDeserialization)]
83    private void AfterDeserialization() {
84    }
85    public override IDeepCloneable Clone(Cloner cloner) {
86      return new MeanScaleTreeNode(this, cloner);
87    }
88  }
89  [StorableClass]
90  public sealed class MeanMaskTreeNode : SymbolicExpressionTreeNode {
91    public new MeanMask Symbol { get { return (MeanMask)base.Symbol; } }
92
93    public override bool HasLocalParameters {
94      get { return true; }
95    }
96
97    [Storable]
98    public bool[] Mask { get; set; }
99
100    [StorableConstructor]
101    private MeanMaskTreeNode(bool deserializing) : base(deserializing) { }
102    private MeanMaskTreeNode(MeanMaskTreeNode original, Cloner cloner)
103      : base(original, cloner) {
104      Mask = new bool[original.Mask.Length];
105      Array.Copy(original.Mask, Mask, Mask.Length);
106    }
107
108    public MeanMaskTreeNode(MeanMask symbol)
109      : base(symbol) {
110      Mask = new bool[symbol.Dimension];
111    }
112
113    [StorableHook(HookType.AfterDeserialization)]
114    private void AfterDeserialization() {
115    }
116    public override IDeepCloneable Clone(Cloner cloner) {
117      return new MeanMaskTreeNode(this, cloner);
118    }
119    public override void ResetLocalParameters(IRandom random) {
120      for (int i = 0; i < Mask.Length; i++)
121        Mask[i] = random.NextDouble() < Symbol.MaskingProbability;
122    }
123    public override void ShakeLocalParameters(IRandom random, double shakingFactor) {
124      // one point bit flip
125      int i = random.Next(Mask.Length);
126      Mask[i] = !Mask[i];
127    }
128  }
129  [StorableClass]
130  public sealed class CovConstTreeNode : SymbolicExpressionTreeTerminalNode {
131    public new CovConst Symbol { get { return (CovConst)base.Symbol; } }
132
133    [StorableConstructor]
134    private CovConstTreeNode(bool deserializing) : base(deserializing) { }
135    private CovConstTreeNode(CovConstTreeNode original, Cloner cloner)
136      : base(original, cloner) {
137    }
138
139    public CovConstTreeNode() : base(new CovConst()) { }
140
141    [StorableHook(HookType.AfterDeserialization)]
142    private void AfterDeserialization() {
143    }
144    public override IDeepCloneable Clone(Cloner cloner) {
145      return new CovConstTreeNode(this, cloner);
146    }
147  }
148  [StorableClass]
149  public sealed class CovNoiseTreeNode : SymbolicExpressionTreeTerminalNode {
150    public new CovNoise Symbol { get { return (CovNoise)base.Symbol; } }
151
152    [StorableConstructor]
153    private CovNoiseTreeNode(bool deserializing) : base(deserializing) { }
154    private CovNoiseTreeNode(CovNoiseTreeNode original, Cloner cloner)
155      : base(original, cloner) {
156    }
157
158    public CovNoiseTreeNode() : base(new CovNoise()) { }
159
160    [StorableHook(HookType.AfterDeserialization)]
161    private void AfterDeserialization() {
162    }
163    public override IDeepCloneable Clone(Cloner cloner) {
164      return new CovNoiseTreeNode(this, cloner);
165    }
166  }
167  [StorableClass]
168  public sealed class CovLinArdTreeNode : SymbolicExpressionTreeTerminalNode {
169    public new CovLinArd Symbol { get { return (CovLinArd)base.Symbol; } }
170
171    [StorableConstructor]
172    private CovLinArdTreeNode(bool deserializing) : base(deserializing) { }
173    private CovLinArdTreeNode(CovLinArdTreeNode original, Cloner cloner)
174      : base(original, cloner) {
175    }
176
177    public CovLinArdTreeNode(CovLinArd symbol)
178      : base(symbol) {
179    }
180
181    [StorableHook(HookType.AfterDeserialization)]
182    private void AfterDeserialization() {
183    }
184    public override IDeepCloneable Clone(Cloner cloner) {
185      return new CovLinArdTreeNode(this, cloner);
186    }
187  }
188  [StorableClass]
189  public sealed class CovSeArdTreeNode : SymbolicExpressionTreeTerminalNode {
190    public new CovSeArd Symbol { get { return (CovSeArd)base.Symbol; } }
191    [StorableConstructor]
192    private CovSeArdTreeNode(bool deserializing) : base(deserializing) { }
193    private CovSeArdTreeNode(CovSeArdTreeNode original, Cloner cloner)
194      : base(original, cloner) {
195    }
196
197    public CovSeArdTreeNode(CovSeArd symbol)
198      : base(symbol) {
199    }
200
201    [StorableHook(HookType.AfterDeserialization)]
202    private void AfterDeserialization() {
203    }
204    public override IDeepCloneable Clone(Cloner cloner) {
205      return new CovSeArdTreeNode(this, cloner);
206    }
207  }
208  [StorableClass]
209  public sealed class CovSeIsoTreeNode : SymbolicExpressionTreeTerminalNode {
210    public new CovSeIso Symbol { get { return (CovSeIso)base.Symbol; } }
211
212    [StorableConstructor]
213    private CovSeIsoTreeNode(bool deserializing) : base(deserializing) { }
214    private CovSeIsoTreeNode(CovSeIsoTreeNode original, Cloner cloner)
215      : base(original, cloner) {
216    }
217
218    public CovSeIsoTreeNode(CovSeIso symbol)
219      : base(symbol) {
220    }
221
222    [StorableHook(HookType.AfterDeserialization)]
223    private void AfterDeserialization() {
224    }
225    public override IDeepCloneable Clone(Cloner cloner) {
226      return new CovSeIsoTreeNode(this, cloner);
227    }
228  }
229  [StorableClass]
230  public sealed class CovMaternTreeNode : SymbolicExpressionTreeTerminalNode {
231    public new CovMatern Symbol { get { return (CovMatern)base.Symbol; } }
232
233    [StorableConstructor]
234    private CovMaternTreeNode(bool deserializing) : base(deserializing) { }
235    private CovMaternTreeNode(CovMaternTreeNode original, Cloner cloner)
236      : base(original, cloner) {
237    }
238
239    public CovMaternTreeNode(CovMatern symbol)
240      : base(symbol) {
241    }
242
243    [StorableHook(HookType.AfterDeserialization)]
244    private void AfterDeserialization() {
245    }
246    public override IDeepCloneable Clone(Cloner cloner) {
247      return new CovMaternTreeNode(this, cloner);
248    }
249  }
250  [StorableClass]
251  public sealed class CovPeriodicTreeNode : SymbolicExpressionTreeTerminalNode {
252    public new CovPeriodic Symbol { get { return (CovPeriodic)base.Symbol; } }
253
254    [StorableConstructor]
255    private CovPeriodicTreeNode(bool deserializing) : base(deserializing) { }
256    private CovPeriodicTreeNode(CovPeriodicTreeNode original, Cloner cloner)
257      : base(original, cloner) {
258    }
259
260    public CovPeriodicTreeNode(CovPeriodic symbol)
261      : base(symbol) {
262    }
263
264    [StorableHook(HookType.AfterDeserialization)]
265    private void AfterDeserialization() {
266    }
267    public override IDeepCloneable Clone(Cloner cloner) {
268      return new CovPeriodicTreeNode(this, cloner);
269    }
270  }
271
272  [StorableClass]
273  public sealed class CovRQArdTreeNode : SymbolicExpressionTreeTerminalNode {
274    public new CovRQArd Symbol { get { return (CovRQArd)base.Symbol; } }
275
276    [StorableConstructor]
277    private CovRQArdTreeNode(bool deserializing) : base(deserializing) { }
278    private CovRQArdTreeNode(CovRQArdTreeNode original, Cloner cloner)
279      : base(original, cloner) {
280    }
281
282    public CovRQArdTreeNode(CovRQArd symbol)
283      : base(symbol) {
284    }
285
286    [StorableHook(HookType.AfterDeserialization)]
287    private void AfterDeserialization() {
288    }
289    public override IDeepCloneable Clone(Cloner cloner) {
290      return new CovRQArdTreeNode(this, cloner);
291    }
292  }
293
294  [StorableClass]
295  public sealed class CovRQisoTreeNode : SymbolicExpressionTreeTerminalNode {
296    public new CovRQIso Symbol { get { return (CovRQIso)base.Symbol; } }
297
298    [StorableConstructor]
299    private CovRQisoTreeNode(bool deserializing) : base(deserializing) { }
300    private CovRQisoTreeNode(CovRQisoTreeNode original, Cloner cloner)
301      : base(original, cloner) {
302    }
303
304    public CovRQisoTreeNode(CovRQIso symbol)
305      : base(symbol) {
306    }
307
308    [StorableHook(HookType.AfterDeserialization)]
309    private void AfterDeserialization() {
310    }
311    public override IDeepCloneable Clone(Cloner cloner) {
312      return new CovRQisoTreeNode(this, cloner);
313    }
314  }
315  [StorableClass]
316  public sealed class CovScaleTreeNode : SymbolicExpressionTreeNode {
317    public new CovScale Symbol { get { return (CovScale)base.Symbol; } }
318
319    [StorableConstructor]
320    private CovScaleTreeNode(bool deserializing) : base(deserializing) { }
321    private CovScaleTreeNode(CovScaleTreeNode original, Cloner cloner)
322      : base(original, cloner) {
323    }
324
325    public CovScaleTreeNode(CovScale symbol) : base(symbol) { }
326
327    [StorableHook(HookType.AfterDeserialization)]
328    private void AfterDeserialization() {
329    }
330    public override IDeepCloneable Clone(Cloner cloner) {
331      return new CovScaleTreeNode(this, cloner);
332    }
333  }
334  [StorableClass]
335  public sealed class CovMaskTreeNode : SymbolicExpressionTreeNode {
336    public new CovMask Symbol { get { return (CovMask)base.Symbol; } }
337
338    public override bool HasLocalParameters {
339      get { return true; }
340    }
341
342    [Storable]
343    public bool[] Mask { get; set; }
344
345    [StorableConstructor]
346    private CovMaskTreeNode(bool deserializing) : base(deserializing) { }
347    private CovMaskTreeNode(CovMaskTreeNode original, Cloner cloner)
348      : base(original, cloner) {
349      Mask = new bool[original.Mask.Length];
350      Array.Copy(original.Mask, Mask, Mask.Length);
351    }
352
353    public CovMaskTreeNode(CovMask symbol)
354      : base(symbol) {
355      Mask = new bool[symbol.Dimension];
356    }
357
358    [StorableHook(HookType.AfterDeserialization)]
359    private void AfterDeserialization() {
360    }
361    public override IDeepCloneable Clone(Cloner cloner) {
362      return new CovMaskTreeNode(this, cloner);
363    }
364    public override void ResetLocalParameters(IRandom random) {
365      for (int i = 0; i < Mask.Length; i++)
366        Mask[i] = random.NextDouble() < Symbol.MaskingProbability;
367    }
368    public override void ShakeLocalParameters(IRandom random, double shakingFactor) {
369      // one point bit flip
370      int i = random.Next(Mask.Length);
371      Mask[i] = !Mask[i];
372    }
373  }
374
375  [StorableClass]
376  public sealed class LikGaussTreeNode : SymbolicExpressionTreeTerminalNode {
377    public new LikGauss Symbol { get { return (LikGauss)base.Symbol; } }
378
379    [StorableConstructor]
380    private LikGaussTreeNode(bool deserializing) : base(deserializing) { }
381    private LikGaussTreeNode(LikGaussTreeNode original, Cloner cloner)
382      : base(original, cloner) {
383    }
384
385    public LikGaussTreeNode(LikGauss symbol) : base(symbol) { }
386
387    [StorableHook(HookType.AfterDeserialization)]
388    private void AfterDeserialization() {
389    }
390    public override IDeepCloneable Clone(Cloner cloner) {
391      return new LikGaussTreeNode(this, cloner);
392    }
393  }
394}
Note: See TracBrowser for help on using the repository browser.