mod cool¶
- module cool¶
The cooling-schedule trait of the IISE manuscript: Cool : N -> R_>0, non-increasing.
Traits
- trait Cooling<T: Float>¶
A cooling schedule: maps an epoch index to a positive temperature.
The IISE manuscript law L4 requires the schedule to be non-increasing in the epoch counter. Implementors override
is_monotoneto advertise this property; the conservative default isfalse.Functions
- fn is_monotone(&self) -> bool¶
Witnesses L4: returns
trueifftemperatureis non-increasing inepoch. Defaulttrue.
- fn temperature(&self, epoch: usize) -> T¶
Returns the temperature at the given epoch.
Structs and Unions
- struct LogCool<T: Float>¶
Boltzmann (logarithmic) cooling:
T(k) = T_0 * log(k0) / log(k + k0).Strictly decreasing for positive T_0 and k0 greater than one because log(k0) is positive and the argument to the outer log strictly grows.
- t_init: T¶
Initial temperature
T_0.
- k0: T¶
Logarithmic offset k0 > 1 controlling the decay rate.
Implementations
- impl<T: Float> LogCool<T>¶
Functions
- fn new(t_init: T, k0: T) -> Self¶
Constructs a
LogCoolschedule. Requires t_init > 0 and k0 > 1.
Traits implemented
- struct ReciprocalCool<T: Float>¶
Reciprocal cooling:
T(k) = T_0 / (k + 1).The
+1shift avoids a divide-by-zero atk = 0and keeps the schedule well-defined on N. Strictly decreasing for positive T_0.- t_init: T¶
Initial temperature
T_0 = T(0).
Implementations
- impl<T: Float> ReciprocalCool<T>¶
Functions
- fn new(t_init: T) -> Self¶
Constructs a
ReciprocalCoolschedule. Requires t_init > 0.
Traits implemented
- impl<T: Float + Send + Sync> Cooling<T> for ReciprocalCool<T>¶
- impl<T: Float> sealed::Cooling for ReciprocalCool<T>¶
- impl<T: Float + Send + Sync> CertifiedCooling<T> for ReciprocalCool<T>¶
- struct TsallisCool<T: Float>¶
Tsallis (GSA) cooling:
T(k) = T_0 * (2^(q_v-1) - 1) / ((1+k)^(q_v-1) - 1).The case q_v == 1 is a zero-over-zero indeterminate form; an explicit branch returns the L’Hopital limit
T_0 * ln 2 / ln(1+k)so the schedule remains continuous and finite. Monotone-decreasing for q_v in the open interval (1, 3).- t_init: T¶
Initial temperature
T_0.
- q_v: T¶
Tsallis visiting index. Practical range:
(1, 3).
Implementations
- impl<T: Float> TsallisCool<T>¶
Functions
- fn new(t_init: T, q_v: T) -> Self¶
Constructs a
TsallisCoolschedule. Requires t_init > 0.
Traits implemented
- impl<T: Float + Send + Sync> Cooling<T> for TsallisCool<T>¶
- impl<T: Float> sealed::Cooling for TsallisCool<T>¶
- impl<T: Float + Send + Sync> CertifiedCooling<T> for TsallisCool<T>¶