示例#1
0
def test():
    machine=pq.init_quantum_machine(pq.QMachineType.CPU)
    qlist=machine.qAlloc_many(4)
    clist = machine.cAlloc_many(4)
    prog=pq.QProg()
    prog.insert(pq.H(qlist[2])).insert(pq.meas_all(qlist,clist))
    data = {'shots':1000}
    result=machine.run_with_configuration(prog,clist,data) 
    pq.destroy_quantum_machine(machine)
    

    machine2=pq.init_quantum_machine(pq.QMachineType.CPU)
    qlist2=machine2.qAlloc_many(3)
    prog2=pq.QProg()
    prog2.insert(pq.H(qlist2[0])).insert(pq.CNOT(qlist2[0],qlist2[1]))
    result2=machine2.prob_run_dict(prog2,qlist2,-1)
    pq.destroy_quantum_machine(machine2)

    pq.init(pq.QMachineType.CPU)
    qlist3=pq.qAlloc_many(5)
    clist3=pq.cAlloc_many(5)
    prog3=pq.QProg()
    prog3.insert(pq.H(qlist3[0])).insert(pq.CNOT(qlist3[0],qlist3[1]))\
         .insert(pq.CNOT(qlist3[1],qlist3[2])).insert(pq.CNOT(qlist3[2],qlist3[3]))\
         .insert(pq.meas_all(qlist3,clist3))
    result3=pq.run_with_configuration(prog3,clist3,100)
    pq.finalize()


    return result,result2,result3
示例#2
0
def Bell_State():
    machine=pq.init_quantum_machine(pq.QMachineType.CPU)
    qlist=machine.qAlloc_many(2)
    clist=machine.cAlloc_many(2)
    qprog=pq.QProg()
    qprog.insert(pq.H(qlist[0]))\
         .insert(pq.CNOT(qlist[0],qlist[1]))
    qprog.insert(pq.meas_all(qubit_list=qlist,cbit_list=clist))
    machine.load(qprog)
    machine.run()
    result=machine.getResultMap()
    return result
示例#3
0
def test_decompose():
    machine = pq.init_quantum_machine(pq.QMachineType.CPU)
    q = machine.qAlloc_many(2)
    c = machine.cAlloc_many(2)

    x = [(0.6477054522122977 + 0.1195417767870219j),
         (-0.16162176706189357 - 0.4020495632468249j),
         (-0.19991615329121998 - 0.3764618308248643j),
         (-0.2599957197928922 - 0.35935248873007863j),
         (-0.16162176706189363 - 0.40204956324682495j),
         (0.7303014482204584 - 0.4215172444390785j),
         (-0.15199187936216693 + 0.09733585496768032j),
         (-0.22248203136345918 - 0.1383600597660744j),
         (-0.19991615329122003 - 0.3764618308248644j),
         (-0.15199187936216688 + 0.09733585496768032j),
         (0.6826630277354306 - 0.37517063774206166j),
         (-0.3078966462928956 - 0.2900897445133085j),
         (-0.2599957197928923 - 0.3593524887300787j),
         (-0.22248203136345912 - 0.1383600597660744j),
         (-0.30789664629289554 - 0.2900897445133085j),
         (0.6640994547408099 - 0.338593803336005j)]
    cir = pq.matrix_decompose(q, x)
    result_mat = pq.get_matrix(cir)
    #draw_qprog(cir, 'text')
    draw_qprog(cir, 'pic', filename='d:/test_cir_draw-88.jpg')
    x1 = np.round(np.array(x), 3)
    print('x1')
    print(x1)
    mat2 = np.round(np.array(result_mat), 3)
    print('mat2')
    print(mat2)
    if np.all(x1 == mat2):
        print('ok')
    else:
        print('falsh')

    print('The decomposed cir matrix:')
    pq.print_matrix(result_mat, 15)
 def __init__(self, machineType=pq.QMachineType.CPU):
     self.m_machine = pq.init_quantum_machine(machineType)
示例#5
0
 def __init__(self, quBitCnt, cBitCnt, machineType=pq.QMachineType.CPU):
     self.m_machine = pq.init_quantum_machine(machineType)
     self.m_qlist = self.m_machine.qAlloc_many(quBitCnt)
     self.m_clist = self.m_machine.cAlloc_many(cBitCnt)
     self.m_prog = pq.QProg()