Changeset 14311 for branches/HeuristicLab.Problems.GeneticProgramming.BloodGlucosePrediction/Grammar.cs
- Timestamp:
- 09/28/16 12:53:51 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.Problems.GeneticProgramming.BloodGlucosePrediction/Grammar.cs
r14310 r14311 19 19 20 20 public void Initialize() { 21 var func = new SimpleSymbol("Func", "The root for the blood glucose forecasting model.", 3, 3);21 // var func = new SimpleSymbol("Func", "The root for the blood glucose forecasting model.", 3, 3); 22 22 var exprGluc = new SimpleSymbol("ExprGluc", string.Empty, 1, 1); 23 var exprIns = new SimpleSymbol("ExprIns", string.Empty, 1, 1);24 var exprCh = new SimpleSymbol("ExprCh", string.Empty, 1, 1);23 // var exprIns = new SimpleSymbol("ExprIns", string.Empty, 1, 1); 24 // var exprCh = new SimpleSymbol("ExprCh", string.Empty, 1, 1); 25 25 26 26 // var predGlucData = new PredictedGlucoseVariableSymbol(); … … 39 39 40 40 // operators for exprCh 41 var plusCh = new SimpleSymbol("+Ch", "+", 2, 2);42 var minusCh = new SimpleSymbol("-Ch", "-", 2, 2);43 var prodCh = new SimpleSymbol("*Ch", "*", 2, 2);44 var divCh = new SimpleSymbol("/Ch", "/", 2, 2);45 var expCh = new SimpleSymbol("ExpCh", "Exp", 1, 1);46 var sinCh = new SimpleSymbol("SinCh", "Sin", 1, 1);47 var cosCh = new SimpleSymbol("CosCh", "Cos", 1, 1);48 var logCh = new SimpleSymbol("LogCh", "Log", 1, 1);41 // var plusCh = new SimpleSymbol("+Ch", "+", 2, 2); 42 // var minusCh = new SimpleSymbol("-Ch", "-", 2, 2); 43 // var prodCh = new SimpleSymbol("*Ch", "*", 2, 2); 44 // var divCh = new SimpleSymbol("/Ch", "/", 2, 2); 45 // var expCh = new SimpleSymbol("ExpCh", "Exp", 1, 1); 46 // var sinCh = new SimpleSymbol("SinCh", "Sin", 1, 1); 47 // var cosCh = new SimpleSymbol("CosCh", "Cos", 1, 1); 48 // var logCh = new SimpleSymbol("LogCh", "Log", 1, 1); 49 49 var curvedCh = new CurvedChVariableSymbol("CurvedCh", ""); 50 50 // var cteCh = new CteSymbol(); 51 51 52 52 // operators for exprIns 53 var plusIns = new SimpleSymbol("+Ins", "+", 2, 2);54 var minusIns = new SimpleSymbol("-Ins", "-", 2, 2);55 var prodIns = new SimpleSymbol("*Ins", "*", 2, 2);56 var divIns = new SimpleSymbol("/Ins", "/", 2, 2);57 var expIns = new SimpleSymbol("ExpIns", "Exp", 1, 1);58 var sinIns = new SimpleSymbol("SinIns", "Sin", 1, 1);59 var cosIns = new SimpleSymbol("CosIns", "Cos", 1, 1);60 var logIns = new SimpleSymbol("LogIns", "Log", 1, 1);53 // var plusIns = new SimpleSymbol("+Ins", "+", 2, 2); 54 // var minusIns = new SimpleSymbol("-Ins", "-", 2, 2); 55 // var prodIns = new SimpleSymbol("*Ins", "*", 2, 2); 56 // var divIns = new SimpleSymbol("/Ins", "/", 2, 2); 57 // var expIns = new SimpleSymbol("ExpIns", "Exp", 1, 1); 58 // var sinIns = new SimpleSymbol("SinIns", "Sin", 1, 1); 59 // var cosIns = new SimpleSymbol("CosIns", "Cos", 1, 1); 60 // var logIns = new SimpleSymbol("LogIns", "Log", 1, 1); 61 61 var curvedIns = new CurvedInsVariableSymbol("CurvedIns", ""); 62 62 // var realInsVar = new RealInsulineVariableSymbol(); … … 65 65 // var cteCh = new CteSymbol(); 66 66 67 AddSymbol(func);67 // AddSymbol(func); 68 68 AddSymbol(exprGluc); 69 AddSymbol(exprIns);70 AddSymbol(exprCh);69 // AddSymbol(exprIns); 70 // AddSymbol(exprCh); 71 71 // AddSymbol(predGlucData); 72 72 AddSymbol(realGlucData); … … 82 82 AddSymbol(curvedCh); 83 83 84 AddSymbol(plusCh);85 AddSymbol(minusCh);86 AddSymbol(prodCh);87 AddSymbol(divCh);88 AddSymbol(expCh);89 AddSymbol(sinCh);90 AddSymbol(cosCh);91 AddSymbol(logCh);84 // AddSymbol(plusCh); 85 // AddSymbol(minusCh); 86 // AddSymbol(prodCh); 87 // AddSymbol(divCh); 88 // AddSymbol(expCh); 89 // AddSymbol(sinCh); 90 // AddSymbol(cosCh); 91 // AddSymbol(logCh); 92 92 93 93 AddSymbol(curvedIns); 94 AddSymbol(plusIns);95 AddSymbol(minusIns);96 AddSymbol(prodIns);97 AddSymbol(divIns);98 AddSymbol(expIns);99 AddSymbol(sinIns);100 AddSymbol(cosIns);101 AddSymbol(logIns);94 // AddSymbol(plusIns); 95 // AddSymbol(minusIns); 96 // AddSymbol(prodIns); 97 // AddSymbol(divIns); 98 // AddSymbol(expIns); 99 // AddSymbol(sinIns); 100 // AddSymbol(cosIns); 101 // AddSymbol(logIns); 102 102 // AddSymbol(realInsVar); 103 103 AddSymbol(constSy); 104 104 105 105 // <func> ::= <exprgluc> + <exprch> - <exprins> 106 AddAllowedChildSymbol(func, exprGluc, 0);107 AddAllowedChildSymbol(func, exprCh, 1);108 AddAllowedChildSymbol(func, exprIns, 2);106 // AddAllowedChildSymbol(func, exprGluc, 0); 107 // AddAllowedChildSymbol(func, exprCh, 1); 108 // AddAllowedChildSymbol(func, exprIns, 2); 109 109 110 110 /* # Glucose … … 115 115 |realData(k-<idx2hOrMore>) 116 116 */ 117 var opGlucSet = new Symbol[] { plusGluc, minusGluc, prodGluc, divGluc, expGluc, sinGluc, cosGluc, logGluc, /*predGlucData, */ realGlucData, constSy };117 var opGlucSet = new Symbol[] { plusGluc, minusGluc, prodGluc, divGluc, expGluc, sinGluc, cosGluc, logGluc, /*predGlucData, */ realGlucData, constSy, curvedCh, curvedIns }; 118 118 foreach (var opGluc in opGlucSet) { 119 119 AddAllowedChildSymbol(exprGluc, opGluc); … … 152 152 |beta(0.02*Math.min(48,getPrevDataDistance(1,k,1)),5,2) 153 153 */ 154 var opChSet = new Symbol[] { plusCh, minusCh, prodCh, divCh, expCh, sinCh, cosCh, logCh, curvedCh, constSy };155 foreach (var opCh in opChSet) {156 AddAllowedChildSymbol(exprCh, opCh);157 }158 159 foreach (var parentOp in new Symbol[] { plusCh, minusCh, prodCh, divCh }) {160 foreach (var childOp in opChSet) {161 AddAllowedChildSymbol(parentOp, childOp, 0);162 AddAllowedChildSymbol(parentOp, childOp, 1);163 }164 }165 // <exprch> ::= <preop> (<exprch>)166 foreach (var parentOp in new Symbol[] { expCh, sinCh, cosCh, logCh }) {167 foreach (var childOp in opChSet) {168 AddAllowedChildSymbol(parentOp, childOp, 0);169 }170 }154 // var opChSet = new Symbol[] { plusCh, minusCh, prodCh, divCh, expCh, sinCh, cosCh, logCh, curvedCh, constSy }; 155 // foreach (var opCh in opChSet) { 156 // AddAllowedChildSymbol(exprCh, opCh); 157 // } 158 // 159 // foreach (var parentOp in new Symbol[] { plusCh, minusCh, prodCh, divCh }) { 160 // foreach (var childOp in opChSet) { 161 // AddAllowedChildSymbol(parentOp, childOp, 0); 162 // AddAllowedChildSymbol(parentOp, childOp, 1); 163 // } 164 // } 165 // // <exprch> ::= <preop> (<exprch>) 166 // foreach (var parentOp in new Symbol[] { expCh, sinCh, cosCh, logCh }) { 167 // foreach (var childOp in opChSet) { 168 // AddAllowedChildSymbol(parentOp, childOp, 0); 169 // } 170 // } 171 171 172 172 /* … … 192 192 193 193 */ 194 var opInsSet = new Symbol[] { plusIns, minusIns, prodIns, divIns, expIns, sinIns, cosIns, logIns, /* realInsVar, */ curvedIns, constSy };195 foreach (var opIns in opInsSet) {196 AddAllowedChildSymbol(exprIns, opIns);197 }198 199 // <exprins> ::= (<exprins> <op> <exprins>)200 // <exprins> ::= (<cte> <op> <exprins>)201 foreach (var parentOp in new Symbol[] { plusIns, minusIns, prodIns, divIns }) {202 foreach (var childOp in opInsSet) {203 AddAllowedChildSymbol(parentOp, childOp, 0);204 AddAllowedChildSymbol(parentOp, childOp, 1);205 }206 }207 // <exprins> ::= <preop> (<exprins>)208 foreach (var op in new Symbol[] { expIns, sinIns, cosIns, logIns }) {209 foreach (var childOp in opInsSet) {210 AddAllowedChildSymbol(op, childOp, 0);211 }212 }213 214 // root is func215 AddAllowedChildSymbol(StartSymbol, func);194 // var opInsSet = new Symbol[] { plusIns, minusIns, prodIns, divIns, expIns, sinIns, cosIns, logIns, /* realInsVar, */ curvedIns, constSy }; 195 // foreach (var opIns in opInsSet) { 196 // AddAllowedChildSymbol(exprIns, opIns); 197 // } 198 // 199 // // <exprins> ::= (<exprins> <op> <exprins>) 200 // // <exprins> ::= (<cte> <op> <exprins>) 201 // foreach (var parentOp in new Symbol[] { plusIns, minusIns, prodIns, divIns }) { 202 // foreach (var childOp in opInsSet) { 203 // AddAllowedChildSymbol(parentOp, childOp, 0); 204 // AddAllowedChildSymbol(parentOp, childOp, 1); 205 // } 206 // } 207 // // <exprins> ::= <preop> (<exprins>) 208 // foreach (var op in new Symbol[] { expIns, sinIns, cosIns, logIns }) { 209 // foreach (var childOp in opInsSet) { 210 // AddAllowedChildSymbol(op, childOp, 0); 211 // } 212 // } 213 214 // root is exprGluc 215 AddAllowedChildSymbol(StartSymbol, exprGluc); 216 216 } 217 217
Note: See TracChangeset
for help on using the changeset viewer.