PauliProductMeasurement
class qiskit.circuit.library.PauliProductMeasurement(pauli, label=None)
Basi: Instruction
Istruzioni per la misurazione dei prodotti Pauli.
La misurazione del prodotto di Pauli è un'operazione fondamentale nell'informatica quantistica tollerante ai guasti. Matematicamente, corrisponde a una misurazione proiettiva congiunta su più qubit, dove l'osservabile misurato è un prodotto tensoriale di operatori di Pauli. Il risultato di questa misurazione è un singolo autovalore, o , che indica lo stato proprio del prodotto di Pauli.
Riferimenti:
[1] Daniel Litinski. "Un gioco di codici superficiali: calcolo quantistico su larga scala con chirurgia reticolare" arXiv:1808.02892
Parametri
- pauli (qiskit.quantum_info.Pauli) – Un prodotto tensoriale di operatori di Pauli che definisce la misurazione, ad esempio
Pauli("XY")oPauli("-XYIZ"). L'operatore di Pauli non è consentito. Il Pauli può includere una fase di , ma non o . - label (str | None) – Etichetta opzionale per il gate da visualizzare nelle visualizzazioni dei circuiti. Per impostazione predefinita, l'etichetta è impostata su
PPM(<pauli label>).
Sebbene i "I"termini Pauli siano pienamente supportati, si raccomanda di rimuovere "I"i termini Pauli quando si crea PauliProductMeasurement un'istruzione, poiché ciò non modifica la misurazione effettiva ma specifica l'istruzione su un insieme più piccolo di qubit.
Aumenti
CircuitError – Se l’operatore di Pauli è l’operatore identitario, ha dimensione 0 o una fase complessa.
Parametri
- pauli (qiskit.quantum_info.Pauli)
- label (str | None)
Attributi
base_class
Ottieni la classe base di questa istruzione. Questo è garantito nell'albero di ereditarietà di self.
La "classe base" di un'istruzione è la classe più bassa nel suo albero di ereditarietà con cui l'oggetto deve essere considerato interamente compatibile per _tutte_ le applicazioni circuitali. Ciò significa in genere che la sottoclasse è definita esclusivamente per offrire una sorta di comodità al programmatore rispetto alla classe base, mentre la classe base è la classe "vera" dal punto di vista comportamentale. In particolare, non si dovrebbe sovrascrivere base_class se si sta definendo una versione personalizzata di un'istruzione che verrà implementata in modo diverso dall'hardware, come una strategia di misurazione alternativa o una versione di un gate parametrizzato con un particolare insieme di parametri allo scopo di distinguerlo in un Target dal gate completamente parametrizzato.
Questo è spesso esattamente equivalente a type(obj), tranne nel caso di istanze singleton delle istruzioni della libreria standard. Queste istanze singleton sono sottoclassi speciali della loro classe base e questa proprietà restituirà tale base. Ad esempio:
>>> isinstance(XGate(), XGate)
True
>>> type(XGate()) is XGate
False
>>> XGate().base_class is XGate
TrueIn generale, non ci si dovrebbe basare sulla classe precisa di un'istruzione; all'interno di un dato circuito, ci si aspetta che Instruction.name sia un discriminatore più adatto nella maggior parte delle situazioni.
decompositions
Ottieni le decomposizioni dell'istruzione dall' SessionEquivalenceLibrary (Compatibilità del processore).
definition
Definizione di ritorno in termini di altri gate di base.
label
Etichetta con le istruzioni per la restituzione
mutable
Questa istanza è un'istanza unica mutabile o no?
Se questo attributo è False l'istanza gate è un singleton condiviso e non è mutabile.
name
Restituisci il nome.
num_clbits
Restituisce il numero di clbit.
num_qubits
Restituisce il numero di qubit.
params
I parametri di questo Instruction. Idealmente si tratterà di angoli di cancello.
Metodi
add_decomposition
add_decomposition(decomposition)
Aggiungi una scomposizione dell'istruzione all' SessionEquivalenceLibrary (Compendio delle istruzioni e delle operazioni).
broadcast_arguments
broadcast_arguments(qargs, cargs)
Convalida degli argomenti.
Parametri
- qargs (List) – Elenco degli argomenti relativi ai bit quantistici.
- cargs (List) – Elenco degli argomenti bit classici.
Attese
Tuple(List, List) – Una tupla con argomenti singoli.
Aumenti
CircuitError – Se l'input non è valido. Ad esempio, il numero di argomenti non corrisponde a quanto previsto dal gate.
copy
copy(name=None)
Copia delle istruzioni.
Parametri
name (str) – nome da assegnare al circuito copiato, se None allora il nome rimane lo stesso.
Risultati
una copia delle istruzioni attuali, con il nome aggiornato se è stato fornito
Tipo di restituzione
inverse
inverse(annotated=False)
Impedisce la chiamata inverse su un'istruzione PauliProductMeasurement.
is_parameterized
pauli
pauli()
Restituisce il prodotto di Pauli ottenuto tramite questa misurazione.
Questo è un accessore pubblico che ricostruisce e restituisce il Pauli corrispondente al prodotto tensoriale sottostante degli operatori di Pauli di questa istruzione, inclusa la sua fase globale pari a +1 o -1.
Risultati
Il prodotto di Pauli misurato da questa istruzione.
Tipo di restituzione
repeat
repeat(n)
Crea un'istruzione con self la ripetizione di « » volte.
Parametri
n (int) – Numero di volte in cui ripetere l'istruzione
Risultati
Contenente la definizione.
Tipo di restituzione
Aumenti
CircuitError – Se n < 1.
reverse_ops
reverse_ops()
Per un'istruzione composita, invertire l'ordine delle sottoistruzioni.
Questo viene fatto invertendo ricorsivamente tutte le sottoistruzioni. Non inverte alcun gate.
Risultati
una nuova istruzione con
sottoistruzioni invertite.
Tipo di restituzione
soft_compare
soft_compare(other)
Confronto morbido tra cancelli. I loro nomi, il numero di qubit e il numero di bit classici devono corrispondere. Il numero di parametri deve corrispondere. Ogni parametro viene confrontato. Se uno è un ParameterExpression, allora non viene preso in considerazione.
Parametri
other (instruction) – altre istruzioni.
Risultati
sono uguali a se stessi e agli altri fino alle espressioni dei parametri.
Tipo di restituzione
to_mutable
to_mutable()
Restituisce una copia modificabile di questo gate.
Questo metodo restituirà una nuova copia modificabile di questa istanza di gate. Se viene utilizzata un'istanza singleton, questa sarà una nuova istanza unica che può essere modificata. Se l'istanza è già mutabile, sarà una copia profonda di tale istanza.
validate_parameter
validate_parameter(parameter)
Il parametro di istruzione non ha alcuna convalida o normalizzazione.