Мы модернизируем опыт использования ката с квантовыми вычислениями. Пожалуйста, посетите https://quantum.microsoft.com/experience/quantum-katas, чтобы попробовать новую онлайн-версию Azure Quantum katas с интегрированной помощью от Copilot в Azure Quantum.
Для репозитория Modern QDK посетите Microsoft/qsharp.
Дополнительную информацию о Modern QDK и Azure Quantum можно найти на https://aka.ms/AQ/Documentation.
Каты по квантовым вычислениям представляют собой коллекцию самообучающихся учебников и программных упражнений, помогающих вам освоить квантовые вычисления и программирование на языке Q#.
Каждый кат представляет собой отдельное множество упражнений, которое включает:* Последовательность задач, усложняющуюся от простого до сложного уровня. Каждая задача требует заполнения некоторого кода. Первое задание может потребовать всего одной строки кода, а последнее — довольно сложного кода.
Вот рекомендованная последовательность обучения, если вы начинаете изучать квантовое вычисление и квантовое программирование. Как только вы будете чувствовать себя комфортно с основами, вы можете пропустить вперед к темам, которые вас интересуют!
Изучите комплексные числа и математику, необходимую для работы с квантовыми вычислениями.
Линейная алгебра (тестирование) Изучите векторы и матрицы, используемые для представления состояний квантовых систем и операций над ними.
Кубит (тестирование) Узнайте, что такое кубит.
Одиночные гейты кубита (тестирование) Узнайте, что такое квантовый гейт, и ознакомьтесь с наиболее распространенными одиночными гейтами кубита.
Основные квантовые гейты Узнайте, как применять наиболее распространенные гейты, используемые в квантовых вычислениях.
Многокубитные системы (тестирование) Узнайте, как представлять многокубитные системы.
Многокубитные гейты (тестирование) Узнайте о наиболее распространенных многокубитных гейтах.
Суперпозиция Узнайте, как подготовить состояние суперпозиции.#### Концепции квантового вычисления: Измерения
Измерение одиночного кубита (тестирование) Узнайте, что такое квантовое измерение, и как использовать его для одиночных кубитов.
Измерение многокубитных систем (тестирование) Узнайте, как использовать измерения для многокубитных систем.
Измерения Узнайте, как различать квантовые состояния с помощью измерений.
Различение унитариев Узнайте, как различать унитариев путём проектирования и выполнения экспериментов с ними.
Объединённые измерения Узнайте о использовании объединённых (чётности) измерений для различения квантовых состояний и для выполнения преобразований состояний.
Узнайте, как использовать различные инструменты для визуализации элементов программ на языке Q#.*
Узнайте, как реализовать классические функции в виде эквивалентных квантовых оракулов.
Узнайте о алгоритме Гровера и о том, как писать квантовые оракулы для его использования.
Исследование алгоритма Гровера (учебник). Узнайте больше об алгоритме Гровера, продолжая с того места, где закончился ката "Алгоритм Гровера".
Решение задачи SAT с помощью алгоритма Гровера. Исследуйте алгоритм Гровера, используя задачи SAT в качестве примера. Узнайте, как реализовывать квантовые оракулы на основе описания проблемы вместо жестко закодированного ответа. Используйте алгоритм Гровера для решения проблем с неизвестным количеством решений.
Решение задачи раскраски графа с помощью алгоритма Гровера. Продолжите исследование алгоритма Гровера, используя задачи раскраски графа в качестве примера.
Решение ограниченной задачи рюкзака с помощью алгоритма Гровера. Узнайте, как решать варианты задачи рюкзака с помощью алгоритма Гровера.#### Инструменты и библиотеки / Подготовка к алгоритму Шора
Квантовое преобразование Фурье. Узнайте, как реализовать квантовое преобразование Фурье и использовать его для выполнения простых операций над состояниями.
Оценка фазы. Узнайте об алгоритмах оценки фазы.
Каты по квантовой механике теперь доступны в виде Jupyter Notebook онлайн! См. index.ipynb для списка всех кат и руководств, а также инструкций по выполнению их онлайн.
Обратите внимание, что mybinder.org работает с ограниченной производительностью, поэтому получение виртуальной машины и запуск ноутбуков может потребовать нескольких попыток. Хотя выполнение кат онлайн является самым простым способом начать работу, если вы хотите сохранять прогресс и иметь лучшую производительность, рекомендуется выбрать локальную установку.
Если у вас еще нет установленного набора инструментов разработки квантовых программ, см. руководство по установке набора инструментов разработки квантовых программ. Если вы хотите запустить кваты и туториалы локально в виде Jupyter Notebook:
pytest
.matplotlib
.matplotlib
и numpy
.> Для обновления ядра IQ# до новой версии при ежемесячных выпусках QDK обратитесь к разделу Обновление ядра IQ#. Если вы хотите запустить ката и туториалы локально как проекты Q#:Следуйте шагам в руководстве по установке QDK для Visual Studio, Visual Studio Code или других редакторов.
Запуск локальных проектов Q# ката требует загрузки и установки .NET 6.0 SDK. Вы можете сделать это даже если у вас уже установлена другая версия .NET, так как поддерживаются несколько версий одновременно.
Поскольку Visual Studio 2019 не поддерживает проекты .NET 6.0, вам потребуется обновиться до Visual Studio 2022 и установить соответствующее расширение Microsoft Quantum Development Kit.
$ git clone https://github.com/Microsoft/QuantumKatas.git
СОВЕТ
Оба Visual Studio 2022 и Visual Studio Code делают процесс клонирования репозиториев простым прямо из среды разработки. Для подробностей см. документацию Visual Studio и Visual Studio Code.
Если у вас нет Git, скачайте ката с https://github.com/Microsoft/QuantumKatas/archive/main.zip.### Запуск ката как Jupyter Notebook
Лучший способ запуска каты как Jupyter Notebook — перейти в корневую папку репозитория и открыть index.ipynb
с помощью Jupyter:
$ cd QuantumKatas/
$ jupyter notebook index.ipynb
Это откроет ноутбук, содержащий список всех кат и туториалов, и вы сможете перейти к нужному через ссылки.
ЗАМЕЧАНИЕ: Это запустит сервер Jupyter Notebooks в том же окне командной строки, которое использовалось для выполнения команды. Если вы хотите продолжать использовать это окно для навигации, вы можете запустить сервер Jupyter Notebooks в новом окне с помощью следующих команд:
Для Windows:
$ cd QuantumKatas/ $ start jupyter notebook index.ipynbДля Ubuntu:
$ cd QuantumKatas/ $ gnome-terminal -- jupyter notebook index.ipynb ```Вы также можете открыть отдельную ноутбук непосредственно, но это может сделать внутренние ссылки недействительными:
$ cd QuantumKatas/tutorials/ComplexArithmetic
$ jupyter notebook ComplexArithmetic.ipynb
Каждая кату находится в своем каталоге как автономный проект на Q#, решение и набор из Jupyter Notebook. Например, структура каталога BasicGates выглядит следующим образом:
QuantumKatas/
BasicGates/
README.md # Инструкции, специфичные для этой каты.
.vscode/ # Метаданные, используемые Visual Studio Code.
BasicGates.sln # Файл решения Visual Studio.
BasicGates.csproj # Файл проекта, используемый для сборки как классического, так и квантового кода.
``` BasicGates.ipynb # Jupyter Notebook для этой категории.
Workbook_BasicGates.ipynb # Jupyter Notebook рабочий лист для этой категории.
Tasks.qs # Исходный код на Q#, который вам нужно заполнить при решении каждой задачи.
Tests.qs # Тесты на Q#, проверяющие ваши решения.
ReferenceImplementation.qs # Исходный код на Q#, содержащий решения для задач.
Чтобы открыть категорию **BasicGates** в Visual Studio 2022, откройте файл решения **QuantumKatas/BasicGates/BasicGates.sln**.
Чтобы открыть категорию **BasicGates** в Visual Studio Code, откройте папку **QuantumKatas/BasicGates/**.
Нажмите **Ctrl + Shift + P** (или **⌘ + Shift + P** на macOS) для открытия **палитры команд**. Введите **открыть папку** на Windows 10 или Linux или **открыть** на macOS.
> **Совет**
> Почти все команды доступные в Visual Studio Code находятся в палитре команд.
> Если вы застряли, нажмите **Ctrl + Shift + P** (или **⌘ + Shift + P** на macOS) и начните печатать для поиска среди всех доступных команд.
>
> Вы также можете запустить Visual Studio Code с помощью командной строки:
> ```bash
> $ code QuantumKatas/BasicGates/
> ```
### Запустите тесты категории <a name="tests" /> ###
Как только вы откроете категорию, пора запустить тесты с использованием следующих инструкций.
Изначально все тесты будут проваливаться. Не пугайтесь!
Откройте **Tasks.qs** и начните заполнять код для выполнения задач. Каждая задача покрывается юнит-тестом. Как только вы заполните правильный код для задачи, пересоберите проект и повторно запустите тесты, и соответствующий юнит-тест пройдет.#### Visual Studio 20221. Соберите решение.
2. Из главного меню откройте **Test Explorer** (**Test** > **Windows**) и выберите **Запустить все**, чтобы запустить все юнит-тесты одновременно.
3. Работайте над задачами в файле **Tasks.qs**.
4. Чтобы протестировать изменения вашего кода для задачи, соберите решение заново и выполните все юнит-тесты с помощью **Запустить все**, либо запустите тест только для этой задачи, правым кликом мыши выбрав **Запустить выбранные тесты**.
#### Visual Studio Code
1. Нажмите **Ctrl + \`** (или **⌘ + \`** на macOS), чтобы открыть встроенный терминал.
В терминале должна открыться директория kata. Если это не так, используйте команду `cd`, чтобы перейти в папку, содержащую файл *.csproj* для kata.
2. Выполните `dotnet test` в встроенном терминале.
Это должно собрать проект kata и запустить все юнит-тесты. Все юнит-тесты должны завершиться ошибками.
3. Работайте над задачами в файле **Tasks.qs**.
4. Чтобы протестировать изменения вашего кода для задачи, снова выполните `dotnet test` в встроенном терминале.
Для удобства существует конфигурационный файл *tasks.json* для каждого kata. Он позволяет Visual Studio Code выполнять шаги сборки и тестирования из палитры команд.
Нажмите **Ctrl + Shift + P** (или **⌘ + Shift + P** на macOS), чтобы открыть палитру и введите **Запустить задачу сборки** или **Запустить задачу тестирования** и нажмите **Enter**.
## Запуск katas локально с использованием Docker <a name="docker" /> ##Вы можете использовать включённый [Dockerfile](./Dockerfile), чтобы создать образ Docker со всеми необходимыми инструментами для запуска кейсов из командной строки или Jupyter.1. Установите [Docker](https://docs.docker.com/install/).
2. Создайте образ Docker и присвойте ему метку `katas`:
```bash
docker build -t katas .
katas-container
с интерактивной командной строкой и перенаправьте порт контейнера 8888
на локальный порт 8888
(необходимо для запуска Jupyter):docker run -it --name katas-container -p 8888:8888 katas /bin/bash
cd ~/BasicGates/
dotnet test
cd ~/BasicGates/ && jupyter notebook --ip=0.0.0.0 --no-browser
http://localhost:8888/notebooks/BasicGates.ipynb
Чтобы выйти из контейнера Docker без его завершения (в режиме демона), нажмите Ctrl + P, затем Ctrl + Q.
Чтобы снова войти в существующий контейнер katas-container
(в режиме демона):
docker attach katas-container
После завершения работы удалите контейнер katas-container
:
docker rm --force katas-container
Этот проект приветствует вклады и предложения. Для получения подробной информации см. раздел Как я могу внести свой вклад?.
Код поведения можно найти в разделе Код поведения.Этот проект использует Code of Conduct Microsoft for Open Source. Дополнительную информацию можно найти в разделе Часто задаваемые вопросы о Коде поведения или обратиться по адресу электронной почты opencode@microsoft.com с любыми дополнительными вопросами или замечаниями.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )