Skip to main content
IBM Quantum Platform

Biblioteca de circuitos

qiskit.circuit.library

A biblioteca de circuitos é uma coleção de circuitos quânticos que servem como blocos de construção algorítmicos, ferramentas de avaliação comparativa e exemplos que, segundo se supõe, sejam difíceis de simular por meios clássicos. O objetivo é fornecer circuitos bem definidos, amplamente aplicáveis e fáceis de reutilizar em diferentes fluxos de trabalho.

Os critérios para um circuito na biblioteca são:

Bem definido

O circuito possui uma estrutura clara ou um procedimento matemático, respaldado por um artigo ou referência.

Amplamente utilizado e relevante

O circuito é uma escolha canônica ou a mais conhecida para uma tarefa bem definida, constitui uma referência padrão ou uma linha de base comum, ou é historicamente fundamental para um subcampo substancial da computação quântica.

Independente

O circuito é autônomo, o que significa que pode ser gerado de forma eficiente sem novas dependências externas.

Os elementos da biblioteca de circuitos são do tipo QuantumCircuits ou Instructions, o que permite que sejam facilmente analisados ou integrados a outros circuitos. Isso permite a prototipagem rápida e o projeto de circuitos em níveis mais elevados de abstração.

Por exemplo:

from qiskit.circuit import QuantumCircuit
from qiskit.circuit.library import PauliEvolutionGate
from qiskit.quantum_info import SparsePauliOp

hamiltonian = SparsePauliOp(["ZZI", "IZZ", "IXI"], coeffs=[1, 1, -1])
gate = PauliEvolutionGate(hamiltonian)

circuit = QuantumCircuit(hamiltonian.num_qubits)
circuit.append(gate, circuit.qubits)

circuit.draw("mpl")
Um circuito que implementa uma expansão Suzuki-Trotter de uma evolução hamiltoniana.

Essa biblioteca está organizada em diferentes seções:

Fazemos distinção entre diferentes categorias de operações:

Portões padrão

Essas são portas quânticas fundamentais, cujo subconjunto costuma formar um conjunto básico de portas em um computador quântico. Essas são operações unitárias representadas como Gate. A biblioteca também oferece diretivas padrão do compilador (a Barrier) e operações não unitárias (como Measure).

Operações abstratas

Essa categoria inclui operações que são definidas por uma ação matemática, mas que podem ser implementadas por meio de diferentes decomposições. Por exemplo, uma operação de controle múltiplo XGate inverte o qubit-alvo se todos os qubits de controle estiverem em estado ∣1⟩|1\rangle; e há uma variedade de circuitos concretos que implementam essa operação utilizando portas de nível inferior. Essas operações abstratas são representadas como Gate ou Instruction. Isso permite montar o circuito sem precisar escolher uma implementação específica para cada bloco e, por fim, deixa que o compilador (ou você, como usuário) escolha a decomposição ideal. Por exemplo:

from qiskit.circuit.library import MCXGate
mcx = MCXGate(4)

from qiskit import QuantumCircuit
circuit = QuantumCircuit(5)
circuit.append(mcx, [0, 1, 4, 2, 3])
circuit.draw("mpl")
Um circuito com uma porta X multicontrolada.

Para circuitos com operações abstratas, o contexto do circuito é levado em conta durante a transpilação. Por exemplo, se houver qubits ociosos disponíveis, eles poderão ser usados para obter um circuito mais raso:

from qiskit import transpile

small_circuit = QuantumCircuit(5)  # here we have no idle qubits
small_circuit.append(mcx, [0, 1, 4, 2, 3])
small_tqc = transpile(small_circuit, basis_gates=["u", "cx"])
print("No aux:", small_tqc.count_ops())

large_circuit = QuantumCircuit(10)  # now we will have 5 idle qubits
large_circuit.append(mcx, [0, 1, 4, 2, 3])
large_tqc = transpile(large_circuit, basis_gates=["u", "cx"])
print("With aux:", large_tqc.count_ops())

Que imprime:

No aux: OrderedDict([('u', 41), ('cx', 36)])
With aux: OrderedDict([('u', 24), ('cx', 18)])

Operações estruturais

Essas operações têm uma decomposição única. Como o compilador não precisa raciocinar sobre eles em um nível mais alto, eles são implementados como funções que retornam um objeto QuantumCircuit objeto. Por exemplo:

from qiskit.circuit.library import real_amplitudes

ansatz = real_amplitudes(5, entanglement="pairwise")
ansatz.draw("mpl")
O circuito ansatz de amplitudes reais.

Portões padrão

GateEssas operações são portas unitárias reversíveis e todas elas constituem uma subclasse de. Consequentemente, todos eles possuem os métodos to_matrix(), power(), e control(), que, em geral, só podemos aplicar a operações unitárias.

Por exemplo:

from qiskit.circuit.library import XGate
gate = XGate()
print(gate.to_matrix())             # X gate
print(gate.power(1/2).to_matrix())  # √X gate -- see also the SXGate
print(gate.control(1).to_matrix())  # CX (controlled X) gate
[[0.+0.j 1.+0.j]
 [1.+0.j 0.+0.j]]
[[0.5+0.5j 0.5-0.5j]
 [0.5-0.5j 0.5+0.5j]]
[[1.+0.j 0.+0.j 0.+0.j 0.+0.j]
 [0.+0.j 0.+0.j 0.+0.j 1.+0.j]
 [0.+0.j 0.+0.j 1.+0.j 0.+0.j]
 [0.+0.j 1.+0.j 0.+0.j 0.+0.j]]

A função get_standard_gate_name_mapping() permite que você veja as portas e operações padrão disponíveis.

get_standard_gate_name_mapping

qiskit.circuit.library.get_standard_gate_name_mapping()

GitHub

Retorna um dicionário que mapeia o nome de portas e instruções padrão para um objeto com esse nome.

Exemplos

from qiskit.circuit.library import get_standard_gate_name_mapping

gate_name_map = get_standard_gate_name_mapping()
cx_object = gate_name_map["cx"]

print(cx_object)
print(type(cx_object))
Instruction(name='cx', num_qubits=2, num_clbits=0, params=[])
_SingletonCXGate

Portas padrão de 1 qubit

Coluna “ 1 ”
Coluna “ 2 ”
HGate(*args[, _force_mutable] )Porta Hadamard de um único qubit.
IGate(*args[, _force_mutable] )Porta de identidade.
PhaseGate(theta[, rótulo] )Rotação de um único qubit em torno do eixo Z.
RGate(theta, phi[, rótulo] )Rotação θ\theta em torno do eixo cos⁡(ϕ)x+sin⁡(ϕ)y\cos(\phi)x + \sin(\phi)y.
RXGate(theta[, rótulo] )Rotação de um único qubit em torno do eixo X.
RYGate(theta[, rótulo] )Rotação de um único qubit em torno do eixo Y.
RZGate(phi[, rótulo] )Rotação de um único qubit em torno do eixo Z.
SGate(*args[, _force_mutable] )Porta S de um único qubit ( Z\sqrt{Z} ).
SdgGate(*args[, _force_mutable] )Porta S-adjunta de um único qubit ( S†S^\dagger ).
SXGate(*args[, _force_mutable] )A porta Sqrt(X) de um único qubit ( X\sqrt{X} ).
SXdgGate(*args[, _force_mutable] )O portão inverso de um único qubit Sqrt(X).
TGate(*args[, _force_mutable] )Porta T de um único qubit ( Z4\sqrt[4]{Z} ).
TdgGate(*args[, _force_mutable] )Porta T-adjunta de um único qubit ( T†T^\dagger ).
UGate(theta, phi, lam[, label] )Rotação genérica de um único qubit em termos de ângulos de Euler ZYZ.
U1Gate(theta[, rótulo] )Rotação de um único qubit em torno do eixo Z.
U2Gate(phi, lam[, label] )Rotação de um único qubit em torno do eixo X+Z.
U3Gate(theta, phi, lam[, label] )Porta de rotação genérica de um único qubit com 3 ângulos de Euler.
XGate(*args[, _force_mutable] )A porta Pauli-X de um único qubit ( σx\sigma_x ).
YGate(*args[, _force_mutable] )A porta Pauli-Y de um único qubit ( σy\sigma_y ).
ZGate(*args[, _force_mutable] )A porta Pauli-Z de um único qubit ( σz\sigma_z ).

