QUICK-PDE: ColibriTD의 Qiskit Function
Qiskit Functions는 IBM Quantum® Premium Plan, Flex Plan, On-Prem(IBM Quantum Platform API 경유) Plan 사용자에게 제공되는 실험적 기능입니다. 현재 미리 보기 릴리스 상태이며 변경될 수 있습니다.
개요
여기에 소개된 편미분 방정식(PDE) 솔버는 당사의 Quantum Innovative Computing Kit(QUICK) 플랫폼(QUICK-PDE)의 일부이며, Qiskit Function으로 패키징되어 있습니다. QUICK-PDE 함수를 사용하면 IBM Quantum QPU에서 도메인 특화 편미분 방정식을 풀 수 있습니다. 이 함수는 ColibriTD의 H-DES 설명 논문에 기술된 알고리즘을 기반으로 합니다. 이 알고리즘은 전산 유체 역학(CFD)과 재료 변형(MD)을 시작으로, 곧 추가될 다른 사용 사례까지 복잡한 다중 물리 문제를 해결할 수 있습니다.
미분 방정식을 다루기 위해, 시험 해(trial solution)는 직교 함수의 선형 결합(일반적으로 체비쇼프 다항식, 더 구체적으로는 개이며 여기서 은 함수를 인코딩하는 Qubit의 수)으로 인코딩되고, Variable Quantum Circuit(VQC)의 각도로 매개변수화됩니다. Ansatz는 함수를 인코딩하는 상태를 생성하며, 이는 모든 점에서 함수를 평가할 수 있는 관측량(observable)의 조합으로 평가됩니다. 그런 다음 미분 방정식이 인코딩된 손실 함수를 평가하고, 하이브리드 루프에서 각도를 미세 조정할 수 있습니다(아래 그림 참조). 시험 해는 만족스러운 결과에 도달할 때까지 실제 해에 점점 더 가까워집니다.
이 하이브리드 루프 외에도, 여러 최적화기를 함께 연결할 수도 있습니다. 이는 전역 최적화기로 좋은 각도 집합을 찾은 다음, 더 세밀한 최적화기로 기울기(gradient)를 따라 최적의 인접 각도 집합을 찾고자 할 때 유용합니다. 전산 유체 역학(CFD)의 경우 기본 최적화 순서가 최상의 결과를 제공하지만, 재료 변형(MD)의 경우 기본값도 좋은 결과를 제공하면서 문제별 이점을 위해 추가로 구성할 수 있습니다.
함수의 각 변수에 대해 Qubit의 수를 지정한다는 점을 참고하세요(직접 조정해볼 수 있습니다). 동일한 Circuit 10개를 쌓고 하나의 큰 Circuit 전체에서 서로 다른 Qubit에 대해 동일한 관측량 10개를 평가함으로써, 노이즈 학습기 방법에 의존하는 CMA 최적화 프로세스 내에서 노이즈를 완화하고 필요한 샷 수를 크게 줄일 수 있습니다.
입력/출력
전산 유체 역학
비점성 버거스 방정식(inviscid Burgers' equation)은 다음과 같이 비점성 유체의 흐름을 모델링합니다:
는 유체 속도 필드를 나타냅니다. 이 사용 사례에는 시간적 경계 조건이 있습니다. 초기 조건을 선택한 후 시스템이 이완되도록 할 수 있습니다. 현재 허용되는 초기 조건은 선형 함수 뿐입니다.
CFD 미분 방정식의 인수는 다음과 같이 고정된 격자에 있습니다:
- 는 0에서 0.95 사이이며 30개의 샘플 포인트를 가집니다. 는 0에서 0.95 사이이며 스텝 크기는 0.2375입니다.
재료 변형
이 사용 사례는 공간에 고정된 막대의 한쪽 끝을 당기는 1차원 인장 시험으로 준탄성 변형(hypoelastic deformation)에 초점을 맞춥니다. 문제를 다음과 같이 설명합니다:
는 늘어나는 재료의 체적 탄성률, 은 멱법칙(power law)의 지수, 는 단위 질량당 힘, 는 비례 응력 한계, 는 비례 변형률 한계, 는 응력 함수, 는 변형률 함수를 나타냅니다.
고려되는 막대는 단위 길이를 가집니다. 이 사용 사례에는 표면 응력 , 즉 막대를 늘리는 데 필요한 일의 양에 대한 경계 조건이 있습니다.
MD 미분 방정식의 인수는 다음과 같이 고정된 격자에 있습니다:
- 는 0에서 1 사이이며 스텝 크기는 0.04입니다.
입력
QUICK-PDE Qiskit Function을 실행하기 위해 다음 매개변수를 조정할 수 있습니다:
| 이름 | 타입 | 설명 | 사용 사례 특화 | 예시 |
|---|---|---|---|---|
| use_case | Literal["MD", "CFD"] | 풀 미분 방정식 시스템을 선택하는 토글 | 아니요 | "CFD" |
| parameters | dict[str, Any] | 미분 방정식의 매개변수(자세한 내용은 다음 표 참조) |