TwoQubitBasisDecomposer
class qiskit.synthesis.TwoQubitBasisDecomposer(gate, basis_fidelity=1.0, euler_basis='U', pulse_optimize=None)
Bases: object
Una clase para descomponer unitarios 2-qubit en un número mínimo de usos de una puerta de base 2-qubit.
Parámetros
- gate (Gate) – Puerta de dos qubits que se utilizará en la descomposición KAK.
- basis_fidelity (float) – Se debe dar por supuesta la fidelidad en las aplicaciones de la puerta KAK. El valor predeterminado es
1.0. - euler_basis (str) – Cadena base que se debe proporcionar
OneQubitEulerDecomposerpara la síntesis 1Q. Las opciones válidas son ['ZYZ','ZXZ','XYX','U','U3','U1X','PSX','ZSX','RR']. - pulse_optimize (bool | None) – Si es así
True, intenta realizar una descomposición que minimice el número de operaciones unitarias locales entre las puertas de entrelazamiento. Esto provocará una excepción si no se ha implementado una descomposición óptima. Actualmente, solo [{CX, SX, RZ}] se sabe. Si es asíFalse, no intentes optimizarlo. Si es asíNone, intenta optimizar, pero no genere un error si se desconoce.
__call__
__call__(unitary, basis_fidelity=None, approximate=True, use_dag=False, *, _num_basis_uses=None)
Descomponga un unitary de dos qubits sobre bases fijas y utilizando la mejor aproximación dado que cada aplicación de base tiene un basis_fidelity finito.
Parámetros
- unitary (Operator or ndarray) – unitario para sintetizar.
- basis_fidelity (float or None) – Se debe dar por supuesta la fidelidad en las aplicaciones de la puerta KAK. Si se especifica, anula el valor especificado
basis_fidelityen la inicialización. - approximate (bool) – Se aproxima si las fidelidades de base son inferiores a 1.0.
- use_dag (bool) – Si es verdadero,
DAGCircuitse devuelve un en lugar de un cuandoQuantumCircuitse invoca esta clase. - _num_basis_uses (int) – impone una aproximación concreta al introducir un número en [0, 3].
Devuelve
Circuito cuántico sintetizado.
Tipo de retorno
Eleva
QiskitError – si pulse_optimize es «True», pero no sabemos cómo hacerlo.
Métodos
decomp0
static decomp0(target)
Descomponer el objetivo con usos de la puerta base. Resultado tiene rastro:
que es óptimo para todos los objetivos y bases
decomp1
decomp1(target)
Descomponer objetivo con uso de la puerta base . Resultado tiene traza:
que es óptimo para todos los objetivos y bases con z==0 o c==0.
decomp2_supercontrolled
decomp2_supercontrolled(target)
Descomponer el objetivo con usos de la puerta base.
Para la base supercontrolada , todo b, el resultado tiene traza
que es la aproximación óptima para la base de la clase CNOT o la clase DCNOT y cualquier objetivo. Puede ser subóptima para (es decir, existe una descomposición exacta para cualquier objetivo que utilice , pero puede que no sea esta descomposición). Se trata de una descomposición exacta para base supercontrolada y objetivo . No hay garantías para bases no supercontroladas.
decomp3_supercontrolled
decomp3_supercontrolled(target)
Descomponer objetivo con usos de la base. Se trata de una descomposición exacta para la base supercontrolada , todo b, y cualquier objetivo. No hay garantías para la base no supercontrolada.
num_basis_gates
num_basis_gates(unitary)
Calcula el número de puertas base necesarias en una descomposición de entrada unitaria