Portas padrão de 2 qubits

Coluna “ 1 ”
Coluna “ 2 ”
CHGate(*args[, _force_mutable] )Porta de Hadamard controlada.
CPhaseGate(theta[, rótulo, ctrl_state,...] )Porta de fase controlada.
CRXGate(theta[, rótulo, ctrl_state, _base_label] )Porta RX controlada.
CRYGate(theta[, rótulo, ctrl_state, _base_label] )Porta RY controlada.
CRZGate(theta[, rótulo, ctrl_state, _base_label] )Porta RZ controlada.
CSGate(*args[, _force_mutable] )Porta S controlada.
CSdgGate(*args[, _force_mutable] )Porta controlada por S†S^\dagger.
CSXGate(*args[, _force_mutable] )Porta controlada-√X.
CUGate(theta, phi, lam, gama[, label,...] )Porta U controlada (porta de dois qubits de 4 parâmetros).
CU1Gate(theta[, rótulo, ctrl_state, _base_label] )Controlled-U1 portão.
CU3Gate(theta, phi, lam[, label,...] )Controlled-U3 (porta de dois qubits de 3 parâmetros).
CXGate(*args[, _force_mutable] )Porta X controlada.
CYGate(*args[, _force_mutable] )Porta Y controlada.
CZGate(*args[, _force_mutable] )Porta-Z controlada.
DCXGate(*args[, _force_mutable] )Porta dupla CX.
ECRGate(*args[, _force_mutable] )Uma porta de ressonância cruzada ecoada.
iSwapGate(*args[, _force_mutable] )iSWAP portão.
RXXGate(theta[, rótulo] )Uma interação paramétrica de 2 qubits X⊗XX \otimes X (rotação sobre XX).
RYYGate(theta[, rótulo] )Uma interação paramétrica de 2 qubits Y⊗YY \otimes Y (rotação em torno de YY).
RZXGate(theta[, rótulo] )Uma interação paramétrica de 2 qubits Z⊗XZ \otimes X (rotação em torno de ZX).
RZZGate(theta[, rótulo] )Uma interação paramétrica de 2 qubits Z⊗ZZ \otimes Z (rotação em torno de ZZ).
SwapGate(*args[, _force_mutable] )O portão SWAP.
XXMinusYYGate(theta[, beta, rótulo] )Porta de interação XX-YY.
XXPlusYYGate(theta[, beta, rótulo] )Porta de interação XX+YY.

Portas padrão de 3+ qubits

Coluna “ 1 ”
Coluna “ 2 ”
C3SXGate(*args[, _force_mutable] )A porta sqrt-X controlada por 3 qubits.
C3XGate(*args[, _force_mutable] )A porta X é controlada por 3 qubits.
C4XGate(*args[, _force_mutable] )A porta X controlada por 4 qubits.
CCXGate(*args[, _force_mutable] )Porta CCX, também conhecida como porta Toffoli.
CCZGate(*args[, _force_mutable] )Portão CCZ.
CSwapGate(*args[, _force_mutable] )Porta SWAP controlada, também conhecida como porta Fredkin.
RCCXGate(*args[, _force_mutable] )O portão Toffoli simplificado, também conhecido como portão Margolus.
RC3XGate(*args[, _force_mutable] )A porta Toffoli simplificada com 3 controles.

Portões padrão globais

A porta a seguir é global e não recebe nenhum argumento de qubit.

Coluna “ 1 ”
Coluna “ 2 ”
GlobalPhaseGate(fase[, rótulo] )A porta de fase global ( eiθe^{i\theta} ).

Diretivas padrão

As diretivas são operações na pilha quântica que devem ser interpretadas pelo backend ou pelo transpilador. Em geral, o transpilador ou backend pode opcionalmente ignorá-los se não houver implementação para eles.


Operações padrão

As operações são alterações não reversíveis no estado quântico do circuito.

Além disso Measure, existe uma medição conjunta de Pauli generalizada disponível, usada como operação básica na computação baseada em Pauli.

Coluna “ 1 ”
Coluna “ 2 ”
PauliProductMeasurement(pauli[, gravadora] )Instruções de medição do produto Pauli.

Portas generalizadas

Esse módulo amplia as portas padrão com uma coleção mais ampla de portas básicas. Isso inclui portas que são variadas, o que significa que o número de qubits depende da entrada. Por exemplo:

from qiskit.circuit.library import DiagonalGate

diagonal = DiagonalGate([1, 1j])
print(diagonal.num_qubits)

diagonal = DiagonalGate([1, 1, 1, -1])
print(diagonal.num_qubits)

que imprime:

1
2
Coluna “ 1 ”
Coluna “ 2 ”
DiagonalGate(diag)Uma porta quântica diagonal genérica.
PermutationGate(padrão)Uma porta que permuta qubits.
MCMTGate(porta, num_ctrl_qubits,...[,...] )A porta multialvo multicontrolada, para uma porta alvo arbitrária controlada individualmente.
MCPhaseGate(lam, num_ctrl_qubits[, label,...] )Porta de fase multicontrolada.
MCXGate( [num_ctrl_qubits, label,...] )A porta X geral e multicontrolada.
MSGate(num_qubits, theta[, label] )O portão Mølmer-Sørensen.
RVGate(v_x, v_y, v_z[, base] )Rotação em torno de um eixo de rotação arbitrário v⃗\vec{v}, em que vertv⃗vert2\\vert \vec{v}\\vert _2 é o ângulo de rotação em radianos.
PauliGate(rótulo)Uma porta Pauli de vários qubits.
PauliProductRotationGate(pauli, ângulo[, rótulo] )Uma rotação de Pauli genérica.
LinearFunction(linear[, validate_input] )Um circuito linear reversível em n qubits.
Isometry(isometria, num_ancillas_zero,...[,...] )Decomposição de isometrias arbitrárias de mm a nn qubits.
UnitaryGate(dados[, rótulo, verificação_de_entrada,...] )Classe para portas quânticas especificadas por uma matriz unitária.
UCGate(lista_de_portas[, até_a_diagonal, multiplexador_simples] )Porta uniformemente controlada (também chamada de porta multiplexada).
UCPauliRotGate(lista_de_ângulos, eixo_de_rotação)Rotações de Pauli com controle uniforme.
UCRXGate(lista de ângulos)Rotações Pauli-X com controle uniforme.
UCRYGate(lista de ângulos)Rotações Pauli-Y com controle uniforme.
UCRZGate(lista de ângulos)Rotações Pauli-Z com controle uniforme.

Os objetos acima derivam Gate ou Instruction, o que permite que o compilador os analise em um nível abstrato. Sugerimos, portanto, usar estes em vez dos seguintes, que são derivados QuantumCircuit e construídos antecipadamente.

Coluna “ 1 ”
Coluna “ 2 ”
Diagonal(diag)Circuito que implementa uma transformação diagonal.
MCMT(porta, num_ctrl_qubits, num_target_qubits)A porta multialvo multicontrolada, para uma porta alvo arbitrária controlada individualmente.
MCMTVChain(porta, num_ctrl_qubits,...)A implementação do MCMT usando a cadeia em V do CCX.
MCXGrayCode( [num_ctrl_qubits, label,...] )Implemente a porta X multicontrolada usando o código Gray.
MCXRecursive( [num_ctrl_qubits, label,...] )Implemente a porta X multicontrolada usando recursão.
MCXVChain( [num_ctrl_qubits, dirty_ancillas,...] )Implemente a porta X multicontrolada usando uma cadeia V de portas CX.
Permutation(num_qubits[, padrão, semente] )Um circuito n_qubit que permuta qubits.
GMS(num_qubits, theta)Portão global Mølmer-Sørensen.
GR(num_qubits, theta, phi)Portão R global.
GRX(num_qubits, theta)Portão RX global.
GRY(num_qubits, theta)Portão global RY.
GRZ(num_qubits, phi)Porta RZ global.

Lógica Booleana

Essas Gateoperações implementam operações lógicas booleanas, como a lógica or de um conjunto de estados de qubits.

