11월 5일 (목)양자 뉴스·논문·데이터를 매일 검증해 한국어로 전합니다

튜토리얼 목록
Tutorial중급양자컴퓨팅

Deutsch-Jozsa 알고리즘 — 단 한 번의 평가로 판별하기

Deutsch-Jozsa 알고리즘은 주어진 함수가 상수 함수인지 균형 함수인지를 단 한 번의 오라클 호출로 확정적으로 판별하는 최초의 양자 우위 알고리즘 중 하나다. 중첩과 양자 간섭을 결합하여, 고전 컴퓨터가 최악의 경우 지수적 횟수의 질의가 필요한 문제를 상수 시간에 해결한다.

난이도 중급4분 읽기연습문제 3개

개념 소개

함수 이 다음 두 가지 중 하나라고 보장되어 있다고 가정한다.

  • 상수 함수(constant): 모든 입력 에 대해 또는
  • 균형 함수(balanced): 입력의 정확히 절반이 0, 나머지 절반이 1로 대응

고전 결정론적 알고리즘은 최악의 경우 번 함수를 평가해야 두 경우를 구별할 수 있다. Deutsch-Jozsa 알고리즘은 오라클을 단 한 번 호출하는 것으로 이를 확정적으로 해결한다.

일상적 비유로는, 동전이 모두 앞면(상수)인지 정확히 절반이 뒷면(균형)인지를 동전을 하나씩 뒤집어 확인하는 대신, 전체를 동시에 비추는 특수한 거울로 한 번에 확인하는 것과 유사하다.


핵심 원리

회로 구성

알고리즘은 개의 입력 큐비트와 1개의 보조(ancilla) 큐비트로 구성된다.

1단계 — Hadamard 변환:
모든 큐비트에 를 적용하면,

여기서 이다.

2단계 — 양자 오라클 적용:
오라클은 로 정의된다. 보조 큐비트가 상태일 때 이른바 **위상 킥백(phase kickback)**이 발생한다.

3단계 — 입력 큐비트에 다시 Hadamard 적용:
을 적용하면,

4단계 — 측정:
(모두 0) 상태의 진폭은 이다.

  • 가 상수 함수이면 모든 항의 부호가 같으므로 합의 절댓값이 1 → 측정 확률 = 1
  • 가 균형 함수이면 양수·음수 항이 정확히 상쇄되어 합 = 0 → 측정 확률 = 0

따라서 입력 큐비트를 측정하여 전부 0이면 상수, 하나라도 1이면 균형으로 판별한다.


예시·응용

인 경우 (Deutsch 알고리즘)

의 네 가지 경우 — , (상수), , (균형) — 를 단 1번의 오라클 호출로 구별한다. 이것이 Deutsch의 원래 1985년 아이디어이며, Deutsch-Jozsa는 이를 비트로 일반화한 것이다.

Qiskit 구현 예시 (, 균형 오라클)

from qiskit import QuantumCircuit

def deutsch_jozsa_balanced(n=3):
    qc = QuantumCircuit(n + 1, n)
    # 초기화
    qc.x(n)                  # 보조 큐비트 |1>
    qc.h(range(n + 1))       # 모든 큐비트에 Hadamard
    # 균형 오라클 예시: 첫 번째 입력 큐비트를 보조에 CNOT
    for i in range(n):
        qc.cx(i, n)
    qc.h(range(n))            # 입력 큐비트에 다시 Hadamard
    qc.measure(range(n), range(n))
    return qc

qc = deutsch_jozsa_balanced()
print(qc.draw())
# 측정 결과: 000이 아닌 값 → 균형 함수로 판별

의의와 한계

Deutsch-Jozsa 알고리즘은 실용적 문제를 직접 해결하기보다, 양자 병렬성과 간섭이 결합하면 지수적 속도 향상이 가능함을 최초로 증명한 '개념 증명'으로서의 가치가 크다. Simon 알고리즘, Shor 알고리즘 등 이후 양자 알고리즘들의 이론적 토대가 된다.


정리

Deutsch-Jozsa 알고리즘의 핵심은 두 단계의 Hadamard 변환 사이에 오라클을 배치하는 구조다. 첫 번째 Hadamard로 모든 입력의 중첩을 생성하고, 오라클의 위상 킥백으로 함수 정보를 위상에 인코딩한 뒤, 두 번째 Hadamard로 간섭을 통해 정보를 진폭에 집약시킨다. 측정은 단 한 번으로 충분하며, 오류 없이 확정적 결과를 낸다는 점에서 확률적 양자 알고리즘과도 구별된다.

Exercises

연습문제

  1. Q1$n=2$일 때 균형 함수의 예를 하나 들고, 해당 오라클 적용 후 입력 큐비트의 상태를 직접 계산하라. 측정 결과가 $|00\rangle$이 될 확률은 얼마인가?

    힌트 보기

    균형 함수의 예로 $f(00)=0,\, f(01)=0,\, f(10)=1,\, f(11)=1$을 사용하면 오라클 적용 후 위상이 $+1,+1,-1,-1$로 배분된다. 두 번째 Hadamard 후 $|00\rangle$ 진폭을 계산한다.

    해설 보기

    오라클 적용 후 상태는 $\frac{1}{2}(|00\rangle+|01\rangle-|10\rangle-|11\rangle)|{-}\rangle$이다. 두 번째 $H^{\otimes 2}$를 적용하면 $|00\rangle$ 성분의 진폭은 $\frac{1}{4}(1+1-1-1)=0$이다. 따라서 $|00\rangle$ 측정 확률은 **0**이며, 균형 함수로 올바르게 판별된다.

  2. Q2Deutsch-Jozsa 알고리즘이 확정적(deterministic) 알고리즘인 이유는 무엇인가? 측정 결과에 확률이 개입하지 않는 이유를 간섭의 관점에서 설명하라.

    해설 보기

    상수 함수일 때 $|0\rangle^{\otimes n}$ 진폭의 절댓값은 정확히 1이고, 균형 함수일 때는 정확히 0이다. 간섭이 두 경우 모두 '완전 보강' 또는 '완전 상쇄'로 귀결되기 때문에 중간값이 나오지 않는다. 이는 함수가 상수/균형으로 명확히 분류될 때만 성립하는 구조적 특성이며, 그래서 단 한 번의 측정으로 오류 없이 결론을 내릴 수 있다.

  3. Q3Deutsch-Jozsa 알고리즘에서 보조 큐비트를 $|0\rangle$ 대신 $|1\rangle$로 초기화하는 이유는 무엇인가?

    힌트 보기

    Hadamard를 적용한 뒤 $|{-}\rangle$ 상태가 되어야 위상 킥백이 발생한다는 점을 생각해 보라.

    해설 보기

    $|1\rangle$에 $H$를 적용하면 $|{-}\rangle = \frac{|0\rangle-|1\rangle}{\sqrt{2}}$가 된다. 오라클 $U_f$는 $|{-}\rangle$ 상태의 보조 큐비트에 작용할 때 $(-1)^{f(x)}$라는 위상을 입력 큐비트 쪽으로 킥백시킨다. 보조 큐비트가 $|0\rangle$이었다면 이 위상 인코딩이 일어나지 않아 알고리즘이 동작하지 않는다.

관련 용어

이 챕터는 Claude (claude-sonnet-4-6)가 작성했습니다. · 발행 2026. 8. 9.

Keep Learning

다음으로 볼 튜토리얼

전체보기
중급

양자통신

포스트양자암호(PQC) 기초: 양자 시대를 대비하는 암호 설계

포스트양자암호(PQC)는 충분한 규모의 양자 컴퓨터가 등장해도 안전하도록 설계된 고전 알고리즘 기반 암호 체계다. RSA·ECC 등 현행 공개키 암호의 취약점을 수학적 난제로 보완하며, NIST의 표준화를 통해 실용화 단계에 진입했다.

4분 읽기

중급

양자통신

PQC(포스트양자암호) 기초: 양자 시대의 암호 보안

양자 컴퓨터의 발전으로 RSA, ECC 등 현재의 공개키 암호 체계가 근본적인 위협에 직면했다. 포스트양자암호(PQC)는 양자 컴퓨터로도 풀기 어려운 수학적 난제에 기반한 새로운 암호 방식으로, NIST의 표준화 작업을 통해 실용화 단계에 접어들었다. PQC는 기존 통신 인프라 위에서 동작하므로 양자키분배(QKD)와는 구별되는 상호 보완적인 접근이다.

4분 읽기

고급

양자컴퓨팅

변분 양자 고유값 계산(VQE): 원리와 구현

VQE(Variational Quantum Eigensolver)는 변분 원리를 기반으로 해밀토니안의 바닥 상태 에너지를 추정하는 양자-고전 하이브리드 알고리즘이다. 매개변수화 양자 회로(Ansatz)로 시험 상태를 준비하고 고전 최적화기로 에너지를 최소화하는 반복 루프를 구성한다. 깊이가 얕은 회로를 사용하므로 NISQ 장치에서 실행 가능한 현실적 양자 알고리즘으로 평가받는다.

6분 읽기

고급

양자컴퓨팅

QAOA: 조합 최적화를 위한 양자 근사 최적화 알고리즘

QAOA(Quantum Approximate Optimization Algorithm)는 조합 최적화 문제를 양자 회로로 근사 해결하는 변분 양자 알고리즘이다. 비용 해밀토니안과 혼합 해밀토니안을 교대로 적용하는 $p$층 회로를 구성하고, 고전 최적화기로 매개변수를 조율하는 하이브리드 방식을 채택한다. MaxCut, 포트폴리오 최적화 등 NP-난해 문제에 대한 근사 해를 NISQ 장치에서 탐색하는 데 활발히 연구되고 있다.

5분 읽기