고등학교 때 만들어둔 자료이긴 하지만, 컴퓨터공학과 4학년 전선 과목인 "양자컴퓨팅 및 정보의 기초"라는 과목에 도움이 되는 내용일 것 같아 소개해봅니다. 모든 내용이 영어로 되어 있으나, 부족한 영어 실력으로 인해 완벽하지 않을 것으로 예상합니다. (가끔은 줄바꿈을 막기 위해 어쩔 수 없이 생략하기도 했어요.)
pdf를 보다 보면 위와 같은 버튼이 나타날 것입니다. 이는 현재 내용에 해당하는 부록으로 넘어가는 것으로, 해당 부록으로 넘어간다면 그 부록에 해당하는 첫 번째 슬라이드의
버튼을 누르면 다시 원래 위치로 이동할 수 있습니다.
그러면, 시작하겠습니다.
Lecture 0. Introduction은 현재 내용이 누구를 위한 것인지, 어떤 내용을 설명할 것인지와 함께 참고 문헌을 소개해놓았습니다.
Lecture 1. Spins는 양자 정보과학이라는 개념을 사용할 수 있게 만드는 물리학적 기반에 대한 아주 간단한 요약(그러니까 정보과학적으로 이용하는 데에 문제가 없는 정도로만)을 담아 놓았습니다.
BB84 protocol과 같은 특이한 양자 보안 전송에 관한 내용도 담겨 있는데, 나중에 양자 정보 전송에 관해서 따로 다루는 내용의 자료도 올려볼 예정입니다. (물론 큐비트 하나만 쓰는 BB84 protocol은 현실적으로 쓰이지는 않습니다.)
Lecture 2. Linear Algebra for Expressing Qubits는 양자 정보과학을 논의할 때 빠질 수 없는 Dirac의 브라-켓 표기법과 벡터에 대한 간단한 개론만을 남겨 놓았습니다. ("양자컴퓨팅 및 정보의 기초" 과목에서는 이보다 더 심화된 내용의 선형대수학 지식을 필요로 합니다. 따라서 이것을 보고 '아 쉽네' 하며 선형대수학을 배우지 않고 수강신청해서는 안 됩니다.)
Lecture 3. Qubits는 물리학적 성질을 수학적으로 표현하는 방법에 대한 내용으로, 이제부터는 양자역학과 분리해서(즉, 양자역학을 잘 모르더라도 수학적인 도구로만 해결할 수 있게끔 하는) 볼 수 있게 되는 도구인 2차원 벡터를 설명하고 있습니다.
부록에 소개된 것(복소수를 원소로 가지는 벡터)이 실제로 표기하는 방법이지만, Lecture 9. Extra Quantum Algorithms을 제외하고는 사용하지 않고 설명하는 것이 직관적인 이해에 도움이 되므로 Lecture 8. Examples of Quantum Algorithms까지는 암묵적으로 실벡터를 사용하는 것으로 합니다.
Lecture 4. Tensor Product and Entanglement는 여러 개의 큐비트를 묶어서 표현하는 방법인 tensor에 관해 배우며, 이를 이용해 entanglement(얽힌 상태)를 설명하고자 합니다. 이것을 물리학적인 부분에서는 설명하지 않고 수학적으로만 설명하는 것이 '양자 컴퓨팅'의 경계라고 볼 수 있겠습니다.
중간에 CNOT에 관한 내용이 나오는데, 이 부분은 잠시 넘어갔다가 Lecture 7. Quantum Gates를 본 후 다시 봐도 괜찮을 것 같습니다.
Lecture 5. Classical Physics' Criticism and Bell Inequality는 EPR 역설에 관한 내용을 담고 있습니다. Bell test에 쓰이는 이 Bell pair은 양자 컴퓨팅 분야에서 굉장히 자주 사용하게 되므로 이에 관한 내용은 Lecture 7. Quantum Gates에서 다시 한 번 다루게 되겠습니다.
Ekert protocol과 같은 특이한 양자 보안 전송에 관한 내용도 담겨 있는데, 나중에 양자 정보 전송에 관해서 따로 다루는 내용의 자료도 올려볼 예정입니다.
Lecture 6. Classical Gates and Logics는 아마 이 글을 읽는 사람이라면 익숙한 내용일지도 모르겠습니다. 논리 회로에 관한 내용이므로 회로와 논리에 관해 이미 알고 계시다면, 첫 두 개의 장은 건너뛰셔도 되겠습니다.
Lecture 7. Quantum Gates는 위의 논리 회로를 행렬로 나타냄으로써 양자 컴퓨팅에 적용한 것으로 생각하면 되는데, 이것이 어떻게 가능한지에 관해서는 Lecture 6. Classical Gates and Logics의 Billiard Gates처럼 (저는 잘 모르겠지만) 어떤 물리학적인 기반이 있을 것으로 예상됩니다. 하지만 양자컴퓨'터'가 아닌 양자컴퓨'팅'을 하는 양자정보과학자의 입장에서는 가능하다는 것만 안다면 중요하지 않습니다.
이때 이러한 양자 회로로 가능한 것이 unitary matrix임은, 어쩌면 물리학적으로 당연한 말일지도 모르겠습니다. 어떤 작용을 하고 그에 대해 역으로 다시 작용을 했을 때 원래대로 돌아와야 함을 생각해보면 될 것 같습니다.
Lecture 8. Examples of Quantum Algorithms에서 드디어 '양자컴퓨터가 있다면' 할 수 있는 것들에 대해서 이야기하기 시작합니다. Deutsch-Jozsa 알고리즘, Simon 알고리즘의 소개를 하며 이런 알고리즘의 효율을 분석할 수 있는 time complexity라는 개념도 같이 설명하고 있습니다. 알고리즘에 관해 공부해본 적이 있는 사람이라면 익숙한 개념일지도 모르겠군요.
Lecture 9. Extra Quantum Algorithms는 Lecture 3. Qubits와 Lecture 7. Quantum Gates의 부록을 모두 읽은 뒤에 읽어야 하는 내용을 담고 있습니다. Grover의 알고리즘 이후부터 모든 큐비트는 2차원 복소 벡터로 표현되며, 이것은 사실 3차원이라고 봐도 무방합니다(왜 그런지는 Lecture 7. Quantum Gates의 부록 중 Global phase representation에서 알 수 있습니다). QFT(Quantum Fourier Transform)와 QPE(Quantum Phase Estimation)는 이러한 3차원 공간에서의 회전을 이용한 것으로, Shor의 알고리즘이 그것을 잘 적용한 사례라고 할 수 있겠습니다.
부록의 Chernoff bound의 이진수 버전과 같은 확률과 통계에 대한 내용은 자세하게 다루진 않지만, 양자 컴퓨팅은 확률에 의존하여 탐색하는 알고리즘을 대부분으로 하고 있기 때문에 이와 같은 알고리즘의 정확성 내지 안정성을 증명하는 데에 있어 확률과 통계에 관한 이론은 필수불가결하다고 생각합니다.
결론은 두 가지로 내릴 수 있겠습니다.
- 양자컴퓨팅을 하는 데 있어 '선형대수학'과 '확률과 통계'는 필수적인 내용이며, 양자 정보과학을 하다 보면 '내가 지금 수학을 하고 있나?'하는 생각이 들 정도로 수학적인 내용만을 다루게 됩니다.
- 양자컴퓨터가 제대로 만들어지지 않으면 아무 짝에도 쓸모가 없습니다.
두 번째 결론에 관해 얘기를 하자면, 작성일 기준 2019년도에 구글에서 낸 Sycamore이라는 양자컴퓨터가 53qb의 크기로 가장 큰 용량을 가지고 있고 이것 역시 상용화된 상태는 아닙니다. 53qb짜리는 결국 쇼어 알고리즘에서 2⁵³까지의 숫자만을 처리할 수 있게 되는데, 고전적인 슈퍼컴퓨터로 AKS 알고리즘을((log N)⁶ order) 이와 같은 숫자에서 돌린다고 하더라도 1초(보다 아주 작은 시간) 내에 성공할 것입니다. 따라서 양자컴퓨팅은 충분히 강력한 하드웨어가 개발되어야만 고전적인 컴퓨터에 비해 의미가 있게 되는 분야라고 할 수 있겠습니다. 그것이 아직은 많이 멀어 보입니다.
그래서 양자컴퓨팅은 어쩌면 미래가 어두운 분야라고 얘기할 수도 있겠습니다. 하지만.
"낭만이 있잖아요."
감사합니다.
(마지막 부분은 유머를 위해 적은 것이며, 실제로 양자 컴퓨터는 크지 않더라도 화학 시뮬레이션을 하는 데에 효과적으로 쓰이기도 하고, 양자 정보를 원격으로 전송할 수 있게 되는 데에 아주 좋은 기반이 되었습니다. 양자 네트워크라고 부른다고 합니다. 아무튼, 양자컴퓨팅 정말 재미 있는 분야니까 함께 연구해보아요 ㅎㅎ)