ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • chatgpt가 알려준, 하다마드(Hadamard) 게이트란?
    양자컴퓨팅 2025. 3. 31. 09:00

    하다마드(Hadamard) 게이트

    하다마드 게이트는 양자 컴퓨팅에서 단일 큐비트에 적용되는 가장 기초적이고 중요한 게이트 중 하나입니다. 고전적으로 표현하자면, 0과 1 두 가지 상태만 존재하는 비트(bit)로는 표현하기 힘든 ‘중첩(superposition)’ 상태를 쉽게 만들 수 있게 해주는 연산이기도 합니다. 아래에서는 하다마드 게이트의 정의, 작동 원리, 주요 특징 등을 순서대로 설명해 드리겠습니다.


    1. 행렬 표현

    하다마드 게이트는 일반적으로 다음과 같은 2×2 행렬로 표현됩니다.

    $$ H = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix} $$

    • 앞에 곱해진 \(\frac{1}{\sqrt{2}}\) 는 정규화(Normalization)를 위해 곱해지는 상수입니다.
    • 행렬의 (1,1) 위치와 (1,2) 위치가 1, (2,1)이 1, (2,2)는 -1의 값을 가집니다.

    2. 기본 작동 원리

    양자 컴퓨터에서 상태 \(\lvert 0 \rangle\) 또는 \(\lvert 1 \rangle\) 를 가진 단일 큐비트에 하다마드 게이트를 적용하면, 다음과 같은 변환이 일어납니다.

    1. \(\lvert 0 \rangle \xrightarrow{H} \frac{1}{\sqrt{2}}\bigl(\lvert 0 \rangle + \lvert 1 \rangle\bigr)\)
      0 상태가 0과 1이 동일한 확률( \(\frac{1}{2}\) )로 섞인 균등 초양자(superposition) 상태로 변환됩니다.
    2. \(\lvert 1 \rangle \xrightarrow{H} \frac{1}{\sqrt{2}}\bigl(\lvert 0 \rangle - \lvert 1 \rangle\bigr)\)
      1 상태 또한 0과 1이 균등하게 섞인 상태가 되지만, \(\lvert 1 \rangle\) 에 마이너스 부호(위상)가 붙은 형태로 변환됩니다.

    요약하자면, 단일 큐비트를 ‘균등 중첩 상태’로 만들어 주는 게이트라고 할 수 있습니다.


    3. 주요 특징

    1. 자기-역원(Involution)
      하다마드 게이트는 \(H \cdot H = I\) (항등 행렬)가 성립합니다. 즉, 하다마드를 두 번 적용하면 원래 상태로 돌아옵니다.
      수식으로는 \(H^2 = I\) 라고도 표현합니다.
    2. 위상 정보
      \(\lvert 1 \rangle\) 상태에 대해 마이너스 부호(위상 차이)가 추가됩니다. 양자 컴퓨팅에서는 단순한 +/-의 차이도 중요한 의미가 있기 때문에, 이를 활용해 간섭(interference)을 일으키거나, 특정 연산에서 상쇄/증폭을 유도할 수 있습니다.
    3. 균등 분포 생성
      하다마드는 한 큐비트 상태를 균등 초양자 상태로 만들기 때문에, 여러 큐비트에 동시에 하다마드를 적용하면, 모든 가능한 입력 상태(0과 1의 조합)가 균등한 확률 진폭으로 중첩되는 상태를 쉽게 얻을 수 있습니다.
      예를 들어, n개의 큐비트를 모두 \(\lvert 0 \rangle\) 로 준비한 뒤 각각에 하다마드를 적용하면, \[ \frac{1}{\sqrt{2^n}} \sum_{x=0}^{2^n - 1} \lvert x \rangle \] 형태가 됩니다. 이는 2n 가지 상태가 모두 골고루 섞인 상태가 되어, 다양한 양자 알고리즘(예: 양자 푸리에 변환, 그루버 검색, 양자 파란색-빨간색 알고리즘 등)의 초기에 자주 등장합니다.

    4. 예시

    1) 단일 큐비트 초양자 상태 생성

    from qiskit import QuantumCircuit
    
    qc = QuantumCircuit(1)   # 1큐비트
    qc.h(0)                  # 0번 큐비트에 Hadamard 적용
    qc.draw(output='mpl')
    

    이 코드를 실행하면, 0 큐비트가 \(\frac{1}{\sqrt{2}}(\lvert 0 \rangle + \lvert 1 \rangle)\) 상태로 변환됩니다.

    2) 여러 큐비트에 적용

    from qiskit import QuantumCircuit
    
    qc = QuantumCircuit(3)   # 3큐비트
    qc.h([0, 1, 2])          # 모든 큐비트에 Hadamard 적용
    qc.draw(output='mpl')
    

    3개의 큐비트가 동시에 하다마드 연산을 받아, \(\frac{1}{\sqrt{8}} \sum_{x=0}^{7} \lvert x \rangle\) 형태의 균등 초양자 상태가 생성됩니다.


    5. 양자 알고리즘에서의 역할

    • 그루버 검색(Grover's search)
      하다마드 게이트를 이용해 n큐비트 상태를 처음부터 균등 분포로 만들어 놓고, 검색할 해답 상태가 점차적으로 ‘강조’되도록 반복 연산을 적용합니다.
    • 양자 푸리에 변환(QFT, Quantum Fourier Transform)
      QFT의 핵심 단계 중 하나인 위상 조정에서 하다마드 게이트가 자주 등장합니다.
    • 슈어 알고리즘(Shor's algorithm)
      Shor의 알고리즘에서도 푸리에 변환 과정을 거치는데, 여기서도 하다마드가 여러 큐비트 초기에 적용됩니다.

    6. 정리

    • 정의: \(H = \frac{1}{\sqrt{2}}\begin{pmatrix}1 & 1\\1 & -1\end{pmatrix}\)
    • 효과:
      • \(\lvert 0 \rangle\) → \(\frac{1}{\sqrt{2}}(\lvert 0 \rangle + \lvert 1 \rangle)\)
      • \(\lvert 1 \rangle\) → \(\frac{1}{\sqrt{2}}(\lvert 0 \rangle - \lvert 1 \rangle)\)
    • 특징:
      • 자기-역원(\(H^2 = I\))
      • 위상 변화 (1 상태에서 마이너스 부호)
      • 여러 큐비트 상태를 빠르게 균등 분포로 만들 수 있음
    • 응용:
      • 양자 알고리즘(그루버 검색, Shor 알고리즘, 양자 푸리에 변환 등)에서 중첩 상태를 초기화하는 단계로 자주 사용

    한마디로, 하다마드 게이트는 “한 큐비트를 0과 1의 균등 중첩 상태로 만들어 주는 가장 기본적인 양자 게이트”라고 정리할 수 있습니다. 여러 큐비트를 한 번에 중첩 상태로 만드려면 각 큐비트에 하다마드를 적용하는 식으로 많이 활용됩니다.

    댓글

Designed by Tistory.