<?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/ru/tags/ibm/</link><description>Recent content in IBM on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>ru</language><copyright>kenjinote</copyright><lastBuildDate>Fri, 11 Sep 2026 20:00:00 +0900</lastBuildDate><atom:link href="http://kenji.blog/ru/tags/ibm/index.xml" rel="self" type="application/rss+xml"/><item><title>Сверхкраткое введение в квантовое программирование с использованием Qiskit</title><link>http://kenji.blog/ru/p/qiskit-quantum-programming-intro/</link><pubDate>Fri, 11 Sep 2026 20:00:00 +0900</pubDate><guid>http://kenji.blog/ru/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 Сверхкраткое введение в квантовое программирование с использованием Qiskit" />&lt;h2 id="1-введение">1. Введение
&lt;/h2>&lt;p>Современные компьютеры (классические компьютеры) кардинально изменили нашу жизнь, поддерживая все аспекты жизни общества благодаря своим высоким вычислительным возможностям. Однако известно, что для решения некоторых специфических задач (например, факторизации очень больших чисел, симуляции сложных молекулярных структур, задач оптимизации и т. д.) даже самым современным суперкомпьютерам потребуется время, превышающее возраст Вселенной.&lt;/p>
&lt;p>Эти «ограничения классических компьютеров» обладает потенциалом преодолеть &lt;strong>квантовый компьютер (Quantum Computer)&lt;/strong>. Считается, что за счет использования удивительных свойств квантовой механики (суперпозиции и квантовой запутанности) в качестве вычислительных ресурсов, можно радикально ускорить решение определенных задач.&lt;/p>
&lt;p>В этой статье мы сделаем первый шаг в мир квантового программирования, используя &lt;strong>Qiskit&lt;/strong>, фреймворк для квантовых вычислений с открытым исходным кодом от IBM. Это очень подробное вводное руководство, в котором тщательно объясняются основы физики и математики, а также охватывается весь процесс написания кода на Python и запуска квантовых схем на симуляторе.&lt;/p>
&lt;hr>
&lt;h2 id="2-физические-и-математические-основы-квантовых-вычислений">2. Физические и математические основы квантовых вычислений
&lt;/h2>&lt;p>Чтобы понять квантовое программирование, сначала необходимо понять базовые концепции квантовой механики. Здесь мы обсудим три важных столпа: кубиты, суперпозицию и квантовую запутанность.&lt;/p>
&lt;h3 id="21-классические-биты-и-квантовые-биты-qubit">2.1 Классические биты и квантовые биты (Qubit)
&lt;/h3>&lt;p>Единицей информации в классическом компьютере является &amp;ldquo;бит (Bit)&amp;rdquo;. Бит всегда находится в одном из двух состояний: &lt;code>0&lt;/code> или &lt;code>1&lt;/code>.&lt;/p>
&lt;p>С другой стороны, минимальная единица информации в квантовом компьютере называется &lt;strong>квантовым битом (Qubit: Quantum bit)&lt;/strong>. Кубит может находиться не только в состояниях &lt;code>0&lt;/code> и &lt;code>1&lt;/code>, но и &lt;strong>в обоих этих состояниях одновременно&lt;/strong>.&lt;/p>
&lt;p>Математически состояние кубита $|\psi\rangle$ выражается как линейная комбинация (суперпозиция) базисных состояний $|0\rangle$ и $|1\rangle$.&lt;/p>
$$
|\psi\rangle = \alpha|0\rangle + \beta|1\rangle
$$
&lt;p>Где $\alpha$ и $\beta$ - комплексные числа, представляющие амплитуды вероятности наблюдения состояний $|0\rangle$ и $|1\rangle$ соответственно. Согласно фундаментальному принципу квантовой механики, сумма вероятностей должна быть равна 1, поэтому выполняется следующее условие нормировки:&lt;/p>
$$
|\alpha|^2 + |\beta|^2 = 1
$$
&lt;p>Другими словами, когда мы &amp;ldquo;измеряем (наблюдаем)&amp;rdquo; этот кубит, вероятность получения $|0\rangle$ равна $|\alpha|^2$, а вероятность получения $|1\rangle$ равна $|\beta|^2$. Решающее отличие от классических битов состоит в том, что до измерения состояние определяется лишь вероятностно.&lt;/p>
&lt;div class="mermaid">graph LR
A["Классический бит (Classical Bit)"] --> B["Определенное состояние: 0 или 1"]
C["Квантовый бит (Qubit)"] --> D["Суперпозиция: и 0, и 1"]
D --> E["Состояние определяется вероятностно после измерения"]&lt;/div>
&lt;h3 id="22-суперпозиция-superposition">2.2 Суперпозиция (Superposition)
&lt;/h3>&lt;p>Как упоминалось ранее, состояние, в котором состояния $|0\rangle$ и $|1\rangle$ смешаны, называется &lt;strong>суперпозицией (Superposition)&lt;/strong>.&lt;/p>
&lt;p>Например, когда один кубит находится в полностью равномерной суперпозиции, $\alpha = \frac{1}{\sqrt{2}}$ и $\beta = \frac{1}{\sqrt{2}}$.&lt;/p>
$$
|\psi\rangle = \frac{1}{\sqrt{2}}|0\rangle + \frac{1}{\sqrt{2}}|1\rangle
$$
&lt;p>При измерении этого состояния, $|0\rangle$ и $|1\rangle$ наблюдаются с вероятностью 50% каждое.
Если у нас есть два кубита, мы можем создать суперпозицию 4 состояний: $|00\rangle, |01\rangle, |10\rangle, |11\rangle$. С $n$ кубитами можно одновременно представить $2^n$ состояний, что является одним из источников возможности параллельной обработки квантовых компьютеров.&lt;/p>
&lt;h3 id="23-квантовая-запутанность-entanglement">2.3 Квантовая запутанность (Entanglement)
&lt;/h3>&lt;p>Самое мощное и таинственное свойство в квантовых вычислениях — &lt;strong>квантовая запутанность (Entanglement)&lt;/strong>. Эйнштейн называл это явление &amp;ldquo;жутким дальнодействием&amp;rdquo;. Это свойство, при котором два или более кубитов настолько сильно связаны друг с другом, что как только состояние одного кубита определяется, состояние другого определяется мгновенно, независимо от того, насколько далеко физически они находятся друг от друга.&lt;/p>
&lt;p>Одно из самых известных квантово-запутанных состояний — &amp;ldquo;Состояние Белла (Bell State)&amp;rdquo;, состояние $\Phi^+$, выражается следующим образом:&lt;/p>
$$
|\Phi^+\rangle = \frac{|00\rangle + |11\rangle}{\sqrt{2}}
$$
&lt;p>В этом состоянии не существуют таких вариантов, как $|01\rangle$ или $|10\rangle$. Поэтому, если мы измерим первый кубит и он окажется $|0\rangle$, то даже не измеряя второй кубит, можно с уверенностью утверждать, что он будет $|0\rangle$. И наоборот, если первый кубит $|1\rangle$, то второй кубит обязательно будет $|1\rangle$.&lt;/p>
&lt;hr>
&lt;h2 id="3-квантовые-логические-вентили-quantum-logic-gates">3. Квантовые логические вентили (Quantum Logic Gates)
&lt;/h2>&lt;p>Точно так же, как классические компьютеры выполняют вычисления с помощью логических вентилей, таких как AND, OR, NOT, квантовые компьютеры используют &lt;strong>квантовые вентили&lt;/strong> для управления состояниями кубитов. Поскольку квантовые состояния являются векторами, квантовые вентили представляются как &amp;ldquo;унитарные матрицы&amp;rdquo;, действующие на эти векторы.&lt;/p>
&lt;h3 id="31-вентили-паули-pauli-x-y-z">3.1 Вентили Паули (Pauli-X, Y, Z)
&lt;/h3>&lt;p>Вентили Паули — это базовые операции над одним кубитом.&lt;/p>
&lt;p>&lt;strong>・Вентиль Pauli-X (Вентиль NOT)&lt;/strong>
Эквивалентен классическому вентилю NOT. Он инвертирует $|0\rangle$ в $|1\rangle$ и $|1\rangle$ в $|0\rangle$. (Поворот на 180 градусов вокруг оси X на сфере Блоха)&lt;/p>
$$
X = \begin{pmatrix} 0 &amp; 1 \\ 1 &amp; 0 \end{pmatrix}
$$
&lt;p>&lt;strong>・Вентиль Pauli-Y&lt;/strong>
Выполняет поворот на 180 градусов вокруг оси Y. Обладает эффектом инвертирования как фазы, так и бита.&lt;/p>
$$
Y = \begin{pmatrix} 0 &amp; -i \\ i &amp; 0 \end{pmatrix}
$$
&lt;p>&lt;strong>・Вентиль Pauli-Z (Вентиль инверсии фазы)&lt;/strong>
Оставляет состояние $|0\rangle$ без изменений и инвертирует фазу (умножает на $-1$) состояния $|1\rangle$. (Поворот на 180 градусов вокруг оси Z)&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>Вентиль Адамара (H-вентиль) — это чрезвычайно важный вентиль, который преобразует определенные состояния ($|0\rangle$ или $|1\rangle$) в состояния суперпозиции.&lt;/p>
$$
H = \frac{1}{\sqrt{2}}
\begin{pmatrix}
1 &amp; 1 \\
1 &amp; -1
\end{pmatrix}
$$
&lt;p>При применении H-вентиля к $|0\rangle$, оно переходит в состояние $|+\rangle$, которое является равномерной суперпозицией.&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>Фазовый вентиль является обобщением Z-вентиля; он вращает фазу состояния $|1\rangle$ на заданный угол $\theta$.&lt;/p>
$$
P(\theta) = \begin{pmatrix} 1 &amp; 0 \\ 0 &amp; e^{i\theta} \end{pmatrix}
$$
&lt;p>Типичными примерами являются S-вентиль ($\theta = \pi/2$) и T-вентиль ($\theta = \pi/4$).&lt;/p>
&lt;h3 id="34-вентиль-cnot-controlled-not-gate">3.4 Вентиль CNOT (Controlled-NOT Gate)
&lt;/h3>&lt;p>Вентиль CNOT (CX-вентиль) — это вентиль, выполняющий операцию между двумя кубитами, и он незаменим для создания квантовой запутанности. Он состоит из &amp;ldquo;Управляющего (Control) бита&amp;rdquo; и &amp;ldquo;Целевого (Target) бита&amp;rdquo;.&lt;/p>
&lt;p>X-вентиль (операция NOT) применяется к целевому биту только тогда, когда управляющий бит находится в состоянии $|1\rangle$, и ничего не делает, если управляющий бит находится в состоянии $|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-основы-qiskit-и-настройка-среды">4. Основы Qiskit и настройка среды
&lt;/h2>&lt;p>С этого момента мы фактически будем писать квантовые программы, используя Python и Qiskit.&lt;/p>
&lt;h3 id="41-что-такое-qiskit">4.1 Что такое Qiskit?
&lt;/h3>&lt;p>&lt;strong>Qiskit&lt;/strong> — это набор для разработки программного обеспечения (SDK) с открытым исходным кодом для квантовых вычислений, разработанный IBM Quantum. Используя Python, вы можете интуитивно строить квантовые схемы и запускать их на локальных симуляторах или на реальных квантовых компьютерах IBM через облако.&lt;/p>
&lt;h3 id="42-способ-установки">4.2 Способ установки
&lt;/h3>&lt;p>Для использования Qiskit требуется среда Python. Установите Qiskit и связанные с ним пакеты (симуляторы и библиотеки для построения графиков) с помощью следующей команды:&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-базовый-рабочий-процесс-программирования">4.3 Базовый рабочий процесс программирования
&lt;/h3>&lt;p>Квантовое программирование с использованием Qiskit в основном состоит из следующих шагов:&lt;/p>
&lt;div class="mermaid">graph TD
A["1. Построение схемы (Build)"] --> B["2. Компиляция/Транспиляция (Compile)"]
B --> C["3. Выполнение (Execute)"]
C --> D["4. Анализ результатов и визуализация (Analyze)"]&lt;/div>
&lt;ol>
&lt;li>&lt;strong>Построение схемы&lt;/strong>: Создайте объект &lt;code>QuantumCircuit&lt;/code> и добавляйте вентили.&lt;/li>
&lt;li>&lt;strong>Компиляция&lt;/strong>: Оптимизируйте схему под целевой бэкенд (реальное оборудование или симулятор).&lt;/li>
&lt;li>&lt;strong>Выполнение&lt;/strong>: Отправьте задание на бэкенд и получите результаты.&lt;/li>
&lt;li>&lt;strong>Анализ&lt;/strong>: Постройте графики, например, гистограмму результатов измерений.&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="5-практика-построение-схемы-для-создания-состояния-белла-квантовая-запутанность">5. Практика: Построение схемы для создания состояния Белла (Квантовая запутанность)
&lt;/h2>&lt;p>Давайте фактически создадим «квантовую запутанность (состояние Белла)», о которой мы узнали в теории, с помощью Qiskit. Наше целевое состояние — $|\Phi^+\rangle = \frac{|00\rangle + |11\rangle}{\sqrt{2}}$.&lt;/p>
&lt;h3 id="51-проектирование-схемы">5.1 Проектирование схемы
&lt;/h3>&lt;p>Чтобы создать состояние Белла, мы выполним следующие шаги:&lt;/p>
&lt;ol>
&lt;li>Подготовить два кубита (оба инициализируются в состоянии $|0\rangle$).&lt;/li>
&lt;li>Применить вентиль Адамара (H) к первому кубиту, чтобы перевести его в состояние суперпозиции.&lt;/li>
&lt;li>Применить вентиль CNOT, используя первый кубит как &amp;ldquo;управляющий бит&amp;rdquo;, а второй как &amp;ldquo;целевой бит&amp;rdquo;.&lt;/li>
&lt;li>Выполнить измерение (Measure) для считывания результатов.&lt;/li>
&lt;/ol>
&lt;h3 id="52-реализация-кода-на-pythonqiskit">5.2 Реализация кода на Python/Qiskit
&lt;/h3>&lt;p>Давайте теперь посмотрим на реальный код.&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. Инициализация схемы&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Создание квантовой схемы с 2 квантовыми и 2 классическими битами&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. Применение H-вентиля&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Применяем вентиль Адамара к кубиту 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. Применение CNOT-вентиля&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Применяем CNOT: q0 - управляющий бит, q1 - целевой бит&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. Измерение&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Измеряем кубиты 0 и 1, и записываем результаты в классические биты 0 и 1 соответственно&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"># Отрисовка схемы (с использованием 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>При запуске этого кода на консоли отобразится следующая квантовая схема в виде ASCII-графики:&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> обозначает вентиль Адамара, комбинация &lt;code>■&lt;/code> и &lt;code>X&lt;/code> — вентиль CNOT, а &lt;code>M&lt;/code> — измерение.&lt;/p>
&lt;h3 id="53-выполнение-на-симуляторе-и-интерпретация-результатов">5.3 Выполнение на симуляторе и интерпретация результатов
&lt;/h3>&lt;p>Затем мы запустим эту схему на высокопроизводительном симуляторе IBM &lt;code>Aer&lt;/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;/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"># Получение бэкенда симулятора 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"># Транспиляция (оптимизация) схемы для симулятора&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"># Выполнение схемы (здесь мы делаем 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"># Получение результатов&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"># Получение частот наблюдения состояний (counts)&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">Результаты измерений:&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"># Построение гистограммы&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>Интерпретация результатов&lt;/strong>&lt;/p>
&lt;p>Вывод в консоли должен выглядеть примерно так:
&lt;code>Результаты измерений: {'00': 495, '11': 505}&lt;/code>
(※Поскольку вероятности случайны, значения будут немного отличаться при каждом запуске)&lt;/p>
&lt;p>В идеальной симуляционной среде состояния &lt;code>00&lt;/code> и &lt;code>11&lt;/code> будут наблюдаться примерно в 50% случаев каждое, а &lt;code>01&lt;/code> или &lt;code>10&lt;/code> не будут наблюдаться вообще.
Это полностью соответствует нашему теоретическому предсказанию созданного состояния Белла $|\Phi^+\rangle = \frac{|00\rangle + |11\rangle}{\sqrt{2}}$. Точно смоделирована &amp;ldquo;квантовая запутанность&amp;rdquo;, при которой если первый кубит равен 0, то второй всегда 0, а если первый 1, то второй всегда 1.&lt;/p>
&lt;p>Отметим, что при запуске на реальном квантовом компьютере (IBM Quantum Hardware) состояния &lt;code>01&lt;/code> или &lt;code>10&lt;/code> могут наблюдаться в небольших количествах из-за влияния шума (квантовой декогеренции или ошибок вентилей). То, как уменьшить этот шум (квантовая коррекция ошибок), является одной из самых больших проблем в современной разработке квантовых компьютеров.&lt;/p>
&lt;hr>
&lt;h2 id="6-масштабирование-до-более-продвинутых-алгоритмов">6. Масштабирование до более продвинутых алгоритмов
&lt;/h2>&lt;p>Создание состояния Белла можно назвать квантовой версией «Hello World». Развивая эту концепцию дальше, мы можем создавать мощные алгоритмы, превосходящие классические компьютеры.&lt;/p>
&lt;h3 id="61-алгоритм-дойча-йожи-deutsch-jozsa-algorithm">6.1 Алгоритм Дойча-Йожи (Deutsch-Jozsa Algorithm)
&lt;/h3>&lt;p>Это задача по определению, является ли заданная функция $f(x)$ &amp;ldquo;константной функцией&amp;rdquo; (которая всегда выводит 0 или всегда 1 независимо от входа) или &amp;ldquo;сбалансированной функцией&amp;rdquo; (которая выводит 0 для половины возможных входов и 1 для другой половины).
Классическому компьютеру в худшем случае потребовалось бы $2^{n-1} + 1$ вычислений функции, но алгоритм Дойча-Йожи может решить эту задачу всего за &lt;strong>одно вычисление&lt;/strong>, используя квантовый параллелизм. Это демонстрирует базовый шаблон квантовых алгоритмов: ввод состояния суперпозиции и использование интерференции (Interference) для подавления ненужных состояний и усиления правильного ответа.&lt;/p>
&lt;h3 id="62-алгоритм-гровера-grovers-algorithm">6.2 Алгоритм Гровера (Grover&amp;rsquo;s Algorithm)
&lt;/h3>&lt;p>В задаче поиска конкретных данных в неструктурированной базе данных из $N$ элементов классическому алгоритму требуется в среднем $N/2$ вычислений, в то время как алгоритм Гровера может найти нужные данные за $\sqrt{N}$ вычислений.
Этот алгоритм использует черный ящик, называемый &amp;ldquo;оракулом (Oracle)&amp;rdquo;, для инвертирования фазы целевого решения, а затем применяет &amp;ldquo;усиление амплитуды (Amplitude Amplification)&amp;rdquo; для резкого повышения вероятности наблюдения искомого решения.&lt;/p>
&lt;div class="mermaid">graph TD
A["Инициализация (Суперпозиция всех состояний)"] --> B["Оракул (Инверсия фазы правильного ответа)"]
B --> C["Оператор диффузии (Усиление амплитуды путем инверсии вокруг среднего)"]
C --> D{"Достигнута ли достаточная вероятность?"}
D -- "Нет" --> B
D -- "Да" --> E["Измерение"]&lt;/div>
&lt;hr>
&lt;h2 id="7-заключение-и-дальнейшее-обучение">7. Заключение и дальнейшее обучение
&lt;/h2>&lt;p>В этой статье подробно объясняются темы от фундаментальных концепций квантовых вычислений, таких как суперпозиция и квантовая запутанность, до управления квантовыми логическими вентилями с помощью Qiskit, а также практическое построение состояния Белла, симуляция и интерпретация результатов.&lt;/p>
&lt;p>Поскольку Qiskit позволяет писать код на доступном языке Python, это мощный инструмент, который позволяет вам преодолеть математические и физические барьеры и сосредоточиться на построении алгоритмов. Квантовые компьютеры в настоящее время находятся в эпохе шумных квантовых устройств промежуточного масштаба (NISQ: Noisy Intermediate-Scale Quantum), но во всем мире стремительно ведутся прикладные исследования в многочисленных областях, таких как квантовое машинное обучение (Quantum Machine Learning), квантовая химия (Quantum Chemistry) и криптоанализ.&lt;/p>
&lt;p>Пожалуйста, воспользуйтесь этой возможностью, чтобы создать различные квантовые схемы с помощью Qiskit и запустить их на реальных квантовых процессорах IBM. Вы сможете своими руками испытать парадигму вычислений будущего.&lt;/p>
&lt;h3 id="справочные-материалы">Справочные материалы
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://qiskit.org/documentation/" target="_blank" rel="noopener"
>Официальная документация Qiskit&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="https://qiskit.org/textbook/ja/preface.html" target="_blank" rel="noopener"
>Учебник Qiskit&lt;/a> - Официальный учебник, рекомендуемый для тех, кто хочет глубже изучить математические основы и алгоритмы&lt;/li>
&lt;li>IBM Quantum Learning&lt;/li>
&lt;/ul>
&lt;p>Добро пожаловать в квантовый мир!&lt;/p></description></item><item><title>Что такое квантовое превосходство? Последние тенденции Google и IBM</title><link>http://kenji.blog/ru/p/what-is-quantum-supremacy-google-ibm/</link><pubDate>Fri, 11 Sep 2026 18:00:00 +0900</pubDate><guid>http://kenji.blog/ru/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 Что такое квантовое превосходство? Последние тенденции Google и IBM" />&lt;h2 id="1-введение-рассвет-квантовых-вычислений-и-квантовое-превосходство">1. Введение: Рассвет квантовых вычислений и «квантовое превосходство»
&lt;/h2>&lt;p>Квантовые вычисления таят в себе потенциал решения сложных проблем, которые классические компьютеры (ПК и суперкомпьютеры, которыми мы пользуемся каждый день) не могут решить за разумное время, применяя квантовую механику, фундаментальный принцип физики, к обработке информации. Эта область долгое время оставалась преимущественно теоретической, но в последние годы из-за быстрого развития аппаратного обеспечения конкуренция за практическое применение обострилась.&lt;/p>
&lt;p>Одним из ключевых слов, привлекших наибольшее внимание в этом контексте, является «квантовое превосходство» (Quantum Supremacy). Оно означает момент, когда квантовый компьютер демонстрирует вычислительную мощность, превосходящую возможности классического компьютера в выполнении определенной вычислительной задачи. В этой статье мы начнем со строгого определения квантового превосходства, подробно рассмотрим эксперимент с процессором Google «Sycamore», который, как было объявлено в 2019 году, впервые в мире достиг этой вехи, возражения IBM и их собственный подход, а также углубимся в технические и математические детали последней дорожной карты к «квантовому исправлению ошибок» (Quantum Error Correction: QEC) и «отказоустойчивым квантовым вычислениям» (Fault-Tolerant Quantum Computing: FTQC), которые являются главными препятствиями на пути к истинному практическому применению.&lt;/p>
&lt;hr>
&lt;h2 id="2-теоретические-основы-основы-квантовых-вычислений-и-классы-сложности">2. Теоретические основы: Основы квантовых вычислений и классы сложности
&lt;/h2>&lt;p>Чтобы понять квантовое превосходство, сначала необходимо понять математические основы квантовых вычислений и их место в теории вычислительной сложности.&lt;/p>
&lt;h3 id="квантовые-биты-и-суперпозиция">Квантовые биты и суперпозиция
&lt;/h3>&lt;p>Наименьшей единицей информации в классическом компьютере является бит (0 или 1), но в квантовом компьютере используются квантовые биты (кубиты, Qubit). Состояние одного кубита $|\psi\rangle$ выражается как комплексная линейная комбинация базисных состояний $|0\rangle$ и $|1\rangle$.&lt;/p>
$$
|\psi\rangle = \alpha|0\rangle + \beta|1\rangle
$$
&lt;p>Здесь $\alpha, \beta \in \mathbb{C}$ и удовлетворяют условию нормировки $|\alpha|^2 + |\beta|^2 = 1$. Это свойство называется «суперпозицией» (Superposition).&lt;/p>
&lt;h3 id="запутанность-entanglement-и-тензорное-произведение">Запутанность (Entanglement) и тензорное произведение
&lt;/h3>&lt;p>Когда присутствует несколько кубитов, состояние всей системы выражается тензорным произведением пространств состояний отдельных кубитов. Система из $n$ кубитов является вектором в $2^n$-мерном гильбертовом пространстве $\mathcal{H}^{\otimes n}$.&lt;/p>
$$
|\Psi\rangle = \sum_{x \in \{0, 1\}^n} c_x |x\rangle
$$
&lt;p>Здесь $\sum |c_x|^2 = 1$. Состояние, в котором кубиты не независимы, а состояние одного зависит от состояния другого, называется «квантовой запутанностью» (Quantum Entanglement). Это дает квантовым компьютерам потенциал для одновременной обработки экспоненциально огромного пространства состояний.&lt;/p>
&lt;h3 id="определение-квантового-превосходства-с-точки-зрения-теории-вычислительной-сложности">Определение квантового превосходства с точки зрения теории вычислительной сложности
&lt;/h3>&lt;p>В теории вычислительной сложности класс задач, которые эффективно (за полиномиальное время) могут быть решены классическим компьютером, называется &lt;strong>BPP&lt;/strong> (Bounded-error Probabilistic Polynomial time). С другой стороны, класс задач, которые эффективно решает квантовый компьютер, — это &lt;strong>BQP&lt;/strong> (Bounded-error Quantum Polynomial time).&lt;/p>
&lt;p>Демонстрация квантового превосходства означает «выполнение определенной задачи, которая принадлежит классу BQP, но не принадлежит BPP (или вероятность этого крайне высока), на реальном квантовом оборудовании, и превосходство над симуляцией на классическом суперкомпьютере по времени и ресурсам». Это можно назвать исторической попыткой физического опровержения расширенного тезиса Черча-Тьюринга («любая физически реализуемая вычислительная модель может быть смоделирована вероятностной машиной Тьюринга за полиномиальное время»).&lt;/p>
&lt;hr>
&lt;h2 id="3-2019-год-демонстрация-квантового-превосходства-от-google">3. 2019 год: Демонстрация квантового превосходства от Google
&lt;/h2>&lt;p>В октябре 2019 года команда Google Quantum AI объявила в научном журнале &lt;em>Nature&lt;/em>, что они достигли квантового превосходства, используя сверхпроводящий процессор «Sycamore» с 53 кубитами.&lt;/p>
&lt;h3 id="архитектура-процессора-sycamore">Архитектура процессора Sycamore
&lt;/h3>&lt;p>Процессор Sycamore состоит из 54 сверхпроводящих кубитов типа трансмон (Transmon), расположенных в виде двумерной решетки (в эксперименте использовалось 53, так как один был неисправен). Между соседними кубитами расположены перестраиваемые связи (Tunable Coupler), реализующие высокоскоростные и высокоточные двухкубитные вентили (гибрид вентиля iSWAP и управляемого Z-вентиля).&lt;/p>
&lt;div class="mermaid">graph TD
A["Ввод квантового алгоритма"] --> B["Процессор Sycamore (53 кубита)"]
B --> C["Применение случайных квантовых вентилей"]
C --> D["Измерение квантовых состояний (Битовые строки)"]
D --> E["Оценка перекрестной энтропии (XEB)"]
E --> F["Подтверждение квантового превосходства"]&lt;/div>
&lt;h3 id="сэмплинг-случайных-квантовых-цепей-random-circuit-sampling-rcs">Сэмплинг случайных квантовых цепей (Random Circuit Sampling: RCS)
&lt;/h3>&lt;p>Задача, выбранная Google, — «сэмплинг случайных квантовых цепей». Она заключается в применении случайно выбранных однокубитных и двухкубитных вентилей на протяжении нескольких циклов (глубина $m$), измерении конечного состояния и получении сэмплов из результирующего распределения вероятностей битовых строк.&lt;/p>
&lt;p>Вероятность получения битовой строки $x$ на выходе идеальной (без шума) случайной квантовой цепи представляет собой не равномерное распределение, а паттерн, похожий на интерференционную картину, называемый распределением Портера-Томаса (Porter-Thomas distribution). Чтобы получить выборку из этого распределения на классическом компьютере, необходимо смоделировать весь вектор состояния, и вычислительная сложность возрастает экспоненциально относительно количества кубитов $n$ и глубины цепи $m$.&lt;/p>
&lt;h3 id="оценка-точности-fidelity-линейная-перекрестная-энтропия-xeb">Оценка точности (Fidelity): Линейная перекрестная энтропия (XEB)
&lt;/h3>&lt;p>Чтобы доказать, что результаты эксперимента — это не просто шум, а результаты реально выполненных квантовых вычислений, Google использовала оценку линейной перекрестной энтропии (Linear Cross-Entropy Benchmarking: XEB). Идеальная вероятность цепи $P(x_i)$ для битовой строки $x_i$, полученной в эксперименте, рассчитывается на классическом компьютере, и точность $\mathcal{F}_{\text{XEB}}$ определяется по следующей формуле:&lt;/p>
$$
\mathcal{F}_{\text{XEB}} = 2^n \langle P(x_i) \rangle_{i} - 1
$$
&lt;p>Если $\mathcal{F}_{\text{XEB}}$ равно 0, это означает полный шум, если 1 — идеальный квантовый процессор без шума. Процессор Sycamore достиг $\mathcal{F}_{\text{XEB}} \approx 0.002$ (0,2%) для цепи глубиной 20. На первый взгляд это значение кажется низким, но это статистически значимая величина, превышающая ноль, и она стала удивительным достижением контроля над пространством состояний размером $2^{53} \approx 9 \times 10^{15}$.&lt;/p>
&lt;p>Общий уровень ошибок приближенно моделировался как произведение ошибок отдельных вентилей, ошибок измерения и т.д.&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$ — ошибка вентиля, $e_{RO}$ — ошибка измерения)&lt;/p>
&lt;p>Google утверждала, что моделирование этой цепи на классическом суперкомпьютере (Summit) займет около 10 000 лет. Sycamore, напротив, завершил сэмплинг всего за 200 секунд.&lt;/p>
&lt;hr>
&lt;h2 id="4-возражения-ibm-от-превосходства-к-полезности-utility">4. Возражения IBM: От «превосходства» к «полезности» (Utility)
&lt;/h2>&lt;p>Объявление Google шокировало мир, но IBM, разработчик крупнейшего в мире суперкомпьютера «Summit» и лидер в разработке квантовых компьютеров, немедленно опубликовала статью, опровергающую это заявление.&lt;/p>
&lt;h3 id="улучшение-классической-симуляции-за-счет-свертки-тензорных-сетей">Улучшение классической симуляции за счет свертки тензорных сетей
&lt;/h3>&lt;p>Суть возражений IBM заключалась в том, что «алгоритмы и оптимизация ресурсов на стороне классического компьютера были недостаточны». Оценка Google в 10 000 лет основывалась на симуляторе вектора состояния, который напрямую вычисляет эволюцию во времени уравнения Шрёдингера, но IBM отметила, что время симуляции можно резко сократить, используя метод, называемый «тензорной сетью» (Tensor Network).&lt;/p>
&lt;p>В тензорных сетях операции вентилей в квантовой цепи представляются как вычисления с многомерными массивами (тензорами), и оптимизируется порядок «свертки» (Contraction) сети. Кроме того, они утверждали, что если полностью использовать огромное хранилище Summit объемом 250 ПБ (иерархическая структура дисков и памяти), можно выполнить более точную симуляцию всего за «два с половиной дня», сохраняя при этом весь вектор состояния.&lt;/p>
&lt;h3 id="квантовое-преимущество-quantum-advantage-и-квантовая-полезность-quantum-utility">Квантовое преимущество (Quantum Advantage) и Квантовая полезность (Quantum Utility)
&lt;/h3>&lt;p>Под влиянием этих дебатов тенденция во всей индустрии сместилась от простой зацикленности на «выполнении искусственных задач, невозможных для классических компьютеров (Supremacy)» к фазе «демонстрации существенного преимущества над классическими подходами в полезных задачах реального мира (Quantum Advantage)», а затем и к фазе, когда «квантовые компьютеры служат новым инструментом для научных открытий (Quantum Utility)».&lt;/p>
&lt;p>Сама компания IBM избегает слова «превосходство» и предлагает «Квантовый объем» (Quantum Volume) и «CLOPS (Circuit Layer Operations Per Second)» в качестве комплексных показателей производительности квантовых процессоров, продвигая разработки с акцентом на баланс масштаба и качества оборудования.&lt;/p>
&lt;div class="mermaid">timeline
title "Эволюция квантовых вех"
2019 : "Google Sycamore (53Q)" : "Объявление о квантовом превосходстве"
2019 : "Возражение IBM" : "Симуляция на суперкомпьютере Summit за 2,5 дня"
2021 : "IBM Eagle (127Q)" : "Преодоление барьера в 100 кубитов"
2022 : "IBM Osprey (433Q)" : "Увеличение масштаба процессора"
2023 : "Поверхностный код Google" : "Масштабирование исправления ошибок (от d=3 до d=5)"
2023 : "Квантовая полезность IBM" : "Сложное моделирование спиновой модели на 127Q"
2024 : "Будущее" : "Эра логических кубитов и смягчения ошибок"&lt;/div>
&lt;hr>
&lt;h2 id="5-следующий-рубеж-смягчение-ошибок-error-mitigation-и-квантовое-исправление-ошибок-qec">5. Следующий рубеж: Смягчение ошибок (Error Mitigation) и квантовое исправление ошибок (QEC)
&lt;/h2>&lt;p>Современные квантовые компьютеры называются «NISQ» (Noisy Intermediate-Scale Quantum) и подвержены влиянию шума (ошибок, вызванных взаимодействием с внешней средой и несовершенством управления), из-за чего результаты длительных вычислений тонут в шуме. Подходы к преодолению этой проблемы можно разделить на две основные категории: «смягчение ошибок» (Error Mitigation) и «квантовое исправление ошибок» (Quantum Error Correction).&lt;/p>
&lt;h3 id="смягчение-ошибок-error-mitigation">Смягчение ошибок (Error Mitigation)
&lt;/h3>&lt;p>Смягчение ошибок — это метод устранения влияния шума на ожидаемое значение результатов вычислений с помощью классической постобработки, без изменения квантового аппаратного обеспечения. В 2023 году IBM, объединив 127-кубитный процессор «Eagle» с методами смягчения ошибок, такими как «экстраполяция нулевого шума» (Zero-Noise Extrapolation: ZNE), достигла точности, превосходящей передовые методы аппроксимации тензорных сетей, в моделировании временной эволюции сложной модели Изинга, тем самым продемонстрировав «Квантовую полезность» (Quantum Utility).&lt;/p>
&lt;h3 id="квантовое-исправление-ошибок-qec-и-логические-кубиты">Квантовое исправление ошибок (QEC) и логические кубиты
&lt;/h3>&lt;p>Однако для выполнения алгоритмов произвольной сложности (например, алгоритма факторизации Шора или сложных квантово-химических расчетов) одного лишь смягчения ошибок недостаточно. Совершенно необходимо «квантовое исправление ошибок» (QEC), которое динамически обнаруживает и исправляет ошибки.&lt;/p>
&lt;p>Основным подходом к QEC является «поверхностный код» (Surface Code). В этом методе множество физических кубитов (кубитов данных) размещаются в виде двумерной решетки, а между ними располагаются кубиты для измерения (вспомогательные кубиты, Ancilla), которые непрерывно выполняют проверки четности, называемые «стабилизаторами» (Stabilizer).&lt;/p>
&lt;div class="mermaid">graph LR
Q1["Кубит данных (Данные)"] --- M1["Измерение X-стабилизатора (Вспомогательный)"]
Q2["Кубит данных (Данные)"] --- M1
Q3["Кубит данных (Данные)"] --- M2["Измерение Z-стабилизатора (Вспомогательный)"]
Q4["Кубит данных (Данные)"] --- M2
M1 --> EC["Декодирование синдрома ошибки (Классическое)"]
M2 --> EC
EC --> LQ["Обновление состояния логического кубита"]&lt;/div>
&lt;h4 id="теорема-о-пороге-threshold-theorem-и-расстояние-d">Теорема о пороге (Threshold Theorem) и расстояние $d$
&lt;/h4>&lt;p>Для квантового исправления ошибок существует «теорема о пороге». Если уровень ошибок физического кубита $p$ падает ниже определенного порога $p_{th}$ (для поверхностного кода это около 1%), то путем увеличения кодового расстояния (Distance) $d$ (назначения большего количества физических кубитов одному логическому кубиту) можно экспоненциально снизить уровень логических ошибок $p_L$.&lt;/p>
&lt;p>Приближенная формула для уровня логических ошибок выглядит следующим образом:&lt;/p>
$$
p_L \approx \Lambda \left( \frac{p}{p_{th}} \right)^{\frac{d+1}{2}}
$$
&lt;p>Где $\Lambda$ — константа. Если $p &lt; p_{th}$, то чем больше $d$, тем меньше становится $p_L$. Однако если $p > p_{th}$, увеличение количества физических кубитов, наоборот, приводит к накоплению шума и ухудшению уровня логических ошибок.&lt;/p>
&lt;h4 id="веха-google-2023-года-демонстрация-снижения-ошибок-за-счет-увеличения-расстояния">Веха Google 2023 года: Демонстрация снижения ошибок за счет увеличения расстояния
&lt;/h4>&lt;p>В феврале 2023 года Google опубликовала эпохальную статью в журнале &lt;em>Nature&lt;/em>. Используя процессор Sycamore 3-го поколения, они впервые в мире продемонстрировали, что при увеличении расстояния поверхностного кода с $d=3$ (используется 17 физических кубитов) до $d=5$ (используется 49 физических кубитов), уровень логических ошибок незначительно снижается с 3,028% до 2,914%.&lt;/p>
&lt;p>Это означает вступление в область $p &lt; p_{th}$ и свидетельствует о завершении важнейшей проверки концепции (Proof of Concept) на пути к FTQC, подтверждающей, что чем больше физических кубитов, тем выше производительность.&lt;/p>
&lt;hr>
&lt;h2 id="6-дорожная-карта-и-перспективы-ftqc-отказоустойчивых-квантовых-вычислений">6. Дорожная карта и перспективы FTQC (отказоустойчивых квантовых вычислений)
&lt;/h2>&lt;p>Google и IBM ведут ожесточенную конкуренцию в разработке на пути к своей конечной цели — FTQC (Fault-Tolerant Quantum Computing), применяя при этом разные архитектуры и подходы.&lt;/p>
&lt;h3 id="подход-ibm-модульность-и-решетка-heavy-hex">Подход IBM: Модульность и решетка Heavy-Hex
&lt;/h3>&lt;p>IBM фокусируется на масштабировании процессоров наряду с радикальным снижением уровня ошибок. Бросая вызов ограничениям одного чипа с помощью процессоров «Eagle (127Q)», «Osprey (433Q)» и «Condor (1121Q)», они также анонсировали модульную архитектуру под названием «Quantum System Two». Кроме того, для топологии связи кубитов они используют решетку «Heavy-Hex», которая снижает нежелательные перекрестные помехи и повышает стабильность. Стратегия IBM — это гибридный подход, при котором в краткосрочной перспективе они стремятся к полезности за счет продвинутого смягчения ошибок, постепенно внедряя QEC.&lt;/p>
&lt;h3 id="подход-google-повышение-качества-логических-кубитов">Подход Google: Повышение качества логических кубитов
&lt;/h3>&lt;p>Стратегия Google больше сосредоточена на максимальном снижении уровня ошибок одного логического кубита (например, до $10^{-6}$), чем на быстром увеличении количества физических кубитов. Опираясь на это, они стремятся создать крупномасштабные системы, в которых работают параллельно тысячи и десятки тысяч физических кубитов, разрабатывая технологии передачи квантовых состояний между модулями (Quantum Interconnects).&lt;/p>
&lt;p>Реализация протоколов для отказоустойчивого выполнения неклиффордовых вентилей, таких как дистилляция магических состояний (Magic State Distillation), также станет серьезным техническим препятствием в будущем. Считается, что для выполнения практического алгоритма Шора и взлома 2048-битного шифра RSA потребуются тысячи логических кубитов с уровнем ошибок ниже $10^{-8}$, что эквивалентно миллионам или десяткам миллионов физических кубитов, так что путь еще долгий.&lt;/p>
&lt;hr>
&lt;h2 id="7-заключение">7. Заключение
&lt;/h2>&lt;p>«Квантовое превосходство» стало важной вехой в истории квантовых компьютеров, физически доказавшей теоретический потенциал этих вычислительных машин. Демонстрация Google в 2019 году и конструктивные возражения IBM перевели всю индустрию от простых теоретических доказательств к поиску реальной полезности (Utility) и началу эпохи серьезной инженерии, направленной на достижение отказоустойчивых квантовых вычислений (FTQC).&lt;/p>
&lt;p>Сейчас мы являемся свидетелями переходного периода от зашумленных устройств NISQ к устройствам на логических кубитах с исправлением ошибок. В течение следующих нескольких лет или десятилетия новые открытия в материаловедении, революция в процессах разработки лекарств и прорывы в решении задач оптимизации станут реальностью благодаря эволюции этого квантового оборудования.&lt;/p>
&lt;p>В дальнейшем мы будем пристально следить за развитием Google, IBM и исследователей со всего мира, которые формируют будущее компьютерных наук.&lt;/p></description></item></channel></rss>