Skip to main content
IBM Quantum Platform

controlli_di_inversione_di_bit

qiskit_addon_utils.noise_management.bit_flip_checks

Funzioni e classi per la post-selezione tramite controlli di inversione dei bit del circuito.

PostSelectionSummary

class PostSelectionSummary(primary_cregs, measure_map, edges, *, measure_map_ps=None, measure_map_pre=None, post_check_suffix='_ps', pre_check_suffix='_pre', spectator_cregs=None)

GitHub

Basi: object

Una classe di supporto per memorizzare le proprietà di un circuito quantistico necessarie per effettuare la post-selezione sulla base dei controlli di inversione di bit.

Inizializza un PostSelectionSummary oggetto.

Parametri

  • primary_cregs (set[str]) – I nomi dei registri classici “primari”, ovvero quelli che non terminano con i suffissi relativi ai controlli pre- e post-circuito.
  • measure_map (dict[int, tuple[str, int]]) – Una corrispondenza tra gli indici dei qubit nel registro e i clbit che definiscono in modo univoco una misurazione su tali qubit (misurazioni primarie).
  • edges (set[frozenset[int]]) – Un elenco di tuple che definiscono coppie di qubit adiacenti.
  • measure_map_ps (dict[int, tuple[str, int]] | None) – Una mappa opzionale per le misurazioni di controllo post-circuito.
  • measure_map_pre (dict[int, tuple[str, int]] | None) – Una mappa opzionale per le misurazioni di controllo preliminari al circuito.
  • post_check_suffix (str) – Il suffisso dei registri di controllo post-circuito.
  • pre_check_suffix (str) – Il suffisso dei registri di controllo pre-circuito.
  • spectator_cregs (set[str] | None) – Nomi dei registri primari che contengono le misurazioni degli spettatori (la prima metà del controllo di parità degli spettatori generato da AddSpectatorPostCircuitBitFlipChecks).

edges

Tipo: set[frozenset[int]]

Un insieme di spigoli da prendere in considerazione per la post-selezione basata sugli spigoli.

from_circuit

classmethod from_circuit(circuit, coupling_map, *, post_check_suffix='_ps', pre_check_suffix='_pre', spectator_cregs=None)

GitHub

Inizializzazione a partire dai circuiti quantistici.

Parametri

  • circuit (QuantumCircuit) – Il circuito che effettua i controlli anti-bit-flip...
  • coupling_map (CouplingMap |list[tuple[int, int]]) – Una mappa di accoppiamento o un elenco di tuple che indicano coppie di qubit adiacenti.
  • post_check_suffix (str) – Un suffisso fisso per i registri classici di controllo post-circuito.
  • pre_check_suffix (str) – Un suffisso fisso per i registri classici di controllo pre-circuito.
  • spectator_cregs (set[str] | list[str] | None) – Nomi dei registri principali che contengono le misurazioni degli spettatori. Il valore predefinito è ["spec"], che corrisponde al nome predefinito utilizzato da AddSpectatorPostCircuitBitFlipChecks.

Tipo di restituzione

PostSelectionSummary

measure_map

Tipo: dict[int, tuple[str, int]]

Una mappa dagli indici dei qubit agli indici dei registri e dei clbit utilizzati per misurare tali qubit.

measure_map_pre

Tipo: dict[int, tuple[str, int]]

Una mappa dagli indici dei qubit agli indici dei registri e dei clbit per le misurazioni di controllo pre-circuito.

measure_map_ps

Tipo: dict[int, tuple[str, int]]

Una mappa dagli indici dei qubit agli indici dei registri e dei clbit per le misurazioni di verifica post-circuito.

post_check_suffix

Tipo: str

Il suffisso dei registri di controllo post-circuito.

pre_check_suffix

Tipo: str

Il suffisso dei registri di controllo pre-circuito.

primary_cregs

Tipo: set[str]

I nomi dei principali registri classici.

spectator_cregs

Tipo: set[str]

