npsm 새물리 New Physics : Sae Mulli

pISSN 0374-4914 eISSN 2289-0041
Qrcode

Article

Research Paper

New Phys.: Sae Mulli 2023; 73: 984-991

Published online November 30, 2023 https://doi.org/10.3938/NPSM.73.984

Copyright © New Physics: Sae Mulli.

Online 3D Simulator for Visualization of the Bloch Sphere Using VPython

VPython으로 구현한 블로흐 구의 온라인 3차원 시뮬레이터

Jong Wan Lee*

School of Semiconductor · Display Technology, Hallym University, Chuncheon 24252, Korea

Correspondence to:*jwlee@hallym.ac.kr

Received: September 28, 2023; Revised: October 27, 2023; Accepted: October 27, 2023

This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-Commercial License(http://creativecommons.org/licenses/by-nc/3.0) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.

The smallest unit of information in a quantum computer is the quantum bit. The quantum state of a quantum bit can be mapped one to one to the surface of the Bloch sphere. Looking at the Bloch sphere allows observation of the relative positions of quantum states at a glance, which can be of great help in understanding quantum states. In this work, an online 3D simulator is developed that visualizes the Bloch sphere based on VPython. Existing simulators on the web employ methods to visualize the Bloch sphere by manipulating only quantum gates, and some simulators have the problem of having to be downloaded and installed. Our simulator has the feature of allowing immediate observation of the Bloch sphere online by entering any quantum state encountered while investigating quantum computers.

Keywords: Quantum computer, Quantum bit, Bloch sphere, Physics education

양자 컴퓨터의 최소 정보 단위는 단일 양자 비트이다. 양자 비트의 양자 상태는 블로흐 구 표면에 일대일로 대응시킬 수 있다. 블로흐 구를 보면 중첩된 양자 상태의 상대 위치를 한 눈에 관찰할 수 있어 양자 상태를 이해하는데 많은 도움을 줄 수 있다. 본 논문에서는 VPython을 기반으로 블로흐 구를 가시화하는 온라인 3차원 시뮬레이터를 개발하였다. 이미 웹상에 올라와 있는 시뮬레이터들은 양자 게이트만을 조작하여 블로흐 구를 가시화하는 방법을 취하고 있고 일부 시뮬레이터는 다운로드하여 설치해야 하는 번거로움이 있다. 본 시뮬레이터는 양자 컴퓨터를 공부하면서 접하게 되는 임의의 양자 상태를 온라인으로 직접 기입하여 블로흐 구를 바로 관찰할 수 있는 특징을 가지고 있다.

Keywords: 양자 컴퓨터, 양자 비트, 블로흐 구, 물리 교육

기존의 디지털 컴퓨터 또는 고전 컴퓨터는 정보의 최소 단위로 0과 1인 비트(Bit)를 사용하고 있다. 양자 컴퓨터에서는 양자 상태 01 그리고 이들의 중첩(Superposition) 상태

ψ=α0+β1

인 양자 비트 또는 큐비트(Qubit: Quantum Bit)를 사용하고 있다. 여기서 αβ는 복소수로 다음 관계식을 만족한다.

|α|2+|β|2=1

우리가 큐비트를 측정을 할 때 결과가 0일 확률이 |α|2이고 결과가 1일 확률이 |β|2이다[1].

Figure 1은 이와 같은 상황을 도식적으로 보여주고 있다. 고전 컴퓨터의 비트가 상태 0과 1만을 선택할 수 있는 스위치에 해당한다면 양자 컴퓨터의 큐비트는 양자 상태 01을 포함한 이들의 중첩 상태를 구 표면에 대응시킬 수 있다. 이 구가 바로 블로흐 구(Bloch sphere)이다[1-6].

Figure 1. (Color online) Schematically drawn diagram of the smallest unit of information for the classical bit as a switch of 0 and 1 vs. the quantum bit as a Bloch sphere of 0 and 1.

Figure 2에 블로흐 구를 나타냈으며 구 표면에서의 양자 상태는 다음과 같다.

Figure 2. Schematically drawn diagram of the Bloch sphere with the corresponding quantum state as a function of the polar angle θ and the azimuthal angle ϕ.

ψ=cosθ20+eiϕsinθ21

이 때, 0θπ 이고 0ϕ2π이다.

Figure 3에 양자 컴퓨터에서 자주 등장하는 양자 상태 +, , i, i들을 블로흐 구에 표시하였다.

Figure 3. (Color online) Typical quantum states of superposition of 0 and 1 on the Bloch sphere. They appear frequently enough that they have names: +, , i, i. The quantum states are formulated in (4) and (5).

+=120+121=120121i=120+i21i=120i21

이 때, θ는 모두 π/2이어서 블로흐 구를 지구에 비유하자면 Eq. (4)는 모두 적도에 위치하고 있다. ϕ는 Eq. (4)의 위로부터 각각 0, π, π/2, 3π/2에 위치하고 있다. 다시 말하면,

+=cosπ/220+ei0sinπ/221=cosπ/220+eiπsinπ/221i=cosπ/220+eiπ/2sinπ/221i=cosπ/220+ei3π/2sinπ/221

이다.

따라서 본 논문의 목적은 Eq. (1)의 αβ를 각각 Eq. (3)의 cos(θ/2)eiϕsin(θ/2)로 환산하여 θ와 ϕ를 구한 후에 이를 3차원 블로흐 구에 표시하는 것이다.

3차원 블로흐 구의 가시화는 양자 이론을 교육하고 전달하는 데 유용하다. 학생들과 연구자들은 블로흐 구를 통해 양자 상태 및 연산을 시각적으로 이해할 수 있으며, 이는 양자 컴퓨팅 및 양자 정보 이론 분야의 교육에 기여할 수 있다.

블로흐 구는 양자 컴퓨팅 분야에서 중요한 개념 중 하나이다. 블로흐 구를 사용하면 양자 비트의 상태를 시각적으로 표현할 수 있으며, 양자 게이트 연산의 시각적 표현에 유용하다. 이를 토대로 최근의 연구 동향을 살펴보면 우선 양자 컴퓨팅 교육을 위한 블로흐 구의 대화형 시스템 (The interactive system of Bloch sphere for quantum computing education) 개발을 들 수 있다[7]. 사용자는 모바일 앱을 통해 양자컴퓨팅을 위한 양자비트와 양자게이트를 입력하고 이를 마이크로 컨트롤러로 전송하여 모터를 구동하여 블로흐 구를 회전시켜 단일 큐비트 양자 상태를 시각화한다. 다음으로 가상 현실에서의 블로흐 구이다[8]. 양자 컴퓨팅을 위한 교육 도구로서 몰입형 가상 현실 (Investigating Immersive Virtual Reality as an Educational Tool for Quantum Computing) 이라는 논문을 통해 저자들은 가상 현실로 만든 블로흐 구가 기존의 데스크 탑 용 블로흐 구 보다 교육적 효과가 더 크다고 논한다.

VPython[9]은 Python[10]을 기반으로 visual 모듈을 탑재한 언어로서 컴퓨터에 3차원 객체를 자유자재로 쉽게 생성할 수 있고 이를 움직이게 할 수도 있다. 현재는 VPython을 다운로드하고 설치하여 사용할 필요 없이 웹 상의 Glowscript[11]에서 프로그램을 작성한 후 바로 결과물을 받아 볼 수 있어 3차원 블로흐 구를 가시화하는데 VPython은 매우 적합하다.

Figure 4는 3차원 블로흐 구를 가시화하는 VPython 프로그램이다. 우선 글씨와 좌표축을 구축한 다음에 반지름이 10이고 불투명도가 0.2인 시안색 sphere 객체를 생성한다. 바로 블로흐 구의 표면이다. 이 때, x, y, z 좌표축을 각각 화살표의 빨간색, 초록색, 파란색으로 표시하여 쉽게 알아 볼 수 있도록 설정하였다. 아울러 상대적인 위치를 잘 구별하기 위하여 x 축에 수직인 원의 둘레, 즉 경도에 해당하는 원을 빨간색으로 표시하였다. y 축에 수직인 원은 초록색으로 그리고 지구의 적도에 해당하는 z 축에 수직인 원은 파란색으로 표시하였다. θ는 지구의 위도에 해당하는 원으로 z 축을 중심으로 30°, 60°, 90°, 120°, 150°에 각각 흰색 원(ring)을 수평으로 표시하였다. ϕ는 지구의 경도에 해당하는 원으로 x 축을 기준으로 360°를 30°씩 나누어 각각 흰색 원(ring)을 표시하였다. 따라서 시안색 블로흐 구 표면과 파란색 z 축이 만나는 점이 양자 상태 0에 해당하고 - z 축과 만나는 점이 양자 상태 1에 해당한다. 또한 x 축과 만나는 점이 양자 상태 +에 해당하고 - x 축과 만나는 점이 양자 상태 에 해당한다. 마지막으로 y 축과 만나는 점이 양자 상태 i에 해당하고 - y 축과 만나는 점이 양자 상태 i에 해당한다 (Fig. 3). 커서를 블로흐 구에 놓은 상태에서 마우스 오른쪽 버튼을 클릭하고 움직이면 블로흐 구가 3차원 상에서 구의 중심을 기준으로 회전하기 때문에 양자 상태의 상대 위치와 구의 뒷면에 놓인 양자 상태를 자세히 볼 수 있다. 계산된 양자 상태는 작은 진홍색 구(Fig. 30에 놓인 구)로 표시하였다.

Figure 4. (Color online) Listing of the VPython program of the Bloch sphere with the color of cyan. x, y and z axes are drawn with the color of red, green and blue, respectively. The whole polar angle of 180° is divided by 6 so that each has an angle of 30°. The whole azimuthal angle of 360° is divided by 12 so that each has also the angle of 30°.

Figure 5는 완성된 시뮬레이터의 모습으로 Glowscript의 BlochSphere[12]을 통해 접속할 수 있다. 아울러 본 시뮬레이터의 소스코드도 함께 볼 수 있어 시뮬레이터를 어떻게 구축하였는지도 알아 낼 수 있다. 시뮬레이터의 입력 값으로 Eq. (1)의 복소수 αβ 가 있다. α의 실수부와 허수부(i를 제외한 실수)는 각각 ALPHA real과 ALPHA imaginary 필드에 기입한다. 마찬가지로 β의 실수부와 허수부는 각각 BETA real과 BETA imaginary 필드에 기입한다. 이렇게 입력된 값을 가지고 다음에 풀어 보는 예제[1]와 같은 과정을 거쳐서 Eq. (3)의 θ와 ϕ 값을 결정한다. 양자 상태는 다음과 같다고 가정하자.

Figure 5. (Color online) Layout of the developed online 3D simulator for the visualization of the Bloch sphere. The separate inputs of the complex amplitudes α and β are shown. After clicking the [CALCULATE] button, the calculation begins to transform α and β into the polar angle θ and the azimuthal angle ϕ.

α=3+i34β=12ψ=3+i340121

α를 cos(θ/2)로 바꾸려면 α를 극좌표 형식으로 변환해야 한다.

α=3+i34=32eiπ/6

따라서

ψ=32eiπ/60121

이다. 이 때, 위상 eiπ/6를 global phase로 밖으로 빼내면

ψ=eiπ/6320eiπ/6121

이 되고, global phase가 양자 측정에 어떠한 영향도 미치지 않기 때문에 이를 없앨 수 있다. 즉,

ψ=320eiπ/6121

이 된다. 또한 1의 계수에 있는 음의 부호(-)를 eiπ로 바꾸면 양자 상태 ψ를 다음과 같이 바꿀 수 있다.

ψ=320eiπ/6121=320+eiπeiπ/6121ψ=320+ei5π/6121

이제 ψ가 Eq. (3)의 형태가 되었다.

cosθ2=32,eiϕ=ei5π/6,sinθ2=12θ=π3,ϕ=5π6ψ=cosπ/320+ei5π/6sinπ/321

따라서 θ는 60°, ϕ는 150°로 결정되었다. 이를 블로흐 구에 표시하면 Fig. 6과 같다. 여기서 주목할 것은 입력 값으로 3/4, sqrt(3)/4, -1/2, 0을 기입했다는 점이다. 입력 필드의 함수로 eval()를 사용했기 때문에 sqrt(3)/4과 같은 수식을 써도 이를 계산하여 해당 변수에 저장한다. [CALCULATE] 버튼을 누르면 계산된 각도와 함께 양자 상태 01이 측정될 확률이 출력된다. 여기서는 각각 0.75와 0.25이다. Figure 7에 θ와 ϕ를 구하는 일반화된 VPython 프로그램이 나타나 있다.

Figure 6. (Color online) An example of the calculation from α and β to θ and ϕ. The result shows that THETA = 60 and PHI = 150 which is located on the Bloch sphere as a small point with the color of magenta. The result coincides with the hand written calculation.

Figure 7. (Color online) Listing of the VPython program for the calculation of θ and ϕ. The angle is divided into four parts.

Figure 8은 양자 게이트를 이용하여 양자 상태를 변화시키는 시뮬레이터의 완성본으로 Glowscript의 BlochSphereGates[13]을 통해 접속할 수 있다. 이 시뮬레이터의 소스코드 또한 볼 수 있다. 양자 게이트로는 X, Y, Z, S, T, H를 선택하였으며 이의 수학적 작용은 Fig. 9에 정리되어 있다. Pauli X gate라고 불리는 X 게이트는 블로흐 구에서 x 축을 중심으로 180° 회전하는 작용을 한다. Figure 10에 이를 도식적으로 나타낸 그림이 있다. X 게이트를 통해 양자 상태 0가 양자 상태 1로 변하고 거꾸로 10으로 바뀐다. 즉, X0=1과 X1=0이 성립한다. 또한 X를 두 번 작용시키면 다시 원래의 자리로 돌아오기 때문에 X20=0과 X21=1이 된다. 즉, X2 = I 이다. Pauli Y gate라고 불리는 Y 게이트는 블로흐 구에서 y 축을 중심으로 180° 회전하는 작용을 한다. 마찬가지로 Pauli Z gate라고 불리는 Z 게이트는 블로흐 구에서 z 축을 중심으로 180° 회전하는 작용을 한다. Phase gate라고 불리는 S 게이트는 블로흐 구에서 z 축을 중심으로 90° 회전하는 작용을 한다. 이를 square root Z gate라고도 한다. T 게이트는 블로흐 구에서 z 축을 중심으로 45° 회전하는 작용을 한다. Hadamard gate라고 불리는 H 게이트는 블로흐 구에서 x 축과 z 축의 중간 축, 즉, x 축의 단위 벡터와 z 축의 단위 벡터의 합 벡터를 중심으로 180° 회전하는 작용을 한다. Figure 11에 이를 도식적으로 나타내었다. 0의 상태가 +=(0+1)/2로 변하고 1의 상태가 =(0-1)/2으로 바뀐다. 양자 상태를 해당 고정 축을 중심으로 회전시키는 것이 전부이기 때문에 이를 VPython으로 구현하는데 별 어려움은 없다. VPython에서는 일정한 객체를 고정 축에 대하여 회전하는 rotate()라는 메소드가 이미 있기 때문이다. Figure 12에 각 게이트를 구현하는 프로그램이 나열되어 있다.

Figure 8. (Color online) Layout of the developed online 3D simulator for the visualization of the Bloch sphere with the buttons of quantum gates like Pauli X, Y and Z gate, Phase gate S, T gate and the Hadamard gate H. The reset button transforms all quantum states into the original quantum state of 0.

Figure 9. Summary of the quantum gates I, X, Y, Z, S, T, H with the transformation of the quantum states 0 and 1.

Figure 10. (Color online) Schematically drawn diagram of the Bloch sphere for the transformation of the quantum state 0 after the application of the Pauli X gate or NOT gate. The quantum state is rotated 180° around the x axis so that it becomes the quantum state of 1.

Figure 11. (Color online) Schematically drawn diagram of the Bloch sphere for the transformation of the quantum state 0 after the application of the Hadamard gate. The quantum state is rotated 180° around the x + z axis so that it becomes the quantum state of +=(0+1)/2.

Figure 12. (Color online) Listing of the VPython program for the rotation of the quantum states after the application of the quantum gates X, Y, Z, S, T and H. The rotate() method is the key function for the rotation of the quantum state.

마지막으로 HTHTH0의 양자 상태가

122(1+2(12)i)0+(1+i)1

과 같음을 두 개의 시뮬레이터를 통하여 증명한다. 우선 Fig. 13은 양자 게이트만을 조작하여 구한 θ와 ϕ를 나타낸다. HTHTH를 순차적으로 클릭하면 THETA = 60과 PHI = 35의 결과가 나온다. 다음으로 Fig. 14에서와 같이 αβ를 시뮬레이터에 기입하고 계산하면 위와 마찬가지로 THETA = 60과 PHI = 35의 결과가 나온다. 결국 손으로 계산한 양자 상태[1]와 같음을 증명한 것이다.

Figure 13. (Color online) Result of the calculation of HTHTH0 at the BlochSphereGates [13] simulator with the value of THETA = 60 and PHI = 35.

Figure 14. (Color online) Result of the calculation of (1+2(12)i0+(1+i)1/(22) at the BlochSphere [12] simulator with the value of THETA = 60 and PHI = 35. The result is the same as in the Fig. 13.

온라인으로 3차원 블로흐 구를 가시화하는 시뮬레이터 두 개를 VPython을 이용하여 Glowscript에 개발하였다. 하나는 임의의 양자 상태에서 αβ를 이용하여 θ와 ϕ를 구하는 것이고 다른 하나는 양자 게이트만을 조작하여 θ와 ϕ를 구하는 것이다. 양자 상태 HTHTH0가 손으로 계산한 결과와 같음을 두 개의 시뮬레이터를 통해 확인함으로써 개발한 두 개의 시뮬레이터가 정확함을 보였다. 프로그램의 소스코드는 해당 웹사이트[12,13]에 모두 공개되어 있다.

이미 웹상에 올라와 있는 시뮬레이터들은 양자 게이트만을 조작하여 블로흐 구를 가시화하는 방법을 취하고 있고 일부 시뮬레이터는 다운로드하여 설치해야 하는 번거로움이 있다[14-23].

본 시뮬레이터는 양자 컴퓨터를 공부하면서 접하게 되는 임의의 양자 상태를 온라인으로 직접 기입하여 블로흐 구를 바로 관찰할 수 있는 특징을 가지고 있다.

본 논문에서는 양자 컴퓨터의 핵심 개념 중 하나인 블로흐 구를 가시화하는 온라인 3D 시뮬레이터를 개발하는 것에 관한 것으로 다음은 논문의 주요 내용에 대한 분석이다.

1. 양자 비트 (큐비트) 및 블로흐 구

- 본 논문은 양자 컴퓨터의 최소 정보 단위로서 단일 양자 비트의 역할을 강조하고 있다. 양자 비트는 전통적인 컴퓨터의 비트와는 다르게 양자 상태를 가지며, 이러한 상태는 블로흐 구상에서 표현될 수 있다.

- 블로흐 구는 양자 상태를 시각적으로 표현하는 도구로 사용되며, 중첩 상태와 양자 비트의 상대적 위치를 시각화하는 데 도움이 된다.

2. 온라인 3D 시뮬레이터 개발

- 본 논문은 VPython을 기반으로 한 블로흐 구 시뮬레이터를 개발한 것을 언급하고 있다. 이 시뮬레이터를 사용하면 양자 컴퓨터의 핵심 개념을 학습하고 이해하는 데 도움이 된다.

3. 기존 시뮬레이터와의 비교

- 본 논문은 기존의 블로흐 구 시뮬레이터와 비교하여 새로운 시뮬레이터의 장점을 강조한다.

- 기존 시뮬레이터들은 양자 게이트를 조작하여 블로흐 구를 가시화하는 방법을 취하고 있으며, 사용자가 별도로 설치해야 하는 번거로움이 있다. 그에 반해, 새로운 시뮬레이터는 온라인 상에서 양자 상태를 직접 입력하고 블로흐 구를 관찰할 수 있는 편리함을 제공한다.

- 본 논문은 새로운 시뮬레이터를 사용하여 양자 컴퓨터와 양자 상태의 학습 및 이해를 지원하는데 이점이 있다고 주장한다. 이 시뮬레이터를 사용하면 학습자들은 임의의 양자 상태를 직접 시각화하고 실험할 수 있으며, 양자 컴퓨터와 양자 상태의 개념을 보다 직관적으로 파악할 수 있다.

본 시뮬레이터의 구체적인 기능 및 사용법, 그리고 블로흐 구의 시각화를 통한 양자 상태 이해의 효과에 대한 세부적인 내용은 논문 자체에서 확인할 수 있을 것이다. 본 논문은 양자 컴퓨팅을 학습하고 이해하기 위한 교육용 자원으로 유용할 것으로 보인다. 따라서 양자 컴퓨터를 공부하는 학생들에게 본 논문에서 소개한 시뮬레이터가 큰 도움이 되었으면 한다.

  1. T. G. Wong, Introduction to Classical and Quantum Computing (Rooted Grove, Omaha, 2022).
  2. R. S. Sutor, Dancing with Qubits (Packt, Birmingham, 2019).
  3. L. S. Woody, Essential Mathematics for Quantum Computing (Packt, Birmingham, 2022).
  4. V. Kasirajan, Fundamentals of Quantum Computing (Springer, Cham, 2021).
    CrossRef
  5. R. LaPierre, Introduction to Quantum Computing (Springer, Cham, 2021).
    CrossRef
  6. M. A. Nielsen and I. L. Chuang, Quantum Computation and Quantum Information (Cambridge University Press, Cambridge, 2016).
  7. Y.-P. Liao, et al.. in 2022 IEEE International Conference on Quantum Computing and Engineering (QCE) (2022), p. 718.
    CrossRef
  8. A. Zable, L. Hollenberg, E. Velloso and J. Goncalves. in VRST '20: Proceedings of the 26th ACM Symposium on Virtual Reality Software and Technology (2020), p. 1.
    CrossRef
  9. VPython homepage, https://vpython.org.
  10. Python homepage, https://www.python.org.
  11. Glowscript homepage, https://www.glowscript.org.