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

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

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

Deutsch-Jozsa 알고리즘은 주어진 함수가 상수 함수인지 균형 함수인지를 단 한 번의 오라클 호출로 판별하는 양자 알고리즘이다. 고전 결정론적 알고리즘이 최악의 경우 $2^{n-1}+1$번의 평가를 요구하는 데 반해, 양자 컴퓨터는 중첩·간섭·위상 킥백을 조합하여 지수적 우위를 달성한다.

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

개념 소개

어떤 함수 가 주어지고, 이 함수는 다음 두 유형 중 하나임이 보장된다.

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

목표는 블랙박스(오라클)로만 접근 가능한 이 함수의 유형을 판별하는 것이다. 고전 결정론적 알고리즘은 최선을 다해도 최악의 경우 번 질의해야 확실한 답을 얻을 수 있다. 예컨대 이면 5번, 이면 513번이 필요하다. Deutsch-Jozsa 알고리즘은 이를 단 1번의 오라클 호출로 해결한다.


핵심 원리

양자 오라클과 위상 킥백

양자 오라클은 유니터리 연산 로 구현된다.

보조 큐비트(ancilla)를 상태로 준비하면 위상 킥백(phase kickback) 현상에 의해

가 성립한다. 함수값 가 보조 큐비트를 변경하는 대신 전체 위상으로 인코딩되는 것이 핵심이다.

알고리즘 절차

  1. 초기화: 입력 레지스터 개를 , 보조 큐비트를 로 설정한다.
  2. 첫 번째 하다마르 변환: 모든 큐비트에 하다마르 게이트 를 적용한다.

  1. 오라클 적용: 를 한 번 호출한다. 입력 레지스터의 상태는

  1. 두 번째 하다마르 변환: 입력 레지스터에 다시 을 적용한다.

여기서 는 비트별 내적이다.

  1. 측정: 입력 레지스터를 측정한다.
    • 이 나오면 → 상수 함수
    • 그 외의 결과가 나오면 → 균형 함수

왜 작동하는가

상태의 진폭은 을 대입하면 이다.

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

**간섭(interference)**이 두 경우를 완벽하게 구분해 준다.


예시·응용

사례 (Deutsch 알고리즘)

가장 단순한 경우로, 상수 함수( 또는 )와 균형 함수( 또는 )를 구분한다.

from qiskit import QuantumCircuit, transpile
from qiskit_aer import AerSimulator

def deutsch_circuit(balanced=True):
    qc = QuantumCircuit(2, 1)
    # 초기화: 보조 큐비트 |1>
    qc.x(1)
    # 첫 번째 하다마르
    qc.h([0, 1])
    # 오라클 (balanced: CNOT, constant: 아무것도 안 함)
    if balanced:
        qc.cx(0, 1)
    # 두 번째 하다마르
    qc.h(0)
    qc.measure(0, 0)
    return qc

sim = AerSimulator()
for label, bal in [("constant", False), ("balanced", True)]:
    qc = deutsch_circuit(balanced=bal)
    job = sim.run(transpile(qc, sim), shots=1024)
    print(f"{label}: {job.result().get_counts()}")
# constant: {'0': 1024}
# balanced: {'1': 1024}

측정 결과가 0이면 상수, 1이면 균형으로 결정론적으로 판별된다.

이론적 의의

Deutsch-Jozsa 알고리즘은 실제 산업 응용보다 양자 우위(quantum advantage)를 최초로 엄밀하게 증명한 원형으로서 가치가 있다. 이후 Bernstein-Vazirani 알고리즘, Simon 알고리즘, 나아가 Shor·Grover 알고리즘의 이론적 토대를 제공한다. 또한 양자 회로 설계에서 오라클 추상화, 위상 킥백, 하다마르 기반 간섭이라는 세 가지 기법을 체계적으로 활용하는 방법을 가르쳐 준다.


정리

Deutsch-Jozsa 알고리즘은 세 가지 양자역학적 자원을 정교하게 결합한다. ① 중첩: 모든 개 입력을 단일 상태로 동시 표현, ② 위상 킥백: 함수값을 계산 기저가 아닌 위상에 저장, ③ 간섭: 두 번째 하다마르 변환에서 상수/균형의 신호를 증폭·상쇄. 고전 복잡도 대비 양자 복잡도는 로, 지수적 격차를 가장 명쾌하게 보여주는 알고리즘이다.

Exercises

연습문제

  1. Q1함수 $f:\{0,1\}^2 \to \{0,1\}$가 $f(00)=0,\, f(01)=1,\, f(10)=0,\, f(11)=1$로 정의될 때, 이 함수는 상수 함수인가 균형 함수인가? Deutsch-Jozsa 알고리즘을 적용했을 때 최종 측정 결과는 무엇인가?

    힌트 보기

    출력값이 0인 경우와 1인 경우의 개수를 세어 보라. 균형 함수라면 $|0\rangle^{\otimes 2}$ 진폭이 얼마인지 계산해 보라.

    해설 보기

    출력이 0인 입력은 $\{00, 10\}$ 2개, 출력이 1인 입력은 $\{01, 11\}$ 2개로 균형 함수다. $|00\rangle$ 진폭은 $\frac{1}{4}[(-1)^0+(-1)^1+(-1)^0+(-1)^1] = \frac{1}{4}[1-1+1-1]=0$이므로 측정 결과는 반드시 $|00\rangle$이 아닌 상태, 즉 균형 함수로 판별된다.

  2. Q2보조 큐비트를 $|0\rangle$ 상태로 초기화하고 오라클을 적용하면 위상 킥백이 발생하지 않는 이유를 설명하라.

    해설 보기

    위상 킥백은 $U_f|x\rangle|y\rangle = |x\rangle|y \oplus f(x)\rangle$에서 $|y\rangle=|-\rangle$일 때 발생한다. $|-\rangle$는 $|0\rangle$과 $|1\rangle$의 특정 위상 중첩이므로, $y \oplus f(x)$가 $y$의 위상을 $(-1)^{f(x)}$로 바꾸는 효과를 낸다. 보조 큐비트가 $|0\rangle$이면 $0 \oplus f(x) = f(x)$로 큐비트 자체가 변할 뿐 위상이 입력 레지스터로 전달되지 않아, 오라클이 입력 레지스터에 어떠한 위상도 부여하지 못한다.

  3. Q3Deutsch-Jozsa 알고리즘은 결정론적(deterministic)인가, 확률적(probabilistic)인가? 또한 같은 문제를 고전 확률 알고리즘(무작위 샘플링)으로 풀 때의 복잡도와 비교하라.

    해설 보기

    Deutsch-Jozsa 알고리즘은 **결정론적**이다. 단 1번의 오라클 호출 후 측정 결과가 항상 옳은 답을 준다(오류 확률 0). 반면 고전 확률 알고리즘은 $k$번 무작위로 입력을 샘플링하면 오류 확률이 $2^{-(k-1)}$로 줄어든다. 오류 확률을 $\epsilon$ 이하로 만들려면 $O(\log(1/\epsilon))$번의 질의가 필요하므로, 완전한 확실성을 원하면 여전히 지수적인 질의가 필요하다. 양자 알고리즘은 이를 1번으로 해결한다는 점에서 결정론적 고전 알고리즘 대비 지수적 우위를 가진다.

관련 용어

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

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분 읽기