주 콘텐츠로 건너뛰기

샘플 기반 양자 대각화(SQD) 개요

샘플 기반 양자 대각화(SQD)는 QPU에서 실행된 후 양자 Circuit으로부터 얻은 샘플에 작용하는 고전적인 후처리 기법입니다. 이 기법은 양자 시스템의 해밀토니안과 같은 양자 연산자의 고유값 및 고유벡터를 찾는 데 유용하며, 양자 컴퓨팅과 분산 고전 컴퓨팅을 함께 활용합니다. 이 후처리 기법은 화학 또는 기타 양자 시스템을 시뮬레이션하는 사용자에게 특히 유용할 수 있습니다.

고전 컴퓨팅은 양자 프로세서로부터 얻은 샘플을 처리하고, 대상 해밀토니안을 해당 샘플이 생성하는 부분 공간에 투영하여 대각화하는 데 사용됩니다. 이를 통해 SQD는 양자 노이즈로 손상된 샘플에도 견고하게 동작하며, 수백만 개의 상호작용 항을 포함하는 화학 시스템처럼 정확한 대각화 방법으로는 처리하기 어려운 대형 해밀토니안도 다룰 수 있습니다.

SQD 도구는 파울리 연산자의 선형 결합 또는 이차 양자화 페르미온 연산자로 표현된 해밀토니안을 대상으로 할 수 있습니다. 입력 샘플은 사용자가 정의한 양자 Circuit에서 얻으며, 이 Circuit은 대상 연산자의 고유상태(예: 기저 상태)를 잘 표현하는 것으로 간주됩니다. 샘플 수의 함수로서 SQD의 수렴 속도는 대상 고유상태의 희소성이 높을수록 향상됩니다.

SQD 패키지 설치

SQD 패키지를 설치하는 방법은 PyPI와 소스 빌드, 두 가지가 있습니다. 패키지 의존성 간의 충돌을 방지하기 위해 가상 환경에 패키지를 설치하는 것을 권장합니다.

PyPI에서 설치

qiskit-addon-sqd 패키지를 설치하는 가장 간단한 방법은 PyPI를 이용하는 것입니다.

pip install qiskit-addon-sqd

소스에서 빌드

이 패키지를 수동으로 설치하는 방법을 보려면 여기를 클릭하세요.

이 패키지에 기여하거나 수동으로 설치하려면 먼저 저장소를 클론하세요:

git clone git@github.com:Qiskit/qiskit-addon-sqd.git

그런 다음 pip를 통해 패키지를 설치하세요. 저장소에는 실행할 수 있는 예제 노트북도 포함되어 있습니다. 저장소에서 개발할 계획이라면 dev 의존성을 함께 설치할 수 있습니다.

필요에 맞게 옵션을 조정하세요.

pip install tox notebook -e '.[notebook-dependencies, dev]'

이론적 배경

자기 일관 구성 복구를 사용하는 SQD 워크플로는 [1]에서 자세히 설명됩니다. 이 섹션에서는 다음 다이어그램에 묘사된 기법의 개요를 제공합니다.

구성 복구, 서브샘플 수집 및 해당 서브샘플로부터 고유상태를 얻는 과정을 묘사한 SQD 다이어그램

여기서 Xˉ\bar{\mathcal{X}}는 QPU에서 실행하여 얻은 비트 문자열로 표현된 물리적 및 비물리적 구성을 포함하는 노이즈가 있는 샘플 집합입니다(시뮬레이션되는 해밀토니안의 맥락에서). 비물리적 구성은 노이즈로 인해 발생하며, sqd.configuration_recovery.recover_configurations() 메서드로 처리하여 샘플을 새로운 집합 XR\mathcal{X}_R로 정제할 수 있습니다.

이 집합에서, 구성 배치 S(1)... S(K)\mathcal{S}^{(1)}...\ \mathcal{S}^{(K)}XR\mathcal{X}_R 내 각 x\mathbf{x}의 경험적 빈도에 비례하는 분포에 따라 수집됩니다. 각 샘플링된 구성 배치는 부분 공간 S(k):k=1,...,K\mathcal{S}^{(k)}: k = 1, ..., K를 생성하며, 이 공간에서 해밀토니안이 투영되고 대각화됩니다:

H^S(k)=P^S(k)H^P^S(k), with P^S(k)=xS(k)xx, \hat{H}_{S^{(k)}} = \hat{P}_{\mathcal{S}^{(k)}}\hat{H}\hat{P}_{\mathcal{S}^{(k)}}\text{, with } \hat{P}_{\mathcal{S}^{(k)}} = \sum_{\mathbf{x} \in \mathcal{S}^{(k)}} |\mathbf{x}\rangle\langle\mathbf{x}|,

여기서 H^S(k)\hat{H}_{\mathcal{S}^{(k)}}는 주어진 부분 공간의 해밀토니안입니다.

SQD 워크플로의 핵심은 이 부분 공간 해밀토니안 각각을 대각화하는 과정입니다. 각 부분 공간에서 얻은 기저 상태 ψ(k)|\psi^{(k)}\rangleKK개의 부분 공간 전체에서 평균된 점유도 기준 벡터 n(K)\mathbf{n}^{(K)}의 추정치를 생성하는 데 사용됩니다. 그런 다음 새로운 구성 집합 XR\mathcal{X}_R이 이 평균 점유도와 시스템에서 알려진 총 입자 수(해밍 무게)를 기반으로 개별 비트를 확률적으로 뒤집는 방식으로 생성됩니다. 이 구성 복구 과정은 새로운 부분 공간 집합을 준비하여 대각화하고, 새로운 고유상태와 평균 궤도 점유도를 얻고, 새로운 구성 집합을 생성하는 방식으로 반복됩니다. 이 루프는 사용자가 지정한 기준이 충족될 때까지 반복되며, 전체 과정은 노이즈가 있는 신호를 필터링하여 충실도를 향상시키는 것과 유사합니다.

다음 단계

권장 사항

참고 문헌

[1] Robledo-Moreno, Javier, et al. "Chemistry beyond exact solutions on a quantum-centric supercomputer" arXiv preprint arXiv:2405.05068 (2024).