Sottoinsieme di primary_cregs che contengono le misurazioni degli spettatori.

Utilizzare primary_cregs - spectator_cregs per ottenere i registri primari contenenti solo i dati, ad esempio quando si calcolano gli osservabili a partire da shot filtrati.

PostSelector

class PostSelector(summary)

GitHub

Basi: object

Una classe per elaborare i risultati dei controlli di bit-flip.

Inizializza un PostSelector oggetto.

Parametri

summary (PostSelectionSummary) – Una sintesi del circuito che include i controlli di bit-flip.

compute_mask

compute_mask(result, strategy=PostSelectionStrategy.NODE, *, mode='post')

GitHub

Calcolare le maschere booleane che indicano quali riprese devono essere conservate o scartate.

Per definizione, la maschera restituita ha la stessa forma degli array presenti nel risultato, ma con una dimensione in meno (l'ultimo asse di ogni array, relativo ai clbit, non è presente nella maschera).

Parametri

  • result (dict[str, ndarray[tuple[int, ...], dtype[bool]]]) – Il risultato da sottoporre a post-elaborazione. Deve trattarsi di un dizionario che associa i nomi dei registri ad array di valori booleani.
  • strategy (Literal['node', 'edge'] | ~qiskit_addon_utils.noise_management.bit_flip_checks.post_selector.PostSelectionStrategy) – La strategia di post-selezione (“nodo” o “arco”).
  • mode (Literal['post', 'pre', 'both']) – Quale tipo di post-selezione applicare: - “post”: applicare solo i controlli post-circuito - “pre”: applicare solo i controlli pre-circuito - “both”: applicare sia i controlli pre-circuito che quelli post-circuito

Risultati

Una maschera booleana in cui "True" indica le inquadrature da conservare, mentre "False" indica quelle da scartare.

Aumenti

ValueError – Se la modalità richiesta non è disponibile (ad esempio, non sono presenti misurazioni di pre-controllo nel circuito, ma è stata richiesta la modalità “pre”).

Tipo di restituzione

ndarray [ tuple [ int, …], dtype [ bool ]]

from_circuit

classmethod from_circuit(circuit, coupling_map, *, post_check_suffix='_ps', pre_check_suffix='_pre', spectator_cregs=None)

GitHub

Inizializzazione da un circuito quantistico.

Parametri

  • circuit (QuantumCircuit) – Il circuito che include i controlli anti-bit-flip.
  • coupling_map (CouplingMap |list[tuple[int, int]]) – Una mappa di accoppiamento o un elenco di tuple che indicano coppie di qubit adiacenti.
  • post_check_suffix (str) – Un suffisso fisso per i registri classici associato ai controlli post-circuito.
  • pre_check_suffix (str) – Un suffisso fisso per i registri classici associato ai controlli pre-circuito.
  • spectator_cregs (set[str] | list[str] | None) – Nomi dei registri che contengono le misurazioni degli spettatori (la prima metà del controllo di parità degli spettatori generato da AddSpectatorPostCircuitBitFlipChecks). Il valore predefinito è ["spec"] per corrispondere a AddSpectatorPostCircuitBitFlipChecks.

Tipo di restituzione

PostSelector

summary

Tipo: PostSelectionSummary

Una sintesi del circuito che include i controlli di bit-flip.

PostSelectionStrategy

class PostSelectionStrategy(value)

GitHub

Basi: str, Enum

Le strategie di post-selezione supportate.

EDGE

Valore predefinito: 'edge'

Scartare ogni risultato in cui esista una coppia di qubit adiacenti per i quali entrambi i controlli risultino falliti.

NODO

Valore predefinito: 'node'

Scartare ogni tiro in cui uno o più controlli non vanno a buon fine.

capitalize

capitalize()

Restituisce una versione con le lettere maiuscole della stringa.

Più precisamente, fai in modo che la prima lettera sia maiuscola e le altre minuscole.

casefold

casefold()

Restituisce una versione della stringa adatta ai confronti che non tengono conto delle maiuscole e minuscole.

center

center(width, fillchar=' ', /)

Restituisce una stringa centrata di lunghezza width.

Il riempimento viene effettuato utilizzando il carattere di riempimento specificato (il valore predefinito è uno spazio).

count

count(sub[, start[, end]]) → int

Restituisce il numero di occorrenze non sovrapposte della sottostringa sub nella stringa [Sstart:end]. Gli argomenti opzionali start e end vengono interpretati come nella notazione a intervallo.

encode

encode(encoding='utf-8', errors='strict')

Codifica la stringa utilizzando il codec registrato per la codifica.

codifica

Il formato di codifica in cui codificare la stringa.

errori

Lo schema di gestione degli errori da utilizzare in caso di errori di codifica. L'impostazione predefinita è "strict", il che significa che gli errori di codifica generano un'eccezione di tipo " UnicodeEncodeError ". Altri valori possibili sono “ignore”, “replace” e “xmlcharrefreplace”, oltre a qualsiasi altro nome registrato su codecs.register_error in grado di gestire UnicodeEncodeErrors.

endswith

endswith(suffix[, start[, end]]) → bool

Restituisce True se S termina con il suffisso specificato, altrimenti False. Con avvio opzionale, eseguire il test S a partire da quella posizione. Con l'opzione "end", smetti di confrontare S in quella posizione. Il suffisso può anche essere una tupla di stringhe da provare.

expandtabs

expandtabs(tabsize=8)

Restituisce una copia in cui tutti i caratteri di tabulazione sono sostituiti da spazi.

Se non viene specificata la dimensione della tabulazione, viene utilizzata una dimensione predefinita di 8 caratteri.

find

find(sub[, start[, end]]) → int

Restituisce l'indice più basso in S in cui si trova la sottostringa sub, a condizione che sub sia contenuta nell'intervallo [Sstart:end]. Gli argomenti opzionali start e end vengono interpretati come nella notazione a intervallo.

In caso di errore, restituisce un valore " -1 ".

format

format(*args, **kwargs) → str

Restituisce una versione formattata di S, utilizzando le sostituzioni da args e kwargs. Le sostituzioni sono contrassegnate da parentesi graffe (“ {’ and ‘} ”).

format_map

format_map(mapping) → str

Restituisce una versione formattata di S, utilizzando le sostituzioni derivanti dalla mappatura. Le sostituzioni sono contrassegnate da parentesi graffe (“ {’ and ‘} ”).

index

index(sub[, start[, end]]) → int

Restituisce l'indice più basso in S in cui si trova la sottostringa sub, a condizione che sub sia contenuta nell'intervallo [Sstart:end]. Gli argomenti opzionali start e end vengono interpretati come nella notazione a intervallo.

Genera un'eccezione di tipo ValueError quando la sottostringa non viene trovata.

isalnum

isalnum()

Restituisce True se la stringa è alfanumerica, False in caso contrario.

Una stringa è alfanumerica se tutti i caratteri che la compongono sono alfanumerici e se contiene almeno un carattere.

isalpha

isalpha()

Restituisce True se la stringa è una stringa alfabetica, False in caso contrario.

Una stringa è alfabetica se tutti i caratteri che la compongono sono alfabetici e se contiene almeno un carattere.

isascii

isascii()

Restituisce True se tutti i caratteri della stringa sono ASCII, altrimenti False.

I caratteri ASCII hanno punti di codice compresi nell'intervallo U+0000-U+007F. Anche una stringa vuota è in formato ASCII.

isdecimal

isdecimal()

Restituisce True se la stringa è una stringa decimale, False in caso contrario.

Una stringa è una stringa decimale se tutti i caratteri che la compongono sono decimali e se contiene almeno un carattere.

isdigit

isdigit()

Restituisce True se la stringa è composta da cifre, altrimenti False.

Una stringa è una stringa di cifre se tutti i caratteri che la compongono sono cifre e se contiene almeno un carattere.

isidentifier

isidentifier()

Restituisce True se la stringa è un identificatore valido di Python, altrimenti restituisce False.

Chiamare la funzione keyword.iskeyword per verificare se la stringa s è un identificatore riservato, come ad esempio “def” o “class”.

islower

islower()

Restituisce True se la stringa è composta da caratteri minuscoli, altrimenti restituisce False.

Una stringa è in minuscolo se tutti i caratteri con distinzione tra maiuscole e minuscole presenti nella stringa sono in minuscolo e se nella stringa è presente almeno un carattere con distinzione tra maiuscole e minuscole.

isnumeric

isnumeric()

Restituisce True se la stringa è una stringa numerica, False in caso contrario.

Una stringa è numerica se tutti i caratteri che la compongono sono numerici e se contiene almeno un carattere.

isprintable

isprintable()

Restituisce True se la stringa è stampabile, altrimenti False.

Una stringa è stampabile se tutti i suoi caratteri sono considerati stampabili nella funzione repr() oppure se è vuota.

isspace

isspace()

Restituisce True se la stringa è composta esclusivamente da spazi bianchi, altrimenti restituisce False.

Una stringa è costituita da spazi bianchi se tutti i caratteri che la compongono sono spazi bianchi e se contiene almeno un carattere.

istitle

istitle()

Restituisce True se la stringa è scritta con le iniziali maiuscole, altrimenti False.

In una stringa con caratteri maiuscoli e minuscoli misti, i caratteri maiuscoli e quelli in maiuscolo possono seguire solo caratteri non maiuscoli, mentre i caratteri minuscoli possono seguire solo quelli maiuscoli.

isupper

isupper()

Restituisce True se la stringa è composta da caratteri maiuscoli, altrimenti restituisce False.

Una stringa è in maiuscolo se tutti i caratteri con distinzione tra maiuscolo e minuscolo presenti nella stringa sono in maiuscolo e se nella stringa è presente almeno un carattere con distinzione tra maiuscolo e minuscolo.

join

join(iterable, /)

Concatenare un numero qualsiasi di stringhe.

La stringa il cui metodo viene chiamato viene inserita tra ciascuna delle stringhe specificate. Il risultato viene restituito come una nuova stringa.

Esempio: ‘.’.join( [‘ab’, ‘pq’, ‘rs’] ) -> ‘ ab.pq.rs ’

ljust

ljust(width, fillchar=' ', /)

Restituisce una stringa allineata a sinistra di lunghezza width.

Il riempimento viene effettuato utilizzando il carattere di riempimento specificato (il valore predefinito è uno spazio).

lower

lower()

Restituisce una copia della stringa convertita in minuscolo.

lstrip

lstrip(chars=None, /)

Restituisce una copia della stringa da cui sono stati rimossi gli spazi iniziali.

Se viene specificato chars e il valore non è None, rimuovere invece i caratteri presenti in chars.

maketrans

static maketrans()

Restituisce una tabella di traduzione utilizzabile con la funzione str.translate ().

Se è presente un solo argomento, deve trattarsi di un dizionario che associa ordinali Unicode (numeri interi) o caratteri a ordinali Unicode, stringhe o None. I caratteri saranno quindi convertiti in valori ordinali. Se sono presenti due argomenti, questi devono essere stringhe di uguale lunghezza; nel dizionario risultante, ogni carattere di x verrà associato al carattere che si trova nella stessa posizione in y. Se è presente un terzo argomento, deve trattarsi di una stringa, i cui caratteri verranno sostituiti con None nel risultato.

partition

partition(sep, /)

Dividi la stringa in tre parti utilizzando il separatore indicato.

In questo modo verrà cercato il separatore nella stringa. Se viene individuato il separatore, restituisce una tuple di 3 elementi contenente la parte precedente al separatore, il separatore stesso e la parte successiva ad esso.

Se il separatore non viene trovato, restituisce una tuple di tre elementi contenente la stringa originale e due stringhe vuote.

removeprefix

removeprefix(prefix, /)

Restituisce una stringa dalla quale è stata rimossa la stringa prefisso specificata, se presente.

Se la stringa inizia con la stringa prefisso, restituisci [stringlen(prefisso):]. Altrimenti, restituisci una copia della stringa originale.

removesuffix

removesuffix(suffix, /)

Restituisce una stringa da cui è stata rimossa la stringa di suffisso specificata, se presente.

Se la stringa termina con la stringa "suffix" e tale suffisso non è vuoto, restituisci "stringa [" - len(suffix)]. Altrimenti, restituisci una copia della stringa originale.

