Changeset 2728 for trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/FunctionLibraryInjectors/UnconstrainedFunctionLibraryInjector.cs
- Timestamp:
- 02/01/10 08:52:32 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/FunctionLibraryInjectors/UnconstrainedFunctionLibraryInjector.cs
r2566 r2728 32 32 public const string MAXTIMEOFFSET = "MaxTimeOffset"; 33 33 34 public const string DIFFERENTIALS_ALLOWED = "Differentials"; 35 public const string VARIABLES_ALLOWED = "Variables"; 36 public const string CONSTANTS_ALLOWED = "Constants"; 37 public const string ADDITION_ALLOWED = "Addition"; 38 public const string AVERAGE_ALLOWED = "Average"; 39 public const string AND_ALLOWED = "And"; 40 public const string COSINUS_ALLOWED = "Cosinus"; 41 public const string DIVISION_ALLOWED = "Division"; 42 public const string EQUAL_ALLOWED = "Equal"; 43 public const string EXPONENTIAL_ALLOWED = "Exponential"; 44 public const string GREATERTHAN_ALLOWED = "GreaterThan"; 45 public const string IFTHENELSE_ALLOWED = "IfThenElse"; 46 public const string LESSTHAN_ALLOWED = "LessThan"; 47 public const string LOGARTIHM_ALLOWED = "Logarithm"; 48 public const string MULTIPLICATION_ALLOWED = "Multiplication"; 49 public const string NOT_ALLOWED = "Not"; 50 public const string POWER_ALLOWED = "Power"; 51 public const string OR_ALLOWED = "Or"; 52 public const string SIGNUM_ALLOWED = "Signum"; 53 public const string SINUS_ALLOWED = "Sinus"; 54 public const string SQRT_ALLOWED = "SquareRoot"; 55 public const string SUBTRACTION_ALLOWED = "Subtraction"; 56 public const string TANGENS_ALLOWED = "Tangens"; 57 public const string XOR_ALLOWED = "Xor"; private int minTimeOffset; 34 private int minTimeOffset; 58 35 private int maxTimeOffset; 59 36 … … 66 43 AddVariableInfo(new VariableInfo(MINTIMEOFFSET, "Minimal time offset for all features", typeof(IntData), VariableKind.In)); 67 44 AddVariableInfo(new VariableInfo(MAXTIMEOFFSET, "Maximal time offset for all feature", typeof(IntData), VariableKind.In)); 68 69 AddVariable(DIFFERENTIALS_ALLOWED, false);70 AddVariable(VARIABLES_ALLOWED, true);71 AddVariable(CONSTANTS_ALLOWED, true);72 AddVariable(ADDITION_ALLOWED, true);73 AddVariable(AVERAGE_ALLOWED, false);74 AddVariable(AND_ALLOWED, true);75 AddVariable(COSINUS_ALLOWED, true);76 AddVariable(DIVISION_ALLOWED, true);77 AddVariable(EQUAL_ALLOWED, true);78 AddVariable(EXPONENTIAL_ALLOWED, true);79 AddVariable(GREATERTHAN_ALLOWED, true);80 AddVariable(IFTHENELSE_ALLOWED, true);81 AddVariable(LESSTHAN_ALLOWED, true);82 AddVariable(LOGARTIHM_ALLOWED, true);83 AddVariable(MULTIPLICATION_ALLOWED, true);84 AddVariable(NOT_ALLOWED, true);85 AddVariable(POWER_ALLOWED, true);86 AddVariable(OR_ALLOWED, true);87 AddVariable(SIGNUM_ALLOWED, true);88 AddVariable(SINUS_ALLOWED, true);89 AddVariable(SQRT_ALLOWED, true);90 AddVariable(SUBTRACTION_ALLOWED, true);91 AddVariable(TANGENS_ALLOWED, true);92 AddVariable(XOR_ALLOWED, false);93 }94 95 private void AddVariable(string name, bool allowed) {96 AddVariableInfo(new VariableInfo(name, name + " allowed", typeof(BoolData), Core.VariableKind.New));97 GetVariableInfo(name).Local = true;98 AddVariable(new Core.Variable(name, new BoolData(allowed)));99 45 } 100 46 … … 138 84 Xor xor = new Xor(); 139 85 140 List<IFunction> doubleFunctions = new List<IFunction>(); 141 ConditionalAddFunction(DIFFERENTIALS_ALLOWED, differential, doubleFunctions); 142 ConditionalAddFunction(VARIABLES_ALLOWED, variable, doubleFunctions); 143 ConditionalAddFunction(CONSTANTS_ALLOWED, constant, doubleFunctions); 144 ConditionalAddFunction(ADDITION_ALLOWED, addition, doubleFunctions); 145 ConditionalAddFunction(AVERAGE_ALLOWED, average, doubleFunctions); 146 ConditionalAddFunction(COSINUS_ALLOWED, cosinus, doubleFunctions); 147 ConditionalAddFunction(DIVISION_ALLOWED, division, doubleFunctions); 148 ConditionalAddFunction(EXPONENTIAL_ALLOWED, exponential, doubleFunctions); 149 ConditionalAddFunction(IFTHENELSE_ALLOWED, ifThenElse, doubleFunctions); 150 ConditionalAddFunction(LOGARTIHM_ALLOWED, logarithm, doubleFunctions); 151 ConditionalAddFunction(MULTIPLICATION_ALLOWED, multiplication, doubleFunctions); 152 ConditionalAddFunction(POWER_ALLOWED, power, doubleFunctions); 153 ConditionalAddFunction(SIGNUM_ALLOWED, signum, doubleFunctions); 154 ConditionalAddFunction(SINUS_ALLOWED, sinus, doubleFunctions); 155 ConditionalAddFunction(SQRT_ALLOWED, sqrt, doubleFunctions); 156 ConditionalAddFunction(SUBTRACTION_ALLOWED, subtraction, doubleFunctions); 157 ConditionalAddFunction(TANGENS_ALLOWED, tangens, doubleFunctions); 158 ConditionalAddFunction(AND_ALLOWED, and, doubleFunctions); 159 ConditionalAddFunction(EQUAL_ALLOWED, equal, doubleFunctions); 160 ConditionalAddFunction(GREATERTHAN_ALLOWED, greaterThan, doubleFunctions); 161 ConditionalAddFunction(LESSTHAN_ALLOWED, lessThan, doubleFunctions); 162 ConditionalAddFunction(NOT_ALLOWED, not, doubleFunctions); 163 ConditionalAddFunction(OR_ALLOWED, or, doubleFunctions); 164 ConditionalAddFunction(XOR_ALLOWED, xor, doubleFunctions); 165 86 List<IFunction> doubleFunctions = new List<IFunction>() { 87 differential, variable, constant, addition, average, cosinus, division, exponential, ifThenElse,logarithm, multiplication, 88 power, signum, sinus, sqrt, subtraction, tangens, and, equal, greaterThan, lessThan, not, or, xor 89 }; 166 90 167 91 SetAllowedSubOperators(and, doubleFunctions); … … 187 111 SetAllowedSubOperators(tangens, doubleFunctions); 188 112 189 ConditionalAddOperator(DIFFERENTIALS_ALLOWED, functionLibrary, differential); 190 ConditionalAddOperator(VARIABLES_ALLOWED, functionLibrary, variable); 191 ConditionalAddOperator(CONSTANTS_ALLOWED, functionLibrary, constant); 192 ConditionalAddOperator(ADDITION_ALLOWED, functionLibrary, addition); 193 ConditionalAddOperator(AVERAGE_ALLOWED, functionLibrary, average); 194 ConditionalAddOperator(AND_ALLOWED, functionLibrary, and); 195 ConditionalAddOperator(COSINUS_ALLOWED, functionLibrary, cosinus); 196 ConditionalAddOperator(DIVISION_ALLOWED, functionLibrary, division); 197 ConditionalAddOperator(EQUAL_ALLOWED, functionLibrary, equal); 198 ConditionalAddOperator(EXPONENTIAL_ALLOWED, functionLibrary, exponential); 199 ConditionalAddOperator(GREATERTHAN_ALLOWED, functionLibrary, greaterThan); 200 ConditionalAddOperator(IFTHENELSE_ALLOWED, functionLibrary, ifThenElse); 201 ConditionalAddOperator(LESSTHAN_ALLOWED, functionLibrary, lessThan); 202 ConditionalAddOperator(LOGARTIHM_ALLOWED, functionLibrary, logarithm); 203 ConditionalAddOperator(MULTIPLICATION_ALLOWED, functionLibrary, multiplication); 204 ConditionalAddOperator(NOT_ALLOWED, functionLibrary, not); 205 ConditionalAddOperator(POWER_ALLOWED, functionLibrary, power); 206 ConditionalAddOperator(OR_ALLOWED, functionLibrary, or); 207 ConditionalAddOperator(SIGNUM_ALLOWED, functionLibrary, signum); 208 ConditionalAddOperator(SINUS_ALLOWED, functionLibrary, sinus); 209 ConditionalAddOperator(SQRT_ALLOWED, functionLibrary, sqrt); 210 ConditionalAddOperator(SUBTRACTION_ALLOWED, functionLibrary, subtraction); 211 ConditionalAddOperator(TANGENS_ALLOWED, functionLibrary, tangens); 212 ConditionalAddOperator(XOR_ALLOWED, functionLibrary, xor); 113 doubleFunctions.ForEach(fun => functionLibrary.AddFunction(fun)); 213 114 214 115 variable.SetConstraints(minTimeOffset, maxTimeOffset);
Note: See TracChangeset
for help on using the changeset viewer.