양자컴퓨팅 (Quantum Computing)
편집하기 (부분)
둘러보기로 이동
검색으로 이동
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
== 양자 오류 정정 (Quantum Error Correction) == === 개요 === [[File:기술백서 전체수정 12.jpg|thumb|200px|Transmon 큐비트를 이용한 양자 오류 정정 회로. 참고문헌 <ref name=Kelly />의 그림을 재구성함. ]] [[양자 컴퓨터]]를 이용한 의미 있는 연산을 수행하기 위해서는 연산 과정 도중에 [[큐비트]]의 상태가 일정하게 유지되어야 한다. 하지만 큐비트의 [[양자 상태]]는 주변 환경에서 발생한 열이나 잡음에 취약하기 때문에 쉽게 변하며, 이러한 오류를 정정하기 위한 기술이 추가적으로 필요하다. 이러한 오류를 해결하기 위해 고전 컴퓨터의 경우 RAID 시스템과 같이 저장된 정보를 여럿 복제하여 함께 저장하는 방식을 택하고 있으며, 오류가 발생했을 때 정보의 복사본들을 비교하여 오류를 찾아내고 정정할 수 있다. 하지만 큐비트의 양자 상태는 복제 불가능성 정리(no-cloning theorem)에 의해 동일한 여러 개의 상태로 복제할 수 없으며, 오류 확인을 위해 양자 상태를 측정할 경우 원래의 상태가 붕괴된다.<ref name=Nielsen>M. A. Nielsen, & I. L. Chuang, Quantum computation and quantum information (Cambridge University Press, 2002)</ref> 따라서 이러한 근본적 한계로 인해 고전 오류 정정 방식과는 근본적으로 다른 접근이 필요하다. 최초의 양자 오류 정정 기술인 Shor code<ref name=Shor>Peter W. Shor, Scheme for reducing decoherence in quantum computer memory, Physical Review A <b>52</b>, R2493(R) (1995). doi:[https://doi.org/10.1103/PhysRevA.52.R2493 10.1103/PhysRevA.52.R2493].</ref> 이후로 Steane code<ref name=Steane>Andrew M. Steane, Error correcting codes in quantum theory, Physical Review Letters <b>77</b>, 793 (1996). doi:[https://doi.org/10.1103/PhysRevLett.77.793 10.1103/PhysRevLett.77.793].</ref>, Stabilizer code<ref name=Gottesman>D. Gottesman, Stabilizer codes and quantum error correction, [https://arxiv.org/abs/quant-ph/9705052 arXiv:quant-ph/9705052] (1997).</ref><ref name=Kelly>J. Kelly ''et al.'', State preservation by repetitive error detection in a superconducting quantum circuit, Nature <b> 519</b>, 66 (2015). doi:[https://doi.org/10.1038/nature14270 10.1038/nature14270].</ref> 등 다양한 양자 오류 정정 기술들이 제안되었으며 현재에도 Surface code<ref name=Floler>A. G. Fowler, M. Mariantoni, J. M. Martinis & A. N. Cleland, Surface codes: Towards practical large-scale quantum computation, Physical Review A <b>86</b>, 032324 (2013). doi:[https://doi.org/10.1103/PhysRevA.86.032324 10.1103/PhysRevA.86.032324].</ref>를 비롯한 다양한 기술들이 활발히 연구되고 있다. 본 내용에서는 양자 오류 정정 기술의 가장 기초적인 형태인 Shor code에 초점을 맞추어 기술하였다. === 3-큐비트 비트 플립 코드 (3-qubit bit flip code) === 3-큐비트 비트 플립 코드(3-qubit bit flip code)는 한 큐비트의 비트가 뒤집히는 오류를 정정하기 위하여 두 개의 보조 큐비트를 추가적으로 활용하는 오류 정정 코드이다. 고전 비트 플립 오류와 유사하나 큐비트의 상태를 복제하는 것이 불가능하므로 대신 큐비트들 간의 [[양자 얽힘]]을 활용하여 오류를 정정한다. 한 큐비트의 비트가 뒤집히는 오류를 정정하기 위해서 큐비트의 초기 상태가 $$\left| \psi \right\rangle= \alpha\left| 0 \right\rangle + \beta|1\rangle$$일 때, $$\left| 0 \right\rangle$$ 상태로 초기화된 두 큐비트를 준비한다. 세 큐비트들이 처음 두 개의 CNOT 게이트들을 통과하게 되면 모두 양자 얽힘이 있게 되며 세 큐비트의 상태는 다음과 같은 [[GHZ 상태]]로 표현된다. [[File:기술백서 전체수정 13.jpg|thumb|300px|3-큐비트 비트 플립 코드의 회로도. 참고문헌 <ref name=wikipedia>https://en.wikipedia.org/wiki/Quantum_error_correction</ref>의 그림을 재구성함. ]] \[\left| \psi \right\rangle_{\text{tot}}= \alpha\left| 000 \right\rangle + \beta|111\rangle\] 만약 첫 번째 큐비트가 오류로 인해 뒤집혔다고 가정하면 오류가 발생한 후 세 큐비트의 상태는 다음과 같다. \[\left| \psi \right\rangle_{\text{error}}= \alpha\left| 100 \right\rangle + \beta|011\rangle\] 이후 오류를 정정하기 위한 두 개의 CNOT 게이트와 Toffoli 게이트를 지나게 되면 세 큐비트의 상태는 얽힘이 없는 곱 상태(product state)로 나타나게 된다. \[\left| \psi \right\rangle_{\text{tot}}= (\alpha\left| 0 \right\rangle + \beta|1\rangle) \otimes |1\rangle \otimes |1\rangle\] 하지만 오류 정정을 위해 추가한 두 큐비트에는 관심이 없기 때문에 무시할 수 있고, 오류가 발생한 큐비트는 원래의 상태로 다시 돌아옴을 확인할 수 있다. 두 번째, 세 번째 큐비트가 오류로 뒤집힌 경우에도 마찬가지로 오류가 정정된다. 이와 같이 큐비트의 상태를 붕괴시키지 않고도 [[양자 게이트]]들을 활용하여 오류를 정정할 수 있다. 하지만 3-큐비트 비트 플립 코드에서 만약 두 개 이상의 큐비트가 오류로 인해 뒤집힐 경우 오류를 정정하는 것이 불가능하며, 이러한 경우의 오류를 해결하기 위해서는 더 많은 보조 큐비트가 필요하다. === 3-큐비트 위상 플립 코드 (3-qubit phase flip code) === [[File:기술백서_전체수정_14.jpg|thumb|300px|3-큐비트 위상 플립 코드의 회로도. 참고문헌 <ref name=wikipedia />의 그림을 재구성함. ]] 3-큐비트 위상 플립 코드(3-qubit phase flip code)는 한 큐비트의 위상이 바뀌는 오류를 정정하기 위하여 두 개의 보조 큐비트를 추가적으로 활용하는 오류 정정 코드이다. 기본적으로 [[3-큐비트 비트 플립 코드]]와 기본적인 원리는 동일하며 다만 큐비트의 기저를 하다마드 기저(Hadamard basis)로 바꾼 후 오류를 정정한다. 한 큐비트의 위상이 뒤집히는 오류를 정정하기 위하여 큐비트의 초기 상태가 $$\left| \psi \right\rangle= \alpha\left| 0 \right\rangle + \beta|1\rangle$$일 때, $$\left| 0 \right\rangle$$ 상태로 초기화된 두 큐비트를 준비한다. 세 큐비트들이 처음 두 개의 CNOT 게이트와 하다마드 게이트를 통과하게 되면 큐비트의 상태는 다음과 같이 하다마드 기저에서 얽힘이 있는 상태로 표현된다. \[\left| \psi \right\rangle_{\text{tot}}= \alpha\left| + + + \right\rangle + \beta| - - - \rangle\] \[| + \rangle= \frac{1}{\sqrt{2}}(\left| 0 \right\rangle + |1\rangle), | - \rangle =\frac{1}{\sqrt{2}}(\left| 0 \right\rangle - |1\rangle)\] 만약 첫 번째 큐비트의 위상이 오류로 인해 뒤집혔다고 가정하면 오류가 발생한 후 세 큐비트의 상태는 다음과 같다. \[\left| \psi \right\rangle_{\text{error}}= \alpha\left| - + + \right\rangle + \beta| + - - \rangle\] 이후 오류를 정정하기 위해 Hadamard 게이트, 두 개의 CNOT 게이트와 Toffoli 게이트를 지나게 되면 세 큐비트의 상태는 얽힘이 없는 곱 상태로 나타나게 된다. \[\left| \psi \right\rangle_{\text{tot}}= (\alpha\left| 0 \right\rangle + \beta|1\rangle) \otimes |1\rangle \otimes |1\rangle\] 두 번째, 세 번째 큐비트가 오류로 뒤집힌 경우에도 마찬가지로 오류가 정정된다. 근본적으로 하다마드 게이트를 통해 큐비트의 기저만 바꾸어 준 것이기 때문에 모든 성질이 [[3-큐비트 비트 플립 코드]]와 동일하다. 3-큐비트 위상 플립 코드도 마찬가지로 두 개 이상의 큐비트에 오류가 있을 경우 오류를 정정하는 것이 불가능하며, 이러한 경우의 오류를 해결하기 위해서는 더 많은 보조 큐비트가 필요하다. === Shor 코드 === Shor 코드는 한 큐비트의 오류를 정정하기 위하여 여덟 개의 보조 큐비트를 추가적으로 활용하는 오류 정정 코드이며, 2015년 Peter Shor<ref name=Shor />에 의해 최초로 소개되었다. Shor 코드는 [[3-큐비트 비트 플립 코드]]와 [[3-큐비트 위상 플립 코드]]가 합쳐져 있는 형태로 파울리 행렬(Pauli matrix)의 형태로 표현되는 일반적인 단일 큐비트 오류를 정정할 수 있다. Shor 코드에서는 오류를 보정하고자 하는 큐비트와 $$\left| 0 \right\rangle$$ 상태로 초기화된 여덟 개의 큐비트를 추가적으로 준비한다. 아홉 개의 큐비트는 양자 얽힘이 있는 상태에 따라 각각 세 그룹으로 나뉜다. 이 때 첫 번째, 네 번째, 일곱 번째 큐비트는 원래 큐비트의 위상 오류 보정을 위해 사용되며, 연속되는 큐비트 세 개씩 묶인 각 세 그룹은 해당하는 큐비트의 비트 오류 보정을 위해 사용된다. [[File:기술백서_전체수정_15.jpg|center|thumb|500px|Shor 코드의 양자 회로도. 참고문헌 <ref name=wikipedia />의 그림을 재구성함. ]] === 게이트 충실도 (Gate Fidelity) === 현재 성능면에서 대표적인 시스템으로 꼽을 수 있는 [[이온 트랩]]의 경우, 순수하게 게이트 충실도 성능 측면에서는 미국 NIST에서 마이크로파 기반 단일 큐비트 게이트의 충실도 99.9999%를 얻었고, 레이저 기반 [[2-큐비트 게이트]] 충실도 99.92%를 얻은 바 있다.<ref name=Gaebler>J. P. Gaebler ''et al.'', High-fidelity universal gate set for Be 9+ ion qubits, Physical Review Letters <b>117</b>, 060505 (2016). doi:[https://doi.org/10.1103/PhysRevLett.117.060505 10.1103/PhysRevLett.117.060505].</ref> 이후 실제 양자컴퓨터 개발을 위한 시스템에서 벤치마킹으로 얻은 충실도의 경우, IonQ에서 개발 중인 이온 트랩 기반 11-큐비트 양자 컴퓨터가 대표적인데, 이 시스템에서는 단일 큐비트 게이트의 충실도는 평균 99.5%, 2-큐비트 게이트 충실도는 평균 97.5%로 나타났다.<ref name=Wright>K. Wright ''et al.'', Benchmarking an 11-qubit quantum computer, Nature Communications <b>10</b>, 5464 (2019). doi:[https://doi.org/10.1038/s41467-019-13534-2 10.1038/s41467-019-13534-2].</ref> 한편 확장성 측면에서 주목을 받고 있는 [[초전도 큐비트]]의 경우, 2019년 구글이 양자 컴퓨터 [[시카모어|시카모어(Sycamore)]]를 이용하여 유사 무작위 양자회로(pseudo-random quantum circuit)에서의 [[양자 우위]]를 보이는 실험에서 게이트 충실도를 발표하였는데, 단일 게이트를 각각 따로 할 때(isolated)인 경우 단일 큐비트 게이트에 대해 0.15%, 2-큐비트 게이트에 대해 0.36%의 오류율을 얻었고, 여러 개의 게이트를 같이 하는 경우(simultaneous)에는 각각 0.16%, 0.62%의 오류율을 얻었다고 보고했다.<ref name=Arute>F. Arute ''et al.'', Quantum supremacy using a programmable superconducting processor, Nature <b>574</b>, 505 (2019). doi:[https://doi.org/10.1038/s41586-019-1666-5 10.1038/s41586-019-1666-5].</ref> 양자 컴퓨터가 실용화되기 위해서는 수많은 게이트들을 적용했을 때에도 신뢰할 수 있을만한 결과값이 나와야 하고, 이를 위해서는 게이트 충실도가 현재보다 더 100%에 가까울 필요가 있으므로 게이트 충실도를 향상시키는 것은 여전히 하드웨어 개발에 있어서 중요한 요소로 다루어지고 있다. [[File:기술백서 전체수정_74.jpg|center|thumb|730px|IonQ의 이온 트랩 기반 양자 컴퓨팅 시스템의 2-큐비트 게이트 충실도를 각 큐비트 조합에 대해 나타낸 것. 참고문헌 <ref name=Wright>K. Wright ''et al.'', Benchmarking an 11-qubit quantum computer, Nature Communications <b>10</b>, 5464 (2019). doi:[https://doi.org/10.1038/s41467-019-13534-2 10.1038/s41467-019-13534-2].</ref>의 그림을 재구성함. ]] [[분류:게이트 기반 양자 컴퓨팅 | ]]
요약:
한국양자정보학회 위키에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다(자세한 사항은
한국양자정보학회 위키:저작권
문서를 보세요).
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
둘러보기 메뉴
개인 도구
로그인하지 않음
토론
기여
계정 만들기
로그인
이름공간
문서
토론
한국어
보기
읽기
편집
역사 보기
더 보기
검색
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
특수 문서 목록
문서 정보