replace

replace(old, new, count=-1, /)

Restituisce una copia in cui tutte le occorrenze della sottostringa "old" sono state sostituite con "new".

conteggio

Numero massimo di occorrenze da sostituire. " -1 " (valore predefinito) indica la sostituzione di tutte le occorrenze.

Se viene specificato l'argomento opzionale count, vengono sostituite solo le prime count occorrenze.

rfind

rfind(sub[, start[, end]]) → int

Restituisce l'indice più alto in S in cui si trova la sottostringa sub, a condizione che sub sia contenuta nell'intervallo [Sstart:end]. Gli argomenti opzionali start e end vengono interpretati come nella notazione a intervallo.

In caso di errore, restituisce un valore " -1 ".

rindex

rindex(sub[, start[, end]]) → int

Restituisce l'indice più alto in S in cui si trova la sottostringa sub, a condizione che sub sia contenuta nell'intervallo [Sstart:end]. Gli argomenti opzionali start e end vengono interpretati come nella notazione a intervallo.

Genera un'eccezione di tipo ValueError quando la sottostringa non viene trovata.

rjust

rjust(width, fillchar=' ', /)

Restituisce una stringa allineata a destra di lunghezza width.

Il riempimento viene effettuato utilizzando il carattere di riempimento specificato (il valore predefinito è uno spazio).

