Pular para o conteúdo principal
Este projeto está em fase beta. Encontrou um bug? Abra uma issue no GitHub. Tem uma pergunta ou ideia? Pergunte no Discussions — adoraríamos receber seu feedback!
Como está a qualidade da tradução nesta página?

Ruído e erros

Esta lição apresentará o ruído e os erros quânticos, incluindo muitas de suas fontes, traçando analogias com os erros clássicos. Compreender os tipos de erros que podem ocorrer, bem como a capacidade de modelar o ruído usando canais quânticos, será fundamental para entender as próximas lições. De fato, a maioria dos métodos de tratamento de erros exige que saibamos algo sobre o tipo de ruído ou erro que buscamos reduzir ou corrigir.

Este vídeo apresenta uma visão geral do ruído e dos erros e destaca alguns resultados computacionais. O texto abaixo acrescenta mais detalhes e explora alguns tipos de erros usando o Qiskit.

Causas​

Ruído e erros clássicos​

Para entender os erros e o ruído quântico, vamos começar com o análogo clássico. Erros ocorrem em computadores clássicos por vários motivos, incluindo múltiplos mecanismos de acúmulo espúrio de carga, eventos únicos (single-event upsets) e degradação lenta de materiais. Alguns desses mecanismos (não todos) têm análogos na computação quântica e serão fundamentais para entender os erros e o ruído quântico. Revisamos brevemente alguns deles e depois passamos para os análogos quânticos.

Ruído térmico:

À medida que os componentes de um computador esquentam, o movimento térmico dos átomos e portadores de carga altera a resistividade do material (geralmente aumentando-a). Isso significa que a resistência no circuito pode variar. Embora raro, isso pode resultar em uma transição lógica espúria em um transistor. Embora pequenas variações sejam inevitáveis, o resfriamento adequado dos componentes é fundamental para evitar esses efeitos.

Dano e degradação térmica:

O aquecimento e o resfriamento repetidos dos materiais podem causar uma migração muito lenta dos elementos condutores (metais). Na melhor das hipóteses, isso altera a resistência ou a capacitância (ou ambas) dos elementos do circuito e leva a uma temporização imprecisa na operação do circuito. Na pior das hipóteses, resulta em um curto-circuito ou uma falha grave. Mais uma vez, o controle adequado da temperatura é fundamental para evitar esse tipo de degradação.

Efeitos induzidos por radiação (eventos únicos, SEUs):

Às vezes, partículas de alta energia podem ionizar átomos dentro de um processador e gerar uma carga espúria. Se isso acontecer no lugar errado e no momento errado, pode causar erros lógicos. A fonte dessas partículas de alta energia (incluindo radiação eletromagnética e nêutrons) costuma ser interações de alta energia na atmosfera superior. Esses eventos são, portanto, mais comuns em ambientes de altitude elevada, incluindo o espaço. Eles são combatidos usando códigos de correção de erros e projetos resistentes à radiação.

Interferência eletromagnética:

Erros também podem ser causados por campos eletromagnéticos (EM) externos provenientes de linhas de energia com comutação, transmissores de rádio ou outros componentes do sistema. Isso é diferente da radiação de alta energia do fenômeno anterior. Aqui, campos EM parasitas dependentes do tempo induzem corrente e tensão nos componentes de computação (em vez de ionizar um átomo específico em um único evento). Como a dependência temporal dos campos é um fator determinante nas tensões induzidas, esse tipo de interferência é especialmente importante em sistemas de alta frequência. Esses erros podem ser combatidos por meio de blindagem e aterramento, entre outras medidas.

Crosstalk entre interconexões:

O acoplamento capacitivo ou indutivo entre condutores adjacentes, especialmente em circuitos integrados em escala nanométrica, pode gerar sinais espúrios. Isso está relacionado à interferência eletromagnética, mas é diferente porque a fonte do campo indesejado é outro componente dentro do próprio circuito do computador. Pense em dois fios muito próximos um do outro. Se o fio A sofrer uma transição repentina (mudança de tensão), isso pode induzir correntes no fio B adjacente. A direção e a magnitude exatas dependem do layout do circuito; pode ser um fluxo líquido coerente de carga ou algo mais próximo de correntes parasitas de carga. Mas, em alguns casos, isso pode levar a transições lógicas indesejadas. Esses efeitos de crosstalk podem ser mitigados por meio de espaçamento de layout otimizado, blindagem e tempos de subida de sinal controlados.

Esta não é uma lista completa, mas é suficiente para começarmos a ver paralelos com a computação quântica. Observe que, em todos os tipos de interações indesejadas acima, a manifestação do ruído como um erro lógico só pode assumir a forma de um 0 se tornando um 1, ou um 1 se tornando um 0. Isso é tudo o que é permitido no espaço de estados dos bits clássicos.

Ruído e erros quânticos​

Na computação quântica, ruído e erros costumam ser discutidos juntos, mas é importante reconhecer a diferença. O ruído quântico se refere à perturbação física subjacente que afeta os qubits e os sistemas quânticos. Ele inclui todas as formas de interações ou flutuações indesejadas do ambiente, controles imperfeitos ou defeitos de hardware que fazem o estado quântico se afastar do ideal. Os erros quânticos são os desvios ou falhas específicos na informação quântica que resultam do ruído quântico. Os erros quânticos são as manifestações mensuráveis ou operacionais do ruído, e os erros incluem bit-flips, phase-flips, amortecimento de amplitude, entre outros. Tanto o ruído quanto os erros podem ocorrer de forma contínua. Por exemplo, o campo usado em uma porta quântica pode estar desviado em 0,1%, 0,15% ou qualquer outra fração. Isso pode resultar em uma fase incorreta em um qubit, também em qualquer quantidade contínua. Mas você verá que, na prática e especialmente na correção de erros, é comum ver os erros tratados como se fossem discretos: agrupando os efeitos acumulados em um bit flip discreto ou uma única rotação de fase. Isso é útil para corrigir e caracterizar erros, mas não significa que o efeito do ruído em um qubit seja apenas um conjunto discreto de erros.

Existem muitos tipos de ruído que afetam os computadores quânticos. Alguns podem resultar em vários tipos de erros, enquanto outros estão associados a manifestações específicas de erro. Uma lista completa está além dos objetivos desta lição; aqui está uma lista parcial relevante para o restante deste curso, alguns com paralelos ao ruído da computação clássica.

Thermal:

Os dois estados de base computacional ∣0⟩|0\rangle e ∣1⟩|1\rangle de um qubit são separados por uma quantidade muito pequena de energia. O valor exato depende, claro, do hardware quântico. Para qubits de estado sólido (transmon de frequência fixa), como os usados pela IBM Quantum®, o intervalo de energia entre esses estados é da ordem de 10−2410^{-24} J, ou alguns microelétron-volts. Essa escala de energia pode ser relacionada à frequência por meio de E=hfE=hf ou a uma temperatura característica. Como a temperatura está relacionada à energia cinética média das partículas em uma amostra, podemos usar a constante de Boltzmann para obter uma estimativa da temperatura na qual partículas médias teriam energia suficiente para causar uma transição:

E≈kBT→T E/kB≈10−24 J ×1.381×10−23 J/K≈100mK.E\approx k_BT \rightarrow T~E/k_B \approx 10^{-24}\text{ J } \times 1.381 \times 10^{−23}\text{ J/K}\approx 100 \text{mK}.

Para reduzir a chance de que interações térmicas causem transições de um estado de base computacional do qubit para outro, a temperatura dos qubits deve ser mantida substancialmente abaixo de 100 mK, idealmente mais próxima de 15-25 mK. Qualquer aumento significativo da temperatura acima desses limites resultaria em ocupação de estado totalmente aleatória e perda total da informação quântica.

Isso é análogo aos erros térmicos que podem ocorrer em computadores clássicos, no sentido de que ambos têm origem térmica — mas a escala de temperatura é obviamente diferente, assim como o mecanismo de perda de informação.

Crosstalk e interferência:

Crosstalk na computação quântica se refere a qualquer acoplamento ou interferência indesejada entre qubits ou linhas de controle, de tal forma que uma operação ou sinal destinado a um qubit acaba afetando inadvertidamente outros. Isso se manifesta como erros ou correlações entre qubits que, idealmente, deveriam ser independentes.

Em arquiteturas de qubits supercondutores como as usadas pela IBM®, o crosstalk pode surgir de sinais de controle de micro-ondas vazando para qubits vizinhos, acoplamento não intencional entre ressonadores de leitura ou crosstalk de fluxo entre loops de qubits.

Muitas das abordagens para minimizar o crosstalk são incorporadas ao design do computador quântico, como o espaçamento dos qubits e garantir que qubits adjacentes tenham frequências operacionais diferentes. Também existem abordagens de software para mitigar erros de crosstalk, que serão discutidas em lições futuras.

Operações de porta imperfeitas:

As operações em qubits são realizadas usando hardware com precisão finita e que pode estar sujeito a ruído ou outras fontes de imprecisão. Em particular, pulsos de micro-ondas com durações e orientações específicas são usados para implementar portas de rotação. Suponha, por exemplo, que um pulso de micro-ondas deva girar 0,30 radianos em torno do eixo XX. Há precisão finita na orientação, o que leva a alguma imprecisão no eixo de rotação. Além disso, sempre há um compromisso fundamental entre a frequência de um pulso e sua duração. Um pulso muito longo pode ter um comportamento essencialmente senoidal, com praticamente uma única frequência. Para formar um pacote curto, é necessária uma superposição de muitas frequências. Esse é o mesmo compromisso que está na raiz da relação de incerteza energia-tempo, embora a precisão das portas ainda não esteja próxima desses limites fundamentais; ainda há espaço para melhorias.

Ruído inerente ao quântico:

Esse último tipo de ruído é bem diferente dos demais; ele não decorre de erros, mas sim da natureza da mecânica quântica. Suponha que um qubit no estado quântico ∣ψ⟩|\psi\rangle seja medido e colapse para um autoestado (∣0⟩|0\rangle ou ∣1⟩|1\rangle). Em um sistema transmon de frequência fixa, o qubit é acoplado dispersivamente a um ressonador de micro-ondas cuja frequência de ressonância depende ligeiramente do estado do qubit. Um pulso de sondagem de micro-ondas é enviado através do ressonador, e o sinal de saída adquire uma mudança de fase e de amplitude dependente do estado. Esse sinal é então amplificado e medido usando eletrônica clássica.

No nível quântico, o sinal de medição é transportado por um campo de micro-ondas coerente com um número médio finito de fótons. Devido à natureza quântica dos campos eletromagnéticos, as quadraturas do campo exibem flutuações intrínsecas. Essas flutuações são independentes de imperfeições técnicas e surgem mesmo para um estado coerente ideal. Aumentar o número médio de fótons NN aumenta o sinal de medição, mas o nível fundamental de ruído permanece finito, de modo que a distinguibilidade entre os resultados melhora apenas na proporção de N\sqrt{N}​.

Assim, mesmo que o qubit seja preparado perfeitamente e a cadeia de medição seja ideal, o sinal de leitura correspondente a um determinado estado do qubit não é um único valor fixo, mas sim uma distribuição que limita o quão bem os resultados podem ser distinguidos. Essa sobreposição representa uma fonte fundamental de incerteza no próprio processo de medição. Na prática, embora o ruído técnico de amplificadores e outros componentes costume dominar, esse ruído quântico intrínseco estabelece um limite inferior para a fidelidade de leitura.

Incerteza não é erro:

Todas essas fontes de ruído são diferentes da incerteza fundamental associada às medições de estados quânticos. Para contrastar, suponha que tenhamos um qubit em um estado quântico:

∣ψ⟩=45∣0⟩+35∣1⟩.|\psi\rangle = \frac{4}{5}|0\rangle+\frac{3}{5}|1\rangle.

Esse estado tem 64% de chance de ser medido no estado ∣0⟩|0\rangle e 36% de chance de ser medido no estado ∣1⟩|1\rangle. Mas uma única medição só produzirá um ∣0⟩|0\rangle ou um ∣1⟩|1\rangle — então uma única medição raramente nos dirá muito sobre o estado antes da medição. Muitas medições são necessárias para obter informações detalhadas sobre o estado. De dez medições, poderíamos esperar que seis ou sete resultassem em ∣0⟩|0\rangle. Mas não seria chocante se as primeiras dez medições todas resultassem em ∣0⟩|0\rangle (como jogar uma moeda honesta e obter "cara" dez vezes seguidas: incomum, mas totalmente plausível). Se repetíssemos a medição 1000 vezes e sempre obtivéssemos ∣0⟩|0\rangle, isso sim seria chocante.

Portanto, há incerteza em nosso conhecimento do estado quântico com base em qualquer número finito de medições. À medida que repetimos as medições, nosso conhecimento do estado quântico antes da medição melhora, mas nunca é perfeito. Poder-se-ia dizer coloquialmente que sempre há algum "erro" subjacente em qualquer resultado de medição quântica. Mas esse é um uso diferente do termo "erro", sendo melhor descrito como incerteza estatística. O processo de aumentar o conhecimento de um estado quântico por meio de muitas medições é chamado de tomografia de estado quântico. No entanto, a tomografia de estado quântico não se limita a medições ao longo de Z; ela geralmente se refere a medições ao longo de eixos ortogonais (como X, Y e Z) para a determinação de amplitudes e fase relativa. Para saber mais sobre esse processo, veja esta seção no curso de John Watrous sobre a Formulação Geral da Informação Quântica, ou, para uma implementação prática, veja esta lição sobre teletransporte do curso sobre Computação Quântica em Escala Útil.

Observando erros e seu acúmulo​

Nesta seção, usaremos computadores quânticos reais para observar erros quânticos e seu acúmulo em diferentes condições. Na prática, várias fontes de erros quânticos costumam estar presentes simultaneamente. Para observar diferentes tipos de erros de forma um tanto isolada, precisaremos usar circuitos projetados para esse isolamento. Os circuitos usados em aplicações da computação quântica parecerão muito mais complicados.

Vamos começar com os erros de relaxação de energia.

Erros de relaxação de energia (T1T_1)​

