Сегодня всё больше и больше теоретических работ и даже практических разработок появляется в области так называемых квантовых вычислений, то есть новой вычислительной модели, которая основана не на давно известном понятии бита (который, в свою очередь, пришёл к нам из работ Алана Тьюринга и Джона фон Неймана), а на основе кубита, квантового бита.
Квантовый бит — это некая квантовая система, которая до измерения находится в произвольной линейной суперпозиции двух базисных квантовых состояний (то есть, по сути, может принимать бесконечно большое разнообразие возможных значений), а в результате измерения с той или иной вероятностью принимает одно из двух возможных значений. Поэтому он и называется битом, поскольку возможных значений два, но с другой стороны он квантовый, поскольку эти два значений находятся в суперпозиции друг с другом.
Эта вычислительная модель в последнее время привлекает к себе всё больше и больше внимания как учёных, так и инженеров, поскольку её реализация, что называется, в «железе» откроет широчайшие возможности для решения задач, для которых в традиционной вычислительной модели не было вполне эффективных алгоритмов решения. Например, к таким задачам относится задача факторизации заданного числа, то есть поиска списка простых делителей этого числа (на гипотезе о невозможности быстро и эффективно найти разложение числа на простые множители основаны практически все современные методы криптографии). Есть ещё ряд задач такого же плана, решение которых в модели квантовых вычислений является полиномиальным, а не экспоненциальным, как в традиционной модели.
Это делает модель квантовых вычислений крайне интересной областью исследования. Однако, как это обычно бывает, основная масса исследований проводится за рубежом в университетах и исследовательских центрах западных стран. В России если и находятся энтузиасты, то все их работы «плетутся» в хвосте передовых исследований в данном перспективнейшем направлении. Связано это отчасти с тем, что методическая база для обучения специалистов у нас настолько устарела, что говорить о подготовке высококлассных специалистов в этой области просто не приходится.
Энтузиасты пользуются англоязычной литературой, которая часто настолько непроста для понимания просто в силу того, что западная мысль уже далеко ушла вперёд, что нашему исследователю сложно найти и ухватить нить повествования. Небольшое количество переводной литературы не спасает дело. А вот наличие некоторого количества монографий и учебников по квантовым вычислениям на русском языке скорее удручает, чем восхищает. Дело всё в том, что для того, чтобы читать и понимать всю эту литературу на русском языке, необходимо полноценно владеть теорией модели квантовых вычислений. Получается замкнутый круг — научиться негде и не у кого, а для учёбы надо уже всё знать.
В какой-то мере разорвать этот порочный круг призвана планируемая к написанию книга, в которой будет дано самое-самое введение в модель квантовых вычислений. Для её чтения необходимо будет лишь владеть острым умом, желанием научиться и идти дальше в самостоятельном поиске, иметь базовые знания в математике и понимание принципов функционального программирования. Желательно наличие знания языка Haskell, его синтаксиса и операционной семантики. Это поможет понимать примеры, которые будут разработаны для написания книги.
Функциональное программирование как парадигма разработки программного обеспечения самым гармоничным образом легла на модель квантовых вычислений, поскольку понятие «функция» включает в себя понятие «унитарное преобразование», используемое в модели квантовых вычислений. Так что в рамках функционального программирования квантовые алгоритмы выражаются самым естественным образом. Поэтому нет никакого удивления в том, что современное предложение по реализации нового языка программирования Quipper, который используется для выражения квантовых вычислительных схем, полностью основано на языке Haskell.
У модели квантовых вычислений есть одна важная особенность. Разработать квантовый алгоритм — это значит настолько переформатировать себе мозги и «сдвинуть парадигму», что дальше уже просто нельзя. Квантовая механика по своей сути абсолютно контр-интуитивна, и у нас нет никаких эмпирических навыков работы с бесконечномерными гильбертовыми пространствами и траекториями в них. И я считаю, что именно функциональное программирование наиболее близко из других способов программирования к парадигме квантовых вычислений. Расстояние от функционального до квантового программирования несколько короче, чем от любого иного.
Книга будет разбита на пять глав:
-
Наивное описание модели квантовых вычислений.
-
Фреймворк для осуществления квантовых вычислений.
-
Описание языка программирования Quipper.
-
Описание базовых квантовых алгоритмов.
-
Обзор квантовых алгоритмов.
Поскольку литература по рассматриваемому вопросу очень немногочисленна, то я считаю своим долгом произвести более или менее полноценный обзор всего, что имеется на текущий момент на русском языке. В конце книги планируется обзор литературы. Также немаловажным и небезынтересным будет Обзор видеокурсов по квантовым вычислениям и смежным темам, поскольку сегодня со всё большим и большим внедрением в повседневную жизнь новых методов обучения.
К книге будут приложены многочисленные файлы с исходными кодами на языке Haskell, которые планируются к описанию по тексту книги. Надеюсь, что читателю будет интересно разобраться самостоятельно со всеми примерами, которые будут разработаны в процессе написания книги, и приложенные файлы помогут ему в этом.
Я искренне надеюсь, что этот мой скромный труд даст начало новому направлению работы в нашем научном сообществе. Я буду рад всем конструктивным отзывам, комментариям, замечаниям и, особенно, благодарностям моих читателей.