[2025.06.27] : Link 변경
첨부파일 1. jupyter notebook 형식
첨부파일 2. pdf 자료
이 글은 IBM의 자료들을 이용하여 포스팅 했습니다. (1차 작성 날짜 : 2025.06.17)
혹시 잘못된 정보가 있으면 말씀해주세요!
1. Introduction
배울 내용 정리
- Single-qubit gates
- Bloch Sphere
- Superpositon
- Measurement
- Two-qubit gates and entanglement
- Circuit depth
3. Single-qubit quantum gate (이론 부분, 참고용)
3.1 Quantum state and Bloch sphere
기존 컴퓨터의 bit은 0과 1로 나타내지만, 양자 컴퓨터에 사용되는 qubit은 |0>과 |1>로 나타낸다.
이 qubit은 0과 1 상태를 동시에 가질 수 있으며, 아직 정해지지 않은 상태에 관해 중첩(superposition)이라고 얘기한다.
그리고 하나의 qubit의 상태는 다음과 같이 | ψ > 형식으로 나타낼 수 있다.
여기서 측정 시 |0>이 나올 수 있는 확률은 |α|^2, |1>이 나올 수 있는 확률은 |β|^2
왜 뜬금없이 θ가 나왔는가? 하면
이 |ψ> 는 bloch 구의 형식으로 나타낼 수 있기 때문이다.
bloch 구를 통해, 직관적으로 이 vector가 어떤 상태인지 한 눈에 볼 수 있다는 장점이 있다.
이 다음은 code를 다뤄볼 시간이다.
첫 code 위쪽에 qiskit을 설치해주자.
!pip install qiskit
!pip install qiskit_aer
!pip install qiskit_ibm_runtime
!pip install 'qiskit[visualization]'
그 다음에 import에 오류가 없으면 다음으로 넘어갈 수 있다.
(오류가 생긴다면 gemini나 다른 AI한테 물어보는 것을 추천)
- 1개의 qubit으로 제작한 양자 회로
-. 양자 회로에 X 게이트 구현
|0>에 X 게이트를 가하면 |1>가 되고, |1>에 X 게이트를 가하면 |0>이 된다.
( X|0> = |1>, X|1> = |0>)
위와 같이 나타낼 수 있으며, X 게이트에 |0>을 가했기 때문에, 결과물은 |1>이 된다.
statevector가 [0+0j, 1+0j] 형식으로 나온 것을 알 수 있으며, 연산 결과 |1>이 되었다는 것을 bloch 구로 표현된다.
-. 양자 회로에 H 게이트 구현
H 게이트는 하다마드(Hadamard) 게이트인데, 양자 컴퓨팅에서는 상당히 중요한 개념이다.
H 게이트를 거치면 중첩(superposition) 상태가 되서 0과 1의 확률이 반반이 되는데,
중첩된 상태에서 한 번만 계산해도 계산이 완료되기 때문이다.
H|0> = |+>, H|1> = |->이 되며, H를 두번 가해주면 원 상태로 돌아온다.
|0>에 H gate를 적용해서, bloch 구로 살펴봤을 때 |+>가 되었다.
각 qubit에 어떤 게이트를 가해주냐에 따라, 다음과 같이 변하는 것을 알 수 있다.
3.3 Measurement
- Qiskit Aer 시뮬레이터 : 일반 컴퓨터를 가상의 양자 컴퓨터처럼 만들어주는 시뮬레이션 엔진.
실제 양자 컴퓨터를 구동하는 데에는 자원이 많이 들기 때문에, 시뮬레이션을 사전에 구동해보는 것도 좋은 방법이다.
먼저, classic bit과 qubit을 하나씩 제작 후, H 게이트 후 측정하는 회로를 작성
code를 보면, Backend를 Aer 시뮬레이터로 지정 후, Transpile(양자 컴퓨터가 이해하고 실행할 수 있게 code를 바꾼다!)을 한다.
그 뒤에 job을 run하는 형식을 취한다.
backend는 앞에서 저장한 하드웨어(여기서는 Aer 시뮬레이터)이며, optimization 레벨은 0부터 3까지 있다.
0은 최적화를 하지 않고, 숫자가 높아질 수록 최적화를 더 많이 한다.
|0>에 H 게이트를 적용하면 |0>이 나올 확률이 50프로, |1>이 나올 확률이 50프로이다.
이 시뮬레이션 결과는 각각 나올 확률이 50프로에 근접한 것을 알 수 있으며, code를 돌릴 때마다 같은 결과가 나오진 않는다.
4. Multi-qubit quantum gate and entanglement (qubit이 여러개일 때와 얽힘)
4.1 Multi-qubit quantum circuit
code는 qubit이 1개 있을 때와 크게 다를 점은 없다.
차근차근 예제를 실행해보면 되겠다.
4.2 Multi-qubit quantum gate
- CNOT 게이트
- 만약 control qubit이 |1>이면, target qubit에 X 게이트를 적용해준다.
- 만약 control qubit이 |0>이면, target qubit은 그대로 둔다.
※ Qiskit은 Little Endian 형식으로, |q1q0> 순으로 qubit를 표시한다.
4.3 Quantum entanglement and execution on a real quantum device
위와 같은 상태를 "entangled", 얽혀있다라고 볼 수 있으며, 위와 같은 식은 Bell state라고 얘기한다.
얽힘 (Entanglement)이란?
- 개념: 둘 이상의 큐비트가 하나의 '운명 공동체'처럼 묶여 있는 상태. 이들은 보이지 않는 끈으로 연결되어 있어서, 아무리 멀리 떨어져 있어도 하나의 큐비트를 측정하면 그 결과가 즉시 다른 큐비트의 상태에 영향을 줌.
벨 상태 (Bell State)란?
- 개념: 단 두 개의 큐비트로 만들 수 있는 가장 간단하고 완벽한 얽힘 상태. 벨 상태에는 총 4가지 종류가 있으며, 가장 유명한 것은 |Φ⁺⟩.
- 의미: 이 상태의 두 큐비트를 측정하면, 50% 확률로 둘 다 '0'이 나오고(00), 50% 확률로 둘 다 '1'이 나옴(11). '01'이나 '10' 같은 결과는 절대 나오지 않음. 즉, 첫 번째 큐비트를 측정해서 '0'이 나왔다면, 다른 쪽 큐비트는 볼 필요도 없이 '0'으로 결정됨.