- BrainTools - https://www.braintools.ru -
Игра — один из наиболее универсальных и интересных способов знакомства со сложными концепциями и взаимосвязями. Тема обучающих игр для программистов на Хабре популярна и хорошо разобрана в отдельных статьях (особенно в корпоративных блогах). Я бы отметил работы уважаемой Дарьи @t3chnowolf [1] в блоге компании «МТС», затрагивающие эту тему, в частности, «5 обучающих игр для разработчиков [2]» (почти 29 500 просмотров) и «Обучающие игры для разработчиков: кодим, играя [3]» (более 24 000 просмотров). Какое-то время назад я также хотел попробовать свои силы в этой теме, однако нашёл значительно более увлёкший меня боковой сюжет: игры, помогающие осмыслить квантовые феномены и смоделировать работу квантового компьютера. Наиболее узнаваемые из них — пожалуй, «квантовый сапёр» и «квантовый тетрис». Впрочем, давайте обо всём по порядку.
Непостижимость квантовых эффектов на обыденном уровне сейчас общеизвестна. В начале XX века иррациональность этих явлений при абсолютной точности и просчитываемости квантовых процессов привела к появлению «копенгагенской интерпретации [4]» квантовой механики, которая требует абстрагироваться от осмысления этих явлений и действовать по принципу «заткнись и считай [5]». На квантовой физике основаны многие современные технологии — в частности, квантовая криптография [6], квантовые вычисления и квантовое зондирование [7]. Среди важнейших квантовых феноменов, изучаемых в лаборатории и практически вышедших в продакшен — суперпозиция, запутанность, интерференция, динамическая эволюция [8] квантовых систем и схлопывание (коллапс) квантовой волновой функции при измерении. Важнейшим шагом на пути от квантовой физики к квантовой информатике стало создание кубитов [9] — элементарных частиц, кодирующих информацию на квантовом уровне. Кубиты из фотонов и электронов известны с середины 1990-х, но буквально в течение начала 2020-х также получены кубиты из искусственных атомов, работать с которыми значительно удобнее. Я недавно затрагивал эту тему на Хабре в статье «Из чего удобно делать кубиты. Искусственные атомы для квантовых вычислений [10]». Тем не менее, для работы с современными квантовыми компьютерами требуется глубоко понимать физику и вероятностные процессы, а также архитектуру каждого конкретного квантового чипа. Иными словами, квантовые программы не портируются [11]. Поскольку длительность нахождения кубитов в суперпозиции остаётся очень краткой, требуется в образовательных и исследовательских целях наглядно показывать квантовые феномены. В динамике это удобно делать при помощи компьютерного моделирования или при помощи компьютерных игр, наглядно демонстрирующих квантовые эффекты. Тем интереснее разрабатывать квантовые интерпретации простых игр, такие, которые в оригинале действуют по обычной «классической» логике [12].
Квантовые эффекты тем интереснее моделировать в компьютерных играх, поскольку такие эффекты алогичны с точки зрения [13] обыденного опыта [14], и иллюстрировать их в максимально упрощённом игровом мире гораздо удобнее, чем в реалистичном эксперименте. Квантовые эффекты не укладываются в обыденную картину мира во многом по причине двух эффектов, повсеместно распространённых на микроуровне, но отсутствующих на макроуровне (в физике Ньютона). Это суперпозиция и (де)когерентность.
Суперпозиция квантовых частиц — это возможность находиться одновременно в двух или более взаимоисключающих состояниях до того момента, как квантовая система будет измерена и выйдет из когерентного (самосогласованного) состояния. Суперпозиция часто иллюстрируется при помощи мысленного эксперимента «Кот Шрёдингера [15]», предложенного знаменитым австрийским физиком Эрвином Шрёдингером в 1935 году. Эксперимент многократно разбирали на Хабре, но интересующимся я порекомендую две интересные трактовки — о жизни и смерти кота [16] от уважаемого @SLY_G [17] и о суперпозиции как таковой [18] от уважаемого @MirAleAnu [19] В контексте моей статьи важно, что «игровой» потенциал квантовых эффектов заключается именно в этой множественности состояний, которые сходятся к конкретному варианту в результате измерения или, в более широком смысле, в результате действий игрока. Основные составляющие «геймплея» в квантовых играх — это случайность [20] и вероятность.
Квантовые игры развиваются и усложняются с увеличением количества кубитов и с постепенным развитием квантовых алгоритмов. Так, в 2017 году появилось первое общедоступное квантовое вычислительное устройство IBM Quantum [21], под которое также выпустили инструментарий для разработки программ Project Q [22]. Первая игра, написанная для этой платформы, называлась «Кот-Коробка-Ножницы» и представляла собой квантовую адаптацию игры «Камень-Ножницы-Бумага». Ход игрока определяется случайным образом, а источником случайности является квантовый процесс. Выигрышная стратегия в ней заключается в том, чтобы нивелировать элемент случайности (шум) в ходах соперника. Вскоре последовала вторая игра для этой платформы — «Квантовый морской бой» (Quantum Battleship). Она задумывалась как многопользовательская и исследовательская, была призвана изучить, как происходит декогеренция между двумя и более кубитами, и как на это влияет зашумленность. Обе эти игры управлялись через командную строку и были не слишком интересны, так как долго обсчитывался каждый ход.
Вот [23] пример скриншота из игры «Квантовый морской бой»

