The Jerusalem PostStarlink slowed, Ukraine’s drones stalled: The private power behind a modern warPunchKaduna debunks N2.3tn APC rally spending claim, says letter fakeInquirerPDEA seizes P6.8M ‘shabu’ in Zamboanga City buy-bustESPNNHL Power Rankings: Fantasy hockey pickups for all 32 teamsInquirer EntertainmentMeghan Markle ‘distressed’ over father’s alleged child abuse images found in PH한겨레김정은, 단둥서 중국 권력서열 4위 만나…“신압록강대교까지 배웅 받아”Screen RantOne Piece Just Confirmed Sanji's Power-Up Path That Even Zoro Couldn't FollowZDF heuteAktuelle Pressemitteilungen des ZDFColliderLaika’s Stop-Motion Masterpiece Is Officially a Streaming Hit Ahead of ‘Wildwood’SCMP ChinaUkraine’s Starlink woes should be a wake-up call for Taiwan, analysts sayPopular ScienceHow to turn your smartphone into a mobile video editing suiteRai NewsTG1 Motori del 24/10/2026
The Daily Newsstand · Free, Always
Saturday, October 24, 2026

Котята Шрёдингера: как я разводил квантовых котов на процессорах IBM

Translate

Про кота Шрёдингера слышали, наверное, все. Для тех, кто не слышал, коротко.

Берём кота и сажаем в закрытую коробку. Коробка полностью ограничена от внешнего мира и находится в квантовой позиции. Туда же кладём один радиоактивный атом, счётчик и банку с ядом. Если атом распадётся, счётчик сработает, молоток разобьёт банку, и кот умрёт. Если не распадётся, кот жив. Шанс, что атом распадётся за час, ровно 50%.

А дальше начинается квантовая странность. Пока коробку никто не открыл, атом находится «и в распавшемся, и в нераспавшемся» состоянии сразу. Значит, и кот одновременно жив и мёртв, а определится это, только когда мы заглянем внутрь.

Кот Шрёдингера: и жив, и мёртв, пока коробка закрыта

Кот Шрёдингера: и жив, и мёртв, пока коробка закрыта

Кстати, Шрёдингер этим котом вообще-то издевался. Мол, смотрите, какая ерунда выходит, если квантовую механику применить к чему-то большому. А получилось наоборот: кот стал самым знаменитым мысленным экспериментом в физике.

Но как это доказать?

Меня в этой истории всегда смущало одно. Хорошо, кот «и жив, и мёртв» одновременно. Но как это проверить, как доказать?

Открываем коробку, а там либо живой кот, либо мёртвый. Точно так же было бы и с самым обычным котом. Результат уже есть, просто мы его не видим. И как тогда отличить «кот был в суперпозиции» от «кот давно помер, а мы не знали»? Заглянув в коробку один раз, никак не доказать.

И вот пришла идея.

Кот, кошка и 72 дня

А что если взять двух котов? Кота и кошку.

Сажаем их в одну коробку с одним атомом, но банку устраиваем хитро:

  • если атом распался — умирает кот;

  • если атом не распался — умирает кошка.

В обычной жизни кто-то из них обязательно погибнет. Атом либо распался, либо нет, третьего не дано.

Но ведь в квантовом мире атом и распался, и не распался одновременно. Значит, и кот «и жив, и мёртв», и кошка «и жива, и мертва». А раз оба на 50% живы… может, им удастся встретиться в 25% случаев?

Поэтому коробку открываем не через час, а через 72 дня. (Еды и воды, конечно, оставляем на весь срок. Котиков обижать мы не будем.)

Кот и кошка в одной коробке: один атом, два яда, 72 дня

Кот и кошка в одной коробке: один атом, два яда, 72 дня

А вот котята — это уже будет доказательство. Кошки ходят беременными около девяти недель, так что за 72 дня всё успеет случиться. Если в коробке окажутся котята, значит, кот и кошка были живы одновременно, внутри своей суперпозиции. В обычном мире так не бывает. А в квантовом каждый из родителей жив на 50%, значит, оба сразу должны оказаться живыми в 25% случаев. То есть примерно в каждой четвёртой коробке нас должны ждать котята. Есть котята, значит, квантовая странность доказана.

Ну, коробка-то у меня есть, сам механизм в гараже соберу… но где взять квантовых котов? (Живых я обижать не буду — я кошек люблю.)

И тут меня осенило: есть же квантовые компьютеры.

Квантовый компьютер IBM Quantum System One без кожуха

Квантовый компьютер IBM Quantum System One без кожуха

Вот она — наша коробка для квантовых котов. Так выглядит квантовый компьютер IBM без кожуха: золотая «люстра» — это холодильник, а сам процессор с кубитами спрятан в самом низу. Фото: OJB Quantum, Wikimedia Commons, CC BY 4.0.

Кот по имени Кубит

Квантовый компьютер состоит из кубитов. Это почти то же самое, что обычные биты, только кубит может быть и 0, и 1 одновременно, да ещё и с какой-то вероятностью. Называется это суперпозицией. Для нашего опыта это идеальные коты: «1» значит жив, «0» значит мёртв.

Нам понадобится четыре кубита: атом, который ставим ровно «наполовину распавшимся», кот и кошка (в начале оба живы) и котёнок, которого в начале нет.

А дальше квантовый компьютер выполняет три правила «если… то»:

  1. Если атом распался, кот умирает.

  2. Если атом не распался, кошка умирает.

  3. Если и кот, и кошка живы, рождается котёнок.

Схема коробки: атом, кот, кошка и котёнок, потом 72 дня и открываем коробку

Схема коробки: атом, кот, кошка и котёнок, потом 72 дня и открываем коробку

Потом коробку «открываем»: измеряем кота, кошку и котёнка. И повторяем опыт тысячу раз, чтобы посмотреть, что выпадает и как часто.

Всё это мы написали на Python с помощью Qiskit, бесплатной библиотеки от IBM для квантовых компьютеров. Получилось две программы. Первая, небольшая консольная, сажает котов в коробку, запускает опыт тысячу раз и рисует гистограмму, кто сколько раз выжил. Вторая это блокнот Jupyter: там можно заглянуть внутрь коробки, пошагово посмотреть, что происходит с каждым котом, и поиграться с «шумными» симуляторами. Обе работают и на симуляторе прямо на домашнем ПК, и на настоящих квантовых процессорах IBM.

Весь код и инструкции по запуску лежат в репозитории, ссылка в приложении в конце статьи. А сама коробка в Qiskit занимает десяток строк:

import math
from qiskit import QuantumCircuit, QuantumRegister, ClassicalRegister

cat, she, kit, atom = (QuantumRegister(1, n) for n in ("кот", "кошка", "котёнок", "атом"))
qc = QuantumCircuit(cat, she, kit, atom, ClassicalRegister(3, "c"))

qc.x(cat)                             # кот жив
qc.x(she)                             # кошка жива
qc.ry(math.pi / 2, atom)              # атом: 50 на 50, распался или нет

qc.cx(atom, cat)                      # распался    -> кот умирает
qc.cx(atom, she, ctrl_state=0)        # не распался -> кошка умирает
qc.ccx(cat, she, kit)                 # оба живы    -> котёнок рождается

qc.measure([cat[0], she[0], kit[0]], [0, 1, 2])   # открываем коробку

Здесь всего четыре вида квантовых операций:

  • x: переворачивает кубит, 0 становится 1. Так мы «оживляем» котов в начале.

  • ry(π/2): поворачивает кубит ровно на полпути от 0 к 1. Получается атом, который распался с вероятностью 50%.

  • cx (CNOT): «если управляющий кубит равен 1, переверни целевой». С параметром ctrl_state=0 срабатывает наоборот, когда управляющий равен 0. Это и есть наши два яда.

  • ccx (вентиль Тоффоли): то же самое, но с двумя условиями. Котёнок переворачивается из 0 в 1, только если оба родителя равны 1.

Вот так эта схема выглядит в Qiskit (время идёт слева направо):

Квантовая схема коробки в Qiskit: X, RY, два CNOT, Тоффоли и измерения

Квантовая схема коробки в Qiskit: X, RY, два CNOT, Тоффоли и измерения

Открываем коробку

Сначала на симуляторе, то есть на идеальном квантовом компьютере, который считается прямо на домашнем ПК. Там нет ни шума, ни ошибок, чистая квантовая механика.

Запускаем. Тысяча коробок.

Идеальный симулятор: котят 0 из 1000 коробок

Идеальный симулятор: котят 0 из 1000 коробок

Примерно в половине коробок жив кот, в другой половине кошка. Котят…

Ноль.

Ни в одной из тысячи коробок.

А мы так надеялись.

Почему котят нет

Пришлось разбираться. И оказалось, что ошибка была в нашем понимании слова «одновременно».

Мы-то думали, что каждый кот сам по себе наполовину жив. А на самом деле в коробке сразу две целые истории:

  • история первая: атом распался, кот мёртв, кошка жива;

  • история вторая: атом не распался, кот жив, кошка мертва.

Коробка живёт в обеих историях сразу, но ни в одной из них кот и кошка не живы вместе. Так что котёнку просто неоткуда взяться: кота из одной истории с кошкой из другой не склеишь.

Если смотреть на каждого кота отдельно, у него честные 50 на 50. Но вместе это одна история на двоих, как две стороны одной медали: жив один, значит, мёртв другой. Физики такую общую судьбу называют запутанностью.

