[Quantum for Developers] Quantum의 특징
원문 : 호롤리한 하루
Overview
전세계적으로 양자컴퓨터에 대한 관심이 점점 높아지고 있습니다. 저도 미래 먹거리로써 관심있게 보고있었는데 최근에 공부할 일이 생겨서 조금 살펴보게 되었습니다.
사실 양자역학이라는게 하루이틀 봐서 이해되는 학문도 아니고, 심지어 저의 전공분야도 아니기 때문에 인터넷에 나오는 여러 포스트처럼 복잡한 수학공식으로 완벽하게 설명할 수는 없습니다.
대신 교양수준으로 아~ 요런거구나~정도로만 설명을 드리도록 하겠습니다.
그래서 혹시 틀린 부분이 있다면 댓글이나 메일로 알려주세요!
Quantum
우리가 사용하고 있는 컴퓨터에서 계산이 어떻게 이뤄지고 있는지 아는 사람이 얼마나 있을까요? 정수를 이진수로 변환시켜서 계산한다는 것 까지는 많은 사람들이 알고 있을 텐데, 논리회로가 어쩌고 게이트가 어쩌구 이런것들은 기억이 희미하실 겁니다. 저도 컴퓨터구조라는 과목에서만 배웠던 기억이 납니다.
사실 위에것들을 몰라도 high-level 프로그래밍하는데는 아무 지장이 없습니다. 예를 들어 덧셈을 할 때 개발자는 앞단에서 2+4라고 적으면 끝이고 뒤에서 비트가 어떻게 동작하는지는 알 필요없이 계산이 뚝딱됩니다.
근데 양자컴퓨팅은 약간 다릅니다. 앞으로 어떻게 될지는 모르겠지만 지금단계에서 양자컴퓨팅을 배우려면 양자, 즉 큐비트가 어떻게 동작하는지 알아야 하고 직접 회로를 짜야합니다.
그럼 지금부터 양자의 특징 3가지에 대해서 설명하겠습니다.
Superposition (중첩)
bit를 생각해봅시다. 컴퓨터에서 사용하는 가장 작은 정보단위인 bit는 0아니면 1로 이루어져 있습니다.
그래서 컴퓨터의 계산도 이진수의 형태로 이뤄지죠.
bit는 0과 1중 하나의 값만 가질 수 있지 동시에 0과 1이 될 수는 없습니다.
그런데 양자(큐비트)는 0과 1을 동시에 나타낼 수 있습니다. 이것을 중첩현상이라고 합니다. 중첩된 값은 관찰될 때 하나의 값으로 고정되게 됩니다.
이렇게 말하면 쉽게 이해가 안되실겁니다.
여러분 혹시 게임 좋아하시나요? (꼭 게임이 아니더라도 뽑기는 한번쯤 해보신 경험이 있으실 겁니다.) 요즘 모바일게임을 보면 캐릭터 뽑기나 카드 뽑기같은 컨텐츠가 많습니다.
흔한 뽑기 루틴
- 좋은 캐릭터가 출시됨
- 뽑기
- 망함
- 현질
- 2번으로 돌아감
경건한 마음을 가지고 클릭하기 전, 뽑기상자는 무한한 가능성을 지니고 있습니다.
좋은놈이 나올수도 구린놈이 나올수도 있습니다. 각 캐릭터는 각자의 출현확률을 지니고 있고 그 확률에 따라 어떤 캐릭터가 나올지 결정됩니다.
즉 사용자가 버튼을 누르기 전까지는 뭐가 나올지 모르는, 하지만 저 캐릭터중에 하나가 확률에 따라 나올거라는건 알고있는 상태입니다.
이 상태가 바로 중첩입니다.
물론 중첩된 상태로는 classical한 계산을 하기 힘들겠죠? 그래서 하나의 값으로 고정을 시켜야 합니다.
뽑기상자에서 버튼을 눌러 캐릭터를 뽑듯이,
양자를 관찰하면 중첩되어있는 값들이 하나의 값으로 고정되게 됩니다.
이때 캐릭터의 출현확률과 마찬가지로 양자(큐비트)의 값도 확률에 따라 0일지 1일지 정해지게 됩니다.
한가지 다른 점은 뽑기상자엔 여러 캐릭터가 있을 수 있지만 큐비트는 0과 1만 갖고 있다는 것입니다. 헷갈리지 마세요!
고로 양자역학은 가챠다
바로 이 특징때문에 양자컴퓨터가 일반컴퓨터보다 월등한 성능을 가지고 있다고 하는 겁니다.
일반 bit 2개로는 00, 01, 10, 11중 1개만 가질 수 있지만
Quantum bit 2개로는 00, 01, 10, 11들을 한번에 표현할 수 있기 때문입니다.
더 자세한건 다음 포스팅에서!
Entanglement (얽힘)
두번째 특징은 얽힘입니다.
양자들은 한번 얽히고 한쪽의 값이 고정되면 다른 한쪽도 고정되게 됩니다.
위 그림은 CNOT게이트를 이용해 Entangle시킨 그림입니다.
한쪽이 0이면 다른쪽도 0, 한쪽이 1이면 다른쪽도 1이 나오게 됩니다.
이런 현상을 얽힘이라고 합니다.
CNOT게이트가 무엇인지는 다음 포스팅에서 다루겠습니다.
Probability Amplitude (확률 진폭)
아까 언급했듯이 양자는 확률에 의해 어떤 값으로 고정됩니다. 그런데 이 확률은 양의 값만 가질 수 있는 것이 아니라, 어떤 처리를 거치고 나면 음의 값도 가질 수 있습니다.
확률이 0.5인 경우와 -0.5인 경우를 생각해 볼 수 있습니다.
확률의 방향은 달라도 길이가 같으면 같은 확률이라고 생각하시면 됩니다.
음의 확률이라니 무슨 뜻인지 잘 모르실 수 있습니다.
일단은 양자세계에서 양의 확률, 음의 확률 모두 존재한다고 알아두시면 될 것 같습니다.
ETC
이 외에도 양자는 파동의 성질을 가지고 있다 등 많은 특징이 있지만 이번 포스팅에서는 이정도만 언급하고 추후에 포스팅이 진행되면서 더 설명을 드리도록 하겠습니다.
그리고 양자가 어떻게 중첩될 수 있지? 어떻게 얽혀질 수 있지? 확률이 음이라는게 존재하는건가? 라는 의문이 들 수 있고, 심지어 보통 알고있는 물리법칙과도 꽤 거리가 있는 내용들이다 보니 더욱 혼란스러워 하실 수도 있습니다.
하지만 너무 어렵게 생각하지 말고 자연 현상의 일부로 받아들였으면 좋겠습니다.
한줄정리
- 중첩 : 양자(큐비트)는 0과 1의 값을 동시에 나타낼 수 있으며, 관찰 시 값이 하나로 고정되게 됨.
- 얽힘 : 양자와 양자는 얽힐 수 있으며 하나의 양자 값이 정해질 때 나머지 양자도 값이 정해지는 것을 의미.
- 확률 진폭 : 양자는 음의 확률과 양의 확률을 모두 지니고 있음.