Руководство. Оценка ресурсов проблемы квантовой химии
В этом руководстве вы оцениваете физические ресурсы, необходимые для вычисления энергии Гамильтониана с химической точностью 1 мХ с помощью средства оценки ресурсов Azure Quantum.
При работе с этим руководством вы сделаете следующее:
- Клонирование примера репозитория из GitHub.
- Используйте файлы FCIDUMP в качестве параметров аргумента для химических моделей и приложений моделирования.
- Выполните оценку ресурсов для крупномасштабной проблемы, которая является образцом двойной факторизации химии.
Необходимые компоненты
Среда Python с установленным Python и Pip .
Последняя версия Visual Studio Code с установленным пакетом средств разработки Azure Quantum и расширениями Python.
Последний пакет Azure Quantum
qsharp
иnumpy
scipy
пакеты.python -m pip install --upgrade qsharp numpy scipy
Совет
Для запуска локального оценщика ресурсов не требуется учетная запись Azure.
Опишите проблему
В этом руководстве вы оцениваете оценки физического ресурса алгоритма кубитизации, описанного в статье Phys. Rev. Research 3, 033055 (2021) для вычисления энергии пользователя, предоставленного Гамильтонином, с химической точностью 1 mHa.
Квантовый алгоритм, вычисляющий энергию Гамильтониана, основан на двойной факторизации кубита. Гамильтониан описывается с точки зрения одно-и двух электронных интегралов в предоставленных файлах FCIDUMP (полное взаимодействие с конфигурацией), доступных через URI HTTPS.
Подход кубитизации основан на квантовой оценке фазы, но вместо создания стандартной $U = \exp{(-i H/\alpha)}$ из гамильтонской матрицы $H$, один принимает $U = \exp{(-i \sin^{-1} (H/\alpha)}$, который обычно можно реализовать с меньшим количеством ресурсов. Использование двойной факторизации $H$ представляется компактным путем сочетания разумного выбора орбитальных и сжатия.
Загрузка примера в Visual Studio Code
Код для этого руководства можно найти в репозитории примеров Q# под оценкой/df-химией. Рекомендуется клонировать репозиторий на локальном компьютере, чтобы запустить пример.
Чтобы клонировать репозиторий, выполните следующую команду из терминала:
git clone https://github.com/microsoft/qsharp.git
Выбор и передача файла FCIDUMP
В этом примере гамильтониан описывается с точки зрения одно-и двух электронных интегралов в формате FCIDUMP. Вы можете выбрать один из файлов FCIDUMP из следующей таблицы или выбрать собственный файл FCIDUMP, доступный на компьютере или через интернет через общедоступный URI HTTPS.
URI-адрес | Имя экземпляра | Description |
---|---|---|
https://aka.ms/fcidump/XVIII-cas4-fb-64e-56o | XVIII-cas4-fb-64e56o | 64 электрона, 56 орбитальных активных пространства одного из стабильных промежуточных в цикле фиксации углерода рутения-катализированного углерода. |
https://aka.ms/fcidump/nitrogenase-54e-54o | nitrogenase_54orbital | 54 электрона, 54 орбитального активного пространства активного ядра азота. |
https://aka.ms/fcidump/fe2s2-10e-40o | fe2s2-10e-40o | 10 электронных , 40 орбитальных активных пространств кластера [2Fe, 2S]. |
https://aka.ms/fcidump/polyyne-24e-24o | polyyne-24e-24o | 24 электрона, 24 орбитального активного пространства молекулы полиина. |
https://aka.ms/fcidump/n2-10e-8o | n2-10e-8o | 10 электронов, 8 орбитальных активных пространства он отсознал азот на расстоянии 3 Ангстрома. |
Чтобы передать файл FCIDUMP, необходимо запустить файл chemistry.py и передать имя файла FCIDUMP или URI в качестве аргумента с помощью -f
одного или.--fcidumpfile
usage: chemistry.py [-h] [-f FCIDUMPFILE]
options:
-h, --help
-f FCIDUMPFILE, --fcidumpfile FCIDUMPFILE
Запуск примера химии
В Visual Studio Code откройте папку, в которой вы клонировали пример репозитория Q#.
Откройте новый терминал, терминал —> новый терминал и перейдите в каталог, в котором находится пример квантовой химии. Например, если клонировать пример репозитория Q# на локальном компьютере, путь —
qsharp/samples/estimation/df-chemistry
это путь.Запустите файл chemistry.py и передайте FCIDUMP-файл. Например, следующая команда скачивает файл FCIDUMP n2-10e-8o в рабочую папку и запускает оценку ресурсов.
python chemistry.py -f https://aka.ms/fcidump/n2-10e-8o
После этого можно передать путь к скачанном файлу в скрипт.
python chemistry.py -f n2-10e-8o
Результат оценки ресурсов отображается в терминале. Например, в следующих выходных данных показана оценка ресурсов для файла N2-10e-8o FCIDUMP.
Algorithm runtime: 19 mins Number of physical qubits required: 207.60k For more detailed resource counts, see file resource_estimate.json
Примечание.
После запуска файла chemistry.py в рабочей папке создается файл resource_estimation.json . Файл resource_estimation.json содержит подробные выходные данные средства оценки ресурсов. Это параметры задания, физические счетчики, свойства фабрики T, логические счетчики и свойства логического кубита.
Изменение target параметров
Откройте файл chemistry.py.
Параметры target оценки ресурсов можно найти в вызове
qsharp.estimate
файла chemistry.py. В следующем фрагменте кода показаны параметры, используемые в этом руководстве.# Get resource estimates res = qsharp.estimate(qsharp_string, params={"errorBudget": 0.01, "qubitParams": {"name": "qubit_maj_ns_e6"}, "qecScheme": {"name": "floquet_code"}})
Если вы хотите изменить target параметры, это можно сделать, изменив предыдущий фрагмент кода. Например, в следующем фрагменте кода показано, как изменить бюджет ошибки на 0,333. Дополнительные сведения см. в target разделе "Настройка параметров оценщика ресурсов".
# Get resource estimates res = qsharp.estimate(qsharp_string, params={"errorBudget": 0.333, "qubitParams": {"name": "qubit_maj_ns_e6"}, "qecScheme": {"name": "floquet_code"}})
Почему важны приложения химии квантовых вычислений?
В этом руководстве представлен первый шаг по интеграции оценки ресурсов квантовых решений с проблемами электронной структуры. Одним из наиболее важных приложений масштабируемых квантовых компьютеров является решение проблем квантовой химии. Моделирование сложных квантовых механических систем имеет потенциал для разблокировки прорывов в таких областях, как захват углерода, безопасность продуктов питания и проектирование лучшего топлива и материалов.
Например, один из файлов FCIDUMP, предоставляемых в этом примере, nitrogenase_54orbital, описывает фермент азота. Если вы можете точно имитировать, как этот фермент работает на квантовом уровне, он может помочь нам понять, как производить его в масштабе. Вы можете заменить высокоэнергетический процесс, который используется для производства достаточного количества удобрений для кормить планету. Это может привести к сокращению глобального углеродного следа, а также для решения проблем, связанных с безопасностью продовольствия в растущем населении.
Если вы хотите углубить свои знания, ниже приведены некоторые эксперименты, которые можно попробовать:
- Оцените некоторые пользовательские файлы FCIDUMP.
- Измените предположения на квантовом target компьютере, предоставив пользовательские параметры кубита.
- Ознакомьтесь с другими примерами записных книжек оценки ресурсов в коллекции примеров Azure Quantum.
Связанный контент
- В руководстве по алгоритму поиска Grover показано, как написать программу Q#, которая использует алгоритм поиска Grover для решения проблемы цвета графа.
- В руководстве по написанию и имитации программ на уровне кубитов в Q# описывается, как писать программу Q#, которая напрямую обращается к определенным кубитам.
- В руководстве по изучению квантовой запутанности с помощью Q# показано, как работать с кубитами с помощью Q# для изменения их состояния и демонстрирует эффекты суперпозиции и запутанности.
- Квантовые катас — это jupyter Notebook, самоуправляемые учебники и упражнения программирования, направленные на обучение элементам квантовых вычислений и программирования Q# одновременно.