양자컴퓨터/Qiskit

[IBM Q Experience] 양자컴퓨터의 기초

nineil91 2021. 2. 5. 11:50

큐빗

 

양자 게이트로 큐빗 조작

양자 컴퓨터에서도 고전적 컴퓨터와 유사하게 게이트는 기본적인 구성 단위이다. 

 

측정게이트

큐빗을 측정 혹은 관찰하는 행위는 큐빗의 상태를 변화시킨다. 이 과정도 또한 하나의 게이트로 여겨진다. 측정 게이트는 중첩 상태의 큐빗을 입력받아 0또는 1을 출력으로 내보닌다. 출력값은 0 또는 1일 확률이 존재하고 확률은 큐빗의 원래 상태에 의존한다.

계산이 진행되는 중에 큐빗을 관찰하면 파동함수를 붕괴시켜 상태 중첩을 통한 병렬성을 파괴하기 때문에 측정 게이트는 양자 회로에서 가장 마지막으로 동작해야 한다. 

스왑 게이트

스왑 게이트는 2개의 큐빗을 입력받아 상태를 서로 맞바꾼다. 

 

파울리 X 게이트

고전 NOT 게이트와 유사한 역할을 함. 큐빗을 X축에서 180도 회전시킴.

 

회전 게이트 : Y, Z

Y축과 Z축 상의 회전 게이트는 파울리 Y 및 파울리 Z게이트라고 불린다.

- 파울리 Y 게이트는 1개의 큐빗에 대해 동작한다. 블로흐 구의 Y축을 중심으로 π만큼 회전한다. 

  (=  

- 파울리 Z 게이트는 1개의 큐빗에 대해 동작한다. 블로흐 구의 Z축을 중심으로 π만큼 회전한다.

  (= 기저상태  

 

아다마르 게이트(H)

아다마르 게이트는 1개의 큐빗에 대해 동작한다. 같은 2개의 회전이 결합된 것이다.

    1. X축 위에서 π만큼

    2. Y축 위에서 π/2만큼

 

아다마르 게이트는 양자 회로로 아다마르 행렬을 나타낸 것이다. 아다마르 행렬은 항의 값이 +1이거나 -1이고, 행들이 서로 직교하는 정사각 행렬이다.

제어 게이트(cX cY cZ)

제어 게이트는 2개 이상의 큐빗에 대해 동작함. 그중 1개 이상의 큐빗은 연산을 제어하는 역할을 함. NOT게이트는 2개의 큐빗에 대해 동작하는데 첫 번째 큐빗이 |1⟩일 때만 두 번째 큐빗에 대해 NOT 연산을 수행한다. 첫번째 큐빗이 |1⟩이아닐때는아무것도변경하지않는다.

토폴리(CCNOT)게이트

3개의 큐빗에 대해 동작을 제어하는 게이트이다. 처음 2개의 큐빗이 |1⟩ 상태면 세번째 큐빗에 파울리 X연산을 적용하고, 그렇지 않으면 아무것도 하지 않는다. 이 게이트는 |a, b, c⟩를 |a, b, c+ab⟩로매핑한다.

 

기본적인 양자 게이트

게이트 이름 설명
측정 중첩 상태의 큐빗 1개를 입력받아 0이나 1을 출력으로 내보낸다.
X(NOT) 큐빗을 X축에서 π만큼 회전시킨다.  |0⟩을  |1⟩로,  |1⟩을  |0⟩으로매핑한다.
Y 블로흐 구의 Y축을 중심으로 π만큼 회전한다.
Z 블로흐구의 Z축을 중심으로 π만큼 회전한다.
아다마르 (X+Z)2^(1/2)축 위에서 π만큼 회전을 나타낸다.
스왑(S) 2개의 큐빗을 교환한다.
제어(cX cY cZ) 2개 이상의 큐빗에 대해 동작한다. 1개 이상의 큐빗이 제어역할을 수행한다.
토폴리(CCNOT) 가역게이트이다. 출력값을 입력값으로부터 재구축 할 수 있다.