Korean
언어
English
Bengali
French
German
Japanese
Korean
Portuguese
Spanish
Tamil
_images/qiskit_nutshell.png

핵심적인 양자 컴퓨팅의 내용

양자 컴퓨팅은 양자역학의 기본 원리를 활용하는 계산의 새로운 패러다임을 나타낸다. 이걸 읽고 있다면, 양자 컴퓨팅의 전망은 규모가 커지면 가장 성능이 좋은 고전 컴퓨터로도 수행할 수 없는 계산들을 효율적으로 수행할 수 있는가의 여부에 달려 있다는 것을 알 것이다. 이러한 작업들에는 소인수 분해, 양자 시뮬레이션, 검색, 최적화, 그리고 기계 학습과 같은 대수 프로그램이 있다.

양자 컴퓨팅의 힘은 양자역학의 두 주춧돌에서 나오는데, 바로 양자 계산의 파동의 성질을 강조하는 간섭 과 입자의 성질을 강조하는 얽힘 이다. Qiskit은 양자 회로 의 언어를 사용하여 이러한 양자역학의 원리들을 적용해 양자 계산을 수행하는 SDK이다. 양자 게이트, 명령어, 그리고 고전적 제어 논리로 이루어진 양자 회로는 복잡한 알고리즘과 애플리케이션을 양자 컴퓨터에서 실행될 수 있는 추상적인 방식으로 나타낸다. Qiskit은 본질적으로 양자 회로 구축, 최적화, 그리고 실행 엔진이다. 추가적인 알고리즘과 애플리케이션 계층은 보통 고전적인 컴퓨팅 자원과 함께 양자 회로를 이용하여 최적화, 양자 화학, 물리, 기계 학습, 그리고 금융에 관한 문제들을 해결한다. 다음으로는 양자 컴퓨팅에 대한 간단한 개요와 Qiskit이 각 단계에서 어떻게 사용되는지 설명할 것이다. 더 심도 있는 내용에 관심이 있는 독자들을 위해 추가자료도 제공될 것이다.

간섭

고전 컴퓨터와 마찬가지로, 양자 컴퓨터는 비트로 동작한다. 하지만 고전 비트가 0이나 1 상태로만 있을 수 있는 반면에 양자 비트, 또는 큐비트는 0이나 1 뿐만 아니라 둘의 선형 결합으로도 존재할 수 있다. 이러한 선형 결합은 중첩 (또는 중첩 상태) 이라고도 알려져 있다.

이러한 개념이 어떻게 양자 계산에 사용되는지 알아볼려면 먼저 고전 컴퓨팅에서 상응하는 개념인 노이즈 캔슬링을 알아야 한다. 노이즈 캔슬링 헤드폰에서 사용되는 것과 같이 노이즈 캔슬링은 중첩과 간섭 의 원리를 이용해 원치 않는 소리와 비슷한 주파수와 진폭의 톤을 위상만 \(\pi\) (아니면 \(\pi\) 의 홀수 배수) 만큼 어긋나게 생성해 원치 않는 소리를 상쇄시킨다.

_images/noise_cancel.png

그림 1 거의 동일한 진폭의 톤에 의한 잡음 신호의 대략적인 소거 및 \(\sim \pi\) 의 위상에 의한 오프셋.

상술된 바와 같이, 위상차가 \(\pi\) 의 홀수 배수에 가까울 때, 2개의 파동들의 중첩은 간섭을 초래하고, 출력은 원본에 비하여 현저하게 감소된다. 그 결과는 노이즈에 의해 방해받지 않는 관심신호이다. 이러한 처리는 디지털 회로에 의해 수행되지만, 진폭 및 위상은 완벽하게 매칭될 수 없는 연속 변수이며, 이는 불완전한 보정을 초래한다.

양자 컴퓨터의 일반적인 계산은 잡음 제거와 거의 같은 방식으로 진행된다. 우선, 모든 가능한 계산 상태들의 중첩을 준비한다. 그러면 이는 규정된 알고리즘에 따라 초위치의 구성요소를 선택적으로 방해하는 quantum circuit 의 입력으로 사용된다. 입력 상태의 상대 진폭 및 위상을 취소한 후에 남는 것은 양자 회로에 의해 수행되는 계산에 대한 해법이다.

_images/quantum_interference.png

그림 2 간섭 생성 프로세스로서의 양자 계산.

얽힘