rpartition

rpartition(sep, /)

Dividi la stringa in tre parti utilizzando il separatore indicato.

In questo modo verrà cercato il separatore nella stringa, partendo dalla fine. Se viene individuato il separatore, restituisce una tuple di 3 elementi contenente la parte precedente al separatore, il separatore stesso e la parte successiva ad esso.

Se il separatore non viene trovato, restituisce una tuple di tre elementi contenente due stringhe vuote e la stringa originale.

rsplit

rsplit(sep=None, maxsplit=-1)

Restituisce un elenco delle sottostringhe presenti nella stringa, utilizzando "sep" come stringa separatrice.

Set

Il separatore utilizzato per suddividere la stringa.

Se impostato su Nessuno (valore predefinito), effettuerà la suddivisione in base a qualsiasi carattere di spazio bianco (compresi \n, \r, \t, \f e gli spazi) ed eliminerà le stringhe vuote dal risultato.

maxsplit

Numero massimo di suddivisioni (a partire da sinistra). " -1 " (valore predefinito) indica che non vi è alcun limite.

La suddivisione inizia dalla fine della stringa e procede verso l'inizio.

rstrip

rstrip(chars=None, /)

Restituisce una copia della stringa da cui sono stati rimossi gli spazi finali.

Se viene specificato chars e il valore non è None, rimuovere invece i caratteri presenti in chars.

