Skip to main content
IBM Quantum Platform

CutWire

class CutWire(label=None)

GitHub

Basi: Gate

Un'istruzione per indicare la posizione di taglio di un filo.

Creare l'istruzione CutWire.


Attributi

Parametri

label (str | None)

base_class

Ottiene la classe base di questa istruzione. È garantita la presenza nell'albero ereditario di self.

La "classe base" di un'istruzione è la classe più bassa dell'albero di ereditarietà con cui l'oggetto deve essere considerato completamente compatibile per le applicazioni dei circuiti. Questo in genere significa che la sottoclasse è definita solo per offrire una sorta di comodità al programmatore rispetto alla classe base, mentre la classe base è 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 sarà implementata in modo diverso dall'hardware, come ad esempio una strategia di misura alternativa, o una versione di un gate parametrizzato con un particolare insieme di parametri per distinguerlo in un sito Target dal gate parametrizzato completo.

Spesso è esattamente equivalente a type(obj), tranne nel caso di istanze singleton di istruzioni della libreria standard. Queste istanze singleton sono sottoclassi speciali della loro classe base e questa proprietà restituirà la classe base. Ad esempio:

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

In generale, non si dovrebbe fare affidamento sulla classe precisa di un'istruzione; all'interno di un determinato circuito, si prevede che Instruction.name sia un discriminante più adatto nella maggior parte delle situazioni.

condition

La condizione classica sull'istruzione.

Deprecato dalla versione 1.3.0

La proprietà qiskit.circuit.instruction.Instruction.condition è deprecata a partire da qiskit 1.3.0. Verrà rimosso in 2.0.0.

condition_bits

Ottenere Clbit in condizione.

Deprecato dalla versione 1.3.0

La proprietà qiskit.circuit.instruction.Instruction.condition_bits è deprecata a partire da qiskit 1.3.0. Verrà rimosso in 2.0.0.

decompositions

Ottenere le scomposizioni dell'istruzione da SessionEquivalenceLibrary.

definition

Definizione di ritorno in termini di altri cancelli di base.

duration

Ottenere la durata.

Deprecato dalla versione 1.3.0

La proprietà qiskit.circuit.instruction.Instruction.duration è deprecata a partire da qiskit 1.3.0. Verrà rimosso in Qiskit 2.0.0.

label

Etichetta di istruzioni per la restituzione

mutable

Questa istanza è un'istanza unica mutabile o no.

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

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 tratta di angoli di passaggio.

unit

Ottiene l'unità di tempo della durata.

Deprecato dalla versione 1.3.0

La proprietà qiskit.circuit.instruction.Instruction.unit è deprecata a partire da qiskit 1.3.0. Verrà rimosso in Qiskit 2.0.0.


Metodi

add_decomposition

add_decomposition(decomposition)

Aggiungere una decomposizione dell'istruzione a SessionEquivalenceLibrary.

assemble

assemble()

Assemblare un QasmQobjInstruction

Deprecato dalla versione 1.2

Il metodo qiskit.circuit.instruction.Instruction.assemble() è deprecato a partire da qiskit 1.2. Verrà rimosso nella versione 2.0. La classe Qobj e le relative funzionalità fanno parte del flusso di lavoro deprecato di BackendV1 e non sono più necessarie per BackendV2. Se un flusso di lavoro dell'utente richiede Qobj, probabilmente si basa su una funzionalità deprecata e dovrebbe essere aggiornato per utilizzare BackendV2.

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 produce gli argomenti nel giusto raggruppamento. Nell'esempio dato:

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

Le regole generali di trasmissione sono:

  • 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 dei bit quantici.
  • cargs (list) – Elenco degli argomenti classici dei bit.

Tipo di restituzione

Iterable[tuple[list, list]]

Risultati

Una tupla con argomenti singoli.

Aumenti

CircuitError - Se l'input non è valido. Ad esempio, il numero di argomenti non corrisponde alle aspettative del gate.

c_if

c_if(classical, val)

Impostare una condizione di uguaglianza classica su questa istruzione tra il registro o il cbit classical e il valore val.

Nota

Si tratta di un metodo setter, non additivo. Se viene richiamato più volte, annulla silenziosamente qualsiasi condizione impostata in precedenza; non si sovrappone.

Deprecato dalla versione 1.3.0

Il metodo qiskit.circuit.instruction.Instruction.c_if() è deprecato a partire da qiskit 1.3.0. Verrà rimosso in 2.0.0.

