Skip to main content
IBM Quantum Platform

PauliProductMeasurement

class qiskit.circuit.library.PauliProductMeasurement(pauli, label=None)

GitHub

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, +1+1 o 1-1, 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") o Pauli("-XYIZ"). L'operatore di Pauli non è consentito. Il Pauli può includere una fase di 1-1, ma non ii o i-i.
  • label (str | None) – Etichetta opzionale per il gate da visualizzare nelle visualizzazioni dei circuiti. Per impostazione predefinita, l'etichetta è impostata su PPM(<pauli label>).
Nota

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


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
True

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

GitHub

Aggiungi una scomposizione dell'istruzione all' SessionEquivalenceLibrary (Compendio delle istruzioni e delle operazioni).

broadcast_arguments

broadcast_arguments(qargs, cargs)

GitHub

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)

GitHub

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

qiskit.circuit.Instruction

inverse

inverse(annotated=False)

GitHub

Impedisce la chiamata inverse su un'istruzione PauliProductMeasurement.

is_parameterized

is_parameterized()

GitHub

Restituisce se il Instruction contiene parametri di compilazione.

pauli

pauli()

GitHub

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

Pauli

repeat

repeat(n)

GitHub

Crea un'istruzione con self la ripetizione di « nn » volte.

Parametri

n (int) – Numero di volte in cui ripetere l'istruzione

Risultati

Contenente la definizione.

Tipo di restituzione

qiskit.circuit.Instruction

Aumenti

CircuitError – Se n < 1.

reverse_ops

reverse_ops()

GitHub

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

qiskit.circuit.Instruction

soft_compare

soft_compare(other)

GitHub

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

bool

to_mutable

to_mutable()

GitHub

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)

GitHub

Il parametro di istruzione non ha alcuna convalida o normalizzazione.

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