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

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

Deutsch-Jozsa 알고리즘 — 단 한 번의 평가로 함수의 성질 판별

Deutsch-Jozsa 알고리즘은 주어진 함수가 상수 함수인지 균형 함수인지를 단 한 번의 오라클 평가만으로 결정론적으로 판별한다. 고전 컴퓨터가 최악의 경우 지수적 횟수의 평가를 요구하는 문제를 양자 중첩과 위상 반전으로 해결하며, 이후 등장하는 수많은 양자 알고리즘의 원형(prototype)이 되는 구조를 담고 있다.

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

개념 소개

인 함수가 주어졌다고 하자. 이 함수는 두 가지 유형 중 하나임이 보장된다.

  • 상수 함수(constant function): 모든 입력에 대해 항상 또는 항상 을 출력한다.
  • 균형 함수(balanced function): 가능한 개의 입력 중 정확히 절반에서 , 나머지 절반에서 을 출력한다.

고전 컴퓨터로 이를 확실히 판별하려면 최악의 경우 번의 함수 평가가 필요하다. 라면 수십억 번의 쿼리가 불가피하다. Deutsch-Jozsa 알고리즘은 이 문제를 단 한 번의 오라클 쿼리로 결정론적으로 해결한다. 이는 양자 컴퓨터가 특정 문제에서 고전 컴퓨터를 지수적으로 능가할 수 있다는 사실을 명확히 보인 초기 사례 중 하나다.


핵심 원리

양자 오라클과 위상 반전

알고리즘은 개의 큐비트를 사용한다. 앞의 개는 입력 레지스터, 마지막 1개는 보조(ancilla) 큐비트다. 양자 오라클 는 다음과 같이 정의된다.

보조 큐비트를 상태로 준비하면, 위상 반전(phase kickback) 현상이 발생한다.

함수값 가 보조 큐비트 대신 입력 큐비트의 전역 위상으로 인코딩되는 것이 핵심이다.

알고리즘 전개

1단계. 초기화

2단계. 전체 Hadamard 변환

3단계. 오라클 적용

4단계. 입력 레지스터에 Hadamard 재적용 후 측정

상태가 측정될 진폭은 다음과 같다.

  • 상수 함수: 모든 항의 부호가 동일하므로 합이 , 즉 . 측정 결과는 반드시 .
  • 균형 함수: 양수 항과 음수 항이 완전히 상쇄되어 합이 . 이 측정될 확률은 .

측정 결과 하나만으로 판별이 완료된다.


예시·응용

: 원래의 Deutsch 알고리즘

일 때는 네 가지 함수가 존재한다.

함수 유형
0 0 상수
1 1 상수
0 1 균형
1 0 균형

고전적으로는 두 번 평가해야 구분할 수 있지만, 양자 알고리즘은 한 번으로 충분하다.

Python 구현 (Qiskit)

from qiskit import QuantumCircuit
from qiskit_aer import AerSimulator

def deutsch_jozsa(n, oracle='constant'):
    qc = QuantumCircuit(n + 1, n)
    qc.x(n)                    # 보조 큐비트를 |1>로 초기화
    qc.h(range(n + 1))         # 전체 Hadamard
    qc.barrier()
    # 오라클: 균형 함수는 각 입력 큐비트에 CNOT 적용
    if oracle == 'balanced':
        for i in range(n):
            qc.cx(i, n)
    qc.barrier()
    qc.h(range(n))             # 입력 레지스터에 Hadamard 재적용
    qc.measure(range(n), range(n))
    return qc

sim = AerSimulator()
for oracle_type in ['constant', 'balanced']:
    qc = deutsch_jozsa(3, oracle=oracle_type)
    counts = sim.run(qc, shots=1).result().get_counts()
    print(f"{oracle_type}: {counts}")
# constant → {'000': 1}  (반드시 전부 0)
# balanced → {'111': 1}  (0이 아닌 비트스트링)

측정 결과가 이면 상수 함수, 그 외의 상태이면 균형 함수로 판별한다.

후속 알고리즘과의 연결

Deutsch-Jozsa 알고리즘의 Hadamard → 오라클 → Hadamard 구조는 이후 다음 알고리즘들의 핵심 골격이 된다.

  • Bernstein-Vazirani 알고리즘: 숨겨진 비트스트링을 단 한 번의 쿼리로 복원
  • Simon 알고리즘: 숨겨진 주기를 지수적으로 빠르게 찾음
  • Grover 탐색: 오라클 반복 구조의 기초

정리

Deutsch-Jozsa 알고리즘은 양자 중첩이 만드는 대규모 병렬성과 위상 반전이라는 두 가지 양자 자원을 결합한다. 오라클은 함수 정보를 위상에 새기고, 두 번째 Hadamard 변환은 전역 간섭을 통해 그 위상 정보를 진폭—즉 측정 가능한 물리량—으로 변환한다. 고전적 지수 복잡도 문제를 상수 쿼리로 해결하는 이 구조는 양자 알고리즘 설계의 원형으로서, 이후 등장하는 알고리즘들을 이해하는 데 필수적인 출발점이 된다.

Exercises

연습문제

  1. Q1고전 컴퓨터에서 $n=10$인 Deutsch-Jozsa 문제를 최악의 경우 확실히 판별하려면 몇 번의 함수 평가가 필요한가?

    힌트 보기

    최악의 경우는 앞의 $2^{n-1}$번 평가가 모두 같은 값을 반환할 때다.

    해설 보기

    $2^{n-1}+1 = 2^9+1 = 513$번이 필요하다. 처음 512번이 모두 같은 값을 반환해도, 상수 함수인지 균형 함수인지 확정하려면 513번째 평가가 필요하다. 양자 알고리즘은 이를 단 1번으로 해결한다.

  2. Q2보조 큐비트를 $|{-}\rangle$ 대신 $|0\rangle$ 상태로 준비하면 알고리즘이 올바르게 동작하는가? 그 이유를 설명하라.

    해설 보기

    올바르게 동작하지 않는다. $|y\rangle = |0\rangle$일 때 오라클 $U_f|x\rangle|0\rangle = |x\rangle|f(x)\rangle$은 $f(x)$를 출력 큐비트에 저장할 뿐, 입력 큐비트의 위상을 변화시키지 않는다. 위상 반전이 발생하려면 보조 큐비트가 반드시 $|{-}\rangle = (|0\rangle - |1\rangle)/\sqrt{2}$이어야 한다. 이 상태에서만 $f(x)$의 값이 $(-1)^{f(x)}$의 위상으로 인코딩된다.

  3. Q3$n=2$이고 $f(00)=0, f(01)=1, f(10)=1, f(11)=0$인 함수에 Deutsch-Jozsa 알고리즘을 적용할 때, 두 번째 Hadamard 변환 이후 $|00\rangle$ 상태의 진폭을 계산하고, 측정 결과를 예측하라.

    힌트 보기

    $\alpha_{00} = \frac{1}{2^2}\sum_{x} (-1)^{f(x)}$를 직접 계산해보라.

    해설 보기

    $\alpha_{00} = \frac{1}{4}\left[(-1)^0 + (-1)^1 + (-1)^1 + (-1)^0\right] = \frac{1}{4}(1 - 1 - 1 + 1) = 0$. 이 함수는 $f(00)=f(11)=0$, $f(01)=f(10)=1$이므로 균형 함수다. 진폭이 $0$이므로 $|00\rangle$이 측정될 확률은 $0$이고, 측정 결과는 반드시 $|00\rangle$ 이외의 상태(예: $|01\rangle$, $|10\rangle$, $|11\rangle$ 중 하나)가 나온다.

관련 용어

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

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