Проверка: даём каждому свой атом

Чтобы убедиться, что котята вообще умеют рождаться, поменяем условия: у кота свой атом, у кошки свой, независимый.

Теперь всё как с двумя монетками: в четверти случаев выживают оба. И симулятор послушно выдал котят примерно в 25% коробок.

У каждого свой атом: котята в каждой четвёртой коробке

У каждого свой атом: котята в каждой четвёртой коробке

Значит, наша схема работает. Просто когда атом общий, природа котят не допускает.

И что же, на этом всё? Эксперимент не удался? А вот и нет. Хочу квантового котёнка.

Настоящий квантовый компьютер и котята

Симулятор это хорошо, но хочется живого железа. IBM даёт бесплатный доступ к своим квантовым процессорам: регистрируемся, получаем ключ, пишем программу, запускаем (все ссылки и инструкции в приложении в конце статьи), ставим задачу в очередь, ждём… Получилось. (Мы же оптимисты.)

Настоящий процессор IBM: 201 котёнок-призрак на 4000 коробок

Настоящий процессор IBM: 201 котёнок-призрак на 4000 коробок

Открываем результаты, и…

Ура, котята. Мы верили! Около 5% коробок. Собираем наших котят:

Собираем наших котят: 49, 57, 63 и 32 — всего 201

Собираем наших котят: 49, 57, 63 и 32 — всего 201

Ах вы мои хорошие… Кому квантового котёнка? Пишите в личку, отдам 200 первым, одного оставлю себе. Только покормить не забудьте: не у всех из них есть мамки…

А кстати. Если присмотреться к выводку, с нашими котятами творится что-то странное.

  • Кошка мертва, а котёнок есть: 89 раз. Кто его родил? А 32 из них и вовсе круглые сироты, у них мертвы оба родителя.

  • Кот мёртв, а котёнок есть: 63 раза. Приговор у нас мгновенный, так что никакое «успел до того» не прокатит.

  • Оба живы и котёнок есть: 49 раз. Самые «честные» котята: яд не сработал, повезло. Но в нашей коробке кто-то обязан умереть, так что и тут никакого квантового чуда, банку просто криво прикрутили.

И это ещё не всё. В 19 коробках оба родителя живы, а котят нет («не сложилось»), а в 120 мертвы оба, хотя кто-то обязан был выжить. Правильных исходов (жив ровно один из двоих, котят нет) оказалось 91,5%. Всё остальное это истории, которых не может быть ни в обычном мире, ни в квантовом: прибор просто иногда ошибается. Выходит, у нас котята-призраки.

Откуда взялись котята-призраки

Котята-призраки это шум, и у каждого процессора он свой. Мы запускали котов на двух чипах IBM: на ibm_kingston котята родились в 5% коробок, а на ibm_marrakesh в 3,7%. Может, на каком-нибудь другом их будет ещё больше?

У квантовых компьютеров пока ещё много ошибок, шум в квантовых вычислениях. И у наших призраков нашлось три источника.

Шум. Кубит очень нежная штука. Он живёт при температуре на сотые доли градуса выше абсолютного нуля, а это одно из самых холодных мест во Вселенной, в сотню с лишним раз холоднее открытого космоса. И всё равно чуть-чуть «общается» с окружающим миром. Каждое такое касание понемногу размывает квантовую историю, и котёнку этого хватает, чтобы родиться там, где не надо.

Ошибки чтения. Когда коробку открывают, прибор иногда путает «жив» и «мёртв». Причём чаще читает живого как мёртвого: возбуждённое состояние кубита любит само «скатиться» вниз. Отсюда и лишние коробки «оба мертвы».

Рассадка. А вот этого мы совсем не ожидали. На чипе кубиты соединены не все со всеми, а только с ближайшими соседями, как в сотах. А для рождения котёнка нужно, чтобы кот, кошка и котёнок встретились втроём. Компьютеру приходится пересаживать состояния кубитов с места на место, и на каждой пересадке можно ошибиться. В итоге наша маленькая схема на реальном чипе разрослась примерно вдвое.

После компиляции под реальный процессор схема сильно разрослась. На бумаге у нас три операции: два CNOT и один Тоффоли. Но чип IBM напрямую умеет только одну двухкубитную операцию, CZ, и компилятор Qiskit раскладывает всё на неё. Если бы кубиты были соединены все со всеми, хватило бы 8 штук. А на настоящем чипе с его сотами выходит 14–17, и глубина схемы (сколько шагов подряд) доходит до 54. Вот как наша коробка выглядит после компиляции под ibm_kingston:

Та же схема после компиляции под чип ibm_kingston: десятки операций вместо пяти