split

split(sep=None, maxsplit=-1)

Restituisce un elenco delle sottostringhe presenti nella stringa, utilizzando "sep" come stringa separatrice.

Set

Il separatore utilizzato per suddividere la stringa.

Se impostato su Nessuno (valore predefinito), effettuerà la suddivisione in base a qualsiasi carattere di spazio bianco (compresi \n, \r, \t, \f e gli spazi) ed eliminerà le stringhe vuote dal risultato.

maxsplit

Numero massimo di suddivisioni (a partire da sinistra). " -1 " (valore predefinito) indica che non vi è alcun limite.

Si noti che la funzione str.split () è utile soprattutto per i dati che sono stati deliberatamente delimitati. Nel caso di testo naturale che include segni di punteggiatura, si consiglia di utilizzare il modulo delle espressioni regolari.

splitlines

splitlines(keepends=False)

Restituisce un elenco delle righe presenti nella stringa, separandole in base ai confini di riga.

Le interruzioni di riga non vengono incluse nell'elenco risultante, a meno che non sia specificato il parametro keepends con valore true.

startswith

startswith(prefix[, start[, end]]) → bool

Restituisce True se S inizia con il prefisso specificato, altrimenti False. Con avvio opzionale, eseguire il test S a partire da quella posizione. Con l'opzione "end", smetti di confrontare S in quella posizione. Il prefisso può anche essere una tupla di stringhe da provare.

