본문 바로가기

전체 글

Qiskit 예제 - 양자 위상 추정 (Quantum Phase Estimation, QPE) 이번 포스팅에서는 양자 위상 추정 방법에 대해 알아보도록 하겠습니다. 양자 위상 추정(Quantum Phase Estimation, QPE)은 고윳값 문제를 해결하는 알고리즘으로 양자 화학, 양자 기계 학습에서 활용되는 중요한 알고리즘입니다. 양자 위상 추정을 이용해 풀고 싶은 문제는 아래와 같은 고윳값 문제입니다\begin{eqnarray} A {\pmb x} = \lambda {\pmb x} \end{eqnarray} 양자 위상 추정은 이 문제에 대해서, 주어진 연산자가 유니타리 연산자일 때 고윳값을 찾는 문제입니다. 유니타리 연산자란?유니타리 연산자의 정의는 아래와 같습니다:\begin{eqnarray} U^\dagger U = I\end{eqnarray}여기서 $U^\dagger$는 주어진 연산.. 더보기
Qiskit을 이용한 양자 컴퓨팅 예제 (7) - 양자 푸리에 변환 (Quantum Fourier Transform) 이번 포스팅에서는 양자 푸리에 변환에 대해 알아보도록 하겠습니다. 양자 푸리에 변환(Quantum Fourier Transform, QFT)은 이산 푸리에 변환(Discrete Fourier Transform, DFT)을 큐비트 상태에 적용하여 위상에 대한 정보를 얻어내는 변환입니다.  이산 푸리에 변환 (Discrete Fourier Transform, DFT)어떠한 유한한 이산 신호(Sample data)가 있을때, 이를 주파수 도메인으로 변환하는 연산을 우리는 "이산 푸리에 변환"이라고 부릅니다. 주어진 데이터 샘플 $x_0, x_1, \cdots x_{N-1}$에 대해서, 이산 푸리에 변환에 대한 수학적 정의는 아래와 같습니다.\begin{eqnarray} y_k = \frac{1}{\sqrt{N.. 더보기
Qiskit을 이용한 양자 컴퓨팅 예제 (6) - 양자 상태의 측정 (Measurement) 이번 포스팅에서는 양자 상태의 측정에 대해 알아보도록 하겠습니다. 고전 물리학에서는 운동 방정식이 정해진다면, 물체의 상태를 정확하게 예측할 수 있습니다. 그렇기 때문에, 측정이라는 행위는 상태에 영향을 미치지 않고 예측과 정확히 일치합니다. 그러나 양자 물리학에서는 입자의 상태가 고전적으로 관측 가능한 상태들의 중첩으로 기술이 되며, 측정을 통해 상태가 결정됩이다. 예를 들면, 어떠한 양자 정보 $|\Psi \rangle$ 상태는 고전적 정보의 상태인 $|0\rangle$ 또는 $|1 \rangle$ 상태를 가질 수 있습니다. 따라서, $|\Psi \rangle$는 아래와 같이 중첩으로 기술이 가능합니다:\begin{eqnarray} | \Psi \rangle = \alpha |0 \rangle + \.. 더보기
Qiskit을 이용한 양자 컴퓨팅 예제 (5) - 이진 연산자: CNOT, CZ 게이트 이번 포스팅에서는 CNOT 게이트 (Controlled-NOT Gate)와 CZ 게이트 (Controlled-Z Gate)에 대해 알아보겠습니다. CNOT 게이트CNOT 게이트는 두 개의 큐비트 상태에 대해 적용되는 연산자입니다. 첫번째 큐비트는 제어 큐비트(Control qubit), 두 번째 큐비트는 타겟 큐비트(Target qubit)로 정의됩니다. 이에 대해 CNOT 게이트는 제어 큐비트의 상태에 따라 타겟 큐비트에 연산을 수행할지 여부를 결정합니다. 제어 큐비트가 $|0\rangle$ 상태일 경우, 타겟 큐비트에는 아무런 연산도 적용되지 않습니다.제어 큐비트가 $|1\rangle$ 상태일 경우, 타겟 큐비트에는 NOT 연산자(즉, X 게이트)를 적용하여 상태를 반전시킵니다.이러한 CNOT 게이.. 더보기
Qiskit을 이용한 양자 컴퓨팅 예제 (4) - 이진 연산자: SWAP 게이트 이번 포스팅에서는 큐비트가 두 개인 경우에 대해 적용 가능한 이진 연산자중에서 SWAP 게이트에 대해 알아보겠습니다. 2큐비트 시스템2큐비트 시스템은 말 그대로 2개의 큐비트를 갖는 상태를 의미합니다. 하나의 큐비트가 0 또는 1을 가질 수 있으므로, 2 큐비트 상태는 $|00\rangle$, $|01\rangle$, $|1 0\rangle$, $|11\rangle$ 등 총 4개의 상태를 가질 수 있습니다. 이를 행렬로 표현하면 아래와 같습니다:\begin{eqnarray} |00\rangle = \begin{pmatrix} 1 \\ 0 \\ 0 \\ 0 \end{pmatrix}, \ \ \ \ |01\rangle = \begin{pmatrix} 0 \\ 1 \\ 0 \\ 0 \end{pmatrix}, .. 더보기
Qiskit을 이용한 양자 컴퓨팅 예제 (3) - 아다마르 게이트 (Hadamard Gate) 이번 포스팅에서는 양자 컴퓨팅에서 아주 주용한 역할을 하는 아다마르 게이트 (Hadamard Gate)에 대해 알아보겠습니다. 아다마르 게이트는 다음과 같은 $2\times 2$ 행렬로 표현이 됩니다:$$ {\pmb H} = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix}$$ 이러한 게이트를 큐비트에 적용해 보면 다음과 같은 결과가 나옵니다:$$ {\pmb H} | 0 \rangle = \frac{1}{\sqrt{2}}\begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix} \begin{pmatrix} 1 \\ 0 \end{pmatrix} = \frac{1}{\sqrt{2}} \left[ \begin{pmatri.. 더보기