Я не из физики, и мне очень интересно заниматься квантовыми вычислениями, особенно их программированием. Любое руководство по началу работы будет очень полезным.
Я не из физики, и мне очень интересно заниматься квантовыми вычислениями, особенно их программированием. Любое руководство по началу работы будет очень полезным.
Ответы:
Вы могли бы начать с введения в квантовые компьютеры, такого как этот, из Voxxed Days Vienna 2018 - оно предназначено для людей с опытом программирования, но с минимальными или нулевыми знаниями в квантовой механике. После этого вы можете ознакомиться с руководствами в IBM Quantum Experience или руководствами для Microsoft Quantum Development Kit .
Кроме того, на YouTube есть множество видео, например, которые могут помочь вам глубже понять тему.
Я думаю, что квантовые программисты не обязательно должны знать о квантовой физике и линейной алгебре. Это, безусловно, вещи, которые помогут расширить знания квантовых программистов, но их не следует рассматривать как предпосылки.
Тем не менее, большинство ресурсов, чтобы помочь начинающему квантовому программисту, начинаются с предположения о линейной алгебре. Те, которые в основном не фокусируются на QISKit, SDK для квантового устройства IBM (и некоторые из них были написаны мной).
Самая простая программа, которую вы можете придумать, это «Hello World». Как вы делаете это для квантовых компьютеров? Мое предложение - это суперпозиция смайликов .
Когда вы выйдете за рамки «Hello World» в квантовом программировании, вам захочется сделать что-то более сложное. Часто люди делают простые игры. Итак, давайте сделаем это с квантовым компьютером. Я сделал линкоры .
Вы найдете эти и многие другие примеры квантового программирования в руководстве по QISKit . Я думаю, что это, пожалуй, лучшее место для новых квантовых программистов, чтобы посмотреть, что можно сделать и как это сделать.
pyQuil - это библиотека квантового программирования с открытым исходным кодом на Python. Документация включает в себя практическое введение в квантовые вычисления, где вы учитесь программированию. Это не предполагает никакого физического фона.
Вот несколько ссылок на основные темы:
Нет необходимости полностью понимать квантовую механику, чтобы понять теорию, лежащую в основе КК. Я математик, бакалавр / программист, и я читал эту тему, а также прошел старый курс edX QC (к сожалению, он недоступен, но есть и другие). Я думаю, что могу сказать, что понимаю суть КК, но почти ничего не знаю о квантовой механике.
Ключевым моментом является то, что в квантовых вычислениях используется в основном линейная алгебра, основанная на математике, которую обычно преподают в бакалавриате по инженерии и информатике. Сравните это с реальной квантовой механикой, которая использует бесконечномерные пространства (или функциональный анализ, если хотите).
Если вы чувствуете себя комфортно в этих математических темах для студентов, вы можете проверить Квантовая Механика Сасскинда : Теоретический Минимум - на самом деле это не «настоящая» квантовая механика, это в основном то, что полезно для КК. Кстати, вся серия «Теоретический минимум» предназначена для людей, которые знают математику (например, программисты или инженеры) и хотели бы узнать больше о физике. Есть также много онлайн-курсов, например, есть новые курсы по edX, но я не делал ни одного из них, поэтому не могу рекомендовать один.
Если вы хотите выйти за рамки изучения того, как писать квантовые схемы в различных средах квантового программирования, таких как Q # , pyQuil и QISKit , я настоятельно рекомендую эту недавнюю работу под названием « Реализация квантового алгоритма для начинающих» из Лос-Аламосской национальной лаборатории. Это отличный ресурс для понимания того, как компилировать и реализовывать различные квантовые алгоритмы, а также их оракулы и специальные подпрограммы в виде квантовых схем с помощью IBM Q Experience. Я бы порекомендовал вам реализовать их в любой из вышеупомянутых программных платформ и по мере необходимости изучать мельчайшие детали.
Квантовые компьютеры программируются (представляя развивающиеся языки программирования) так называемые квантовые схемы. Это последовательность квантовых элементов плюс информация о том, на какие квантовые биты (кубиты) они действуют.
Единственное, что вам действительно нужно знать о квантовых воротах, - это то, что они представляют вращения (в пространстве более высокого измерения, так называемое пространство Гильберта). Следовательно, они обратимы: квантовые компьютеры запрограммированы с обратимой логикой.
Что вращают квантовые ворота? Это гиперсферы, на поверхности которых живут состояния кубита. Каждое состояние вычислительного базиса ( , , ,для 2-кубитной системы в обычной записи Дирака) получает комплексное число как коэффициент или как так называемую амплитуду вероятности. Базисные векторы ортогональны и охватывают гильбертово пространство состояния, амплитуды вероятности в нем можно рассматривать как координаты. Это картина, на которой квантовые ворота влияют на вращение. Вы обнаружите, что физики часто используют другую картину, сферу Блоха, для систем с одним кубитом, в которых квантовые вентили также вызывают вращения (но иногда на больший угол или на угол, который вообще отсутствует на этой картине).
Вся традиционная логика может быть реализована квантовым компьютером, сначала выразив ее в обратимой логике (которая может потребовать вспомогательных битов). Классический вентиль NOT соответствует квантовому вентилю X, но в отличие от классического случая, когда единственными 1-битными обратимыми вентилями являются идентификационные данные и вентиль NOT, квантовый компьютер имеет четыре соответствующих вентиля (X, Y, Z согласно поворотам на Блох сфера, плюс личность). Кроме того, вы можете иметь повороты, которые вращаются только на долю того, насколько далеко вращаются эти ворота; у некоторых особенно интересных есть особые имена и сокращения, такие как ворота Адамара или ворота H, которые создают равную суперпозицию всех состояний.
К сожалению, первые инженеры квантового программного обеспечения, вероятно, должны будут немного знать о квантовом компьютерном оборудовании, которое они будут использовать: из-за произвольно и непрерывно выбираемого угла эффективного вращения квантового затвора существует своего рода аналоговый элемент для квантовых компьютеров, который обязательно создает ошибки (и физические квантовые компьютеры имеют даже больше источников ошибок, чем просто это). Есть способ справиться с этим, квантовая коррекция ошибок, которая дискретизирует ошибки и корректирует наиболее вероятные их дискретизации для достижения (в идеале) сколь угодно сложных вычислений со связанными ошибками. Но оптимизация, скорее всего, будет означать, что один квантовый компьютер с одним выбором квантовой коррекции ошибок будет более подходящим для определенных квантовых элементов или даже алгоритмов, чем другие,