strip

strip(chars=None, /)

Restituisce una copia della stringa da cui sono stati rimossi gli spazi bianchi iniziali e finali.

Se viene specificato chars e il valore non è None, rimuovere invece i caratteri presenti in chars.

swapcase

swapcase()

Converti i caratteri maiuscoli in minuscoli e quelli minuscoli in maiuscoli.

title

title()

Restituisce una versione della stringa in cui ogni parola è scritta con l'iniziale maiuscola.

Più precisamente, le parole iniziano con lettere maiuscole e tutte le altre lettere sono minuscole.

translate

translate(table, /)

Sostituisci ogni carattere della stringa utilizzando la tabella di traduzione fornita.

tabella

Tabella di traduzione, che deve rappresentare una mappatura da ordinali Unicode a ordinali Unicode, stringhe o None.

La tabella deve implementare la ricerca e l'indicizzazione tramite __getitem__, ad esempio un dizionario o una lista. Se questa operazione genera un'eccezione di tipo LookupError,, il carattere rimane invariato. I caratteri associati a "None" vengono eliminati.

upper

upper()

Restituisce una copia della stringa convertita in maiuscolo.

zfill

zfill(width, /)

Aggiungi degli zeri a sinistra di una stringa numerica, in modo da riempire un campo della larghezza specificata.

La stringa non viene mai troncata.

XSlowGate

class XSlowGate(label='xslow', xslow_gate_name='xslow')

GitHub

Basi: Gate

Il gate x-slow.

Parametri

  • nome – Il nome del gate.
  • num_qubits – Il numero di qubit su cui agisce il gate.
  • params – Un elenco di parametri.
  • label (str) – Un'etichetta facoltativa per il cancello.
  • xslow_gate_name (str)

add_decomposition

add_decomposition(decomposition)

Aggiungi una scomposizione dell'istruzione all' SessionEquivalenceLibrary e.

base_class

Tipo: type[Instruction]

Ottieni la classe base di questa istruzione. Questo elemento è sicuramente presente 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 pienamente compatibile per _tutte_ le applicazioni circuitali. Ciò significa in genere che la sottoclasse è definita esclusivamente per offrire al programmatore una certa comodità rispetto alla classe base, mentre quest’ultima è la “vera” classe 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 ad esempio una strategia di misurazione alternativa, oppure una versione di un gate parametrizzato con un particolare insieme di parametri allo scopo di distinguerla in un Target dal gate parametrizzato completo.

Spesso ciò equivale esattamente a type(obj), tranne nel caso delle istanze singleton delle istruzioni della libreria standard. Queste istanze singleton sono sottoclassi speciali della loro classe base, e questa proprietà restituirà proprio tale classe base. Ad esempio:

>>> isinstance(XGate(), XGate)
True
>>> type(XGate()) is XGate
False
>>> XGate().base_class is XGate
True

In generale, non è consigliabile basarsi sulla classe precisa di un'istruzione; all'interno di un dato circuito, nella maggior parte dei casi è prevedibile che Instruction.name costituisca un criterio di discriminazione più adeguato.

