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) – Fidelidad que debe asumirse para las aplicaciones de la Puerta KAK. El valor predeterminado es
1.0. - euler_basis (str) – Cadena de base que debe proporcionarse a
OneQubitEulerDecomposerpara la síntesis de 1Q. Las opciones válidas son ['ZYZ','ZXZ','XYX','U','U3','U1X','PSX','ZSX','RR']. - pulse_optimize (bool | None) – Si
True, intente hacer una descomposición que minimice los unitarios locales entre las puertas de enredo. Esto provocará una excepción si no se realiza una descomposición óptima. En la actualidad, sólo [{CX, SX, RZ}] se conoce. SiFalse, no intente la optimización. SiNone, intente la optimización pero no plantee si es desconocido.
__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) – Fidelidad que debe asumirse para las aplicaciones de la Puerta KAK. Si se da, anula
basis_fidelitydado en init. - approximate (bool) – Se aproxima si las fidelidades de base son inferiores a 1.0.
- use_dag (bool) – Si es verdadero se devuelve un
DAGCircuiten lugar deQuantumCircuit. - _num_basis_uses (int) – forzar una aproximación particular pasando 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