Skip to main contentIBM Quantum Documentation
This page is from an old version of Qiskit SDK and does not exist in the latest version. We recommend you migrate to the latest version. See the release notes for more information.

RY

class RY(num_qubits, depth=3, entangler_map=None, entanglement='full', initial_state=None, entanglement_gate='cz', skip_unentangled_qubits=False, skip_final_ry=False)

GitHub

DEPRECATED. The RY Variational Form.

The RY trial wave function is layers of yy rotations with entanglements. When none of qubits are unentangled to other qubits the number of parameters and the entanglement gates themselves have no additional parameters, the number of optimizer parameters this form creates and uses is given by q×(d+1)q \times (d + 1), where qq is the total number of qubits and dd is the depth of the circuit.

Nonetheless, in some cases, if an entangler_map does not include all qubits, that is, some qubits are not entangled by other qubits. The number of parameters is reduced by d×qd \times q' where qq' is the number of unentangled qubits. This is because adding more parameters to the unentangled qubits only introduce overhead without bringing any benefit; furthermore, theoretically, applying multiple RY gates in a row can be reduced to a single RY gate with the summed rotation angles.

If the form uses entanglement gates with parameters (such as ‘crx’) the number of parameters increases by the number of entanglements. For instance with ‘linear’ or ‘sca’ entanglement the total number of parameters is 2q×(d+1/2)2q \times (d + 1/2). For ‘full’ entanglement an additional q×(q1)/2×dq \times (q - 1)/2 \times d parameters, hence a total of d×q×(q+1)/2+qd \times q \times (q + 1) / 2 + q. It is possible to skip the final layer or yy rotations by setting the argument skip_final_ry to True. Then the number of parameters in above formulae decreases by qq.

  • ‘full’ entanglement is each qubit is entangled with all the others.
  • ‘linear’ entanglement is qubit ii entangled with qubit i+1i + 1, for all i{0,1,...,q2}i \in \{0, 1, ... , q - 2\}, where qq is the total number of qubits.
  • ‘sca’ (shifted-circular-alternating) entanglement it is a generalized and modified version of the proposed circuit 14 in Sim et al.. It consists of circular entanglement where the ‘long’ entanglement connecting the first with the last qubit is shifted by one each block. Furthermore the role of control and target qubits are swapped every block (therefore alternating).

The entanglement parameter can be overridden by an entangler_map explicitly The entangler map is specified in the form of a list; where each element in the list is a list pair of a source qubit and a target qubit index. Indexes are integer values from 00 to q1q-1, where qq is the total number of qubits, as in the following example:

entangler_map = [[0, 1], [0, 2], [1, 3]]

Parameters

  • num_qubits (int) – Number of qubits, has a minimum value of 1.
  • depth (int) – Number of rotation layers, has a minimum value of 1.
  • entangler_map (Optional[List[List[int]]]) – Describe the connectivity of qubits, each list pair describes [source, target], or None for as defined by entanglement. Note that the order is the list is the order of applying the two-qubit gate.
  • entanglement (str) – (‘full’ | ‘linear’ | ‘sca’), overridden by ‘entangler_map` if its provided. ‘full’ is all-to-all entanglement, ‘linear’ is nearest-neighbor and ‘sca’ is a shifted-circular-alternating entanglement.
  • initial_state (Optional[InitialState]) – An initial state object
  • entanglement_gate (str) – (‘cz’ | ‘cx’ | ‘crx’)
  • skip_unentangled_qubits (bool) – Skip the qubits not in the entangler_map
  • skip_final_ry (bool) – Skip the final layer of Y rotations

Attributes

num_parameters

Number of parameters of the variational form.

Returns

An integer indicating the number of parameters.

Return type

int

num_qubits

Number of qubits of the variational form.

Returns

An integer indicating the number of qubits.

Return type

int

parameter_bounds

Parameter bounds.

Returns

A list of pairs indicating the bounds, as (lower, upper). None indicates an unbounded parameter in the corresponding direction. If None is returned, problem is fully unbounded.

Return type

list

preferred_init_points

Return preferred init points.

If an initial state is provided then the variational form may provide back this set of parameters which when used on the variational form should result in the overall state being that defined by the initial state

setting

support_parameterized_circuit

Whether or not the sub-class support parameterized circuit.

Returns

indicate the sub-class support parameterized circuit

Return type

boolean


Methods

construct_circuit

RY.construct_circuit(parameters, q=None)

Construct the variational form, given its parameters.

Parameters

Returns

a quantum circuit with given parameters

Return type

QuantumCircuit

Raises

ValueError – the number of parameters is incorrect.

get_entangler_map

static RY.get_entangler_map(map_type, num_qubits, offset=0)

returns entangler map

validate_entangler_map

static RY.validate_entangler_map(entangler_map, num_qubits)

validate entangler map

Was this page helpful?
Report a bug or request content on GitHub.