Coluna “ 1 ”
Coluna “ 2 ”
AndGate(num_variable_qubits[, flags] )Uma porta que representa a operação lógica AND em um número de qubits.
OrGate(num_variable_qubits[, flags] )Uma porta que representa a operação lógica OR em um número de qubits.
BitwiseXorGate(num_qubits, quantidade)Uma porta de n qubits para fazer o xor de bits na entrada com algum número inteiro amount.
InnerProductGate(num_qubits)Uma função booleana 2n-qubit que calcula o produto interno de dois vetores de n-qubit em F2F_2.

Os objetos acima derivam Gate (ou retornam esse tipo), o que permite que o compilador os analise em um nível abstrato. Sugerimos, portanto, usar esses em vez dos seguintes, que são derivados QuantumCircuit e construídos antecipadamente.

Coluna “ 1 ”
Coluna “ 2 ”
AND(num_variable_qubits[, flags, mcx_mode] )Um circuito que implementa a operação lógica AND em um número de qubits.
OR(num_variable_qubits[, flags, mcx_mode] )Um circuito que implementa a operação lógica OR em um número de qubits.
XOR(num_qubits[, quantidade, semente] )Um circuito n_qubit para xoragem bit a bit da entrada com algum número inteiro amount.
InnerProduct(num_qubits)Uma função booleana 2n-qubit que calcula o produto interno de dois vetores de n-qubit em F2F_2.

Um circuito aleatório bit a bit xor pode ser gerado diretamente usando:

Coluna “ 1 ”
Coluna “ 2 ”
random_bitwise_xor(num_qubits, seed)Crie um BitwiseXorGate aleatório.

Alteração da base

Essas portas realizam transformações de base dos estados do qubit. Por exemplo, no caso da Transformada Quântica de Fourier (QFT), ela se transforma entre a base computacional e a base de Fourier.

Coluna “ 1 ”
Coluna “ 2 ”
QFTGate(num_qubits)Porta de transformação quântica de Fourier.

O objeto acima deriva Gate, o que permite que o compilador o analise em um nível abstrato. Sugerimos, portanto, usar isso em vez do seguinte, que é derivado QuantumCircuit e construído antecipadamente.

Coluna “ 1 ”
Coluna “ 2 ”
QFT( [num_qubits, grau_de_aproximação,...] )Circuito de transformação quântica de Fourier.

Aritmético

Essas portas e circuitos executam a aritmética clássica, como adição ou multiplicação.

Víbora

Os somadores calculam a soma de dois registros nn -qubit, ou seja

∣a⟩n∣b⟩n↦∣a⟩n∣a+b⟩t,|a\rangle_n |b\rangle_n \mapsto |a\rangle_n |a + b\rangle_{t},

em que o tamanho tt do registro de saída depende do tipo de somador usado.

Coluna “ 1 ”
Coluna “ 2 ”
ModularAdderGate(num_state_qubits[, label] )Calcule o módulo de soma 2n2^n de dois registros de qubit de tamanho nn.
HalfAdderGate(num_state_qubits[, label] )Calcule a soma de dois registros de qubit de tamanho igual, incluindo um bit de carry-out.
FullAdderGate(num_state_qubits[, label] )Calcule a soma de dois registros de qubit de tamanho nn, incluindo bits de entrada e saída.

Os objetos acima derivam Gate, o que permite que o compilador os analise em um nível abstrato. Sugerimos, portanto, usar esses em vez dos seguintes, que são derivados QuantumCircuit e construídos antecipadamente.

Coluna “ 1 ”
Coluna “ 2 ”
DraperQFTAdder(número de qubits de estado[, tipo, nome] )Um circuito que usa QFT para realizar a adição no local em dois registros de qubit.
CDKMRippleCarryAdder(num_state_qubits[,...] )Um circuito de transporte de ondulação para realizar a adição no local em dois registros de qubit.
VBERippleCarryAdder(num_state_qubits[,...] )O somador de transporte de ondulação VBE [1].

multiplicadores

Os multiplicadores calculam o produto de dois registros de nn -qubit, ou seja

∣a⟩n∣b⟩n∣0⟩t↦∣a⟩n∣b⟩n∣a⋅b⟩t,|a\rangle_n |b\rangle_n |0\rangle_{t} \mapsto |a\rangle_n |b\rangle_n |a \cdot b\rangle_t,

em que tt é o número de bits usados para representar o resultado.

Coluna “ 1 ”
Coluna “ 2 ”
MultiplierGate(num_state_qubits[,...] )Calcule o produto de dois registros de qubit de tamanho igual em um novo registro.

O objeto acima deriva Gate, o que permite que o compilador o analise em um nível abstrato. Sugerimos, portanto, usar isso em vez das seguintes expressões, que são derivadas QuantumCircuit e construídas antecipadamente.

Coluna “ 1 ”
Coluna “ 2 ”
HRSCumulativeMultiplier(num_state_qubits[,...] )Um circuito de multiplicação para armazenar o produto de dois registros de entrada fora do lugar.
RGQFTMultiplier(num_state_qubits[,...] )Um circuito de multiplicação QFT para armazenar o produto de dois registros de entrada fora do lugar.

Funções de amplitude

Uma função de amplitude se aproxima de uma função f:{0,...,2n−1}→[0,1]f: \{0, ..., 2^n - 1\} \rightarrow [0, 1] aplicada às amplitudes dos nn qubits. Consulte a documentação da classe para obter informações mais detalhadas.

Coluna “ 1 ”
Coluna “ 2 ”
LinearAmplitudeFunctionGate(...[, ...])Um circuito que implementa uma função linear (por partes) em amplitudes de qubit.

O objeto acima deriva Gate, o que permite que o compilador o analise em um nível abstrato. Sugerimos, portanto, usar isso em vez do seguinte, que é derivado QuantumCircuit e construído antecipadamente.

Coluna “ 1 ”
Coluna “ 2 ”
LinearAmplitudeFunction(num_state_qubits,...)Um circuito que implementa uma função linear (por partes) em amplitudes de qubit.

Rotações funcionais de Pauli

As rotações funcionais de Pauli implementam operações da forma

∣x⟩∣0⟩↦cos⁡(f(x))∣x⟩∣0⟩+sin⁡(f(x))∣x⟩∣1⟩|x\rangle |0\rangle \mapsto \cos(f(x))|x\rangle|0\rangle + \sin(f(x))|x\rangle|1\rangle

usando as rotações de Pauli- YY para diferentes tipos de funções ff, como linear, polinomial ou uma versão parcial dessas funções. Elas são semelhantes às funções de amplitude acima, mas sem pré e pós-processamento para o domínio e a imagem da função de destino.

Coluna “ 1 ”
Coluna “ 2 ”
LinearPauliRotationsGate(num_state_qubits[,...] )Rotação X, Y ou Z com controle linear.
PolynomialPauliRotationsGate(número de qubits de estado)Uma porta que implementa rotações polinomiais de Pauli.
PiecewiseLinearPauliRotationsGate([...])Rotações de Pauli com controle linear por partes.
PiecewisePolynomialPauliRotationsGate(...[, ...])Rotações de Pauli com controle polinomial por partes.
PiecewiseChebyshevGate(f_x, num_state_qubits)Aproximação de Chebyshev por partes para uma função de entrada.

Os objetos acima derivam Gate, o que permite que o compilador os analise em um nível abstrato. Sugerimos, portanto, usar esses em vez dos seguintes, que são derivados QuantumCircuit e construídos antecipadamente.

Coluna “ 1 ”
Coluna “ 2 ”
FunctionalPauliRotations( [num_state_qubits,...] )Classe básica para rotações funcionais de Pauli.
LinearPauliRotations( [num_state_qubits,...] )Rotação X, Y ou Z com controle linear.
PolynomialPauliRotations( [num_state_qubits,...] )Um circuito que implementa rotações polinomiais de Pauli.
PiecewiseLinearPauliRotations([...])Rotações de Pauli com controle linear por partes.
PiecewisePolynomialPauliRotations([...])Rotações de Pauli com controle polinomial por partes.
PiecewiseChebyshev(f_x[, grau,...] )Aproximação de Chebyshev por partes para uma função de entrada.

Outras funções aritméticas

Aqui listamos outros circuitos aritméticos. Consulte as documentações de cada classe para obter mais detalhes.