broadcast_arguments

broadcast_arguments(qargs, cargs)

Convalida e gestione degli argomenti e delle loro relazioni.

Ad esempio, cx([q[0],q[1]], q[2]) significa cx(q[0], q[2]); cx(q[1], q[2]). Questo metodo restituisce gli argomenti nel raggruppamento corretto. Nell'esempio riportato:

in: [[q[0],q[1]], q[2]],[]
outs: [q[0], q[2]], []
      [q[1], q[2]], []

Le norme generali in materia di radiodiffusione sono le seguenti:

  • Se len(qargs) == 1:

    [q[0], q[1]] -> [q[0]],[q[1]]
  • Se len(qargs) == 2:

    [[q[0], q[1]], [r[0], r[1]]] -> [q[0], r[0]], [q[1], r[1]]
    [[q[0]], [r[0], r[1]]]       -> [q[0], r[0]], [q[0], r[1]]
    [[q[0], q[1]], [r[0]]]       -> [q[0], r[0]], [q[1], r[0]]
  • Se len(qargs) >= 3:

    [q[0], q[1]], [r[0], r[1]],  ...] -> [q[0], r[0], ...], [q[1], r[1], ...]

Parametri

  • qargs (list) – Elenco degli argomenti relativi ai bit quantistici.
  • cargs (list) – Elenco degli argomenti bit classici.

Risultati

Una tupla con un unico argomento.

Aumenti

CircuitError – Se l'input non è valido. Ad esempio, il numero di argomenti non corrisponde a quanto previsto dal gate.

Tipo di restituzione

Iterable [ tuple [ lista, lista ]]

control

control(num_ctrl_qubits=1, label=None, ctrl_state=None, annotated=None)

Restituisce una versione controllata di se stessa.

Il gate controllato viene implementato come ControlledGate quando annotated è False, e come AnnotatedOperation quando annotated è True.

Obsoleto a partire dalla versione 2.3

qiskit.circuit.gate.Gate.control()L'argomento annotated è deprecato a partire dalla versione 2.3 di Qiskit. Verrà rimosso in Qiskit 3.0. Il metodo Gate.control () non accetta più il valore annotated=None. Il nuovo valore predefinito è annotated=True, che rappresenta il gate controllato come un AnnotatedOperation (a meno che non esista già una classe dedicata ai gate controllati). È possibile impostare esplicitamente annotated=False per mantenere il comportamento precedente. Tuttavia, si consiglia di utilizzare annotated=True, poiché in questo modo la costruzione del circuito controllato viene rinviata al transpiler e, inoltre, vengono rese possibili ulteriori ottimizzazioni delle porte controllate (che in genere portano a circuiti di qualità superiore).

Parametri

  • num_ctrl_qubits (int) – Numero di controlli da aggiungere. Il valore predefinito è 1.
  • label (str | None) – Etichetta opzionale per il cancello. Il valore predefinito è None. Viene ignorato se il gate controllato è implementato come operazione annotata.
  • ctrl_state (int |str | None) – Lo stato di controllo del gate, specificato come numero intero o come stringa di bit (ad es. "110"). 2**num_ctrl_qubits - 1Se None, il valore predefinito è lo stato "tutti uno".
  • annotated (bool | None) – Indica se il gate controllato debba essere implementato come gate controllato o come operazione annotata. Se None, si considera come False.

Risultati

Una versione controllata di questo gate.

Aumenti

QiskitError – non valido num_ctrl_qubits o ctrl_state.

copy

copy(name=None)

Copia delle istruzioni.

Parametri

name (str) – nome da assegnare al circuito copiato; in None tal caso, il nome rimane lo stesso.

Risultati

una copia delle istruzioni attuali, con il nome aggiornato qualora fosse stato fornito

Tipo di restituzione

qiskit.circuit.Instruction

decompositions

Recupera le scomposizioni dell'istruzione dall' SessionEquivalenceLibrary.

