자습서: 양자 화학 문제의 리소스 예측

이 자습서에서는 Azure Quantum 리소스 추정기를 사용하여 해밀토니안의 에너지를 1mHa의 화학 정확도로 계산하는 데 필요한 물리적 리소스를 예측하는 방법을 보여 줍니다.

참고

Microsoft Quantum Development Kit(클래식 QDK)는 2024년 6월 30일 이후에 더 이상 지원되지 않습니다. 기존 QDK 개발자인 경우 새로운 Azure Quantum Development Kit(최신 QDK) 로 전환하여 양자 솔루션을 계속 개발하는 것이 좋습니다. 자세한 내용은 Q# 코드를 최신 QDK로 마이그레이션을 참조하세요.

이 자습서에서는 다음을 수행합니다.

  • GitHub에서 샘플 리포지토리를 복제합니다.
  • FCIDUMP 파일을 화학 모델링 및 시뮬레이션 애플리케이션에 대한 인수 매개 변수로 사용합니다.
  • 이중 계수 화학 샘플인 대규모 문제에 대한 리소스 추정을 실행합니다.

사전 요구 사항

로컬 리소스 예측 도구를 실행하기 위해 Azure 계정이 필요하지 않습니다.

문제 설명

이 자습서에서는 Phys. Rev. Research 3, 033055(2021) 에 설명된 큐비트화 알고리즘의 물리적 리소스 추정치를 평가하여 1mHa의 화학 정확도에 해밀토니안을 제공한 사용자의 에너지를 계산합니다.

해밀토니안의 에너지를 계산하는 양자 알고리즘은 이중 배율 큐비트화를 기반으로 합니다. 해밀토니안은 HTTPS URI를 통해 사용할 수 있는 제공된 FCIDUMP(전체 구성 상호 작용) 파일에서 1-및 2 전자 정수의 관점에서 설명됩니다.

큐비트화 방법은 양자 위상 추정을 기반으로 하지만 해밀턴 행렬 $H$에서 표준 $U = \exp{(-i H/\alpha)}$를 생성하는 대신, 일반적으로 더 적은 리소스로 구현할 수 있는 =\exp{(-i \sin^{-1}(H/\alpha))}$를 $U 사용합니다. double-factorization을 사용하여 $H$는 현명한 궤도 및 압축 선택의 조합을 통해 압축적으로 표현됩니다.

Visual Studio Code 샘플 로드

이 자습서의 코드는 Q# 샘플 리포지토리추정/df-chemistry에서 찾을 수 있습니다. 샘플을 실행하려면 로컬 컴퓨터에서 리포지토리를 복제하는 것이 좋습니다.

리포지토리를 복제하려면 터미널에서 다음 명령을 실행합니다.

git clone https://github.com/microsoft/qsharp.git

FCIDUMP 파일 선택 및 전달

이 예제에서 해밀토니안은 FCIDUMP 형식의 1-및 2 전자 정수 측면에서 설명됩니다. 다음 표에서 FCIDUMP 파일 중 하나를 선택하거나 공개적으로 액세스할 수 있는 HTTPS URI를 통해 컴퓨터 또는 온라인에서 사용할 수 있는 고유한 FCIDUMP 파일을 선택할 수 있습니다.

URI 인스턴스 이름 설명
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 전자, [2Fe, 2S] 클러스터의 40 궤도 활성 공간.
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 파일을 실행하고 또는 --fcidumpfile를 사용하여 -f FCIDUMP 파일 이름 또는 URI를 인수로 전달해야 합니다.

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 chemistry.py 파일의 호출 qsharp.estimate 에서 찾을 수 있습니다. 다음 코드 조각은 이 자습서에서 사용되는 매개 변수를 보여 있습니다.

    # 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 샘플 갤러리에서 다른 리소스 예측 샘플 Notebook을 확인합니다.

다른 양자 알고리즘 및 기술을 계속 탐색합니다.