Coluna “ 1 ”
Coluna “ 2 ”
ExactReciprocalGate(número de qubits de estado, escala)Implementa uma função recíproca exata.
IntegerComparatorGate(número de qubits de estado, valor)Execute um ≥\geq (ou << ) em um registro de qubit em relação a um número inteiro clássico.
QuadraticFormGate( [num_result_qubits,...] )Implementa uma forma quadrática em variáveis binárias codificadas em registros de qubit.
WeightedSumGate(número de qubits de estado[, pesos,...] )Uma porta para computar a soma ponderada de registros de qubit.

Os objetos acima derivam Gate, o que permite que o compilador os analise em um nível abstrato. Sugerimos, portanto, usar esses em vez dos seguintes, que são derivados QuantumCircuit e construídos antecipadamente.

Coluna “ 1 ”
Coluna “ 2 ”
ExactReciprocal(número de qubits de estado, escala[,...] )Recíproco exato
IntegerComparator( [num_state_qubits, valor,...] )Comparador de números inteiros.
QuadraticForm( [num_result_qubits,...] )Implementa uma forma quadrática em variáveis binárias codificadas em registros de qubit.
WeightedAdder( [num_state_qubits, pesos, nome] )Um circuito para computar a soma ponderada de registros de qubit.

Circuitos Quânticos Específicos

As portas e os circuitos quânticos a seguir definem operações específicas de interesse:

Coluna “ 1 ”
Coluna “ 2 ”
fourier_checking(f, g)Circuito de verificação de Fourier.
hidden_linear_function(matriz de adjacência)Circuito para resolver o problema da função linear oculta.
iqp(interações)Circuito de tempo polinomial quântico instantâneo (IQP).
random_iqp(num_qubits[, seed] )Um circuito polinomial quântico instantâneo aleatório de tempo polinomial (IQP).
quantum_volume(num_qubits[, profundidade, semente] )Um circuito de modelo de volume quântico.
phase_estimation(num_qubits_de_avaliação, unitário)Circuito de estimativa de fase.
grover_operator(oracle[, state_preparation,...] )Construa o operador de Grover.
unitary_overlap(unitary1, unitary2[, ...])Circuito que retorna a sobreposição entre duas unidades U2†U1U_2^{\dag} U_1.
GraphStateGate(matriz de adjacência)Uma porta que representa um estado de gráfico.
PauliEvolutionGate(operador[, tempo, rótulo,...] )Evolução temporal de um operador que consiste em Paulis.
HamiltonianGate(dados, hora[, rótulo] )Classe para representar a evolução por um operador hamiltoniano como um portão.

Abaixo, fornecemos as mesmas operações que as classes derivadas de QuantumCircuit. Entretanto, para melhorar o desempenho do compilador e do tempo de execução, sugerimos o uso das funções e portas acima.

Coluna “ 1 ”
Coluna “ 2 ”
FourierChecking(f, g)Circuito de verificação de Fourier.
GraphState(matriz de adjacência)Circuito para preparar um estado de gráfico.
HiddenLinearFunction(matriz de adjacência)Circuito para resolver o problema da função linear oculta.
IQP(interações)Circuito polinomial quântico instantâneo (IQP).
QuantumVolume(num_qubits[, profundidade, semente,...] )Um circuito de modelo de volume quântico.
PhaseEstimation(num_qubits_de_avaliação, unitário)Circuito de estimativa de fase.
GroverOperator(oracle[, state_preparation,...] )O operador Grover.
UnitaryOverlap(unitary1, unitary2[, ...])Circuito que retorna a sobreposição entre duas unidades U2†U1U_2^{\dag} U_1.

Circuitos locais N

As funções a seguir retornam um parâmetro QuantumCircuit parametrizado para ser usado como ansatz em um amplo conjunto de algoritmos quânticos variacionais.

Por exemplo, podemos criar um circuito variacional

from qiskit.circuit.library import efficient_su2

num_qubits = 4
ansatz = efficient_su2(num_qubits, entanglement="pairwise")
ansatz.draw("mpl")
O eficiente circuito SU2 ansatz...

e combiná-lo com

from qiskit.circuit.library import zz_feature_map

circuit = zz_feature_map(num_qubits)
circuit.barrier()
circuit.compose(ansatz, inplace=True)

circuit.draw("mpl")
... combinado com o mapa de recursos ZZ. ... combinado com o mapa de recursos ZZ.

para obter um circuito para classificação quântica variacional.

Todas as funções a seguir constroem circuitos variacionais e são otimizadas para uma construção rápida:

Coluna “ 1 ”
Coluna “ 2 ”
n_local(num_qubits, rotation_blocks,...[,...] )Construa um circuito variacional n-local.
efficient_su2(num_qubits[, su2_gates,...] )O circuito SU(2)SU(2) 2-local eficiente em termos de hardware.
real_amplitudes(número de qubits[, entrelaçamento,...] )Construa um circuito 2-local de amplitudes reais.
pauli_two_design(num_qubits[, reps, seed,...] )Construa um ansatz de projeto Pauli 2.
excitation_preserving(num_qubits[, modo,...] )O ansatz da função de onda com preservação da excitação heurística.
qaoa_ansatz(custo_operador[, repetições,...] )Um circuito quântico QAOA generalizado com suporte de estados iniciais e misturadores personalizados.
hamiltonian_variational_ansatz(hamiltoniano)Construa um ansatz variacional hamiltoniano.
evolved_operator_ansatz(operadores[, representantes,...] )Construa um ansatz a partir de evoluções de operadores.

Embora sugiramos o uso das funções acima, também continuamos a apoiar as seguintes BlueprintCircuit, que envolvem os circuitos em um bloco e permitem mutações no local dos circuitos:

Coluna “ 1 ”
Coluna “ 2 ”
NLocal( [num_qubits, rotation_blocks,...] )A classe de circuito n-local.
TwoLocal( [num_qubits, rotation_blocks,...] )O circuito de dois locais.
PauliTwoDesign( [num_qubits, reps, seed,...] )O ansatz de Pauli Two-Design.
RealAmplitudes( [número de qubits, entrelaçamento,...] )O circuito de 2 locais de amplitudes reais.
EfficientSU2( [num_qubits, su2_gates,...] )O circuito SU(2) 2-local eficiente em termos de hardware.
EvolvedOperatorAnsatz( [operadores, representantes,...] )O operador evoluído ansatz.
ExcitationPreserving( [num_qubits, modo,...] )O ansatz da função de onda com preservação da excitação heurística.
QAOAAnsatz( [custo_operador, repetições,...] )Um circuito quântico QAOA generalizado com suporte de estados iniciais e misturadores personalizados.

Circuitos de codificação de dados

As funções a seguir retornam um parâmetro QuantumCircuit parametrizado para ser usado como circuitos de codificação de dados em uma série de algoritmos quânticos variacionais:

Coluna “ 1 ”
Coluna “ 2 ”
pauli_feature_map(dimensão_da_característica[, repetições,...] )O circuito de expansão de Pauli.
z_feature_map(dimensão_da_característica[, repetições,...] )O circuito Pauli Z-evolution de primeira ordem.
zz_feature_map(dimensão_da_característica[, repetições,...] )Circuito de evolução Pauli-Z de segunda ordem.

Embora sugiramos o uso das funções acima, também continuamos a apoiar as seguintes BlueprintCircuit, que envolvem os circuitos em um bloco e permitem mutações no local dos circuitos:

Coluna “ 1 ”
Coluna “ 2 ”
PauliFeatureMap( [dimensão_da_característica, repetições,...] )O circuito de expansão de Pauli.
ZFeatureMap(dimensão_da_característica[, repetições,...] )O circuito Pauli Z-evolution de primeira ordem.
ZZFeatureMap(dimensão_da_característica[, repetições,...] )Circuito de evolução Pauli-Z de segunda ordem.

Circuitos de preparação de dados

As operações a seguir são usadas para a preparação do estado:

Coluna “ 1 ”
Coluna “ 2 ”
StatePreparation(parâmetros[, num_qubits,...] )Preparação de estado de amplitude complexa.
Initialize(parâmetros[, num_qubits, normalizar] )Inicialização de amplitude complexa.

Oráculos

Um "oráculo" pode se referir a uma variedade de operações de caixa preta em estados quânticos. Aqui, consideramos oráculos que implementam funções booleanas f:{0,...,2n−1}→{0,1}f: \{0, ..., 2^n - 1\} \rightarrow \{0, 1\} por meio de mudanças de fase