Lembre-se de nossa discussão sobre ruído térmico de que, em qualquer temperatura diferente de zero, há alguma probabilidade de um sistema quântico sofrer uma transição entre autoestados de energia. A relaxação (∣1⟩→∣0⟩|1\rangle \rightarrow |0\rangle) predomina porque é impulsionada pela emissão espontânea (independente da temperatura), enquanto a baixa temperatura suprime o processo concorrente de excitação. Quanto mais tempo um qubit fica ocioso, mais tempo ele tem para sofrer essa transição. A probabilidade de que um qubit preparado no estado ∣1⟩|1\rangle permaneça em ∣1⟩|1\rangle após um tempo tt é dada por

p=e−t/T1p = e^{-t/T_1}

Aqui, o tempo T1T_1 é um tempo característico determinado experimentalmente, que é diferente para cada qubit e pode até mudar ligeiramente ao longo do tempo. Os computadores quânticos da IBM® são avaliados regularmente, portanto os tempos T1T_1 listados para os qubits nos computadores quânticos da IBM devem ser precisos e atualizados. Um valor grande de T1T_1 significa que o qubit permanece no estado em que foi preparado por mais tempo (em média). Os valores típicos de T1T_1 variam entre arquiteturas; os qubits nos computadores quânticos da IBM costumam ter tempos T1T_1 da ordem de 200-300 μs\mu s, e você pode verificar os valores mais recentes na página Recursos de computação.

O tempo característico T2T_2 mede algo diferente: a perda de informação de fase. Voltaremos a isso mais tarde.

Para observar erros de relaxação de energia, prepararemos qubits no estado ∣1⟩|1\rangle e, em seguida, os deixaremos intencionalmente ociosos por longos períodos de tempo. Essa é a parte artificial. Em fluxos de trabalho quânticos reais, você pode ter alguns qubits que ficam ociosos por longos períodos enquanto processos são realizados em outros qubits; portanto, algumas instâncias desses períodos de ociosidade não são artificiais.

Vamos começar importando alguns pacotes e selecionando o backend menos ocupado.

# Added by doQumentation — installs the packages this notebook needs if they are missing
import importlib.util

_needed = {"cycler": "cycler", "matplotlib": "matplotlib", "numpy": "numpy", "qiskit": "qiskit", "qiskit_aer": "qiskit-aer", "qiskit_ibm_runtime": "qiskit-ibm-runtime"}
_missing = [pip for module, pip in _needed.items()
if importlib.util.find_spec(module) is None]
# One at a time, so a package that fails to install does not block the others
for _pip in _missing:
%pip install -q {_pip}
if not _missing:
print("\u2713 All required packages are installed")
from qiskit_ibm_runtime import QiskitRuntimeService
import numpy as np
import matplotlib.pyplot as plt

# If your credentials are already saved locally
service = QiskitRuntimeService()

# To load an unsaved instance, uncomment the line below
# service = QiskitRuntimeService(channel = "ibm_quantum_platform", instance = "your crn here")

# To select the least-busy backend:
# backend = service.least_busy(simulator=False, operational=True)

# To specify the backend by name:
backend = service.backend("ibm_boston")

props = backend.properties()
print(backend)
<IBMBackend('ibm_boston')>

Agora vamos selecionar um qubit para trabalhar, neste caso, o qubit zero. Podemos importar diretamente as propriedades desse qubit, incluindo T1T_1 e T2T_2.

qubit_idx = 0
qubit_props = props.qubit_property(qubit_idx)

t1 = qubit_props["T1"][0] # * 1e6 # Convert seconds to µs
t2 = qubit_props["T2"][0] # * 1e6 # Convert seconds to µs

# print(f"Qubit {qubit_idx}: T1={t1} µs, T2={t2} µs")
print(f"Qubit {qubit_idx}: T1={t1} s, T2={t2} s")
Qubit 0: T1=0.0002737016180018049 s, T2=0.00042784777605680494 s

Saber o valor de T1T_1 em microssegundos é importante, mas você pode não ter uma noção intuitiva do que isso significa. Afinal, as operações de porta em computadores quânticos são muito rápidas. A verdadeira questão é: quanto conseguimos fazer em um computador quântico nesse intervalo de tempo. Para isso, é útil relacionar T1T_1 a outras escalas de tempo usadas na computação quântica — especificamente às seguintes:

  • tempo de amostragem dtdt - o menor tique de clock sobre o qual os processos de controle podem ser implementados no computador quântico.

  • tempos de porta de um único qubit - o tempo necessário para implementar uma operação de porta em um único qubit. Este não será um único valor, mas uma faixa de números possíveis dependendo do tipo de porta.

  • tempos de porta de dois qubits - o tempo necessário para implementar uma operação de porta em dois qubits adjacentes. Isso também pode assumir uma faixa de valores, mas normalmente é cerca de uma ordem de magnitude maior do que para uma porta de um único qubit.

Vamos verificar dtdt para o nosso backend e exibir algumas faixas plausíveis para os tempos de porta.

print(f"Using backend: {backend.name}")

# Access the backend target
target = backend.target

def get_gate_times(target, gate_name):
results = []

if gate_name not in target:
return results # gate not supported

# target[gate_name] is a dict: {(qubits): InstructionProperties}
for qubits, props in target[gate_name].items():
if props.duration is not None:
results.append({"qubits": qubits, "duration_ns": props.duration * 1e9})

return results

# Query some gates
for gate in ["cz", "x"]:
times = get_gate_times(target, gate)

print(f"\nGate: {gate}")
if times:
for entry in times[:5]:
print(f" Qubits {entry['qubits']}: {entry['duration_ns']:.2f} ns")
else:
print(" Not available on this backend")
Using backend: ibm_boston

Gate: cz
Qubits (0, 1): 68.00 ns
Qubits (1, 0): 68.00 ns
Qubits (1, 2): 68.00 ns
Qubits (2, 1): 68.00 ns
Qubits (2, 3): 88.00 ns

Gate: x
Qubits (0,): 32.00 ns
Qubits (1,): 32.00 ns
Qubits (2,): 32.00 ns
Qubits (3,): 32.00 ns
Qubits (4,): 32.00 ns

Esses tempos de porta variam de um backend para outro. Vamos fixar no código um tempo de porta de dois qubits obtido do ibm_boston, de 68 ns.

dt = backend.configuration().dt
two_q_gate_time = 68e-9
print("The sampling time is : ", dt)
print("dts per T_1 : ", t1 / dt)
print("2-qubit characteristic time : ", two_q_gate_time)
print("The sampling time intervals per two-qubit gate : ", two_q_gate_time / dt)
print("2-qubit gates per T_1 : ", t1 / two_q_gate_time)
The sampling time is : 4e-09
dts per T_1 : 68425.40450045122
2-qubit characteristic time : 6.8e-08
The sampling time intervals per two-qubit gate : 17.0
2-qubit gates per T_1 : 4025.0237941441897

Tenha em mente que nenhuma outra fonte de erro, nem sua supressão ou mitigação, foi levada em conta aqui. Os erros de T1T_1 não são os únicos erros atuando em um sistema quântico, então não se preocupe demais com esses números. Isso simplesmente significa que, na ausência de qualquer supressão, poderíamos plausivelmente implementar da ordem de milhares de portas de dois qubits antes que os erros de T1T_1 comecem a dominar. Outros erros normalmente dominarão em profundidades muito menores, e, por outro lado, os erros de T1T_1 ainda podem valer a pena serem suprimidos em tempos muito mais curtos do que os necessários para eliminar completamente o sinal.

Começaremos usando um simulador com um modelo de ruído e, em seguida, compararemos os resultados com hardware real.

from qiskit_aer import AerSimulator
from qiskit_aer.noise import NoiseModel, thermal_relaxation_error
from qiskit import QuantumCircuit
from qiskit.quantum_info import Pauli
from qiskit.transpiler import generate_preset_pass_manager
from qiskit_aer.primitives import EstimatorV2

pass_manager = generate_preset_pass_manager(backend=backend, optimization_level=0)

Vamos definir um passo de tempo para nossas medições correspondente à estimativa mais alta para o tempo de uma porta de dois qubits. Em seguida, construiremos 50 circuitos em incrementos desse passo de tempo. Dessa forma, veremos o que acontece em uma escala de tempo semelhante à implementação de 80 portas de dois qubits. A precisão aqui não é crítica, então usaremos apenas um punhado de shots.

n_points = 50 # We will show 50 steps
delay_unit = 80 # The delay in units of two-qubit-time from above
shots = 100

Construímos um modelo de ruído para o nosso simulador que inclui explicitamente erros de relaxação térmica.

# Create noise model with thermal relaxation for delays
noise_model = NoiseModel()
error = thermal_relaxation_error(
t1, t2, two_q_gate_time * delay_unit
) # error model characterized by times in ns
noise_model.add_all_qubit_quantum_error(error, ["delay"])

sim = AerSimulator(noise_model=noise_model)

Agora vamos construir nossos circuitos e observáveis. Eles são extremamente simples. Os circuitos consistirão simplesmente em preparar o qubit em ∣1⟩|1\rangle e implementar atrasos por períodos de tempo crescentes, usando os tempos de porta característicos e o dtdt definidos acima. Os observáveis serão simplesmente ZZ, pois o que queremos saber é se o qubit permaneceu em ∣1⟩|1\rangle ou decaiu para ∣0⟩|0\rangle. Embora a transpilação nem sempre seja necessária para simuladores, vamos em frente e transpilamos nossos circuitos aqui para uso posterior em um backend real.

observables = [Pauli("Z")] * n_points
circuits = []
obs = []
delay_times_sim = []
for i in range(n_points):
qc = QuantumCircuit(1, 1)
qc.x(0)
if i > 0:
for j in range(i):
qc.delay(delay_unit * two_q_gate_time, 0, "s")
j = j + 1
qc_opt = pass_manager.run(qc)
circuits.append(qc_opt)
delay_times_sim.append(delay_unit * two_q_gate_time * i)
observables_isa = observables[i].apply_layout(layout=qc_opt.layout)
obs.append(observables_isa)

Executamos nosso job usando um simulador.

pubs = list(zip(circuits, obs))

# Create AerSimulator with noise model as backend
simulator = AerSimulator(noise_model=noise_model)

# Create SamplerV2 from the AerSimulator backend
estimator = EstimatorV2.from_backend(simulator)

# Run the sampler on the circuit, specify shots
job = estimator.run(pubs)
result = job.result()

Por fim, plotamos as saídas.

# Optional: color palette similar to 'mpl', style = 'clifford'

from cycler import cycler

plt.rcParams["axes.prop_cycle"] = cycler(
color=[
"#4C78A8", # muted blue
"#72B7B2", # teal
"#54A24B", # green
"#9C89CC", # purple
"#B279A2", # mauve
]
)

# Everything else stays at Matplotlib defaults

# Example data: assume result is a list of objects with structure result[i].data.evs.item()
# and delay_times is already defined as a list of floats.

# Extract y-values
y_sim_values = [(1 - r.data.evs.item()) / 2 for r in result]

# Use delay_times as x-values
x_sim_values = delay_times_sim

# Create the plot
plt.figure(figsize=(8, 5))
plt.plot(x_sim_values, y_sim_values, marker="o", linestyle="-", label="EV Data")

plt.xlabel("Idle Time (s)")
plt.ylabel("Probability of measuring |1>")
plt.title("T1 Decay")
plt.grid(True)
plt.show()

Output of the previous code cell

O decaimento exponencial é claramente visível e, nesse tempo, ele decai para pouco menos de 40% de chance de estar em ∣1⟩|1\rangle. Observe que isso é exatamente consistente com o modelo: p=e−t/t1p = e^{-t/t_1}, em que escolhemos o tt máximo para ser da mesma ordem de t1t_1; lembre-se de que dissemos que t1t_1 poderia corresponder a 60 portas (ou essa ordem de magnitude), e aqui tt corresponde a 60 portas. Assim

p→e−0.25 ms/0.267 ms≈0.392p \rightarrow e^{-0.25 \text{ ms}/0.267\text{ ms}} \approx 0.392

Agora vamos executar os mesmos circuitos em um computador quântico real. Para abranger a mesma duração de atraso com menos jobs, vamos aumentar a unidade de atraso e diminuir o número de pontos.

# This took 27 s on ibm_boston

from qiskit_ibm_runtime import EstimatorV2

# Explicitly use a pass manager with optimization level 0 so that we don't remove the delays
pass_manager = generate_preset_pass_manager(backend=backend, optimization_level=0)

# Use the same time parameters and shots
n_points = 10
delay_unit = 400
shots = 100

# Measure Pauli Z's as your observables
observables = [Pauli("Z")] * n_points
circuits = []
obs = []
delay_times = []
for i in range(n_points):
qc = QuantumCircuit(1, 1)
qc.x(0)
if i > 0:
qc.delay(delay_unit * two_q_gate_time * i, 0, "s")
qc_opt = pass_manager.run(qc)
circuits.append(qc_opt)
delay_times.append(delay_unit * two_q_gate_time * i)
observables_isa = observables[i].apply_layout(layout=qc_opt.layout)
obs.append(observables_isa)

pubs = list(zip(circuits, obs))
estimator = EstimatorV2(mode=backend)
job = estimator.run(pubs=pubs)
result = job.result()

# To print the job id for later retrieval of data
# job_id = job.job_id()
# print(f"Job ID: {job_id}")

Agora plotamos os resultados.

fig, ax = plt.subplots()

# Convert from the expectation value of Z to the probability of a transition
y_real_values = [(1 - r.data.evs.item()) / 2 for r in result]

# Use delay_times as x-values
x_real_values = delay_times

# Exponential decay to match theoretical model
t_smooth = np.linspace(0, x_sim_values[19], 100) # Smooth x-range covering your data
y_decay = np.exp(-t_smooth / (t1)) # y = exp(-t/t1)
ax.plot(t_smooth, y_decay, "k--", linewidth=1, label=f"Perfect Decay (t1={t1:3f} s)")

# Add simulator values
ax.scatter(x_sim_values, y_sim_values, label="Simulator", alpha=0.7)

# Add real QC values
ax.scatter(x_real_values, y_real_values, label="Real", alpha=0.7)

# Add labels and plot
ax.set_xlabel("Idle Time (s)")
ax.set_ylabel("Probability of measuring |1>")
ax.legend()
ax.set_title("T1 Decay")
ax.grid(True)

plt.show()

Output of the previous code cell

