Компания Microsoft расширила набор инструментов Quantum Development Kit и открыла код дополнений для редакторов Visual Studio и VS Code. Теперь в этих редакторах можно комфортно программировать на Q# – языке для квантовых компьютеров.
Что вошло в обновление
Свежая версия Quantum Development Kit (QDK) включает все необходимое для старта разработки на Q#:
- инструмент командной строки;
- компилятор для уникального языка программирования;
- обработчик LanguageServer.
В набор включили дополнения для Visual Studio и VS Code. Если их загрузить и активировать, то разрабатывать приложения для квантовых вычислений вы сможете непосредственно в популярных редакторах кода Microsoft. Первая версия QDK вышла в конце 2017 года. Работать с ней можно было только из Windows. Позднее создатели добавили поддержку Linux и macOS.
Чем интересен Q#
Q# – предметно-ориентированный язык программирования. Он создан для квантовых вычислений, одно из первых применений Q# – решение задачи скрытого шифра. В командах Q# можно выразить квантовые алгоритмы. Квантовые алгоритмы выполняются на квантовых компьютерах, существующих лишь в виде экспериментов, а Q# позволяет симулировать эти вычисления.
Симулятор вычислений на квантовом компьютере – основа QDK. Таким образом, Q# делает квантовое программирование доступным всем желающим. Чтобы вызвать квантовый симулятор в QDK, используется .NET Framework. Он передает классические входные данные и забирает из него результат (также в классической форме).
Синтаксис Q# похож на C# и F#. Для функций есть ключевое слово function, для операторов работы с кубитами – operation. При этом многострочные комментарии создавать нельзя, а вместо обработки ошибок следует использовать проверку. Документировать код можно в Markdown.
Как происходят квантовые вычисления
Квантовый алгоритм задает последовательность гейтов или вентилей. Это унитарные операции, которые нужно совершить над определенными кубитами. Кубит – это минимальная ячейка памяти квантового компьютера. Бит, только квантовый. У кубита есть два собственных состояния – 0 и 1, как у традиционного бита. Есть и третье состояние – суперпозиция первых двух. Ее выражают как А(0) + В(1), причем А и В – комплексные числа, а сумма их квадратов равна 1.
В результате выполнения квантовых вычислений нельзя получить точный и конкретный ответ – только вероятность. Но если немного увеличить число операций в квантовом алгоритме, можно максимально приблизить вероятность правильного ответа к 1. Правильно составленный квантовый алгоритм и квантовый компьютер, для которого он создан, ускоряют выполнение классических вычислений. Это потенциальный прорыв для науки и техники.
Квантовый симулятор в QDK может обрабатывать до 30 кубитов на локальном ПК и 32-40 кубитов в облаке Azure. Кубиты могут запутываться, а квантовая суперпозиция создается через вентили Адамара.
Исходный код набора доступен на GitHub. Разработчики опубликовали его под свободной лицензией MIT.