Merge branch 'isma/clean-quantum-program' into Dev

This commit is contained in:
ismael faro 2017-05-12 23:05:16 -04:00
commit 1de76156dd
2 changed files with 41 additions and 43 deletions

View File

@ -539,3 +539,8 @@ class QuantumProgram(object):
basicplotter.plot_histogram(data, circuit_number) basicplotter.plot_histogram(data, circuit_number)
else: else:
basicplotter.plot_qsphere(data, circuit_number) basicplotter.plot_qsphere(data, circuit_number)
def get_data(self, results, i):
"""Get the dict of labels and counts from the output of get_job."""
return results['qasms'][i]['result']['data']['counts']

View File

@ -63,7 +63,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 1, "execution_count": null,
"metadata": { "metadata": {
"collapsed": false "collapsed": false
}, },
@ -88,15 +88,8 @@
"from qiskit import QuantumProgram\n", "from qiskit import QuantumProgram\n",
"import Qconfig\n", "import Qconfig\n",
"\n", "\n",
"sys.path.append(\"../\")\n", "#import basic plot tools\n",
"#some usefull functions for running a program, plotting, and getting the data\n", "from qiskit.basicplotter import plot_histogram"
"from qhelpers.misc import run_program\n",
"from qhelpers.misc import program_to_text\n",
"from qhelpers.misc import combine_jobs\n",
"from qhelpers.misc import get_data\n",
"from qhelpers.basicplotter import plot_histogram\n",
"from qhelpers.misc import average_data\n",
"\n"
] ]
}, },
{ {
@ -199,16 +192,16 @@
}, },
"outputs": [], "outputs": [],
"source": [ "source": [
"print(\"IZ = \" + str(Q_program.average_data(get_data(results,0),obsevableIZ)))\n", "print(\"IZ = \" + str(Q_program.average_data(Q_program.get_data(results,0),obsevableIZ)))\n",
"print(\"ZI = \" + str(Q_program.average_data(get_data(results,0),obsevableZI)))\n", "print(\"ZI = \" + str(Q_program.average_data(Q_program.get_data(results,0),obsevableZI)))\n",
"print(\"ZZ = \" + str(Q_program.average_data(get_data(results,0),obsevableZZ)))\n", "print(\"ZZ = \" + str(Q_program.average_data(Q_program.get_data(results,0),obsevableZZ)))\n",
"\n", "\n",
"print(\"IX = \" + str(Q_program.average_data(get_data(results,2),obsevableIZ)))\n", "print(\"IX = \" + str(Q_program.average_data(Q_program.get_data(results,2),obsevableIZ)))\n",
"print(\"XI = \" + str(Q_program.average_data(get_data(results,2),obsevableZI)))\n", "print(\"XI = \" + str(Q_program.average_data(Q_program.get_data(results,2),obsevableZI)))\n",
"print(\"XX = \" + str(Q_program.average_data(get_data(results,2),obsevableZZ)))\n", "print(\"XX = \" + str(Q_program.average_data(Q_program.get_data(results,2),obsevableZZ)))\n",
"\n", "\n",
"print(\"ZX = \" + str(Q_program.average_data(get_data(results,1),obsevableZZ)))\n", "print(\"ZX = \" + str(Q_program.average_data(Q_program.get_data(results,1),obsevableZZ)))\n",
"print(\"XZ = \" + str(Q_program.average_data(get_data(results,3),obsevableZZ)))" "print(\"XZ = \" + str(Q_program.average_data(Q_program.get_data(results,3),obsevableZZ)))"
] ]
}, },
{ {
@ -318,7 +311,7 @@
}, },
"outputs": [], "outputs": [],
"source": [ "source": [
"print(program_to_text(program[0:8]))" "print(Q_program.program_to_text(program[0:8]))"
] ]
}, },
{ {
@ -343,10 +336,10 @@
"CHSH_data_sim = []\n", "CHSH_data_sim = []\n",
"for j in range(0,len(r['qasms']),4):\n", "for j in range(0,len(r['qasms']),4):\n",
" temp=[]\n", " temp=[]\n",
" temp.append(average_data(get_data(r,j+0),obsevableZZ_ideal))\n", " temp.append(Q_program.average_data(Q_program.get_data(r,j+0),obsevableZZ_ideal))\n",
" temp.append(average_data(get_data(r,j+1),obsevableZZ_ideal))\n", " temp.append(Q_program.average_data(Q_program.get_data(r,j+1),obsevableZZ_ideal))\n",
" temp.append(average_data(get_data(r,j+2),obsevableZZ_ideal))\n", " temp.append(Q_program.average_data(Q_program.get_data(r,j+2),obsevableZZ_ideal))\n",
" temp.append(average_data(get_data(r,j+3),obsevableZZ_ideal))\n", " temp.append(Q_program.average_data(Q_program.get_data(r,j+3),obsevableZZ_ideal))\n",
" CHSH_data_sim.append(CHSH(temp))" " CHSH_data_sim.append(CHSH(temp))"
] ]
}, },
@ -378,10 +371,10 @@
"CHSH_data_real = []\n", "CHSH_data_real = []\n",
"for j in range(0, len(r['qasms']), 4):\n", "for j in range(0, len(r['qasms']), 4):\n",
" temp=[]\n", " temp=[]\n",
" temp.append(average_data(get_data(r,j+0),obsevableZZ))\n", " temp.append(Q_program.average_data(Q_program.get_data(r,j+0),obsevableZZ))\n",
" temp.append(average_data(get_data(r,j+1),obsevableZZ))\n", " temp.append(Q_program.average_data(Q_program.get_data(r,j+1),obsevableZZ))\n",
" temp.append(average_data(get_data(r,j+2),obsevableZZ))\n", " temp.append(Q_program.average_data(Q_program.get_data(r,j+2),obsevableZZ))\n",
" temp.append(average_data(get_data(r,j+3),obsevableZZ))\n", " temp.append(Q_program.average_data(Q_program.get_data(r,j+3),obsevableZZ))\n",
" CHSH_data_real.append(CHSH(temp))" " CHSH_data_real.append(CHSH(temp))"
] ]
}, },
@ -479,13 +472,13 @@
"\n", "\n",
"circuits = [ghz+measureZZ, ghz+measureXX]\n", "circuits = [ghz+measureZZ, ghz+measureXX]\n",
"\n", "\n",
"print(program_to_text(circuits))\n", "print(Q_program.program_to_text(circuits))\n",
"\n", "\n",
"results = Q_program.execute(circuits, device, shots, max_credits=3, wait=10, timeout=240) \n", "results = Q_program.execute(circuits, device, shots, max_credits=3, wait=10, timeout=240) \n",
"\n", "\n",
"data=get_data(results,0)\n", "data=Q_program.get_data(results,0)\n",
"plot_histogram(data)\n", "plot_histogram(data)\n",
"data=get_data(results,1)\n", "data=Q_program.get_data(results,1)\n",
"plot_histogram(data)" "plot_histogram(data)"
] ]
}, },
@ -523,13 +516,13 @@
"\n", "\n",
"circuits = [ghz+measureZZZ, ghz+measureXXX]\n", "circuits = [ghz+measureZZZ, ghz+measureXXX]\n",
"\n", "\n",
"print(program_to_text(circuits))\n", "print(Q_program.program_to_text(circuits))\n",
"\n", "\n",
"results = Q_program.execute(circuits, device, shots, max_credits=3, wait=10, timeout=240)\n", "results = Q_program.execute(circuits, device, shots, max_credits=3, wait=10, timeout=240)\n",
"\n", "\n",
"data=get_data(results,0)\n", "data=Q_program.get_data(results,0)\n",
"plot_histogram(data)\n", "plot_histogram(data)\n",
"data=get_data(results,1)\n", "data=Q_program.get_data(results,1)\n",
"plot_histogram(data)" "plot_histogram(data)"
] ]
}, },
@ -575,13 +568,13 @@
"\n", "\n",
"circuits = [ghz+measureZZZZ, ghz+measureXXXX]\n", "circuits = [ghz+measureZZZZ, ghz+measureXXXX]\n",
"\n", "\n",
"print(program_to_text(circuits))\n", "print(Q_program.program_to_text(circuits))\n",
"\n", "\n",
"results = Q_program.execute(circuits, device, shots, max_credits=3, wait=10, timeout=240)\n", "results = Q_program.execute(circuits, device, shots, max_credits=3, wait=10, timeout=240)\n",
"\n", "\n",
"data=get_data(results,0)\n", "data=Q_program.get_data(results,0)\n",
"plot_histogram(data)\n", "plot_histogram(data)\n",
"data=get_data(results,1)\n", "data=Q_program.get_data(results,1)\n",
"plot_histogram(data)" "plot_histogram(data)"
] ]
}, },
@ -624,11 +617,11 @@
"\n", "\n",
"circuits = [ghz+measureZZZ]\n", "circuits = [ghz+measureZZZ]\n",
"\n", "\n",
"print(program_to_text(circuits))\n", "print(Q_program.program_to_text(circuits))\n",
"\n", "\n",
"results = Q_program.execute(circuits, device, shots, max_credits=3, wait=10, timeout=240) \n", "results = Q_program.execute(circuits, device, shots, max_credits=3, wait=10, timeout=240) \n",
"\n", "\n",
"data=get_data(results,0)\n", "data=Q_program.get_data(results,0)\n",
"plot_histogram(data)" "plot_histogram(data)"
] ]
}, },
@ -727,10 +720,10 @@
"outputs": [], "outputs": [],
"source": [ "source": [
"temp=[]\n", "temp=[]\n",
"temp.append(average_data(get_data(results,0),observable))\n", "temp.append(Q_program.average_data(Q_program.get_data(results,0),observable))\n",
"temp.append(average_data(get_data(results,1),observable))\n", "temp.append(Q_program.average_data(Q_program.get_data(results,1),observable))\n",
"temp.append(average_data(get_data(results,2),observable))\n", "temp.append(Q_program.average_data(Q_program.get_data(results,2),observable))\n",
"temp.append(average_data(get_data(results,3),observable))\n", "temp.append(Q_program.average_data(Q_program.get_data(results,3),observable))\n",
"print(temp)\n", "print(temp)\n",
"print(MerminM(temp))" "print(MerminM(temp))"
] ]
@ -781,7 +774,7 @@
"source": [ "source": [
"temp=[]\n", "temp=[]\n",
"for j in range(0, 50):\n", "for j in range(0, 50):\n",
" temp.append(average_data(get_data(results,j),observable))" " temp.append(Q_program.average_data(Q_program.get_data(results,j),observable))"
] ]
}, },
{ {