Como podemos ver, o decaimento do estado ∣1⟩|1\rangle ao longo do tempo corresponde à teoria (e à definição de T1T_1). Além disso, o simulador é bastante eficaz em reproduzir o comportamento do computador quântico real neste caso. Aqui estão algumas coisas a ter em mente sobre o decaimento desse estado:

  • Atrasamos artificialmente a medição por um período de tempo irrealista. Esses atrasos correspondem à escala de tempo de circuitos extremamente profundos, que poderiam consistir em milhares de portas de dois qubits. Isso foi feito apenas para mostrar que os efeitos do ruído térmico existem. Em circuitos reais aplicados a problemas do mundo real, operações seriam realizadas em outros qubits enquanto alguns poucos poderiam ficar ociosos por tempo suficiente para que os erros de relaxação de energia importassem — mas outros erros predominariam antes de se atingir um T1T_1 completo.
  • Nenhuma técnica de mitigação ou supressão de erros foi usada. Podemos alterar essa curva de decaimento usando as técnicas que aprenderemos neste curso.
  • Usamos apenas 100 shots aqui, o que é incomumente baixo porque buscávamos apenas demonstrar que o efeito existe. Em aplicações, você provavelmente usará mais de 1.000 shots.

Essa primeira visualização de erro exigiu quase nenhuma porta além dos atrasos (e a única porta X usada para preparar ∣1⟩|1\rangle). Vamos agora observar outro exemplo que se concentra no erro de porta.

Erros de porta e acúmulo​

Quando aplicamos uma porta quântica, digamos uma porta XX, teoricamente essa porta rotaciona um estado quântico em um ângulo de π\pi radianos em torno do eixo XX na esfera de Bloch, mapeando α∣0⟩+β∣1⟩\alpha |0\rangle + \beta |1\rangle para α∣1⟩+β∣0⟩\alpha |1\rangle + \beta |0\rangle por meio de

X∣ψ⟩=RX(π)∣ψ⟩=(cos⁡(θ/2)−isin⁡(θ/2)−isin⁡(θ/2)cos⁡(θ/2))(αβ)=(0110)(αβ)=(βα)\begin{aligned} X|\psi\rangle & = R_X(\pi) |\psi\rangle\\ & = \begin{pmatrix} \cos{(\theta/2)} & -i \sin{(\theta/2)} \\ -i \sin{(\theta/2)} & \cos{(\theta/2)} \end{pmatrix}\begin{pmatrix} \alpha \\ \beta \end{pmatrix}\\ & = \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix}\begin{pmatrix} \alpha \\ \beta \end{pmatrix}\\ & =\begin{pmatrix} \beta \\ \alpha \end{pmatrix}\\ \end{aligned}

No entanto, uma porta real é imperfeita. Ela pode estar orientada de forma imperfeita (causando rotações que não são perfeitamente em torno do eixo X) ou pode causar uma rotação um pouco maior ou menor do que a pretendida. Vamos modelar um erro de porta como sendo puramente uma rotação a mais ou a menos em um pequeno ângulo ϵ\epsilon.

Xϵ∣ψ⟩=RX(π+ϵ)∣ψ⟩=(cos⁡(θ+ϵ/2)−isin⁡(θ+ϵ/2)−isin⁡(θ+ϵ/2)cos⁡(θ+ϵ/2))(αβ)≈(ϵ1−ϵ2/21−ϵ2/2ϵ)(αβ)=(ϵα+(1−ϵ2/2)β(1−ϵ2/2)α+ϵβ)\begin{aligned} X_\epsilon|\psi\rangle & = R_X(\pi+\epsilon) |\psi\rangle\\ & = \begin{pmatrix} \cos{(\theta+\epsilon/2)} & -i \sin{(\theta+\epsilon/2)} \\ -i \sin{(\theta+\epsilon/2)} & \cos{(\theta+\epsilon/2)} \end{pmatrix}\begin{pmatrix} \alpha \\ \beta \end{pmatrix}\\ & \approx \begin{pmatrix} \epsilon & 1-\epsilon^2/2 \\ 1-\epsilon^2/2 & \epsilon \end{pmatrix}\begin{pmatrix} \alpha \\ \beta \end{pmatrix}\\ & =\begin{pmatrix} \epsilon \alpha+(1-\epsilon^2/2)\beta \\ (1-\epsilon^2/2)\alpha+\epsilon \beta \end{pmatrix}\\ \end{aligned}

Se uma porta imperfeita for aplicada muitas vezes, pequenos erros ϵ\epsilon podem se acumular. Às vezes, esses múltiplos erros até fazem com que o estado se desloque na mesma direção a cada vez (um fenômeno chamado de "acumulação coerente", que revisitaremos mais adiante). Vamos ver o que acontece quando aplicamos uma porta X real a um qubit muitas vezes.

# This took 78 s on penguino1

from qiskit_ibm_runtime import EstimatorV2

# Explicitly use a pass manager with optimization level 0 so that we don't remove the delays
pass_manager = generate_preset_pass_manager(backend=backend, optimization_level=0)

# Use the same bit flips
max_depth = 60
circuits = []
observables = []

for depth in range(max_depth + 1):
qc = QuantumCircuit(1)
# Repeat flipping back and forth depth times
for _ in range(depth):
# qc.x(0)
qc.x(0)
qc.barrier()
qc.x(0)
qc.barrier()
circuits.append(qc)
observables.append(Pauli("Z"))

pubs = list(zip(circuits, observables))

estimator = EstimatorV2(mode=backend)
results = estimator.run(pubs=pubs).result()
real_expectations = [pub_res.data.evs for pub_res in results]
# from qiskit_ibm_runtime import QiskitRuntimeService

# service = QiskitRuntimeService() # uses stored IBM Quantum account
# job_id = "d5immof67pic7386l8eg"

# job = service.job(job_id) # retrieve the job
# results = job.result() # this is your .result() object
# Convert from the expectation value of Z to the probability of a transition
# y_real_values = [(1-r.data.evs.item())/2 for r in results]

# Create the plot
plt.figure(figsize=(8, 5))
# plt.plot(range(max_depth + 1), y_real_values, 'o-')
# plt.plot(x_real_values, y_real_values, marker='o', linestyle='-', color='blue', label='EV Data')
plt.plot(
range(max_depth + 1),
real_expectations,
marker="o",
linestyle="-",
color="blue",
label="EV Data",
)

plt.xlabel("Number of Flip-Back Cycles")
plt.ylabel("Expectation ⟨Z⟩")
plt.title("Accumulated Gate Noise Effects on Flips")
plt.grid(True)
plt.show()

Output of the previous code cell

O valor esperado começa em torno de 1,0 como esperado, e decai, mas não decai simplesmente para zero! Ele se torna negativo. Se isso fosse ruído térmico ou interações aleatórias, não tornaria ∣1⟩|1\rangle mais provável de ser medido do que ∣0⟩|0\rangle. Esse erro é claramente diferente. E isso faz sentido no contexto da nossa discussão sobre rotação a mais ou a menos. Se cada par de rotações que deveria se cancelar na verdade acaba rotacionando por um pequeno ângulo, então muitas dessas repetições permitiriam que o estado gradualmente rotacionasse de ∣0⟩|0\rangle em direção a ∣1⟩|1\rangle.

É improvável que o acúmulo de erros mostrado aqui ocorra de forma tão limpa em um fluxo de trabalho real. Em primeiro lugar, desativamos explicitamente a mitigação de erros e realizamos a mesma sequência repetitiva de portas para permitir que os erros se acumulassem de forma coerente. Isso é feito unicamente para demonstrar que esses erros existem. Quando usamos técnicas de tratamento de ruído (por exemplo, Pauli twirling), podemos influenciar como o erro se acumula, geralmente resultando em um erro geral menor.

Podemos verificar exatamente o quão bem nosso modelo desse erro se ajusta aos dados experimentais construindo explicitamente um modelo de ruído e usando um simulador. No modelo abaixo, incorporamos explicitamente um erro correspondente a 0,025 radianos. Esse não é um número mágico; basta ajustar o erro até que ele descreva razoavelmente o experimento.

from qiskit_aer.noise import NoiseModel, coherent_unitary_error
from qiskit_aer import AerSimulator
import numpy as np

# For your SINGLE-QUBIT test on qubit 0, just override X error specifically
noise_model = NoiseModel.from_backend(backend, gate_error=True, thermal_relaxation=True)

theta_error = 0.025 # model over-rotation error around 0.01-0.03 radians
U_over = np.array(
[
[np.cos(theta_error / 2), -1j * np.sin(theta_error / 2)],
[-1j * np.sin(theta_error / 2), np.cos(theta_error / 2)],
]
)

unitary_error = coherent_unitary_error(U_over)
# Target ONLY qubit 0 (your circuit) - no warning!
noise_model.add_quantum_error(unitary_error, ["x"], [0])

simulator = AerSimulator(noise_model=noise_model)
WARNING: quantum error already exists for instruction "x" on qubits (0,) , appending additional error.
max_depth = 60
circuits = []
observables = []

for depth in range(max_depth + 1):
qc = QuantumCircuit(1)
# Repeat flipping back and forth depth times
for _ in range(depth):
# qc.x(0)
qc.x(0)
qc.barrier()
qc.x(0)
qc.barrier()
circuits.append(qc)
observables.append(Pauli("Z"))

pubs = list(zip(circuits, observables))

estimator = EstimatorV2.from_backend(simulator)
results = estimator.run(pubs).result()
expectations = [pub_res.data.evs for pub_res in results] # no [0], use value directly

Agora podemos plotar as curvas real e simulada juntas.

fig, ax = plt.subplots()

# Add simulator values
ax.scatter(range(max_depth + 1), expectations, c="blue", label="Simulator", alpha=0.7)

# Add real QC values
ax.scatter(range(max_depth + 1), real_expectations, c="red", label="Real", alpha=0.7)

# Add labels and plot
ax.set_xlabel("Number of Flip-Back Cycles")
ax.set_ylabel("Expectation ⟨Z⟩")
ax.set_title("Accumulated Gate Noise Effects on Flips")
ax.legend()
ax.grid(True)

plt.show()

Output of the previous code cell

O erro no circuito real foi razoavelmente bem descrito pelo modelo de erro de rotação a mais ou a menos. É claro que diferentes tipos de ruído e erros se acumularão de forma diferente e resultarão em efeitos drasticamente diferentes na fidelidade dos nossos circuitos quânticos. Torna-se, portanto, muito importante classificar e caracterizar os erros que podem ocorrer de forma mais formal do que fizemos até agora.

Caracterizando erros quânticos​

Já descrevemos algumas das fontes de ruído quântico, e poderíamos categorizar os erros de acordo com as categorias de ruído que os causam. Mas pode haver diferentes categorias de erros quânticos que são úteis na correção e mitigação de erros. Por exemplo, precisamos saber em que ponto os erros ocorrem e como os erros se acumulam se quisermos corrigi-los ou mitigá-los. Ao especificar onde (em quais processos) os erros ocorrem, uma categoria comum e importante é a de erros de preparação de estado e medição (ou erros SPAM, para abreviar). Aqui, o termo “preparação de estado” não significa tudo o que é feito em um estado para prepará-lo para a medição. Em vez disso, refere-se à inicialização dos qubits, à “preparação” dos qubits para a execução de um algoritmo, e assim essa categoria SPAM exclui coisas como erros de porta durante a execução do algoritmo.

Outra distinção importante é se os erros são coerentes ou incoerentes. Para resumir brevemente (discutiremos isso com mais detalhes abaixo), erros coerentes são tipicamente modelados por operações unitárias e preservam a pureza do estado. Erros incoerentes são modelados por canais quânticos não unitários e geralmente reduzem a pureza do estado. É fácil visualizar erros incoerentes como interações térmicas que causam perda de informação quântica, mas na verdade eles podem ser causados por qualquer acoplamento aleatório com o ambiente. Como exemplo de um erro coerente, suponha que haja uma imperfeição na orientação do pulso ao implementar uma porta RY, de modo que uma porta RY(θ)RY(\theta) na verdade cause RY(θ)⋅RX(ϵ)RY(\theta) \cdot RX(\epsilon). Tal imperfeição sempre causaria uma rotação errônea em torno de X na mesma direção. Isso seria um erro coerente.

Observe que os erros SPAM incluem uma mistura de erros coerentes, como falhas sistemáticas de controle, e erros incoerentes, como perda de fótons e efeitos térmicos. Como isso envolve múltiplas etapas e fontes de erro, os erros SPAM são melhor descritos como uma combinação de erros coerentes e incoerentes.

Erros SPAM​

Como o nome sugere, os erros SPAM surgem em dois estágios distintos de um experimento quântico: a preparação inicial e a leitura/medição. Os erros de preparação de estado ocorrem quando o hardware não consegue inicializar de forma confiável os qubits no estado inicial desejado (∣0⟩|0\rangle para computadores quânticos da IBM). As causas incluem:

  • excitação térmica (qubits reais não são perfeitamente resfriados e podem ocasionalmente começar em ∣1⟩|1\rangle em vez de ∣0⟩|0\rangle)
  • fótons residuais ou ruído nos ressonadores em qubits supercondutores
  • desvios na calibração que afetam a precisão com que os qubits são reiniciados

Os erros de medição ocorrem durante o processo de leitura, quando o aparato de medição identifica erroneamente o estado do qubit. As fontes incluem:

  • ruído do amplificador de leitura causando confusão entre ∣0⟩|0\rangle e ∣1⟩|1\rangle

  • relaxamento do qubit durante a leitura (por exemplo, um qubit em ∣1⟩|1\rangle decai para ∣0⟩|0\rangle pouco antes ou durante a medição)

  • diafonia (crosstalk) entre as linhas de leitura: a leitura de um qubit influencia ligeiramente as leituras de qubits vizinhos

  • Limiares de discriminação imperfeitos nos sistemas de medição baseados em ressonadores da IBM

Os erros SPAM são predominantemente incoerentes. Os erros de preparação agem como misturas aleatórias de estados excitados e fundamentais. Os erros de medição se comportam como uma confusão clássica: com probabilidade pp, ∣0⟩|0\rangle é reportado como ∣1⟩|1\rangle ou vice-versa. Esses erros são distintos dos erros unitários coerentes (como portas mal calibradas causando deslocamentos de fase sistemáticos). Os erros SPAM, em vez disso, se assemelham a ruído clássico aleatório, embora possam existir raros vieses coerentes na leitura.

