양자 컴퓨터 설치3

퀀텀워크의 퀀텀컴퓨터 설치 3~사이클 3의 아다마 워커~


아다마 워크가 주기 3달러 3달러에서 이루어진 것을 총괄했다. 양자 컴퓨터 설치 2 에서는 주기 크기가 2^n 달러인 경우도 소개했고, 주기 크기가 2^n 달러가 아닌 경우도 소개했다.
여기에 소개된 방법은 Efficient quantum circuit implementation of quantum walks와 같다.

Hadamard Walk 순환 3


양자보행의 간단한 설명 참고양자 컴퓨터 설치1.
이번 사고의 주기는,

이 순환 ($0001,10달러 (10진 0~2) 의 양자 보행을 정의합니다.

코인 작용소와 교환 작용소


전체적인 동력으로서
$$
W=\hat{S}\hat{C}\
$$
코인 작용소
  • 코인 비용 $\hat{C} 달러
  • \hat{C}=(I\otimes H)\\
    \mbox{ただし}I=\sum_{x}|x\rangle\langle x|,\quad
    H=\frac{1}{\sqrt{2}}\begin{bmatrix}
    1&1\\1&-1
    \end{bmatrix}
    
  • 교환비 $\hat{S}달러
  • \hat{S}=\sum_{x}|x-1\rangle\langle x|\otimes|0\rangle\langle 0|+|x+1\rangle\langle x|\otimes|1\rangle\langle 1|
    
    단, $x\pm1달러는 $mod3달러로 고려합니다.
  • 초기 상태
    $$\Psi=\frac{1}{\sqrt{2}}|0\rangle\otimes|0\rangle+\frac{i}{\sqrt{2}}|0\rangle\otimes|1\rangle$$
  • 이것コイン作用素シフト作用素문을 고려하면 양자보행의 시간 변화는 양자보행을 나타낼 수 있다.
    구체적으로 말하면
    동전 제작소 $\hat{C} = I\otimes H$, 상태의 양자 비트가 $H$를 통과해야만 표시할 수 있습니다.
    교환비 $\hat{S}달러,
    • 상태가 0인 경우 장소x는 -1
    ・상태가 1라면 위치x+1
    입문을 고려할 수 있다.

    IBMQ에서 설치


    이번 실복은 3qubits($q[0]q[1]q[2]$)를 사용했다.

    변위 사용소 구축 (주기 3)


    우리는 $n위 2진법 +1 조작과 -1 조작 알고리즘을 고려하고 싶습니다. $q[0]q[1달러에는 $11달러가 포함되어 있기 때문에 이를 잘 배제할 필요가 있습니다.
  • -1 작업(상태 0)サイクル4の-1操作 $+$ 場所11と10のスイッチ $=$ サイクル3の-1操作양자 컴퓨터 설치1
  • +1 작업(상태 1)サイクル4の+1操作 $+$ 場所11と00のスイッチ $=$ サイクル3の+1操作
  • 종합적으로 말하면 교대 근무는

    되다
    순환 4의 비트레이트 + 상태 0이면 장소 11과 10 스위치 + 상태 1이면 장소 11과 00 스위치

    회로 부분의 제작


    양자 레지스터, 고전 레지스터 및 그것들로부터 양자 회로 설정qwqc
  • 지점qbits$Rightarrowq[0]q[1달러
  • 상태qbits$Rightarrowq[2]달러
  • from qiskit import QuantumCircuit, ClassicalRegister, QuantumRegister
    from qiskit import execute
    
    from qiskit.tools.visualization import plot_histogram
    
    q = QuantumRegister(3, 'q')
    c = ClassicalRegister(2, 'c')
    
    qwqc = QuantumCircuit(q,c)
    
    #時間
    t=1
    
    #初期状態をセット
    qwqc.h(q[2])
    qwqc.s(q[2])
    
    #時間発展
    for i in range(t):
        #コインオペ
        qwqc.h(q[2])
        #シフト
        qwqc.x(q[1])
        qwqc.cx(q[2],q[0])
        qwqc.cx(q[1],q[0])
        #-1回転の修正
        qwqc.x(q[2])
        qwqc.ccx(q[0],q[2],q[1])
        qwqc.x(q[2])
        #+1回転の修正
        qwqc.ccx(q[1],q[2],q[0])
        qwqc.x(q[0])
        qwqc.ccx(q[0],q[2],q[1])
        qwqc.x(q[0])
        qwqc.ccx(q[1],q[2],q[0])
    
    #観測
    qwqc.measure(q[0],c[0])
    qwqc.measure(q[1],c[1])
    
    qwqc.draw()
    

    t=1의 시뮬레이터 결과

    from qiskit import BasicAer
    backend_s=BasicAer.get_backend('qasm_simulator')
    job_s = execute(qwqc, backend_s,shots=1024)
    result_s = job_s.result()
    counts_s = result_s.get_counts(qwqc)
    plot_histogram(counts_s)
    

    t=1의 실제 결과

    from qiskit.tools.monitor import job_monitor
    provider = IBMQ.get_provider(hub='ibm-q')
    
    backend_r=provider.get_backend('ibmqx2')
    job_r = execute(qwqc, backend=backend_r,shots=1024)
    job_monitor(job_r)
    
    Job Status: job has successfully run
    result_r= job_r.result()
    counts_r = result_r.get_counts(qwqc)
    plot_histogram(counts_r)
    

    총결산


    같은 방식으로 임의의 순환 크기의 양자 보행을 실현할 수 있으며, 임의의 순환 n을 실현하기 위해 최소 $n\leq2^N 달러에 대해 방식으로 $2^N 달러의 순환을 만들 수 있으며, 스위치 수정 조작을 통해 임의의 순환이 발생할 수 있다.

    좋은 웹페이지 즐겨찾기