소프트웨어학부생의 양자컴퓨터 학습노트 — 1. 기초 양자 회로

IBM Quantum Challenge를 진행하며 배우는 내용을 정리했습니다. 물리학적인 내용은 1도 안나오고(저도 잘 모름 ㅠ) 그저 제가 챌린지를 수행하며 이해한 내용들을 정리해서 글을 작성하고있습니다.

Image for post
Image for post
Photo by Roman Mager on Unsplash

전자컴퓨터에서 비트는 1과 0 중 하나의 상태를 가집니다. 하지만 양자컴퓨터의 큐비트는 1일 확률과 0일 확률 두 가지 상태를 지니며, 두 확률의 합은 1입니다. 또한 이 확률을 `블로흐 구면(Bloch Sphere)`라 불리는 구면 위의 임의의 점으로 나타냅니다.

Image for post
Image for post

위 이미지의 구가 블로흐 구면입니다. 구면 위에서 큐비트는 X, Y, Z 좌표를 갖게되고, Z좌표의 값이 1일 확률/0일 확률을 나타내게 됩니다. 위 이미지에서 화살표가 가리키는 좌표는 X, Y = 0 이고 Z좌표는 아래쪽(|1> 쪽)으로 완전히 향하므로 큐비트는 100%확률로 1의 값을 지니고 있습니다.

Image for post
Image for post

이미지에서는 반대로 Z좌표가 딱 중간이죠?(X, Y좌표는 신경쓰지 마세요) 그러면 0일 확률 50%, 1일 확률 50%가 됩니다. X=1, Y=0 이네요. 이제 이 큐비트의 값을 한번 관측할 경우 큐비트의 값은 이후로도 계속 고정되고, 그렇지 않으면 확률로만 나타낼 수 있는 상태가 유지됩니다. 그런데 1이나 0일 확률만 알면 되지 왜 이렇게 구표면에서의 좌표로 큐비트를 나타내는 걸까요?

그 이유는 양자컴퓨터에서 큐비트의 연산은 이 블로흐 구면에서의 좌표를 변환하는 방식으로 이루어지기 때문입니다. 잘 모르는 물리학 용어도 나오고…저는 처음에 왜 이런 이상한 구면을 쓰나 첨에 이해하기가 너무 힘들었습니다 ㅠㅠ 이론적으로는 틀릴 수도 있지만 제가 이렇게 이해했기때문에 이렇게 우선 써봅니다.

Quantum Circuit

그러면 양자컴퓨터에서 큐비트를 다루는 기본적인 회로들을 살펴봅시다.

Image for post
Image for post

위 이미지에서 제일 왼쪽의 이미지가 처음 큐비트상태입니다(100%로 0인 상태). 순서대로 H-Gate, Z-gate, 다시 H 게이트를 적용하는 모습을 보여줍니다.

Hadamard Gate (H Gate)

H Gate는 큐비트 값을 XZ 축을 중심으로 PI 만큼 회전시킵니다.

Z Gate

Z 게이트는 Z축을 중심으로 PI만큼 회전시킵니다

이 외에 X, Y 축으로 PI만큼 회전시키는 X, Y 게이트도 있습니다. X, Y게이트를 통과한 큐비트는 Z축이 반대가 되면서 1/0일확률이 뒤바뀌게 됩니다. 이는 비트연산의 NOT연산이라고도 할 수 있습니다.

여기까지는 하나의 큐비트를 다루는 연산입니다. 이제 여러 큐비트들로 이루어진 연산을 보겠습니다.

CX Gate

CX 게이트는 2개의 큐비트로 이루어진 연산입니다. 첫번째 큐비트의 값이 1일 경우 두번째 큐비트에 X게이트 연산을 수행합니다. 첫번째 큐비트 값에 따라 두번째 큐비트에 NOT 연산을 하는 셈이죠. 여기서 첫번째 비트를 컨트롤 비트, 두번째 비트를 타겟 비트라고 부르겠습니다.

이전에 말씀드렸듯 큐비트는 확률로 상태를 지닙니다. 그렇다면 두 큐비트 A, B가 있을 때 A가 1일 확률이 50%인 상태에서 CX(A, B)를 하면 B의 값은 어떻게 될까요? 50%확률로 B에 X게이트 연산이 수행되는 걸까요?

정답은 그렇습니다 😮

1번째 1000번 실행: {'0': 495, '1': 505}
2번째 1000번 실행: {'0': 487, '1': 513}
3번째 1000번 실행: {'0': 479, '1': 521}

회로를 1000번씩 여러번 실행한 결과입니다. 50%에 가까운 확률로 0 혹은 1이 나오는 모습입니다.

CZ Gate

CZ게이트는 컨트롤 비트가 1일 때 타겟 비트에 Z 게이트 연산을 수행합니다. 아래 이미지에서 타켓 비트(qubit 1)이 Z축을 중심으로 PI만큼 회전한 것을 볼 수 있습니다.

Image for post
Image for post
Image for post
Image for post

CCX Gate(Toffoli Gate)

CCX 게이트는 두 개의 컨트롤 비트가 1일 경우 타겟 비트에 X Gate 연산을 수행합니다.

더 많은 큐비트 연산들은 Qiskit 사이트에서 확인하실 수 있습니다. 이 이미지들은 IBM Qiskit 을 이용하여 수행했습니다.

Written by

2020.12.8 ~ 2022.6.9 군복무중 Serving in the South Korean Military Service

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store