Та же схема после компиляции под чип ibm_kingston: десятки операций вместо пяти

Если присмотреться к правому нижнему углу, кота в итоге измеряют на кубите 36, а в начале там сидел атом. Компилятор по дороге поменял их местами, это и есть та самая пересадка.

Ну и можно прикинуть, сколько всего ошибок набегает. Одна CZ на таком чипе ошибается примерно в 0,3% случаев, чтение одного кубита примерно в 1–2%. 17 операций плюс три чтения дают где-то 8% испорченных коробок. У нас «неправильных» вышло 8,5%, так что прикидка почти совпала с железом.

Можно проверить это и дома: у симулятора есть режим «с шумом», где ошибки задаём сами. Чем больше ошибок, тем больше котят-призраков. Причём сильнее всего на них влияют именно операции, где встречаются два кубита. С настройками, похожими на реальный чип, симулятор выдал почти ту же картину, что и kingston.

Так доказали мы или нет?

Доказали. Только не то, что хотели.

Котят, которых мы ждали, природа не допускает, и идеальный симулятор честно это показал: ноль из тысячи. А те котята, что родились на настоящем процессоре, просто следы того, что железо пока несовершенное.

Зато мы на своей шкуре (ну ладно, на шкуре виртуальных котов) разобрались, как устроена суперпозиция: в ней живут целые истории, и котов из разных историй между собой не смешаешь. А ещё выяснили, что настоящий квантовый компьютер можно пощупать бесплатно. В 90% случаев он ведёт себя как в учебнике, а с остальными 10% сейчас и возятся все, кто такие компьютеры строит.

Эпилог

А одна коробка у меня до сих пор стоит в гараже закрытая.

Пока я её не открываю, котята там и есть, и нет.

Открыть или не открыть — вот в чём вопрос.

Приложение: как повторить

Весь код лежит в репозитории github.com/EstariolGH/schrodinger-kittens: консольная программа cats.py и ноутбук Jupyter с картинками и шумными симуляторами. Там же лежит пошаговая инструкция с самого нуля: как поставить Python, зарегистрироваться в IBM Quantum и запустить котов на настоящем квантовом процессоре.

python cats.py                       # общий атом — котят нет
python cats.py --mode independent    # у каждого свой атом — котята есть
python cats.py --backend ibm         # настоящий квантовый компьютер

Объявляю конкурс в двух номинациях:

  • «Самый шумный»: у кого родится больше всех квантовых котят;

  • «Самый аккуратный»: у кого меньше всех.

Пишите в комментариях, на каком чипе и сколько котят вышло. Мой рекорд: 201 котёнок на 4000 коробок.

P.S. Для самых внимательных

Да, мы в курсе, мы и сами заметили, мы и сами знаем, что вы уже полстатьи над нами посмеиваетесь.

Дыра первая: симметрия. Условие «котята будут, если оба живы» на самом деле несимметричное. Коту достаточно дожить до знакомства, а кошке надо дожить до родов. Если кошка мертва, котят не будет ни при каком коте. Но на самом деле это не важно: судьба котиков всё равно решается в момент открытия коробки.

Так вот: это у нас условность. В нашей коробке прибор проверяет атом ровно один раз, в момент, когда закрывается крышка. Приговор выносится мгновенно и сразу в обоих вариантах: распался — яд коту, не распался — яд кошке. А какой из них окажется настоящим, решится только при открытии. Но до приговора никто ничего не успевает. А дальше котята возможны только в том случае, если оба пережили приговор, и тогда уже неважно, кому сколько надо продержаться.

Квантовый компьютер, кстати, устроен ровно так же: сначала атом решает судьбу котов, и только потом проверяется, родился ли котёнок. Так что к схеме претензий нет, только к биологии. А с биологией в квантовой физике всегда было сложно: ещё Шрёдингер не уточнил, кормили ли его кота.

Дыра вторая: котята, которых мы ждали. А теперь ещё раз посмотрим на выводок с настоящего процессора. 57 котят: папа жив, мамы нет. 63 котёнка: мама жива, папы нет. Да это же ровно то, о чём мы мечтали в самом начале. Пока коробка была закрыта, оба родителя были живы на 50%, успели встретиться, а при открытии один из них, увы, оказался мёртв. Вот он, котёнок, улика налицо.

Почему же мы так легко записали их в призраки? Мы-то, конечно, точно знаем, что это тоже шум. Но знать и доказать — две большие разницы. Как отличить такого котёнка-призрака от настоящего квантового? Кто придумает, пишите в комментариях.

Честное признание. Идея, эксперимент, код и все запуски на IBM мои. А с текстом, картинками и вычиткой помогал Claude. Так что если где-то вам почудился ИИ, вам не почудилось.

View the original on Хабр →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.