Мы модернизируем опыт использования ката с квантовыми вычислениями. Пожалуйста, посетите 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#.
Каждый като представляет собой отдельное множество упражнений, которое включает:* Последовательность задач, прогрессирующих от простого к сложному. Каждая задача требует от вас заполнения некоторого кода. Первый шаг может потребовать всего одной строки, а последний — довольно сложного кода.
Вот рекомендованный нами путь обучения, если вы начинаете изучать квантовое вычисление и квантовое программирование. Как только вы овладеете основами, вы можете приступить к темам, которые вас интересуют!
Изучите комплексные числа и математику, необходимую для работы с квантовыми вычислениями.
Линейная алгебра (руководство). Изучите векторы и матрицы, используемые для представления квантовых состояний и квантовых операций.
Кубит (руководство). Изучите, что такое кубит.
Одиночные квантовые ворота (руководство). Изучите, что такое квантовое ворто, и ознакомьтесь с наиболее распространенными одиночными квантовыми воротами.
Основные квантовые ворота. Изучите применение наиболее распространенных ворот, используемых в квантовых вычислениях.
Многокубитные системы (руководство). Изучите представление многокубитных систем.
Многокубитные ворота (руководство). Изучите наиболее распространенные многокубитные ворота.
Суперпозиция. Изучите подготовку состояний суперпозиции.#### Концепции квантового вычисления: измерения
Измерения одиночных кубитов (руководство). Изучите, что такое квантовое измерение, и как использовать его для одиночных кубитов.
Измерения многокубитных систем (руководство). Изучите использование измерений для многокубитных систем.
Измерения. Изучите различие квантовых состояний с помощью измерений.
Различение унитариев. Изучите различение унитариев путём проектирования и выполнения экспериментов с ними.
Совместные измерения. Изучите использование совместных (паритетных) измерений для различения квантовых состояний и для выполнения преобразований состояний.
Узнайте, как реализовывать классические функции в виде эквивалентных квантовых оракулов.
Узнайте о алгоритме Гровера и о том, как писать квантовые оракулы для его использования.
Исследование алгоритма Гровера (учебник). Узнайте больше о алгоритме Гровера, продолжая с того места, где закончился кейсе алгоритма Гровера.
Решение задачи SAT с помощью алгоритма Гровера. Исследуйте алгоритм Гровера, используя задачи SAT в качестве примера. Узнайте, как реализовывать квантовые оракулы на основе описания задачи вместо жестко закодированного ответа. Используйте алгоритм Гровера для решения задач с неизвестным количеством решений.
Решение задачи раскраски графа с помощью алгоритма Гровера. Продолжите исследование алгоритма Гровера, используя задачи раскраски графа в качестве примера.
Решение задачи ограниченной задачи рюкзака с помощью алгоритма Гровера. Узнайте, как решать варианты задачи рюкзака с помощью алгоритма Гровера.#### Инструменты и библиотеки/Подготовка к алгоритму Шора
Квантовое преобразование Фурье. Узнайте, как реализовывать квантовое преобразование Фурье и использовать его для выполнения простых преобразований состояния.
Оценка фазы. Узнайте о алгоритмах оценки фазы.
Каты квантового вычисления теперь доступны в виде Jupyter Notebook онлайн! См. index.ipynb для списка всех кат и руководств, а также инструкций по запуску их онлайн.
Обратите внимание, что mybinder.org работает с уменьшенной производительностью, поэтому получение виртуальной машины и запуск ноутбуков на ней может потребовать нескольких попыток. Хотя запуск кат онлайн является самым простым способом для начала, если вы хотите сохранить свой прогресс и получить лучшую производительность, мы рекомендуем выбрать вариант локальной установки.
Если у вас ещё нет установленного Quantum Development Kit, см. руководство по установке Quantum Development Kit.Если вы хотите запустить кетасы и туториалы локально в виде 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, клонируйте репозиторий Microsoft/QuantumKatas:
$ 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 — перейти в корневую папку репозитория и открыть index.ipynb
с помощью Jupyter:```bash
$ cd QuantumKatas/
$ jupyter notebook index.ipynb
Это откроет ноутбук, содержащий список всех кэтас и туториалов, и вы сможете перейти к нужному через ссылки.
> **ПРИМЕЧАНИЕ:**
> Это запустит сервер Jupyter Notebooks в том же окне командной строки, которое вы использовали для выполнения команды. Если вы хотите продолжать использовать это окно для навигации, вы можете запустить сервер Jupyter Notebooks в новом окне с помощью следующих команд:
>
> **Для Windows:**
> ```bash
> $ cd QuantumKatas/
> $ start jupyter notebook index.ipynb
> ```
>
> **Для Ubuntu:**
> ```bash
> $ cd QuantumKatas/
> $ gnome-terminal -- start jupyter notebook index.ipynb
> ```
> Вы также можете открыть отдельную тетрадь непосредственно, но это может сделать внутренние ссылки недействительными:
```bash
$ 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) для открытия Command Palette. Введите Открыть папку на Windows 10 или Linux или Открыть на macOS.
Совет Почти все команды, доступные в Visual Studio Code, находятся в Command Palette. Если вы застряли, нажмите Ctrl + Shift + P (или ⌘ + Shift + P на macOS) и начните вводить текст для поиска среди всех доступных команд.
Вы также можете запустить Visual Studio Code из командной строки:
$ code QuantumKatas/BasicGates/
Как только ката будет открыта, пришло время запустить тесты с помощью следующих инструкций. Изначально все тесты будут провалены. Не паникуйте! Откройте Tasks.qs и начните заполнять код для выполнения задач. Каждая задача покрывается единичным тестом. Как только вы заполните правильный код для задачи, пересоберите проект и перезапустите тесты, и соответствующий единичный тест пройдет.#### Visual Studio 20221. Соберите решение. 2. Из главного меню откройте Test Explorer (Test > Windows) и выберите Запустить все, чтобы запустить все юнит-тесты одновременно. 3. Работайте над задачами в файле Tasks.qs. 4. Чтобы протестировать изменения вашего кода для задачи, соберите решение заново и выполните все юнит-тесты с помощью Запустить все, или запустите только тест для данной задачи, щелкнув правой кнопкой мыши по тесту и выбрав Запустить выбранные тесты.#### Visual Studio Code
cd
.dotnet test
в встроенном терминале.
Это должно собрать проект kata и запустить все юнит-тесты. Все юнит-тесты должны завершиться ошибкой.dotnet test
снова в встроенном терминале.Для удобства существует конфигурационный файл tasks.json для каждого kata. Он позволяет Visual Studio Code запускать шаги сборки и тестирования из Palette команд. Нажмите Ctrl + Shift + P (или ⌘ + Shift + P на macOS), чтобы открыть Palette и введите Run Build Task или Run Test Task и нажмите Enter.
Вы можете использовать включённый Dockerfile, чтобы создать образ Docker со всеми необходимыми инструментами для запуска katas из командной строки или Jupyter.
katas
:docker build -t katas .
katas-container
с интерактивной командной строкой и перенаправьте порт контейнера 8888
на локальный порт 8888
(необходимо для запуска Jupyter):docker run --name katas-container -it -p 8888:8888 katas
``````bash
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
Этот проект приветствует вклады и предложения. Для получения подробной информации см. Как я могу внести свой вклад?.
Этот проект использует Код поведения Microsoft для открытых источников. Дополнительную информацию можно найти в часто задаваемых вопросах по Коду поведения или связаться с opencode@microsoft.com для получения ответов на дополнительные вопросы или комментариев.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )