QAOA: 조합 최적화를 위한 양자 근사 최적화 알고리즘
QAOA(Quantum Approximate Optimization Algorithm)는 NP-난해 조합 최적화 문제를 변분 양자 회로로 근사 풀이하는 하이브리드 양자-고전 알고리즘이다. 문제 해밀토니안과 혼합 해밀토니안을 교대로 적용하는 매개변수화 회로를 구성하고, 고전 최적화기로 매개변수를 조율해 기댓값을 최소화한다. 회로 깊이 $p$가 증가할수록 해의 품질이 향상되며, $p \to \infty$ 극한에서 정확해로 수렴한다.
개념 소개
조합 최적화 문제는 유한한 이진 변수 집합 위에서 목적 함수를 최대화(혹은 최소화)하는 해를 탐색한다. 대표적으로 MaxCut, 외판원 문제(TSP), 정수 선형 계획 등이 있으며, 대부분이 NP-난해 범주에 속한다. 고전 컴퓨터에서는 지수적 탐색 공간을 완전 탐색하기 어려워 다양한 휴리스틱이 사용된다.
QAOA는 Farhi, Goldstone, Gutmann(2014)이 제안한 알고리즘으로, 양자 중첩과 얽힘을 통해 해 공간을 병렬 탐색하는 아이디어를 변분 원리와 결합한다. 핵심 구조는 문제 해밀토니안 와 혼합 해밀토니안 를 교대로 적용하는 층(layer) 개짜리 파라미터화 유니타리이다.
핵심 원리
문제의 해밀토니안 인코딩
이진 변수 를 파울리 연산자 로 대응하면, 고전 목적 함수 를 대각 해밀토니안으로 표현할 수 있다.
MaxCut을 예로 들면, 그래프 에서
의 기댓값을 최대화하는 것이 목표다.
QAOA 회로
초기 상태를 균등 중첩으로 설정한다.
이후 깊이 의 변분 회로를 적용한다.
혼합 해밀토니안은 통상적으로 를 사용하며, 이는 전체 큐비트에 회전을 부여한다. 매개변수 벡터 , 는 고전 최적화기로 조율된다.
변분 목적 함수와 최적화
목적은 다음 기댓값을 최대화하는 매개변수를 찾는 것이다.
최적화에는 COBYLA, Nelder-Mead, 혹은 기울기 기반의 Adam 계열 옵티마이저가 사용된다. 양자 회로에서 기울기는 **매개변수 이동 규칙(parameter-shift rule)**으로 해석적으로 계산할 수 있다.
근사 비율
QAOA의 해 품질은 근사 비율(approximation ratio) 로 평가한다. 에서도 MaxCut 문제에 대해 Goemans-Williamson 경계(0.878)에 근접하거나 능가하는 경우가 있으며, 가 커질수록 로 수렴한다.
예시·응용
MaxCut (4-노드 예시) — Qiskit 구현
from qiskit import QuantumCircuit
from qiskit.circuit import ParameterVector
import numpy as np
def build_qaoa_maxcut(edges, p=1):
n = max(max(e) for e in edges) + 1
gamma = ParameterVector('γ', p)
beta = ParameterVector('β', p)
qc = QuantumCircuit(n)
# 초기 균등 중첩
qc.h(range(n))
for layer in range(p):
# 문제 유니타리: e^{-i γ H_C}
for (i, j) in edges:
qc.cx(i, j)
qc.rz(2 * gamma[layer], j)
qc.cx(i, j)
# 혼합 유니타리: e^{-i β H_B}
for i in range(n):
qc.rx(2 * beta[layer], i)
return qc
edges = [(0,1), (1,2), (2,3), (3,0)]
qc = build_qaoa_maxcut(edges, p=2)
print(qc.draw('text'))
고전 최적화 루프 골격
from scipy.optimize import minimize
def cost_function(params, qc, edges, backend):
p = len(params) // 2
gamma_vals = params[:p]
beta_vals = params[p:]
bound = qc.assign_parameters(
{**dict(zip(qc.parameters[:p], gamma_vals)),
**dict(zip(qc.parameters[p:], beta_vals))}
)
counts = backend.run(bound, shots=2048).result().get_counts()
# MaxCut 기댓값 계산
total = 0
for bitstring, cnt in counts.items():
z = [int(b) for b in bitstring]
cut = sum(z[i] ^ z[j] for (i, j) in edges)
total += cut * cnt
return -total / 2048 # 최소화이므로 음수 반환
x0 = np.random.uniform(0, 2*np.pi, 4) # p=2이므로 4개 매개변수
result = minimize(cost_function, x0, method='COBYLA',
args=(qc, edges, backend))
실용 적용 분야
| 분야 | 문제 유형 |
|---|---|
| 물류·공급망 | 차량 경로 최적화(VRP) |
| 금융 | 포트폴리오 최적화 |
| 반도체 설계 | 회로 배치·라우팅 |
| 머신러닝 | 클러스터링(QUBO 변환) |
모든 문제는 이진 이차 무제약 최적화(QUBO) 형식으로 변환 후 QAOA에 투입된다.
정리
QAOA는 변분 양자 고유값 분해기(VQE)의 조합 최적화 특화 형태로, 문제 구조를 해밀토니안에 직접 인코딩한다는 점이 차별점이다. 현재의 NISQ 장치에서 가 작을 때 노이즈 한계 내에서 실행 가능하지만, 충분한 근사 비율을 얻으려면 오류 완화 기법과 결합이 필요하다. 장기적으로 오류 정정 양자 컴퓨터에서 를 대폭 늘릴 경우, 고전 알고리즘 대비 양자 우위의 실증 가능성이 주목받고 있다.
연습문제
Q1.4개 노드, 4개 간선을 가진 사이클 그래프 $C_4$에서 $p=1$ QAOA의 MaxCut 기댓값 $F_1(\gamma, \beta)$를 해석적으로 유도하라. 최적 $\gamma^*, \beta^*$와 그 때의 근사 비율을 구하라.
힌트 보기
$H_C = \frac{1}{2}\sum_{(i,j)\in E}(I - Z_i Z_j)$를 전개하고, 균등 중첩 상태에서 각 항의 기댓값을 $\gamma, \beta$의 삼각함수로 표현한 뒤, 수치 최대화를 적용한다. $C_4$의 MaxCut은 4이다.
해설 보기
$F_1 = 2 + \frac{1}{2}\sin(2\beta)\sin(\gamma) - \frac{1}{4}\sin^2(\beta)\cos^2(\gamma/2)\cdot(\text{교차항})$ 형태로 전개된다. 수치 최적화 결과 $\gamma^* \approx \pi/2$, $\beta^* \approx \pi/8$ 근방에서 $F_1 \approx 3$이 달성되며, 근사 비율은 $3/4 = 0.75$이다. $p=2$ 이상에서는 4에 수렴한다.
Q2.QAOA에서 매개변수 이동 규칙(parameter-shift rule)이 성립하려면 게이트 생성자(generator)가 어떤 스펙트럼 조건을 만족해야 하는가? $R_Z(\theta) = e^{-i\theta Z/2}$에 대해 이동 크기 $s$를 유도하라.
해설 보기
생성자의 고유값이 두 개(±r)인 경우 매개변수 이동 규칙이 성립하며, 이동 크기는 $s = \pi/(4r)$이다. $R_Z(\theta)$의 생성자 $Z/2$는 고유값 $\pm 1/2$을 가지므로 $r=1/2$, 따라서 $s = \pi/2$이다. 즉 $\partial_\theta \langle O \rangle = \frac{1}{2}[\langle O \rangle_{\theta+\pi/2} - \langle O \rangle_{\theta-\pi/2}]$.
Q3.QUBO 형식 $\min_{\mathbf{z}\in\{0,1\}^n} \mathbf{z}^T Q \mathbf{z}$를 QAOA용 이징(Ising) 해밀토니안으로 변환하는 절차를 서술하고, 변수 치환 시 상수항이 왜 무시 가능한지 설명하라.
해설 보기
이진 변수를 스핀 변수로 변환한다: $z_i = (1 - \sigma_i^z)/2$. 대입 후 전개하면 $\mathbf{z}^T Q \mathbf{z}$는 $\sum_{i<j} J_{ij}\sigma_i^z\sigma_j^z + \sum_i h_i\sigma_i^z + \text{const}$ 형태의 이징 해밀토니안이 된다. 상수항은 모든 계산 기저 상태에서 동일하게 더해지므로 최적해의 위치(argmin)에 영향을 주지 않아 $H_C$ 정의 시 생략 가능하다.