Skip to main content
IBM Quantum Platform

HalfAdderSynthesisDefault

class qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthesisDefault

GitHub

Basi: HighLevelSynthesisPlugin

La sintesi half-adder predefinita (nessun carry in, ma un qubit carry out).

Se abbiamo a disposizione un qubit ausiliario, l'adder Cuccaro ripple-carry utilizza O(n)O(n) porte CX e 1 qubit ausiliario, mentre il Vedral ripple-carry utilizza più CX e n1n-1 qubit ausiliari. L'addizionatore basato su QFT non utilizza qubit ausiliari, ma O(n2)O(n^2), quindi viene utilizzato solo se non sono disponibili qubit ausiliari.

Il nome del plugin è:HalfAdder.default , che può essere utilizzato come chiave di un oggetto HLSConfig per utilizzare questo metodo con HighLevelSynthesis.

Se è disponibile almeno un qubit ausiliario pulito, viene utilizzato il parametro HalfAdderSynthesisC04 viene utilizzato, altrimenti HalfAdderSynthesisD00.

Il plugin supporta le seguenti opzioni specifiche del plugin:

  • num_clean_ancillas: Il numero di qubit ausiliari puliti disponibili.

Metodi

run

run(high_level_object, coupling_map=None, target=None, qubits=None, **options)

GitHub

Esegue la sintesi per l'operazione indicata.

Parametri

  • high_level_object (Operation) – L'operazione da sintetizzare in un DAGCircuit oggetto.
  • coupling_map (CouplingMap) – La mappa di accoppiamento del backend nel caso in cui la sintesi venga effettuata su un circuito fisico.
  • target (Target) – Un obiettivo che rappresenta il backend di destinazione.
  • qubits (list) – Elenco dei qubit su cui è definita l'operazione nel caso in cui la sintesi sia effettuata su un circuito fisico.
  • options - Kwarg opzionali aggiuntivi specifici per il metodo.

Risultati

La rappresentazione del circuito quantistico dell'operazione

in caso di successo e None in caso contrario.

Tipo di restituzione

QuantumCircuit

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