Языки программирования для квантового компьютера
К настоящему времени уже появились первые языки программирования для квантового компьютера, в частности, QCL (Quantum Computation Language). Как пишут разработчики языка в документации[131], квантовые вычисления сейчас все еще рассматривают как специальную дисциплину в рамках теоретической физики, несмотря на то что она имеет много общего с классической информатикой. Одна из причин того, что сообщество программистов медленно принимает квантовые вычисления — запутывающее разнообразие формализма (дираковские обозначения, матрицы плотности, гейты, операторы и т. д.). Все эти теоретические инструменты не имеют ничего общего с классическими языками программирования, а изложение самих основ квантовых вычислений часто слишком усложнено. В результате программисты испытывают трудности при моделировании квантовых логических операций знакомыми им средствами. QCL пытается восполнить этот пробел: это архитектурно независимый язык программирования высокого уровня для квантовых компьютеров с синтаксисом, заимствованным от таких классических языков, как C или Паскаль. Этот синтез теории квантовых вычислений и обычных языков программирования обеспечивает моделирование и полное выполнение квантовых алгоритмов (включая классические компоненты) в одном совместимом формализме.
По аналогии с классической машиной Тьюринга[132], в квантовых вычислениях рассматривается квантовая машина Тьюринга. Классическая (булева) логика обобщается квантовыми гейтами, а квантовым унитарным операторам ставятся в соответствие частично рекурсивные функции.
Очевидно, что моделирование квантового компьютера на традиционном классическом компьютере — неразрешимая проблема. Требуемые ресурсы растут по экспоненте с количеством квантовых регистров памяти при моделировании. Операции даже с несколькими десятками кубитов выходят за пределы возможностей любого самого мощного суперкомпьютера, а добавление одного нового кубита каждый раз удваивает необходимые ресурсы. Поэтому естественно, что на QCL можно пока программировать только очень «маленькие» квантовые компьютеры. Но и этого достаточно, чтобы апробировать основные алгоритмы квантовых вычислений и отработать их прежде, чем появится возможность их применения на полноценных квантовых компьютерах.
Первый квантовый компьютер будет, вероятно, состоять из некоего экзотического «железа», которое хранит квантовые состояния и манипулирует ими. Его «жизнь» станут поддерживать аппаратные средства окружения, которые обеспечат его работоспособность и дадут пользователю разумный интерфейс для «общения» и программирования в некой среде. QCL моделирует такую программную среду, предоставляя классической программной структуре квантовые типы данных и специальные функции, позволяющие выполнить операции над ними.
В квантовом программировании уже развиваются и отдельные направления, например, работа со звуковыми сигналами. И чтобы дать вам, уважаемые читатели, небольшой отдых после восприятия серьезной информации, приведу в заключение раздела сообщение на эту тему из бульварной прессы[133].
«Группа ученых из Французского центра национальных научных исследований разработала новый метод компрессии звука, который можно будет использовать в квантовых компьютерах», — сообщает газета «News Factor».
Джей Вон Ли, а также его коллеги Дмитрий и Алексей Шепелянские утверждают, что «классические методы анализа аудио не применимы к квантовым сигналам». И подчеркивают при этом: «На данном этапе очень важно найти метод, который удовлетворял бы новым требованиям квантовой компьютерной техники».
Первые результаты уже достигнуты. В первом эксперименте удалось воспроизвести фразу приветствия компьютера HAL из знаменитой «Космической Одиссеи 2001 года» Артура Кларка («Good afternoon, gentlemen. I am a HAL 9000 computer. I became operational at the H. A. L. lab in Urbana, Illinois, on the 12th of January»). По словам исследователей, полученные ими в результате расчетов данные демонстрируют, что звуковые сигналы, сохраненные в квантовой памяти, могут свободно распознаваться настоящими квантовыми компьютерами.
Как говорит Дмитрий Шепелянский, 50-кубитный квантовый компьютер способен вместить в себя информацию, превосходящую по объему ту, что хранят сейчас все современные суперкомпьютеры вместе взятые.
Объясняя теорию кодирования звука в квантовых компьютерах, Дмитрий Шепелянский отметил, что сгенерированный ими голос HAL состоял из 18 кубитов и являл собой «волновую функцию квантового компьютера, которая была „записана“ в память квантового регистра, сформированного кубитами».
Разработанный группой Шепелянского метод «квантового преобразования Фурье» очень близок по принципу своего действия к кодированию обычного формата mp3 — «быстрому преобразованию Фурье». Ученым удалось произвести числовое моделирование этого процесса, что позволило получить оптимальный алгоритм декодирования зашифрованного звукового сигнала в квантовой технике и соответственно добиться оптимального звучания восстановленного сигнала.