∣x⟩n↦(−1)f(x)∣x⟩n,|x\rangle_n \mapsto (-1)^{f(x)} |x\rangle_n,

ou bit-flips

∣x⟩n∣b⟩↦∣x⟩n∣b⊕f(x)⟩.|x\rangle_n |b\rangle \mapsto |x\rangle_n |b \oplus f(x)\rangle.

Eles são implementados em

Coluna “ 1 ”
Coluna “ 2 ”
PhaseOracleGate(expressão[, var_order, rótulo] )Implementa um oráculo de fase.
BitFlipOracleGate(expressão[, var_order, rótulo] )Implementa um oráculo de inversão de bits

e um elemento fundamental do algoritmo de Grover (ver grover_operator()).

Além da implementação baseada em Gate -, também oferecemos suporte à QuantumCircuitversão - do oráculo de inversão de fase

Coluna “ 1 ”
Coluna “ 2 ”
PhaseOracle(expressão[, var_order] )Fase Oracle.

Circuitos modelo

Os modelos são funções que retornam circuitos que calculam a identidade. Eles são usados na otimização de circuitos em que a correspondência de parte do modelo permite que o compilador substitua a correspondência pelo inverso do restante do modelo.

Neste exemplo, a constante de identidade em um modelo é verificada:

from qiskit.circuit.library.templates import template_nct_4b_1
from qiskit.quantum_info import Operator
import numpy as np

template = template_nct_4b_1()

identity = np.identity(2 ** len(template.qubits), dtype=complex)
data = Operator(template).data
np.allclose(data, identity)  # True, template_nct_4b_1 is the identity

Circuitos modelo NCT (Not-CNOT-Toffoli)

XGateCircuitos-modelo para as portas, CXGate, e CCXGate (Toffoli).

Referências

Maslov, D. e Dueck, G. W. e Miller, D. M., Técnicas para a síntese de redes Toffoli reversíveis, 2007 https://dx.doi.org/10.1145/1278349.1278355

template_nct_2a_1

qiskit.circuit.library.templates.nct.template_nct_2a_1()

GitHub

Modelo 2a_1:

     ┌───┐┌───┐
q_0: ┤ X ├┤ X ├
     └───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_2a_2

qiskit.circuit.library.templates.nct.template_nct_2a_2()

GitHub

Modelo 2a_2:

q_0: ──■────■──
     ┌─┴─┐┌─┴─┐
q_1: ┤ X ├┤ X ├
     └───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_2a_3

qiskit.circuit.library.templates.nct.template_nct_2a_3()

GitHub

Modelo 2a_3:

q_0: ──■────■──
       │    │
q_1: ──■────■──
     ┌─┴─┐┌─┴─┐
q_2: ┤ X ├┤ X ├
     └───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_4a_1

qiskit.circuit.library.templates.nct.template_nct_4a_1()

GitHub

Modelo 4a_1:

q_0: ───────■─────────■──
            │         │
q_1: ──■────┼────■────┼──
       │    │    │    │
q_2: ──■────■────■────■──
       │  ┌─┴─┐  │  ┌─┴─┐
q_3: ──┼──┤ X ├──┼──┤ X ├
     ┌─┴─┐└───┘┌─┴─┐└───┘
q_4: ┤ X ├─────┤ X ├─────
     └───┘     └───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_4a_2

qiskit.circuit.library.templates.nct.template_nct_4a_2()

GitHub

Modelo 4a_2:

q_0: ──■─────────■───────
       │         │
q_1: ──■────■────■────■──
       │  ┌─┴─┐  │  ┌─┴─┐
q_2: ──┼──┤ X ├──┼──┤ X ├
     ┌─┴─┐└───┘┌─┴─┐└───┘
q_3: ┤ X ├─────┤ X ├─────
     └───┘     └───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_4a_3

qiskit.circuit.library.templates.nct.template_nct_4a_3()

GitHub

Modelo 4a_3:

q_0: ──■────■────■────■──
       │  ┌─┴─┐  │  ┌─┴─┐
q_1: ──┼──┤ X ├──┼──┤ X ├
     ┌─┴─┐└───┘┌─┴─┐└───┘
q_2: ┤ X ├─────┤ X ├─────
     └───┘     └───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_4b_1

qiskit.circuit.library.templates.nct.template_nct_4b_1()

GitHub

Modelo 4b_1:

q_0: ───────■─────────■──
            │         │
q_1: ──■────┼────■────┼──
       │    │    │    │
q_2: ──■────■────■────■──
     ┌─┴─┐┌─┴─┐┌─┴─┐┌─┴─┐
q_3: ┤ X ├┤ X ├┤ X ├┤ X ├
     └───┘└───┘└───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_4b_2

qiskit.circuit.library.templates.nct.template_nct_4b_2()

GitHub

Modelo 4b_2:

q_0: ──■─────────■───────
       │         │
q_1: ──■────■────■────■──
     ┌─┴─┐┌─┴─┐┌─┴─┐┌─┴─┐
q_2: ┤ X ├┤ X ├┤ X ├┤ X ├
     └───┘└───┘└───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_5a_1

qiskit.circuit.library.templates.nct.template_nct_5a_1()

GitHub

Modelo 5a_1:

q_0: ──■────■────■────■────■──
       │  ┌─┴─┐  │  ┌─┴─┐  │
q_1: ──■──┤ X ├──■──┤ X ├──┼──
     ┌─┴─┐└───┘┌─┴─┐└───┘┌─┴─┐
q_2: ┤ X ├─────┤ X ├─────┤ X ├
     └───┘     └───┘     └───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_5a_2

qiskit.circuit.library.templates.nct.template_nct_5a_2()

GitHub

Modelo 5a_2:

q_0: ──■─────────■─────────■──
       │  ┌───┐  │  ┌───┐  │
q_1: ──■──┤ X ├──■──┤ X ├──┼──
     ┌─┴─┐└───┘┌─┴─┐└───┘┌─┴─┐
q_2: ┤ X ├─────┤ X ├─────┤ X ├
     └───┘     └───┘     └───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_5a_3

qiskit.circuit.library.templates.nct.template_nct_5a_3()

GitHub

Modelo 5a_3:

q_0: ───────■─────────■────■──
          ┌─┴─┐     ┌─┴─┐  │
q_1: ──■──┤ X ├──■──┤ X ├──┼──
     ┌─┴─┐└───┘┌─┴─┐└───┘┌─┴─┐
q_2: ┤ X ├─────┤ X ├─────┤ X ├
     └───┘     └───┘     └───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_5a_4

qiskit.circuit.library.templates.nct.template_nct_5a_4()

GitHub

Modelo 5a_4:

          ┌───┐     ┌───┐
q_0: ──■──┤ X ├──■──┤ X ├
     ┌─┴─┐└───┘┌─┴─┐├───┤
q_1: ┤ X ├─────┤ X ├┤ X ├
     └───┘     └───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_6a_1

qiskit.circuit.library.templates.nct.template_nct_6a_1()

GitHub

Modelo 6a_1:

          ┌───┐     ┌───┐     ┌───┐
q_0: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
     ┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_1: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
     └───┘     └───┘     └───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_6a_2

qiskit.circuit.library.templates.nct.template_nct_6a_2()

GitHub

Modelo 6a_2:

q_0: ──■────■────■────■────■────■──
       │  ┌─┴─┐  │  ┌─┴─┐  │  ┌─┴─┐
q_1: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
     ┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_2: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
     └───┘     └───┘     └───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_6a_3

qiskit.circuit.library.templates.nct.template_nct_6a_3()

GitHub

Modelo 6a_3:

q_0: ───────■─────────■────■────■──
          ┌─┴─┐     ┌─┴─┐  │  ┌─┴─┐
q_1: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
     ┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_2: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
     └───┘     └───┘     └───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_6a_4

qiskit.circuit.library.templates.nct.template_nct_6a_4()

GitHub

Modelo 6a_4:

q_0: ───────■──────────────■───────
          ┌─┴─┐     ┌───┐  │  ┌───┐
q_1: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
     ┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_2: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
     └───┘     └───┘     └───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_6b_1

qiskit.circuit.library.templates.nct.template_nct_6b_1()

GitHub

Modelo 6b_1:

q_0: ──■─────────■────■─────────■──
       │       ┌─┴─┐  │       ┌─┴─┐
q_1: ──■────■──┤ X ├──■────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_6b_2

qiskit.circuit.library.templates.nct.template_nct_6b_2()

GitHub

Modelo 6b_2:

q_0: ───────■────■─────────■────■──
            │  ┌─┴─┐       │  ┌─┴─┐
q_1: ──■────■──┤ X ├──■────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_6c_1

qiskit.circuit.library.templates.nct.template_nct_6c_1()

GitHub

Modelo 6c_1:

q_0: ──■─────────■─────────■────■──
       │  ┌───┐  │  ┌───┐  │  ┌─┴─┐
q_1: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
     ┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_2: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
     └───┘     └───┘     └───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_7a_1

qiskit.circuit.library.templates.nct.template_nct_7a_1()

GitHub

Modelo 7a_1:

     ┌───┐                    ┌───┐
q_0: ┤ X ├──■─────────■────■──┤ X ├──■──
     └─┬─┘┌─┴─┐       │  ┌─┴─┐└─┬─┘  │
q_1: ──■──┤ X ├──■────■──┤ X ├──■────■──
          └───┘┌─┴─┐┌─┴─┐└───┘     ┌─┴─┐
q_2: ──────────┤ X ├┤ X ├──────────┤ X ├
               └───┘└───┘          └───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_7b_1

qiskit.circuit.library.templates.nct.template_nct_7b_1()

GitHub

Modelo 7b_1:

     ┌───┐                    ┌───┐
q_0: ┤ X ├──■─────────■────■──┤ X ├──■──
     └───┘┌─┴─┐       │  ┌─┴─┐└───┘  │
q_1: ─────┤ X ├──■────■──┤ X ├───────■──
          └───┘┌─┴─┐┌─┴─┐└───┘     ┌─┴─┐
q_2: ──────────┤ X ├┤ X ├──────────┤ X ├
               └───┘└───┘          └───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_7c_1

qiskit.circuit.library.templates.nct.template_nct_7c_1()

GitHub

Modelo 7c_1:

     ┌───┐                    ┌───┐
q_0: ┤ X ├──■─────────■────■──┤ X ├──■──
     └───┘┌─┴─┐       │  ┌─┴─┐└───┘  │
q_1: ─────┤ X ├──■────■──┤ X ├───────■──
          └─┬─┘┌─┴─┐┌─┴─┐└─┬─┘     ┌─┴─┐
q_2: ───────■──┤ X ├┤ X ├──■───────┤ X ├
               └───┘└───┘          └───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_7d_1

qiskit.circuit.library.templates.nct.template_nct_7d_1()

GitHub

Modelo 7d_1:

     ┌───┐                    ┌───┐
q_0: ┤ X ├──■─────────■────■──┤ X ├──■──
     └─┬─┘┌─┴─┐       │  ┌─┴─┐└─┬─┘  │
q_1: ──■──┤ X ├──■────■──┤ X ├──■────■──
          └─┬─┘┌─┴─┐┌─┴─┐└─┬─┘     ┌─┴─┐
q_2: ───────■──┤ X ├┤ X ├──■───────┤ X ├
               └───┘└───┘          └───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_7e_1

qiskit.circuit.library.templates.nct.template_nct_7e_1()

GitHub

Modelo 7e_1:

     ┌───┐                    ┌───┐
q_0: ┤ X ├──■─────────■────■──┤ X ├──■──
     └───┘┌─┴─┐       │  ┌─┴─┐└───┘  │
q_1: ─────┤ X ├───────┼──┤ X ├───────┼──
          └─┬─┘┌───┐┌─┴─┐└─┬─┘     ┌─┴─┐
q_2: ───────■──┤ X ├┤ X ├──■───────┤ X ├
               └───┘└───┘          └───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_9a_1

qiskit.circuit.library.templates.nct.template_nct_9a_1()

GitHub

Modelo 9a_1:

     ┌───┐     ┌───┐          ┌───┐
q_0: ┤ X ├──■──┤ X ├──■────■──┤ X ├──■──
     └─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐
q_1: ──■──┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├
          └─┬─┘  │  ├───┤└─┬─┘┌───┐└─┬─┘
q_2: ───────■────■──┤ X ├──■──┤ X ├──■──
                    └───┘     └───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_9c_1

qiskit.circuit.library.templates.nct.template_nct_9c_1()

GitHub

Modelo 9c_1:

     ┌───┐     ┌───┐┌───┐     ┌───┐          ┌───┐
q_0: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘
q_1: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_9c_2

qiskit.circuit.library.templates.nct.template_nct_9c_2()

GitHub

Modelo 9c_2:

q_0: ───────■────■──────────────■────■─────────■──
     ┌───┐  │  ┌─┴─┐┌───┐     ┌─┴─┐  │       ┌─┴─┐
q_1: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_9c_3

qiskit.circuit.library.templates.nct.template_nct_9c_3()

GitHub

Modelo 9c_3:

q_0: ───────■────────────────────────■────────────
     ┌───┐  │  ┌───┐┌───┐     ┌───┐  │       ┌───┐
q_1: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_9c_4

qiskit.circuit.library.templates.nct.template_nct_9c_4()

GitHub

Modelo 9c_4:

q_0: ──■────■─────────■──────────────■────────────
     ┌─┴─┐  │  ┌───┐┌─┴─┐     ┌───┐  │       ┌───┐
q_1: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_9c_5

qiskit.circuit.library.templates.nct.template_nct_9c_5()

GitHub

Modelo 9c_5:

q_0: ────────────■─────────■──────────────■───────
     ┌───┐     ┌─┴─┐┌───┐  │  ┌───┐       │  ┌───┐
q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_9c_6

qiskit.circuit.library.templates.nct.template_nct_9c_6()

GitHub

Modelo 9c_6:

q_0: ───────■────■─────────■─────────■────■───────
     ┌───┐  │  ┌─┴─┐┌───┐  │  ┌───┐  │    │  ┌───┐
q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_9c_7

qiskit.circuit.library.templates.nct.template_nct_9c_7()

GitHub

Modelo 9c_7:

q_0: ──■────■────■────■────■─────────■────■───────
     ┌─┴─┐  │  ┌─┴─┐┌─┴─┐  │  ┌───┐  │    │  ┌───┐
q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_9c_8

qiskit.circuit.library.templates.nct.template_nct_9c_8()

GitHub

Modelo 9c_8:

q_0: ──■─────────■────■─────────■──────────────■──
     ┌─┴─┐     ┌─┴─┐┌─┴─┐     ┌─┴─┐          ┌─┴─┐
q_1: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_9c_9

qiskit.circuit.library.templates.nct.template_nct_9c_9()

GitHub

Modelo 9c_9:

q_0: ──■────■────■────■─────────■────■─────────■──
     ┌─┴─┐  │  ┌─┴─┐┌─┴─┐     ┌─┴─┐  │       ┌─┴─┐
q_1: ┤ X ├──■──┤ X ├┤ X ├─────┤ X ├──■───────┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌───┐└─┬─┘┌─┴─┐┌───┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_9c_10

qiskit.circuit.library.templates.nct.template_nct_9c_10()

GitHub

Modelo 9c_10:

q_0: ──■─────────■────■────■────■─────────■────■──
     ┌─┴─┐     ┌─┴─┐┌─┴─┐  │  ┌─┴─┐       │  ┌─┴─┐
q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_9c_11

qiskit.circuit.library.templates.nct.template_nct_9c_11()

GitHub

Modelo 9c_11:

q_0: ───────■────■─────────■────■────■────■────■──
     ┌───┐  │  ┌─┴─┐┌───┐  │  ┌─┴─┐  │    │  ┌─┴─┐
q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_9c_12

qiskit.circuit.library.templates.nct.template_nct_9c_12()

GitHub

Modelo 9c_12:

q_0: ──■────■────■────■────■────■────■────■────■──
     ┌─┴─┐  │  ┌─┴─┐┌─┴─┐  │  ┌─┴─┐  │    │  ┌─┴─┐
q_1: ┤ X ├──■──┤ X ├┤ X ├──┼──┤ X ├──■────┼──┤ X ├
     └─┬─┘┌─┴─┐└───┘└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ──■──┤ X ├───────■──┤ X ├──■──┤ X ├┤ X ├──■──
          └───┘          └───┘     └───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_9d_1

qiskit.circuit.library.templates.nct.template_nct_9d_1()

GitHub

Modelo 9d_1:

               ┌───┐          ┌───┐          ┌───┐
q_0: ──■───────┤ X ├───────■──┤ X ├───────■──┤ X ├
     ┌─┴─┐┌───┐└─┬─┘┌───┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘
q_1: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_9d_2

qiskit.circuit.library.templates.nct.template_nct_9d_2()

GitHub

Modelo 9d_2:

q_0: ──■────■────■──────────────■──────────────■──
       │    │  ┌─┴─┐          ┌─┴─┐          ┌─┴─┐
q_1: ──■────┼──┤ X ├───────■──┤ X ├───────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_9d_3

qiskit.circuit.library.templates.nct.template_nct_9d_3()

GitHub

Modelo 9d_3:

q_0: ──■────■───────────────────■─────────────────
       │    │  ┌───┐          ┌─┴─┐          ┌───┐
q_1: ──■────┼──┤ X ├───────■──┤ X ├───────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_9d_4

qiskit.circuit.library.templates.nct.template_nct_9d_4()

GitHub

Modelo 9d_4:

q_0: ───────■─────────■──────────────■────────────
            │  ┌───┐  │       ┌───┐  │       ┌───┐
q_1: ──■────┼──┤ X ├──┼────■──┤ X ├──┼────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_9d_5

qiskit.circuit.library.templates.nct.template_nct_9d_5()

GitHub

Modelo 9d_5:

q_0: ──■────■─────────■─────────■────■────────────
       │    │  ┌───┐  │       ┌─┴─┐  │       ┌───┐
q_1: ──■────┼──┤ X ├──┼────■──┤ X ├──┼────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_9d_6

qiskit.circuit.library.templates.nct.template_nct_9d_6()

GitHub

Modelo 9d_6:

q_0: ──■────■──────────────■────■─────────■───────
       │    │  ┌───┐       │  ┌─┴─┐       │  ┌───┐
q_1: ──■────┼──┤ X ├───────■──┤ X ├───────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_9d_7

qiskit.circuit.library.templates.nct.template_nct_9d_7()

GitHub

Modelo 9d_7:

q_0: ──■────■─────────■────■────■────■────■───────
       │    │  ┌───┐  │    │  ┌─┴─┐  │    │  ┌───┐
q_1: ──■────┼──┤ X ├──┼────■──┤ X ├──┼────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_9d_8

qiskit.circuit.library.templates.nct.template_nct_9d_8()

GitHub

Modelo 9d_8:

q_0: ──■────■────■────■─────────■────■─────────■──
       │    │  ┌─┴─┐  │       ┌─┴─┐  │       ┌─┴─┐
q_1: ──■────┼──┤ X ├──┼────■──┤ X ├──┼────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_9d_9

qiskit.circuit.library.templates.nct.template_nct_9d_9()

GitHub

Modelo 9d_9:

q_0: ──■────■────■─────────■────■─────────■────■──
       │    │  ┌─┴─┐       │  ┌─┴─┐       │  ┌─┴─┐
q_1: ──■────┼──┤ X ├───────■──┤ X ├───────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘┌───┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

template_nct_9d_10

qiskit.circuit.library.templates.nct.template_nct_9d_10()

GitHub

Modelo 9d_10:

q_0: ──■────■────■────■────■────■────■────■────■──
       │    │  ┌─┴─┐  │    │  ┌─┴─┐  │    │  ┌─┴─┐
q_1: ──■────┼──┤ X ├──┼────■──┤ X ├──┼────■──┤ X ├
     ┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
     └───┘└───┘     └───┘└───┘     └───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

Circuitos de modelo Clifford

Circuitos de modelo sobre portas de Clifford.

clifford_2_1

qiskit.circuit.library.clifford_2_1()

GitHub

Modelo Clifford 2_1:

q_0: ─■──■─
      │  │
q_1: ─■──■─

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

clifford_2_2

qiskit.circuit.library.clifford_2_2()

GitHub

Modelo de Clifford 2_2:

q_0: ──■────■──
     ┌─┴─┐┌─┴─┐
q_1: ┤ X ├┤ X ├
     └───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

clifford_2_3

qiskit.circuit.library.clifford_2_3()

GitHub

Modelo de Clifford 2_3:

     ┌───┐┌───┐
q_0: ┤ H ├┤ H ├
     └───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

clifford_2_4

qiskit.circuit.library.clifford_2_4()

GitHub

Modelo de Clifford 2_4:

q_0: ─X──X─
      │  │
q_1: ─X──X─

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

clifford_3_1

qiskit.circuit.library.clifford_3_1()

GitHub

Clifford modelo 3_1:

     ┌───┐┌───┐┌───┐
q_0: ┤ S ├┤ S ├┤ Z ├
     └───┘└───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

clifford_4_1

qiskit.circuit.library.clifford_4_1()

GitHub

Clifford modelo 4_1:

          ┌───┐
q_0: ──■──┤ X ├──■───X─
     ┌─┴─┐└─┬─┘┌─┴─┐ │
q_1: ┤ X ├──■──┤ X ├─X─
     └───┘     └───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

clifford_4_2

qiskit.circuit.library.clifford_4_2()

GitHub

Modelo de Clifford 4_2:

q_0: ───────■────────■─
     ┌───┐┌─┴─┐┌───┐ │
q_1: ┤ H ├┤ X ├┤ H ├─■─
     └───┘└───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

clifford_4_3

qiskit.circuit.library.clifford_4_3()

GitHub

Modelo Clifford 4_3:

     ┌───┐     ┌─────┐
q_0: ┤ S ├──■──┤ SDG ├──■──
     └───┘┌─┴─┐└─────┘┌─┴─┐
q_1: ─────┤ X ├───────┤ X ├
          └───┘       └───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

clifford_4_4

qiskit.circuit.library.clifford_4_4()

GitHub

Modelo Clifford 4_4:

     ┌───┐   ┌─────┐
q_0: ┤ S ├─■─┤ SDG ├─■─
     └───┘ │ └─────┘ │
q_1: ──────■─────────■─

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

clifford_5_1

qiskit.circuit.library.clifford_5_1()

GitHub

Modelo Clifford 5_1:

q_0: ──■─────────■─────────■──
     ┌─┴─┐     ┌─┴─┐       │
q_1: ┤ X ├──■──┤ X ├──■────┼──
     └───┘┌─┴─┐└───┘┌─┴─┐┌─┴─┐
q_2: ─────┤ X ├─────┤ X ├┤ X ├
          └───┘     └───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

clifford_6_1

qiskit.circuit.library.clifford_6_1()

GitHub

Clifford modelo 6_1:

     ┌───┐     ┌───┐┌───┐
q_0: ┤ H ├──■──┤ H ├┤ X ├
     ├───┤┌─┴─┐├───┤└─┬─┘
q_1: ┤ H ├┤ X ├┤ H ├──■──
     └───┘└───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

clifford_6_2

qiskit.circuit.library.clifford_6_2()

GitHub

Modelo de Clifford 6_2:

     ┌───┐
q_0: ┤ S ├──■───────────■───■─
     ├───┤┌─┴─┐┌─────┐┌─┴─┐ │
q_1: ┤ S ├┤ X ├┤ SDG ├┤ X ├─■─
     └───┘└───┘└─────┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

clifford_6_3

qiskit.circuit.library.clifford_6_3()

GitHub

Modelo de Clifford 6_3:

           ┌───┐     ┌───┐
q_0: ─X──■─┤ H ├──■──┤ X ├─────
      │  │ └───┘┌─┴─┐└─┬─┘┌───┐
q_1: ─X──■──────┤ X ├──■──┤ H ├
                └───┘     └───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

clifford_6_4

qiskit.circuit.library.clifford_6_4()

GitHub

Modelo Clifford 6_4:

global phase: 7π/4
   ┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐
q: ┤ S ├┤ H ├┤ S ├┤ H ├┤ S ├┤ H ├
   └───┘└───┘└───┘└───┘└───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

clifford_6_5

qiskit.circuit.library.clifford_6_5()

GitHub

Modelo Clifford 6_5:

              ┌───┐
q_0: ─■───■───┤ S ├───■───────
      │ ┌─┴─┐┌┴───┴┐┌─┴─┐┌───┐
