- Timestamp:
- 04/28/09 15:41:11 (16 years ago)
- Location:
- trunk/sources/HeuristicLab.FixedOperators/3.2
- Files:
-
- 1 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.FixedOperators/3.2/FixedSGAMain.cs
r1661 r1693 35 35 36 36 namespace HeuristicLab.FixedOperators { 37 class FixedSGAMain : CombinedOperator{37 class FixedSGAMain : FixedBase { 38 38 public override string Description { 39 39 get { return @"Implements the functionality of SGAMain with fixed control structures. Operators like selection, crossover, mutation and evaluation are delegated."; } … … 61 61 62 62 63 long[] timesExecuteCreateChildren;63 //long[] timesExecuteCreateChildren; 64 64 65 65 public FixedSGAMain() … … 68 68 AddVariableInfo(new VariableInfo("MaximumGenerations", "Maximum number of generations to create", typeof(IntData), VariableKind.In)); 69 69 AddVariableInfo(new VariableInfo("Generations", "Number of processed generations", typeof(IntData), VariableKind.In | VariableKind.Out)); 70 AddVariableInfo(new VariableInfo("ExecutionPointer", "Execution pointer for algorithm abortion", typeof(IntData), VariableKind.New)); 71 70 72 Name = "FixedSGAMain"; 71 73 … … 140 142 IntData nrOfGenerations = GetVariableValue<IntData>("Generations", scope, true); 141 143 144 145 // executionpointer saves the reentry point after engine abort occurs. 146 IntData executionPointer; 147 try 148 { 149 executionPointer = GetVariableValue<IntData>("ExecutionPointer", scope, true); 150 } 151 catch (Exception) 152 { 153 scope.AddVariable(new Variable("ExecutionPointer", new IntData(-1))); 154 executionPointer = GetVariableValue<IntData>("ExecutionPointer", scope, true); 155 } 156 157 // fetch variables from scope for create children 142 158 InitializeExecuteCreateChildren(scope); 143 Stopwatch watch = new Stopwatch();144 long[] times = new long[10];145 timesExecuteCreateChildren = new long[10];146 159 for (int i = nrOfGenerations.Data; i < maxGenerations.Data && !Canceled; i++) { 147 watch.Start(); 148 selector.Execute(scope); 149 watch.Stop(); 150 times[0] += watch.ElapsedTicks; 151 watch.Reset(); 152 watch.Start(); 153 ExecuteCreateChildrenWithFixedControlStructures(scope.SubScopes[1]); 154 watch.Stop(); 155 times[1] += watch.ElapsedTicks; 156 watch.Reset(); 157 watch.Start(); 158 ExecuteCreateReplacementWithFixedConstrolStructures(scope); 159 watch.Stop(); 160 times[2] += watch.ElapsedTicks; 161 watch.Reset(); 162 watch.Start(); 163 ql.Execute(scope); 164 watch.Stop(); 165 times[3] += watch.ElapsedTicks; 166 watch.Reset(); 167 watch.Start(); 168 bawqc.Execute(scope); 169 watch.Stop(); 170 times[4] += watch.ElapsedTicks; 171 watch.Reset(); 172 watch.Start(); 173 dc.Execute(scope); 174 watch.Stop(); 175 times[5] += watch.ElapsedTicks; 176 watch.Reset(); 177 watch.Start(); 178 lci.Execute(scope); 179 watch.Stop(); 180 times[6] += watch.ElapsedTicks; 181 watch.Reset(); 182 watch.Start(); 183 nrOfGenerations.Data++; 184 } 160 if (Canceled) { 161 executionPointer.Data = -1; 162 continue; 163 } 164 if (executionPointer.Data < 0) 165 Execute(selector, scope); 166 167 if (Canceled) { 168 executionPointer.Data = 0; 169 continue; 170 } 171 if (executionPointer.Data < 1) 172 ExecuteCreateChildrenWithFixedControlStructures(scope.SubScopes[1]); 173 174 if (Canceled) { 175 executionPointer.Data = 1; 176 continue; 177 } 178 if (executionPointer.Data < 2) 179 ExecuteCreateReplacementWithFixedConstrolStructures(scope); 180 181 if (Canceled) { 182 executionPointer.Data = 2; 183 continue; 184 } 185 if (executionPointer.Data < 3) { 186 ql.Execute(scope); 187 bawqc.Execute(scope); 188 dc.Execute(scope); 189 lci.Execute(scope); 190 nrOfGenerations.Data++; 191 } 192 executionPointer.Data = -1; 193 } // for i 194 195 //Stopwatch watch = new Stopwatch(); 196 //long[] times = new long[10]; 197 //timesExecuteCreateChildren = new long[10]; 198 //for (int i = nrOfGenerations.Data; i < maxGenerations.Data && !Canceled; i++) { 199 // watch.Start(); 200 // selector.Execute(scope); 201 // watch.Stop(); 202 // times[0] += watch.ElapsedTicks; 203 // watch.Reset(); 204 // watch.Start(); 205 // ExecuteCreateChildrenWithFixedControlStructures(scope.SubScopes[1]); 206 // watch.Stop(); 207 // times[1] += watch.ElapsedTicks; 208 // watch.Reset(); 209 // watch.Start(); 210 // ExecuteCreateReplacementWithFixedConstrolStructures(scope); 211 // watch.Stop(); 212 // times[2] += watch.ElapsedTicks; 213 // watch.Reset(); 214 // watch.Start(); 215 // ql.Execute(scope); 216 // watch.Stop(); 217 // times[3] += watch.ElapsedTicks; 218 // watch.Reset(); 219 // watch.Start(); 220 // bawqc.Execute(scope); 221 // watch.Stop(); 222 // times[4] += watch.ElapsedTicks; 223 // watch.Reset(); 224 // watch.Start(); 225 // dc.Execute(scope); 226 // watch.Stop(); 227 // times[5] += watch.ElapsedTicks; 228 // watch.Reset(); 229 // watch.Start(); 230 // lci.Execute(scope); 231 // watch.Stop(); 232 // times[6] += watch.ElapsedTicks; 233 // watch.Reset(); 234 // watch.Start(); 235 // nrOfGenerations.Data++; 236 //} 185 237 186 238 swApply.Stop(); … … 215 267 // UniformSequentialSubScopesProcessor 216 268 foreach (IScope s in scope.SubScopes) { 217 crossover.Execute(s);269 Execute(crossover, s); 218 270 // Stochastic Branch 219 271 if (random.NextDouble() < probability.Data) 220 mutator.Execute(s);221 evaluator.Execute(s);272 Execute(mutator, s); 273 Execute(evaluator, s); 222 274 sr.Execute(s); 223 275 counter.Execute(s); -
trunk/sources/HeuristicLab.FixedOperators/3.2/HeuristicLab.FixedOperators-3.2.csproj
r1661 r1693 71 71 <Compile Include="CreateReplacement.cs" /> 72 72 <Compile Include="CreateChildrenHardWired.cs" /> 73 <Compile Include="FixedBase.cs" /> 73 74 <Compile Include="FixedSGAMain.cs" /> 74 75 <Compile Include="HeuristicLabFixedOperatorsPlugin.cs" />
Note: See TracChangeset
for help on using the changeset viewer.