OOF2: The Manual
Name
Conditional Iteration (ConditionalIteration) — Iteration stops when a given condition is satisfied.
Synopsis
ConditionalIteration(condition,extra,maximum)
Details
-
Base class:
IterationManager -
Parameters:
condition- Which exit condition to use. Type: An object of the
ConditionSelectorclass. extra- Number of extra steps to take to ensure that the condition is met. Type: Integer.
maximum- Maximum number of iterations, despite the exit condition. Type: Integer.
Description
When the iteration parameter of an iterative
SkeletonModifier (such as Anneal or Smooth) is set to
ConditionalIteration, OOF2 will stop
modifying the Skeleton when a specified condition is met.
The condition parameter determines the
stopping criterion. See the ConditionSelector class for the details.
Iteration doesn't necessarily stop immediately when the
condition is satisfied. If the
extra parameter is non-zero, OOF2 will
iterate for another extra iterations, and only
stop if the condition remains satisfied for all
of them. That is, the Skeleton modification operation stops after
the condition is met for
extra+1 consecutive iterations.
To prevent runaway operations, the Skeleton modification operation
will always stop after maximum iterations have
been performed.
Here's a sample of the output for an Anneal operation, using
condition=AcceptanceRate(acceptance_rate=10)
and extra=3.
Iteration 21: E = 4.2672e+00, deltaE=-1.4758e-02 ( 0.346%), Acceptance Rate = 13.0% Iteration 22: E = 4.2056e+00, deltaE=-7.3972e-03 ( 0.176%), Acceptance Rate = 14.1% Iteration 23: E = 4.1721e+00, deltaE=-4.2731e-03 ( 0.102%), Acceptance Rate = 13.0% Iteration 24: E = 4.1536e+00, deltaE=-5.8492e-03 ( 0.141%), Acceptance Rate = 10.9% Iteration 25: E = 4.1260e+00, deltaE=-8.9829e-04 ( 0.022%), Acceptance Rate = 6.5% The rate is below the threshold... Iteration 26: E = 4.1217e+00, deltaE=-6.1829e-03 ( 0.150%), Acceptance Rate = 4.3% ... but... Iteration 27: E = 4.0965e+00, deltaE=-6.5146e-03 ( 0.159%), Acceptance Rate = 3.3% ... not for long enough Iteration 28: E = 4.0706e+00, deltaE=-1.0707e-03 ( 0.026%), Acceptance Rate = 10.9% ... so iteration continues Iteration 29: E = 4.0651e+00, deltaE=-5.6484e-04 ( 0.014%), Acceptance Rate = 5.4% Iteration 30: E = 4.0625e+00, deltaE=-1.1716e-04 ( 0.003%), Acceptance Rate = 2.2% Iteration 31: E = 4.0620e+00, deltaE=-1.1398e-03 ( 0.028%), Acceptance Rate = 8.7% Iteration 32: E = 4.0565e+00, deltaE=-1.5421e-03 ( 0.038%), Acceptance Rate = 5.4% ... until the rate stays low Annealing done: deltaE = -1.1007e+00 (21.369%)