Os erros SPAM podem ser problemáticos para benchmarking randomizado ou para circuitos de baixa profundidade, nos quais a preparação de estado e a medição representam uma grande fração do erro total. Eles são menos preocupantes para circuitos muito profundos, especialmente aqueles com muitas portas de dois qubits.

Matematicamente, os erros SPAM podem ser descritos como produzindo uma distribuição ruidosa p⃗noisy\vec{p}_\text{noisy} que está relacionada à distribuição ideal p⃗ideal\vec{p}_\text{ideal} por meio de uma matriz AA:

p⃗noisy=Ap⃗ideal\vec{p}_\text{noisy} = A \vec{p}_\text{ideal}

Aqui, pip_i é a probabilidade de medir a sequência de bits ii, e AijA_{ij} é a probabilidade de obter o estado jj quando o estado deveria ter sido preparado no estado ii. Imagine o contexto de sequências de bits amostradas do Sampler. Sua distribuição medida de estados consistirá em muitas medições precisas, mas também em algumas medições nas quais as instruções para a preparação de estado não correspondem ao estado observado. Isso significa que as probabilidades estarão ligeiramente incorretas.

A two-part figure. On the left is a histogram showing the ideal and noisy measurement results. On the right is a reduced assignment matrix mapping probabilities from the noisy measured results to the ideal case.

Na figura acima, a parte (a) mostra a distribuição ideal de um estado GHZ em azul-esverdeado (teal), e as medições reais em roxo. Na parte (b), vemos um exemplo de uma matriz AA. Observe que a matriz não é perfeitamente simétrica em relação à diagonal, já que cada qubit não precisa ter a mesma probabilidade de retornar erroneamente um 0 e de retornar erroneamente um 1. Na prática, muitas vezes é difícil separar os erros de preparação e de leitura, de modo que eles são frequentemente combinados em um único tratamento (daí o uso comum de SPAM).

Uma forma de corrigir esses erros SPAM é usar circuitos simples com resultados de medição ideais conhecidos e compará-los com os resultados medidos na presença de erros SPAM. Isso pode ser usado para fazer engenharia reversa dos resultados ideais de circuitos mais complexos. Para estados gerais de alta entropia, isso pode exigir a construção de uma matriz com 2N×2N2^N\times2^N probabilidades, mas em casos menos extremos, esses erros podem ser mitigados.

Erros coerentes versus erros incoerentes​

Erros coerentes são rotações incorretas sistemáticas, determinísticas e unitárias do estado quântico. Eles surgem de operações quânticas imperfeitas que se desviam de forma previsível. Exemplos incluem pequenos erros de rotação aplicados por portas de rotação de um único qubit, incluindo aqueles causados por desvio de calibração que consistentemente rotacionariam a mais ou a menos. Matematicamente, poderíamos escrever que uma porta de rotação real, digamos RX~(θ)\tilde{R_X}(\theta), é dada pela porta de rotação ideal mais algum erro adicional:

RX~(θ)=RX(θ+ϵ)\tilde{R_X}(\theta) = R_X(\theta + \epsilon)

para alguma pequena rotação a menos ou a mais ϵ\epsilon. Outros exemplos incluem uma porta de dois qubits adicionando um pequeno deslocamento de fase indesejado e pulsos de controle que se desviam sistematicamente da forma ideal.

Uma característica fundamental dos erros coerentes é que eles são determinísticos e podem ser modelados por portas unitárias, elas próprias. Consequentemente, eles preservam a pureza do estado quântico: a informação quântica não é perdida, ela simplesmente foi processada de forma imperfeita. Outro ponto importante a se observar é que erros coerentes repetidos interferem construtivamente e às vezes crescem quadraticamente com o número de portas.

Esses erros às vezes são previsíveis e, portanto, podem ser calibrados até certo ponto. Mas os erros coerentes que permanecem podem se acumular rapidamente, causando desvios problemáticos em relação aos estados ideais. Isso significa que às vezes é vantajoso "aleatorizar" intencionalmente os erros coerentes. Esse procedimento e sua utilidade serão abordados na lição sobre mitigação de erros.

Por que eles são problemáticos​

Os erros coerentes podem se “acumular” de maneiras perigosas, produzindo grandes desvios em relação ao estado correto se não forem aleatorizados ou corrigidos.

Erros incoerentes são estocásticos, aleatórios e frequentemente não unitários. Eles surgem de interações com o ambiente ou de fontes de ruído não controladas. Já vimos alguns exemplos: o relaxamento de energia / decaimento T1T_1 é incoerente. O mesmo vale para o ruído estocástico de porta, o ruído térmico e o erro de medição.

A característica fundamental dos erros incoerentes é que eles não são os mesmos a cada vez que uma operação é realizada. Eles são não unitários, portanto não podem ser modelados por uma simples porta quântica unitária, como poderiam ser os erros coerentes. Por serem incoerentes, eles tipicamente se acumulam de forma linear, como um ruído aleatório, e não como uma rotação a mais consistente.

Os erros incoerentes fazem com que os qubits percam informação de forma irreversível (perda de pureza e de informação de fase).

Então, qual é pior? Como acontece com a maioria das coisas em computação quântica, depende. A conclusão é que os erros coerentes se acumulam mais rápido e de forma não linear (o que é ruim). Mas eles podem ser parcialmente calibrados, e a informação de fase ainda está presente em seu sistema, se você conseguir descobrir como extraí-la adequadamente. Os erros incoerentes se acumulam de forma linear, o que é bom por dois motivos: é mais lento do que o acúmulo coerente e é razoavelmente fácil ver como os efeitos dos erros incoerentes se escalam em processos como a extrapolação de ruído zero (ZNE), que será abordada na lição sobre mitigação de erros. No entanto, quando ocorrem erros incoerentes, a informação quântica é verdadeiramente perdida, não apenas obscurecida.

Matrizes de densidade e canais quânticos​

Nas seções seguintes, vamos nos aprofundar em alguns tipos de erros coerentes e incoerentes e ver como eles podem ser modelados matematicamente usando canais quânticos. Primeiro, é necessária uma breve revisão sobre matrizes de densidade e canais quânticos. Para um tratamento completo e rigoroso desses tópicos, veja o curso de John Watrous General formulation of quantum information no IBM Quantum Learning. O tratamento aqui será orientado por exemplos e menos formal.

Canais quânticos são a forma mais geral de descrever como um sistema quântico evolui, interage e sofre ruído. Se você está acostumado com estados puros e evolução unitária, os canais quânticos são o próximo passo natural.

Na mecânica quântica padrão, um estado "puro" é escrito como ∣ψ⟩|\psi\rangle. Aqui, "puro" se refere à pureza da informação ou ao conhecimento da preparação do estado; isso não significa um autoestado de algum sistema. Como exemplo para um qubit, ∣ψ⟩=12(∣0⟩+∣1⟩)|\psi\rangle = \frac{1}{\sqrt{2}}(|0\rangle+|1\rangle) é um estado puro porque temos conhecimento perfeito das amplitudes relativas e da fase. A evolução temporal de tal estado puro é governada por um operador unitário UU:

∣ψ⟩→U∣ψ⟩|\psi\rangle \rightarrow U|\psi\rangle

conforme a equação de Schr"odinger, na qual U=e−iHt/ℏU = e^{-iHt/\hbar}, onde HH é o hamiltoniano do sistema e ℏ\hbar é a constante de Planck reduzida, frequentemente "considerada igual a um" ou, de forma mais rigorosa, absorvida no hamiltoniano, de modo que todas as energias são dadas em unidades de ℏ\hbar.

A evolução unitária é reversível, determinística e isolada. Mas isso é inadequado para descrever sistemas quânticos reais. Em sistemas quânticos reais:

  • Realizamos medições, colapsando o estado quântico em um autoestado do sistema. Isso é explicitamente não unitário.
  • O sistema interage com um ambiente. Isso significa que o sistema não é verdadeiramente isolado, e como o ambiente não pode ser rastreado ad infinitum, isso corresponde a uma perda de informação.
  • Em termos práticos: o ruído corrompe o estado. E muito mais.

A evolução unitária sozinha não consegue descrever esses processos; portanto, precisamos de uma representação mais geral dos estados e processos quânticos. Um estado misto descreve uma distribuição clássica de estados quânticos. Ou seja, já estamos familiarizados com o fato de que o estado quântico: ∣ψ⟩=12(∣0⟩+∣1⟩)|\psi\rangle = \frac{1}{\sqrt{2}}(|0\rangle+|1\rangle) tem 50% de chance de ser medido (colapsado em informação clássica) no estado ∣0⟩|0\rangle e 50% de chance de ser medido em ∣1⟩|1\rangle. Mas a afirmação é que o estado quântico inicial é exatamente ∣ψ⟩=12(∣0⟩+∣1⟩)|\psi\rangle = \frac{1}{\sqrt{2}}(|0\rangle+|1\rangle) com 100% de probabilidade. Agora queremos adicionar, além da probabilidade quântico-mecânica, uma probabilidade clássica, por exemplo:

O estado quântico inicial é preparado em ∣ψ⟩=12(∣0⟩+∣1⟩)|\psi\rangle = \frac{1}{\sqrt{2}}(|0\rangle+|1\rangle) com uma probabilidade clássica de 25%, e é preparado em ∣ψ⟩=12(∣0⟩−i∣1⟩)|\psi\rangle = \frac{1}{\sqrt{2}}(|0\rangle-i|1\rangle) com uma probabilidade clássica de 75% (observe as diferentes fases relativas).

Às vezes isso pode se dever a probabilidades clássicas explícitas na preparação; outras vezes pode se dever ao emaranhamento com partes do ambiente que ignoramos. De qualquer forma, fica clara a necessidade de uma ferramenta para descrever essa distribuição clássica de estados quântico-mecânicos. Estados puros sozinhos não conseguem representar essas possibilidades. Portanto, introduzimos a matriz de densidade.

Um estado misto é descrito por um operador de densidade:

ρ=∑ipi∣ψi⟩⟨ψi∣.\rho = \sum_i p_i |\psi_i\rangle\langle\psi_i|.

Aqui, ∣ψi⟩|\psi_i\rangle é um estado quântico (não necessariamente um autoestado de qualquer operador específico) e pip_i é a probabilidade clássica de que o sistema seja preparado no estado ∣ψi⟩|\psi_i\rangle. Essa é uma boa prescrição de como construir uma matriz de densidade a partir de uma distribuição clássica conhecida de estados quânticos. Por outro lado, podemos querer saber, dada tanto uma distribuição clássica de estados quânticos quanto uma probabilidade quântico-mecânica de diferentes resultados de medição, qual é a probabilidade de que uma medição produza um estado particular (como ∣0⟩|0\rangle, ou ∣1⟩|1\rangle, ou outros estados quando mais qubits estão envolvidos). É aí que a matriz de densidade é especialmente útil. Também podemos escrevê-la em uma base {∣i⟩}\{|i\rangle\} como:

ρ=∑i,jρij∣i⟩⟨j∣.\rho = \sum_{i,j} \rho_{ij} |i\rangle\langle j|.

Aqui os elementos diagonais ρii\rho_{ii}​ são probabilidades:

  • ρ00\rho_{00}​ = probabilidade de o qubit estar em ∣0⟩|0\rangle

  • ρ11\rho_{11}​ = probabilidade de o qubit estar em ∣1⟩|1\rangle

Eles são reais, não negativos e somam 1.

Os elementos fora da diagonal ρij,i≠j\rho_{ij}, i \neq j são coerências: relações de fase ou capacidade de interferência, e geralmente correspondem à quantidade de informação quântico-mecânica presente no estado. Essa é uma afirmação informal, mas vamos ver o que ela significa na prática.

Exemplo​

Considere o estado puro ∣ψ⟩=12(∣0⟩+∣1⟩)|\psi\rangle = \frac{1}{\sqrt{2}}(|0\rangle+|1\rangle). (a) O que você sabe sobre as probabilidades de medição e a informação de fase sem fazer nenhum cálculo? (b) Construa a matriz de densidade e verifique sua intuição.

Solution:

(a) Como é um estado puro, há apenas uma fase possível entre ∣0⟩|0\rangle e ∣1⟩|1\rangle: +1. Essa é uma informação de fase perfeita, então esperamos que os elementos fora da diagonal em nossa matriz de densidade sejam grandes. Você pode ter mais intuição do que isso sobre os elementos fora da diagonal, mas isso é suficiente por enquanto. Além disso, as amplitudes dos dois estados de base são iguais, então esperamos uma probabilidade de 50% de medir ∣0⟩|0\rangle ou ∣1⟩|1\rangle. Portanto, esperamos que as entradas diagonais sejam 1/2. (b) Usando a definição acima:

ρ=∑ipi∣ψi⟩⟨ψi∣.\rho = \sum_i p_i |\psi_i\rangle\langle\psi_i|.

pi≠0p_i \neq 0 apenas para o estado ∣ψ⟩|\psi\rangle. Então podemos escrever

ρ=1∣ψ⟩⟨ψ∣=12(∣0⟩+∣1⟩)(⟨0∣+⟨1∣)=12(1111).\begin{aligned} \rho & = 1 |\psi\rangle\langle\psi| \\ & = \frac{1}{2}(|0\rangle+|1\rangle)(\langle0|+\langle1|)\\ & =\frac{1}{2}\begin{pmatrix} 1 & 1 \\ 1 & 1\end{pmatrix}. \end{aligned}

As entradas diagonais são cada uma 1/21/2, como esperado, e os elementos fora da diagonal são grandes (somam um).

Agora vamos ver o que acontece quando não temos uma boa informação de fase.

Exemplo​

Considere um caso semelhante, mas agora com uma probabilidade clássica de 50% de estar no estado ∣ψ+⟩=12(∣0⟩+∣1⟩)|\psi_+\rangle = \frac{1}{\sqrt{2}}(|0\rangle+|1\rangle) e uma probabilidade clássica de 50% de estar no estado ∣ψ−⟩=12(∣0⟩−∣1⟩)|\psi_-\rangle = \frac{1}{\sqrt{2}}(|0\rangle-|1\rangle). As mesmas duas perguntas: (a) O que você sabe sobre as probabilidades de medição e a informação de fase sem fazer nenhum cálculo? (b) Construa a matriz de densidade e verifique sua intuição.

Solution:

(a) Como antes, as amplitudes dos dois estados de base são iguais, então esperamos uma probabilidade de 50% de medir ∣0⟩|0\rangle ou ∣1⟩|1\rangle. Portanto, esperamos que as entradas diagonais sejam 1/2. Mas desta vez há duas possibilidades opostas para a fase entre ∣0⟩|0\rangle e ∣1⟩|1\rangle: +1 e -1, e cada uma delas é igualmente provável. Poderíamos esperar que, com duas fases opostas igualmente prováveis, tenhamos pouca ou nenhuma informação de fase. Poderíamos esperar que as entradas fora da diagonal fossem pequenas. (b) Usando novamente a definição acima

ρ=∑ipi∣ψi⟩⟨ψi∣.\rho = \sum_i p_i |\psi_i\rangle\langle\psi_i|.

pi≠0p_i \neq 0 apenas para os dois estados ∣ψ+⟩|\psi_+\rangle e ∣ψ−⟩|\psi_-\rangle. Então podemos escrever

ρ=12∣ψ+⟩⟨ψ+∣+12∣ψ−⟩⟨ψ−∣=14(∣0⟩+∣1⟩)(⟨0∣+⟨1∣)+14(∣0⟩−∣1⟩)(⟨0∣−⟨1∣)=14(1111)+14(1−1−11)=12(1001).\begin{aligned} \rho & = \frac{1}{2} |\psi_+\rangle\langle\psi_+| + \frac{1}{2}|\psi_-\rangle\langle\psi_-| \\ & = \frac{1}{4}(|0\rangle+|1\rangle)(\langle0|+\langle1|)+\frac{1}{4}(|0\rangle-|1\rangle)(\langle0|-\langle1|)\\ & =\frac{1}{4}\begin{pmatrix} 1 & 1 \\ 1 & 1\end{pmatrix}+\frac{1}{4}\begin{pmatrix} 1 & -1 \\ -1 & 1\end{pmatrix}\\ & =\frac{1}{2}\begin{pmatrix} 1 & 0 \\ 0 & 1\end{pmatrix}. \end{aligned}

As entradas fora da diagonal são pequenas, zero na verdade, como esperado. Os elementos diagonais ainda são 50% cada, o que faz sentido porque cada um dos estados na mistura tinha ∣0⟩|0\rangle e ∣1⟩|1\rangle igualmente ponderados.

Esse construto se torna mais interessante à medida que o número de qubits aumenta. Explore isso nas perguntas abaixo.

Verifique seu entendimento​

Escreva a matriz de densidade para o estado de Bell puro ∣Φ+⟩=12(∣00⟩+∣11⟩)|\Phi_+\rangle = \frac{1}{\sqrt{2}}(|00\rangle+|11\rangle).

Resposta
ρ=∑ipi∣ψi⟩⟨ψi∣.\rho = \sum_i p_i |\psi_i\rangle\langle\psi_i|.

pi≠0p_i \neq 0 apenas para o estado ∣Φ+⟩|\Phi_+\rangle. Então podemos escrever

ρ=1∣Φ+⟩⟨Φ+∣=12(∣00⟩+∣11⟩)(⟨00∣+⟨11∣)=12(1001000000001001).\begin{aligned} \rho & = 1 |\Phi_+\rangle\langle\Phi_+| \\ & = \frac{1}{2}(|00\rangle+|11\rangle)(\langle00|+\langle11|)\\ & =\frac{1}{2}\begin{pmatrix} 1 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ 1 & 0 & 0 & 1 \end{pmatrix}. \end{aligned}

Escreva a matriz de densidade para uma probabilidade clássica de 25% de ∣Φ+⟩=12(∣00⟩+∣11⟩)|\Phi_\text{+}\rangle = \frac{1}{\sqrt{2}}(|00\rangle+|11\rangle) e uma probabilidade clássica de 75% de ∣Ψ-⟩=12(∣01⟩−∣10⟩)|\Psi_\text{-}\rangle = \frac{1}{\sqrt{2}}(|01\rangle-|10\rangle).

Resposta
ρ=∑ipi∣ψi⟩⟨ψi∣.\rho = \sum_i p_i |\psi_i\rangle\langle\psi_i|.

pi≠0p_i \neq 0 apenas para os dois estados ∣Φ+⟩|\Phi_+\rangle e ∣Ψ−⟩|\Psi_-\rangle. Então podemos escrever

ρ=14∣Φ+⟩⟨Φ+∣+34∣Ψ−⟩⟨Ψ+∣=18(∣00⟩+∣11⟩)(⟨00∣+⟨11∣)+38(∣01⟩−∣10⟩)(⟨01∣−⟨10∣)=18(1001000000001001)+38(000001−100−1100000)=18(100103−300−3301001).\begin{aligned} \rho & = \frac{1}{4} |\Phi_+\rangle\langle\Phi_+| + \frac{3}{4}|\Psi_-\rangle\langle\Psi_+| \\ & = \frac{1}{8}(|00\rangle+|11\rangle)(\langle00|+\langle11|)+\frac{3}{8}(|01\rangle-|10\rangle)(\langle01|-\langle10|)\\ & =\frac{1}{8}\begin{pmatrix} 1 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ 1 & 0 & 0 & 1 \end{pmatrix}+\frac{3}{8}\begin{pmatrix} 0 & 0 & 0 & 0 \\ 0 & 1 & -1 & 0 \\ 0 & -1 & 1 & 0 \\ 0 & 0 & 0 & 0 \end{pmatrix}\\ & =\frac{1}{8}\begin{pmatrix} 1 & 0 & 0 & 1 \\ 0 & 3 & -3 & 0 \\ 0 & -3 & 3 & 0 \\ 1 & 0 & 0 & 1 \end{pmatrix}. \end{aligned}

Modifique seu trabalho da pergunta anterior para escrever a matriz de densidade para uma probabilidade clássica de 50% de ∣Φ+⟩=12(∣00⟩+∣11⟩)|\Phi_\text{+}\rangle = \frac{1}{\sqrt{2}}(|00\rangle+|11\rangle) e uma probabilidade clássica de 50% de ∣Ψ-⟩=12(∣01⟩−∣10⟩)|\Psi_\text{-}\rangle = \frac{1}{\sqrt{2}}(|01\rangle-|10\rangle). Preveja qual informação de fase deve persistir.

Resposta
ρ=∑ipi∣ψi⟩⟨ψi∣.\rho = \sum_i p_i |\psi_i\rangle\langle\psi_i|.

pi≠0p_i \neq 0 apenas para os dois estados ∣Φ+⟩|\Phi_+\rangle e ∣Ψ−⟩|\Psi_-\rangle. Então podemos escrever

ρ=12∣Φ+⟩⟨Φ+∣+12∣Ψ−⟩⟨Ψ−∣=14(∣00⟩+∣11⟩)(⟨00∣+⟨11∣)+14(∣01⟩−∣10⟩)(⟨01∣−⟨10∣)=14(1001000000001001)+14(000001−100−1100000)=14(100101−100−1101001).\begin{aligned} \rho & = \frac{1}{2} |\Phi_+\rangle\langle\Phi_+| + \frac{1}{2}|\Psi_-\rangle\langle\Psi_-| \\ & = \frac{1}{4}(|00\rangle+|11\rangle)(\langle00|+\langle11|)+\frac{1}{4}(|01\rangle-|10\rangle)(\langle01|-\langle10|)\\ & =\frac{1}{4}\begin{pmatrix} 1 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ 1 & 0 & 0 & 1 \end{pmatrix}+\frac{1}{4}\begin{pmatrix} 0 & 0 & 0 & 0 \\ 0 & 1 & -1 & 0 \\ 0 & -1 & 1 & 0 \\ 0 & 0 & 0 & 0 \end{pmatrix}\\ & =\frac{1}{4}\begin{pmatrix} 1 & 0 & 0 & 1 \\ 0 & 1 & -1 & 0 \\ 0 & -1 & 1 & 0 \\ 1 & 0 & 0 & 1 \end{pmatrix}. \end{aligned}

Os termos diagonais somam 1, como devem. Os termos fora da diagonal não se cancelam aqui como aconteceu em um exemplo anterior de um único qubit. Você pode ver o porquê, na matemática, mas uma explicação resumida é que agora há mais estados em nosso espaço de Hilbert. Embora o primeiro estado de Bell tivesse uma fase relativa positiva e o segundo uma negativa, essas fases estavam entre estados de base diferentes. O primeiro estado de Bell tinha uma fase entre ∣00⟩|00\rangle e ∣11⟩|11\rangle, enquanto o segundo tinha uma fase relativa entre ∣01⟩|01\rangle e ∣10⟩|10\rangle.

Canais quânticos​

Um canal quântico é a transformação mais geral fisicamente permitida de um estado quântico. Ele leva uma matriz de densidade inicial ρ\rho a outra matriz de densidade:

ρ⟶Φ(ρ)\rho \quad \longrightarrow \Phi(\rho)

Aqui, Φ(ρ)\Phi(\rho) significa um canal quântico Φ\Phi atuando sobre uma matriz de densidade ρ\rho, que não deve ser confundido com os estados de Bell ∣Φ+⟩|\Phi_+\rangle ou ∣Φ−⟩|\Phi_-\rangle.

Os canais quânticos são extremamente gerais. Eles podem incluir:

  • Evolução unitária Φ(ρ)=UρU†\Phi(\rho) = U\rho U^\dagger

  • Misturas probabilísticas de unitárias

  • Measurements

  • Decoherence

  • Amortecimento de amplitude (perda de energia)

  • Desfasagem (perda de informação de fase)

  • Interação com um ambiente E muitas outras coisas.

Uma forma de pensar sobre os canais quânticos é que eles estão para as matrizes de densidade assim como as unitárias estão para os estados puros. Mas a generalidade das matrizes de densidade permite que os canais quânticos correspondentes sejam muito mais gerais e, portanto, mais poderosos.

As únicas restrições sobre um canal quântico são que ele deve ser:

  1. Linear Misturas de estados devem evoluir de forma consistente: Φ(pρ1+(1−p)ρ2)=pΦ(ρ1)+(1−p)Φ(ρ2)\Phi(p\rho_1 + (1-p)\rho_2) = p\Phi(\rho_1) + (1-p)\Phi(\rho_2)
  2. Completamente positivo Ele não deve produzir probabilidades negativas, mesmo que seu sistema esteja emaranhado com outra coisa.
  3. Preservador de traço As probabilidades devem somar 1. Isso às vezes é reunido no acrônimo CPTP: mapas Completamente Positivos e Preservadores de Traço (do inglês, Completely Positive Trace-Preserving).

Existem diferentes representações de canais quânticos, incluindo as representações de Stinespring, Kraus e Choi. Elas são tratadas em detalhe em esta lição sobre canais quânticos em General formulation of quantum information e lá também é mostrado que são equivalentes. Não entraremos nessas diferentes representações aqui. Basta dizer que elas são análogas a descrever vetores usando três referenciais de coordenadas diferentes. Cada uma pode enfatizar aspectos diferentes e construir intuição de uma forma diferente; mas todas fornecem a resposta correta. Representações de Kraus são convenientes para nossos propósitos. Elas oferecem uma forma prática e formulaica de expressar a ação de um canal por meio de multiplicação e adição de matrizes. Em particular, uma representação de Kraus é uma especificação de um canal, Φ\Phi, na seguinte forma.

Φ(ρ)=∑k=0N−1AkρAk†\Phi(\rho) = \sum_{k = 0}^{N-1} A_k \rho A_k^{\dagger}

Aqui, A0,…,AN−1A_0,\ldots,A_{N-1} são matrizes que possuem todas as mesmas dimensões: suas colunas correspondem aos estados clássicos do sistema de entrada, X\mathsf{X}, e suas linhas correspondem aos estados clássicos do sistema de saída, seja ele X\mathsf{X} ou algum outro sistema Y\mathsf{Y}. Para que Φ\Phi seja um canal válido, essas matrizes devem satisfazer a seguinte condição.

∑k=0N−1Ak†Ak=IX\sum_{k = 0}^{N-1} A_k^{\dagger} A_k = \mathbb{I}_{\mathsf{X}}

Essas matrizes são chamadas de matrizes de Kraus. Essa formulação é aplicável não apenas a canais de ruído, mas a processos e canais quânticos gerais, incluindo a medição. Vamos ver um exemplo de como elas podem ser usadas para construir canais no contexto de ruído e erros.

Canal completamente desfasador​

Considere um canal que destrói toda a informação de fase e o chame de canal completamente desfasador. Isso significa que o canal deve levar qualquer matriz de densidade da forma

ρi=(ρ11ρ12…ρ1nρ21ρ22⋱ρ2n⋮⋱⋱⋮ρn1ρn2…ρnn)\rho_i = \begin{pmatrix} \rho_{11} & \rho_{12} & \dots & \rho_{1n} \\ \rho_{21} & \rho_{22} & \ddots & \rho_{2n} \\ \vdots & \ddots & \ddots & \vdots \\ \rho_{n1} & \rho_{n2} & \dots & \rho_{nn} \end{pmatrix}

e mapeá-la para

ρf=Φ(ρi)=(ρ110…00ρ22⋱0⋮⋱⋱⋮00…ρnn)\rho_f = \Phi(\rho_i) = \begin{pmatrix} \rho_{11} & 0 & \dots & 0 \\ 0 & \rho_{22} & \ddots & 0 \\ \vdots & \ddots & \ddots & \vdots \\ 0 & 0 & \dots & \rho_{nn} \end{pmatrix}

Se assumirmos que a matriz de densidade já foi escrita na base computacional, podemos expressar ρij\rho_{ij} como ⟨i∣ρ∣j⟩\langle i|\rho|j\rangle. Isso sugere um conjunto de matrizes de Kraus que pode realizar essa ação do canal: Ak=∣k⟩⟨k∣A_k = |k\rangle\langle k|. Vamos aplicar essa estratégia a um caso de exemplo de um único qubit e ver se funciona como exigimos:

Defina A0=∣0⟩⟨0∣A_0 = \vert 0\rangle\langle 0\vert e A1=∣1⟩⟨1∣A_1 = \vert 1\rangle\langle 1\vert.

∑k=01AkρAk†=∣0⟩⟨0∣ρ∣0⟩⟨0∣+∣1⟩⟨1∣ρ∣1⟩⟨1∣\begin{aligned} \sum_{k = 0}^1 A_k \rho A_k^{\dagger} & = \vert 0\rangle\langle 0 \vert \rho \vert 0\rangle\langle 0 \vert + \vert 1\rangle\langle 1 \vert \rho \vert 1\rangle\langle 1 \vert \end{aligned}

Como ⟨0∣ρ∣0⟩\langle 0 \vert \rho \vert 0\rangle é um número, podemos simplesmente mover o vetor ∣0⟩\vert 0\rangle para além dele. Isso também se aplica ao segundo termo. Temos:

∑k=01AkρAk†=⟨0∣ρ∣0⟩ ∣0⟩⟨0∣+⟨1∣ρ∣1⟩ ∣1⟩⟨1∣=(⟨0∣ρ∣0⟩00⟨1∣ρ∣1⟩)\begin{aligned} \sum_{k = 0}^1 A_k \rho A_k^{\dagger}& = \langle 0 \vert \rho \vert 0\rangle \, \vert 0\rangle\langle 0 \vert + \langle 1 \vert \rho \vert 1\rangle \, \vert 1\rangle\langle 1 \vert \\[2mm] & = \begin{pmatrix} \langle 0 \vert \rho \vert 0 \rangle & 0 \\[1mm] 0 & \langle 1 \vert \rho \vert 1 \rangle \end{pmatrix} \end{aligned}

Observe que essas matrizes satisfazem a condição necessária:

∑k=01Ak†Ak=∣0⟩⟨0∣0⟩⟨0∣+∣1⟩⟨1∣1⟩⟨1∣=∣0⟩⟨0∣+∣1⟩⟨1∣=I\sum_{k = 0}^1 A_k^{\dagger} A_k = \vert 0\rangle\langle 0\vert 0\rangle\langle 0\vert + \vert 1\rangle\langle 1\vert 1\rangle\langle 1\vert = \vert 0\rangle\langle 0\vert + \vert 1\rangle\langle 1\vert = \mathbb{I}

Vale notar que essa escolha de matrizes de Kraus não é única.

Caracterizando o ruído como canais​

Nesta seção, usaremos o modelo da esfera de Bloch e a matemática dos canais quânticos para entender melhor vários tipos de ruído e erros.

Erros incoerentes​

Vamos voltar aos erros incoerentes e explorar especificamente os erros de relaxação de energia. Lembre-se de que o estado ∣0⟩|0\rangle é o estado fundamental de um qubit e o estado ∣1⟩|1\rangle tem uma energia ligeiramente mais alta. Às vezes, estados quânticos simplesmente decaem espontaneamente de um nível de energia mais alto para um mais baixo. O processo de emissão espontânea é um tópico rico e não pode ser realmente compreendido sem um tratamento de teoria quântica de campos. Mas a intuição é bem familiar para todos nós: perturbações aleatórias podem fazer uma pedra rolar morro abaixo; elas não farão uma pedra rolar morro acima. Quanto tempo um qubit permanece no estado de energia mais alta é caracterizado por um tempo T1T_1. Mais especificamente, a probabilidade de que um qubit preparado no estado ∣1⟩|1\rangle permaneça nesse estado após um tempo tt é e−t/T1e^{-t/T_1}. Ou, equivalentemente, a probabilidade pp de um erro de relaxação de energia após um tempo tt é

p=1−e−t/T1p = 1-e^{-t/T_1}

Para descrever isso com um canal quântico na representação de Kraus, precisamos de matrizes de Kraus que correspondam a

  • deixar os estados ∣0⟩|0\rangle inalterados
  • alterar os estados ∣1⟩|1\rangle para ∣0⟩|0\rangle com alguma probabilidade p.

Vamos definir

A0=1∣0⟩⟨0∣+1−p∣1⟩⟨1∣=(1001−p)A1=p∣0⟩⟨1∣=(0p00)\begin{aligned} A_0 & = 1|0\rangle\langle0| + \sqrt{1-p}|1\rangle\langle1|\\ & = \begin{pmatrix} 1 & 0 \\ 0 & \sqrt{1-p}\end{pmatrix}\\ A_1 & = \sqrt{p}|0\rangle\langle1|\\ & = \begin{pmatrix} 0 & \sqrt{p} \\ 0 & 0\end{pmatrix} \end{aligned}

Primeiro, vamos verificar que isso tem os efeitos desejados em uma matriz de densidade. Considere um sistema que está em um estado puro ∣ψ⟩=12(∣0⟩+∣1⟩)|\psi\rangle = \frac{1}{\sqrt{2}}(|0\rangle+|1\rangle). Vimos em um exemplo acima que a matriz de densidade para esse caso é

ρ=12(1111).\rho =\frac{1}{2}\begin{pmatrix} 1 & 1 \\ 1 & 1\end{pmatrix}.

Aplicando o canal de relaxamento de energia usando matrizes de Kraus, obtemos a nova matriz de densidade mapeada:

Φ(ρ)=∑k=0N−1AkρAk†=A0ρA0†+A1ρA1†=(1001−p)12(1111)(1001−p)+(0p00)12(1111)(00p0)=12(1+p1−p1−p1−p)\begin{aligned} \Phi(\rho) & = \sum_{k = 0}^{N-1} A_k \rho A_k^{\dagger}\\ & = A_0 \rho A_0^{\dagger} + A_1 \rho A_1^{\dagger}\\ & = \begin{pmatrix} 1 & 0 \\ 0 & \sqrt{1-p}\end{pmatrix}\frac{1}{2}\begin{pmatrix} 1 & 1 \\ 1 & 1\end{pmatrix}\begin{pmatrix} 1 & 0 \\ 0 & \sqrt{1-p}\end{pmatrix}+\begin{pmatrix} 0 & \sqrt{p} \\ 0 & 0\end{pmatrix}\frac{1}{2}\begin{pmatrix} 1 & 1 \\ 1 & 1\end{pmatrix}\begin{pmatrix} 0 & 0 \\ \sqrt{p} & 0\end{pmatrix}\\ & = \frac{1}{2}\begin{pmatrix} 1+p & \sqrt{1-p} \\ \sqrt{1-p} & 1-p\end{pmatrix} \end{aligned}

Vamos examinar isso e comparar com nossa intuição:

Primeiro, vamos verificar o limite quando tt se aproxima de zero. Recuperamos nossa matriz de densidade inicial, como deveríamos:

Φ(ρ,t→0)=lim⁡p→012(1+p1−p1−p1−p)=12(1111).\Phi(\rho,t \rightarrow 0) = \lim_{p\rightarrow 0}{\frac{1}{2}\begin{pmatrix} 1+p & \sqrt{1-p} \\ \sqrt{1-p} & 1-p\end{pmatrix}} = {\frac{1}{2}\begin{pmatrix} 1 & 1 \\ 1 & 1\end{pmatrix}}.

Conforme o tempo passa, esperaríamos que a probabilidade de medir o estado ∣0⟩|0\rangle aumentasse, e a probabilidade de medir ∣1⟩|1\rangle diminuísse. Isso é, novamente, exatamente o que vemos, já que

P∣0⟩=⟨0∣ρ∣0⟩=12(1+p)=1−12e−t/T1P∣1⟩=⟨1∣ρ∣1⟩=12(1−p)=12e−t/T1\begin{aligned} P_{|0\rangle} & = \langle 0 | \rho |0\rangle = \frac{1}{2}(1+p) = 1-\frac{1}{2}e^{-t/T_1}\\ P_{|1\rangle} & = \langle 1 | \rho |1\rangle = \frac{1}{2}(1-p) = \frac{1}{2}e^{-t/T_1} \end{aligned}

Também podemos ver trivialmente que as probabilidades de medir ∣0⟩|0\rangle e ∣1⟩|1\rangle somam 1, como devem.

O escalonamento preciso dos termos de coerência (fora da diagonal) está além do escopo deste tratamento. Mas o que fica claro é que inicialmente temos informação de fase perfeita, e após um tempo muito longo não pode haver informação de fase, já que o sistema está inteiramente relaxado no estado ∣0⟩|0\rangle. Portanto, os termos de coerência devem decair para zero em tempos muito longos. De fato,

lim⁡p→11−p=lim⁡t→∞e−t/T1=0\lim_{p\rightarrow 1}{\sqrt{1-p}} = \lim_{t\rightarrow \infty}{\sqrt{e^{-t/T_1}}} = 0

Muitas das restrições em nossas matrizes de Kraus são verificadas implicitamente por meio dessas considerações intuitivas. Deve-se verificar rigorosamente que as restrições nos canais (e nas matrizes de Kraus especificamente) são satisfeitas, mas deixamos isso como exercício para o leitor.

Graficamente, esse tipo de canal pode ser representado usando uma esfera de Bloch. Um estado puro se encontra na superfície de uma esfera de Bloch. Estados mistos se deslocam para o interior da esfera e se espalham a partir de um único ponto. A inclusão de probabilidades clássicas é vista pela redução na distância absoluta da origem a qualquer um dos estados na mistura, e o espalhamento de um único ponto para uma região indica a mistura de múltiplos estados possíveis. No caso especial de um canal de relaxamento de energia, o estado misto (matriz de densidade) após algum tempo não negligenciável se pareceria com a imagem abaixo: uma região no interior da esfera de Bloch, deslocada para cima em direção ao polo ∣0⟩|0\rangle, e encolhida tanto ao longo do eixo ZZ quanto ao longo do plano XYXY, embora em menor extensão do que ao longo de ZZ.

A Bloch sphere with a shaded region near the zero-state pole. The region is a shrunken oblate spheroid.

Observe que a região não é uma "tampa" da esfera de Bloch, como às vezes aparece em uma renderização em perspectiva. Como pode ser claramente visto no vídeo, trata-se de um esferoide oblato, encolhido e deslocado em direção ao estado ∣0⟩|0\rangle. Os canais de ruído (e os canais em geral) são, é claro, aplicáveis a sistemas de qualquer tamanho. Mas representá-los visualmente (como em uma esfera de Bloch) torna-se difícil à medida que aumenta o número de estados mutuamente ortogonais no espaço de Hilbert.

Verifique seu entendimento​

Verifique que as matrizes de Kraus usadas no canal de relaxamento de energia acima satisfazem a condição de identidade:

∑k=0N−1Ak†Ak=IX\sum_{k = 0}^{N-1} A_k^{\dagger} A_k = \mathbb{I}_{\mathsf{X}}
Resposta
∑k=0N−1Ak†Ak=A0†A0+A1†A1=(1001−p)(1001−p)+(00p0)(0p00)=(1001−p)+(000p)=I\begin{aligned} \sum_{k = 0}^{N-1} A_k^{\dagger} A_k & = A_0^\dagger A_0 + A_1^\dagger A_1\\ & = \begin{pmatrix} 1 & 0 \\ 0 & \sqrt{1-p}\end{pmatrix}\begin{pmatrix} 1 & 0 \\ 0 & \sqrt{1-p}\end{pmatrix} + \begin{pmatrix} 0 & 0 \\ \sqrt{p} & 0\end{pmatrix}\begin{pmatrix} 0 & \sqrt{p} \\ 0 & 0\end{pmatrix}\\ & = \begin{pmatrix} 1 & 0 \\ 0 & 1-p\end{pmatrix} + \begin{pmatrix} 0 & 0 \\ 0 & p\end{pmatrix}\\ & = \mathbb{I} \end{aligned}

Apresentaremos mais dois tipos de canais de ruído incoerente, mas deixaremos a maior parte da interpretação e verificação como exercícios. O próximo é o canal de defasagem, que descreve uma perda de informação de fase, mas com a preservação das amplitudes. Embora ainda possa haver probabilidades tanto clássicas quanto quântico-mecânicas envolvidas na probabilidade geral de medição, a perda de informação de fase é frequentemente descrita como uma perda de informação quântica, ou como o sistema se tornando mais clássico.

Da mesma forma que a relaxação de energia foi descrita com um tempo característico T1T_1, os erros de defasagem são descritos por um segundo parâmetro de tempo T2T_2. A probabilidade de um erro de defasagem após um tempo tt é dada por

p=1−e−t/T2p = 1-e^{-t/T_2}

Um conjunto de matrizes de Kraus para o canal de defasagem em um único qubit, em termos dessa probabilidade, é o seguinte:

A0=1−pI=(1−p001−p)A1=pZ=(p00−p)\begin{aligned} A_0 & = \sqrt{1-p}\mathbb{I}\\ & = \begin{pmatrix} \sqrt{1-p} & 0 \\ 0 & \sqrt{1-p}\end{pmatrix}\\ A_1 & = \sqrt{p}Z\\ & = \begin{pmatrix} \sqrt{p} & 0 \\ 0 & -\sqrt{p}\end{pmatrix}\\ \end{aligned}

O resultado desse canal de defasagem é visualizado usando uma esfera de Bloch na figura abaixo.

A Bloch sphere with a shaded region extending to both poles along the vertical z axis, but shrunken in the x-y plane. The region is again a shrunken oblate spheroid, but this time still centered on the origin and shrunken toward the z-axis.

Observe que as amplitudes não são alteradas, então quaisquer estados que caiam exatamente em um polo (∣0⟩|0\rangle ou ∣1⟩|1\rangle) não são afetados e ainda são mapeados para a superfície da esfera na região sombreada. Mas a informação de fase é perdida, o que corresponde a um encolhimento da região sombreada através do plano XYXY. Uma forma de entender isso é: qualquer estado quântico possível ainda pode ter uma fase bem definida, mas como há uma probabilidade clássica de encontrar vários estados com diferentes fases bem definidas, a probabilidade geral de qualquer fase bem definida é reduzida.

Verifique seu entendimento​

Verifique que as matrizes de Kraus definidas acima para o canal de defasagem satisfazem a condição de identidade:

∑k=0N−1Ak†Ak=IX\sum_{k = 0}^{N-1} A_k^{\dagger} A_k = \mathbb{I}_{\mathsf{X}}
Resposta
∑k=0N−1Ak†Ak=A0†A0+A1†A1=(1−p001−p)(1−p001−p)+(p00−p)(p0−p)=(1−p001−p)+(p00p)=I\begin{aligned} \sum_{k = 0}^{N-1} A_k^{\dagger} A_k & = A_0^\dagger A_0 + A_1^\dagger A_1\\ & = \begin{pmatrix} \sqrt{1-p} & 0 \\ 0 & \sqrt{1-p}\end{pmatrix}\begin{pmatrix} \sqrt{1-p} & 0 \\ 0 & \sqrt{1-p}\end{pmatrix} + \begin{pmatrix} \sqrt{p} & 0 \\ 0 & -\sqrt{p}\end{pmatrix}\begin{pmatrix} \sqrt{p} & \\ 0 & -\sqrt{p}\end{pmatrix}\\ & = \begin{pmatrix} 1-p & 0 \\ 0 & 1-p\end{pmatrix} + \begin{pmatrix} p & 0 \\ 0 & p\end{pmatrix}\\ & = \mathbb{I} \end{aligned}

Comece com um estado puro de um único qubit de sua escolha, com uma fase bem definida entre ∣0⟩|0\rangle e ∣1⟩|1\rangle. Escreva-o como uma matriz de densidade. Aplique o canal de defasagem usando os operadores de Kraus sugeridos acima. Interprete a matriz de densidade mapeada resultante.

Resposta

Vamos escolher o estado ∣ψ⟩=45∣0⟩−i35∣1⟩|\psi\rangle = \frac{4}{5}|0\rangle -i\frac{3}{5} |1\rangle. A matriz de densidade correspondente ρ\rho é

ρ=∑ipi∣ψi⟩⟨ψi∣=1(45∣0⟩−i35∣1⟩)(45∣0⟨+i35∣1⟨)=1625(1000)+12i25(0100)−12i25(0010)+925(0001)=125(1612i−12i9)\begin{aligned} \rho & = \sum_i p_i |\psi_i\rangle\langle\psi_i|\\ & = 1\left(\frac{4}{5}|0\rangle -i\frac{3}{5} |1\rangle\right) \left( \frac{4}{5}|0\langle +i\frac{3}{5} |1\langle\right)\\ & = \frac{16}{25}\begin{pmatrix} 1 & 0 \\ 0 & 0\end{pmatrix}+\frac{12i}{25}\begin{pmatrix} 0 & 1 \\ 0 & 0\end{pmatrix}-\frac{12i}{25}\begin{pmatrix} 0 & 0 \\ 1 & 0\end{pmatrix}+\frac{9}{25}\begin{pmatrix} 0 & 0 \\ 0 & 1\end{pmatrix}\\ & = \frac{1}{25}\begin{pmatrix} 16 & 12i \\ -12i & 9\end{pmatrix} \end{aligned}

Agora aplicamos o canal de defasagem a essa matriz de densidade usando os operadores de Kraus.

Φ(ρ)=∑k=0N−1AkρAk†=A0ρA0†+A1ρA1†=(1−p001−p)125(1612i−12i9)(1−p001−p)+(p00−p)125(1612i−12i9)(p0−p)=125(16(1−p)12i(1−p)−12i(1−p)9(1−p))+125(16p−12ip12ip9p)=125(1612i(1−2p)−12i(1−2p)9)\begin{aligned} \Phi(\rho) & = \sum_{k = 0}^{N-1} A_k \rho A_k^{\dagger}\\ & = A_0 \rho A_0^\dagger + A_1 \rho A_1^\dagger\\ & = \begin{pmatrix} \sqrt{1-p} & 0 \\ 0 & \sqrt{1-p}\end{pmatrix} \frac{1}{25}\begin{pmatrix} 16 & 12i \\ -12i & 9\end{pmatrix} \begin{pmatrix} \sqrt{1-p} & 0 \\ 0 & \sqrt{1-p}\end{pmatrix} + \begin{pmatrix} \sqrt{p} & 0 \\ 0 & -\sqrt{p}\end{pmatrix} \frac{1}{25}\begin{pmatrix} 16 & 12i \\ -12i & 9\end{pmatrix} \begin{pmatrix} \sqrt{p} & \\ 0 & -\sqrt{p}\end{pmatrix}\\ & = \frac{1}{25}\begin{pmatrix} 16(1-p) & 12i(1-p) \\ -12i(1-p) & 9(1-p)\end{pmatrix} + \frac{1}{25}\begin{pmatrix} 16p & -12ip \\ 12ip & 9p\end{pmatrix}\\ & = \frac{1}{25}\begin{pmatrix} 16 & 12i(1-2p) \\ -12i(1-2p) & 9\end{pmatrix} \end{aligned}

Primeiramente, observamos que a soma das diagonais é de fato igual a um, como deve ser. Em segundo lugar, observe que os elementos fora da diagonal eram inicialmente grandes, com uma soma de 24/25, indicando forte coerência. Observe que, conforme a probabilidade de um erro de defasagem pp aumenta, esses elementos fora da diagonal diminuem. Isso também corresponde à nossa expectativa. Uma sutileza: observe o que acontece quando p→1p\rightarrow 1. A coerência volta a ficar forte! Isso parece contraintuitivo à primeira vista, porque uma alta probabilidade de um erro de defasagem deveria bagunçar nossa fase, certo? O detalhe é que, se temos 100% de certeza de que ocorre um erro de fase, então voltamos a ter forte informação sobre a fase; a fase simplesmente se inverteu. Com essa percepção, poderíamos esperar que a pior informação de fase correspondesse a uma chance de 50-50 de ocorrer um erro de fase, e é exatamente isso que encontramos.

Nosso último exemplo de canal de ruído descrevendo erros incoerentes é o canal de ruído de Pauli. Esse canal descreve a ocorrência de três tipos de erros com probabilidades independentes:

  • Erro de inversão de bit (erro X) com probabilidade pxp_x
  • Erro de inversão de fase (erro Z) com probabilidade pzp_z
  • Combinação de X e Z (erro Y) com probabilidade pyp_y Aqui, 0≤pj≤10\leq p_j \leq 1 para todo jj. Um corolário é que a probabilidade de nenhum erro ocorrer é pI=1−px−py−pzp_I = 1-p_x-p_y-p_z.

Os operadores de Kraus para esse canal são:

A0=pIIA1=pXXA2=pYYA3=pZZ\begin{aligned} A_0 & = \sqrt{p_I}I\\ A_1 & = \sqrt{p_X}X\\ A_2 & = \sqrt{p_Y}Y\\ A_3 & = \sqrt{p_Z}Z \end{aligned}

No caso do canal de ruído de Pauli, é instrutivo escrever o próprio canal:

Φ(ρ)=pIIρI+pXXρX+pYYρY+pZZρZ\Phi(\rho) = p_I I\rho I + p_X X\rho X+p_Y Y \rho Y + p_Z Z \rho Z

Vemos a partir dessa forma que o canal de ruído de Pauli implementa um ou mais erros correspondentes à ação das matrizes de Pauli PjP_j, cada uma com probabilidade pjp_j.

Várias combinações de probabilidades de inversão produzirão visualizações diferentes. Aqui visualizamos o caso especial em que pX=pY=pZp_X = p_Y = p_Z, também chamado de canal despolarizante.

A Bloch sphere with a shaded region shrunken uniformly toward the center.

Modelando erros coerentes​

Canais quânticos podem representar tanto erros coerentes quanto incoerentes, mas na prática são usados principalmente para erros incoerentes, porque erros coerentes são mais bem modelados como descalibrações unitárias ou convertidos em canais estocásticos para facilitar a análise. Nesta seção, apresentaremos abordagens mais aplicáveis a erros coerentes.

Erros coerentes podem ser modelados por portas unitárias indesejadas. Alguns exemplos simples incluem rotações desalinhadas ou sub-/sobrerrotação. Na imagem abaixo, mostramos uma rotação desalinhada como uma rotação YY extra por uma pequena quantidade ϵ\epsilon além da rotação desejada em torno do eixo XX. Uma sobrerrotação é descrita pela rotação XX desejada e também por alguma rotação adicional em torno do mesmo eixo XϵX_\epsilon.

Small circuit diagrams showing that a gate error on a rotation could show up as misalignment (as in a slight erroneous rotation about Y when intending to rotate about X) or as over/under rotation (as in an erroneous extra rotation about X).

Erros de dois qubits e cones de luz sombreados​

Uma porta de um único qubit gira um qubit isolado. Uma porta de dois qubits implementa uma lógica que depende de dois qubits, mas não pode fazer uma medição direta de nenhum dos dois; portanto, ela precisa ativar uma interação entre qubits. Essa interação é a razão pela qual podemos construir emaranhamento, e também é de onde vem grande parte do ruído, da diafonia (crosstalk) e da dificuldade de calibração. Essa interação entre qubits também permite que erros se espalhem. Se um qubit tem algum erro e serve como qubit de controle para outro qubit alvo, o erro pode ser passado para o alvo. Nesta lição, revisaremos o que as portas de dois qubits significam para as taxas de erro e seu espalhamento dentro de um circuito.

Portas de ressonância cruzada ecoada​

Diferentes arquiteturas de hardware e famílias de portas projetam essa interação de maneiras diferentes. Os computadores quânticos da IBM implementam portas abstratas de dois qubits, como portas CZ ou CX, usando portas de ressonância cruzada ecoada (ECR) nativas do hardware. As portas ECR geram uma interação efetiva ZXZX usando um pulso de micro-ondas. Portas relacionadas, como a CNOT, são construídas a partir de ZXZX adicionando rotações de um único qubit.

Qubits diferentes têm frequências ressonantes diferentes (frequências às quais reagem fortemente). Uma operação padrão pode usar essa frequência ressonante para induzir uma transição em um qubit. Mas o que acontece se você excitar o qubit C na frequência ressonante de um qubit adjacente T? Qubits adjacentes são ligados por uma interação capacitiva fixa ou mediada por ressonador. Devido a esse acoplamento, uma excitação no qubit C "vaza" para o hamiltoniano do qubit T. A força e a direção dessa excitação efetiva dependem do estado do qubit C (∣0⟩|0\rangle ou ∣1⟩|1\rangle). Aqui, o qubit C é o controle e o qubit T é o alvo.

O resultado é uma rotação efetiva do qubit alvo condicionada ao estado do qubit de controle. Matematicamente:

Heff≈ΩZCXT+outros termosH_{eff} \approx \Omega Z_C X_T +\text{outros termos}

Essa interação ZX é exatamente o que você precisa para construir uma CNOT. Mas os outros termos podem incluir alguns erros, e é quase certo que incluam acoplamento capacitivo entre os qubits C e T, o que corresponde a um termo ZZ.

HCR=Ω ZCXT⏟desired+α ICXT+β ZCIT+γ ICZT+δ ZCZT+…⏟undesired.H_\mathrm{CR} = \underbrace{\Omega \, Z_C X_T}_{\text{desired}} + \underbrace{\alpha\, I_C X_T + \beta\, Z_C I_T + \gamma\, I_C Z_T + \delta\, Z_C Z_T + \dots}_{\text{undesired}}.

Podemos pensar nesses termos adicionais da seguinte forma:

  • IX = o alvo é acionado sem intenção

  • ZI = o qubit de controle adquire uma rotação Z indesejada

  • IZ = o qubit alvo adquire uma rotação Z indesejada

  • ZZ = deslocamento de fase estático dependente do estado

  • outros = pequenas interações XY, XX, de ordem superior

Uma porta ECR é simplesmente uma rotação controlada mais um pulso de eco cuidadosamente escolhido no qubit de controle. O eco inverte o sinal de muitos termos indesejados, preservando a interação ZX. Esse processo cancela bastante bem os erros IX e ZI, e às vezes alguns termos de ordem superior. Mas o eco não consegue cancelar o acoplamento ZZ estático, porque ele comuta com o pulso de eco. Existem outras interações que não serão canceladas nesse processo: algumas não linearidades residuais e efeitos de qubits espectadores, vazamento e contaminação de excitação de longo alcance, além de alguns outros — mas o termo ZZ é especialmente importante.

Esse processo geralmente requer tempos de excitação uma ordem de magnitude maiores do que as portas de um único qubit. A combinação de tempos de excitação mais longos, termos ZZ persistentes no hamiltoniano e imperfeições no acoplamento tornam as portas de dois qubits a fonte dominante de erros de porta. Observe também que, se for necessário ter interações em um circuito entre qubits que não são adjacentes, as portas SWAP necessárias também são, obviamente, portas de dois qubits. É por isso que a métrica padrão relacionada à profundidade é: profundidade transpilada de dois qubits. Nos importamos principalmente com as portas de dois qubits porque elas dominam o erro de porta, e precisamos observar os circuitos transpilados porque a transpilação frequentemente introduz muitas portas adicionais de dois qubits na forma de portas SWAP.

Verifique seu entendimento​

Explique por que nos importamos principalmente com a profundidade transpilada de dois qubits. Certifique-se de considerar as restrições de hardware e o fato de que a profundidade das portas de um único qubit pode ser muito maior.

Resposta

Portas de dois qubits têm taxas de erro muito mais altas do que portas de um único qubit. As portas de um único qubit não são perfeitas, então pode haver casos em que também considerar a profundidade de um único qubit é útil. Mas a profundidade das portas de dois qubits tende a dominar o comportamento de erro de um circuito. Devemos considerar o circuito transpilado. Os computadores quânticos modernos não têm conectividade total entre todos os qubits (all-to-all). Os computadores quânticos da IBM usam uma rede quadrada ou uma rede "heavy hex", o que significa que os qubits têm 2, 3 ou 4 vizinhos mais próximos aos quais podem ser diretamente acoplados usando uma única porta de dois qubits. Qualquer emaranhamento com outros qubits não adjacentes requer mover informação pelo computador quântico usando portas SWAP de dois qubits. Assim, a transpilação tende a aumentar a profundidade das portas de dois qubits. Para circuitos altamente emaranhados, esse aumento pode ser muito grande.

Cones de luz sombreados​

Suponha que um único qubit esteja bem isolado de todos os outros. Um erro nesse qubit não causará nenhum erro em nenhum outro qubit. Mas quando um qubit interage com outro, os erros podem se propagar. A forma como os erros se propagam depende de como os qubits interagem. Considere o circuito abaixo. Suponha que quaisquer qubits adjacentes no diagrama do circuito também sejam adjacentes no chip quântico (ou seja, não será necessário trocar informações entre outros qubits para viabilizar as interações descritas).