definition

Definizione del ritorno in termini di altre porte logiche di base.

inverse

inverse(annotated=False)

Inverti questa istruzione.

Se annotated è False, l'istruzione inversa viene implementata come una nuova istruzione con la definizione invertita in modo ricorsivo.

Se annotated è True, l'istruzione inversa viene implementata come AnnotatedOperation, e corrisponde all'istruzione specificata annotata con il “modificatore inverso”.

Le istruzioni speciali che ereditano da Instruction possono implementare la propria inversa (ad esempio T e Tdg, Barrier, ecc.) In particolare, possono scegliere come gestire l'argomento annotated , ad esempio ignorandolo e restituendo sempre una classe di porta concreta se l'inversa è definita come porta standard.

Parametri

annotated (bool) – Se impostato su True, il gate inverso in uscita verrà restituito come AnnotatedOperation.

Risultati

L'operazione inversa.

Aumenti

CircuitError – se l'istruzione non è composta e non è stata implementata la sua inversa.

is_parameterized

is_parameterized()

Restituisce se il Instruction contiene parametri di compilazione.

label

Tipo: str

Etichetta con le istruzioni per la restituzione

mutable

Tipo: bool

Questa istanza è un'istanza unica mutabile o no?

Se questo attributo è False presente, l'istanza del gate è un singleton condiviso e non è modificabile.

name

Restituisce 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 gate.

power

power(exponent, annotated=False)

Elevare questo numero alla potenza di exponent.

Implementato come gate unitario (rif. UnitaryGate) oppure come operazione annotata (cfr. AnnotatedOperation). Nel caso di diverse porte standard, come ad esempio RXGate, quando la potenza di una porta può essere espressa in termini di un’altra porta standard che viene restituita direttamente.

Parametri

  • exponent (float) – il potere di alzare il cancello per
  • annotated (bool) – indica se il power gate può essere implementato come operazione annotata. Nel caso di diverse porte standard, come ad esempio RXGate, questo argomento viene ignorato quando la potenza di una porta può essere espressa in termini di un’altra porta standard.

Risultati

Un'operazione che implementa gate^exponent

Aumenti

CircuitError – Se il gate non è unitario

repeat

repeat(n)

self Crea un'istruzione ripetuta nn volte.

Parametri

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

Risultati

Che contiene la definizione.

Tipo di restituzione

qiskit.circuit.Instruction

Aumenti

CircuitError – Se n < 1.

reverse_ops

reverse_ops()

Per un'istruzione composta, invertire l'ordine delle sottoistruzioni.

Ciò avviene invertendo in modo ricorsivo 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)

Confronto soft tra i gate. I loro nomi, il numero di qubit e il numero di bit classici devono corrispondere. Il numero dei parametri deve corrispondere. Ogni parametro viene confrontato. Se si è un " ParameterExpression ", questo non viene preso in considerazione.

Parametri

other (instruction) – altre istruzioni.

Risultati

"self" e "other" sono equivalenti nelle espressioni dei parametri.

Tipo di restituzione

bool

to_matrix

to_matrix()

Restituisce un oggetto Numpy.array corrispondente alla matrice unitaria del gate.

Risultati

se la sottoclasse Gate presenta una definizione a matrice.

Tipo di restituzione

np.ndarray

Aumenti

CircuitError – Se una sottoclasse di Gate non implementa questo metodo, verrà generata un'eccezione quando viene chiamato questo metodo della classe base.

to_mutable

to_mutable()

Restituisce una copia modificabile di questo gate.

Questo metodo restituirà una nuova copia modificabile di questa istanza di gate. Se si utilizza un'istanza singleton, si tratterà di una nuova istanza unica che potrà essere modificata. Se l'istanza è già modificabile, verrà creata una copia profonda di tale istanza.

validate_parameter

validate_parameter(parameter)

I parametri del gate devono essere di tipo int, float o ParameterExpression

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