QAOA: 조합 최적화를 위한 변분 양자 알고리즘
QAOA(Quantum Approximate Optimization Algorithm)는 비용 해밀토니안과 믹서 해밀토니안을 교대로 적용하는 변분 양자 알고리즘으로, 조합 최적화 문제의 근사해를 구한다. 얕은 깊이의 양자 회로와 고전 최적화기를 결합한 하이브리드 구조로, NISQ 시대의 핵심 알고리즘 중 하나다.
개념 소개
조합 최적화(combinatorial optimization)는 이산 변수의 조합 중에서 목적 함수를 최대화·최소화하는 해를 찾는 문제다. 최대 절단(MaxCut), 외판원 문제(TSP), 포트폴리오 최적화가 대표적이며, 변수 수가 늘어날수록 탐색 공간이 지수적으로 증가해 고전 컴퓨터로는 엄밀한 풀이가 어렵다.
QAOA는 Farhi, Goldstone, Gutmann이 제안한 알고리즘으로, 양자 단열 계산(quantum adiabatic computation)에서 영감을 받아 설계되었다. 얕은 양자 회로와 고전 최적화기를 결합하는 하이브리드 변분 구조 덕분에 NISQ(Noisy Intermediate-Scale Quantum) 기기에서 실행 가능한 현실적인 후보로 주목받는다.
핵심 원리
두 해밀토니안의 역할
QAOA는 두 가지 해밀토니안을 교대로 적용한다.
- 비용 해밀토니안 : 목적 함수를 파울리 연산자로 인코딩한다. 계산 기저 상태 에 대해 이 성립하도록 구성하며, 는 최적화 대상 함수다.
- 믹서 해밀토니안 : 해 공간을 탐색(mixing)한다. 표준 선택은 단일 큐비트 게이트의 합이다.
QAOA 회로 구조
깊이 의 QAOA 회로는 다음 순서로 구성된다.
1단계: 초기 상태 준비
아다마르 변환으로 모든 계산 기저 상태의 균등 중첩을 만든다.
2단계: 개 레이어 반복
여기서 두 유니타리 연산자는 해밀토니안의 지수로 정의된다.
3단계: 기댓값 최대화 (고전 루프)
이 기댓값을 최대화하는 최적 파라미터 를 COBYLA, BFGS 등의 고전 최적화기로 탐색한다. 극한에서 양자 단열 정리에 의해 최적해로 수렴한다.
근사 보장
에서 MaxCut 문제에 대해 QAOA는 근사비(approximation ratio) 0.6924 이상을 달성함이 이론적으로 증명되어 있다. 고전 Goemans-Williamson 알고리즘의 0.8786보다 낮지만, 양자 하드웨어에서 직접 실행 가능한 다항 깊이 회로로 구현된다는 점이 차별화된다. 가 커질수록 근사 품질이 단조 향상됨도 알려져 있다.
예시·응용
MaxCut 비용 해밀토니안 구성
그래프 에서 MaxCut의 목적 함수는 이진 변수 로 다음과 같이 쓸 수 있다.
를 파울리 연산자로 치환하면 비용 해밀토니안은:
각 간선 에 대해 는 과 게이트의 조합인 ZZ 회전 게이트 로 구현된다.
Qiskit 구현 예시 (, 3-노드 삼각형 그래프)
import numpy as np
from qiskit import QuantumCircuit
from scipy.optimize import minimize
edges = [(0, 1), (1, 2), (0, 2)]
n = 3
def build_qaoa_circuit(gamma: float, beta: float) -> QuantumCircuit:
qc = QuantumCircuit(n)
qc.h(range(n)) # 균등 중첩 초기화
for (u, v) in edges:
qc.rzz(2 * gamma, u, v) # U_C(gamma): ZZ 회전
qc.rx(2 * beta, range(n)) # U_B(beta): X 회전
qc.measure_all()
return qc
def cost_from_bitstring(bitstring: str) -> float:
z = [1 - 2 * int(b) for b in bitstring] # {0,1} → {+1,-1}
return sum((1 - z[u] * z[v]) / 2 for u, v in edges)
# 실제 실행 시 Sampler 프리미티브로 기댓값 계산
# 여기서는 최적화 루프 구조만 예시로 표현
def objective(params):
gamma, beta = params
qc = build_qaoa_circuit(gamma, beta)
# ... 샘플링 후 가중 평균 반환 (생략)
return 0.0 # 플레이스홀더
result = minimize(objective, x0=[0.5, 0.5], method='COBYLA',
options={'maxiter': 300})
print(f"최적 파라미터: γ={result.x[0]:.4f}, β={result.x[1]:.4f}")
주요 응용 및 변형
| 문제 유형 | QAOA 적용 방식 |
|---|---|
| MaxCut | 표준 |
| 포트폴리오 최적화 | 이진 자산 선택을 이차 목적함수로 인코딩 |
| 제약 만족 (SAT) | 페널티 항을 에 추가한 페널티 QAOA |
| 그래프 색칠 | XY 믹서를 사용한 제약 보존 QAOA |
정리
QAOA는 비용 해밀토니안과 믹서 해밀토니안을 회 교대 적용하는 변분 양자 알고리즘이다. 레이어 수 가 증가할수록 근사 품질이 향상되며, 에서 최적해로 수렴한다. 고전 최적화기와의 하이브리드 구조로 NISQ 기기에서의 실용성을 확보하지만, 보리 오류(barren plateau), 측정 잡음, 고전 파라미터 최적화의 수렴 문제가 실용적 성능 향상의 주요 과제로 남아 있다. 믹서 해밀토니안의 다양화, 워밍 스타트(warm-start) 초기화, 재귀적 QAOA(RQAOA) 등의 변형이 이러한 한계를 극복하기 위해 활발히 연구되고 있다.
연습문제
Q1.3개 노드, 2개 간선(0-1, 1-2)으로 구성된 경로 그래프의 MaxCut 비용 해밀토니안 $H_C$를 파울리 연산자로 명시적으로 작성하라.
힌트 보기
각 간선 $(i,j)$에 대해 $\frac{1-Z_iZ_j}{2}$ 항을 합산한다. $Z_0Z_1$과 $Z_1Z_2$ 항이 등장한다.
해설 보기
두 간선에 대한 항을 합산하면 $H_C = \frac{1-Z_0Z_1}{2} + \frac{1-Z_1Z_2}{2} = 1 - \frac{Z_0Z_1 + Z_1Z_2}{2}$이다. MaxCut의 이론적 최댓값은 2(간선 수)이며, 비트열 010 또는 101이 이를 달성한다.
Q2.표준 믹서 해밀토니안 $H_B = \sum_i X_i$를 사용할 때 $U_B(\beta) = e^{-i\beta H_B}$가 각 큐비트에 독립적으로 $R_x(2\beta)$ 게이트를 적용하는 것과 동치임을 보여라.
힌트 보기
$H_B$가 텐서곱 구조 $X_1 \otimes I \otimes \cdots + \cdots$임을 이용하면, 서로 다른 큐비트에 작용하는 항들은 교환 가능하다.
해설 보기
$H_B = \sum_i X_i$에서 서로 다른 큐비트에 작용하는 $X_i$들은 $[X_i, X_j]=0$ ($i \neq j$)를 만족한다. 따라서 $e^{-i\beta H_B} = \prod_i e^{-i\beta X_i}$로 분해된다. $e^{-i\beta X} = \cos\beta\, I - i\sin\beta\, X = R_x(2\beta)$이므로, 결국 각 큐비트에 독립적인 $R_x(2\beta)$ 게이트가 된다.
Q3.QAOA에서 레이어 수 $p$를 늘리면 왜 근사 품질이 향상되는가? 양자 단열 이론의 관점에서 서술하라.
해설 보기
양자 단열 정리에 따르면, 계 해밀토니안을 충분히 천천히 변화시키면 기저 상태가 유지된다. QAOA의 $p$개 레이어는 $H_B$(초기 해밀토니안의 기저 상태 $|+\rangle^{\otimes n}$)에서 $H_C$로의 이산적 단열 경로를 근사한다. $p$가 커질수록 이 이산 경로의 시간 분해능이 높아져 단열 진화에 가까워지고, 결과적으로 $H_C$의 기저 상태(최적해)에 더 가까운 상태가 준비된다.