Skip to main content
IBM Quantum Platform

RGQFTMultiplicador

class qiskit.circuit.library.RGQFTMultiplier(num_state_qubits, num_result_qubits=None, name='RGQFTMultiplier')

GitHub

Bases: Multiplier

Um circuito de multiplicação QFT para armazenar o produto de dois registros de entrada fora do lugar.

A multiplicação neste circuito é implementada utilizando o procedimento da Fig. 3 em [1], onde as rotações da soma ponderada são implementadas conforme mostrado na Fig. 5 em [1]. A QFT é aplicada ao registro de saída e é seguida por rotações controladas pelos registros de entrada. As rotações transformam o estado no produto de dois registros de entrada na base QFT, o qual é revertido da base QFT por meio da QFT inversa.

A título de exemplo, um circuito que realiza uma multiplicação modular na Teoria Quântica dos Campos (QFT) em dois registros de entrada de 2 qubits, com um registro de saída de 2 qubits, é o seguinte:

  a_0: ────────────────────────────────────────■───────■──────■──────■────────────────
                                               │       │      │      │
  a_1: ─────────■───────■───────■───────■──────┼───────┼──────┼──────┼────────────────
                │       │       │       │      │       │      │      │
  b_0: ─────────┼───────┼───────■───────■──────┼───────┼──────■──────■────────────────
                │       │       │       │      │       │      │      │
  b_1: ─────────■───────■───────┼───────┼──────■───────■──────┼──────┼────────────────
       ┌──────┐ │P(4π)  │       │P(2π)  │      │P(2π)  │      │P(π)  │       ┌───────┐
out_0: ┤0     ├─■───────┼───────■───────┼──────■───────┼──────■──────┼───────┤0      ├
       │  qft │         │P(2π)          │P(π)          │P(π)         │P(π/2) │  iqft │
out_1: ┤1     ├─────────■───────────────■──────────────■─────────────■───────┤1      ├
       └──────┘                                                              └───────┘
Veja Também

O MultiplierGate objeto representa uma multiplicação, assim como esta classe de circuito, mas permite que o compilador selecione a decomposição ideal com base no contexto. As implementações específicas podem ser definidas por meio do HLSConfig, por exemplo, este circuito pode ser selecionado por meio do Multiplier=["qft_r17"].

Referências

[1] Ruiz-Perez et al, Aritmética quântica com a transformada quântica de Fourier, 2017. arXiv:1411.5949

Parâmetros

  • num_state_qubits (int) – O número de qubits em um dos registros de entrada para o estado a|a\rangle ou b|b\rangle. Os dois registros de entrada devem ter o mesmo número de qubits.
  • num_result_qubits (int | None) – O número de qubits de resultado para limitar a saída. Se o número de qubits de resultado for nn, o módulo de multiplicação 2n2^n será executado para limitar a saída ao número especificado de qubits. O valor padrão é 2 * num_state_qubits para representar qualquer resultado possível da multiplicação das duas entradas.
  • name (str) – O nome do objeto de circuito.

Atributos

name

Tipo: str

Um nome legível por humanos para o circuito.

Exemplo

from qiskit import QuantumCircuit

qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)
my_circuit
Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.