Skip to main content
IBM Quantum Platform

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")
Un circuito che implementa un'espansione Suzuki-Trotter di un'evoluzione hamiltoniana.

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 1|1\rangle 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")
Un circuito con una porta X multicontrollata.

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")
Il circuito dell'ansatz delle ampiezze reali.

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()

GitHub

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=[])
_SingletonCXGate

Gate 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 θ\theta intorno all'asse cos(ϕ)x+sin(ϕ)y\cos(\phi)x + \sin(\phi)y.
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 ( Z\sqrt{Z} ).
SdgGate(*args[, _force_mutable] )Porta S-aggiunta a singolo qubit ( SS^\dagger ).
SXGate(*args[, _force_mutable] )Il gate Sqrt(X) a singolo qubit ( X\sqrt{X} ).
SXdgGate(*args[, _force_mutable] )Il gate inverso a singolo qubit Sqrt(X).
TGate(*args[, _force_mutable] )Porta T a singolo qubit ( Z4\sqrt[4]{Z} ).
TdgGate(*args[, _force_mutable] )Porta T-aggiunta a un singolo qubit ( TT^\dagger ).
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 ( σx\sigma_x ).
YGate(*args[, _force_mutable] )La porta Pauli-Y a singolo qubit ( σy\sigma_y ).
ZGate(*args[, _force_mutable] )La porta Pauli-Z a singolo qubit ( σz\sigma_z ).

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 SS^\dagger.
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 XXX \otimes X (rotazione intorno a XX).
RYYGate(theta[, etichetta] )Un'interazione parametrica a 2 qubit YYY \otimes Y (rotazione intorno a YY).
RZXGate(theta[, etichetta] )Un'interazione parametrica a 2 qubit ZXZ \otimes X (rotazione intorno a ZX).
RZZGate(theta[, etichetta] )Un'interazione parametrica a 2 qubit ZZZ \otimes Z (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 ( eiθe^{i\theta} ).

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
2
DiagonalGate(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 v\vec{v} dove vertvvert2\\vert \vec{v}\\vert _2 è 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 mm a nn 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 F2F_2.

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 F2F_2.

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 nn -qubit, ovvero

anbnana+bt,|a\rangle_n |b\rangle_n \mapsto |a\rangle_n |a + b\rangle_{t},

dove la dimensione tt del registro di uscita dipende dal tipo di sommatore utilizzato.

ModularAdderGate(num_state_qubit[, etichetta] )Calcolo della somma modulo 2n2^n di due registri di qubit di dimensioni nn.
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 nn, 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 nn -qubit, ovvero

anbn0tanbnabt,|a\rangle_n |b\rangle_n |0\rangle_{t} \mapsto |a\rangle_n |b\rangle_n |a \cdot b\rangle_t,

dove tt è 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 f:{0,...,2n1}[0,1]f: \{0, ..., 2^n - 1\} \rightarrow [0, 1] applicata alle ampiezze di nn 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

x0cos(f(x))x0+sin(f(x))x1|x\rangle |0\rangle \mapsto \cos(f(x))|x\rangle|0\rangle + \sin(f(x))|x\rangle|1\rangle

utilizzando le rotazioni di Pauli- YY per diversi tipi di funzioni ff, 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 \geq (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 U2U1U_2^{\dag} U_1.
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 U2U1U_2^{\dag} U_1.

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")
Il circuito efficiente di SU2 ansatz...

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")
... in combinazione con la mappa delle caratteristiche ZZ. ... in combinazione con la mappa delle caratteristiche ZZ.

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 SU(2)SU(2) 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 f:{0,...,2n1}{0,1}f: \{0, ..., 2^n - 1\} \rightarrow \{0, 1\} attraverso i capovolgimenti di fase

xn(1)f(x)xn,|x\rangle_n \mapsto (-1)^{f(x)} |x\rangle_n,

o bit-flip

xnbxnbf(x).|x\rangle_n |b\rangle \mapsto |x\rangle_n |b \oplus f(x)\rangle.

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 identity

Circuiti 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()

GitHub

Modello 2a_1:

     ┌───┐┌───┐
q_0: ┤ X ├┤ X ├
     └───┘└───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

template_nct_2a_2

qiskit.circuit.library.templates.nct.template_nct_2a_2()

GitHub

Modello 2a_2:

q_0: ──■────■──
     ┌─┴─┐┌─┴─┐
q_1: ┤ X ├┤ X ├
     └───┘└───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

template_nct_2a_3

qiskit.circuit.library.templates.nct.template_nct_2a_3()

GitHub

Modello 2a_3:

q_0: ──■────■──
       │    │
q_1: ──■────■──
     ┌─┴─┐┌─┴─┐
q_2: ┤ X ├┤ X ├
     └───┘└───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

template_nct_4a_1

qiskit.circuit.library.templates.nct.template_nct_4a_1()

GitHub

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

QuantumCircuit

template_nct_4a_2

qiskit.circuit.library.templates.nct.template_nct_4a_2()

GitHub

Modello 4a_2:

q_0: ──■─────────■───────
       │         │
q_1: ──■────■────■────■──
       │  ┌─┴─┐  │  ┌─┴─┐
q_2: ──┼──┤ X ├──┼──┤ X ├
     ┌─┴─┐└───┘┌─┴─┐└───┘
q_3: ┤ X ├─────┤ X ├─────
     └───┘     └───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

template_nct_4a_3

qiskit.circuit.library.templates.nct.template_nct_4a_3()

GitHub

Modello 4a_3:

q_0: ──■────■────■────■──
       │  ┌─┴─┐  │  ┌─┴─┐
q_1: ──┼──┤ X ├──┼──┤ X ├
     ┌─┴─┐└───┘┌─┴─┐└───┘
q_2: ┤ X ├─────┤ X ├─────
     └───┘     └───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

template_nct_4b_1

qiskit.circuit.library.templates.nct.template_nct_4b_1()

GitHub

Modello 4b_1:

q_0: ───────■─────────■──
            │         │
q_1: ──■────┼────■────┼──
       │    │    │    │
q_2: ──■────■────■────■──
     ┌─┴─┐┌─┴─┐┌─┴─┐┌─┴─┐
q_3: ┤ X ├┤ X ├┤ X ├┤ X ├
     └───┘└───┘└───┘└───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

template_nct_4b_2

qiskit.circuit.library.templates.nct.template_nct_4b_2()

GitHub

Modello 4b_2:

q_0: ──■─────────■───────
       │         │
q_1: ──■────■────■────■──
     ┌─┴─┐┌─┴─┐┌─┴─┐┌─┴─┐
q_2: ┤ X ├┤ X ├┤ X ├┤ X ├
     └───┘└───┘└───┘└───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

template_nct_5a_1

qiskit.circuit.library.templates.nct.template_nct_5a_1()

GitHub

Modello 5a_1:

q_0: ──■────■────■────■────■──
       │  ┌─┴─┐  │  ┌─┴─┐  │
q_1: ──■──┤ X ├──■──┤ X ├──┼──
     ┌─┴─┐└───┘┌─┴─┐└───┘┌─┴─┐
q_2: ┤ X ├─────┤ X ├─────┤ X ├
     └───┘     └───┘     └───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

template_nct_5a_2

qiskit.circuit.library.templates.nct.template_nct_5a_2()

GitHub

Modello 5a_2:

q_0: ──■─────────■─────────■──
       │  ┌───┐  │  ┌───┐  │
q_1: ──■──┤ X ├──■──┤ X ├──┼──
     ┌─┴─┐└───┘┌─┴─┐└───┘┌─┴─┐
q_2: ┤ X ├─────┤ X ├─────┤ X ├
     └───┘     └───┘     └───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

template_nct_5a_3

qiskit.circuit.library.templates.nct.template_nct_5a_3()

GitHub

Modello 5a_3:

q_0: ───────■─────────■────■──
          ┌─┴─┐     ┌─┴─┐  │
q_1: ──■──┤ X ├──■──┤ X ├──┼──
     ┌─┴─┐└───┘┌─┴─┐└───┘┌─┴─┐
q_2: ┤ X ├─────┤ X ├─────┤ X ├
     └───┘     └───┘     └───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

template_nct_5a_4

qiskit.circuit.library.templates.nct.template_nct_5a_4()

GitHub

Modello 5a_4:

          ┌───┐     ┌───┐
q_0: ──■──┤ X ├──■──┤ X ├
     ┌─┴─┐└───┘┌─┴─┐├───┤
q_1: ┤ X ├─────┤ X ├┤ X ├
     └───┘     └───┘└───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

template_nct_6a_1

qiskit.circuit.library.templates.nct.template_nct_6a_1()

GitHub

Modello 6a_1:

          ┌───┐     ┌───┐     ┌───┐
q_0: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
     ┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_1: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
     └───┘     └───┘     └───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

template_nct_6a_2

qiskit.circuit.library.templates.nct.template_nct_6a_2()

GitHub

Modello 6a_2:

q_0: ──■────■────■────■────■────■──
       │  ┌─┴─┐  │  ┌─┴─┐  │  ┌─┴─┐
q_1: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
     ┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_2: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
     └───┘     └───┘     └───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

template_nct_6a_3

qiskit.circuit.library.templates.nct.template_nct_6a_3()

GitHub

Modello 6a_3:

q_0: ───────■─────────■────■────■──
          ┌─┴─┐     ┌─┴─┐  │  ┌─┴─┐
q_1: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
     ┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_2: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
     └───┘     └───┘     └───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

template_nct_6a_4

qiskit.circuit.library.templates.nct.template_nct_6a_4()

GitHub

Modello 6a_4:

q_0: ───────■──────────────■───────
          ┌─┴─┐     ┌───┐  │  ┌───┐
q_1: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
     ┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_2: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
     └───┘     └───┘     └───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

template_nct_6b_1

qiskit.circuit.library.templates.nct.template_nct_6b_1()

GitHub

Modello 6b_1:

q_0: ──■─────────■────■─────────■──
       │       ┌─┴─┐  │       ┌─┴─┐
q_1: ──■────■──┤ X ├──■────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

template_nct_6b_2

qiskit.circuit.library.templates.nct.template_nct_6b_2()

GitHub

Modello 6b_2:

q_0: ───────■────■─────────■────■──
            │  ┌─┴─┐       │  ┌─┴─┐
q_1: ──■────■──┤ X ├──■────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

template_nct_6c_1

qiskit.circuit.library.templates.nct.template_nct_6c_1()

GitHub

Modello 6c_1:

q_0: ──■─────────■─────────■────■──
       │  ┌───┐  │  ┌───┐  │  ┌─┴─┐
q_1: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
     ┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_2: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
     └───┘     └───┘     └───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

template_nct_7a_1

qiskit.circuit.library.templates.nct.template_nct_7a_1()

GitHub

Modello 7a_1:

     ┌───┐                    ┌───┐
q_0: ┤ X ├──■─────────■────■──┤ X ├──■──
     └─┬─┘┌─┴─┐       │  ┌─┴─┐└─┬─┘  │
q_1: ──■──┤ X ├──■────■──┤ X ├──■────■──
          └───┘┌─┴─┐┌─┴─┐└───┘     ┌─┴─┐
q_2: ──────────┤ X ├┤ X ├──────────┤ X ├
               └───┘└───┘          └───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

template_nct_7b_1

qiskit.circuit.library.templates.nct.template_nct_7b_1()

GitHub

Modello 7b_1:

     ┌───┐                    ┌───┐
q_0: ┤ X ├──■─────────■────■──┤ X ├──■──
     └───┘┌─┴─┐       │  ┌─┴─┐└───┘  │
q_1: ─────┤ X ├──■────■──┤ X ├───────■──
          └───┘┌─┴─┐┌─┴─┐└───┘     ┌─┴─┐
q_2: ──────────┤ X ├┤ X ├──────────┤ X ├
               └───┘└───┘          └───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

template_nct_7c_1

qiskit.circuit.library.templates.nct.template_nct_7c_1()

GitHub

Modello 7c_1:

     ┌───┐                    ┌───┐
q_0: ┤ X ├──■─────────■────■──┤ X ├──■──
     └───┘┌─┴─┐       │  ┌─┴─┐└───┘  │
q_1: ─────┤ X ├──■────■──┤ X ├───────■──
          └─┬─┘┌─┴─┐┌─┴─┐└─┬─┘     ┌─┴─┐
q_2: ───────■──┤ X ├┤ X ├──■───────┤ X ├
               └───┘└───┘          └───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

template_nct_7d_1

qiskit.circuit.library.templates.nct.template_nct_7d_1()

GitHub

Modello 7d_1:

     ┌───┐                    ┌───┐
q_0: ┤ X ├──■─────────■────■──┤ X ├──■──
     └─┬─┘┌─┴─┐       │  ┌─┴─┐└─┬─┘  │
q_1: ──■──┤ X ├──■────■──┤ X ├──■────■──
          └─┬─┘┌─┴─┐┌─┴─┐└─┬─┘     ┌─┴─┐
q_2: ───────■──┤ X ├┤ X ├──■───────┤ X ├
               └───┘└───┘          └───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

template_nct_7e_1

qiskit.circuit.library.templates.nct.template_nct_7e_1()

GitHub

Modello 7e_1:

     ┌───┐                    ┌───┐
q_0: ┤ X ├──■─────────■────■──┤ X ├──■──
     └───┘┌─┴─┐       │  ┌─┴─┐└───┘  │
q_1: ─────┤ X ├───────┼──┤ X ├───────┼──
          └─┬─┘┌───┐┌─┴─┐└─┬─┘     ┌─┴─┐
q_2: ───────■──┤ X ├┤ X ├──■───────┤ X ├
               └───┘└───┘          └───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

template_nct_9a_1

qiskit.circuit.library.templates.nct.template_nct_9a_1()

GitHub

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

QuantumCircuit

template_nct_9c_1

qiskit.circuit.library.templates.nct.template_nct_9c_1()

GitHub

Modello 9c_1:

     ┌───┐     ┌───┐┌───┐     ┌───┐          ┌───┐
q_0: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘
q_1: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

template_nct_9c_2

qiskit.circuit.library.templates.nct.template_nct_9c_2()

GitHub

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

QuantumCircuit

template_nct_9c_3

qiskit.circuit.library.templates.nct.template_nct_9c_3()

GitHub

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

QuantumCircuit

template_nct_9c_4

qiskit.circuit.library.templates.nct.template_nct_9c_4()

GitHub

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

QuantumCircuit

template_nct_9c_5

qiskit.circuit.library.templates.nct.template_nct_9c_5()

GitHub

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

QuantumCircuit

template_nct_9c_6

qiskit.circuit.library.templates.nct.template_nct_9c_6()

GitHub

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

QuantumCircuit

template_nct_9c_7

qiskit.circuit.library.templates.nct.template_nct_9c_7()

GitHub

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

QuantumCircuit

template_nct_9c_8

qiskit.circuit.library.templates.nct.template_nct_9c_8()

GitHub

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

QuantumCircuit

template_nct_9c_9

qiskit.circuit.library.templates.nct.template_nct_9c_9()

GitHub

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

QuantumCircuit

template_nct_9c_10

qiskit.circuit.library.templates.nct.template_nct_9c_10()

GitHub

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

QuantumCircuit

template_nct_9c_11

qiskit.circuit.library.templates.nct.template_nct_9c_11()

GitHub

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

QuantumCircuit

template_nct_9c_12

qiskit.circuit.library.templates.nct.template_nct_9c_12()

GitHub

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

QuantumCircuit

template_nct_9d_1

qiskit.circuit.library.templates.nct.template_nct_9d_1()

GitHub

Modello 9d_1:

               ┌───┐          ┌───┐          ┌───┐
q_0: ──■───────┤ X ├───────■──┤ X ├───────■──┤ X ├
     ┌─┴─┐┌───┐└─┬─┘┌───┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘
q_1: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

template_nct_9d_2

qiskit.circuit.library.templates.nct.template_nct_9d_2()

GitHub

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

QuantumCircuit

template_nct_9d_3

qiskit.circuit.library.templates.nct.template_nct_9d_3()

GitHub

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

QuantumCircuit

template_nct_9d_4

qiskit.circuit.library.templates.nct.template_nct_9d_4()

GitHub

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

QuantumCircuit

template_nct_9d_5

qiskit.circuit.library.templates.nct.template_nct_9d_5()

GitHub

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

QuantumCircuit

template_nct_9d_6

qiskit.circuit.library.templates.nct.template_nct_9d_6()

GitHub

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

QuantumCircuit

template_nct_9d_7

qiskit.circuit.library.templates.nct.template_nct_9d_7()

GitHub

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

QuantumCircuit

template_nct_9d_8

qiskit.circuit.library.templates.nct.template_nct_9d_8()

GitHub

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

QuantumCircuit

template_nct_9d_9

qiskit.circuit.library.templates.nct.template_nct_9d_9()

GitHub

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

QuantumCircuit

template_nct_9d_10

qiskit.circuit.library.templates.nct.template_nct_9d_10()

GitHub

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

QuantumCircuit

Circuiti modello Clifford

Circuiti modello su porte di Clifford.

clifford_2_1

qiskit.circuit.library.clifford_2_1()

GitHub

Modello Clifford 2_1:

q_0: ─■──■─
      │  │
q_1: ─■──■─

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

clifford_2_2

qiskit.circuit.library.clifford_2_2()

GitHub

Modello Clifford 2_2:

q_0: ──■────■──
     ┌─┴─┐┌─┴─┐
q_1: ┤ X ├┤ X ├
     └───┘└───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

clifford_2_3

qiskit.circuit.library.clifford_2_3()

GitHub

Modello Clifford 2_3:

     ┌───┐┌───┐
q_0: ┤ H ├┤ H ├
     └───┘└───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

clifford_2_4

qiskit.circuit.library.clifford_2_4()

GitHub

Modello Clifford 2_4:

q_0: ─X──X─
      │  │
q_1: ─X──X─

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

clifford_3_1

qiskit.circuit.library.clifford_3_1()

GitHub

Modello Clifford 3_1:

     ┌───┐┌───┐┌───┐
q_0: ┤ S ├┤ S ├┤ Z ├
     └───┘└───┘└───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

clifford_4_1

qiskit.circuit.library.clifford_4_1()

GitHub

Modello Clifford 4_1:

          ┌───┐
q_0: ──■──┤ X ├──■───X─
     ┌─┴─┐└─┬─┘┌─┴─┐ │
q_1: ┤ X ├──■──┤ X ├─X─
     └───┘     └───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

clifford_4_2

qiskit.circuit.library.clifford_4_2()

GitHub

Modello Clifford 4_2:

q_0: ───────■────────■─
     ┌───┐┌─┴─┐┌───┐ │
q_1: ┤ H ├┤ X ├┤ H ├─■─
     └───┘└───┘└───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

clifford_4_3

qiskit.circuit.library.clifford_4_3()

GitHub

Modello Clifford 4_3:

     ┌───┐     ┌─────┐
q_0: ┤ S ├──■──┤ SDG ├──■──
     └───┘┌─┴─┐└─────┘┌─┴─┐
q_1: ─────┤ X ├───────┤ X ├
          └───┘       └───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

clifford_4_4

qiskit.circuit.library.clifford_4_4()

GitHub

Modello Clifford 4_4:

     ┌───┐   ┌─────┐
q_0: ┤ S ├─■─┤ SDG ├─■─
     └───┘ │ └─────┘ │
q_1: ──────■─────────■─

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

clifford_5_1

qiskit.circuit.library.clifford_5_1()

GitHub

Modello Clifford 5_1:

q_0: ──■─────────■─────────■──
     ┌─┴─┐     ┌─┴─┐       │
q_1: ┤ X ├──■──┤ X ├──■────┼──
     └───┘┌─┴─┐└───┘┌─┴─┐┌─┴─┐
q_2: ─────┤ X ├─────┤ X ├┤ X ├
          └───┘     └───┘└───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

clifford_6_1

qiskit.circuit.library.clifford_6_1()

GitHub

Modello Clifford 6_1:

     ┌───┐     ┌───┐┌───┐
q_0: ┤ H ├──■──┤ H ├┤ X ├
     ├───┤┌─┴─┐├───┤└─┬─┘
q_1: ┤ H ├┤ X ├┤ H ├──■──
     └───┘└───┘└───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

clifford_6_2

qiskit.circuit.library.clifford_6_2()

GitHub

Modello Clifford 6_2:

     ┌───┐
q_0: ┤ S ├──■───────────■───■─
     ├───┤┌─┴─┐┌─────┐┌─┴─┐ │
q_1: ┤ S ├┤ X ├┤ SDG ├┤ X ├─■─
     └───┘└───┘└─────┘└───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

clifford_6_3

qiskit.circuit.library.clifford_6_3()

GitHub

Modello Clifford 6_3:

           ┌───┐     ┌───┐
q_0: ─X──■─┤ H ├──■──┤ X ├─────
      │  │ └───┘┌─┴─┐└─┬─┘┌───┐
q_1: ─X──■──────┤ X ├──■──┤ H ├
                └───┘     └───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

clifford_6_4

qiskit.circuit.library.clifford_6_4()

GitHub

Modello Clifford 6_4:

global phase: 7π/4
   ┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐
q: ┤ S ├┤ H ├┤ S ├┤ H ├┤ S ├┤ H ├
   └───┘└───┘└───┘└───┘└───┘└───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

clifford_6_5

qiskit.circuit.library.clifford_6_5()

GitHub

Modello Clifford 6_5:

              ┌───┐
q_0: ─■───■───┤ S ├───■───────
      │ ┌─┴─┐┌┴───┴┐┌─┴─┐┌───┐
q_1: ─■─┤ X ├┤ SDG ├┤ X ├┤ S ├
        └───┘└─────┘└───┘└───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

clifford_8_1

qiskit.circuit.library.clifford_8_1()

GitHub

Modello Clifford 8_1:

               ┌───┐ ┌───┐ ┌───┐┌─────┐
q_0: ──■───────┤ X ├─┤ S ├─┤ X ├┤ SDG ├
     ┌─┴─┐┌───┐└─┬─┘┌┴───┴┐└─┬─┘└┬───┬┘
q_1: ┤ X ├┤ H ├──■──┤ SDG ├──■───┤ H ├─
     └───┘└───┘     └─────┘      └───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

clifford_8_2

qiskit.circuit.library.clifford_8_2()

GitHub

Modello Clifford 8_2:

                     ┌───┐
q_0: ──■─────────■───┤ S ├───■────────────
     ┌─┴─┐┌───┐┌─┴─┐┌┴───┴┐┌─┴─┐┌───┐┌───┐
q_1: ┤ X ├┤ H ├┤ X ├┤ SDG ├┤ X ├┤ S ├┤ H ├
     └───┘└───┘└───┘└─────┘└───┘└───┘└───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

clifford_8_3

qiskit.circuit.library.clifford_8_3()

GitHub

Modello Clifford 8_3:

q_0: ─────────────────■───────────────────────■──
     ┌───┐┌───┐┌───┐┌─┴─┐┌─────┐┌───┐┌─────┐┌─┴─┐
q_1: ┤ S ├┤ H ├┤ S ├┤ X ├┤ SDG ├┤ H ├┤ SDG ├┤ X ├
     └───┘└───┘└───┘└───┘└─────┘└───┘└─────┘└───┘

Risultati

come un circuito quantistico.

Tipo di restituzione

QuantumCircuit

Circuiti modello RZXGate

Circuiti modello con RZXGate.

rzx_yz

qiskit.circuit.library.rzx_yz(theta=None)

GitHub

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)

GitHub

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)

GitHub

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)

GitHub

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)

GitHub

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)

GitHub

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)

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.