IBM Quantum Experience와 Blueqat로 만든 2진수의 가산회로에 H게이트를 적용하여 양자의 느낌을 체감해본다

양자 컴퓨터 초보자입니다. 지난번 IBM Quantum Experience와 Blueqat을 사용하여 2진수의 가산 회로를 만들려고 했는데, 아마 이런 의문이 있다고 생각합니다.

보통의 디지털 계산과 다르지 않은 것은 ...?

맞습니다. 지난번 는 4회 계산하여 4개의 대답을 얻었습니다. 이것으로 보통 계산기 싶은 것과 큰 차이가 없습니다. 이번에는 여기에 $H$게이트를 적용하여 양자의 중첩을 사용한 계산을 실시해, 양자 같음을 체감해 봅니다.

가산 회로에 H 게이트 적용



지난번 Circuit Composer로 만든 가산 회로의 q[0]과 q[1]에 $H$ 게이트를 적용합니다. 준비는 이것뿐.
Measurement Probability의 결과를 보면 4개의 값이 나란히 있습니다.


가산 회로 복습



이 가산 회로에서는 q[0]과 q[1]이 입력 비트, q[2]와 q[3]이 출력 비트였습니다. 그리고 다음과 같이 계산하는 것을 상정하고 있었던 것이었습니다.


입력1 q[0]
입력2 q[1]
출력 첫 번째 자리 q[2]
출력 두 번째 자리 q[3]


0
0
0
0

1
0
1
0

0
1
1
0

1
1
0
1


결과 확인



Circuit Composer에서는 q[3], q[2], q[1], q[0]과 양자 비트의 순서와 반대로 결과를 내기 때문에, 나란히 있는 4자리 숫자는 선두 2개가 출력값, 뒤에 2개가 입력 값입니다. 앞의 표의 오른쪽에서 왼쪽으로 숫자가 줄지어 있다고 생각해 주시면 OK입니다.


그래서 $H$ 게이트를 넣는 것으로 하나의 회로로 4개의 계산을 동시에 할 수 있었습니다!

발상의 비약이 필요(아마)



이런 일이 일어나는 것은 $H$ 게이트를 적용하는 것으로, q[0], q[1]이 0과 1의 값을 50%씩 가지는, 즉 0이기도 하고 1이기도 하는 양자의 중첩 맞추기 상태가 되기 때문입니다. 확정적이지 않은 값을 입력값으로 계산하면 확정적인 결과가 나온다는 것은 아무래도 양자 같고, 보통의 계산과는 꽤 이미지가 다르기 때문에 발상의 비약이 필요할 것 같은 생각이 듭니다 .

Blueqat에서 계산해보기



같은 계산을 Blueqat에서 해보겠습니다. 쓰는 것은 단지 이것뿐. 짧은 ...
from blueqat import Circuit
Circuit().h[0,1].ccx[0,1,3].cx[1,2].cx[0,2].m[:].run(shots=100)

계산하면 이런 식으로 네 가지 결과가 반환됩니다. Circuit Composer와는 반대로 q[0], q[1], q[2], q[3]의 순서로 결과가 나오고 있는 것에 주의해 주세요.
Counter({'0000': 23, '0110': 31, '1010': 25, '1101': 21})

아직 양자 프로그래밍 처음 며칠이지만, 양자 프로그래밍은 설정까지 힘들지만 계산은 일격 같은 인상을 가졌습니다. 이 근처가 양자 컴퓨터가 주목받는 이유일지도 모릅니다.

참고 자료



Blueqat 자습서 중첩을 사용한 더하기

좋은 웹페이지 즐겨찾기