dwave.system.temperatures.freezeout_effective_temperature#
- freezeout_effective_temperature(freezeout_B, temperature, units_B='GHz', units_T='mK') float [source]#
Provides an effective temperature as a function of freezeout information.
See https://docs.dwavesys.com/docs/latest/c_qpu_annealing.html for a complete summary of D-Wave annealing quantum computer operation.
A D-Wave annealing quantum computer is assumed to implement a Hamiltonian \(H(s) = B(s)/2 H_P - A(s)/2 H_D\), where: \(H_P\) is the unitless diagonal problem Hamiltonian, \(H_D\) is the unitless driver Hamiltonian, \(B(s)\) is the problem energy scale; A(s) is the driver energy scale, amd \(s\) is the normalized anneal time \(s = t/t_a\) (in [0,1]). Diagonal elements of \(H_P\), indexed by the spin state \(x\), are equal to the energy of a classical Ising spin system
\[E_{Ising}(x) = \sum_i h_i x_i + \sum_{i>j} J_{i,j} x_i x_j\]If annealing achieves a thermally equilibrated distribution over decohered states at large \(s\) where \(A(s) \ll B(s)\), and dynamics stop abruptly at \(s=s^*\), the distribution of returned samples is well described by a Boltzmann distribution:
\[P(x) = \exp(- B(s^*) R E_{Ising}(x) / 2 k_B T)\]where T is the physical temperature, and \(k_B\) is the Boltzmann constant. R is a Hamiltonain rescaling factor, if a QPU is operated with auto_scale=False, then R=1. The function calculates the unitless effective temperature as \(T_{eff} = 2 k_B T/B(s^*)\).
Device temperature \(T\), annealing schedules {\(A(s)\), \(B(s)\)} and single-qubit freeze-out (\(s^*\), for simple uncoupled Hamltonians) are reported device properties: https://docs.dwavesys.com/docs/latest/doc_physical_properties.html These values (typically specified in mK and GHz) allows the calculation of an effective temperature for simple Hamiltonians submitted to D-Wave quantum computers. Complicated problems exploiting embeddings, or with many coupled variables, may freeze out at different values of s or piecemeal). Large problems may have slow dynamics at small values of s, so \(A(s)\) cannot be ignored as a contributing factor to the distribution.
Note that for QPU solvers this temperature estimate applies to problems submitted with no additional scaling factors (sampling with
auto_scale = False
). Ifauto_scale=True
(default) additional scaling factors must be accounted for.- Parameters:
freezeout_B (float) – \(B(s^*)\), the problem Hamiltonian energy scale at freeze-out.
temperature (float) – \(T\), the physical temperature of the quantum computer.
units_B (string, optional, 'GHz') – Units in which
freezeout_B
is specified. Allowed values: ‘GHz’ (Giga-Hertz) and ‘J’ (Joules).units_T (string, optional, 'mK') – Units in which the
temperature
is specified. Allowed values: ‘mK’ (milli-Kelvin) and ‘K’ (Kelvin).
- Returns:
The effective (unitless) temperature.
- Return type:
Examples
This example uses the published parameters <https://docs.dwavesys.com/docs/latest/doc_physical_properties.html> for the Advantage_system4.1 QPU solver as of November 22nd 2021: \(B(s=0.612) = 3.91\) GHz , :math:`T = 15.4`mK.
>>> from dwave.system.temperatures import freezeout_effective_temperature >>> T = freezeout_effective_temperature(freezeout_B = 3.91, temperature = 15.4) >>> print('Effective temperature at single qubit freeze-out is', T) Effective temperature at single qubit freeze-out is 0.164...
See also
The function
fast_effective_temperature
estimates the temperature for single-qubit Hamiltonians, in approximate agreement with estimates by this function at reported single-qubit freeze-out values \(s^*\) and device physical parameters.