<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>IBM on kenji.blog</title><link>http://kenji.blog/pt/tags/ibm/</link><description>Recent content in IBM on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>pt</language><copyright>kenjinote</copyright><lastBuildDate>Fri, 11 Sep 2026 20:00:00 +0900</lastBuildDate><atom:link href="http://kenji.blog/pt/tags/ibm/index.xml" rel="self" type="application/rss+xml"/><item><title>Uma Super Introdução à Programação Quântica usando Qiskit</title><link>http://kenji.blog/pt/p/qiskit-quantum-programming-intro/</link><pubDate>Fri, 11 Sep 2026 20:00:00 +0900</pubDate><guid>http://kenji.blog/pt/p/qiskit-quantum-programming-intro/</guid><description>&lt;img src="http://kenji.blog/p/qiskit-quantum-programming-intro/img/eyecatch.jpg" alt="Featured image of post Uma Super Introdução à Programação Quântica usando Qiskit" />&lt;h2 id="1-introdução">1. Introdução
&lt;/h2>&lt;p>Os computadores modernos (computadores clássicos) mudaram drasticamente as nossas vidas, apoiando todos os aspectos da sociedade através de seu alto poder computacional. No entanto, sabe-se que para certos problemas específicos (como a fatoração de números primos gigantescos, a simulação de estruturas moleculares complexas, problemas de otimização, etc.), mesmo os supercomputadores mais avançados da atualidade precisariam de um tempo superior à idade do universo para resolvê-los.&lt;/p>
&lt;p>O que possui o potencial para quebrar esses &amp;ldquo;limites dos computadores clássicos&amp;rdquo; é o &lt;strong>computador quântico (Quantum Computer)&lt;/strong>. Acredita-se que, utilizando propriedades fascinantes da mecânica quântica (sobreposição e emaranhamento quântico) como recursos computacionais, é possível acelerar drasticamente a resolução de determinados problemas.&lt;/p>
&lt;p>Neste artigo, daremos o primeiro passo no mundo da programação quântica utilizando o &lt;strong>Qiskit&lt;/strong>, um framework de computação quântica de código aberto fornecido pela IBM. Este é um guia de introdução extremamente detalhado, cobrindo tudo de forma minuciosa, desde os fundamentos da física e da matemática, até escrever código na prática em Python e executar circuitos quânticos em um simulador.&lt;/p>
&lt;hr>
&lt;h2 id="2-fundamentos-de-física-e-matemática-que-sustentam-a-computação-quântica">2. Fundamentos de Física e Matemática que Sustentam a Computação Quântica
&lt;/h2>&lt;p>Para compreender a programação quântica, é necessário primeiro entender os conceitos fundamentais da mecânica quântica. Aqui, explicaremos três pilares importantes: qubits, sobreposição e emaranhamento quântico.&lt;/p>
&lt;h3 id="21-bits-clássicos-e-qubits-quantum-bits">2.1 Bits Clássicos e Qubits (Quantum bits)
&lt;/h3>&lt;p>A unidade de informação de um computador clássico é o &amp;ldquo;bit (Bit)&amp;rdquo;. Um bit sempre assume um de dois estados: &lt;code>0&lt;/code> ou &lt;code>1&lt;/code>.&lt;/p>
&lt;p>Por outro lado, a menor unidade de informação de um computador quântico é chamada de &lt;strong>qubit (Qubit: Quantum bit)&lt;/strong>. Um qubit não só pode assumir o estado &lt;code>0&lt;/code> ou &lt;code>1&lt;/code>, mas também é capaz de &lt;strong>manter ambos os estados simultaneamente&lt;/strong>.&lt;/p>
&lt;p>Matematicamente, o estado de um qubit $|\psi\rangle$ é expresso como uma combinação linear (sobreposição) dos estados base $|0\rangle$ e $|1\rangle$.&lt;/p>
$$
|\psi\rangle = \alpha|0\rangle + \beta|1\rangle
$$
&lt;p>Aqui, $\alpha$ e $\beta$ são números complexos e representam as amplitudes de probabilidade de observar os estados $|0\rangle$ e $|1\rangle$, respectivamente. Com base nos princípios fundamentais da mecânica quântica, a soma das probabilidades deve ser 1, de modo que satisfaçam a seguinte condição de normalização:&lt;/p>
$$
|\alpha|^2 + |\beta|^2 = 1
$$
&lt;p>Isso significa que, quando este qubit é &amp;ldquo;medido (observado)&amp;rdquo;, a probabilidade de se obter $|0\rangle$ é $|\alpha|^2$ e a probabilidade de se obter $|1\rangle$ é $|\beta|^2$. O fato de que o estado é determinado apenas de forma probabilística antes da medição é a diferença crucial em relação aos bits clássicos.&lt;/p>
&lt;div class="mermaid">graph LR
A["Bit Clássico (Classical Bit)"] --> B["Estado determinado: 0 ou 1"]
C["Qubit (Quantum bit)"] --> D["Sobreposição: ambos 0 e 1"]
D --> E["O estado é determinado probabilisticamente pela medição"]&lt;/div>
&lt;h3 id="22-sobreposição-superposition">2.2 Sobreposição (Superposition)
&lt;/h3>&lt;p>Como mencionado anteriormente, o estado onde $|0\rangle$ e $|1\rangle$ estão misturados é chamado de &lt;strong>sobreposição (Superposition)&lt;/strong>.&lt;/p>
&lt;p>Por exemplo, quando um qubit está em um estado de sobreposição perfeitamente uniforme, temos $\alpha = \frac{1}{\sqrt{2}}$ e $\beta = \frac{1}{\sqrt{2}}$.&lt;/p>
$$
|\psi\rangle = \frac{1}{\sqrt{2}}|0\rangle + \frac{1}{\sqrt{2}}|1\rangle
$$
&lt;p>Quando medimos este estado, $|0\rangle$ e $|1\rangle$ são observados com 50% de probabilidade cada.
Se tivermos 2 qubits, podemos criar uma sobreposição de 4 estados: $|00\rangle, |01\rangle, |10\rangle, |11\rangle$. Com $n$ qubits, $2^n$ estados podem ser representados simultaneamente, e essa é uma das fontes do poder de processamento paralelo dos computadores quânticos.&lt;/p>
&lt;h3 id="23-emaranhamento-quântico-entanglement">2.3 Emaranhamento Quântico (Entanglement)
&lt;/h3>&lt;p>A propriedade mais poderosa e misteriosa da computação quântica é o &lt;strong>emaranhamento quântico (Entanglement)&lt;/strong>. Este fenômeno, que Einstein chamou de &amp;ldquo;ação fantasmagórica à distância&amp;rdquo;, é a propriedade em que dois ou mais qubits se tornam fortemente interligados, de modo que quando o estado de um qubit é determinado, o estado do outro qubit é determinado instantaneamente, independentemente da distância física que os separe.&lt;/p>
&lt;p>Um dos mais famosos estados de emaranhamento quântico, o &amp;ldquo;Estado de Bell (Bell State)&amp;rdquo; $\Phi^+$, é expresso da seguinte forma:&lt;/p>
$$
|\Phi^+\rangle = \frac{|00\rangle + |11\rangle}{\sqrt{2}}
$$
&lt;p>Neste estado, os estados $|01\rangle$ e $|10\rangle$ não existem. Portanto, se o primeiro qubit for medido e resultar em $|0\rangle$, é certo que o segundo qubit também será $|0\rangle$, sem nem mesmo precisar medi-lo. Inversamente, se o primeiro for $|1\rangle$, o segundo também será necessariamente $|1\rangle$.&lt;/p>
&lt;hr>
&lt;h2 id="3-portas-lógicas-quânticas-quantum-logic-gates">3. Portas Lógicas Quânticas (Quantum Logic Gates)
&lt;/h2>&lt;p>Assim como computadores clássicos usam portas lógicas como AND, OR e NOT para realizar cálculos, os computadores quânticos usam &lt;strong>portas quânticas&lt;/strong> para manipular o estado dos qubits. Como um estado quântico é um vetor, uma porta quântica é representada como uma &amp;ldquo;matriz unitária&amp;rdquo; que atua nesse vetor.&lt;/p>
&lt;h3 id="31-portas-de-pauli-pauli-x-y-z">3.1 Portas de Pauli (Pauli-X, Y, Z)
&lt;/h3>&lt;p>As portas de Pauli são operações básicas em um único qubit.&lt;/p>
&lt;p>&lt;strong>・Porta Pauli-X (Porta NOT)&lt;/strong>
Equivale à porta NOT clássica. Inverte o estado $|0\rangle$ para $|1\rangle$, e $|1\rangle$ para $|0\rangle$. (Rotação de 180 graus em torno do eixo X na Esfera de Bloch).&lt;/p>
$$
X = \begin{pmatrix} 0 &amp; 1 \\ 1 &amp; 0 \end{pmatrix}
$$
&lt;p>&lt;strong>・Porta Pauli-Y&lt;/strong>
Realiza uma rotação de 180 graus em torno do eixo Y. Tem o efeito de inverter tanto a fase quanto o bit.&lt;/p>
$$
Y = \begin{pmatrix} 0 &amp; -i \\ i &amp; 0 \end{pmatrix}
$$
&lt;p>&lt;strong>・Porta Pauli-Z (Porta de inversão de fase)&lt;/strong>
Mantém o estado $|0\rangle$ como está, e inverte a fase (multiplica por $-1$) do estado $|1\rangle$. (Rotação de 180 graus em torno do eixo Z).&lt;/p>
$$
Z = \begin{pmatrix} 1 &amp; 0 \\ 0 &amp; -1 \end{pmatrix}
$$
&lt;h3 id="32-porta-hadamard-hadamard-gate">3.2 Porta Hadamard (Hadamard Gate)
&lt;/h3>&lt;p>A porta Hadamard (Porta H) é uma porta extremamente importante que converte estados definidos ($|0\rangle$ ou $|1\rangle$) em estados de sobreposição.&lt;/p>
$$
H = \frac{1}{\sqrt{2}}
\begin{pmatrix}
1 &amp; 1 \\
1 &amp; -1
\end{pmatrix}
$$
&lt;p>Aplicando a porta H a $|0\rangle$, obtemos $|+\rangle$, que é um estado de sobreposição uniforme.&lt;/p>
$$
H|0\rangle = \frac{1}{\sqrt{2}}|0\rangle + \frac{1}{\sqrt{2}}|1\rangle = |+\rangle
$$
&lt;h3 id="33-portas-de-fase-phase-gates">3.3 Portas de Fase (Phase Gates)
&lt;/h3>&lt;p>A porta de fase é uma generalização da porta Z, que gira a fase do estado $|1\rangle$ por um ângulo especificado $\theta$.&lt;/p>
$$
P(\theta) = \begin{pmatrix} 1 &amp; 0 \\ 0 &amp; e^{i\theta} \end{pmatrix}
$$
&lt;p>Exemplos típicos são a porta S ($\theta = \pi/2$) e a porta T ($\theta = \pi/4$).&lt;/p>
&lt;h3 id="34-porta-cnot-controlled-not-gate">3.4 Porta CNOT (Controlled-NOT Gate)
&lt;/h3>&lt;p>A porta CNOT (Porta CX) opera entre dois qubits e é essencial para criar emaranhamento quântico. Consiste em um &amp;ldquo;bit de controle (Control)&amp;rdquo; e um &amp;ldquo;bit alvo (Target)&amp;rdquo;.&lt;/p>
&lt;p>Aplica-se uma porta X (operação NOT) no bit alvo apenas se o bit de controle for $|1\rangle$, e não faz nada se o bit de controle for $|0\rangle$.&lt;/p>
$$
CNOT = \begin{pmatrix}
1 &amp; 0 &amp; 0 &amp; 0 \\
0 &amp; 1 &amp; 0 &amp; 0 \\
0 &amp; 0 &amp; 0 &amp; 1 \\
0 &amp; 0 &amp; 1 &amp; 0
\end{pmatrix}
$$
&lt;hr>
&lt;h2 id="4-noções-básicas-e-configuração-do-ambiente-qiskit">4. Noções Básicas e Configuração do Ambiente Qiskit
&lt;/h2>&lt;p>A partir daqui, vamos de fato usar Python e Qiskit para escrever um programa quântico.&lt;/p>
&lt;h3 id="41-o-que-é-o-qiskit">4.1 O que é o Qiskit?
&lt;/h3>&lt;p>&lt;strong>Qiskit&lt;/strong> é um kit de desenvolvimento de software (SDK) de código aberto para computação quântica desenvolvido pela IBM Quantum. Ele permite construir circuitos quânticos intuitivamente usando Python e executá-los em um simulador local ou em um computador quântico real da IBM através da nuvem.&lt;/p>
&lt;h3 id="42-como-instalar">4.2 Como Instalar
&lt;/h3>&lt;p>Para usar o Qiskit, é necessário um ambiente Python. Você pode instalar o Qiskit e pacotes relacionados (como simuladores e bibliotecas de visualização) com o seguinte comando:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">pip install qiskit qiskit-aer qiskit-ibm-runtime matplotlib pylatexenc
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h3 id="43-fluxo-básico-de-programação">4.3 Fluxo Básico de Programação
&lt;/h3>&lt;p>A programação quântica usando o Qiskit prossegue principalmente nas seguintes etapas:&lt;/p>
&lt;div class="mermaid">graph TD
A["1. Construção do Circuito (Build)"] --> B["2. Compilação/Transpilação (Compile)"]
B --> C["3. Execução (Execute)"]
C --> D["4. Análise e Visualização dos Resultados (Analyze)"]&lt;/div>
&lt;ol>
&lt;li>&lt;strong>Construção do Circuito&lt;/strong>: Criar um objeto &lt;code>QuantumCircuit&lt;/code> e adicionar portas a ele.&lt;/li>
&lt;li>&lt;strong>Compilação&lt;/strong>: Otimizar o circuito de acordo com o backend (hardware real ou simulador) onde será executado.&lt;/li>
&lt;li>&lt;strong>Execução&lt;/strong>: Enviar o trabalho (job) para o backend e obter os resultados.&lt;/li>
&lt;li>&lt;strong>Análise&lt;/strong>: Plotar um histograma dos resultados da medição, etc.&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="5-prática-construindo-um-circuito-para-criar-um-estado-de-bell-emaranhamento-quântico">5. Prática: Construindo um Circuito para Criar um Estado de Bell (Emaranhamento Quântico)
&lt;/h2>&lt;p>Vamos agora usar o Qiskit para criar na prática o &amp;ldquo;emaranhamento quântico (Estado de Bell)&amp;rdquo; que aprendemos na teoria. O estado alvo é $|\Phi^+\rangle = \frac{|00\rangle + |11\rangle}{\sqrt{2}}$.&lt;/p>
&lt;h3 id="51-projeto-do-circuito">5.1 Projeto do Circuito
&lt;/h3>&lt;p>Para criar o estado de Bell, seguiremos os seguintes passos:&lt;/p>
&lt;ol>
&lt;li>Preparar 2 qubits (ambos inicialmente no estado $|0\rangle$).&lt;/li>
&lt;li>Aplicar a porta Hadamard (H) ao primeiro qubit para colocá-lo em um estado de sobreposição.&lt;/li>
&lt;li>Aplicar a porta CNOT, usando o primeiro qubit como &amp;ldquo;bit de controle&amp;rdquo; e o segundo qubit como &amp;ldquo;bit alvo&amp;rdquo;.&lt;/li>
&lt;li>Realizar a medição (Measure) para ler os resultados.&lt;/li>
&lt;/ol>
&lt;h3 id="52-implementação-do-código-em-pythonqiskit">5.2 Implementação do Código em Python/Qiskit
&lt;/h3>&lt;p>Vejamos agora o código real.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;span class="lnt">24
&lt;/span>&lt;span class="lnt">25
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">numpy&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="nn">np&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">qiskit&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">QuantumCircuit&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">transpile&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">qiskit_aer&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">Aer&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">qiskit.visualization&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">plot_histogram&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">matplotlib.pyplot&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="nn">plt&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 1. Inicialização do Circuito&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Criar um circuito quântico com 2 qubits e 2 bits clássicos&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">qc&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">QuantumCircuit&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 2. Aplicação da porta H&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Aplicar a porta Hadamard ao qubit 0 (q0)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">qc&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">h&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 3. Aplicação da porta CNOT&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Aplicar CNOT usando q0 como bit de controle e q1 como bit alvo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">qc&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">cx&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 4. Medição&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Medir os qubits 0 e 1, e escrever os resultados nos bits clássicos 0 e 1, respectivamente&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">qc&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">measure&lt;/span>&lt;span class="p">([&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">],&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Desenhar o diagrama do circuito (usando matplotlib)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># qc.draw(&amp;#39;mpl&amp;#39;)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">qc&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">draw&lt;/span>&lt;span class="p">())&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>Ao executar este código, o seguinte diagrama de circuito quântico será exibido em arte ASCII no console:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;span class="lnt">7
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-text" data-lang="text">&lt;span class="line">&lt;span class="cl"> ┌───┐ ┌─┐
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">q_0: ┤ H ├──■──┤M├───
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> └───┘┌─┴─┐└╥┘┌─┐
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">q_1: ─────┤ X ├─╫─┤M├
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> └───┘ ║ └╥┘
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">c: 2/═══════════╩══╩═
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 0 1
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>&lt;code>H&lt;/code> representa a porta Hadamard, a combinação de &lt;code>■&lt;/code> e &lt;code>X&lt;/code> representa a porta CNOT, e &lt;code>M&lt;/code> representa a medição.&lt;/p>
&lt;h3 id="53-execução-no-simulador-e-interpretação-dos-resultados">5.3 Execução no Simulador e Interpretação dos Resultados
&lt;/h3>&lt;p>Em seguida, executaremos este circuito no simulador de alto desempenho da IBM, &lt;code>Aer&lt;/code>, e verificaremos os resultados.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Obter o backend do simulador Aer&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">simulator&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Aer&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">get_backend&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;qasm_simulator&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Transpilar (otimizar) o circuito para o simulador&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">compiled_circuit&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">transpile&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">qc&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">simulator&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Executar o circuito (aqui, realizamos 1000 execuções ou &amp;#34;shots&amp;#34;)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">job&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">simulator&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">run&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">compiled_circuit&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">shots&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">1000&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Obter o resultado&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">result&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">job&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">result&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Obter a contagem de vezes que cada estado foi observado&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">counts&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">result&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">get_counts&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">compiled_circuit&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">Resultados da medição:&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">counts&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Plotar o histograma&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># plot_histogram(counts)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># plt.show()&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>&lt;strong>Interpretação dos Resultados&lt;/strong>&lt;/p>
&lt;p>A saída do console deve ser algo semelhante a isto:
&lt;code>Resultados da medição: {'00': 495, '11': 505}&lt;/code>
(&lt;em>Nota: como as probabilidades são aleatórias, os números variam ligeiramente a cada execução&lt;/em>)&lt;/p>
&lt;p>Em um ambiente de simulação ideal, os resultados da medição mostrarão &lt;code>00&lt;/code> e &lt;code>11&lt;/code> sendo observados com cerca de 50% de probabilidade cada um, e &lt;code>01&lt;/code> e &lt;code>10&lt;/code> não serão observados em absoluto.
Isto corresponde perfeitamente à previsão teórica para o estado de Bell $|\Phi^+\rangle = \frac{|00\rangle + |11\rangle}{\sqrt{2}}$ que criamos. O &amp;ldquo;emaranhamento quântico&amp;rdquo; foi simulado com precisão, confirmando que se o primeiro qubit for 0, o segundo também será necessariamente 0, e se o primeiro for 1, o segundo também será necessariamente 1.&lt;/p>
&lt;p>No entanto, se for executado em um hardware quântico real (IBM Quantum Hardware), os estados &lt;code>01&lt;/code> ou &lt;code>10&lt;/code> podem ser levemente observados devido à influência de ruídos (decoerência quântica e erros de portas). Como reduzir esse ruído (correção de erros quânticos) é atualmente um dos maiores desafios no desenvolvimento de computadores quânticos.&lt;/p>
&lt;hr>
&lt;h2 id="6-escalando-para-algoritmos-mais-avançados">6. Escalando para Algoritmos Mais Avançados
&lt;/h2>&lt;p>A criação do estado de Bell pode ser considerada o &amp;ldquo;Hello World&amp;rdquo; da programação quântica. Ao nos desenvolvermos a partir daqui, podemos construir algoritmos poderosos que superam os computadores clássicos.&lt;/p>
&lt;h3 id="61-algoritmo-de-deutsch-jozsa-deutsch-jozsa-algorithm">6.1 Algoritmo de Deutsch-Jozsa (Deutsch-Jozsa Algorithm)
&lt;/h3>&lt;p>Este é um problema para determinar se uma dada função $f(x)$ é &amp;ldquo;constante&amp;rdquo; (sempre gera 0 ou sempre 1 independentemente da entrada) ou &amp;ldquo;balanceada&amp;rdquo; (gera 0 para metade das entradas e 1 para a outra metade).
Em um computador clássico, no pior dos casos, seriam necessárias $2^{n-1} + 1$ avaliações da função, mas usando o algoritmo de Deutsch-Jozsa, podemos usar o paralelismo quântico para determinar a resposta com &lt;strong>apenas 1 avaliação&lt;/strong>. Isto demonstra o padrão básico de algoritmos quânticos: inserir um estado de sobreposição e usar a interferência (Interference) para cancelar estados indesejados e amplificar a resposta desejada.&lt;/p>
&lt;h3 id="62-algoritmo-de-grover-grovers-algorithm">6.2 Algoritmo de Grover (Grover&amp;rsquo;s Algorithm)
&lt;/h3>&lt;p>Em um problema de busca onde procuramos por dados específicos em um banco de dados não ordenado de $N$ itens, um algoritmo clássico requer em média $N/2$ cálculos, enquanto o algoritmo de Grover pode encontrar os dados desejados em cerca de $\sqrt{N}$ vezes.
Este algoritmo usa uma caixa preta chamada &amp;ldquo;Oráculo (Oracle)&amp;rdquo; para inverter a fase da solução desejada e, em seguida, realiza uma &amp;ldquo;Amplificação de Amplitude (Amplitude Amplification)&amp;rdquo;, o que aumenta drasticamente a probabilidade de a solução desejada ser observada.&lt;/p>
&lt;div class="mermaid">graph TD
A["Inicialização (Sobreposição de todos os estados)"] --> B["Oráculo (Inversão da fase da resposta correta)"]
B --> C["Operador de difusão (Amplificação da amplitude por inversão em torno da média)"]
C --> D{"Alcançou uma probabilidade suficiente?"}
D -- "Não" --> B
D -- "Sim" --> E["Medição"]&lt;/div>
&lt;hr>
&lt;h2 id="7-conclusão-e-próximos-passos-no-aprendizado">7. Conclusão e Próximos Passos no Aprendizado
&lt;/h2>&lt;p>Neste artigo, explicamos detalhadamente, desde os conceitos fundamentais da computação quântica como sobreposição e emaranhamento quântico, passando pela manipulação de portas lógicas quânticas usando o Qiskit, até a construção, simulação prática de um estado de Bell e interpretação de seus resultados.&lt;/p>
&lt;p>O Qiskit é uma ferramenta poderosa que, por poder ser escrita em uma linguagem familiar como o Python, permite superar barreiras matemáticas e físicas para que você possa se concentrar na construção de algoritmos. Os computadores quânticos estão atualmente na era dos Dispositivos Quânticos Ruidosos de Escala Intermediária (NISQ: Noisy Intermediate-Scale Quantum), mas a pesquisa aplicada está avançando rapidamente ao redor do mundo em muitos campos, como Aprendizado de Máquina Quântico (Quantum Machine Learning), Simulação Química (Quantum Chemistry) e Criptografia.&lt;/p>
&lt;p>Por favor, aproveite esta oportunidade para criar por conta própria vários circuitos quânticos usando o Qiskit e tente executá-los em processadores reais do IBM Quantum. Você certamente poderá experimentar com as próprias mãos o paradigma da computação do futuro.&lt;/p>
&lt;h3 id="materiais-de-referência">Materiais de Referência
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://qiskit.org/documentation/" target="_blank" rel="noopener"
>Documentação Oficial do Qiskit&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="https://qiskit.org/textbook/ja/preface.html" target="_blank" rel="noopener"
>Qiskit Textbook&lt;/a> - Um livro didático oficial recomendado para quem deseja aprender mais profundamente os fundamentos matemáticos e os algoritmos (disponível em vários idiomas).&lt;/li>
&lt;li>IBM Quantum Learning&lt;/li>
&lt;/ul>
&lt;p>Bem-vindo ao mundo quântico!&lt;/p></description></item><item><title>O que é Supremacia Quântica? As últimas tendências do Google e da IBM</title><link>http://kenji.blog/pt/p/what-is-quantum-supremacy-google-ibm/</link><pubDate>Fri, 11 Sep 2026 18:00:00 +0900</pubDate><guid>http://kenji.blog/pt/p/what-is-quantum-supremacy-google-ibm/</guid><description>&lt;img src="http://kenji.blog/p/what-is-quantum-supremacy-google-ibm/img/eyecatch.jpg" alt="Featured image of post O que é Supremacia Quântica? As últimas tendências do Google e da IBM" />&lt;h2 id="1-introdução-o-amanhecer-da-computação-quântica-e-a-supremacia-quântica">1. Introdução: O Amanhecer da Computação Quântica e a &amp;ldquo;Supremacia Quântica&amp;rdquo;
&lt;/h2>&lt;p>A computação quântica tem o potencial de resolver problemas complexos, que não podem ser resolvidos em um tempo realista por computadores clássicos (os PCs e supercomputadores que usamos diariamente hoje), aplicando a mecânica quântica, o princípio fundamental da física, ao processamento de informações. Este campo tem sido predominantemente de pesquisa teórica por muito tempo, mas nos últimos anos, o rápido avanço do hardware tem intensificado a competição pela sua aplicação prática.&lt;/p>
&lt;p>Nesse contexto, uma das palavras-chave que mais chamou a atenção foi &amp;ldquo;Supremacia Quântica&amp;rdquo; (Quantum Supremacy). Isso se refere ao momento em que um computador quântico demonstra uma capacidade de computação que supera a de um computador clássico em uma tarefa de cálculo específica. Neste artigo, partindo da definição rigorosa de supremacia quântica, explicaremos em detalhes o experimento do processador &amp;ldquo;Sycamore&amp;rdquo; do Google, que anunciou ter alcançado este marco pela primeira vez no mundo em 2019, as contra-argumentações e abordagens únicas da IBM em relação a isso, e o mais recente roteiro para a &amp;ldquo;Correção Quântica de Erros&amp;rdquo; (Quantum Error Correction: QEC) e a &amp;ldquo;Computação Quântica Tolerante a Falhas&amp;rdquo; (Fault-Tolerant Quantum Computing: FTQC), que são as maiores barreiras para a verdadeira aplicação prática, aprofundando-se nos aspectos técnicos e matemáticos.&lt;/p>
&lt;hr>
&lt;h2 id="2-antecedentes-teóricos-fundamentos-da-computação-quântica-e-classes-de-complexidade">2. Antecedentes Teóricos: Fundamentos da Computação Quântica e Classes de Complexidade
&lt;/h2>&lt;p>Para entender a supremacia quântica, é primeiro necessário entender os fundamentos matemáticos da computação quântica e seu posicionamento na teoria da complexidade computacional.&lt;/p>
&lt;h3 id="qubits-e-sobreposição">Qubits e Sobreposição
&lt;/h3>&lt;p>A menor unidade de informação em um computador clássico é o bit (0 ou 1), mas em um computador quântico, utiliza-se o qubit (Qubit). O estado de um único qubit $|\psi\rangle$ é representado por uma combinação linear complexa dos estados de base $|0\rangle$ e $|1\rangle$.&lt;/p>
$$
|\psi\rangle = \alpha|0\rangle + \beta|1\rangle
$$
&lt;p>Onde $\alpha, \beta \in \mathbb{C}$, e satisfaz a condição de normalização $|\alpha|^2 + |\beta|^2 = 1$. Esta propriedade é chamada de &amp;ldquo;Sobreposição&amp;rdquo; (Superposition).&lt;/p>
&lt;h3 id="emaranhamento-entanglement-e-produto-tensorial">Emaranhamento (Entanglement) e Produto Tensorial
&lt;/h3>&lt;p>Quando existem múltiplos qubits, o estado de todo o sistema é representado pelo produto tensorial dos espaços de estados dos qubits individuais. Um sistema de $n$ qubits é um vetor em um espaço de Hilbert $\mathcal{H}^{\otimes n}$ de $2^n$ dimensões.&lt;/p>
$$
|\Psi\rangle = \sum_{x \in \{0, 1\}^n} c_x |x\rangle
$$
&lt;p>Onde $\sum |c_x|^2 = 1$. O estado em que os qubits não são independentes entre si e o estado de um depende do outro é chamado de &amp;ldquo;Emaranhamento Quântico&amp;rdquo; (Quantum Entanglement). Isso dá aos computadores quânticos o potencial de processar simultaneamente um espaço de estados exponencialmente vasto.&lt;/p>
&lt;h3 id="definição-na-teoria-da-complexidade-computacional-da-supremacia-quântica">Definição na Teoria da Complexidade Computacional da Supremacia Quântica
&lt;/h3>&lt;p>Na teoria da complexidade computacional, a classe de problemas que um computador clássico pode resolver eficientemente (em tempo polinomial) é chamada de &lt;strong>BPP&lt;/strong> (Bounded-error Probabilistic Polynomial time). Por outro lado, a classe de problemas que um computador quântico pode resolver eficientemente é a &lt;strong>BQP&lt;/strong> (Bounded-error Quantum Polynomial time).&lt;/p>
&lt;p>A demonstração da supremacia quântica significa &amp;ldquo;executar uma tarefa específica incluída em BQP, mas não incluída em BPP (ou com uma probabilidade extremamente alta de não ser), em hardware quântico real e superar a simulação por supercomputadores clássicos em termos de tempo e recursos&amp;rdquo;. Pode-se dizer que é uma tentativa histórica de refutar a tese de Church-Turing estendida (&amp;ldquo;todos os modelos de computação fisicamente realizáveis podem ser simulados eficientemente por uma máquina de Turing probabilística em tempo polinomial&amp;rdquo;) por meio de um experimento físico.&lt;/p>
&lt;hr>
&lt;h2 id="3-2019-demonstração-da-supremacia-quântica-pelo-google">3. 2019: Demonstração da Supremacia Quântica pelo Google
&lt;/h2>&lt;p>Em outubro de 2019, a equipe do Google Quantum AI anunciou na revista científica &amp;ldquo;Nature&amp;rdquo; que havia alcançado a supremacia quântica usando o processador supercondutor de 53 qubits &amp;ldquo;Sycamore&amp;rdquo;.&lt;/p>
&lt;h3 id="arquitetura-do-processador-sycamore">Arquitetura do Processador Sycamore
&lt;/h3>&lt;p>O processador Sycamore consiste em 54 qubits supercondutores do tipo Transmon dispostos em uma grade bidimensional (no experimento, 53 foram usados devido ao mau funcionamento de um). Acopladores variáveis (Tunable Couplers) foram colocados entre qubits adjacentes, realizando portas de 2 qubits (um híbrido de portas iSWAP e portas Z controladas) de alta velocidade e alta precisão.&lt;/p>
&lt;div class="mermaid">graph TD
A["Entrada de Algoritmo Quântico"] --> B["Processador Sycamore (53 Qubits)"]
B --> C["Aplicar Portas Quânticas Aleatórias"]
C --> D["Medir Estados Quânticos (Cadeias de Bits)"]
D --> E["Benchmarking de Entropia Cruzada (XEB)"]
E --> F["Verificar Supremacia Quântica"]&lt;/div>
&lt;h3 id="amostragem-de-circuito-quântico-aleatório-random-circuit-sampling-rcs">Amostragem de Circuito Quântico Aleatório (Random Circuit Sampling: RCS)
&lt;/h3>&lt;p>A tarefa escolhida pelo Google foi a &amp;ldquo;amostragem de circuito quântico aleatório&amp;rdquo;. Isso envolve a aplicação de portas de um único qubit e portas de dois qubits escolhidas aleatoriamente ao longo de vários ciclos (profundidade $m$) e, em seguida, a realização de amostragem a partir da distribuição de probabilidade das cadeias de bits obtidas medindo o estado final.&lt;/p>
&lt;p>A probabilidade de uma cadeia de bits $x$ ser produzida por um circuito quântico aleatório ideal (sem ruído) não é uma distribuição uniforme, mas mostra um padrão semelhante a franjas de interferência chamado distribuição de Porter-Thomas. Para amostrar dessa distribuição em um computador clássico, é necessária a simulação de todo o vetor de estado, e a complexidade computacional aumenta exponencialmente com o número de qubits $n$ e a profundidade do circuito $m$.&lt;/p>
&lt;h3 id="avaliação-de-fidelidade-fidelity-benchmarking-de-entropia-cruzada-linear-xeb">Avaliação de Fidelidade (Fidelity): Benchmarking de Entropia Cruzada Linear (XEB)
&lt;/h3>&lt;p>Para provar que os resultados do experimento não eram mero ruído, mas os resultados de cálculos quânticos reais, o Google usou o benchmarking de entropia cruzada linear (Linear Cross-Entropy Benchmarking: XEB). Eles calcularam a probabilidade ideal $P(x_i)$ do circuito para a cadeia de bits $x_i$ obtida no experimento usando um computador clássico e calcularam a fidelidade $\mathcal{F}_{\text{XEB}}$ com a seguinte fórmula:&lt;/p>
$$
\mathcal{F}_{\text{XEB}} = 2^n \langle P(x_i) \rangle_{i} - 1
$$
&lt;p>Se $\mathcal{F}_{\text{XEB}}$ for 0, significa ruído puro, e se for 1, significa um processador quântico ideal sem ruído. O processador Sycamore alcançou $\mathcal{F}_{\text{XEB}} \approx 0.002$ (0,2%) em um circuito de profundidade 20. Embora pareça baixo à primeira vista, é um valor estatisticamente significativo maior que zero, sendo uma conquista impressionante de controle de um espaço de estados de $2^{53} \approx 9 \times 10^{15}$.&lt;/p>
&lt;p>A taxa de erro geral foi modelada de forma aproximada como o produto de erros de portas individuais, erros de medição, etc.&lt;/p>
$$
\mathcal{F} \approx (1 - e_1)^{N_1}(1 - e_2)^{N_2} \cdots \approx \prod_{g \in 1Q} (1 - e_g) \prod_{g \in 2Q} (1 - e_g) \prod_{q} (1 - e_{RO})
$$
&lt;p>（※ Onde $e_g$ é o erro da porta e $e_{RO}$ é o erro de medição）&lt;/p>
&lt;p>O Google argumentou que levaria cerca de 10.000 anos para simular esse circuito em um supercomputador clássico (Summit). Em contraste, o Sycamore completou a amostragem em apenas 200 segundos.&lt;/p>
&lt;hr>
&lt;h2 id="4-a-contra-argumentação-da-ibm-da-supremacia-para-a-utilidade-utility">4. A Contra-argumentação da IBM: Da &amp;ldquo;Supremacia&amp;rdquo; para a &amp;ldquo;Utilidade&amp;rdquo; (Utility)
&lt;/h2>&lt;p>O anúncio do Google chocou o mundo, mas a IBM, que desenvolveu o maior supercomputador do mundo, o &amp;ldquo;Summit&amp;rdquo;, e que também lidera o desenvolvimento de computadores quânticos, publicou rapidamente um artigo refutando essa afirmação.&lt;/p>
&lt;h3 id="melhoria-da-simulação-clássica-pela-contração-de-redes-tensoriais">Melhoria da Simulação Clássica pela Contração de Redes Tensoriais
&lt;/h3>&lt;p>O núcleo da contra-argumentação da IBM era que &amp;ldquo;a otimização de algoritmos e recursos no lado do computador clássico foi insuficiente&amp;rdquo;. O Google fez uma estimativa de 10.000 anos presumindo um simulador de vetor de estado que calcula diretamente a evolução temporal da equação de Schrödinger, mas a IBM apontou que o tempo de simulação poderia ser drasticamente reduzido pelo uso de um método chamado &amp;ldquo;Redes Tensoriais&amp;rdquo; (Tensor Network).&lt;/p>
&lt;p>Nas redes tensoriais, as operações das portas do circuito quântico são representadas como operações de matrizes multidimensionais (tensores), e a ordem de &amp;ldquo;contração&amp;rdquo; (Contraction) da rede é otimizada. Além disso, eles argumentaram que, se a enorme capacidade de armazenamento de 250 PB do Summit (uma hierarquia de discos e memória) fosse totalmente utilizada, uma simulação de maior precisão seria possível em apenas &amp;ldquo;dois dias e meio&amp;rdquo;, mantendo todo o vetor de estado.&lt;/p>
&lt;h3 id="vantagem-quântica-quantum-advantage-e-utilidade-quântica-quantum-utility">Vantagem Quântica (Quantum Advantage) e Utilidade Quântica (Quantum Utility)
&lt;/h3>&lt;p>Impulsionada por esse debate, a tendência de toda a indústria mudou da fixação em &amp;ldquo;executar uma tarefa artificial impossível em meios clássicos (Supremacia)&amp;rdquo; para &amp;ldquo;demonstrar uma vantagem substancial sobre a abordagem clássica em problemas úteis do mundo real (Vantagem Quântica)&amp;rdquo;, e ainda mais para a fase em que &amp;ldquo;os computadores quânticos funcionam como uma nova ferramenta para a descoberta científica (Utilidade Quântica)&amp;rdquo;.&lt;/p>
&lt;p>A própria IBM evita o termo &amp;ldquo;supremacia&amp;rdquo; e propôs o &amp;ldquo;Volume Quântico&amp;rdquo; (Quantum Volume) e &amp;ldquo;CLOPS (Circuit Layer Operations Per Second)&amp;rdquo; como indicadores de desempenho abrangentes para processadores quânticos, promovendo o desenvolvimento com ênfase no equilíbrio entre a escala e a qualidade do hardware.&lt;/p>
&lt;div class="mermaid">timeline
title "A Evolução dos Marcos Quânticos"
2019 : "Google Sycamore (53Q)" : "Anúncio de Supremacia Quântica"
2019 : "Refutação da IBM" : "Simulação no supercomputador Summit em 2,5 dias"
2021 : "IBM Eagle (127Q)" : "Quebrando a barreira dos 100 qubits"
2022 : "IBM Osprey (433Q)" : "Avanço na escala do processador"
2023 : "Google Surface Code" : "Escalando a correção de erros (d=3 para d=5)"
2023 : "Utilidade Quântica da IBM" : "Simulação de modelo de spin complexo em 127Q"
2024 : "Além" : "Era dos Qubits Lógicos e Mitigação de Erros"&lt;/div>
&lt;hr>
&lt;h2 id="5-a-próxima-fronteira-mitigação-de-erros-error-mitigation-e-correção-quântica-de-erros-qec">5. A Próxima Fronteira: Mitigação de Erros (Error Mitigation) e Correção Quântica de Erros (QEC)
&lt;/h2>&lt;p>Os computadores quânticos atuais são chamados de &amp;ldquo;NISQ (Noisy Intermediate-Scale Quantum)&amp;rdquo; e são suscetíveis a ruídos (erros devido à interação com o ambiente externo e controle imperfeito), de modo que, se cálculos longos forem executados, os resultados serão encobertos por ruídos. As abordagens para superar esse problema são amplamente divididas em &amp;ldquo;Mitigação de Erros&amp;rdquo; (Error Mitigation) e &amp;ldquo;Correção Quântica de Erros&amp;rdquo; (Quantum Error Correction).&lt;/p>
&lt;h3 id="mitigação-de-erros-error-mitigation">Mitigação de Erros (Error Mitigation)
&lt;/h3>&lt;p>A mitigação de erros é um método para remover o efeito do ruído do valor esperado do resultado do cálculo por meio de pós-processamento clássico, sem alterar o hardware quântico. Em 2023, a IBM demonstrou a &amp;ldquo;Utilidade Quântica&amp;rdquo; combinando o processador &amp;ldquo;Eagle&amp;rdquo; de 127 qubits com técnicas de mitigação de erros, como a &amp;ldquo;Extrapolação de Ruído Zero&amp;rdquo; (Zero-Noise Extrapolation: ZNE), para alcançar uma precisão superior ao método avançado de aproximação de rede tensorial na simulação da evolução temporal de modelos complexos de Ising.&lt;/p>
&lt;h3 id="correção-quântica-de-erros-qec-e-qubits-lógicos">Correção Quântica de Erros (QEC) e Qubits Lógicos
&lt;/h3>&lt;p>No entanto, para executar algoritmos arbitrariamente complexos (por exemplo, o algoritmo de fatoração de Shor ou cálculos de química quântica complexos) em última análise, a mitigação de erros por si só não é suficiente, e a &amp;ldquo;Correção Quântica de Erros&amp;rdquo; (QEC), que detecta e corrige erros dinamicamente, é indispensável.&lt;/p>
&lt;p>A principal abordagem em QEC é o &amp;ldquo;Código de Superfície&amp;rdquo; (Surface Code). Este é um método em que vários qubits físicos (qubits de dados) são dispostos em uma grade bidimensional, e qubits de medição (qubits de ancila) são colocados entre eles para realizar verificações de paridade contínuas chamadas &amp;ldquo;Estabilizadores&amp;rdquo; (Stabilizers).&lt;/p>
&lt;div class="mermaid">graph LR
Q1["Qubit de Dados (Dados)"] --- M1["Medir Estabilizador X (Ancila)"]
Q2["Qubit de Dados (Dados)"] --- M1
Q3["Qubit de Dados (Dados)"] --- M2["Medir Estabilizador Z (Ancila)"]
Q4["Qubit de Dados (Dados)"] --- M2
M1 --> EC["Decodificação de Síndrome de Erro (Clássico)"]
M2 --> EC
EC --> LQ["Atualização de Estado do Qubit Lógico"]&lt;/div>
&lt;h4 id="teorema-do-limiar-threshold-theorem-e-distância-d">Teorema do Limiar (Threshold Theorem) e Distância $d$
&lt;/h4>&lt;p>Existe um &amp;ldquo;Teorema do Limiar&amp;rdquo; para a correção quântica de erros. Quando a taxa de erro $p$ dos qubits físicos está abaixo de um determinado limiar $p_{th}$ (em torno de 1% para o código de superfície), a taxa de erro lógico $p_L$ pode ser reduzida exponencialmente aumentando a distância (Distance) do código $d$ (alocando mais qubits físicos a um qubit lógico).&lt;/p>
&lt;p>A fórmula de aproximação para a taxa de erro lógico é expressa da seguinte forma:&lt;/p>
$$
p_L \approx \Lambda \left( \frac{p}{p_{th}} \right)^{\frac{d+1}{2}}
$$
&lt;p>Onde $\Lambda$ é uma constante. Se $p &lt; p_{th}$, quanto maior o valor de $d$, menor será $p_L$. No entanto, se $p > p_{th}$, o aumento do número de qubits físicos acumula mais ruído, piorando a taxa de erro lógico.&lt;/p>
&lt;h4 id="marco-do-google-em-2023-demonstração-de-redução-de-erros-ampliando-a-distância">Marco do Google em 2023: Demonstração de Redução de Erros Ampliando a Distância
&lt;/h4>&lt;p>Em fevereiro de 2023, o Google publicou um artigo monumental na &amp;ldquo;Nature&amp;rdquo;. Eles usaram seu processador Sycamore de 3ª geração para demonstrar, pela primeira vez no mundo, que ao estender a distância do código de superfície de $d=3$ (usando 17 qubits físicos) para $d=5$ (usando 49 qubits físicos), a taxa de erro lógico diminuiu ligeiramente de 3,028% para 2,914%.&lt;/p>
&lt;p>Isso significa que eles entraram no regime $p &lt; p_{th}$, indicando a conclusão da mais importante Prova de Conceito (Proof of Concept) em direção à FTQC, onde o desempenho melhora à medida que o número de qubits físicos aumenta.&lt;/p>
&lt;hr>
&lt;h2 id="6-roteiro-e-perspectivas-para-ftqc-computação-quântica-tolerante-a-falhas">6. Roteiro e Perspectivas para FTQC (Computação Quântica Tolerante a Falhas)
&lt;/h2>&lt;p>Embora o Google e a IBM adotem arquiteturas e abordagens diferentes, eles estão envolvidos em uma competição acirrada de desenvolvimento em direção ao seu objetivo final: a FTQC (Fault-Tolerant Quantum Computing).&lt;/p>
&lt;h3 id="a-abordagem-da-ibm-modularidade-e-grade-heavy-hex">A Abordagem da IBM: Modularidade e Grade Heavy-Hex
&lt;/h3>&lt;p>A IBM está se concentrando em aumentar a escala de seus processadores em paralelo com a redução rigorosa da taxa de erro. Enquanto desafiam os limites de chips individuais com &amp;ldquo;Eagle (127Q)&amp;rdquo;, &amp;ldquo;Osprey (433Q)&amp;rdquo; e &amp;ldquo;Condor (1121Q)&amp;rdquo;, eles anunciaram uma arquitetura modular chamada &amp;ldquo;Quantum System Two&amp;rdquo;. Além disso, para a topologia de acoplamento dos qubits, eles adotaram uma &amp;ldquo;Grade Heavy-Hex&amp;rdquo;, que reduz o crosstalk (interferência) indesejado e melhora a estabilidade. A estratégia da IBM é uma abordagem híbrida: buscar a utilidade a curto prazo por meio da mitigação avançada de erros, ao mesmo tempo em que introduz a QEC em etapas.&lt;/p>
&lt;h3 id="a-abordagem-do-google-melhoria-da-qualidade-dos-qubits-lógicos">A Abordagem do Google: Melhoria da Qualidade dos Qubits Lógicos
&lt;/h3>&lt;p>A estratégia do Google dá maior ênfase em reduzir drasticamente a taxa de erro de um único qubit lógico (por exemplo, reduzindo para $10^{-6}$), em vez de aumentar rapidamente o número de qubits físicos. Com base nisso, eles visam estabelecer tecnologia de transferência de estados quânticos entre módulos (Interconexões Quânticas) em direção a um sistema em grande escala que opera milhares a dezenas de milhares de qubits físicos em paralelo.&lt;/p>
&lt;p>A implementação de protocolos para executar portas não Clifford, como a destilação de estados mágicos (Magic State Distillation), de maneira tolerante a falhas será um grande obstáculo tecnológico no futuro. Diz-se que a execução do algoritmo de Shor na prática para decifrar a criptografia RSA de 2048 bits exigirá milhares de qubits lógicos com uma taxa de erro de $10^{-8}$ ou inferior, o que se traduz em milhões a dezenas de milhões de qubits físicos, o que indica que o caminho ainda é longo.&lt;/p>
&lt;hr>
&lt;h2 id="7-conclusão">7. Conclusão
&lt;/h2>&lt;p>A &amp;ldquo;Supremacia Quântica&amp;rdquo; foi um marco importante na história dos computadores quânticos, provando fisicamente o potencial teórico das máquinas de computação. A demonstração do Google em 2019 e a refutação construtiva da IBM impulsionaram a indústria inteira de uma prova puramente teórica para a busca pela utilidade real (Utility) e, finalmente, para a era de engenharia de larga escala voltada à Computação Quântica Tolerante a Falhas (FTQC).&lt;/p>
&lt;p>Estamos atualmente testemunhando o período de transição de dispositivos NISQ ruidosos para dispositivos de qubits lógicos equipados com correção de erros. Nos próximos anos a décadas, a descoberta de novos materiais científicos, a revolução nos processos de descoberta de medicamentos e os avanços nos problemas de otimização se tornarão realidade junto com esta evolução do hardware quântico.&lt;/p>
&lt;p>Devemos continuar de olho nas tendências do Google e da IBM, bem como dos pesquisadores em todo o mundo, à medida que moldam a ciência da computação do futuro.&lt;/p></description></item></channel></rss>