Поделиться через


Руководство. Оценка ресурсов проблемы квантовой химии

В этом руководстве вы оцениваете физические ресурсы, необходимые для вычисления энергии Гамильтониана с химической точностью 1 мХ с помощью средства оценки ресурсов Azure Quantum.

При работе с этим руководством вы сделаете следующее:

  • Клонирование примера репозитория из GitHub.
  • Используйте файлы FCIDUMP в качестве параметров аргумента для химических моделей и приложений моделирования.
  • Выполните оценку ресурсов для крупномасштабной проблемы, которая является образцом двойной факторизации химии.

Необходимые компоненты

Совет

Для запуска локального оценщика ресурсов не требуется учетная запись 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                      

Запуск примера химии

  1. В Visual Studio Code откройте папку, в которой вы клонировали пример репозитория Q#.

  2. Откройте новый терминал, терминал —> новый терминал и перейдите в каталог, в котором находится пример квантовой химии. Например, если клонировать пример репозитория Q# на локальном компьютере, путь — qsharp/samples/estimation/df-chemistryэто путь.

  3. Запустите файл 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
    
  4. Результат оценки ресурсов отображается в терминале. Например, в следующих выходных данных показана оценка ресурсов для файла 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 параметров

  1. Откройте файл chemistry.py.

  2. Параметры 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"}})
    
  3. Если вы хотите изменить 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.