cooling.schedule {logicDT} | R Documentation |
Define the cooling schedule for simulated annealing
Description
This function should be used to configure a search with simulated annealing.
Usage
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
)
Arguments
type |
Type of cooling schedule. |
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 coarse 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 |
frozen_def |
How to define a frozen chain.
|
frozen_acc_frac |
If |
frozen_markov_count |
Number of frozen chains that need to be observed for finishing the search. |
frozen_markov_mode |
Do the frozen chains
have to occur consecutively ( |
start_temp_steps |
Number of iterations that should be used for
estimating the ideal start temperature if |
start_acc_ratio |
Acceptance ratio that should be achieved with the automatically configured start temperature. |
auto_start_temp |
Should the start
temperature be configured automatically?
|
remember_models |
Should already evaluated models be saved in a 2-dimensional hash table to prevent fitting the same trees multiple times? |
print_iter |
Number of iterations after which a progress report shall be printed. |
Details
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.
Value
An object of class cooling.schedule
which is a list of all necessary cooling parameters.