View source: R/cooling.schedule.R
cooling.schedule | R Documentation |
This function should be used to configure a search with simulated annealing.
cooling.schedule( type = "adaptive", start_temp = 1, end_temp = -1, lambda = 0.01, total_iter = 2e+05, markov_iter = 1000, markov_leave_frac = 1, acc_type = "probabilistic", frozen_def = "acc", frozen_acc_frac = 0.01, frozen_markov_count = 5, frozen_markov_mode = "total", start_temp_steps = 10000, start_acc_ratio = 0.95, auto_start_temp = TRUE, remember_models = TRUE, print_iter = 1000 )
type |
Type of cooling schedule. "adaptive" (default) or "geometric" |
start_temp |
Start temperature on a log10 scale.
Only used if |
end_temp |
End temperature on a log10 scale.
Only used if |
lambda |
Cooling parameter for the adaptive schedule. Values between 0.01 and 0.1 are recommended such that in total, several hundred thousand iterations are performed. Lower values lead to a more fine search with more iterations while higher values lead to a more rigorous search with less total iterations. |
total_iter |
Total number of iterations that should be performed. Only used for the geometric cooling schedule. |
markov_iter |
Number of iterations for each Markov chain. The standard value does not need to be tuned, since the temperature steps and number of iterations per chain act complementary to each other, i.e., less iterations can be compensated by smaller temperature steps. |
markov_leave_frac |
Fraction of accepted moves
leading to an early temperature reduction. This is
primarily used at (too) high temperatures lowering
the temperature if essentially a random walk is
performed. E.g., a value of 0.5 together with
|
acc_type |
Type of acceptance function. The standard "probabilistic" uses the conventional function \exp((\mathrm{Score}_\mathrm{old} - \mathrm{Score}_\mathrm{new})/t) for calculating the acceptance probability. "deterministc" accepts the new state, if and only if \mathrm{Score}_\mathrm{new} - \mathrm{Score}_\mathrm{old} < t. |
frozen_def |
How to define a frozen chain. "acc" means that if less than \texttt{frozen\_acc\_frac} \cdot \texttt{markov\_iter} states with different scores were accepted in a single chain, this chain is marked as frozen. Several frozen chains indicate that the search is finished. |
frozen_acc_frac |
If |
frozen_markov_count |
How many frozen chains need to be observed for finishing the search? |
frozen_markov_mode |
Do the frozen chains have to occur consecutively ("consecutive") or is the total number of frozen chains relevant ("total")? |
start_temp_steps |
If |
start_acc_ratio |
Which acceptance ratio should be achieved with the automatically configured start temperature? |
auto_start_temp |
Should the start temperature be configured automatically? TRUE or FALSE |
remember_models |
Should already evaluated models be saved in a 2-dimensional hash table to prevent fitting the same trees multiple times? |
print_iter |
After how many iterations shall a progress report be printed? |
type = "adapative"
(default)
automatically choses the temperature steps by using the
standard deviation of the scores in a Markov chain
together with the current temperature to
evaluate if equilibrium is achieved. If the standard
deviation is small or the temperature is high,
equilibrium can be assumed leading
to a strong temperature reduction. Otherwise, the
temperature is only merely lowered.
The parameter lambda
is essential to control
how fast the schedule will be executed and, thus,
how many total iterations will be performed.
type = "geometric"
is the conventional
approach which requires more finetuning. Here,
temperatures are uniformly lowered on a log10 scale.
Thus, a start and an end temperature have to be
supplied.
An object of class cooling.schedule
which is a list of all necessary cooling parameters.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.