Квантовые вычисления

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

Сама модель сводится к выполнению ряда унитарных преобразований векторов в 2n -мерном гильбертовом пространстве, где n — количество кубитов (кубит - список квантовых состояний с некоторыми ограничениями). Таким образом, очень упрощённо, можно сказать, что по своей сути квантовые вычисления заключаются в перемножении матрицы размера 2n x 2n (которая сама ещё должна быть получена как произведение целого набора матриц такого же или меньших размеров) на вектор размера 2n. Эти вычисления, конечно же, можно выполнить и на обычных компьютерах, но сложность такого умножения будет расти экспоненциально в зависимости от количества моделируемых кубитов.  

Реализация квантового компьютера позволит решить проблему экспоненциального роста сложности, при этом такой компьютер будет гибридным — скорее всего, аналоговое квантовое вычислительное устройство будет управляться обычным цифровым компьютером. 

Было бы странным полагать, что квантовые компьютеры, когда они будут реализованы в «железе», будут представлять собой некие устройства, похожие на компьютеры современные. Уже тот принцип, который говорит о недопустимости циклов и возвратов потока управления программой, намекает на то, что квантовый компьютер будет каким-то иным устройством. А есть ещё взаимодействие с пользователем, работа с периферийными устройствами, работа по сети с другими компьютерами — всё это вряд ли возможно будет реализовать в рамках модели квантовых вычислений, да и не будет такой необходимости, поскольку классические компьютеры очень неплохо справляются с этими задачами. 

Скорее всего, все разработанные и реализованные к моменту создания квантового компьютера алгоритмы будут упакованы в некий «Фонд алгоритмов и программ», библиотеку квантовых алгоритмов, которая будет связана с устройством, выполняющим квантовые вычисления. Вполне вероятно, что это будет некий «квантовый сопроцессор», которым управляет обычный процессор при помощи каких-либо хитроумных устройств, которые позволяют выполнять две основные задачи: подготовка необходимых унитарных преобразований для выбранного квантового алгоритма и инициализация входных кубитов. На выходе этого «квантового сопроцессора» бу- дут производиться измерения, а их результат сообщаться основному процессору, производящему вычисления. 

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

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

  • Системные квантовые программисты будут создавать новые изощрённые квантовые алгоритмы для размещения их в библиотеке квантовых алгоритмов и последующего использования в работе всей системы.  
  • Прикладные квантовые программисты будут использовать квантовые алгоритмы на практике, решая при помощи них прикладные задачи, но при этом они должны будут знать, как номенклатуру алгоритмов в библиотеке, так и понимать смысл их работы, чтобы оптимальным образом производить их вызов и использование их результатов в прикладных программах для обычного компьютера.  

Таким образом, программировать само квантовое вычислительное устройство никто не будет; его будет «программировать» классический компьютер — настраивать гейты, связывать их друг с другом, инициализировать кубиты и запускать квантовые вычисления. Как именно это будет реализовано, сейчас пока ещё никто не знает. 

 

26.10.2017









 
архив

подписка