다중정밀도 C++ 라이브러리 ZKCM QC를 이용한 행렬곱상태 시뮬레이션의 수치오차 분석

다중정밀도 C++ 라이브러리 ZKCM QC를 이용한 행렬곱상태 시뮬레이션의 수치오차 분석

초록

**
본 논문은 양자 회로 시뮬레이션에 특화된 다중정밀도 C++ 라이브러리 ZKCM_QC를 소개하고, 시간‑의존 행렬곱상태(TDMPS) 방법에서 발생하는 두 가지 주요 수치오차—부동소수점 가수 비트 부족에 의한 반올림 오차와 의미 있는 슈미트 계수 및 벡터의 절단에 의한 근사 오차—를 정량적으로 평가한다. 다양한 양자 알고리즘에 대한 실험을 통해 오차와 연산 비용 사이의 트레이드오프를 제시한다.

**

상세 분석

**
ZKCM_QC는 기존의 단정밀도(64‑bit) 혹은 고정된 다중정밀도 라이브러리와 달리, 사용자가 원하는 비트 수를 동적으로 지정할 수 있는 템플릿 기반 설계를 채택하였다. 이는 행렬곱상태(MPS) 표현에서 텐서의 차원과 슈미트 값의 스케일이 급격히 변할 때, 가수 비트가 부족해 발생하는 반올림 오차를 억제한다는 점에서 큰 장점이다. 논문은 먼저 TDMPS 알고리즘의 핵심 단계인 두‑큐빗 게이트 적용 시 발생하는 텐서 재배열과 SVD(특이값 분해) 과정을 상세히 설명한다. 여기서 슈미트 값은 양자 얽힘을 정량화하는 지표이며, 작은 값이라도 누적되면 전체 파동함수의 정밀도에 영향을 미친다.

두 번째 오류 원인인 “절단 오류(truncation error)”는 실용적인 시뮬레이션에서 메모리와 시간 제한 때문에 일정 수준 이하의 슈미트 값을 버리는 과정에서 발생한다. ZKCM_QC는 절단 기준을 절대값 임계치와 상대값 임계치 두 가지 옵션으로 제공하며, 사용자는 시뮬레이션 진행 중에 동적으로 임계치를 조정할 수 있다. 논문은 이러한 절단 전략이 얽힘이 급격히 증가하는 양자 회로(예: Quantum Fourier Transform, Grover 검색)에서 어떻게 오차를 급격히 확대시키는지를 실험적으로 보여준다.

수치 실험에서는 5‑qubit부터 20‑qubit까지의 다양한 회로를 대상으로, 가수 비트를 53비트(표준 double)에서 256비트까지 늘렸을 때의 오차 감소 곡선을 제시한다. 결과는 가수 비트가 128비트 이상이면 반올림 오차가 거의 무시할 수준으로 감소하지만, 절단 임계치를 너무 낮게 잡으면 여전히 전체 파동함수의 노름이 10⁻⁴ 수준으로 손실된다는 점을 강조한다. 또한, 메모리 사용량과 실행 시간은 가수 비트 수와 절단 임계치에 거의 선형적으로 비례함을 확인하였다.

이러한 분석을 통해 저자는 “정밀도와 절단 사이의 최적 균형점”을 찾는 것이 실용적인 양자 시뮬레이션의 핵심 과제임을 제시한다. 특히, 양자 오류 정정 코드 시뮬레이션처럼 작은 오류도 중요한 경우에는 192비트 이상의 가수와 절단 임계치를 10⁻⁸ 이하로 설정하는 것이 권장된다. 마지막으로, ZKCM_QC가 제공하는 인터페이스는 기존의 ITensor, Eigen 기반 MPS 구현과 호환 가능하도록 설계되어, 연구자들이 손쉽게 다중정밀도 옵션을 적용할 수 있게 한다.

**