Книга «Танец с кубитами. Как на самом деле работают квантовые вычисления» |
||
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2022-05-05 22:01 Привет, Хаброжители! От создателя IBM Q. Квантовые вычисления заставляют нас изменить отношение к компьютерам. Кубиты способны решать задачи, которые еще совсем недавно казались неразрешимыми. Вы узнаете о принципиальных различиях между квантовыми и классическими вычислениями, вспомните матанализ, чтобы разобраться с такими понятиями, как суперпозиция, запутанность и интерференция, от алгоритмов и схем перейдете к физическим и техническим идеям, лежащим в основе создания железа для квантовых вычислений. Загляните в будущее и узнайте, как развитие технологий повлияет на нашу жизнь! Прежде чем мы попробуем разобраться в том, как работают квантовые вычисления, придется обратиться к классике. И это нужно не только для сравнения. Я полагаю, что будущее — за гибридами классических и квантовых компьютеров. Лучший способ усвоить что-то — начать с базовых принципов, а затем двигаться по восходящей. Это позволит вам самостоятельно рассуждать об осваиваемой теме, не полагаясь на механическое запоминание или ошибочные аналогии. Симуляция Можно ли симулировать квантовый компьютер на классическом компьютере? Если бы мы могли это сделать, то «квантовые вычисления» были бы всего лишь еще одним методом кодирования программного обеспечения на наших современных машинах. Кубиты Когда вы задумались о создании квантово-вычислительного симулятора, первое, что вам нужно решить, — это то, как вы представляете кубиты. С помощью того или иного варианта вы можете построить общую модель либо ее конкретизировать. Мы идем по пути общего случая. После того как вы закончите этот раздел, вы можете вернуться назад и подумать о том, как каждая из взаимосвязанных частей может быть оптимизирована вместе и по отдельности. а сумма квадратов амплитуд вероятностей будет равна 1,0000000000000002. Вам необходимо отслеживать и, возможно, контролировать эту ошибку, если вы используете много кубитов или вентилей. В случае очень малого симулятора вы должны рассмотреть возможность использования библиотеки символической математики, такой как SymPy [28]. Затраты времени и памяти могут оказаться слишком большими для вашего варианта использования. Кроме того, символические выражения могут быстро усложняться и запутываться, поэтому способность вашей системы упрощать эти выражения очень важна. Если у вас есть n-битный квантовый регистр, то вам нужно представить вектор 2^n комплексных чисел. Если n = 10, то список из 1024 комплексных чисел использует 9024 байт. Для 20 кубитов это 8 697 464 байт, или приблизительно 8,3 Мбайт. Добавив всего лишь два кубита, вы получите 35 746 776, или 34 Мбайт. Подумайте об этом: для одиночного состояния квантового регистра с 22 кубитами вам потребуется 34 Мбайт для его представления. Указанная величина становится экспоненциально больше и хуже, когда мы добавляем больше кубитов. Мы получаем более гигабайта в расчете на состояние при 27 кубитах. Растет не только объем памяти, но и время, необходимое для манипулирования всеми этими значениями. Ваш выбор алгоритмов на каждом уровне имеет решающее значение. Дело обстоит еще хуже: размер матрицы для вентиля равен квадрату числа элементов в кете кубитного состояния. Вы можете понизить эти цифры при помощи оптимизации, но экспоненциальный характер роста все равно вас догонит. Возможно, у вас получится сделать еще несколько кубитов, но симуляция в конечном итоге выдохнется. Один из способов ее осуществить — использовать числа с плавающей запятой одинарной точности вместо двойной точности. Это ненадолго сэкономит память. Мое предположение: общецелевая квантово-вычичлительная симуляция станет слишком большой и непрактичной по времени даже для суперкомпьютеров где-то на 40-м кубите. Если у вас очень специфическая задача, которую вы пытаетесь смоделировать, то вы можете упростить представляющие схему математические формулы. Точно так же, как выражение sin^2 (x) + cos^2 (x) сводится к гораздо более простой единице, математика для вашей схемы может стать меньше. И даже в этом случае, по моему мнению, вполне вероятно, что специализированная симуляция будет ограничена примерно 70–80 кубитами. Симуляция хорошо подходит для экспериментов, обучения и отладки части квантовой схемы. Как только у нас появятся мощные и полезные настоящие квантовые компьютеры объемом более 50 кубитов или около того, потребность в симуляторах уменьшится — вероятно, вместе с их коммерческим рынком. Рекомендуется использовать разреженное представление кубитов и кет-векторов. Действительно ли вам нужно 2^50 = 1 125 899 906 842 624 числа для представления состояния |0?^?50? В конце концов, там есть только две части значимой информации, 0 и 50. Добавьте немного накладных расходов для представления разреженного кета, и вы сможете уместить все это в несколько байтов. Вентили Если кубиты — это векторы, то вентили — это матрицы. Наиболее прямолинейным способом реализации многопроводных схем является конструирование матрицы тензорного произведения для двух вентилей. Эти матрицы становятся довольно крупными: если у вас n кубитов, то ваши матрицы будут иметь размер 2^n ? 2^n. Вычислим вероятности, соответствующие каждому стандартному базисному кету. Если, Еще раз напомню, что получение, например, E7 означает, что при измерении мы получаем результат |7?. Схемы Для того чтобы симулировать схему, вам нужно каким-то образом ее представить. Подумайте о проводной модели, а затем о горизонтальных шагах слева направо, где вы размещаете и выполняете вентили. Кодирование симулятора Если вы решите закодировать квантовый симулятор, то вот несколько советов. Дополнительные сведения Кот А теперь поговорим о знаменитой дискуссии, которая развернулась в 1930-х годах. Мы воспользуемся ею как примером симулирования квантовой физики с помощью квантовых вычислений. Вопрос 11.9.1 Какое отношение Копенгаген имеет к квантовой механике? Настройка В большой стальной ящик, в котором предостаточно воздуха, чтобы кот мог дышать в течение нескольких часов, мы помещаем небольшое количество радиоактивного материала, который имеет 0,5 вероятности распада одного атома и испускает одну частицу в час. Ожидание Пока время идет свои чередом, мы задаемся вопросом о состоянии кота. Все ли у него хорошо, или он уже отошел в мир иной? Распался ли атом и привело ли это в действие молоток? Схема Рассмотрим вот эту простую схему с двумя вентилями CNOT: Для q0 входное состояние |0? означает, что в момент выполнения схемы ни один атом не распадается, а |1? — что испускается частица. q1 устанавливается в начальное состояние |0?, но инвертируется в |1?, если атом распадается. Это приводит к тому, что молоток разбивает флакон, и цианид попадает в воздух.Для q2 кот начинает в состоянии |живой? = |1?. Конечное состояние кота может переключиться в |мертвый? = |0?, только если высвобождается яд. Вопрос 11.9.2 Поэкспериментируйте с состояниями Белла, чтобы ввести запутанность. Узнали ли вы что-нибудь новое о компонентах этого эксперимента? Источник: habr.com Комментарии: |
|