В 2017 году при помощи движка Unity также был написан «Квантовый пасьянс» (Quantum Solitaire) — первая квантовая игра с графическим интерфейсом и полноценным игровым полем.

Квантовый компьютер заранее рассчитывает и генерирует данные для партии в эту игру, благодаря чему она работает быстрее вышеупомянутых игр-прототипов и обладает настоящей игровой отзывчивостью. Квантовый пасьянс можно считать гибридной игрой, так как случайные карты в нём выбрасывает классический алгоритм, но значения вероятности для него рассчитаны на квантовом компьютере. Соответственно, геймплей квантового пасьянса регулируется квантовыми законами. Задача игрока — разложить карты на две колоды, чёрную и красную, воспользовавшись как можно меньшим количеством ходов. Этот пример затрагивает огромную смежную область [24] — ускорение искусственного интеллекта [25] при помощи квантовых вычислений.
Уже в 2018 году компания IBM и Базельский университет разработали игру «Hello Quantum [26]», в которой квантовые операции иллюстрируются путём сборки паззла. Вот как выглядит игровое поле этой игры, иллюстрирующее работу квантовых гейтов:

Все эти игры являются образовательными и иллюстративными. Строго говоря — это научные проекты, не предназначенные для коммерческого использования, во многом потому, что средний геймер не понимает квантовую механику [27] и не станет изучать её для того, чтобы скачать необычную игру или просто погонять её в браузере. Поэтому наиболее интересно и доходчиво будут выглядеть квантовые вариации тех игр, логика которых отпечаталась на подкорке и известна всем, чьё детство и взросление совпало с ранним периодом развития видеоигр. Рассмотрим два примера такого рода.