양자 계산이 활용할 수 있는 양자역학의 두 번째 원리는 entanglement 의 현상이다. 얽힘 (Entanglement) 은 한 개 이상의 큐비트 (또는 일반적으로 입자들) 의 상태를 지칭하는데, 여기서 큐비트들의 결합된 상태는 큐비트들이 독립적으로 행하는 것보다 더 많은 정보를 포함한다. 다수의 큐비트 양자 상태들의 압도적인 다수는 얽히고, 가치 있는 자원을 나타낸다. 예를 들어, 큐비트들 사이의 얽힌 상태들은 큐비트의 상대적인 물리적 근접성에 상관없이, 두 개의 큐비트들의 공유된 얽힌 상태가 하나의 큐비트로부터 다른 큐비트로 정보를 전송하도록 조작될 수 있는 양자 이동을 위해 사용될 수 있다. 양자 시스템의 자연스러운 상태로서의 얽힘 상태는 양자 화학 (quantum chemistry) 과 양자 시뮬레이션 (quantum simulation) 과 같은 해법들이 종종 얽힌 다중-큐비트 (multi-qubit) 상태의 형태를 취하는 분야들에서도 중요하다. 또한, 인증 가능한 정도의 무작위성을 가진 난수들을 생성하기 위해 다수의 큐비트들의 고도로 얽힌 양자 상태들을 이용할 수도 있다. 이를 시행하기 위한 Qiskit 패키지 도 이미 있다.

양자 회로

양자 기계 자원을 이용하는 알고리즘 및 애플리케이션은 양자 회로 의 언어로 쉽고 효율적으로 작성될 수 있다. 양자 회로는 양자으로 유지되는 것과 같은 양자 데이터에 대한 결맞음 양자 동작 (coherent quantum operations), 및 동시 실시간 고전적인 계산으로 구성되는 계산 루틴이다. 회로에 있는 각각의 수평선 또는 선은 큐비트를 나타내고, 와이어의 왼쪽 끝은 초기 양자 데이터이고, 우측은 양자 회로의 계산에 의해 생성되는 최종 양자 데이터이다. 큐비트들에 대한 동작들은 이러한 와이어들 상에 배치될 수 있고, 박스들로 표현된다.

_images/teleportation_detailed.png

그림 3 다시 보는 양자 상태의 원격 이동 회로.

양자 회로는 양자 컴퓨터가 고전적인 정보를 받아들이고 고전적인 솔루션을 출력할 수 있게 하는데, 이 때 간섭얽힘 과 같은 양자 원리를 사용하여 계산을 한다.

일반적인 양자 알고리즘 워크플로우는 다음으로 구성됩니다.

  • 우리가 해결하고자 하는 문제는

  • 양자 회로에 대한 설명을 생성하는 고전적인 알고리즘,

  • 양자 하드웨어에서 실행되어야 하는 양자 회로는

  • 그리고 생성된 문제를 해결하기 위해 출력된 고전적 해법.

양자 게이트는 양자 데이터에 적용되는 기본적인 연산을 구성한다. 양자 게이트는 큐비트 상에 저장된 양자 데이터에 적용되는 변환을 나타내며 이는 정보를 보존하고 가역적이다. 이러한 《유니터리》 변환은 양자 회로의 양자역학적 핵심을 보여준다. \(X\) (\(\oplus\) 형태로도 표기) 및 \(CX\)) 게이트와 매개변수를 가진 \(rX(\theta)\)\(rY(\theta)\) 회전은 중첩 상태를 생성하는 한편 \(Z\), \(rZ(\theta)\), \(S\), 그리고 \(T\) 게이트는 간섭을 일으킬 수 있도록 위상을 변화시킨다. \(CX\) 게이트와 같은 2큐비트 게이트는 큐비트 묶음에 얽힘을 만들거나 어느 한 큐비트로부터 다른 하나의 큐비트로 위상을 《킥(kick)》하기 위해 사용한다. 다음으로 앞서 언급한 게이트와는 달리 《측정》(상자 내의 계량 기호와 《표적》 와이어로 연결된 선으로 표현)과 같은 연산은 큐비트의 상태에 관한 부분적인 정보를 추출하며 이 과정에서 고전적인 비트로 표현하고 표적 와이어(해독 장치의 대체로 완전히 고전적인 연결)에 그것을 기록하기 위해 보통 위상 정보를 잃게 된다. 이는 양자 데이터로부터 정보를 얻어내 고전적 장치로 보내는 일반적인 방법이다. 참고로 \(H\), \(rZ(\theta)\), \(CX\), 그리고 측정 게이트, 즉, 유니버설 게이트 집합만으로도 모든 종류의 양자 회로를 생성할 수 있으며 그러한 양자 회로에는 자연에 존재하는 물리계의 역학을 효율적으로 계산할 수 있는 회로까지 포함된다.

