Skip to main content
IBM Quantum Platform

HalfAdderSynthesisDefault

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

GitHub

Bases: HighLevelSynthesisPlugin

A síntese padrão de meio-somador (sem carry in, mas com um qubit de carry out).

Se tivermos um qubit auxiliar disponível, o somador de Cuccaro ripple-carry usa O(n)O(n) CX gates e 1 qubit auxiliar, enquanto o Vedral ripple-carry usa mais CX e n1n-1 qubits auxiliares. O somador baseado em QFT não usa qubits auxiliares, mas O(n2)O(n^2), portanto, só é usado se não houver qubits auxiliares disponíveis.

O nome do plug-in é:HalfAdder.default , que pode ser usado como a chave em um HLSConfig para usar esse método com HighLevelSynthesis.

Se pelo menos um qubit auxiliar limpo estiver disponível, o HalfAdderSynthesisC04 é usado, caso contrário HalfAdderSynthesisD00.

O plug-in é compatível com as seguintes opções específicas do plug-in:

  • num_clean_ancillas: O número de qubits auxiliares limpos disponíveis.

Métodos

run

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

GitHub

Executa a síntese para a Operação fornecida.

Parâmetros

  • high_level_object (Operation) – A operação a ser sintetizada em um objeto DAGCircuit objeto.
  • coupling_map (CouplingMap) – O mapa de acoplamento do backend, caso a síntese seja feita em um circuito físico.
  • target (Target) – Um alvo que representa o backend de destino.
  • qubits (list) – Lista de qubits sobre os quais a operação é definida, caso a síntese seja feita em um circuito físico.
  • options - Kwargs opcionais adicionais específicos do método.

Retorna

A representação do circuito quântico da Operação

quando bem-sucedido, e None caso contrário.

Tipo de retorno

QuantumCircuit

Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.