История игры «Сапёр» восходит [28] к 1983 году, когда Иэн Эндрю, ранее увлекавшийся программированием игр наподобие пинбола, изобрёл игру «Mines Out», логика которой напоминает прото-сапёр.
Напомню, что в исходном положении «Сапёра» получаем однородное прямоугольное игровое поле в клеточку, где некоторые из клеток заминированы. Цель — определить положение мин на поле, щелкая по клеткам мышью, и не подорваться при этом ни на одной из мин. Квантовый сапёр, например, описанный в этой научной статье [29] — это суперпозиция нескольких игровых полей одинакового размера, на каждом из которых заложено одинаковое количество мин, но расположены они на разных полях по-разному. Цель игры — выяснить положение мин на всех полях, то есть, определить квантовое состояние всей системы [30], не подрываясь при этом на минах. Для этого игрок может:
Измерить состояние клетки классическим образом
Измерить состояние клетки, не взаимодействуя с ней
Измерить, насколько одна клетка запутана с другой
Запутанность клеток роднит квантовый сапёр с классическим в таком отношении: как только удаётся точно выяснить, есть ли мина в конкретной клетке, сразу же становится известно, заминированы ли те клетки, которые с ней запутаны. Игрок подрывается на мине, измерив заминированную клетку первым или вторым способом.
В другом варианте квантового сапёра, например, здесь [31], в суперпозиции находится одно игровое поле, и наличие мины в конкретной клетке определяется путём вероятностного измерения. Перед началом партии вы указываете размер поля, количество полей и количество мин на поле. Компьютер рассеивает по полям заданное количество мин и вводит все поля в состояние суперпозиции. Например, если в суперпозиции находятся четыре игровых поля, и на трёх из них данная клетка заминирована, то вероятность подорваться на ней составляет 0,75. В такой игре пользователь может выполнить измерение одного из трёх видов: схлопывающее (коллапсирующее волновую функцию), измерение без взаимодействия и энтропийное измерение.
Схлопывающее измерение напоминает ход в классическом сапёре. При таком измерении вычисляется, с какой вероятностью в данной клетке окажется мина, и именно с такой вероятностью мина подрывается. Если подрыва не происходит, то вся совокупность полей схлопывается до подмножества полей, где в данной клетке мина отсутствует, все остальные поля исчезают. Затем выводится среднее количество мин, заложенных рядом со вскрытой клеткой на всех оставшихся полях.
Измерение без взаимодействия: этот ход безопаснее, чем схлопывающее измерение, но, в то же время, менее информативный. Вычисляется вероятность присутствия мины в клетке, это значение делится на количество запутанных полей, а результат характеризует вероятность подрыва.
Энтропийное измерение характеризует неопределённость того состояния, в котором находится игровое поле. При таком измерении вычисляется два значения: с какой вероятностью поле будет заминировано, и с какой — не будет. 1 – точно есть мина, 0 – точно нет мины. Далее оба значения возводятся в квадрат, суммируются, и эта сумма вычитается из единицы. Таким образом, чем ниже энтропия, тем больше полей в суперпозиции окажутся в одинаковом состоянии, хотя неизвестно, в каком именно. При нулевой энтропии все поля находятся в одном расстоянии. При энтропии 0,5 все поля делятся на две группы, и в каждой группе состояние всех полей одинаково — и так далее.
Соответственно, квантовый сапёр оказался удивительно простой моделью, которой можно проиллюстрировать многие квантовомеханические феномены в связке с классическими. Он позволяет сравнить классические и квантовые трактовки вероятности, случайности, измерений, а также демонстрирует, как различные виды измерений влияют на всю модель. Игра в квантовый сапёр по определению вероятностная, но она помогает интуитивно усвоить суть суперпозиции и запутанности, а значит и понять устройство квантового компьютера.
В 2021 году в Дармутском колледже был спроектирован квантовый вариант игры «Тетрис», код и документация которой выложены в этом гитхабе [32]. Игровой процесс выглядит так:

Квантовый тетрис позволяет исследовать важнейший фактор, тормозящий развитие квантовых компьютеров и не учитываемый в рассмотренном выше квантовом сапёре — шум. В данном случае «шум» противопоставляется «сигналу», то есть, полезной работе квантового компьютера. В современных архитектурах квантовых компьютеров большинство кубитов занято подавлением шума и исправлением возникающих из-за него ошибок, а меньшинство — полезной работой. Ранее на Хабре феномен квантового шума исследовал уважаемый Сергей Фролов @mrserfr в статье «Квантовые компьютеры для чайников [33]». Шум при работе квантового компьютера возникает из-за того, что квантовые флуктуации отличаются высокой степенью случайности (randomness). Квантовая реализация «Тетриса» позволяет исследовать истинную случайность и природу квантового шума.
Тетрис позволяет не только визуализировать квантовую случайность, но и продемонстрировать, чем она отличается от «классической случайности» — генерации псевдослучайных чисел. Играя в классический тетрис и зная, в соответствии с какой функцией был посеян набор фигур для партии, можно предсказать, какая фигура появится следующей. В квантовом тетрисе это невозможно, поскольку квантовый компьютер обеспечивает подлинную случайность.
Такая квантовая случайность приводит к тому, что при вычислениях квантовый компьютер даёт множество ложных результатов. Кубиты могут оставаться в суперпозиции в течение считанных наносекунд, поэтому и важно при вычислениях минимизировать количество шума и операций на его устранение. Чем длиннее квантовая схема, тем вероятнее, что она даст неверный результат из-за того, что в вычисления вмешается шум.
Исследователи из Дармутского колледжа Тревор Глазго, Оливер Леви, Генри Хилтон и Рафаэль Брентли догадались, что именно на основе шума можно написать квантовый аналог тетриса.
Квантовый компьютер программируется так, чтобы выводить на экран 7 традиционных фигур тетриса.

