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). If auto_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:

float

Examples

This example uses the published parameters for the Advantage_system4.1 QPU solver as of November 22nd 2021: \(B(s=0.612) = 3.91\) GHz , \(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.