control

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

Restituisce la versione controllata di se stesso.

Implementato sia come gate controllato (rif. ControlledGate) o come operazione annotata (cfr. AnnotatedOperation).

Parametri

  • num_ctrl_qubits (int) – numero di controlli da aggiungere al gate (impostazione predefinita: 1)
  • label (str | None) – etichetta opzionale del cancello. Ignorato se implementato come operazione annotata.
  • ctrl_state (int | str | None) – lo stato di controllo in decimale o come stringa di bit (ad es. '111'). Se None, utilizzare 2**num_ctrl_qubits-1.
  • annotated (bool | None) – indica se il gate controllato è implementato come gate annotato. Se None, viene impostato a False se la porta controllata può essere costruita direttamente, altrimenti viene impostato a True. Ciò consente di rinviare il processo di costruzione nel caso in cui la sintesi del gate controllato richieda ulteriori informazioni (ad esempio, i valori dei parametri non vincolati).

Risultati

Versione controllata dell'operazione data.

Aumenti

QiskitError - modalità non riconosciuta o stato ctrl_non valido

copy

copy(name=None)

Copia dell'istruzione.

Parametri

name (str) – nome da assegnare al circuito copiato, se None il nome rimane invariato.

Risultati

una copia dell'istruzione corrente, con il nome aggiornato se è stato fornito

Tipo di restituzione

qiskit.circuit.Instruction

inverse

inverse(annotated=False)

Invertire questa istruzione.

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

Se annotated è True, l'istruzione inversa è implementata come AnnotatedOperation e corrisponde all'istruzione data annotata con il "modificatore inverso".

Le istruzioni speciali che ereditano da Instruction possono implementare il proprio inverso (ad esempio T e Tdg, Barrier, ecc.) In particolare, possono scegliere come gestire l'argomento annotated , tra cui ignorarlo e restituire sempre una classe gate concreta se l'inverso è definito come gate standard.

Parametri

annotated (bool) – se impostato su True, l'uscita del gate inverso verrà restituita come AnnotatedOperation.

Risultati

L'operazione inversa.

Aumenti

CircuitError - se l'istruzione non è composita e non è stata implementata un'istruzione inversa.

is_parameterized

is_parameterized()

Restituisce se Instruction contiene parametri in tempo di compilazione.

power

power(exponent, annotated=False)

Innalzate questo cancello al potere di exponent.

Implementato come porta unitaria (rif. UnitaryGate) o come operazione annotata (cfr. AnnotatedOperation). Nel caso di più porte standard, come 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 più porte standard, come 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 la porta non è unitaria

repeat

repeat(n)

Crea un'istruzione con self ripetuta :math`n` volte.

Se questa operazione ha una condizione, l'istruzione di uscita avrà la stessa condizione e le operazioni interne ripetute saranno incondizionate; le istruzioni all'interno di una definizione composta non possono essere condizionate sui registri nel modello di dati di Qiskit. Ciò significa che non è valido applicare un'istruzione ripetuta a un clbit che nella sua condizione scrive e legge.

Parametri

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

Risultati

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 ricorsivamente tutte le sottoistruzioni. Non inverte alcun cancello.

Risultati

una nuova istruzione con

le 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 i numeri di bit classici devono corrispondere. Il numero di parametri deve corrispondere. Ogni parametro viene confrontato. Se uno è un ParameterExpression non viene preso in considerazione.

Parametri

other (instruction) – altre istruzioni.

Risultati

sono auto e altri uguali fino a espressioni parametriche.

Tipo di restituzione

bool

to_matrix

to_matrix()

Restituisce un Numpy.array per la matrice unitaria del gate.

Risultati

se la sottoclasse Gate ha una definizione di matrice.

Tipo di restituzione

np.ndarray

Aumenti

CircuitError - Se una sottoclasse di Gate non implementa questo metodo, verrà sollevata un'eccezione quando viene richiamato il metodo della classe base.

to_mutable

to_mutable()

Restituisce una copia mutabile di questo gate.

Questo metodo restituisce una nuova copia mutabile di questa istanza di gate. Se si utilizza un'istanza singleton, questa sarà una nuova istanza unica che può essere mutata. Se l'istanza è già mutabile, sarà una copia profonda di quell'istanza.

validate_parameter

validate_parameter(parameter)

I parametri del gate devono essere int, float o ParameterExpression

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