Эти семь фигур — «сигнал» квантового компьютера. «Шум» квантового компьютера порождает фигуры, не относящиеся к этому набору, то есть, фигуры неправильной формы, укладывать которые гораздо сложнее. В игре Дармутского колледжа такие неправильные фигуры обозначаются красным цветом.
Чем дольше идёт игра, тем более длинную квантовую схему моделирует игра, тем больше «шумовых» фигур появляется в игре, и тем более неправильную форму они имеют. Точно так же, чем дольше работает квантовый компьютер, тем больше шума он генерирует, и тем вероятнее, что данная итерация вычислений оборвётся.
В квантовом тетрисе кроме строительных блоков существует ещё две разновидности фигур, на которых я остановлюсь подробнее.
Пока квантовый компьютер вычисляет, его кубиты находятся в суперпозиции. Суперпозиция — одна из дополнительных фигур квантового тетриса. Такая фигура одновременно существует в двух состояниях: 0 и 1. Они летят через игровое поле в таком состоянии, пока игрок не попытается их «пронаблюдать» (измерить). В результате измерения каждая Суперпозиция может превратиться в одну из двух строительных фигур тетриса, которые в неё заложил квантовый компьютер. Авторы сравнивают Суперпозицию в подброшенную монетку, которая переворачивается, падая, и мы не можем уверенно предсказать, на решку или на орла она упадёт. Но в случае с квантовым тетрисом результирующая форма Суперпозиции определяется не по классической вероятности 50/50, а в соответствии с истинной квантовой случайностью, то есть, совершенно непредсказуемо.
Запутанность — это явление квантовой связи между двумя квантовыми частицами (в нашем случае — кубитами), при сохранении которой по свойствам одного кубита можно безошибочно определить некоторые свойства другого. Запутанные частицы всегда противоположны по свойствам друг другу. Так, если у одной запутанной частицы измерен нижний спин [34], можно быть на 100% уверенным, что запутанная с ней частица имеет верхний спин.
В описываемой игре две фигуры Суперпозиции, сблизившись друг с другом, могут превратиться в фигуру Запутанности. Падая, фигуры Запутанности зеркально повторяют [35] форму и движения друг друга по разным краям экрана. При измерении одной из фигур Запутанности вторая запутанная с ней фигура мгновенно превращается в противоположность измеренной фигуры (по цвету и форме).
Квантовые гейты соответствуют логическим вентилям [36], используемым в классических вычислениях – в частности, И, ИЛИ, НЕ. В классических вычислениях вентили сочленяют битовые операции, выстраивая из них логику.

