static ModelTree[] buildLevel1() { ModelTree[] ms = new ModelTree[10]; for (int j = 0; j < 10; j++) { Model m = new Model(); m.id = Global.id++; m.len = 1000 * 10; m.freq = 1000; //leaf node m.error = 10; m.type = ModelType.Explicit; m.values = new double[10]; Random r = new Random(); for (int i = 0; i < 10; i++) { m.values[i] = r.Next(100); } //children ms[j] = m.construct(); } Model seasonal = SetSeasonal(); for (int j = 0; j < 10; j++) { ModelTree m = ms[j]; m.seasonal = seasonal; m.children = buildLevel2(); } return(ms); }
public ModelTree convert(TimeSeries ts) { TimeSeries ts_ = new TimeSeries(ts, this); Model m = new Model(ts_); ModelTree t = m.construct(); t.range = this; t.children = new ModelTree[this.children.Count]; int i = 0; foreach (Range r in this.children) { t.children[i] = r.convert(ts); i++; } return(t); }
static ModelTree buildLevel0() { Global.id = 0; Model m = new Model(); m.id = Global.id++; m.len = 1000 * 10 * 100; m.freq = 1000 * 10; m.error = 100; m.type = ModelType.Explicit; m.values = new double[100]; Random r = new Random(); for (int i = 0; i < 10; i++) { m.values[i] = r.Next(100); } ModelTree t = m.construct(); t.seasonal = SetSeasonal(); t.children = buildLevel1(); return(t); }
public RTree(ArrayList ranges, TimeSeries ts) { ArrayList R_j = (ArrayList)ranges[ranges.Count - 1]; root = (Range)R_j[0]; ArrayList R_i; for (int i = ranges.Count - 1; i >= 0; i--) { R_i = (ArrayList)ranges[i]; foreach (Range r_i in R_i) { TimeSeries ts_ = new TimeSeries(ts, r_i); Model m = new Model(ts_); m.Clean(); m.Set(); ModelTree t = m.construct(); t.range = r_i; t.children = null; r_i.t = t; } } for (int i = ranges.Count - 2; i >= 0; i--) { R_i = (ArrayList)ranges[i]; R_j = (ArrayList)ranges[i + 1]; foreach (Range r_i in R_i) { foreach (Range r_j in R_j) { if (r_j.overlap(r_i)) { r_j.children.Add(r_i); } } } } for (int i = ranges.Count - 2; i >= 0; i--) { R_i = (ArrayList)ranges[i]; R_j = (ArrayList)ranges[i + 1]; foreach (Range r_i in R_i) { foreach (Range r_j in R_j) { if (r_j.overlap(r_i)) { if (r_j.len > r_i.len) { if (r_i.t.error > 1) { r_j.t.childs.Add(r_i.t); r_i.t.parent = r_j.t; } } } } } } //convert childs to children for (int i = ranges.Count - 1; i >= 0; i--) { R_i = (ArrayList)ranges[i]; foreach (Range r_i in R_i) { r_i.t.convertchildstochildren(); } } }