자습서: 양자 화학 문제의 리소스 예측
이 자습서에서는 Azure Quantum 리소스 추정기를 사용하여 해밀토니안의 에너지를 1mHa의 화학 정확도로 계산하는 데 필요한 물리적 리소스를 예측합니다.
이 자습서에서는 다음을 수행합니다.
- GitHub에서 샘플 리포지토리를 복제합니다.
- 화학 모델링 및 시뮬레이션 애플리케이션에 대한 인수 매개 변수로 FCIDUMP 파일을 사용합니다.
- 이중 팩터링된 화학 샘플인 대규모 문제에 대한 리소스 추정을 실행합니다.
필수 조건
Python 및 Pip가 설치된 Python 환경입니다.
Azure Quantum 개발 키트 및 Python 확장이 설치된 최신 버전의 Visual Studio Code입니다.
최신 Azure Quantum
qsharp
패키지 및numpy
scipy
패키지.python -m pip install --upgrade qsharp numpy scipy
팁
로컬 리소스 추정기를 실행하기 위해 Azure 계정이 필요하지 않습니다.
문제 설명
이 자습서에서는 Phys에 설명된 큐비트화 알고리즘의 물리적 리소스 추정치를 평가합니다. Rev. Research 3, 033055(2021) 는 1mHa의 화학적 정확도에 해밀토니안이 제공한 사용자의 에너지를 계산합니다.
해밀토니안의 에너지를 계산하는 양자 알고리즘은 이중 계수 큐비트화를 기반으로 합니다. 해밀토니안은 HTTPS URI를 통해 사용할 수 있는 제공된 FCIDUMP(전체 구성 상호 작용) 파일에서 1-및 2 전자 정수의 관점에서 설명됩니다.
큐비트화 방법은 양자 위상 추정을 기반으로 하지만 해밀토니안 행렬 $H$에서 표준 $U = \exp{(-i H/\alpha)}$를 생성하는 대신, 일반적으로 더 적은 리소스로 구현할 수 있는 $U = \exp{(-i \sin^{-1}(H/\alpha))}$를 사용합니다. 이중 배율화를 사용하여 $H$는 현명한 궤도 선택과 압축의 조합을 통해 압축적으로 표현됩니다.
Visual Studio Code에서 샘플 로드
이 자습서의 코드는 Q# 샘플 리포지토리의 추정/df-화학에서 찾을 수 있습니다. 샘플을 실행하려면 로컬 컴퓨터에서 리포지토리를 복제하는 것이 좋습니다.
리포지토리를 복제하려면 터미널에서 다음 명령을 실행합니다.
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 파일을 실행하고 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 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"}})
매개 변수를 변경 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을 확인합니다.
관련 콘텐츠
- Grover의 검색 알고리즘 구현 자습서 에서는 Grover의 검색 알고리즘 을 사용하여 그래프 색 지정 문제를 해결하는 Q# 프로그램을 작성하는 방법을 보여 줍니다.
- Q#의 큐비트 수준 프로그램 작성 및 시뮬레이션 자습서에서는 특정 큐비트를 직접 해결하는 Q# 프로그램을 작성하는 방법을 살펴봅니다.
- Q#을 사용한 양자 얽힘 탐색 자습서 에서는 Q# 을 사용하여 큐비트에서 작동하여 상태를 변경하는 방법을 보여 줍니다. 중첩 및 얽힘의 효과를 보여 줍니다.
- Quantum Katas는 동시에 양자 컴퓨팅 및 Q# 프로그래밍의 요소를 교육하기 위한 Jupyter Notebook 기반의 자체 진행 자습서 및 프로그래밍 연습입니다.