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")
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 ; 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")
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")
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()
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=[])
_SingletonCXGatePortas 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 em torno do eixo . |
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 ( ). |
SdgGate(*args[, _force_mutable] ) | Porta S-adjunta de um único qubit ( ). |
SXGate(*args[, _force_mutable] ) | A porta Sqrt(X) de um único qubit ( ). |
SXdgGate(*args[, _force_mutable] ) | O portão inverso de um único qubit Sqrt(X). |
TGate(*args[, _force_mutable] ) | Porta T de um único qubit ( ). |
TdgGate(*args[, _force_mutable] ) | Porta T-adjunta de um único qubit ( ). |
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 ( ). |
YGate(*args[, _force_mutable] ) | A porta Pauli-Y de um único qubit ( ). |
ZGate(*args[, _force_mutable] ) | A porta Pauli-Z de um único qubit ( ). |
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 . |
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 (rotação sobre XX). |
RYYGate(theta[, rótulo] ) | Uma interação paramétrica de 2 qubits (rotação em torno de YY). |
RZXGate(theta[, rótulo] ) | Uma interação paramétrica de 2 qubits (rotação em torno de ZX). |
RZZGate(theta[, rótulo] ) | Uma interação paramétrica de 2 qubits (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 ( ). |
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
2Coluna “ 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 , em que é 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 a 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 . |
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 . |
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 -qubit, ou seja
em que o tamanho 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 de dois registros de qubit de tamanho . |
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 , 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 -qubit, ou seja
em que é 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 aplicada às amplitudes dos 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
usando as rotações de Pauli- para diferentes tipos de funções , 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 (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 . |
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 . |
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")
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")
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 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 por meio de mudanças de fase
ou bit-flips
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 identityCircuitos 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()
Modelo 2a_1:
┌───┐┌───┐
q_0: ┤ X ├┤ X ├
└───┘└───┘Retorna
como um circuito quântico.
Tipo de retorno
template_nct_2a_2
qiskit.circuit.library.templates.nct.template_nct_2a_2()
Modelo 2a_2:
q_0: ──■────■──
┌─┴─┐┌─┴─┐
q_1: ┤ X ├┤ X ├
└───┘└───┘Retorna
como um circuito quântico.
Tipo de retorno
template_nct_2a_3
qiskit.circuit.library.templates.nct.template_nct_2a_3()
Modelo 2a_3:
q_0: ──■────■──
│ │
q_1: ──■────■──
┌─┴─┐┌─┴─┐
q_2: ┤ X ├┤ X ├
└───┘└───┘Retorna
como um circuito quântico.
Tipo de retorno
template_nct_4a_1
qiskit.circuit.library.templates.nct.template_nct_4a_1()
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
template_nct_4a_2
qiskit.circuit.library.templates.nct.template_nct_4a_2()
Modelo 4a_2:
q_0: ──■─────────■───────
│ │
q_1: ──■────■────■────■──
│ ┌─┴─┐ │ ┌─┴─┐
q_2: ──┼──┤ X ├──┼──┤ X ├
┌─┴─┐└───┘┌─┴─┐└───┘
q_3: ┤ X ├─────┤ X ├─────
└───┘ └───┘Retorna
como um circuito quântico.
Tipo de retorno
template_nct_4a_3
qiskit.circuit.library.templates.nct.template_nct_4a_3()
Modelo 4a_3:
q_0: ──■────■────■────■──
│ ┌─┴─┐ │ ┌─┴─┐
q_1: ──┼──┤ X ├──┼──┤ X ├
┌─┴─┐└───┘┌─┴─┐└───┘
q_2: ┤ X ├─────┤ X ├─────
└───┘ └───┘Retorna
como um circuito quântico.
Tipo de retorno
template_nct_4b_1
qiskit.circuit.library.templates.nct.template_nct_4b_1()
Modelo 4b_1:
q_0: ───────■─────────■──
│ │
q_1: ──■────┼────■────┼──
│ │ │ │
q_2: ──■────■────■────■──
┌─┴─┐┌─┴─┐┌─┴─┐┌─┴─┐
q_3: ┤ X ├┤ X ├┤ X ├┤ X ├
└───┘└───┘└───┘└───┘Retorna
como um circuito quântico.
Tipo de retorno
template_nct_4b_2
qiskit.circuit.library.templates.nct.template_nct_4b_2()
Modelo 4b_2:
q_0: ──■─────────■───────
│ │
q_1: ──■────■────■────■──
┌─┴─┐┌─┴─┐┌─┴─┐┌─┴─┐
q_2: ┤ X ├┤ X ├┤ X ├┤ X ├
└───┘└───┘└───┘└───┘Retorna
como um circuito quântico.
Tipo de retorno
template_nct_5a_1
qiskit.circuit.library.templates.nct.template_nct_5a_1()
Modelo 5a_1:
q_0: ──■────■────■────■────■──
│ ┌─┴─┐ │ ┌─┴─┐ │
q_1: ──■──┤ X ├──■──┤ X ├──┼──
┌─┴─┐└───┘┌─┴─┐└───┘┌─┴─┐
q_2: ┤ X ├─────┤ X ├─────┤ X ├
└───┘ └───┘ └───┘Retorna
como um circuito quântico.
Tipo de retorno
template_nct_5a_2
qiskit.circuit.library.templates.nct.template_nct_5a_2()
Modelo 5a_2:
q_0: ──■─────────■─────────■──
│ ┌───┐ │ ┌───┐ │
q_1: ──■──┤ X ├──■──┤ X ├──┼──
┌─┴─┐└───┘┌─┴─┐└───┘┌─┴─┐
q_2: ┤ X ├─────┤ X ├─────┤ X ├
└───┘ └───┘ └───┘Retorna
como um circuito quântico.
Tipo de retorno
template_nct_5a_3
qiskit.circuit.library.templates.nct.template_nct_5a_3()
Modelo 5a_3:
q_0: ───────■─────────■────■──
┌─┴─┐ ┌─┴─┐ │
q_1: ──■──┤ X ├──■──┤ X ├──┼──
┌─┴─┐└───┘┌─┴─┐└───┘┌─┴─┐
q_2: ┤ X ├─────┤ X ├─────┤ X ├
└───┘ └───┘ └───┘Retorna
como um circuito quântico.
Tipo de retorno
template_nct_5a_4
qiskit.circuit.library.templates.nct.template_nct_5a_4()
Modelo 5a_4:
┌───┐ ┌───┐
q_0: ──■──┤ X ├──■──┤ X ├
┌─┴─┐└───┘┌─┴─┐├───┤
q_1: ┤ X ├─────┤ X ├┤ X ├
└───┘ └───┘└───┘Retorna
como um circuito quântico.
Tipo de retorno
template_nct_6a_1
qiskit.circuit.library.templates.nct.template_nct_6a_1()
Modelo 6a_1:
┌───┐ ┌───┐ ┌───┐
q_0: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_1: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
└───┘ └───┘ └───┘Retorna
como um circuito quântico.
Tipo de retorno
template_nct_6a_2
qiskit.circuit.library.templates.nct.template_nct_6a_2()
Modelo 6a_2:
q_0: ──■────■────■────■────■────■──
│ ┌─┴─┐ │ ┌─┴─┐ │ ┌─┴─┐
q_1: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_2: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
└───┘ └───┘ └───┘Retorna
como um circuito quântico.
Tipo de retorno
template_nct_6a_3
qiskit.circuit.library.templates.nct.template_nct_6a_3()
Modelo 6a_3:
q_0: ───────■─────────■────■────■──
┌─┴─┐ ┌─┴─┐ │ ┌─┴─┐
q_1: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_2: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
└───┘ └───┘ └───┘Retorna
como um circuito quântico.
Tipo de retorno
template_nct_6a_4
qiskit.circuit.library.templates.nct.template_nct_6a_4()
Modelo 6a_4:
q_0: ───────■──────────────■───────
┌─┴─┐ ┌───┐ │ ┌───┐
q_1: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_2: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
└───┘ └───┘ └───┘Retorna
como um circuito quântico.
Tipo de retorno
template_nct_6b_1
qiskit.circuit.library.templates.nct.template_nct_6b_1()
Modelo 6b_1:
q_0: ──■─────────■────■─────────■──
│ ┌─┴─┐ │ ┌─┴─┐
q_1: ──■────■──┤ X ├──■────■──┤ X ├
┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
└───┘└───┘ └───┘└───┘Retorna
como um circuito quântico.
Tipo de retorno
template_nct_6b_2
qiskit.circuit.library.templates.nct.template_nct_6b_2()
Modelo 6b_2:
q_0: ───────■────■─────────■────■──
│ ┌─┴─┐ │ ┌─┴─┐
q_1: ──■────■──┤ X ├──■────■──┤ X ├
┌─┴─┐┌─┴─┐└─┬─┘┌─┴─┐┌─┴─┐└─┬─┘
q_2: ┤ X ├┤ X ├──■──┤ X ├┤ X ├──■──
└───┘└───┘ └───┘└───┘Retorna
como um circuito quântico.
Tipo de retorno
template_nct_6c_1
qiskit.circuit.library.templates.nct.template_nct_6c_1()
Modelo 6c_1:
q_0: ──■─────────■─────────■────■──
│ ┌───┐ │ ┌───┐ │ ┌─┴─┐
q_1: ──■──┤ X ├──■──┤ X ├──■──┤ X ├
┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘┌─┴─┐└─┬─┘
q_2: ┤ X ├──■──┤ X ├──■──┤ X ├──■──
└───┘ └───┘ └───┘Retorna
como um circuito quântico.
Tipo de retorno
template_nct_7a_1
qiskit.circuit.library.templates.nct.template_nct_7a_1()
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
template_nct_7b_1
qiskit.circuit.library.templates.nct.template_nct_7b_1()
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
template_nct_7c_1
qiskit.circuit.library.templates.nct.template_nct_7c_1()
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
template_nct_7d_1
qiskit.circuit.library.templates.nct.template_nct_7d_1()
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
template_nct_7e_1
qiskit.circuit.library.templates.nct.template_nct_7e_1()
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
template_nct_9a_1
qiskit.circuit.library.templates.nct.template_nct_9a_1()
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
template_nct_9c_1
qiskit.circuit.library.templates.nct.template_nct_9c_1()
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
template_nct_9c_2
qiskit.circuit.library.templates.nct.template_nct_9c_2()
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
template_nct_9c_3
qiskit.circuit.library.templates.nct.template_nct_9c_3()
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
template_nct_9c_4
qiskit.circuit.library.templates.nct.template_nct_9c_4()
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
template_nct_9c_5
qiskit.circuit.library.templates.nct.template_nct_9c_5()
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
template_nct_9c_6
qiskit.circuit.library.templates.nct.template_nct_9c_6()
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
template_nct_9c_7
qiskit.circuit.library.templates.nct.template_nct_9c_7()
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
template_nct_9c_8
qiskit.circuit.library.templates.nct.template_nct_9c_8()
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
template_nct_9c_9
qiskit.circuit.library.templates.nct.template_nct_9c_9()
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
template_nct_9c_10
qiskit.circuit.library.templates.nct.template_nct_9c_10()
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
template_nct_9c_11
qiskit.circuit.library.templates.nct.template_nct_9c_11()
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
template_nct_9c_12
qiskit.circuit.library.templates.nct.template_nct_9c_12()
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
template_nct_9d_1
qiskit.circuit.library.templates.nct.template_nct_9d_1()
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
template_nct_9d_2
qiskit.circuit.library.templates.nct.template_nct_9d_2()
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
template_nct_9d_3
qiskit.circuit.library.templates.nct.template_nct_9d_3()
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
template_nct_9d_4
qiskit.circuit.library.templates.nct.template_nct_9d_4()
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
template_nct_9d_5
qiskit.circuit.library.templates.nct.template_nct_9d_5()
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
template_nct_9d_6
qiskit.circuit.library.templates.nct.template_nct_9d_6()
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
template_nct_9d_7
qiskit.circuit.library.templates.nct.template_nct_9d_7()
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
template_nct_9d_8
qiskit.circuit.library.templates.nct.template_nct_9d_8()
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
template_nct_9d_9
qiskit.circuit.library.templates.nct.template_nct_9d_9()
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
template_nct_9d_10
qiskit.circuit.library.templates.nct.template_nct_9d_10()
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
Circuitos de modelo Clifford
Circuitos de modelo sobre portas de Clifford.
clifford_2_1
qiskit.circuit.library.clifford_2_1()
Modelo Clifford 2_1:
q_0: ─■──■─
│ │
q_1: ─■──■─Retorna
como um circuito quântico.
Tipo de retorno
clifford_2_2
qiskit.circuit.library.clifford_2_2()
Modelo de Clifford 2_2:
q_0: ──■────■──
┌─┴─┐┌─┴─┐
q_1: ┤ X ├┤ X ├
└───┘└───┘Retorna
como um circuito quântico.
Tipo de retorno
clifford_2_3
qiskit.circuit.library.clifford_2_3()
Modelo de Clifford 2_3:
┌───┐┌───┐
q_0: ┤ H ├┤ H ├
└───┘└───┘Retorna
como um circuito quântico.
Tipo de retorno
clifford_2_4
qiskit.circuit.library.clifford_2_4()
Modelo de Clifford 2_4:
q_0: ─X──X─
│ │
q_1: ─X──X─Retorna
como um circuito quântico.
Tipo de retorno
clifford_3_1
qiskit.circuit.library.clifford_3_1()
Clifford modelo 3_1:
┌───┐┌───┐┌───┐
q_0: ┤ S ├┤ S ├┤ Z ├
└───┘└───┘└───┘Retorna
como um circuito quântico.
Tipo de retorno
clifford_4_1
qiskit.circuit.library.clifford_4_1()
Clifford modelo 4_1:
┌───┐
q_0: ──■──┤ X ├──■───X─
┌─┴─┐└─┬─┘┌─┴─┐ │
q_1: ┤ X ├──■──┤ X ├─X─
└───┘ └───┘Retorna
como um circuito quântico.
Tipo de retorno
clifford_4_2
qiskit.circuit.library.clifford_4_2()
Modelo de Clifford 4_2:
q_0: ───────■────────■─
┌───┐┌─┴─┐┌───┐ │
q_1: ┤ H ├┤ X ├┤ H ├─■─
└───┘└───┘└───┘Retorna
como um circuito quântico.
Tipo de retorno
clifford_4_3
qiskit.circuit.library.clifford_4_3()
Modelo Clifford 4_3:
┌───┐ ┌─────┐
q_0: ┤ S ├──■──┤ SDG ├──■──
└───┘┌─┴─┐└─────┘┌─┴─┐
q_1: ─────┤ X ├───────┤ X ├
└───┘ └───┘Retorna
como um circuito quântico.
Tipo de retorno
clifford_4_4
qiskit.circuit.library.clifford_4_4()
Modelo Clifford 4_4:
┌───┐ ┌─────┐
q_0: ┤ S ├─■─┤ SDG ├─■─
└───┘ │ └─────┘ │
q_1: ──────■─────────■─Retorna
como um circuito quântico.
Tipo de retorno
clifford_5_1
qiskit.circuit.library.clifford_5_1()
Modelo Clifford 5_1:
q_0: ──■─────────■─────────■── ┌─┴─┐ ┌─┴─┐ │ q_1: ┤ X ├──■──┤ X ├──■────┼── └───┘┌─┴─┐└───┘┌─┴─┐┌─┴─┐ q_2: ─────┤ X ├─────┤ X ├┤ X ├ └───┘ └───┘└───┘
Retorna
como um circuito quântico.
Tipo de retorno
clifford_6_1
qiskit.circuit.library.clifford_6_1()
Clifford modelo 6_1:
┌───┐ ┌───┐┌───┐ q_0: ┤ H ├──■──┤ H ├┤ X ├ ├───┤┌─┴─┐├───┤└─┬─┘ q_1: ┤ H ├┤ X ├┤ H ├──■── └───┘└───┘└───┘
Retorna
como um circuito quântico.
Tipo de retorno
clifford_6_2
qiskit.circuit.library.clifford_6_2()
Modelo de Clifford 6_2:
┌───┐ q_0: ┤ S ├──■───────────■───■─ ├───┤┌─┴─┐┌─────┐┌─┴─┐ │ q_1: ┤ S ├┤ X ├┤ SDG ├┤ X ├─■─ └───┘└───┘└─────┘└───┘
Retorna
como um circuito quântico.
Tipo de retorno
clifford_6_3
qiskit.circuit.library.clifford_6_3()
Modelo de Clifford 6_3:
┌───┐ ┌───┐
q_0: ─X──■─┤ H ├──■──┤ X ├─────
│ │ └───┘┌─┴─┐└─┬─┘┌───┐
q_1: ─X──■──────┤ X ├──■──┤ H ├
└───┘ └───┘Retorna
como um circuito quântico.
Tipo de retorno
clifford_6_4
qiskit.circuit.library.clifford_6_4()
Modelo Clifford 6_4:
global phase: 7π/4
┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐
q: ┤ S ├┤ H ├┤ S ├┤ H ├┤ S ├┤ H ├
└───┘└───┘└───┘└───┘└───┘└───┘Retorna
como um circuito quântico.
Tipo de retorno
clifford_6_5
qiskit.circuit.library.clifford_6_5()
Modelo Clifford 6_5:
┌───┐
q_0: ─■───■───┤ S ├───■───────
│ ┌─┴─┐┌┴───┴┐┌─┴─┐┌───┐
q_1: ─■─┤ X ├┤ SDG ├┤ X ├┤ S ├
└───┘└─────┘└───┘└───┘Retorna
como um circuito quântico.
Tipo de retorno
clifford_8_1
qiskit.circuit.library.clifford_8_1()
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
clifford_8_2
qiskit.circuit.library.clifford_8_2()
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
clifford_8_3
qiskit.circuit.library.clifford_8_3()
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
Circuitos modelo RZXGate
Circuitos modelo com RZXGate.
rzx_yz
qiskit.circuit.library.rzx_yz(theta=None)
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)
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)
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)
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)
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)
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)