Skip to main content
IBM Quantum Platform

PauliTwoDesign

class qiskit.circuit.library.PauliTwoDesign(num_qubits=None, reps=3, seed=None, insert_barriers=False, name='PauliTwoDesign')

GitHub

Bases: TwoLocal

El ansatz de Pauli de dos diseños.

Esta clase implementa una forma concreta de un circuito de diseño [2 1], que se estudia con frecuencia en la bibliografía sobre aprendizaje automático cuántico, como por ejemplo en la investigación de mesetas estériles en algoritmos variacionales [2].

El circuito se compone de capas alternas de rotación y entrelazamiento, con una capa inicial de puertas de « H=RY(π/4)\sqrt{H} = RY(\pi/4) ». Las capas de rotación contienen rotaciones de Pauli de un solo qubit, en las que el eje se elige al azar de forma uniforme entre X, Y o Z. Las capas de entrelazamiento están formadas por puertas CZ por pares con una profundidad total de 2.

Por ejemplo, el circuito podría parecerse a esto (pero tenga en cuenta que la elección de una semilla diferente produce diferentes rotaciones de Pauli).

     ┌─────────┐┌──────────┐       ░ ┌──────────┐       ░  ┌──────────┐
q_0: ┤ RY(π/4) ├┤ RZ(θ[0]) ├─■─────░─┤ RY(θ[4]) ├─■─────░──┤ RZ(θ[8]) ├
     ├─────────┤├──────────┤ │     ░ ├──────────┤ │     ░  ├──────────┤
q_1: ┤ RY(π/4) ├┤ RZ(θ[1]) ├─■──■──░─┤ RY(θ[5]) ├─■──■──░──┤ RX(θ[9]) ├
     ├─────────┤├──────────┤    │  ░ ├──────────┤    │  ░ ┌┴──────────┤
q_2: ┤ RY(π/4) ├┤ RX(θ[2]) ├─■──■──░─┤ RY(θ[6]) ├─■──■──░─┤ RX(θ[10]) ├
     ├─────────┤├──────────┤ │     ░ ├──────────┤ │     ░ ├───────────┤
q_3: ┤ RY(π/4) ├┤ RZ(θ[3]) ├─■─────░─┤ RX(θ[7]) ├─■─────░─┤ RY(θ[11]) ├
     └─────────┘└──────────┘       ░ └──────────┘       ░ └───────────┘

Ejemplos

from qiskit.circuit.library import PauliTwoDesign
circuit = PauliTwoDesign(4, reps=2, seed=5, insert_barriers=True)
circuit.draw('mpl')
Diagrama del circuito generado por el código anterior.
Consulte también

La función pauli_two_design() construye el circuito funcionalmente igual, pero más rápido.

Referencias

[1] : Nakata et al., 2-diseños unitarios a partir de unitarios X- y Z-diagonales aleatorios.

arXiv:1502.07514

[2] : McClean et al., Mesetas estériles en paisajes de entrenamiento de redes neuronales cuánticas.

arXiv:1803.11173

Obsoleto desde la versión 2.1

La clase qiskit.circuit.library.n_local.pauli_two_design.PauliTwoDesign está obsoleta a partir de Qiskit 2.1. Se eliminará en Qiskit 3.0. En su lugar, utilice la función qiskit.circuit.library.pauli_two_design.

Parámetros

  • num_qubits (int | None) – El número de qubits del circuito Pauli de dos diseños.
  • reps (int) – Especifica la frecuencia con la que se repite un bloque formado por una capa de rotación y una capa de enredo.
  • seed (int | None) – La semilla para elegir aleatoriamente los ejes de las rotaciones Pauli.
  • insert_barriers (bool) – Si True, se insertan barreras entre cada capa. Si False, no se inserta ninguna barrera. Por defecto False.
  • name (str) – El nombre que se utilizará para el circuito generado.

Atributos

num_parameters_settable

Devuelve el número de parámetros configurables.

Devuelve

El número de parámetros posiblemente distintos.

name

Tipo: str

Un nombre legible para el circuito.

Ejemplo

from qiskit import QuantumCircuit

qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)
my_circuit
¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.