<?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/en/tags/ibm/</link><description>Recent content in IBM on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>kenjinote</copyright><lastBuildDate>Fri, 11 Sep 2026 20:00:00 +0900</lastBuildDate><atom:link href="http://kenji.blog/en/tags/ibm/index.xml" rel="self" type="application/rss+xml"/><item><title>An Ultra-Beginner Guide to Quantum Programming with Qiskit</title><link>http://kenji.blog/en/p/qiskit-quantum-programming-intro/</link><pubDate>Fri, 11 Sep 2026 20:00:00 +0900</pubDate><guid>http://kenji.blog/en/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 An Ultra-Beginner Guide to Quantum Programming with Qiskit" />&lt;h2 id="1-introduction">1. Introduction
&lt;/h2>&lt;p>Modern computers (classical computers) have dramatically changed our lives, supporting every aspect of society with their advanced computational power. However, it is known that for certain specific problems (such as factoring extremely large numbers, simulating complex molecular structures, and optimization problems), even the most cutting-edge supercomputers of today would require a time longer than the age of the universe.&lt;/p>
&lt;p>What holds the potential to break through these &amp;ldquo;limits of classical computers&amp;rdquo; is the &lt;strong>Quantum Computer&lt;/strong>. By utilizing the mysterious properties of quantum mechanics (superposition and quantum entanglement) as computational resources, it is believed that specific problems can be dramatically accelerated.&lt;/p>
&lt;p>In this article, we will take our first steps into the world of quantum programming using &lt;strong>Qiskit&lt;/strong>, an open-source quantum computing framework provided by IBM. This is an extremely detailed introductory guide that carefully explains everything from the basics of physics and mathematics, to actually writing code in Python and running quantum circuits on a simulator.&lt;/p>
&lt;hr>
&lt;h2 id="2-fundamentals-of-physics-and-mathematics-behind-quantum-computing">2. Fundamentals of Physics and Mathematics Behind Quantum Computing
&lt;/h2>&lt;p>To understand quantum programming, you first need to grasp the basic concepts of quantum mechanics. Here, we will explain the three important pillars: qubits, superposition, and quantum entanglement.&lt;/p>
&lt;h3 id="21-classical-bits-and-qubits-quantum-bits">2.1 Classical Bits and Qubits (Quantum Bits)
&lt;/h3>&lt;p>The unit of information in classical computers is the &amp;ldquo;Bit&amp;rdquo;. A bit always takes one of two states: &lt;code>0&lt;/code> or &lt;code>1&lt;/code>.&lt;/p>
&lt;p>On the other hand, the smallest unit of information in a quantum computer is called a &lt;strong>Qubit (Quantum bit)&lt;/strong>. A qubit can not only take the state of &lt;code>0&lt;/code> and &lt;code>1&lt;/code>, but it can also &lt;strong>hold both states simultaneously&lt;/strong>.&lt;/p>
&lt;p>Mathematically, the state of a qubit $|\psi\rangle$ is represented as a linear combination (superposition) of the basis states $|0\rangle$ and $|1\rangle$.&lt;/p>
$$
|\psi\rangle = \alpha|0\rangle + \beta|1\rangle
$$
&lt;p>Here, $\alpha$ and $\beta$ are complex numbers, representing the probability amplitudes of observing the states $|0\rangle$ and $|1\rangle$, respectively. Based on the fundamental principles of quantum mechanics, the sum of probabilities must equal 1, thus satisfying the following normalization condition:&lt;/p>
$$
|\alpha|^2 + |\beta|^2 = 1
$$
&lt;p>In other words, when this qubit is &amp;ldquo;measured (observed)&amp;rdquo;, the probability of getting $|0\rangle$ is $|\alpha|^2$, and the probability of getting $|1\rangle$ is $|\beta|^2$. The decisive difference from classical bits is that the state is only determined probabilistically before measurement.&lt;/p>
&lt;div class="mermaid">graph LR
A["Classical Bit"] --> B["Determined state: 0 or 1"]
C["Qubit"] --> D["Superposition: Both 0 and 1"]
D --> E["State is determined probabilistically by measurement"]&lt;/div>
&lt;h3 id="22-superposition">2.2 Superposition
&lt;/h3>&lt;p>As mentioned earlier, the state where $|0\rangle$ and $|1\rangle$ are mixed together is called &lt;strong>Superposition&lt;/strong>.&lt;/p>
&lt;p>For example, when a single qubit is in a perfectly equal superposition state, $\alpha = \frac{1}{\sqrt{2}}$ and $\beta = \frac{1}{\sqrt{2}}$.&lt;/p>
$$
|\psi\rangle = \frac{1}{\sqrt{2}}|0\rangle + \frac{1}{\sqrt{2}}|1\rangle
$$
&lt;p>When this state is measured, $|0\rangle$ and $|1\rangle$ are observed with a 50% probability each.
If you have 2 qubits, you can create a superposition of 4 states: $|00\rangle, |01\rangle, |10\rangle, |11\rangle$. With $n$ qubits, $2^n$ states can be represented simultaneously, which is one of the sources of the parallel processing power of quantum computers.&lt;/p>
&lt;h3 id="23-quantum-entanglement">2.3 Quantum Entanglement
&lt;/h3>&lt;p>The most powerful and mysterious property in quantum computing is &lt;strong>Quantum Entanglement&lt;/strong>. This phenomenon, which Einstein called &amp;ldquo;spooky action at a distance,&amp;rdquo; is a property where two or more qubits become strongly linked to each other. When the state of one qubit is determined, the state of the other qubit is instantaneously determined, no matter how far apart they are physically.&lt;/p>
&lt;p>One of the most famous quantum entangled states, the &amp;ldquo;Bell State&amp;rdquo;, specifically the $\Phi^+$ state, is expressed as follows:&lt;/p>
$$
|\Phi^+\rangle = \frac{|00\rangle + |11\rangle}{\sqrt{2}}
$$
&lt;p>In this state, the states $|01\rangle$ and $|10\rangle$ do not exist. Therefore, if the first qubit is measured and is $|0\rangle$, the second qubit is guaranteed to be $|0\rangle$ without even needing to be measured. Conversely, if the first is $|1\rangle$, the second will also necessarily be $|1\rangle$.&lt;/p>
&lt;hr>
&lt;h2 id="3-quantum-logic-gates">3. Quantum Logic Gates
&lt;/h2>&lt;p>Just as classical computers perform calculations using logic gates like AND, OR, and NOT, quantum computers also manipulate the state of qubits using &lt;strong>Quantum Gates&lt;/strong>. Since a quantum state is a vector, a quantum gate is represented as a &amp;ldquo;unitary matrix&amp;rdquo; acting on that vector.&lt;/p>
&lt;h3 id="31-pauli-gates-pauli-x-y-z">3.1 Pauli Gates (Pauli-X, Y, Z)
&lt;/h3>&lt;p>Pauli gates are fundamental operations on a single qubit.&lt;/p>
&lt;p>&lt;strong>・Pauli-X Gate (NOT Gate)&lt;/strong>
Equivalent to the classical NOT gate. It flips $|0\rangle$ to $|1\rangle$, and $|1\rangle$ to $|0\rangle$. (A 180-degree rotation around the X-axis on the Bloch sphere)&lt;/p>
$$
X = \begin{pmatrix} 0 &amp; 1 \\ 1 &amp; 0 \end{pmatrix}
$$
&lt;p>&lt;strong>・Pauli-Y Gate&lt;/strong>
Performs a 180-degree rotation around the Y-axis. It has the effect of flipping both the phase and the bit.&lt;/p>
$$
Y = \begin{pmatrix} 0 &amp; -i \\ i &amp; 0 \end{pmatrix}
$$
&lt;p>&lt;strong>・Pauli-Z Gate (Phase Flip Gate)&lt;/strong>
Leaves the state of $|0\rangle$ as is, but flips the phase of the $|1\rangle$ state (multiplies by $-1$). (A 180-degree rotation around the Z-axis)&lt;/p>
$$
Z = \begin{pmatrix} 1 &amp; 0 \\ 0 &amp; -1 \end{pmatrix}
$$
&lt;h3 id="32-hadamard-gate">3.2 Hadamard Gate
&lt;/h3>&lt;p>The Hadamard gate (H gate) is an extremely important gate that transforms a determined state ($|0\rangle$ or $|1\rangle$) into a superposition state.&lt;/p>
$$
H = \frac{1}{\sqrt{2}}
\begin{pmatrix}
1 &amp; 1 \\
1 &amp; -1
\end{pmatrix}
$$
&lt;p>Applying the H gate to $|0\rangle$ results in $|+\rangle$, which is an equal superposition state.&lt;/p>
$$
H|0\rangle = \frac{1}{\sqrt{2}}|0\rangle + \frac{1}{\sqrt{2}}|1\rangle = |+\rangle
$$
&lt;h3 id="33-phase-gates">3.3 Phase Gates
&lt;/h3>&lt;p>Phase gates are a generalization of the Z gate, rotating the phase of the $|1\rangle$ state by a specified angle $\theta$.&lt;/p>
$$
P(\theta) = \begin{pmatrix} 1 &amp; 0 \\ 0 &amp; e^{i\theta} \end{pmatrix}
$$
&lt;p>Typical examples include the S gate ($\theta = \pi/2$) and the T gate ($\theta = \pi/4$).&lt;/p>
&lt;h3 id="34-cnot-gate-controlled-not-gate">3.4 CNOT Gate (Controlled-NOT Gate)
&lt;/h3>&lt;p>The CNOT gate (CX gate) is a gate that performs an operation between two qubits and is essential for generating quantum entanglement. It consists of a &amp;ldquo;Control bit&amp;rdquo; and a &amp;ldquo;Target bit&amp;rdquo;.&lt;/p>
&lt;p>Only when the control bit is $|1\rangle$, an X gate (NOT operation) is applied to the target bit; if the control bit is $|0\rangle$, nothing happens.&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-basics-of-qiskit-and-environment-setup">4. Basics of Qiskit and Environment Setup
&lt;/h2>&lt;p>From here on, we will actually write quantum programs using Python and Qiskit.&lt;/p>
&lt;h3 id="41-what-is-qiskit">4.1 What is Qiskit?
&lt;/h3>&lt;p>&lt;strong>Qiskit&lt;/strong> is an open-source software development kit (SDK) for quantum computing developed by IBM Quantum. Using Python, you can intuitively build quantum circuits and run them on a local simulator or on actual IBM quantum computers via the cloud.&lt;/p>
&lt;h3 id="42-installation-method">4.2 Installation Method
&lt;/h3>&lt;p>To use Qiskit, a Python environment is required. You can install Qiskit and related packages (simulator and drawing libraries) with the following command:&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-basic-flow-of-programming">4.3 Basic Flow of Programming
&lt;/h3>&lt;p>Quantum programming using Qiskit mainly progresses through the following steps:&lt;/p>
&lt;div class="mermaid">graph TD
A["1. Build (Construct the circuit)"] --> B["2. Compile (Transpile/Optimize)"]
B --> C["3. Execute (Run on backend)"]
C --> D["4. Analyze (Results analysis and visualization)"]&lt;/div>
&lt;ol>
&lt;li>&lt;strong>Build&lt;/strong>: Create a &lt;code>QuantumCircuit&lt;/code> object and add gates to it.&lt;/li>
&lt;li>&lt;strong>Compile&lt;/strong>: Optimize the circuit for the backend (actual hardware or simulator) to be executed on.&lt;/li>
&lt;li>&lt;strong>Execute&lt;/strong>: Send the job to the backend and retrieve the results.&lt;/li>
&lt;li>&lt;strong>Analyze&lt;/strong>: Plot histograms of the measurement results, etc.&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="5-practice-building-a-circuit-to-create-a-bell-state-quantum-entanglement">5. Practice: Building a Circuit to Create a Bell State (Quantum Entanglement)
&lt;/h2>&lt;p>Let&amp;rsquo;s actually create the &amp;ldquo;Quantum Entanglement (Bell State)&amp;rdquo; we learned in theory using Qiskit. The target state is $|\Phi^+\rangle = \frac{|00\rangle + |11\rangle}{\sqrt{2}}$.&lt;/p>
&lt;h3 id="51-circuit-design">5.1 Circuit Design
&lt;/h3>&lt;p>To create a Bell state, we follow these steps:&lt;/p>
&lt;ol>
&lt;li>Prepare two qubits (both initially in the $|0\rangle$ state).&lt;/li>
&lt;li>Apply a Hadamard gate (H) to the first qubit to create a superposition state.&lt;/li>
&lt;li>Apply a CNOT gate with the first qubit as the &amp;ldquo;Control bit&amp;rdquo; and the second qubit as the &amp;ldquo;Target bit&amp;rdquo;.&lt;/li>
&lt;li>Perform a Measurement to read the result.&lt;/li>
&lt;/ol>
&lt;h3 id="52-pythonqiskit-code-implementation">5.2 Python/Qiskit Code Implementation
&lt;/h3>&lt;p>Now, let&amp;rsquo;s look at the actual code.&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. Circuit Initialization&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Create a quantum circuit with 2 qubits and 2 classical bits&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. Applying the H Gate&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Apply a Hadamard gate to 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. Applying the CNOT Gate&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Apply CNOT using q0 as the control bit and q1 as the target bit&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. Measurement&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Measure qubits 0 and 1, and write the results to classical bits 0 and 1, respectively&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"># Draw the circuit diagram (using 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>When you execute this code, the following quantum circuit diagram will be displayed as ASCII art on the 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> represents the Hadamard gate, the combination of &lt;code>■&lt;/code> and &lt;code>X&lt;/code> is the CNOT gate, and &lt;code>M&lt;/code> represents measurement.&lt;/p>
&lt;h3 id="53-execution-on-simulator-and-interpretation-of-results">5.3 Execution on Simulator and Interpretation of Results
&lt;/h3>&lt;p>Next, we will run this circuit on IBM&amp;rsquo;s high-performance simulator &lt;code>Aer&lt;/code> and check the results.&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"># Get the Aer simulator backend&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"># Transpile (optimize) the circuit for the simulator&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"># Execute the circuit (here, running 1000 shots)&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"># Retrieve the result&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"># Get the observation counts for the states&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">Measurement results:&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"># Plotting the histogram&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>Interpretation of Results&lt;/strong>&lt;/p>
&lt;p>The console output should look something like this:
&lt;code>Measurement results: {'00': 495, '11': 505}&lt;/code>
(*Note: Because probabilities are random, the numbers will fluctuate slightly with each execution.)&lt;/p>
&lt;p>In an ideal simulation environment, the measurement results will show &lt;code>00&lt;/code> and &lt;code>11&lt;/code> observed roughly 50% of the time each, with &lt;code>01&lt;/code> and &lt;code>10&lt;/code> never being observed.
This completely matches the theoretical prediction of the Bell state $|\Phi^+\rangle = \frac{|00\rangle + |11\rangle}{\sqrt{2}}$ that we created. It accurately simulates &amp;ldquo;quantum entanglement&amp;rdquo; where if the first qubit is 0, the second is always 0, and if the first is 1, the second is always 1.&lt;/p>
&lt;p>Furthermore, when executed on an actual quantum computer (IBM Quantum Hardware), &lt;code>01&lt;/code> and &lt;code>10&lt;/code> might be observed slightly due to the influence of noise (quantum decoherence and gate errors). How to reduce this noise (quantum error correction) is one of the biggest challenges in current quantum computer development.&lt;/p>
&lt;hr>
&lt;h2 id="6-scaling-up-to-more-advanced-algorithms">6. Scaling Up to More Advanced Algorithms
&lt;/h2>&lt;p>Creating a Bell state can be considered the &amp;ldquo;Hello World&amp;rdquo; of quantum programming. By expanding upon this, we can construct powerful algorithms that surpass classical computers.&lt;/p>
&lt;h3 id="61-deutsch-jozsa-algorithm">6.1 Deutsch-Jozsa Algorithm
&lt;/h3>&lt;p>This is a problem to determine whether a given function $f(x)$ is a &amp;ldquo;constant function&amp;rdquo; (always outputs 0 or always outputs 1 regardless of input) or a &amp;ldquo;balanced function&amp;rdquo; (outputs 0 for half of the inputs and 1 for the other half).
While a classical computer requires at worst $2^{n-1} + 1$ evaluations of the function, the Deutsch-Jozsa algorithm can determine it with &lt;strong>just 1 evaluation&lt;/strong> by utilizing quantum parallelism. This demonstrates the basic pattern of quantum algorithms: inputting a superposition state, using interference to cancel out unnecessary states, and amplifying the desired answer.&lt;/p>
&lt;h3 id="62-grovers-algorithm">6.2 Grover&amp;rsquo;s Algorithm
&lt;/h3>&lt;p>In the search problem of finding specific data from $N$ unsorted database elements, a classical algorithm requires an average of $N/2$ computations, whereas Grover&amp;rsquo;s algorithm can find the target data in $\sqrt{N}$ computations.
This algorithm uses a black box called an &amp;ldquo;Oracle&amp;rdquo; to flip the phase of the target solution, and further applies &amp;ldquo;Amplitude Amplification&amp;rdquo; to dramatically increase the probability of observing the target solution.&lt;/p>
&lt;div class="mermaid">graph TD
A["Initialization (Superposition of all states)"] --> B["Oracle (Flip phase of the correct answer)"]
B --> C["Diffusion Operator (Amplitude amplification by inversion about the mean)"]
C --> D{"Reached sufficient probability?"}
D -- "No" --> B
D -- "Yes" --> E["Measurement"]&lt;/div>
&lt;hr>
&lt;h2 id="7-conclusion-and-future-learning">7. Conclusion and Future Learning
&lt;/h2>&lt;p>In this article, we started with fundamental concepts of quantum computing such as superposition and quantum entanglement, and explained in detail the manipulation of quantum logic gates using Qiskit, up to actually constructing and simulating a Bell state and interpreting the results.&lt;/p>
&lt;p>Because Qiskit allows you to write in a familiar language like Python, it is a powerful tool that helps you focus on algorithm construction by overcoming mathematical and physical barriers. Although quantum computers are currently in the era of Noisy Intermediate-Scale Quantum (NISQ) devices, applied research is rapidly advancing worldwide in numerous fields such as Quantum Machine Learning, Quantum Chemistry simulations, and cryptography.&lt;/p>
&lt;p>By all means, take this opportunity to create various quantum circuits using Qiskit and try running them on actual IBM Quantum processors. You should be able to experience the computing paradigm of the future firsthand.&lt;/p>
&lt;h3 id="references">References
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://qiskit.org/documentation/" target="_blank" rel="noopener"
>Qiskit Official Documentation&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> - An official textbook recommended for those who want to learn deeper mathematical backgrounds and algorithms&lt;/li>
&lt;li>IBM Quantum Learning&lt;/li>
&lt;/ul>
&lt;p>Welcome to the quantum world!&lt;/p></description></item><item><title>What is Quantum Supremacy? Latest Trends from Google and IBM</title><link>http://kenji.blog/en/p/what-is-quantum-supremacy-google-ibm/</link><pubDate>Fri, 11 Sep 2026 18:00:00 +0900</pubDate><guid>http://kenji.blog/en/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 What is Quantum Supremacy? Latest Trends from Google and IBM" />&lt;h2 id="1-introduction-the-dawn-of-quantum-computing-and-quantum-supremacy">1. Introduction: The Dawn of Quantum Computing and &amp;ldquo;Quantum Supremacy&amp;rdquo;
&lt;/h2>&lt;p>Quantum computing has the potential to solve complex problems that cannot be solved within a realistic timeframe by classical computers (the PCs and supercomputers we use daily) by applying quantum mechanics, the fundamental principle of physics, to information processing. For a long time, this field was primarily focused on theoretical research, but in recent years, rapid hardware advancements have intensified the race toward practical application.&lt;/p>
&lt;p>One of the most attention-grabbing keywords in this context is &amp;ldquo;Quantum Supremacy.&amp;rdquo; This refers to the moment when a quantum computer demonstrates overwhelming computational power over classical computers in a specific computational task. In this article, starting from the strict definition of quantum supremacy, we will provide a detailed technical and mathematical deep dive into the 2019 experiment by Google&amp;rsquo;s &amp;ldquo;Sycamore&amp;rdquo; processor—which was announced as the first in the world to reach this milestone—as well as IBM&amp;rsquo;s rebuttal and unique approach, and the latest roadmap towards &amp;ldquo;Quantum Error Correction (QEC)&amp;rdquo; and &amp;ldquo;Fault-Tolerant Quantum Computing (FTQC),&amp;rdquo; which represent the biggest barriers to true practical application.&lt;/p>
&lt;hr>
&lt;h2 id="2-theoretical-background-fundamentals-of-quantum-computing-and-complexity-classes">2. Theoretical Background: Fundamentals of Quantum Computing and Complexity Classes
&lt;/h2>&lt;p>To understand quantum supremacy, it is first necessary to understand the mathematical foundations of quantum computing and its position in computational complexity theory.&lt;/p>
&lt;h3 id="qubits-and-superposition">Qubits and Superposition
&lt;/h3>&lt;p>While the smallest unit of information in a classical computer is a bit (0 or 1), a quantum computer uses a qubit (Quantum bit). The state $|\psi\rangle$ of a single qubit is represented by a complex linear combination of the basis states $|0\rangle$ and $|1\rangle$.&lt;/p>
$$
|\psi\rangle = \alpha|0\rangle + \beta|1\rangle
$$
&lt;p>Here, $\alpha, \beta \in \mathbb{C}$, and they satisfy the normalization condition $|\alpha|^2 + |\beta|^2 = 1$. This property is called &amp;ldquo;Superposition.&amp;rdquo;&lt;/p>
&lt;h3 id="entanglement-and-tensor-product">Entanglement and Tensor Product
&lt;/h3>&lt;p>When there are multiple qubits, the state of the entire system is represented by the tensor product of the state spaces of the individual qubits. A system of $n$ qubits becomes a vector on a $2^n$-dimensional Hilbert space $\mathcal{H}^{\otimes n}$.&lt;/p>
$$
|\Psi\rangle = \sum_{x \in \{0, 1\}^n} c_x |x\rangle
$$
&lt;p>Here, $\sum |c_x|^2 = 1$. A state where qubits are not independent, and the state of one depends on the other, is called &amp;ldquo;Quantum Entanglement.&amp;rdquo; This gives quantum computers the potential to simultaneously process an exponentially vast state space.&lt;/p>
&lt;h3 id="computational-complexity-theory-definition-of-quantum-supremacy">Computational Complexity Theory Definition of Quantum Supremacy
&lt;/h3>&lt;p>In computational complexity theory, the class of problems that classical computers can solve efficiently (in polynomial time) is called &lt;strong>BPP&lt;/strong> (Bounded-error Probabilistic Polynomial time). On the other hand, the class of problems that quantum computers can solve efficiently is &lt;strong>BQP&lt;/strong> (Bounded-error Quantum Polynomial time).&lt;/p>
&lt;p>Demonstrating quantum supremacy means &amp;ldquo;executing a specific task on actual quantum hardware that is included in BQP but not in BPP (or is extremely likely not to be), and surpassing simulation by classical supercomputers in terms of time and resources.&amp;rdquo; It can be considered a historical attempt to falsify the extended Church-Turing thesis (&amp;ldquo;Any physically realizable computational model can be simulated by a probabilistic Turing machine in polynomial time&amp;rdquo;) through physical experiment.&lt;/p>
&lt;hr>
&lt;h2 id="3-2019-googles-demonstration-of-quantum-supremacy">3. 2019: Google&amp;rsquo;s Demonstration of Quantum Supremacy
&lt;/h2>&lt;p>In October 2019, the Google Quantum AI team announced in the scientific journal &lt;em>Nature&lt;/em> that they had achieved quantum supremacy using a 53-qubit superconducting processor called &amp;ldquo;Sycamore.&amp;rdquo;&lt;/p>
&lt;h3 id="architecture-of-the-sycamore-processor">Architecture of the Sycamore Processor
&lt;/h3>&lt;p>The Sycamore processor consists of 54 transmon superconducting qubits arranged in a 2D grid (53 were used in the experiment as one was malfunctioning). Tunable couplers are placed between adjacent qubits, realizing fast and highly accurate two-qubit gates (a hybrid of iSWAP and controlled-Z gates).&lt;/p>
&lt;div class="mermaid">graph TD
A["Quantum Algorithm Input"] --> B["Sycamore Processor (53 Qubits)"]
B --> C["Apply Random Quantum Gates"]
C --> D["Measure Quantum States (Bitstrings)"]
D --> E["Cross-Entropy Benchmarking (XEB)"]
E --> F["Verify Quantum Supremacy"]&lt;/div>
&lt;h3 id="random-circuit-sampling-rcs">Random Circuit Sampling (RCS)
&lt;/h3>&lt;p>The task Google chose was &amp;ldquo;Random Circuit Sampling.&amp;rdquo; This involves applying randomly chosen single-qubit gates and two-qubit gates over multiple cycles (depth $m$), and sampling from the probability distribution of bitstrings obtained by measuring the final state.&lt;/p>
&lt;p>The probability of a bitstring $x$ output from an ideal (noise-free) random quantum circuit is not a uniform distribution, but exhibits an interference fringe-like pattern called a Porter-Thomas distribution. To sample from this distribution on a classical computer requires simulating the entire state vector, and the computational complexity increases exponentially with respect to the number of qubits $n$ and the circuit depth $m$.&lt;/p>
&lt;h3 id="evaluating-fidelity-linear-cross-entropy-benchmarking-xeb">Evaluating Fidelity: Linear Cross-Entropy Benchmarking (XEB)
&lt;/h3>&lt;p>To prove that the experimental results were not just noise, but the results of actual quantum computation, Google used Linear Cross-Entropy Benchmarking (XEB). The ideal probability $P(x_i)$ of the circuit for the bitstring $x_i$ obtained in the experiment is calculated using a classical computer, and the fidelity $\mathcal{F}_{\text{XEB}}$ is obtained by the following formula:&lt;/p>
$$
\mathcal{F}_{\text{XEB}} = 2^n \langle P(x_i) \rangle_{i} - 1
$$
&lt;p>If $\mathcal{F}_{\text{XEB}}$ is 0, it means complete noise, and if it is 1, it means an ideal quantum processor without noise. The Sycamore processor achieved $\mathcal{F}_{\text{XEB}} \approx 0.002$ (0.2%) for a circuit with depth 20. At first glance, this seems low, but it is a statistically significant value above zero, representing an astonishing achievement of controlling a state space of $2^{53} \approx 9 \times 10^{15}$.&lt;/p>
&lt;p>The overall error rate was approximately modeled as the product of individual gate errors, measurement errors, 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>(* $e_g$ is the gate error, $e_{RO}$ is the measurement error)&lt;/p>
&lt;p>Google claimed that it would take a classical supercomputer (Summit) about 10,000 years to simulate this circuit. In contrast, Sycamore completed the sampling in just 200 seconds.&lt;/p>
&lt;hr>
&lt;h2 id="4-ibms-rebuttal-from-supremacy-to-utility">4. IBM&amp;rsquo;s Rebuttal: From &amp;ldquo;Supremacy&amp;rdquo; to &amp;ldquo;Utility&amp;rdquo;
&lt;/h2>&lt;p>Google&amp;rsquo;s announcement shocked the world, but IBM, which developed the world&amp;rsquo;s largest supercomputer &amp;ldquo;Summit&amp;rdquo; and is itself a leader in quantum computer development, immediately published a paper rebutting this claim.&lt;/p>
&lt;h3 id="improving-classical-simulation-via-tensor-network-contraction">Improving Classical Simulation via Tensor Network Contraction
&lt;/h3>&lt;p>The core of IBM&amp;rsquo;s rebuttal was that &amp;ldquo;the optimization of algorithms and resources on the classical computer side was insufficient.&amp;rdquo; Google assumed a state vector simulator that directly calculates the time evolution of the Schrödinger equation and came up with the 10,000-year estimate. However, IBM pointed out that the simulation time could be dramatically reduced by using a method called a &amp;ldquo;Tensor Network.&amp;rdquo;&lt;/p>
&lt;p>In a tensor network, the gate operations of a quantum circuit are represented as operations on multi-dimensional arrays (tensors), and the order of network &amp;ldquo;contraction&amp;rdquo; is optimized. Furthermore, they claimed that by fully utilizing Summit&amp;rsquo;s massive 250 PB of storage (hierarchical disk and memory), a higher-precision simulation would be possible in just &amp;ldquo;2.5 days&amp;rdquo; while maintaining the entire state vector.&lt;/p>
&lt;h3 id="quantum-advantage-and-quantum-utility">Quantum Advantage and Quantum Utility
&lt;/h3>&lt;p>Triggered by this debate, the trend in the entire industry shifted from merely adhering to &amp;ldquo;executing artificial tasks impossible for classical computers (Supremacy)&amp;rdquo; to a phase of &amp;ldquo;demonstrating a practical advantage over classical approaches in useful real-world problems (Quantum Advantage),&amp;rdquo; and further to &amp;ldquo;quantum computers functioning as new tools for scientific discovery (Quantum Utility).&amp;rdquo;&lt;/p>
&lt;p>IBM itself avoided the word &amp;ldquo;Supremacy&amp;rdquo; and advocated &amp;ldquo;Quantum Volume&amp;rdquo; and &amp;ldquo;CLOPS (Circuit Layer Operations Per Second)&amp;rdquo; as comprehensive performance metrics for quantum processors, promoting development that emphasizes a balance between hardware scale and quality.&lt;/p>
&lt;div class="mermaid">timeline
title "The Evolution of Quantum Milestones"
2019 : "Google Sycamore (53Q)" : "Quantum Supremacy announcement"
2019 : "IBM Rebuttal" : "Summit supercomputer simulation in 2.5 days"
2021 : "IBM Eagle (127Q)" : "Breaking the 100-qubit barrier"
2022 : "IBM Osprey (433Q)" : "Advancing processor scale"
2023 : "Google Surface Code" : "Scaling error correction (d=3 to d=5)"
2023 : "IBM Quantum Utility" : "Complex spin model simulation on 127Q"
2024 : "Beyond" : "Logical Qubits and Error Mitigation era"&lt;/div>
&lt;hr>
&lt;h2 id="5-the-next-frontier-error-mitigation-and-quantum-error-correction-qec">5. The Next Frontier: Error Mitigation and Quantum Error Correction (QEC)
&lt;/h2>&lt;p>Current quantum computers are called &amp;ldquo;NISQ (Noisy Intermediate-Scale Quantum),&amp;rdquo; and they are susceptible to noise (errors due to interactions with the external environment or imperfect control). When performing long computations, the results get buried in noise. There are broadly two approaches to overcoming this problem: &amp;ldquo;Error Mitigation&amp;rdquo; and &amp;ldquo;Quantum Error Correction.&amp;rdquo;&lt;/p>
&lt;h3 id="error-mitigation">Error Mitigation
&lt;/h3>&lt;p>Error mitigation is a method to remove the effects of noise from the expected values of calculation results through classical post-processing without changing the quantum hardware. In 2023, IBM achieved a precision that surpassed state-of-the-art approximate tensor network methods in a time evolution simulation of a complex Ising model by combining its 127-qubit &amp;ldquo;Eagle&amp;rdquo; processor with error mitigation techniques such as &amp;ldquo;Zero-Noise Extrapolation (ZNE),&amp;rdquo; thereby demonstrating &amp;ldquo;Quantum Utility.&amp;rdquo;&lt;/p>
&lt;h3 id="quantum-error-correction-qec-and-logical-qubits">Quantum Error Correction (QEC) and Logical Qubits
&lt;/h3>&lt;p>However, to ultimately run any arbitrary complex algorithm (e.g., Shor&amp;rsquo;s factoring algorithm or complex quantum chemistry calculations), error mitigation alone is insufficient, and &amp;ldquo;Quantum Error Correction (QEC),&amp;rdquo; which dynamically detects and corrects errors, is essential.&lt;/p>
&lt;p>The mainstream approach for QEC is the &amp;ldquo;Surface Code.&amp;rdquo; This is a method where multiple physical qubits (data qubits) are arranged in a 2D grid, and measurement qubits (ancilla qubits) are placed between them to continuously perform parity checks called &amp;ldquo;Stabilizers.&amp;rdquo;&lt;/p>
&lt;div class="mermaid">graph LR
Q1["Data Qubit (Data)"] --- M1["Measure X Stabilizer (Ancilla)"]
Q2["Data Qubit (Data)"] --- M1
Q3["Data Qubit (Data)"] --- M2["Measure Z Stabilizer (Ancilla)"]
Q4["Data Qubit (Data)"] --- M2
M1 --> EC["Error Syndrome Decoding (Classical)"]
M2 --> EC
EC --> LQ["Logical Qubit State Update"]&lt;/div>
&lt;h4 id="the-threshold-theorem-and-distance-d">The Threshold Theorem and Distance $d$
&lt;/h4>&lt;p>A &amp;ldquo;Threshold Theorem&amp;rdquo; exists in quantum error correction. When the error rate $p$ of physical qubits is below a certain threshold $p_{th}$ (around 1% for the surface code), increasing the code distance $d$ (allocating more physical qubits to a single logical qubit) can exponentially reduce the logical error rate $p_L$.&lt;/p>
&lt;p>The approximate formula for the logical error rate is expressed as follows:&lt;/p>
$$
p_L \approx \Lambda \left( \frac{p}{p_{th}} \right)^{\frac{d+1}{2}}
$$
&lt;p>Here, $\Lambda$ is a constant. If $p &lt; p_{th}$, increasing $d$ makes $p_L$ smaller. However, if $p > p_{th}$, increasing physical qubits conversely accumulates noise, worsening the logical error rate.&lt;/p>
&lt;h4 id="googles-2023-milestone-demonstrating-error-reduction-by-scaling-distance">Google&amp;rsquo;s 2023 Milestone: Demonstrating Error Reduction by Scaling Distance
&lt;/h4>&lt;p>In February 2023, Google published a monumental paper in &lt;em>Nature&lt;/em>. They became the first in the world to demonstrate that when expanding the distance of the surface code from $d=3$ (using 17 physical qubits) to $d=5$ (using 49 physical qubits) using their 3rd generation Sycamore processor, the logical error rate slightly decreased from 3.028% to 2.914%.&lt;/p>
&lt;p>This means they have stepped into the region where $p &lt; p_{th}$, showing that the most important Proof of Concept towards FTQC—where performance improves as more physical qubits are added—has been completed.&lt;/p>
&lt;hr>
&lt;h2 id="6-roadmap-and-prospects-for-ftqc-fault-tolerant-quantum-computing">6. Roadmap and Prospects for FTQC (Fault-Tolerant Quantum Computing)
&lt;/h2>&lt;p>While adopting different architectures and approaches, Google and IBM are engaged in fierce development competition towards the ultimate goal of FTQC (Fault-Tolerant Quantum Computing).&lt;/p>
&lt;h3 id="ibms-approach-modularization-and-heavy-hex-lattices">IBM&amp;rsquo;s Approach: Modularization and Heavy-Hex Lattices
&lt;/h3>&lt;p>IBM is focusing on scaling up processors in parallel with drastically reducing error rates. While challenging the limits of single chips with &amp;ldquo;Eagle (127Q),&amp;rdquo; &amp;ldquo;Osprey (433Q),&amp;rdquo; and &amp;ldquo;Condor (1121Q),&amp;rdquo; they announced a modular architecture called &amp;ldquo;Quantum System Two.&amp;rdquo; In addition, for the qubit coupling topology, they have adopted a &amp;ldquo;Heavy-Hex lattice&amp;rdquo; that reduces unnecessary crosstalk and increases stability. IBM&amp;rsquo;s strategy is a hybrid approach that gradually introduces QEC while pursuing utility through advanced error mitigation in the short term.&lt;/p>
&lt;h3 id="googles-approach-improving-logical-qubit-quality">Google&amp;rsquo;s Approach: Improving Logical Qubit Quality
&lt;/h3>&lt;p>Google&amp;rsquo;s strategy places greater emphasis on extremely lowering the error rate of a single logical qubit (e.g., down to $10^{-6}$) rather than rapidly increasing the number of physical qubits. Upon achieving this, they aim for a large-scale system that runs thousands to tens of thousands of physical qubits in parallel by establishing technologies for transferring quantum states between modules (Quantum Interconnects).&lt;/p>
&lt;p>Implementing protocols to fault-tolerantly execute non-Clifford gates, such as Magic State Distillation, will also be a major technical hurdle in the future. To run a practical Shor&amp;rsquo;s algorithm and crack a 2048-bit RSA cipher, it is said that thousands of logical qubits with an error rate of $10^{-8}$ or less are required, equating to millions to tens of millions of physical qubits, meaning the journey is still long.&lt;/p>
&lt;hr>
&lt;h2 id="7-conclusion">7. Conclusion
&lt;/h2>&lt;p>&amp;ldquo;Quantum Supremacy&amp;rdquo; was an important milestone in the history of quantum computers that physically proved the theoretical potential of computing machines. Google&amp;rsquo;s 2019 demonstration and IBM&amp;rsquo;s constructive rebuttal pushed the entire industry from mere theoretical proof into an era of genuine engineering towards the pursuit of actual Utility and, ultimately, Fault-Tolerant Quantum Computing (FTQC).&lt;/p>
&lt;p>Currently, we are witnessing a transitional phase from noisy NISQ devices to logical qubit devices equipped with error correction. In the next five to ten years, new discoveries in materials science, revolutions in the drug discovery process, and breakthroughs in optimization problems will likely become a reality alongside the evolution of this quantum hardware.&lt;/p>
&lt;p>We must keep a close eye on the movements of Google, IBM, and researchers worldwide who are shaping the future of computer science.&lt;/p></description></item></channel></rss>