Yao 입문 1 (GHZ 상태 작성)
목적
Julia의 양자 계산 시뮬레이션 패키지에서 "Yao.jl"이라는 것을 찾았으므로 조금 놀아 보자.
이번에는 GHZ 상태를 작성하면서 기본적인 조작 보법을 배운다.
도구를 모으다
using Yao
using BitBasis
using Plots
gr()
양자 회로 작성
circuit = chain( # {ではない}
4, #4-qubit
# 以降の操作の順番は量子回路の入力から出力への順番に対応している。
put(1=>X), #1番目のqubitにPauli-X
repeat(H,2:4), #2~4番目のqubitにHadamard
control(2, 1=>X), #2から1に向けてcontrol-X
control(4, 3=>X),
control(3, 1=>X),
control(4, 3=>X),
repeat(H, 1:4),
)
초기 상태 만들기
양자 상태를 나타내는 것으로 ArrayReg가 준비되어 있습니다. 상태 $\left|0000\right>$를 만드는 방법에는 두 가지가 있습니다.
zero_state(4)
ArrayReg(bit"0000")
초기 상태에 회로를 작용
apply!(zero_state(4), circuit)
관측하다
관측하려면 지금까지
- 초기 상태 생성
- 회로 작용
- 관측
를 계속해서 해야 하지만 이것에는 파이프 |>
를 사용할 수 있다
관측을 1000회 실시하면
results = zero_state(4) |> circuit |> r->measure(r, nshots=1000)
이것을 마지막으로 히스토그램으로 보고 싶지만, results는 BitStr형으로 되어 있어 이것을 정수로 되돌릴 필요가 있다. 이것에는 BitBasis의 함수로서 bint가 준비되어 있으므로 이것을 작용시키면 좋다.
num_result=bint.(results) #整数値に変換
histogram(num_result)
그렇다면
된다. 예상했던 것처럼
$$\left|GHZ\right>=\frac{1}{\sqrt{2}}\left|0000\right>+\frac{1}{\sqrt{2}}\left|1111\right>$ $
된다.
다음 번
다음 번에서는 초학자에게는 상상하기 어려운 Order finding의 출력 상태를 살펴본다.
참고문헌
Yao.jl 공식 문서
Reference
이 문제에 관하여(Yao 입문 1 (GHZ 상태 작성)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/DoughnutSilver/items/cfe10b3b80a7126b216e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
using Yao
using BitBasis
using Plots
gr()
circuit = chain( # {ではない}
4, #4-qubit
# 以降の操作の順番は量子回路の入力から出力への順番に対応している。
put(1=>X), #1番目のqubitにPauli-X
repeat(H,2:4), #2~4番目のqubitにHadamard
control(2, 1=>X), #2から1に向けてcontrol-X
control(4, 3=>X),
control(3, 1=>X),
control(4, 3=>X),
repeat(H, 1:4),
)
zero_state(4)
ArrayReg(bit"0000")
apply!(zero_state(4), circuit)
results = zero_state(4) |> circuit |> r->measure(r, nshots=1000)
num_result=bint.(results) #整数値に変換
histogram(num_result)
Yao.jl 공식 문서
Reference
이 문제에 관하여(Yao 입문 1 (GHZ 상태 작성)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/DoughnutSilver/items/cfe10b3b80a7126b216e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)