Skip to main content
IBM Quantum Platform

ConvertISAToClifford

class ConvertISAToClifford(*args, **kwargs)

GitHub

Basi: TransformationPass

Convertire le porte di un circuito ISA in porte Clifford.

I circuiti ISA contengono solo porte di Clifford appartenenti a un insieme limitato o qiskit.circuit.library.RZGateruotate di angoli arbitrari. Per convertirli in circuiti di Clifford, questa fase arrotonda l'angolo di ogni qiskit.circuit.library.RZGate o qiskit.circuit.library.RZZGate o qiskit.circuit.library.RXGate al multiplo più vicino di pi/2 (o a un multiplo casuale di pi/2 se l'angolo non è specificato), saltando al contempo ogni porta di Clifford, misurazione e barriera.

import numpy as np

from qiskit.circuit import QuantumCircuit, Parameter
from qiskit.transpiler import PassManager

from qiskit_ibm_runtime.transpiler.passes import ConvertISAToClifford

# An ISA circuit ending with a Z rotation by pi/3
qc = QuantumCircuit(2, 2)
qc.sx(0)
qc.rz(np.pi/2, 0)
qc.sx(0)
qc.barrier()
qc.cx(0, 1)
qc.rz(np.pi/3, 0)  # non-Clifford Z rotation
qc.rz(Parameter("th"), 0)  # Z rotation with unspecified angle

# Turn into a Clifford circuit
pm = PassManager([ConvertISAToClifford()])
clifford_qc = pm.run(qc)

Aumenti

ValueError - Se il circuito dato contiene operazioni non supportate, come le porte nonISA.


Attributi

is_analysis_pass

Controlla se il passaggio è un passaggio di analisi.

Se il passo è un AnalysisPass,, significa che il passo può analizzare il DAG e scrivere i risultati di tale analisi nel set di proprietà. Questo tipo di passaggio non consente di modificare il DAG.

is_transformation_pass

Controlla se il passaggio è un passaggio di trasformazione.

Se il passaggio è un TransformationPass,, significa che il passaggio può manipolare il DAG, ma non può modificare il set di proprietà (ma può essere letto).


Metodi

__call__

__call__(circuit, property_set=None)

Esegue il circuito di passaggio.

Parametri

  • circuit (QuantumCircuit) – Il giorno in cui viene effettuato il passaggio.
  • property_set (PropertySet | dict | None) – Set di proprietà di input/output. Un passaggio di analisi potrebbe modificare le proprietà impostate in loco. Se non specificato, verrà utilizzato property_set l'attributo esistente del pass (se impostato).

Risultati

Se la trasformazione ha esito positivo, il risultato è QuantumCircuit. Se l'analisi ha esito positivo, il circuito di ingresso.

Tipo di restituzione

QuantumCircuit

execute

execute(passmanager_ir, state, callback=None)

Eseguire l'attività di ottimizzazione per l'IR Qiskit in ingresso.

Parametri

  • passmanager_ir (DAGCircuit) – Qiskit IR da ottimizzare.
  • state (DAGCircuit) – Stato associato all'esecuzione del flusso di lavoro da parte dello stesso gestore dei passaggi.
  • callback (Callable[[Task, DAGCircuit, PropertySet, float, int], None] | None) – Una funzione di callback che viene chiamata ad ogni esecuzione di un'attività di ottimizzazione.

Risultati

Qiskit IR ottimizzato e stato del flusso di lavoro.

Tipo di restituzione

tupla[ DAGCircuit, PassManagerState ]

name

name()

Nome del passo.

Tipo di restituzione

STR

run

run(dag)

GitHub

Esegui il passaggio sul DAGCircuit.

Parametri

dag (DAGCircuit)

Tipo di restituzione

DAGCircuit

update_status

update_status(state, run_state)

Aggiornare lo stato del flusso di lavoro.

Parametri

  • state (PassManagerState) – Passare lo stato del gestore da aggiornare.
  • run_state (RunState) – Stato di completamento dell'attività corrente.

Risultati

Stato aggiornato del gestore dei passaggi.

Tipo di restituzione

PassManagerState

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