Free cookie consent management tool by TermsFeed Policy Generator

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

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

#1967 worked on Gaussian process evolution.

File size: 15.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 CovPolyTreeNode : SymbolicExpressionTreeTerminalNode {
231    public new CovPoly Symbol { get { return (CovPoly)base.Symbol; } }
232
233    [StorableConstructor]
234    private CovPolyTreeNode(bool deserializing) : base(deserializing) { }
235    private CovPolyTreeNode(CovPolyTreeNode original, Cloner cloner)
236      : base(original, cloner) {
237    }
238
239    public CovPolyTreeNode(CovPoly 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 CovPolyTreeNode(this, cloner);
248    }
249  }
250  [StorableClass]
251  public sealed class CovPiecewisePolyTreeNode : SymbolicExpressionTreeTerminalNode {
252    public new CovPiecewisePoly Symbol { get { return (CovPiecewisePoly)base.Symbol; } }
253
254    [StorableConstructor]
255    private CovPiecewisePolyTreeNode(bool deserializing) : base(deserializing) { }
256    private CovPiecewisePolyTreeNode(CovPiecewisePolyTreeNode original, Cloner cloner)
257      : base(original, cloner) {
258    }
259
260    public CovPiecewisePolyTreeNode(CovPiecewisePoly 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 CovPiecewisePolyTreeNode(this, cloner);
269    }
270  }
271  [StorableClass]
272  public sealed class CovNnTreeNode : SymbolicExpressionTreeTerminalNode {
273    public new CovNn Symbol { get { return (CovNn)base.Symbol; } }
274
275    [StorableConstructor]
276    private CovNnTreeNode(bool deserializing) : base(deserializing) { }
277    private CovNnTreeNode(CovNnTreeNode original, Cloner cloner)
278      : base(original, cloner) {
279    }
280
281    public CovNnTreeNode(CovNn symbol)
282      : base(symbol) {
283    }
284
285    [StorableHook(HookType.AfterDeserialization)]
286    private void AfterDeserialization() {
287    }
288    public override IDeepCloneable Clone(Cloner cloner) {
289      return new CovNnTreeNode(this, cloner);
290    }
291  }
292  [StorableClass]
293  public sealed class CovMaternTreeNode : SymbolicExpressionTreeTerminalNode {
294    public new CovMatern Symbol { get { return (CovMatern)base.Symbol; } }
295
296    [StorableConstructor]
297    private CovMaternTreeNode(bool deserializing) : base(deserializing) { }
298    private CovMaternTreeNode(CovMaternTreeNode original, Cloner cloner)
299      : base(original, cloner) {
300    }
301
302    public CovMaternTreeNode(CovMatern symbol)
303      : base(symbol) {
304    }
305
306    [StorableHook(HookType.AfterDeserialization)]
307    private void AfterDeserialization() {
308    }
309    public override IDeepCloneable Clone(Cloner cloner) {
310      return new CovMaternTreeNode(this, cloner);
311    }
312  }
313  [StorableClass]
314  public sealed class CovPeriodicTreeNode : SymbolicExpressionTreeTerminalNode {
315    public new CovPeriodic Symbol { get { return (CovPeriodic)base.Symbol; } }
316
317    [StorableConstructor]
318    private CovPeriodicTreeNode(bool deserializing) : base(deserializing) { }
319    private CovPeriodicTreeNode(CovPeriodicTreeNode original, Cloner cloner)
320      : base(original, cloner) {
321    }
322
323    public CovPeriodicTreeNode(CovPeriodic symbol)
324      : base(symbol) {
325    }
326
327    [StorableHook(HookType.AfterDeserialization)]
328    private void AfterDeserialization() {
329    }
330    public override IDeepCloneable Clone(Cloner cloner) {
331      return new CovPeriodicTreeNode(this, cloner);
332    }
333  }
334
335  [StorableClass]
336  public sealed class CovRQArdTreeNode : SymbolicExpressionTreeTerminalNode {
337    public new CovRQArd Symbol { get { return (CovRQArd)base.Symbol; } }
338
339    [StorableConstructor]
340    private CovRQArdTreeNode(bool deserializing) : base(deserializing) { }
341    private CovRQArdTreeNode(CovRQArdTreeNode original, Cloner cloner)
342      : base(original, cloner) {
343    }
344
345    public CovRQArdTreeNode(CovRQArd symbol)
346      : base(symbol) {
347    }
348
349    [StorableHook(HookType.AfterDeserialization)]
350    private void AfterDeserialization() {
351    }
352    public override IDeepCloneable Clone(Cloner cloner) {
353      return new CovRQArdTreeNode(this, cloner);
354    }
355  }
356
357  [StorableClass]
358  public sealed class CovRQisoTreeNode : SymbolicExpressionTreeTerminalNode {
359    public new CovRQIso Symbol { get { return (CovRQIso)base.Symbol; } }
360
361    [StorableConstructor]
362    private CovRQisoTreeNode(bool deserializing) : base(deserializing) { }
363    private CovRQisoTreeNode(CovRQisoTreeNode original, Cloner cloner)
364      : base(original, cloner) {
365    }
366
367    public CovRQisoTreeNode(CovRQIso symbol)
368      : base(symbol) {
369    }
370
371    [StorableHook(HookType.AfterDeserialization)]
372    private void AfterDeserialization() {
373    }
374    public override IDeepCloneable Clone(Cloner cloner) {
375      return new CovRQisoTreeNode(this, cloner);
376    }
377  }
378  [StorableClass]
379  public sealed class CovScaleTreeNode : SymbolicExpressionTreeNode {
380    public new CovScale Symbol { get { return (CovScale)base.Symbol; } }
381
382    [StorableConstructor]
383    private CovScaleTreeNode(bool deserializing) : base(deserializing) { }
384    private CovScaleTreeNode(CovScaleTreeNode original, Cloner cloner)
385      : base(original, cloner) {
386    }
387
388    public CovScaleTreeNode(CovScale symbol) : base(symbol) { }
389
390    [StorableHook(HookType.AfterDeserialization)]
391    private void AfterDeserialization() {
392    }
393    public override IDeepCloneable Clone(Cloner cloner) {
394      return new CovScaleTreeNode(this, cloner);
395    }
396  }
397  [StorableClass]
398  public sealed class CovMaskTreeNode : SymbolicExpressionTreeNode {
399    public new CovMask Symbol { get { return (CovMask)base.Symbol; } }
400
401    public override bool HasLocalParameters {
402      get { return true; }
403    }
404
405    [Storable]
406    public bool[] Mask { get; set; }
407
408    [StorableConstructor]
409    private CovMaskTreeNode(bool deserializing) : base(deserializing) { }
410    private CovMaskTreeNode(CovMaskTreeNode original, Cloner cloner)
411      : base(original, cloner) {
412      Mask = new bool[original.Mask.Length];
413      Array.Copy(original.Mask, Mask, Mask.Length);
414    }
415
416    public CovMaskTreeNode(CovMask symbol)
417      : base(symbol) {
418      Mask = new bool[symbol.Dimension];
419    }
420
421    [StorableHook(HookType.AfterDeserialization)]
422    private void AfterDeserialization() {
423    }
424    public override IDeepCloneable Clone(Cloner cloner) {
425      return new CovMaskTreeNode(this, cloner);
426    }
427    public override void ResetLocalParameters(IRandom random) {
428      for (int i = 0; i < Mask.Length; i++)
429        Mask[i] = random.NextDouble() < Symbol.MaskingProbability;
430    }
431    public override void ShakeLocalParameters(IRandom random, double shakingFactor) {
432      // one point bit flip
433      int i = random.Next(Mask.Length);
434      Mask[i] = !Mask[i];
435    }
436  }
437
438  [StorableClass]
439  public sealed class LikGaussTreeNode : SymbolicExpressionTreeTerminalNode {
440    public new LikGauss Symbol { get { return (LikGauss)base.Symbol; } }
441
442    [StorableConstructor]
443    private LikGaussTreeNode(bool deserializing) : base(deserializing) { }
444    private LikGaussTreeNode(LikGaussTreeNode original, Cloner cloner)
445      : base(original, cloner) {
446    }
447
448    public LikGaussTreeNode(LikGauss symbol) : base(symbol) { }
449
450    [StorableHook(HookType.AfterDeserialization)]
451    private void AfterDeserialization() {
452    }
453    public override IDeepCloneable Clone(Cloner cloner) {
454      return new LikGaussTreeNode(this, cloner);
455    }
456  }
457}
Note: See TracBrowser for help on using the repository browser.