Four circuit diagrams showing how errors can propagate. If a qubit is not entangled with other qubits, an error is confined. Most qubits will be entangled with some others, and thus errors can propagate from one qubit to another.

Embora você talvez não tenha pensado dessa forma, isso é uma espécie de diagrama de espaço-tempo. O eixo vertical em um circuito quântico representa diferentes qubits organizados no espaço. O eixo horizontal representa o tempo ao longo do qual uma sequência de portas é aplicada. Emprestando a linguagem da relatividade, um cone de luz representa a região do espaço-tempo que é alcançável a partir de um ponto por meio de interações causais.

Na figura acima, o tipo de erro não foi especificado. Acontece que o tipo de erro afeta o cone de luz, já que alguns erros afetam a lógica de uma porta de dois qubits, e outros não. Voltaremos a isso em breve. Por enquanto, considere que as linhas amarelas são caminhos de possível espalhamento de algum tipo de erro. Observe, por exemplo, na parte (a) da figura, que um erro de um único qubit na porta RZ do qubit 4 só pode se propagar para frente no tempo naquele único qubit. Ele não pode se espalhar para outros qubits porque o qubit 4 não está emaranhado com nenhum outro qubit. Este é um bom momento para observar que o qubit 4 é bastante inútil neste circuito, e de fato todo o circuito é construído apenas para fins pedagógicos.

Um erro na porta Z do qubit 0 (não necessariamente um erro Z, apenas algum erro naquele local), no entanto, poderia se propagar para outro qubit: o qubit 1, por meio da CNOT final que usa o qubit 0 como controle e o qubit 1 como alvo. Isso é mostrado na parte (b). Como você poderia esperar, um erro mais cedo no circuito frequentemente terá chance de se propagar por mais qubits. A parte (c) mostra que um erro na preparação do estado inicial do qubit 0 pode se espalhar para todos os qubits, exceto o qubit 4, que está isolado.

Essa configuração mostra como um erro pode se propagar para frente no tempo e afetar medições. Mas você também pode examinar a questão inversa: para uma medição específica de um único qubit, quais partes do meu circuito poderiam ter contribuído com algum erro para ela? Nesse caso, você simplesmente começaria pela medição ou outro ponto de interesse e trabalharia de trás para frente (no tempo) ao longo do circuito, seguindo quaisquer circuitos emaranhadores, como mostrado na parte (d). Também são mostrados alguns pontos escolhidos aleatoriamente para a ocorrência de erros.

Na figura acima, os erros se espalham entre qubits por meio de portas ECR, mas uma discussão semelhante poderia se aplicar a outras portas de dois qubits. Essas portas têm um controle e um alvo. É claro que um erro no controle pode afetar a lógica da porta e, assim, resultar em um erro no alvo. Mas e a outra direção? Um erro no alvo pode se propagar para o qubit de controle? Lembre-se de que o acoplamento entre controle e alvo para portas ECR não é puramente do tipo ZX ideal; ele também tem um acoplamento ZZ indesejado.

Se um erro no alvo comuta com o acoplamento ZZ, então ele não pode se propagar para o qubit de controle. Podemos ver isso por meio dos mecanismos físicos em ação. Uma forma rápida de ver isso é que, se um erro EE comuta com ZZZZ, então sua ordem pode ser trocada sem afetar o resultado. No entanto, se aplicar EE logo antes do acoplamento ZZZZ equivale a aplicá-lo logo depois do acoplamento ZZZZ, então ele não pode afetar o controle, já que, nesse último caso, o erro teria que se mover para trás no tempo. Se um erro não comuta com o acoplamento ZZ, então ele pode de fato se propagar do alvo de volta para o controle. Assim, no caso de uma porta ECR, erros Z não poderiam se propagar do alvo para o controle, mas erros X ou Y poderiam.

Verifique seu entendimento​

Na parte (d) da figura acima, observe as linhas verticais entre os qubits 0 e 1. É correto dizer que alguns erros poderiam se espalhar por essas linhas? Novamente, isso pode depender do tipo de erro, e ainda não discutimos isso. A questão é se existe algum erro que poderia se propagar como mostrado por essas linhas verticais. Explique.

Resposta

Sim, está correto. Ao esboçar o cone de luz para trás a partir da medição, pode parecer que você está afirmando que algo está se movendo do alvo para o controle. No entanto, o significado do diagrama é, na verdade, que um erro poderia ter se movido do controle (qubit 0) para o alvo (qubit 1) para causar um erro no ponto de interesse. Se sua intuição é de que isso depende do tipo de erro, você está absolutamente correto. Isso é parcialmente abordado na próxima seção.

Começando com uma versão livre de erros dos circuitos no diagrama acima, rastreie o possível espalhamento de um erro na primeira porta Hadamard atuando no qubit 2. Liste todos os qubits que poderiam ser afetados até o final do circuito se o erro for (a) uma inversão de fase e (b) uma inversão de bit. Dica: pense em como a informação em cada qubit está sendo usada.

Resposta

(a) O qubit 3 poderia ser afetado, além, obviamente, do próprio qubit 2. Nenhum outro! Se você listou os qubits 0 e 1, observe que o qubit 2 é o alvo da ECR que o emaranha com o qubit 1. Nenhuma alteração é feita no qubit 1 nessa porta. (b) Os qubits 0-3 poderiam ser afetados. O erro de inversão de bit ou do tipo X não comuta com o acoplamento ZZ na porta ECR e, portanto, pode se propagar do alvo para o controle.

Propagação de erros​

Na seção anterior, discutimos a propagação de erros sem lhe dar uma definição formal. Doravante:

Para um erro EE que ocorre antes de alguma parte da carga lógica de um circuito UU, a propagação de erro significa encontrar o operador equivalente E′E' que reproduz o mesmo resultado defeituoso quando aplicado depois de UU em vez de antes dele.

An error E propagates through a unitary U as E′=UEU†\boxed{ \text{An error } E \text{ propagates through a unitary } U \text{ as } E' = U E U^\dagger } U E ∣ψ⟩=E′ U ∣ψ⟩\boxed{ U\,E\,|\psi\rangle = E'\,U\,|\psi\rangle }

A imagem da propagação de erros na seção anterior sugeriu que erros poderiam se espalhar de um qubit de controle para um qubit alvo através de uma porta CNOT. Uma forma de verificar quando isso é verdade é considerar um erro no controle ou no alvo antes do emaranhamento, e verificar se esse operador comuta com a porta CNOT. Se os dois operadores comutam, então não faz diferença aplicá-los em ordem inversa, o que significa que o erro poderia simplesmente ser "movido para depois" da CNOT sem ter nenhum efeito sobre outros qubits. Essa é a forma mais comum de abordar a propagação de erros, e ela produz as seguintes regras:

Seja o controle o qubit 0 e o alvo o qubit 1. Considere erros X e Z nos qubits de controle e alvo (XcX_c, ZcZ_c, XtX_t e ZtZ_t, respectivamente). Mover esses erros para depois de um CNOT0→1\text{CNOT}_{0\to1} faz com que os erros se tornem:

Xc→XcXtZc→ZcXt→XtZt→ZcZt\begin{aligned} X_c &\to X_c X_t\\ Z_c &\to Z_c\\ X_t &\to X_t\\ Z_t &\to Z_c Z_t \end{aligned}

Declaramos o exposto acima sem demonstração. Mas se você for como o autor desta lição, e preferir a representação de Schr"odinger, também pode escrever estados arbitrários de controle e alvo, aplicar o erro, depois a CNOT, e examinar o estado final. Se você comparar esse estado final com um caso livre de erros, pode ver qual combinação de erro aplicada após a CNOT produziria o estado com erro e, em particular, pode ver se a operação de erro se espalhou de um qubit para o outro.

Controle inicialAlvo inicialErroFinalEquivalente de erro pós-CNOT
α∣0⟩+β∣1⟩\alpha\vert 0\rangle+\beta \vert 1\rangleγ∣0⟩+δ∣1⟩\gamma \vert 0\rangle+\delta \vert 1\rangleNenhumαγ∣00⟩+αδ∣10⟩+βγ∣11⟩+βδ∣01⟩\alpha\gamma \vert 00\rangle+\alpha\delta \vert 10\rangle + \beta\gamma \vert 11\rangle +\beta\delta \vert 01\rangleNão aplicável
α∣0⟩+β∣1⟩\alpha\vert 0\rangle+\beta \vert 1\rangleγ∣0⟩+δ∣1⟩\gamma \vert 0\rangle+\delta \vert 1\rangleX no controleαγ∣11⟩+αδ∣01⟩+βγ∣10⟩+βδ∣00⟩\alpha\gamma \vert 11\rangle+\alpha\delta \vert 01\rangle + \beta\gamma \vert 10\rangle +\beta\delta \vert 00\rangleXcXtX_c X_t
α∣0⟩+β∣1⟩\alpha\vert 0\rangle+\beta \vert 1\rangleγ∣0⟩+δ∣1⟩\gamma \vert 0\rangle+\delta \vert 1\rangleZ no controleαγ∣00⟩+αδ∣10⟩−βγ∣11⟩−βδ∣01⟩\alpha\gamma \vert 00\rangle+\alpha\delta \vert 10\rangle - \beta\gamma \vert 11\rangle -\beta\delta \vert 01\rangleZcZ_c
α∣0⟩+β∣1⟩\alpha\vert 0\rangle+\beta \vert 1\rangleγ∣0⟩+δ∣1⟩\gamma \vert 0\rangle+\delta \vert 1\rangleX no alvoαγ∣10⟩+αδ∣00⟩+βγ∣01⟩+βδ∣11⟩\alpha\gamma \vert 10\rangle+\alpha\delta \vert 00\rangle + \beta\gamma \vert 01\rangle +\beta\delta \vert 11\rangleXtX_t
α∣0⟩+β∣1⟩\alpha\vert 0\rangle+\beta \vert 1\rangleγ∣0⟩+δ∣1⟩\gamma \vert 0\rangle+\delta \vert 1\rangleZ no alvoαγ∣00⟩−αδ∣10⟩+βγ∣11⟩−βδ∣01⟩\alpha\gamma \vert 00\rangle-\alpha\delta \vert 10\rangle + \beta\gamma \vert 11\rangle -\beta\delta \vert 01\rangleZcZtZ_c Z_t

Talvez surpreendentemente, um erro Z no alvo de fato causa a propagação de um erro de volta para o controle!

Como você pode imaginar, rastrear essa propagação de operadores de erro para frente através dos circuitos (ou, equivalentemente, propagar para trás os operadores a serem medidos) é complicado. O Qiskit tem ferramentas para facilitar isso, sobre as quais aprenderemos na lição 6, sobre fluxos de trabalho modernos.

Existe um complemento do Qiskit chamado Shaded Lightcones. O complemento de cones de luz sombreados (SLC) analisa a propagação de erros em circuitos quânticos usando a propagação de Pauli para identificar quais partes de um circuito podem realmente influenciar um observável alvo. Ele foi projetado principalmente para tornar a mitigação de erros mais eficiente, especialmente para fluxos de trabalho de cancelamento probabilístico de erros (PEC). Aqui exploraremos essa ferramenta apenas brevemente, e faremos uso mais amplo dela no contexto de técnicas de mitigação de erros em lições futuras. Ele usa a propagação de operadores de Pauli para mapear a propagação de erros de diferentes tipos, produzindo um cone de luz para erros do tipo X, Y e Z.

Os cones de luz sombreados (SLC) vão além, usando simulações clássicas para limitar de forma mais rigorosa a sensibilidade a erros ao longo do circuito. Isso troca algum tempo de QPU por tempo de CPU e reduz a sobrecarga de amostragem necessária para renormalizar o viés. Em vez de um corte rígido, cada erro potencial no circuito recebe uma “sombra” graduada que limita superiormente a suscetibilidade do observável a esse erro. Essa caracterização refinada permite aplicações mais eficientes e direcionadas de PEC com variância reduzida, ao mesmo tempo em que dá ao usuário a capacidade de ajustar de forma controlada o viés na estimativa do observável. Veja Lightcone shading for classically accelerated quantum error mitigation para mais detalhes.

Não apresentaremos um workflow completo aqui. Simplesmente mostramos de forma diagramática como esse workflow processa um circuito:

A ten-qubit quantum circuit that has been transpiled and has many entangling and rotation layers.

O workflow separa o circuito em "caixas" úteis para aprender o comportamento do ruído:

The same ten-qubit quantum circuit as in the previous figure, but now similar layers have been &quot;boxed&quot;, meaning they have been outlined in a red box.

Por fim, ele usa propagação de operadores e aprendizado de ruído para produzir um mapa sombreado de suscetibilidade a erros ao longo do circuito:

An error susceptibility map is shown for errors of various types.

Cada caixa colorida na saída corresponde a um qubit específico em um momento específico. As caixas mais escuras (roxas) indicam um qubit e uma camada nos quais um erro não pode se propagar até a(s) medição(ões) de interesse. As caixas mais claras (amarelas) correspondem a um qubit e uma camada nos quais um erro pode ter forte influência sobre a(s) medição(ões) de interesse.

Observe as regiões roxas à direita de cada mapa. Um erro na mesma camada da medição, mas em um qubit diferente, não pode afetar a medição por meio da conectividade do circuito mostrada. Da mesma forma, um erro uma camada atrás no tempo (uma camada à esquerda) só pode se propagar para o qubit adjacente na etapa seguinte, devido à estrutura da camada de emaranhamento, e assim por diante. Portanto, o formato de cone à direita é comum sempre que relativamente poucos qubits estão envolvidos na medição de interesse.

Verifique seu entendimento​

Você acha melhor fazer um mapa de lightcone sombreado antes ou depois da transpilação? Por quê?

Resposta

Deve ser feito depois da transpilação. Para que esses diferentes mapas sejam úteis, precisamos garantir que os qubits adjacentes em nosso circuito correspondam a qubits adjacentes em nosso chip quântico. Caso contrário, as portas de emaranhamento mostradas como atuando em qubits adjacentes no diagrama do circuito acabariam exigindo portas SWAP e uma estrutura de circuito mais complicada.