q_1: ─■─┤ X ├┤ SDG ├┤ X ├┤ S ├
        └───┘└─────┘└───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

clifford_8_1

qiskit.circuit.library.clifford_8_1()

GitHub

Modelo Clifford 8_1:

               ┌───┐ ┌───┐ ┌───┐┌─────┐
q_0: ──■───────┤ X ├─┤ S ├─┤ X ├┤ SDG ├
     ┌─┴─┐┌───┐└─┬─┘┌┴───┴┐└─┬─┘└┬───┬┘
q_1: ┤ X ├┤ H ├──■──┤ SDG ├──■───┤ H ├─
     └───┘└───┘     └─────┘      └───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

clifford_8_2

qiskit.circuit.library.clifford_8_2()

GitHub

Modelo Clifford 8_2:

                     ┌───┐
q_0: ──■─────────■───┤ S ├───■────────────
     ┌─┴─┐┌───┐┌─┴─┐┌┴───┴┐┌─┴─┐┌───┐┌───┐
q_1: ┤ X ├┤ H ├┤ X ├┤ SDG ├┤ X ├┤ S ├┤ H ├
     └───┘└───┘└───┘└─────┘└───┘└───┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

clifford_8_3

qiskit.circuit.library.clifford_8_3()

GitHub

Modelo Clifford 8_3:

q_0: ─────────────────■───────────────────────■──
     ┌───┐┌───┐┌───┐┌─┴─┐┌─────┐┌───┐┌─────┐┌─┴─┐
q_1: ┤ S ├┤ H ├┤ S ├┤ X ├┤ SDG ├┤ H ├┤ SDG ├┤ X ├
     └───┘└───┘└───┘└───┘└─────┘└───┘└─────┘└───┘

Retorna

como um circuito quântico.

Tipo de retorno

QuantumCircuit

Circuitos modelo RZXGate

Circuitos modelo com RZXGate.

rzx_yz

qiskit.circuit.library.rzx_yz(theta=None)

GitHub

Modelo baseado em RZX para CX - RYGate - CX.

          ┌────────┐     ┌─────────┐┌─────────┐┌──────────┐
q_0: ──■──┤ RY(-ϴ) ├──■──┤ RX(π/2) ├┤0        ├┤ RX(-π/2) ├
     ┌─┴─┐└────────┘┌─┴─┐└─────────┘│  RZX(ϴ) │└──────────┘
q_1: ┤ X ├──────────┤ X ├───────────┤1        ├────────────
     └───┘          └───┘           └─────────┘

Parâmetros

theta (ParameterExpression |float | None)

rzx_xz

qiskit.circuit.library.rzx_xz(theta=None)

GitHub

Modelo baseado em RZX para CX - RXGate - CX.

global phase: π
     ┌───┐         ┌───┐┌─────────┐┌─────────┐┌─────────┐┌──────────┐»
q_0: ┤ X ├─────────┤ X ├┤ Rz(π/2) ├┤ Rx(π/2) ├┤ Rz(π/2) ├┤0         ├»
     └─┬─┘┌───────┐└─┬─┘└─────────┘└─────────┘└─────────┘│  Rzx(-ϴ) │»
q_1: ──■──┤ Rx(ϴ) ├──■───────────────────────────────────┤1         ├»
          └───────┘                                      └──────────┘»
«     ┌─────────┐┌─────────┐┌─────────┐
«q_0: ┤ Rz(π/2) ├┤ Rx(π/2) ├┤ Rz(π/2) ├
«     └─────────┘└─────────┘└─────────┘
«q_1: ─────────────────────────────────
«

Parâmetros

theta (ParameterExpression |float | None)

rzx_cy

qiskit.circuit.library.rzx_cy(theta=None)

GitHub

Modelo baseado em RZX para CX - RYGate - CX.

                                                       ┌──────────┐
q_0: ──■─────────────■─────────────────────────────────┤0         ├───────────
     ┌─┴─┐┌───────┐┌─┴─┐┌────────┐┌──────────┐┌───────┐│  RZX(-ϴ) │┌─────────┐
q_1: ┤ X ├┤ RY(ϴ) ├┤ X ├┤ RY(-ϴ) ├┤ RZ(-π/2) ├┤ RX(ϴ) ├┤1         ├┤ RZ(π/2) ├
     └───┘└───────┘└───┘└────────┘└──────────┘└───────┘└──────────┘└─────────┘

Parâmetros

theta (ParameterExpression |float | None)

rzx_zz1

qiskit.circuit.library.rzx_zz1(theta=None)

GitHub

Modelo baseado em RZX para CX - RZGate - CX.

global phase: π/2
                                                                              »
  q_0: ──■────────────────────────────────────────────■───────────────────────»
       ┌─┴─┐┌───────┐┌────┐┌───────┐┌────┐┌────────┐┌─┴─┐┌────────┐┌─────────┐»
  q_1: ┤ X ├┤ Rz(ϴ) ├┤ √X ├┤ Rz(π) ├┤ √X ├┤ Rz(3π) ├┤ X ├┤ Rz(-ϴ) ├┤ Rz(π/2) ├»
       └───┘└───────┘└────┘└───────┘└────┘└────────┘└───┘└────────┘└─────────┘»
  «                                    ┌──────────┐                      »
  «q_0: ───────────────────────────────┤0         ├──────────────────────»
  «     ┌─────────┐┌─────────┐┌───────┐│  Rzx(-ϴ) │┌─────────┐┌─────────┐»
  «q_1: ┤ Rx(π/2) ├┤ Rz(π/2) ├┤ Rx(ϴ) ├┤1         ├┤ Rz(π/2) ├┤ Rx(π/2) ├»
  «     └─────────┘└─────────┘└───────┘└──────────┘└─────────┘└─────────┘»
  «
  «q_0: ───────────
  «     ┌─────────┐
  «q_1: ┤ Rz(π/2) ├
  «     └─────────┘

Parâmetros

theta (ParameterExpression |float | None)

rzx_zz2

qiskit.circuit.library.rzx_zz2(theta=None)

GitHub

Modelo baseado em RZX para CX - PhaseGate - CX.

global phase: π
                                                                            »
  q_0: ──■────────────■─────────────────────────────────────────────────────»
       ┌─┴─┐┌──────┐┌─┴─┐┌───────┐┌─────────┐┌─────────┐┌─────────┐┌───────┐»
  q_1: ┤ X ├┤ P(ϴ) ├┤ X ├┤ P(-ϴ) ├┤ Rz(π/2) ├┤ Rx(π/2) ├┤ Rz(π/2) ├┤ Rx(ϴ) ├»
       └───┘└──────┘└───┘└───────┘└─────────┘└─────────┘└─────────┘└───────┘»
  «     ┌──────────┐
  «q_0: ┤0         ├─────────────────────────────────
  «     │  Rzx(-ϴ) │┌─────────┐┌─────────┐┌─────────┐
  «q_1: ┤1         ├┤ Rz(π/2) ├┤ Rx(π/2) ├┤ Rz(π/2) ├
  «     └──────────┘└─────────┘└─────────┘└─────────┘

Parâmetros

theta (ParameterExpression |float | None)

rzx_zz3

qiskit.circuit.library.rzx_zz3(theta=None)

GitHub

Modelo baseado em RZX para CX - RZGate - CX.

global phase: π
                                                                              »
  q_0: ──■─────────────■──────────────────────────────────────────────────────»
       ┌─┴─┐┌───────┐┌─┴─┐┌────────┐┌─────────┐┌─────────┐┌─────────┐┌───────┐»
  q_1: ┤ X ├┤ Rz(ϴ) ├┤ X ├┤ Rz(-ϴ) ├┤ Rz(π/2) ├┤ Rx(π/2) ├┤ Rz(π/2) ├┤ Rx(ϴ) ├»
       └───┘└───────┘└───┘└────────┘└─────────┘└─────────┘└─────────┘└───────┘»
  «     ┌──────────┐
  «q_0: ┤0         ├─────────────────────────────────
  «     │  Rzx(-ϴ) │┌─────────┐┌─────────┐┌─────────┐
  «q_1: ┤1         ├┤ Rz(π/2) ├┤ Rx(π/2) ├┤ Rz(π/2) ├
  «     └──────────┘└─────────┘└─────────┘└─────────┘

Parâmetros

theta (ParameterExpression |float | None)

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