Libreria di circuiti
qiskit.circuit.library
La libreria di circuiti è una raccolta di circuiti quantistici che fungono da elementi costitutivi algoritmici, strumenti di benchmarking ed esempi che si ritiene siano difficili da simulare con metodi classici. L'obiettivo è quello di fornire circuiti ben definiti, ampiamente applicabili e facilmente riutilizzabili in diversi flussi di lavoro.
I criteri per l'inserimento di un circuito nella libreria sono:
Ben definito
Il circuito presenta una struttura chiara o un funzionamento matematico, supportato da un articolo o da un riferimento.
Ampiamente utilizzato e rilevante
Il circuito rappresenta una scelta canonica o la più diffusa per un compito ben definito, costituisce un riferimento standard o una linea di base comune, oppure è storicamente fondamentale per un settore significativo dell'informatica quantistica.
Autonomo
Il circuito è autonomo, il che significa che può essere generato in modo efficiente senza nuove dipendenze esterne.
Gli elementi presenti nella libreria dei circuiti sono di tipo QuantumCircuits o Instructions, il che consente di analizzarli facilmente o di inserirli in altri circuiti. Ciò consente una prototipazione rapida e la progettazione di circuiti a livelli di astrazione più elevati.
Ad esempio:
from qiskit.circuit import QuantumCircuit
from qiskit.circuit.library import PauliEvolutionGate
from qiskit.quantum_info import SparsePauliOp
hamiltonian = SparsePauliOp(["ZZI", "IZZ", "IXI"], coeffs=[1, 1, -1])
gate = PauliEvolutionGate(hamiltonian)
circuit = QuantumCircuit(hamiltonian.num_qubits)
circuit.append(gate, circuit.qubits)
circuit.draw("mpl")
Questa biblioteca è organizzata in diverse sezioni:
Si distinguono diverse categorie di operazioni:
Cancelli standard
Si tratta di porte quantistiche fondamentali, un sottoinsieme delle quali costituisce in genere un insieme di porte di base in un computer quantistico. Si tratta di operazioni unitarie rappresentate come Gate. La libreria fornisce inoltre direttive standard del compilatore (a Barrier) e operazioni non unitarie (come Measure).
Operazioni astratte
Questa categoria comprende operazioni definite da un'azione matematica, ma che possono essere realizzate con diverse scomposizioni. Ad esempio, un comando multi-control XGate inverte il qubit bersaglio se tutti i qubit di controllo sono i, ed esistono diversi circuiti concreti che implementano questa operazione utilizzando porte di livello inferiore. Tali operazioni astratte sono rappresentate come Gate o Instruction. Ciò consente di realizzare il circuito senza dover scegliere un'implementazione specifica per ciascun blocco e, infine, lascia che sia il compilatore (o l'utente stesso) a scegliere la scomposizione ottimale. Ad esempio:
from qiskit.circuit.library import MCXGate
mcx = MCXGate(4)
from qiskit import QuantumCircuit
circuit = QuantumCircuit(5)
circuit.append(mcx, [0, 1, 4, 2, 3])
circuit.draw("mpl")
Per i circuiti con operazioni astratte, il contesto del circuito viene preso in considerazione durante la trasposizione. Ad esempio, se sono disponibili qubit inattivi, possono essere utilizzati per ottenere un circuito meno profondo:
from qiskit import transpile
small_circuit = QuantumCircuit(5) # here we have no idle qubits
small_circuit.append(mcx, [0, 1, 4, 2, 3])
small_tqc = transpile(small_circuit, basis_gates=["u", "cx"])
print("No aux:", small_tqc.count_ops())
large_circuit = QuantumCircuit(10) # now we will have 5 idle qubits
large_circuit.append(mcx, [0, 1, 4, 2, 3])
large_tqc = transpile(large_circuit, basis_gates=["u", "cx"])
print("With aux:", large_tqc.count_ops())Che stampa:
No aux: OrderedDict([('u', 41), ('cx', 36)])
With aux: OrderedDict([('u', 24), ('cx', 18)])Operazioni strutturali
Queste operazioni hanno una decomposizione unica. Poiché il compilatore non ha bisogno di ragionare su di essi a un livello superiore, sono implementati come funzioni che restituiscono un oggetto QuantumCircuit oggetto. Ad esempio:
from qiskit.circuit.library import real_amplitudes
ansatz = real_amplitudes(5, entanglement="pairwise")
ansatz.draw("mpl")
Cancelli standard
GateQueste operazioni sono porte unitarie reversibili e costituiscono tutte una sottoclasse di. Di conseguenza, dispongono tutti dei metodi to_matrix(), power(), e control(), che in genere possiamo applicare solo alle operazioni unitarie.
Ad esempio:
from qiskit.circuit.library import XGate
gate = XGate()
print(gate.to_matrix()) # X gate
print(gate.power(1/2).to_matrix()) # √X gate -- see also the SXGate
print(gate.control(1).to_matrix()) # CX (controlled X) gate[[0.+0.j 1.+0.j]
[1.+0.j 0.+0.j]]
[[0.5+0.5j 0.5-0.5j]
[0.5-0.5j 0.5+0.5j]]
[[1.+0.j 0.+0.j 0.+0.j 0.+0.j]
[0.+0.j 0.+0.j 0.+0.j 1.+0.j]
[0.+0.j 0.+0.j 1.+0.j 0.+0.j]
[0.+0.j 1.+0.j 0.+0.j 0.+0.j]]La funzione get_standard_gate_name_mapping() consente di visualizzare le porte e le operazioni standard disponibili.
get_standard_gate_name_mapping
qiskit.circuit.library.get_standard_gate_name_mapping()
Restituisce un dizionario che mappa il nome di porte e istruzioni standard con un oggetto per quel nome.
Esempi
from qiskit.circuit.library import get_standard_gate_name_mapping
gate_name_map = get_standard_gate_name_mapping()
cx_object = gate_name_map["cx"]
print(cx_object)
print(type(cx_object))Instruction(name='cx', num_qubits=2, num_clbits=0, params=[])
_SingletonCXGateGate standard a 1 qubit
HGate(*args[, _force_mutable] ) | Porta di Hadamard a singolo qubit. |
IGate(*args[, _force_mutable] ) | Porta d'identità. |
PhaseGate(theta[, etichetta] ) | Rotazione a singolo qubit intorno all'asse Z. |
RGate(theta, phi[, etichetta] ) | Rotazione intorno all'asse . |
RXGate(theta[, etichetta] ) | Rotazione a singolo qubit intorno all'asse X. |
RYGate(theta[, etichetta] ) | Rotazione a singolo qubit intorno all'asse Y. |
RZGate(phi[, etichetta] ) | Rotazione a singolo qubit intorno all'asse Z. |
SGate(*args[, _force_mutable] ) | Porta S a singolo qubit ( ). |
SdgGate(*args[, _force_mutable] ) | Porta S-aggiunta a singolo qubit ( ). |
SXGate(*args[, _force_mutable] ) | Il gate Sqrt(X) a singolo qubit ( ). |
SXdgGate(*args[, _force_mutable] ) | Il gate inverso a singolo qubit Sqrt(X). |
TGate(*args[, _force_mutable] ) | Porta T a singolo qubit ( ). |
TdgGate(*args[, _force_mutable] ) | Porta T-aggiunta a un singolo qubit ( ). |
UGate(theta, phi, lam[, label] ) | Rotazione generica a singolo qubit in termini di angoli di Eulero ZYZ. |
U1Gate(theta[, etichetta] ) | Rotazione a singolo qubit intorno all'asse Z. |
U2Gate(phi, lam[, etichetta] ) | Rotazione a singolo qubit intorno all'asse X+Z. |
U3Gate(theta, phi, lam[, label] ) | Porta di rotazione generica a singolo qubit con 3 angoli di Eulero. |
XGate(*args[, _force_mutable] ) | La porta Pauli-X a singolo qubit ( ). |
YGate(*args[, _force_mutable] ) | La porta Pauli-Y a singolo qubit ( ). |
ZGate(*args[, _force_mutable] ) | La porta Pauli-Z a singolo qubit ( ). |
Porte standard a 2 qubit
CHGate(*args[, _force_mutable] ) | Porta di Hadamard controllata. |
CPhaseGate(theta[, etichetta, ctrl_state,...] ) | Cancello a fase controllata. |
CRXGate(theta[, etichetta, ctrl_stato, _base_etichetta] ) | Cancello RX controllato. |
CRYGate(theta[, etichetta, ctrl_stato, _base_etichetta] ) | Cancello controllato-RY. |
CRZGate(theta[, etichetta, ctrl_stato, _base_etichetta] ) | Cancello RZ controllato. |
CSGate(*args[, _force_mutable] ) | Cancello a S controllato. |
CSdgGate(*args[, _force_mutable] ) | Controllato - porta a . |
CSXGate(*args[, _force_mutable] ) | Cancello controllato-√X. |
CUGate(theta, phi, lam, gamma[, label,...] ) | Porta a U controllata (porta a 4 parametri a due equbit). |
CU1Gate(theta[, etichetta, ctrl_stato, _base_etichetta] ) | Controlled-U1 cancello. |
CU3Gate(theta, phi, lam[, label,...] ) | Controlled-U3 (porta a 3 parametri a due equbit). |
CXGate(*args[, _force_mutable] ) | Cancello a X controllato. |
CYGate(*args[, _force_mutable] ) | Cancello a Y controllato. |
CZGate(*args[, _force_mutable] ) | Cancello Z controllato. |
DCXGate(*args[, _force_mutable] ) | Porta a doppio CX. |
ECRGate(*args[, _force_mutable] ) | Un gate a risonanza incrociata con eco. |
iSwapGate(*args[, _force_mutable] ) | iSWAP cancello. |
RXXGate(theta[, etichetta] ) | Un'interazione parametrica a 2 qubit (rotazione intorno a XX). |
RYYGate(theta[, etichetta] ) | Un'interazione parametrica a 2 qubit (rotazione intorno a YY). |
RZXGate(theta[, etichetta] ) | Un'interazione parametrica a 2 qubit (rotazione intorno a ZX). |
RZZGate(theta[, etichetta] ) | Un'interazione parametrica a 2 qubit (rotazione intorno a ZZ). |
SwapGate(*args[, _force_mutable] ) | Il cancello SWAP. |
XXMinusYYGate(theta[, beta, etichetta] ) | Porta di interazione XX-YY. |
XXPlusYYGate(theta[, beta, etichetta] ) | Porta di interazione XX+YY. |
Porte standard a 3+ qubit
C3SXGate(*args[, _force_mutable] ) | Il gate sqrt-X controllato da 3 qubit. |
C3XGate(*args[, _force_mutable] ) | Il gate X controllato su 3 qubit. |
C4XGate(*args[, _force_mutable] ) | La porta X controllata da 4-qubit. |
CCXGate(*args[, _force_mutable] ) | Porta CCX, nota anche come porta di Toffoli. |
CCZGate(*args[, _force_mutable] ) | Cancello CCZ. |
CSwapGate(*args[, _force_mutable] ) | Porta Controlled-SWAP, nota anche come porta Fredkin. |
RCCXGate(*args[, _force_mutable] ) | La porta di Toffoli semplificata, detta anche porta di Margolus. |
RC3XGate(*args[, _force_mutable] ) | La porta di Toffoli semplificata a 3 controlli. |
Porte standard globali
Il gate seguente è globale e non accetta argomenti per i qubit.
GlobalPhaseGate(fase[, etichetta] ) | Il gate di fase globale ( ). |
Direttive standard
Le direttive sono operazioni sullo stack quantistico che devono essere interpretate dal backend o dal transpiler. In generale, il transpiler o il backend possono facoltativamente ignorarli se non esiste un'implementazione per loro.
Operazioni standard
Le operazioni sono cambiamenti non reversibili nello stato quantico del circuito.
Oltre a Measure, è disponibile una misurazione congiunta di Pauli generalizzata, utilizzata come operazione di base nel calcolo basato su Pauli.
PauliProductMeasurement(Pauli[, etichetta] ) | Istruzioni per la misurazione dei prodotti Pauli. |
Porte generalizzate
Questo modulo estende le porte standard con una collezione più ampia di porte di base. Questo include porte che sono variadiche, cioè il numero di qubit dipende dall'ingresso. Ad esempio:
from qiskit.circuit.library import DiagonalGate
diagonal = DiagonalGate([1, 1j])
print(diagonal.num_qubits)
diagonal = DiagonalGate([1, 1, 1, -1])
print(diagonal.num_qubits)che stampa:
1
2DiagonalGate(diag) | Un generico gate quantistico diagonale. |
PermutationGate(motivo) | Un gate che permuta i qubit. |
MCMTGate(gate, num_ctrl_qubit,...[,...] ) | Il gate multi-target controllato, per un gate target controllato singolarmente arbitrario. |
MCPhaseGate(lam, num_ctrl_qubits[, label,...] ) | Cancello multifase controllato. |
MCXGate( [num_ctrl_qubit, etichetta,...] ) | La porta X generale e multicontrollata. |
MSGate(num_qubit, theta[, etichetta] ) | La porta Mølmer-Sørensen. |
RVGate(v_x, v_y, v_z[, base] ) | Rotazione attorno a un asse di rotazione arbitrario dove è l'angolo di rotazione in radianti. |
PauliGate(etichetta) | Una porta di Pauli multi-qubit. |
PauliProductRotationGate(pauli, angolo[, etichetta] ) | Una rotazione di Pauli generica. |
LinearFunction(lineare[, validate_input] ) | Un circuito reversibile lineare su n qubit. |
Isometry(isometria, num_ancillas_zero,...[,...] ) | Decomposizione di isometrie arbitrarie da a qubit. |
UnitaryGate(dati[, etichetta, verifica_input,...] ) | Classe di porte quantistiche specificate da una matrice unitaria. |
UCGate(gate_list[, up_to_diagonal, mux_simp] ) | Gate a controllo uniforme (detto anche gate multiplexato). |
UCPauliRotGate(angolo_lista, asse_rotazione) | Rotazioni di Pauli a controllo uniforme. |
UCRXGate(elenco_angoli) | Rotazioni di Pauli-X a controllo uniforme. |
UCRYGate(elenco_angoli) | Rotazioni di Pauli-Y a controllo uniforme. |
UCRZGate(elenco_angoli) | Rotazioni di Pauli-Z a controllo uniforme. |
Gli oggetti sopra indicati derivano Gate da o Instruction, il che consente al compilatore di analizzarli a livello astratto. Suggeriamo quindi di utilizzare questi ultimi al posto dei seguenti, che derivano da QuantumCircuit e vengono costruiti in modo anticipato.
Diagonal(diag) | Circuito che implementa una trasformazione diagonale. |
MCMT(gate, num_ctrl_qubit, num_target_qubit) | Il gate multi-target controllato, per un gate target controllato singolarmente arbitrario. |
MCMTVChain(gate, num_ctrl_qubit,...) | L'implementazione di MCMT con la catena a V CCX. |
MCXGrayCode( [num_ctrl_qubit, etichetta,...] ) | Implementare la porta X multicontrollata utilizzando il codice Gray. |
MCXRecursive( [num_ctrl_qubit, etichetta,...] ) | Implementare la porta X multicontrollata utilizzando la ricorsione. |
MCXVChain( [num_ctrl_qubit, dirty_ancillas,...] ) | Implementare la porta X multicontrollata utilizzando una catena a V di porte CX. |
Permutation(num_qubit[, pattern, seme] ) | Un circuito a n_qubit che permuta i qubit. |
GMS(num_qubit, theta) | Porta globale Mølmer-Sørensen. |
GR(num_qubit, theta, phi) | Cancello globale R. |
GRX(num_qubit, theta) | Cancello RX globale. |
GRY(num_qubit, theta) | Cancello globale RY. |
GRZ(num_qubit, phi) | Cancello RZ globale. |
Logica booleana
Questi Gateelementi implementano operazioni logiche booleane, come ad esempio la logica or di un insieme di stati dei qubit.
AndGate(num_variable_qubits[, flags] ) | Un gate che rappresenta l'operazione logica AND su un certo numero di qubit. |
OrGate(num_variable_qubits[, flags] ) | Un gate che rappresenta l'operazione di OR logico su un certo numero di qubit. |
BitwiseXorGate(num_qubit, quantità) | Un gate a n-qubit per lo xoraggio bitwise dell'ingresso con un numero intero amount. |
InnerProductGate(num_qubit) | Una funzione booleana 2n-qubit che calcola il prodotto interno di due vettori di n-qubit su . |
Gli oggetti sopra indicati derivano Gate da questo tipo (o lo restituiscono), il che consente al compilatore di analizzarli a livello astratto. Suggeriamo quindi di utilizzare questi ultimi al posto dei seguenti, che derivano da QuantumCircuit e vengono costruiti in modo anticipato.
AND(num_variable_qubits[, flags, mcx_mode] ) | Un circuito che implementa l'operazione logica AND su un certo numero di qubit. |
OR(num_variable_qubits[, flags, mcx_mode] ) | Un circuito che implementa l'operazione di OR logico su un certo numero di qubit. |
XOR(num_qubit[, quantità, seme] ) | Un circuito a n-qubit per lo xor bitwise dell'ingresso con un numero intero amount. |
InnerProduct(num_qubit) | Una funzione booleana 2n-qubit che calcola il prodotto interno di due vettori di n-qubit su . |
Un circuito casuale bitwise xor può essere generato direttamente con l'ausilio di un circuito casuale bitwise :
random_bitwise_xor(num_qubit, seme) | Creare un BitwiseXorGate casuale. |
Modifica della base
Queste porte eseguono trasformazioni di base degli stati dei qubit. Ad esempio, nel caso della trasformata quantistica di Fourier (QFT), si trasforma tra la base computazionale e la base di Fourier.
QFTGate(num_qubit) | Porta della trasformata di Fourier quantistica. |
L'oggetto sopra indicato deriva Gateda, il che consente al compilatore di analizzarlo a livello astratto. Suggeriamo quindi di utilizzare questo invece del seguente, che deriva da QuantumCircuit e viene costruito in modo anticipato.
QFT( [numero_di_qubit, grado_di_approssimazione,...] ) | Circuito della trasformata di Fourier quantistica. |
Aritmertico
Queste porte e circuiti eseguono l'aritmetica classica, come l'addizione o la moltiplicazione.
Vipere
Gli addizionatori calcolano la somma di due registri -qubit, ovvero
dove la dimensione del registro di uscita dipende dal tipo di sommatore utilizzato.
ModularAdderGate(num_state_qubit[, etichetta] ) | Calcolo della somma modulo di due registri di qubit di dimensioni . |
HalfAdderGate(num_state_qubit[, etichetta] ) | Calcolo della somma di due registri di qubit di uguale dimensione, compreso un bit di riporto. |
FullAdderGate(num_state_qubit[, etichetta] ) | Calcolo della somma di due registri di qubit di dimensioni , compresi i bit di riporto e di uscita. |
Gli oggetti sopra indicati derivano Gateda, il che consente al compilatore di analizzarli a livello astratto. Suggeriamo quindi di utilizzare questi ultimi al posto dei seguenti, che derivano da QuantumCircuit e vengono costruiti in modo anticipato.
DraperQFTAdder(num_state_qubit[, tipo, nome] ) | Un circuito che utilizza la QFT per eseguire l'addizione in-place su due registri di qubit. |
CDKMRippleCarryAdder(num_state_qubit[,...] ) | Un circuito di ripple-carry per eseguire l'addizione in-place su due registri di qubit. |
VBERippleCarryAdder(num_state_qubit[,...] ) | L'addizionatore di riporto VBE [1]. |
Moltiplicatori
I moltiplicatori calcolano il prodotto di due registri -qubit, ovvero
dove è il numero di bit utilizzati per rappresentare il risultato.
MultiplierGate(num_state_qubit[,...] ) | Calcolo del prodotto di due registri di qubit di uguale dimensione in un nuovo registro. |
L'oggetto sopra indicato deriva Gateda, il che consente al compilatore di analizzarlo a livello astratto. Suggeriamo quindi di utilizzare questo invece dei seguenti, che derivano da QuantumCircuit e vengono costruiti in modo anticipato.
HRSCumulativeMultiplier(num_state_qubit[,...] ) | Un circuito di moltiplicazione per memorizzare il prodotto di due registri di ingresso fuori posto. |
RGQFTMultiplier(num_state_qubit[,...] ) | Un circuito di moltiplicazione QFT per memorizzare il prodotto di due registri di ingresso fuori posto. |
Funzioni di ampiezza
Una funzione di ampiezza approssima una funzione applicata alle ampiezze di qubit. Per informazioni più dettagliate, consultare la documentazione della classe.
LinearAmplitudeFunctionGate(...[, ...]) | Un circuito che implementa una funzione lineare (piecewise) sulle ampiezze dei qubit. |
L'oggetto sopra indicato deriva Gateda, il che consente al compilatore di analizzarlo a livello astratto. Suggeriamo quindi di utilizzare questo invece del seguente, che deriva da QuantumCircuit e viene costruito in modo anticipato.
LinearAmplitudeFunction(num_state_qubit,...) | Un circuito che implementa una funzione lineare (piecewise) sulle ampiezze dei qubit. |
Rotazioni funzionali di Pauli
Le rotazioni funzionali di Pauli implementano operazioni della forma
utilizzando le rotazioni di Pauli- per diversi tipi di funzioni , come ad esempio quelle lineari, polinomiali o una loro versione a quote differenziate. Sono simili alle funzioni di ampiezza di cui sopra, ma senza pre- e post-elaborazione per il dominio e l'immagine della funzione target.
LinearPauliRotationsGate(num_state_qubit[,...] ) | Rotazione X, Y o Z a controllo lineare. |
PolynomialPauliRotationsGate(num_state_qubit) | Un gate che implementa rotazioni Pauli polinomiali. |
PiecewiseLinearPauliRotationsGate([...]) | Rotazioni di Pauli controllate in modo lineare. |
PiecewisePolynomialPauliRotationsGate(...[, ...]) | Rotazioni di Pauli controllate in modo frammentario e polinomiale. |
PiecewiseChebyshevGate(f_x, num_state_qubits) | Approssimazione di Chebyshev a pezzetti di una funzione di ingresso. |
Gli oggetti sopra indicati derivano Gateda, il che consente al compilatore di analizzarli a livello astratto. Suggeriamo quindi di utilizzare questi ultimi al posto dei seguenti, che derivano da QuantumCircuit e vengono costruiti in modo anticipato.
FunctionalPauliRotations( [num_state_qubit,...] ) | Classe base per le rotazioni funzionali di Pauli. |
LinearPauliRotations( [num_state_qubit,...] ) | Rotazione X, Y o Z a controllo lineare. |
PolynomialPauliRotations( [num_state_qubit,...] ) | Un circuito che implementa rotazioni Pauli polinomiali. |
PiecewiseLinearPauliRotations([...]) | Rotazioni di Pauli controllate in modo lineare. |
PiecewisePolynomialPauliRotations([...]) | Rotazioni di Pauli controllate in modo frammentario e polinomiale. |
PiecewiseChebyshev(f_x[, grado,...] ) | Approssimazione di Chebyshev a pezzetti di una funzione di ingresso. |
Altre funzioni aritmetiche
Qui elenchiamo altri circuiti aritmetici. Per maggiori dettagli, si vedano i documenti delle singole classi.
ExactReciprocalGate(num_state_qubit, scalabilità) | Implementa una funzione reciproca esatta. |
IntegerComparatorGate(num_state_qubit, valore) | Eseguire un (o ) su un registro di qubit rispetto a un intero classico. |
QuadraticFormGate( [num_result_qubits,...] ) | Implementa una forma quadratica su variabili binarie codificate in registri di qubit. |
WeightedSumGate(num_state_qubit[, pesi,...] ) | Un gate per calcolare la somma ponderata di registri di qubit. |
Gli oggetti sopra indicati derivano Gateda, il che consente al compilatore di analizzarli a livello astratto. Suggeriamo quindi di utilizzare questi ultimi al posto dei seguenti, che derivano da QuantumCircuit e vengono costruiti in modo anticipato.
ExactReciprocal(num_state_qubit, scalabilità[,...] ) | Reciproco esatto |
IntegerComparator( [num_state_qubit, valore,...] ) | Comparatore di interi. |
QuadraticForm( [num_result_qubits,...] ) | Implementa una forma quadratica su variabili binarie codificate in registri di qubit. |
WeightedAdder( [num_state_qubit, pesi, nome] ) | Un circuito per calcolare la somma ponderata di registri di qubit. |
Circuiti quantistici particolari
Le porte e i circuiti quantistici seguenti definiscono operazioni specifiche di interesse:
fourier_checking(f, g) | Circuito di controllo di Fourier. |
hidden_linear_function(matrice di adiacenza) | Circuito per risolvere il problema della funzione lineare nascosta. |
iqp(interazioni) | Circuito quantistico istantaneo a tempo polinomiale (IQP). |
random_iqp(num_qubit[, seme] ) | Un circuito casuale istantaneo in tempo polinomiale quantistico (IQP). |
quantum_volume(num_qubit[, profondità, seme] ) | Un circuito modello di volume quantistico. |
phase_estimation(num_qubit_di_valutazione, unitaria) | Circuito di stima della fase. |
grover_operator(oracolo[, preparazione dello stato,...] ) | Costruire l'operatore Grover. |
unitary_overlap(unitary1, unitary2[, ...]) | Circuito che restituisce la sovrapposizione tra due unitari . |
GraphStateGate(matrice di adiacenza) | Un gate che rappresenta lo stato di un grafo. |
PauliEvolutionGate(operatore[, tempo, etichetta,...] ) | Evoluzione temporale di un operatore costituito da Paulis. |
HamiltonianGate(dati, ora[, etichetta] ) | Classe per rappresentare l'evoluzione di un operatore hamiltoniano come una porta. |
Di seguito vengono fornite le stesse operazioni delle classi che derivano da QuantumCircuit. Per migliorare le prestazioni del runtime e del compilatore, tuttavia, si consiglia di utilizzare le funzioni e le porte sopra citate.
FourierChecking(f, g) | Circuito di controllo di Fourier. |
GraphState(matrice di adiacenza) | Circuito per preparare lo stato del grafico. |
HiddenLinearFunction(matrice di adiacenza) | Circuito per risolvere il problema della funzione lineare nascosta. |
IQP(interazioni) | Circuito polinomiale quantistico istantaneo (IQP). |
QuantumVolume(num_qubit[, profondità, seme,...] ) | Un circuito modello di volume quantistico. |
PhaseEstimation(num_qubit_di_valutazione, unitaria) | Circuito di stima della fase. |
GroverOperator(oracolo[, preparazione dello stato,...] ) | L'operatore Grover. |
UnitaryOverlap(unitary1, unitary2[, ...]) | Circuito che restituisce la sovrapposizione tra due unitari . |
Circuiti N-locali
Le seguenti funzioni restituiscono un'espressione parametrica QuantumCircuit da utilizzare come ansatz in un'ampia serie di algoritmi quantistici variazionali.
Per esempio, possiamo costruire un circuito variazionale
from qiskit.circuit.library import efficient_su2
num_qubits = 4
ansatz = efficient_su2(num_qubits, entanglement="pairwise")
ansatz.draw("mpl")
e combinarlo con
from qiskit.circuit.library import zz_feature_map
circuit = zz_feature_map(num_qubits)
circuit.barrier()
circuit.compose(ansatz, inplace=True)
circuit.draw("mpl")
per ottenere un circuito per la classificazione quantistica variazionale.
Le seguenti funzioni costruiscono tutte circuiti variazionali e sono ottimizzate per una costruzione veloce:
n_local(num_qubit, blocchi_di_rotazione,...[,...] ) | Costruire un circuito variazionale n-locale. |
efficient_su2(num_qubits[, su2_gates,...] ) | Il circuito 2-locale efficiente dal punto di vista hardware. |
real_amplitudes(num_qubit[, entanglement,...] ) | Costruire un circuito 2-locale ad ampiezza reale. |
pauli_two_design(num_qubit[, ripetizioni, seme,...] ) | Costruire un ansatz di Pauli a 2 disegni. |
excitation_preserving(num_qubit[, modalità,...] ) | Il surrogato euristico della funzione d'onda che preserva l'eccitazione. |
qaoa_ansatz(cost_operator[, reps,...] ) | Un circuito quantistico generalizzato QAOA con un supporto di stati iniziali e miscelatori personalizzati. |
hamiltonian_variational_ansatz(hamiltoniano) | Costruire un'ansatz variazionale hamiltoniana. |
evolved_operator_ansatz(operatori[, rappresentanti,...] ) | Costruire un'ansatz a partire dalle evoluzioni degli operatori. |
Pur suggerendo l'uso delle funzioni di cui sopra, continuiamo a supportare anche le seguenti BlueprintCircuit, che racchiudono i circuiti in un blocco e consentono di effettuare mutazioni inplace dei circuiti:
NLocal( [num_qubit, blocchi_di_rotazione,...] ) | La classe di circuiti n-locali. |
TwoLocal( [num_qubit, blocchi_di_rotazione,...] ) | Il circuito a due locali. |
PauliTwoDesign( [num_qubit, reps, seed,...] ) | Il surrogato di Pauli a due disegni. |
RealAmplitudes( [num_qubit, entanglement,...] ) | Il circuito 2-locale ad ampiezza reale. |
EfficientSU2( [num_qubits, su2_gates,...] ) | Il circuito SU(2) 2-locale efficiente dal punto di vista hardware. |
EvolvedOperatorAnsatz( [operatori, rappresentanti,...] ) | L'ansatz dell'operatore evoluto. |
ExcitationPreserving( [num_qubit, modalità,...] ) | Il surrogato euristico della funzione d'onda che preserva l'eccitazione. |
QAOAAnsatz( [cost_operator, reps,...] ) | Un circuito quantistico generalizzato QAOA con un supporto di stati iniziali e miscelatori personalizzati. |
Circuiti di codifica dati
Le seguenti funzioni restituiscono un circuito parametrato QuantumCircuit da utilizzare come circuiti di codifica dei dati in una serie di algoritmi quantistici variazionali:
pauli_feature_map(caratteristica_dimensione[, ripetizioni,...] ) | Il circuito di espansione di Pauli. |
z_feature_map(caratteristica_dimensione[, ripetizioni,...] ) | Il circuito di evoluzione Z di Pauli del primo ordine. |
zz_feature_map(caratteristica_dimensione[, ripetizioni,...] ) | Circuito di evoluzione di Pauli-Z del secondo ordine. |
Pur suggerendo l'uso delle funzioni di cui sopra, continuiamo a supportare anche le seguenti BlueprintCircuit, che racchiudono i circuiti in un blocco e consentono di effettuare mutazioni inplace dei circuiti:
PauliFeatureMap( [caratteristica_dimensione, ripetizioni,...] ) | Il circuito di espansione di Pauli. |
ZFeatureMap(caratteristica_dimensione[, ripetizioni,...] ) | Il circuito di evoluzione Z di Pauli del primo ordine. |
ZZFeatureMap(caratteristica_dimensione[, ripetizioni,...] ) | Circuito di evoluzione di Pauli-Z del secondo ordine. |
Circuiti di preparazione dei dati
Per la preparazione dello stato vengono utilizzate le seguenti operazioni:
StatePreparation(params[, num_qubits,...] ) | Preparazione dello stato ad ampiezza complessa. |
Initialize(params[, num_qubits, normalize] ) | Inizializzazione dell'ampiezza complessa. |
Oracoli
Un "oracolo" può riferirsi a una serie di operazioni black-box sugli stati quantistici. Qui consideriamo gli oracoli che implementano funzioni booleane attraverso i capovolgimenti di fase
o bit-flip
Questi sono implementati in
PhaseOracleGate(espressione[, var_order, etichetta] ) | Implementa un oracolo di fase. |
BitFlipOracleGate(espressione[, var_order, etichetta] ) | Implementa un oracolo bit-flip |
e un elemento fondamentale dell'algoritmo di Grover (vedi grover_operator()).
Oltre all'implementazione Gatebasata su, supportiamo anche la QuantumCircuitversione dell'oracolo di inversione di fase
PhaseOracle(espressione[, var_order] ) | Fase Oracle. |
Circuiti modello
I modelli sono funzioni che restituiscono circuiti che calcolano l'identità. Sono utilizzati per l'ottimizzazione dei circuiti, dove la corrispondenza di una parte del modello consente al compilatore di sostituire la corrispondenza con l'inverso del resto del modello.
In questo esempio, viene controllata la costante di identità di un modello:
from qiskit.circuit.library.templates import template_nct_4b_1
from qiskit.quantum_info import Operator
import numpy as np
template = template_nct_4b_1()
identity = np.identity(2 ** len(template.qubits), dtype=complex)
data = Operator(template).data
np.allclose(data, identity) # True, template_nct_4b_1 is the identityCircuiti modello NCT (Not-CNOT-Toffoli)
XGateCircuiti modello per le porte, CXGate, e CCXGate (Toffoli).
Riferimenti:
Maslov, D. e Dueck, G. W. e Miller, D. M., Tecniche per la sintesi di reti Toffoli reversibili, 2007 https://dx.doi.org/10.1145/1278349.1278355
template_nct_2a_1
qiskit.circuit.library.templates.nct.template_nct_2a_1()
Modello 2a_1:
┌───┐┌───┐
q_0: ┤ X ├┤ X ├
└───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_2a_2
qiskit.circuit.library.templates.nct.template_nct_2a_2()
Modello 2a_2:
q_0: ──■────■──
┌─┴─┐┌─┴─┐
q_1: ┤ X ├┤ X ├
└───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_2a_3
qiskit.circuit.library.templates.nct.template_nct_2a_3()
Modello 2a_3:
q_0: ──■────■──
│ │
q_1: ──■────■──
┌─┴─┐┌─┴─┐
q_2: ┤ X ├┤ X ├
└───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_4a_1
qiskit.circuit.library.templates.nct.template_nct_4a_1()
Modello 4a_1:
q_0: ───────■─────────■──
│ │
q_1: ──■────┼────■────┼──
│ │ │ │
q_2: ──■────■────■────■──
│ ┌─┴─┐ │ ┌─┴─┐
q_3: ──┼──┤ X ├──┼──┤ X ├
┌─┴─┐└───┘┌─┴─┐└───┘
q_4: ┤ X ├─────┤ X ├─────
└───┘ └───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_4a_2
qiskit.circuit.library.templates.nct.template_nct_4a_2()
Modello 4a_2:
q_0: ──■─────────■───────
│ │
q_1: ──■────■────■────■──
│ ┌─┴─┐ │ ┌─┴─┐
q_2: ──┼──┤ X ├──┼──┤ X ├
┌─┴─┐└───┘┌─┴─┐└───┘
q_3: ┤ X ├─────┤ X ├─────
└───┘ └───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_4a_3
qiskit.circuit.library.templates.nct.template_nct_4a_3()
Modello 4a_3:
q_0: ──■────■────■────■──
│ ┌─┴─┐ │ ┌─┴─┐
q_1: ──┼──┤ X ├──┼──┤ X ├
┌─┴─┐└───┘┌─┴─┐└───┘
q_2: ┤ X ├─────┤ X ├─────
└───┘ └───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_4b_1
qiskit.circuit.library.templates.nct.template_nct_4b_1()
Modello 4b_1:
q_0: ───────■─────────■──
│ │
q_1: ──■────┼────■────┼──
│ │ │ │
q_2: ──■────■────■────■──
┌─┴─┐┌─┴─┐┌─┴─┐┌─┴─┐
q_3: ┤ X ├┤ X ├┤ X ├┤ X ├
└───┘└───┘└───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_4b_2
qiskit.circuit.library.templates.nct.template_nct_4b_2()
Modello 4b_2:
q_0: ──■─────────■───────
│ │
q_1: ──■────■────■────■──
┌─┴─┐┌─┴─┐┌─┴─┐┌─┴─┐
q_2: ┤ X ├┤ X ├┤ X ├┤ X ├
└───┘└───┘└───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_5a_1
qiskit.circuit.library.templates.nct.template_nct_5a_1()
Modello 5a_1:
q_0: ──■────■────■────■────■──
│ ┌─┴─┐ │ ┌─┴─┐ │
q_1: ──■──┤ X ├──■──┤ X ├──┼──
┌─┴─┐└───┘┌─┴─┐└───┘┌─┴─┐
q_2: ┤ X ├─────┤ X ├─────┤ X ├
└───┘ └───┘ └───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_5a_2
qiskit.circuit.library.templates.nct.template_nct_5a_2()
Modello 5a_2:
q_0: ──■─────────■─────────■──
│ ┌───┐ │ ┌───┐ │
q_1: ──■──┤ X ├──■──┤ X ├──┼──
┌─┴─┐└───┘┌─┴─┐└───┘┌─┴─┐
q_2: ┤ X ├─────┤ X ├─────┤ X ├
└───┘ └───┘ └───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_5a_3
qiskit.circuit.library.templates.nct.template_nct_5a_3()
Modello 5a_3:
q_0: ───────■─────────■────■──
┌─┴─┐ ┌─┴─┐ │
q_1: ──■──┤ X ├──■──┤ X ├──┼──
┌─┴─┐└───┘┌─┴─┐└───┘┌─┴─┐
q_2: ┤ X ├─────┤ X ├─────┤ X ├
└───┘ └───┘ └───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_5a_4
qiskit.circuit.library.templates.nct.template_nct_5a_4()
Modello 5a_4:
┌───┐ ┌───┐
q_0: ──■──┤ X ├──■──┤ X ├
┌─┴─┐└───┘┌─┴─┐├───┤
q_1: ┤ X ├─────┤ X ├┤ X ├
└───┘ └───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_6a_1
qiskit.circuit.library.templates.nct.template_nct_6a_1()
Modello 6a_1:
┌───┐ ┌───┐ ┌───┐
q_0: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_1: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
└───┘ └───┘ └───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_6a_2
qiskit.circuit.library.templates.nct.template_nct_6a_2()
Modello 6a_2:
q_0: ──■────■────■────■────■────■──
│ ┌─┴─┐ │ ┌─┴─┐ │ ┌─┴─┐
q_1: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_2: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
└───┘ └───┘ └───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_6a_3
qiskit.circuit.library.templates.nct.template_nct_6a_3()
Modello 6a_3:
q_0: ───────■─────────■────■────■──
┌─┴─┐ ┌─┴─┐ │ ┌─┴─┐
q_1: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_2: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
└───┘ └───┘ └───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_6a_4
qiskit.circuit.library.templates.nct.template_nct_6a_4()
Modello 6a_4:
q_0: ───────■──────────────■───────
┌─┴─┐ ┌───┐ │ ┌───┐
q_1: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_2: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
└───┘ └───┘ └───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_6b_1
qiskit.circuit.library.templates.nct.template_nct_6b_1()
Modello 6b_1:
q_0: ──■─────────■────■─────────■──
│ ┌─┴─┐ │ ┌─┴─┐
q_1: ──■────■──┤ X ├──■────■──┤ X ├
┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
└───┘└───┘ └───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_6b_2
qiskit.circuit.library.templates.nct.template_nct_6b_2()
Modello 6b_2:
q_0: ───────■────■─────────■────■──
│ ┌─┴─┐ │ ┌─┴─┐
q_1: ──■────■──┤ X ├──■────■──┤ X ├
┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
└───┘└───┘ └───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_6c_1
qiskit.circuit.library.templates.nct.template_nct_6c_1()
Modello 6c_1:
q_0: ──■─────────■─────────■────■──
│ ┌───┐ │ ┌───┐ │ ┌─┴─┐
q_1: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_2: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
└───┘ └───┘ └───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_7a_1
qiskit.circuit.library.templates.nct.template_nct_7a_1()
Modello 7a_1:
┌───┐ ┌───┐
q_0: ┤ X ├──■─────────■────■──┤ X ├──■──
└─┬─┘┌─┴─┐ │ ┌─┴─┐└─┬─┘ │
q_1: ──■──┤ X ├──■────■──┤ X ├──■────■──
└───┘┌─┴─┐┌─┴─┐└───┘ ┌─┴─┐
q_2: ──────────┤ X ├┤ X ├──────────┤ X ├
└───┘└───┘ └───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_7b_1
qiskit.circuit.library.templates.nct.template_nct_7b_1()
Modello 7b_1:
┌───┐ ┌───┐
q_0: ┤ X ├──■─────────■────■──┤ X ├──■──
└───┘┌─┴─┐ │ ┌─┴─┐└───┘ │
q_1: ─────┤ X ├──■────■──┤ X ├───────■──
└───┘┌─┴─┐┌─┴─┐└───┘ ┌─┴─┐
q_2: ──────────┤ X ├┤ X ├──────────┤ X ├
└───┘└───┘ └───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_7c_1
qiskit.circuit.library.templates.nct.template_nct_7c_1()
Modello 7c_1:
┌───┐ ┌───┐
q_0: ┤ X ├──■─────────■────■──┤ X ├──■──
└───┘┌─┴─┐ │ ┌─┴─┐└───┘ │
q_1: ─────┤ X ├──■────■──┤ X ├───────■──
└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘ ┌─┴─┐
q_2: ───────■──┤ X ├┤ X ├──■───────┤ X ├
└───┘└───┘ └───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_7d_1
qiskit.circuit.library.templates.nct.template_nct_7d_1()
Modello 7d_1:
┌───┐ ┌───┐
q_0: ┤ X ├──■─────────■────■──┤ X ├──■──
└─┬─┘┌─┴─┐ │ ┌─┴─┐└─┬─┘ │
q_1: ──■──┤ X ├──■────■──┤ X ├──■────■──
└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘ ┌─┴─┐
q_2: ───────■──┤ X ├┤ X ├──■───────┤ X ├
└───┘└───┘ └───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_7e_1
qiskit.circuit.library.templates.nct.template_nct_7e_1()
Modello 7e_1:
┌───┐ ┌───┐
q_0: ┤ X ├──■─────────■────■──┤ X ├──■──
└───┘┌─┴─┐ │ ┌─┴─┐└───┘ │
q_1: ─────┤ X ├───────┼──┤ X ├───────┼──
└─┬─┘┌───┐┌─┴─┐└─┬─┘ ┌─┴─┐
q_2: ───────■──┤ X ├┤ X ├──■───────┤ X ├
└───┘└───┘ └───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_9a_1
qiskit.circuit.library.templates.nct.template_nct_9a_1()
Modello 9a_1:
┌───┐ ┌───┐ ┌───┐
q_0: ┤ X ├──■──┤ X ├──■────■──┤ X ├──■──
└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐
q_1: ──■──┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├
└─┬─┘ │ ├───┤└─┬─┘┌───┐└─┬─┘
q_2: ───────■────■──┤ X ├──■──┤ X ├──■──
└───┘ └───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_9c_1
qiskit.circuit.library.templates.nct.template_nct_9c_1()
Modello 9c_1:
┌───┐ ┌───┐┌───┐ ┌───┐ ┌───┐
q_0: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├
└─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘
q_1: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
└───┘ └───┘ └───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_9c_2
qiskit.circuit.library.templates.nct.template_nct_9c_2()
Modello 9c_2:
q_0: ───────■────■──────────────■────■─────────■──
┌───┐ │ ┌─┴─┐┌───┐ ┌─┴─┐ │ ┌─┴─┐
q_1: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├
└─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
└───┘ └───┘ └───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_9c_3
qiskit.circuit.library.templates.nct.template_nct_9c_3()
Modello 9c_3:
q_0: ───────■────────────────────────■────────────
┌───┐ │ ┌───┐┌───┐ ┌───┐ │ ┌───┐
q_1: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├
└─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
└───┘ └───┘ └───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_9c_4
qiskit.circuit.library.templates.nct.template_nct_9c_4()
Modello 9c_4:
q_0: ──■────■─────────■──────────────■────────────
┌─┴─┐ │ ┌───┐┌─┴─┐ ┌───┐ │ ┌───┐
q_1: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├
└─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
└───┘ └───┘ └───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_9c_5
qiskit.circuit.library.templates.nct.template_nct_9c_5()
Modello 9c_5:
q_0: ────────────■─────────■──────────────■───────
┌───┐ ┌─┴─┐┌───┐ │ ┌───┐ │ ┌───┐
q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├
└─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
└───┘ └───┘ └───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_9c_6
qiskit.circuit.library.templates.nct.template_nct_9c_6()
Modello 9c_6:
q_0: ───────■────■─────────■─────────■────■───────
┌───┐ │ ┌─┴─┐┌───┐ │ ┌───┐ │ │ ┌───┐
q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├
└─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
└───┘ └───┘ └───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_9c_7
qiskit.circuit.library.templates.nct.template_nct_9c_7()
Modello 9c_7:
q_0: ──■────■────■────■────■─────────■────■───────
┌─┴─┐ │ ┌─┴─┐┌─┴─┐ │ ┌───┐ │ │ ┌───┐
q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├
└─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
└───┘ └───┘ └───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_9c_8
qiskit.circuit.library.templates.nct.template_nct_9c_8()
Modello 9c_8:
q_0: ──■─────────■────■─────────■──────────────■──
┌─┴─┐ ┌─┴─┐┌─┴─┐ ┌─┴─┐ ┌─┴─┐
q_1: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├
└─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
└───┘ └───┘ └───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_9c_9
qiskit.circuit.library.templates.nct.template_nct_9c_9()
Modello 9c_9:
q_0: ──■────■────■────■─────────■────■─────────■──
┌─┴─┐ │ ┌─┴─┐┌─┴─┐ ┌─┴─┐ │ ┌─┴─┐
q_1: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├
└─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
└───┘ └───┘ └───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_9c_10
qiskit.circuit.library.templates.nct.template_nct_9c_10()
Modello 9c_10:
q_0: ──■─────────■────■────■────■─────────■────■──
┌─┴─┐ ┌─┴─┐┌─┴─┐ │ ┌─┴─┐ │ ┌─┴─┐
q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├
└─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
└───┘ └───┘ └───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_9c_11
qiskit.circuit.library.templates.nct.template_nct_9c_11()
Modello 9c_11:
q_0: ───────■────■─────────■────■────■────■────■──
┌───┐ │ ┌─┴─┐┌───┐ │ ┌─┴─┐ │ │ ┌─┴─┐
q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├
└─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
└───┘ └───┘ └───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_9c_12
qiskit.circuit.library.templates.nct.template_nct_9c_12()
Modello 9c_12:
q_0: ──■────■────■────■────■────■────■────■────■──
┌─┴─┐ │ ┌─┴─┐┌─┴─┐ │ ┌─┴─┐ │ │ ┌─┴─┐
q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├
└─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
└───┘ └───┘ └───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_9d_1
qiskit.circuit.library.templates.nct.template_nct_9d_1()
Modello 9d_1:
┌───┐ ┌───┐ ┌───┐
q_0: ──■───────┤ X ├───────■──┤ X ├───────■──┤ X ├
┌─┴─┐┌───┐└─┬─┘┌───┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘
q_1: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
└───┘└───┘ └───┘└───┘ └───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_9d_2
qiskit.circuit.library.templates.nct.template_nct_9d_2()
Modello 9d_2:
q_0: ──■────■────■──────────────■──────────────■──
│ │ ┌─┴─┐ ┌─┴─┐ ┌─┴─┐
q_1: ──■────┼──┤ X ├───────■──┤ X ├───────■──┤ X ├
┌─┴─┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
└───┘└───┘ └───┘└───┘ └───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_9d_3
qiskit.circuit.library.templates.nct.template_nct_9d_3()
Modello 9d_3:
q_0: ──■────■───────────────────■─────────────────
│ │ ┌───┐ ┌─┴─┐ ┌───┐
q_1: ──■────┼──┤ X ├───────■──┤ X ├───────■──┤ X ├
┌─┴─┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
└───┘└───┘ └───┘└───┘ └───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_9d_4
qiskit.circuit.library.templates.nct.template_nct_9d_4()
Modello 9d_4:
q_0: ───────■─────────■──────────────■────────────
│ ┌───┐ │ ┌───┐ │ ┌───┐
q_1: ──■────┼──┤ X ├──┼────■──┤ X ├──┼────■──┤ X ├
┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
└───┘└───┘ └───┘└───┘ └───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_9d_5
qiskit.circuit.library.templates.nct.template_nct_9d_5()
Modello 9d_5:
q_0: ──■────■─────────■─────────■────■────────────
│ │ ┌───┐ │ ┌─┴─┐ │ ┌───┐
q_1: ──■────┼──┤ X ├──┼────■──┤ X ├──┼────■──┤ X ├
┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
└───┘└───┘ └───┘└───┘ └───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_9d_6
qiskit.circuit.library.templates.nct.template_nct_9d_6()
Modello 9d_6:
q_0: ──■────■──────────────■────■─────────■───────
│ │ ┌───┐ │ ┌─┴─┐ │ ┌───┐
q_1: ──■────┼──┤ X ├───────■──┤ X ├───────■──┤ X ├
┌─┴─┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
└───┘└───┘ └───┘└───┘ └───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_9d_7
qiskit.circuit.library.templates.nct.template_nct_9d_7()
Modello 9d_7:
q_0: ──■────■─────────■────■────■────■────■───────
│ │ ┌───┐ │ │ ┌─┴─┐ │ │ ┌───┐
q_1: ──■────┼──┤ X ├──┼────■──┤ X ├──┼────■──┤ X ├
┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
└───┘└───┘ └───┘└───┘ └───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_9d_8
qiskit.circuit.library.templates.nct.template_nct_9d_8()
Modello 9d_8:
q_0: ──■────■────■────■─────────■────■─────────■──
│ │ ┌─┴─┐ │ ┌─┴─┐ │ ┌─┴─┐
q_1: ──■────┼──┤ X ├──┼────■──┤ X ├──┼────■──┤ X ├
┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
└───┘└───┘ └───┘└───┘ └───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_9d_9
qiskit.circuit.library.templates.nct.template_nct_9d_9()
Modello 9d_9:
q_0: ──■────■────■─────────■────■─────────■────■──
│ │ ┌─┴─┐ │ ┌─┴─┐ │ ┌─┴─┐
q_1: ──■────┼──┤ X ├───────■──┤ X ├───────■──┤ X ├
┌─┴─┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
└───┘└───┘ └───┘└───┘ └───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
template_nct_9d_10
qiskit.circuit.library.templates.nct.template_nct_9d_10()
Modello 9d_10:
q_0: ──■────■────■────■────■────■────■────■────■──
│ │ ┌─┴─┐ │ │ ┌─┴─┐ │ │ ┌─┴─┐
q_1: ──■────┼──┤ X ├──┼────■──┤ X ├──┼────■──┤ X ├
┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
└───┘└───┘ └───┘└───┘ └───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
Circuiti modello Clifford
Circuiti modello su porte di Clifford.
clifford_2_1
qiskit.circuit.library.clifford_2_1()
Modello Clifford 2_1:
q_0: ─■──■─
│ │
q_1: ─■──■─Risultati
come un circuito quantistico.
Tipo di restituzione
clifford_2_2
qiskit.circuit.library.clifford_2_2()
Modello Clifford 2_2:
q_0: ──■────■──
┌─┴─┐┌─┴─┐
q_1: ┤ X ├┤ X ├
└───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
clifford_2_3
qiskit.circuit.library.clifford_2_3()
Modello Clifford 2_3:
┌───┐┌───┐
q_0: ┤ H ├┤ H ├
└───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
clifford_2_4
qiskit.circuit.library.clifford_2_4()
Modello Clifford 2_4:
q_0: ─X──X─
│ │
q_1: ─X──X─Risultati
come un circuito quantistico.
Tipo di restituzione
clifford_3_1
qiskit.circuit.library.clifford_3_1()
Modello Clifford 3_1:
┌───┐┌───┐┌───┐
q_0: ┤ S ├┤ S ├┤ Z ├
└───┘└───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
clifford_4_1
qiskit.circuit.library.clifford_4_1()
Modello Clifford 4_1:
┌───┐
q_0: ──■──┤ X ├──■───X─
┌─┴─┐└─┬─┘┌─┴─┐ │
q_1: ┤ X ├──■──┤ X ├─X─
└───┘ └───┘Risultati
come un circuito quantistico.
Tipo di restituzione
clifford_4_2
qiskit.circuit.library.clifford_4_2()
Modello Clifford 4_2:
q_0: ───────■────────■─
┌───┐┌─┴─┐┌───┐ │
q_1: ┤ H ├┤ X ├┤ H ├─■─
└───┘└───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
clifford_4_3
qiskit.circuit.library.clifford_4_3()
Modello Clifford 4_3:
┌───┐ ┌─────┐
q_0: ┤ S ├──■──┤ SDG ├──■──
└───┘┌─┴─┐└─────┘┌─┴─┐
q_1: ─────┤ X ├───────┤ X ├
└───┘ └───┘Risultati
come un circuito quantistico.
Tipo di restituzione
clifford_4_4
qiskit.circuit.library.clifford_4_4()
Modello Clifford 4_4:
┌───┐ ┌─────┐
q_0: ┤ S ├─■─┤ SDG ├─■─
└───┘ │ └─────┘ │
q_1: ──────■─────────■─Risultati
come un circuito quantistico.
Tipo di restituzione
clifford_5_1
qiskit.circuit.library.clifford_5_1()
Modello Clifford 5_1:
q_0: ──■─────────■─────────■── ┌─┴─┐ ┌─┴─┐ │ q_1: ┤ X ├──■──┤ X ├──■────┼── └───┘┌─┴─┐└───┘┌─┴─┐┌─┴─┐ q_2: ─────┤ X ├─────┤ X ├┤ X ├ └───┘ └───┘└───┘
Risultati
come un circuito quantistico.
Tipo di restituzione
clifford_6_1
qiskit.circuit.library.clifford_6_1()
Modello Clifford 6_1:
┌───┐ ┌───┐┌───┐ q_0: ┤ H ├──■──┤ H ├┤ X ├ ├───┤┌─┴─┐├───┤└─┬─┘ q_1: ┤ H ├┤ X ├┤ H ├──■── └───┘└───┘└───┘
Risultati
come un circuito quantistico.
Tipo di restituzione
clifford_6_2
qiskit.circuit.library.clifford_6_2()
Modello Clifford 6_2:
┌───┐ q_0: ┤ S ├──■───────────■───■─ ├───┤┌─┴─┐┌─────┐┌─┴─┐ │ q_1: ┤ S ├┤ X ├┤ SDG ├┤ X ├─■─ └───┘└───┘└─────┘└───┘
Risultati
come un circuito quantistico.
Tipo di restituzione
clifford_6_3
qiskit.circuit.library.clifford_6_3()
Modello Clifford 6_3:
┌───┐ ┌───┐
q_0: ─X──■─┤ H ├──■──┤ X ├─────
│ │ └───┘┌─┴─┐└─┬─┘┌───┐
q_1: ─X──■──────┤ X ├──■──┤ H ├
└───┘ └───┘Risultati
come un circuito quantistico.
Tipo di restituzione
clifford_6_4
qiskit.circuit.library.clifford_6_4()
Modello Clifford 6_4:
global phase: 7π/4
┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐
q: ┤ S ├┤ H ├┤ S ├┤ H ├┤ S ├┤ H ├
└───┘└───┘└───┘└───┘└───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
clifford_6_5
qiskit.circuit.library.clifford_6_5()
Modello Clifford 6_5:
┌───┐
q_0: ─■───■───┤ S ├───■───────
│ ┌─┴─┐┌┴───┴┐┌─┴─┐┌───┐
q_1: ─■─┤ X ├┤ SDG ├┤ X ├┤ S ├
└───┘└─────┘└───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
clifford_8_1
qiskit.circuit.library.clifford_8_1()
Modello Clifford 8_1:
┌───┐ ┌───┐ ┌───┐┌─────┐
q_0: ──■───────┤ X ├─┤ S ├─┤ X ├┤ SDG ├
┌─┴─┐┌───┐└─┬─┘┌┴───┴┐└─┬─┘└┬───┬┘
q_1: ┤ X ├┤ H ├──■──┤ SDG ├──■───┤ H ├─
└───┘└───┘ └─────┘ └───┘Risultati
come un circuito quantistico.
Tipo di restituzione
clifford_8_2
qiskit.circuit.library.clifford_8_2()
Modello Clifford 8_2:
┌───┐
q_0: ──■─────────■───┤ S ├───■────────────
┌─┴─┐┌───┐┌─┴─┐┌┴───┴┐┌─┴─┐┌───┐┌───┐
q_1: ┤ X ├┤ H ├┤ X ├┤ SDG ├┤ X ├┤ S ├┤ H ├
└───┘└───┘└───┘└─────┘└───┘└───┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
clifford_8_3
qiskit.circuit.library.clifford_8_3()
Modello Clifford 8_3:
q_0: ─────────────────■───────────────────────■──
┌───┐┌───┐┌───┐┌─┴─┐┌─────┐┌───┐┌─────┐┌─┴─┐
q_1: ┤ S ├┤ H ├┤ S ├┤ X ├┤ SDG ├┤ H ├┤ SDG ├┤ X ├
└───┘└───┘└───┘└───┘└─────┘└───┘└─────┘└───┘Risultati
come un circuito quantistico.
Tipo di restituzione
Circuiti modello RZXGate
Circuiti modello con RZXGate.
rzx_yz
qiskit.circuit.library.rzx_yz(theta=None)
Modello basato su RZX per CX - RYGate - CX.
┌────────┐ ┌─────────┐┌─────────┐┌──────────┐
q_0: ──■──┤ RY(-ϴ) ├──■──┤ RX(π/2) ├┤0 ├┤ RX(-π/2) ├
┌─┴─┐└────────┘┌─┴─┐└─────────┘│ RZX(ϴ) │└──────────┘
q_1: ┤ X ├──────────┤ X ├───────────┤1 ├────────────
└───┘ └───┘ └─────────┘Parametri
theta (ParameterExpression |float | None)
rzx_xz
qiskit.circuit.library.rzx_xz(theta=None)
Modello basato su RZX per CX - RXGate - CX.
global phase: π
┌───┐ ┌───┐┌─────────┐┌─────────┐┌─────────┐┌──────────┐»
q_0: ┤ X ├─────────┤ X ├┤ Rz(π/2) ├┤ Rx(π/2) ├┤ Rz(π/2) ├┤0 ├»
└─┬─┘┌───────┐└─┬─┘└─────────┘└─────────┘└─────────┘│ Rzx(-ϴ) │»
q_1: ──■──┤ Rx(ϴ) ├──■───────────────────────────────────┤1 ├»
└───────┘ └──────────┘»
« ┌─────────┐┌─────────┐┌─────────┐
«q_0: ┤ Rz(π/2) ├┤ Rx(π/2) ├┤ Rz(π/2) ├
« └─────────┘└─────────┘└─────────┘
«q_1: ─────────────────────────────────
«Parametri
theta (ParameterExpression |float | None)
rzx_cy
qiskit.circuit.library.rzx_cy(theta=None)
Modello basato su RZX per CX - RYGate - CX.
┌──────────┐
q_0: ──■─────────────■─────────────────────────────────┤0 ├───────────
┌─┴─┐┌───────┐┌─┴─┐┌────────┐┌──────────┐┌───────┐│ RZX(-ϴ) │┌─────────┐
q_1: ┤ X ├┤ RY(ϴ) ├┤ X ├┤ RY(-ϴ) ├┤ RZ(-π/2) ├┤ RX(ϴ) ├┤1 ├┤ RZ(π/2) ├
└───┘└───────┘└───┘└────────┘└──────────┘└───────┘└──────────┘└─────────┘Parametri
theta (ParameterExpression |float | None)
rzx_zz1
qiskit.circuit.library.rzx_zz1(theta=None)
Modello basato su RZX per CX - RZGate - CX.
global phase: π/2
»
q_0: ──■────────────────────────────────────────────■───────────────────────»
┌─┴─┐┌───────┐┌────┐┌───────┐┌────┐┌────────┐┌─┴─┐┌────────┐┌─────────┐»
q_1: ┤ X ├┤ Rz(ϴ) ├┤ √X ├┤ Rz(π) ├┤ √X ├┤ Rz(3π) ├┤ X ├┤ Rz(-ϴ) ├┤ Rz(π/2) ├»
└───┘└───────┘└────┘└───────┘└────┘└────────┘└───┘└────────┘└─────────┘»
« ┌──────────┐ »
«q_0: ───────────────────────────────┤0 ├──────────────────────»
« ┌─────────┐┌─────────┐┌───────┐│ Rzx(-ϴ) │┌─────────┐┌─────────┐»
«q_1: ┤ Rx(π/2) ├┤ Rz(π/2) ├┤ Rx(ϴ) ├┤1 ├┤ Rz(π/2) ├┤ Rx(π/2) ├»
« └─────────┘└─────────┘└───────┘└──────────┘└─────────┘└─────────┘»
«
«q_0: ───────────
« ┌─────────┐
«q_1: ┤ Rz(π/2) ├
« └─────────┘Parametri
theta (ParameterExpression |float | None)
rzx_zz2
qiskit.circuit.library.rzx_zz2(theta=None)
Modello basato su RZX per CX - PhaseGate - CX.
global phase: π
»
q_0: ──■────────────■─────────────────────────────────────────────────────»
┌─┴─┐┌──────┐┌─┴─┐┌───────┐┌─────────┐┌─────────┐┌─────────┐┌───────┐»
q_1: ┤ X ├┤ P(ϴ) ├┤ X ├┤ P(-ϴ) ├┤ Rz(π/2) ├┤ Rx(π/2) ├┤ Rz(π/2) ├┤ Rx(ϴ) ├»
└───┘└──────┘└───┘└───────┘└─────────┘└─────────┘└─────────┘└───────┘»
« ┌──────────┐
«q_0: ┤0 ├─────────────────────────────────
« │ Rzx(-ϴ) │┌─────────┐┌─────────┐┌─────────┐
«q_1: ┤1 ├┤ Rz(π/2) ├┤ Rx(π/2) ├┤ Rz(π/2) ├
« └──────────┘└─────────┘└─────────┘└─────────┘Parametri
theta (ParameterExpression |float | None)
rzx_zz3
qiskit.circuit.library.rzx_zz3(theta=None)
Modello basato su RZX per CX - RZGate - CX.
global phase: π
»
q_0: ──■─────────────■──────────────────────────────────────────────────────»
┌─┴─┐┌───────┐┌─┴─┐┌────────┐┌─────────┐┌─────────┐┌─────────┐┌───────┐»
q_1: ┤ X ├┤ Rz(ϴ) ├┤ X ├┤ Rz(-ϴ) ├┤ Rz(π/2) ├┤ Rx(π/2) ├┤ Rz(π/2) ├┤ Rx(ϴ) ├»
└───┘└───────┘└───┘└────────┘└─────────┘└─────────┘└─────────┘└───────┘»
« ┌──────────┐
«q_0: ┤0 ├─────────────────────────────────
« │ Rzx(-ϴ) │┌─────────┐┌─────────┐┌─────────┐
«q_1: ┤1 ├┤ Rz(π/2) ├┤ Rx(π/2) ├┤ Rz(π/2) ├
« └──────────┘└─────────┘└─────────┘└─────────┘Parametri
theta (ParameterExpression |float | None)