qiskit.circuit.library.efficient_su2
qiskit.circuit.library.efficient_su2(num_qubits, su2_gates=None, entanglement='reverse_linear', reps=3, skip_unentangled_qubits=False, skip_final_rotation_layer=False, parameter_prefix='θ', insert_barriers=False, name='EfficientSU2')
El circuito hardware-eficiente 2-local.
El circuito efficient_su2 consiste en capas de operaciones de qubit único atravesadas por y enredos CX. Se trata de un patrón heurístico que puede utilizarse para preparar funciones de onda de prueba para algoritmos cuánticos variacionales o circuitos de clasificación para el aprendizaje automático.
es el grupo unitario especial de grado 2, sus elementos son matrices unitarias con determinante 1, como las puertas de rotación de Pauli.
Con 3 qubits y utilizando las rotaciones de Pauli y como puertas de un solo qubit, este circuito se representa así:
┌──────────┐┌──────────┐ ░ ░ ░ ┌───────────┐┌───────────┐
┤ RY(θ[0]) ├┤ RZ(θ[3]) ├─░────────■───░─ ... ─░─┤ RY(θ[12]) ├┤ RZ(θ[15]) ├
├──────────┤├──────────┤ ░ ┌─┴─┐ ░ ░ ├───────────┤├───────────┤
┤ RY(θ[1]) ├┤ RZ(θ[4]) ├─░───■──┤ X ├─░─ ... ─░─┤ RY(θ[13]) ├┤ RZ(θ[16]) ├
├──────────┤├──────────┤ ░ ┌─┴─┐└───┘ ░ ░ ├───────────┤├───────────┤
┤ RY(θ[2]) ├┤ RZ(θ[5]) ├─░─┤ X ├──────░─ ... ─░─┤ RY(θ[14]) ├┤ RZ(θ[17]) ├
└──────────┘└──────────┘ ░ └───┘ ░ ░ └───────────┘└───────────┘Ejemplos:
Por defecto, se utiliza el entrelazamiento "reverse_linear" , que, en el caso de las puertas CX, equivale a un entrelazamiento de todos contra todos:
from qiskit.circuit.library import efficient_su2
circuit = efficient_su2(3, reps=1)
circuit.draw("mpl")
Para especificar qué puertas SU(2) deben utilizarse en la capa de rotación, podemos establecer el argumento su2_gates . Además, podemos cambiar la estructura de enredo. Por ejemplo:
circuit = efficient_su2(4, su2_gates=["rx", "y"], entanglement="circular", reps=1)
circuit.draw("mpl")
Parámetros
- num_qubits (int) – El número de qubits.
- su2_gates (str |Gate |Iterable[str |Gate] | None) – a puertas de un solo qubit para aplicar en capas de puertas de un solo qubit. Si solo se proporciona una puerta, se aplica la misma puerta a cada qubit. Si se proporciona una lista de puertas, todas las puertas se aplican a cada qubit en el orden proporcionado.
- reps (int) – Especifica la frecuencia con la que se repite la estructura de una capa de rotación seguida de una capa de enredo.
- entanglement (str |Iterable[Iterable[int]] | Iterable[str |Iterable[Iterable[int]]] | Callable[[int], str |Iterable[Iterable[int]] | Iterable[str |Iterable[Iterable[int]]]]) – Los índices que especifican sobre qué qubits actúan los bloques de entrada. Consulte
n_local()para obtener información detallada. - skip_final_rotation_layer (bool) – Si se añade una capa de rotación final al circuito.
- skip_unentangled_qubits (bool) – Si
True, las puertas de rotación sólo actúan sobre los qubits que están enredados. SiFalse, las puertas de rotación actúan sobre todos los qubits. - parameter_prefix (str) – El nombre de los parámetros libres.
- insert_barriers (bool) – Si es True, se insertan barreras entre cada capa. Si es False, no se insertan barreras.
- name (str) – El nombre del circuito.
Devuelve
Un circuito eficiente-SU(2).
Tipo de retorno