일부 작업부하들은 양자 회로들과 고전적인 계산이 교차로 합쳐진 확장된 시퀀스를 포함한다. 예를 들어, 다양한 변분 양자 알고리즘들은 최적화 루프 내에서 양자 회로들을 실행한다. 이러한 작업부하에 있어서, 양자 회로가 매개 변수화되고, 회로 실행과 비유동적 고전적 계산 사이의 상태 변화가 효율화되면 시스템 성능이 실질적으로 증가한다. 결과적으로, 계산 시간을 가속화하기 위해 개발된 하드웨어를 가진 양자 회로를 반복적으로 사용하는 알고리즘을 사용하는 계산으로 근-시간 계산 을 정의한다. 근-시간 계산에서 고전적인 계산은 양자 연산의 결맞음보다 더 긴 시간 단위에서 발생한다. 이는 고전적인 계산이 양자장치의 결어긋남 시간 내에서 발생하는 실시간 계산 과 대조된다.

복잡한 양자 회로를 적은 노력으로 구성하게 해주는 것이 Qiskit의 핵심이며, 다양한 기능의 연산들을 지원하며, 다양한 범위의 양자 컴퓨터들 이나 클래식 시뮬레이터로 전달될 수 있다. 코드 몇 줄만 있으면 위와 같은 복잡한 회로를 구성할 수 있다.

qr = QuantumRegister(3, 'q')
cr = ClassicalRegister(2, 'zx_meas')
qc = QuantumCircuit(qr,cr)
qc.reset(range(3))
qc.barrier()
qc.h(1)
qc.cx([1,0],[2,1])
qc.h(0)
qc.barrier()
qc.measure([0,1], [0,1])
qc.barrier()
qc.z(2).c_if(cr, 1)
qc.x(2).c_if(cr, 2)

양자 컴퓨터

_images/system_one.jpeg

그림 4 IBM 양자 시스템 원의 내부.

양자 회로를 사용하여 프로그램되는 양자 컴퓨터들은 큐비트의 원소를 정의할 수 있는 아무 양자 기술을 사용하여 구축될 수 있고, 고충실도의 단일과 다중 큐비트 게이트 연산을 시행할 수 있다. 현재 초전도 회로, 이온 트랩, 양자점 반도체, 광자, 그리고 중성 원자를 기반으로 다양한 양자 컴퓨터 구조가 개발되고 있으며, 대다수는 이미 인터넷을 통해 사용해 볼 수 있다. Qiskit은 양자 시스템의 구조에 대한 전문 지식이 없어도 사용 가능하며, 양자 회로를 컴파일해 특정 양자 장치와 뒤엉킴 게이트의 위상을 일치시킬 수 있고, 회로 명령어를 장치의 기본 게이트 세트에 매핑시킬 수 있으며, 더 높은 충실도를 위해 양자 회로를 최적화시킬 수도 있다.

위의 노이즈 제거 예에서와 같이, 큐비트들의 진폭 및 위상은 동작들이 정확하게 수행될 수 없는 연속적인 자유도 (degree of freedom) 이다. 이들 게이트 에러들은, 양자 컴퓨터가 상주하는 환경으로부터의 잡음과 함께, 컴파일 프로세스에서 설명되지 않는 경우 계산을 방해할 수 있고, 잡음에 민감한 현재의 양자 시스템들 상에서 고충실도 출력을 획득하기 위해 추가적인 완화 절차들을 요구할 수 있다. Qiskit은 컴파일 전략에서 광범위한 장치 교정 메트릭 (아래 그림 참조) 을 고려할 수 있고, 주어진 양자 회로를 실행할 최적의 큐비트 세트를 선택할 수 있다. 또한, Qiskit은 양자 회로 출력의 충실한 표현을 추출하기 위한 잡음 완화 기술의 집합을 호스트한다.

_images/system_error.png

그림 5 ibmq_manhattan 시스템에 대한 위상수학 및 오류 비율.

더 알아보기

바라건대, 우리는 독자들에게 양자 계산이 어떤걸 제공하는지 맛보았기를 바라며, 여러분은 더 많은 것을 갈망하길 바란다. 그렇다면 다음과 같은 몇 가지 리소스를 활용할 수 있다.