Классические логические вентили оперируют только значениями 0 или 1. Квантовые вентили (чаще именуемые «гейтами»), в свою очередь, изменяют вероятность, с которой кубит может результировать в 0 или 1. В квантовом тетрисе реализованы два гейта: X и гейт Адамара (H). Эти и другие квантовые гейты доступно разобраны на Хабре в статье уважаемого @java_prog [37] в статье «Квантовые компьютеры. С точки зрения традиционного программиста-математика. Часть 2 [38]». В квантовом тетрисе, достроив некоторое количество рядов, вы получаете в качестве очередной фигуры гейт X или H. Гейт X меняет две вероятности на обратные — соотношение 90 на 10 превращается в 10 на 90. Гейт H действует ещё более экстремально: меняет вероятность с 51/49 на 99/1.
Разумеется, в этой статье я смог лишь слегка коснуться темы моделирования квантовых феноменов через разработку исследовательских компьютерных игр. Надеюсь, вы смогли составить о них впечатление [39] и даже попробуете в них поиграть. Более подробная подборка квантовых игр рассматривается в статье [40] «Quantum Games and Interactive Tools for Quantum Technologies Outreach and Education», среди авторов которой — легендарный доктор Джеймс Вуттон, ведущий увлекательный блог [41] о квантовых вычислениях на Medium. В частности, в этом блоге он разбирает ещё одну игру, предназначенную для оценки устойчивости квантовых схем [42], а ещё рассказывает об использовании квантовых вероятностей для процедурной генерации игровых миров [43]. Приятного вам погружения в тему. Заходите в комментарии.
Автор: OlegSivchenko
Источник [44]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/29376
URLs in this post:
[1] @t3chnowolf: https://www.braintools.ru/users/t3chnowolf
[2] 5 обучающих игр для разработчиков: https://habr.com/ru/companies/ru_mts/articles/826330/
[3] Обучающие игры для разработчиков: кодим, играя: https://habr.com/ru/companies/ru_mts/articles/794168/
[4] копенгагенской интерпретации: https://habr.com/ru/articles/987084/
[5] заткнись и считай: https://arxiv.org/pdf/0709.4024
[6] квантовая криптография: https://habr.com/ru/articles/530362/
[7] квантовое зондирование: https://ict.moscow/analytics/quantum-technology-monitor-2024/
[8] эволюция: http://www.braintools.ru/article/7702
[9] кубитов: https://ru.wikipedia.org/wiki/%D0%9A%D1%83%D0%B1%D0%B8%D1%82
[10] Из чего удобно делать кубиты. Искусственные атомы для квантовых вычислений: https://habr.com/ru/articles/963348/
[11] не портируются: https://jackkrupansky.medium.com/the-greatest-challenges-for-quantum-computing-are-hardware-and-algorithms-c61061fa1210
[12] логике: http://www.braintools.ru/article/7640
[13] зрения: http://www.braintools.ru/article/6238
[14] опыта: http://www.braintools.ru/article/6952
[15] Кот Шрёдингера: https://vc.ru/money/1650600-kot-shredingera-prostymi-slovami-dlya-chainikov-paradoks-teoriya-smysl-zhiv-on-ili-net
[16] жизни и смерти кота: https://habr.com/ru/articles/979776/
[17] @SLY_G: https://www.braintools.ru/users/sly_g
[18] суперпозиции как таковой: https://habr.com/ru/articles/474638/
[19] @MirAleAnu: https://www.braintools.ru/users/miraleanu
[20] случайность: http://www.braintools.ru/article/6560
[21] IBM Quantum: https://www.nature.com/articles/nature.2017.21585
[22] Project Q: https://medium.com/ibmresearch/qubits-zombies-meet-the-scientist-behind-the-worlds-first-video-game-for-quantum-computers-bbcde5638551
[23] Вот: https://decodoku.medium.com/quantum-battleships-the-first-multiplayer-game-for-a-quantum-computer-e4d600ccb3f3
[24] смежную область: https://medium.com/@deltorobarba/can-quantum-computing-accelerate-generative-ai-b1df36398ac5
[25] интеллекта: http://www.braintools.ru/article/7605
[26] Hello Quantum: https://medium.com/qiskit/hello-quantum-2c1c00fe830c
[27] не понимает квантовую механику: https://www.ixbt.com/live/science/na-samom-dele-nikto-ne-ponimaet-kvantovuyu-mehaniku-tak-kak-uchenye-umudryayutsya-ee-primenyat.html
[28] восходит: https://www.minesweeper-online.org/about/history-minesweeper/
[29] описанный в этой научной статье: https://sci-hub.ru/10.1088/0031-9120/45/4/008
[30] определить квантовое состояние всей системы: https://habr.com/ru/articles/507160/
[31] здесь: https://adonisdevs.itch.io/quantum-minesweeper
[32] в этом гитхабе: https://github.com/dartmouth-cs98/Quantum-Tetris
[33] Квантовые компьютеры для чайников: https://habr.com/ru/articles/902472/
[34] нижний спин: https://habr.com/ru/articles/1026794/
[35] повторяют: http://www.braintools.ru/article/4012
[36] логическим вентилям: https://habr.com/ru/companies/timeweb/articles/653159/
[37] @java_prog: https://www.braintools.ru/users/java_prog
[38] Квантовые компьютеры. С точки зрения традиционного программиста-математика. Часть 2: https://habr.com/ru/articles/747208/
[39] впечатление: http://www.braintools.ru/article/2012
[40] статье: https://pure.au.dk/ws/files/274578191/2202.07756v2.pdf
[41] увлекательный блог: https://decodoku.medium.com/
[42] оценки устойчивости квантовых схем: https://decodoku.medium.com/understanding-quantum-computers-through-a-simple-puzzle-game-a290dde89fb2
[43] процедурной генерации игровых миров: https://medium.com/qiskit/creating-infinite-worlds-with-quantum-computing-5e998e6d21c2
[44] Источник: https://habr.com/ru/articles/1027898/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1027898
Нажмите здесь для печати.