2 minute read

IBM Quantum Composer

서론

image

IBM Quantum에서 실제로 일반 유저들이 양자 회로를 만들어서 실제 양자컴퓨터나 시뮬레이터에서 실행 할 수 있게 IBM Quantum Composer이라는 programming tool을 지원한다.

시작하기

image

IBM Quantum Composer에 들어가면 간편하게 양자 회로를 구축할 수 있는 화면이 보인다.

image

우선 개인적으로 눈부신 하얀 화면보다 검은 다크 테마가 편하기 때문에 Sign in을 눌러서 IBMid를 이용해 IBM Quantum에 로그인 하고 테마를 검은색으로 바꿔주었다.

추가로 5개 이상의 큐비트를 사용하거나 실행하려는 시뮬레이터를 고르거나 실제 양자 장치에서 테스트하려면 IBM Quantum에 로그인이 필수적이다.

양자 회로 준비

image

우선 IBM Quantum Composer에 들어가게 되면 생소할 수도 있고 익숙할 수도 있는 줄과 알파벳이나 그림이 그려진 네모들이 보일 것이다.

image

혹시나 빈 회로가 보이지 않는다면 New file + 을 눌러서 새로운 빈 회로를 만들어 주자.

Gate(게이트)

image

위 네모 안에 그려져 있는 것들은 게이트 들이다. 원하는 게이트를 줄 안에 끌어당겨서 원하는 위치(큐비트)에 놓을 수 있다.

Qubit(큐비트)

image

줄 옆에 그려져 있는 알파벳은 각 큐비트와 일반 비트를 의미한다. 큐비트의 개수를 늘리고 싶다면 q와 c 사이에 있는 + 를 눌러서 추가해줄 수 있다. 또한 큐비트를 없애고 싶다면 원하는 큐비트에 마우스를 올려서 쓰레기통 모양 🗑 을 눌러서 없애주자.

  • q는 큐비트를 의미한다.
  • c는 고전적 일반 비트를 의미한다.

양자 회로 만들기

이 포스트에서 만들어볼 회로는 Bell State라는 회로다. 간단히 말하면 Bell State는 Bell test를 통해 얽힌 상태의 국소 숨김 변수 이론 (local hidden variable theory)으로 설명할 수 없으며 고전적인 것을 벗어나 그 이상과 상관관계가 있어야 한다는 것을 보여준다. 이후의 포스트에서 더욱 자세히 설명할 예정이다.

image

Bell State회로를 만들기 위해서는 2개의 큐비트와 1개의 일반적인 비트가 필요하니 그림과 같이 준비해주자. 우선 아무런 게이트가 없기 때문에 아래 Probabilities를 보면 두 개의 큐비트들, q0q100으로 100% 확률로 나타내는 것이 보여진다.

H gate (하다마드 게이트) 회로에 추가하기

image

위 gate가 있는 리스트에서 image를 끌어당겨서 큐비트 0에다가 놓아주었다. H gate를 빈 회로에 놓는 순간 아래 그래프들이 바뀌어 50% 확률로 00, 50% 확률로 01으로 회로 결과가 바뀌었다.

CNOT gate 회로에 추가하기

image

이번에는 위 게이트에서 image를 끌어당겨서 image를 큐비트 q0에, image를 큐비트 q1에 놓아서 위 사진과 같에 양자 회로를 만들어주자. CNOT(Control-Not) gate는 image가 있는 큐비트의 상태에 따라서 image가 놓아진 큐비트의 상태가 바뀌어진다. 따라서 위의 회로에서는 50%확률로 00, 50%확률로 11으로 회로 결과가 그래프를 통해서 바뀌었다는것을 확인할수 있다.

측정 연산자 회로에 추가하기

image

측정 연산자는 image와 같이 생겼다. 측정 연산자를 각 큐비트 q0q1에 추가해 고전적 일반 비트(classical bit) 에 기록한다. 위와 다르게 중첩 상태의 큐비트들이 측정되었기에 결과적으로 Statevector 그래프를 통해서 00이라는 측정 결과가 나왔다는 것을 확인할 수 있다.

시뮬레이터/장치를 고르고 실행하기

image

위와 같이 양자 회로를 만들었다면 Setup and run을 눌러 양자 회로를 테스트해 볼 시뮬레이터나 실제 양자 기계를 선택해보자.

image

Setup and run을 누르게 되면 위와 같이 사용할 시뮬레이터/기계 이름과 얼마나 shot을 보낼 건지 물어본다. 여기서 shots은 양자 중첩 상태를 관찰하여 측정하는 횟수이다. 많은 관찰을 하여 높은 확률로 정확한 결과를 얻을 수 있다. 각 기계나 시뮬레이터에서 See details를 눌러서 상세 정보를 확인할 수 있다.

image

실제 양자장치를 사용하지 않고 시뮬레이터를 사용하는 것이면 검색창에서 qasm을 검색해 ibmq_qasm_simulator을 사용하는 것을 추천한다. 이번 bell state 양자 회로를 이용하여 사진과 같이 qasm 시뮬레이터에 1024번 shots을 쏴주었다.

image

시뮬레이터나 장치를 골라 실행을 눌러주었다면 Composer Jobs아래에 대기중이나 완료된 결과를 볼 수 있다.

image

완료된 결과를 누르게 되면 간단하게 측정 결과를 보여주고 See more details를 누르면 더 상세 정보를 알 수 있다.

Transpiled circuit

image

상세 정보 중에 Transpiled circuit을 볼 수 있는데 이는 선택한 시뮬레이터나 실제 양자 기계가 기존 회로(Original circuit)을 어떻게 transpile하는지 보여준다. 따라서 사용하는 시뮬레이터나 장치에 따라 다른 Transpiled circuit을 보여줄 수도 있다.

ibmq_manila

image

image

위 사진에는 같은 회로를 ibmq_manila라는 실제 장치에 돌렸을때 나온 다른 결과이다.

유명한 회로들도 IBM Quantum Composer에 돌려서 가지고 놀아보면 은근 재미있다.

Leave a comment