"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.plot(loss_list)\n",
+ "plt.title(\"Distillation QNN training\")\n",
+ "plt.xlabel(\"Training Iterations\")\n",
+ "plt.ylabel(\"Loss\")\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "201540f7",
+ "metadata": {},
+ "source": [
+ "# Test histogram"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "24f7ee43",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "id": "a58aa3e7",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ " ┌────────────┐ »\n",
+ " q_0: ┤ Ry(2.6831) ├────■──────■──────────────────────────»\n",
+ " └┬──────────┬┘┌───┴───┐ │ ┌───┐┌─────┐┌───┐┌─────┐»\n",
+ " q_1: ─┤ Ry(3π/8) ├─┤ Ry(0) ├──┼──┤ X ├┤ Sdg ├┤ H ├┤ Sdg ├»\n",
+ " └──────────┘ └───────┘┌─┴─┐└─┬─┘└─────┘└───┘└─────┘»\n",
+ " q_2: ───────────────────────┤ X ├──■─────────────────────»\n",
+ " └───┘ »\n",
+ "meas: 3/════════════════════════════════════════════════════»\n",
+ " »\n",
+ "« »\n",
+ "« q_0: ────────────────────────────────────────────────────────────────»\n",
+ "« ┌─────────────────────┐┌─────┐┌───┐┌─────┐┌───────┐┌───┐┌──────┐»\n",
+ "« q_1: ┤ P(3.43584501835934) ├┤ Sdg ├┤ H ├┤ Sdg ├┤ P(3π) ├┤ X ├┤ P(0) ├»\n",
+ "« └─────────────────────┘└─────┘└───┘└─────┘└───────┘└─┬─┘└──────┘»\n",
+ "« q_2: ─────────────────────────────────────────────────────■──────────»\n",
+ "« »\n",
+ "«meas: 3/════════════════════════════════════════════════════════════════»\n",
+ "« »\n",
+ "« »\n",
+ "« q_0: ──────────────────────────────────────────────────────────────────────»\n",
+ "« ┌─────┐┌───┐┌─────┐┌─────────────────────┐┌─────┐┌───┐┌─────┐┌───────┐»\n",
+ "« q_1: ┤ Sdg ├┤ H ├┤ Sdg ├┤ P(2.84734028882025) ├┤ Sdg ├┤ H ├┤ Sdg ├┤ P(3π) ├»\n",
+ "« └─────┘└───┘└─────┘└─────────────────────┘└─────┘└───┘└─────┘└───────┘»\n",
+ "« q_2: ──────────────────────────────────────────────────────────────────────»\n",
+ "« »\n",
+ "«meas: 3/══════════════════════════════════════════════════════════════════════»\n",
+ "« »\n",
+ "« »\n",
+ "« q_0: ──────────────────────────────────────────────────────────────────»\n",
+ "« ┌───┐┌─────┐┌───┐┌─────┐┌─────────────────────┐┌─────┐┌───┐┌─────┐»\n",
+ "« q_1: ┤ X ├┤ Sdg ├┤ H ├┤ Sdg ├┤ P(2.79811693035566) ├┤ Sdg ├┤ H ├┤ Sdg ├»\n",
+ "« └─┬─┘└─────┘└───┘└─────┘└─────────────────────┘└─────┘└───┘└─────┘»\n",
+ "« q_2: ──■───────────────────────────────────────────────────────────────»\n",
+ "« »\n",
+ "«meas: 3/══════════════════════════════════════════════════════════════════»\n",
+ "« »\n",
+ "« »\n",
+ "« q_0: ────────────────────────────────────────────────────────────────»\n",
+ "« ┌───────┐┌───┐┌──────┐┌─────┐┌───┐┌─────┐┌─────────────────────┐»\n",
+ "« q_1: ┤ P(3π) ├┤ X ├┤ P(0) ├┤ Sdg ├┤ H ├┤ Sdg ├┤ P(3.48506837682393) ├»\n",
+ "« └───────┘└─┬─┘└──────┘└─────┘└───┘└─────┘└─────────────────────┘»\n",
+ "« q_2: ───────────■────────────────────────────────────────────────────»\n",
+ "« »\n",
+ "«meas: 3/════════════════════════════════════════════════════════════════»\n",
+ "« »\n",
+ "« »\n",
+ "« q_0: ──────────────────────────────■──────────────────────────»\n",
+ "« ┌─────┐┌───┐┌─────┐┌───────┐┌─┴─┐┌───┐┌─────┐┌───┐┌─────┐»\n",
+ "« q_1: ┤ Sdg ├┤ H ├┤ Sdg ├┤ P(3π) ├┤ X ├┤ X ├┤ Sdg ├┤ H ├┤ Sdg ├»\n",
+ "« └─────┘└───┘└─────┘└───────┘└─┬─┘└─┬─┘└─────┘└───┘└─────┘»\n",
+ "« q_2: ──────────────────────────────■────■─────────────────────»\n",
+ "« »\n",
+ "«meas: 3/═════════════════════════════════════════════════════════»\n",
+ "« »\n",
+ "« »\n",
+ "« q_0: ────────────────────────────────────────────────────────────────»\n",
+ "« ┌─────────────────────┐┌─────┐┌───┐┌─────┐┌───────┐┌───┐┌──────┐»\n",
+ "« q_1: ┤ P(3.48506837682393) ├┤ Sdg ├┤ H ├┤ Sdg ├┤ P(3π) ├┤ X ├┤ P(0) ├»\n",
+ "« └─────────────────────┘└─────┘└───┘└─────┘└───────┘└─┬─┘└──────┘»\n",
+ "« q_2: ─────────────────────────────────────────────────────■──────────»\n",
+ "« »\n",
+ "«meas: 3/════════════════════════════════════════════════════════════════»\n",
+ "« »\n",
+ "« »\n",
+ "« q_0: ──────────────────────────────────────────────────────────────────────»\n",
+ "« ┌─────┐┌───┐┌─────┐┌─────────────────────┐┌─────┐┌───┐┌─────┐┌───────┐»\n",
+ "« q_1: ┤ Sdg ├┤ H ├┤ Sdg ├┤ P(2.79811693035566) ├┤ Sdg ├┤ H ├┤ Sdg ├┤ P(3π) ├»\n",
+ "« └─────┘└───┘└─────┘└─────────────────────┘└─────┘└───┘└─────┘└───────┘»\n",
+ "« q_2: ──────────────────────────────────────────────────────────────────────»\n",
+ "« »\n",
+ "«meas: 3/══════════════════════════════════════════════════════════════════════»\n",
+ "« »\n",
+ "« ░ ┌─┐ \n",
+ "« q_0: ──■────■───░─┤M├──────\n",
+ "« ┌─┴─┐ │ ░ └╥┘┌─┐ \n",
+ "« q_1: ┤ X ├──┼───░──╫─┤M├───\n",
+ "« └─┬─┘┌─┴─┐ ░ ║ └╥┘┌─┐\n",
+ "« q_2: ──■──┤ X ├─░──╫──╫─┤M├\n",
+ "« └───┘ ░ ║ ║ └╥┘\n",
+ "«meas: 3/══════════════╩══╩══╩═\n",
+ "« 0 1 2 "
+ ],
+ "text/plain": [
+ " ┌────────────┐ »\n",
+ " q_0: ┤ Ry(2.6831) ├────■──────■──────────────────────────»\n",
+ " └┬──────────┬┘┌───┴───┐ │ ┌───┐┌─────┐┌───┐┌─────┐»\n",
+ " q_1: ─┤ Ry(3π/8) ├─┤ Ry(0) ├──┼──┤ X ├┤ Sdg ├┤ H ├┤ Sdg ├»\n",
+ " └──────────┘ └───────┘┌─┴─┐└─┬─┘└─────┘└───┘└─────┘»\n",
+ " q_2: ───────────────────────┤ X ├──■─────────────────────»\n",
+ " └───┘ »\n",
+ "meas: 3/════════════════════════════════════════════════════»\n",
+ " »\n",
+ "« »\n",
+ "« q_0: ────────────────────────────────────────────────────────────────»\n",
+ "« ┌─────────────────────┐┌─────┐┌───┐┌─────┐┌───────┐┌───┐┌──────┐»\n",
+ "« q_1: ┤ P(3.43584501835934) ├┤ Sdg ├┤ H ├┤ Sdg ├┤ P(3π) ├┤ X ├┤ P(0) ├»\n",
+ "« └─────────────────────┘└─────┘└───┘└─────┘└───────┘└─┬─┘└──────┘»\n",
+ "« q_2: ─────────────────────────────────────────────────────■──────────»\n",
+ "« »\n",
+ "«meas: 3/════════════════════════════════════════════════════════════════»\n",
+ "« »\n",
+ "« »\n",
+ "« q_0: ──────────────────────────────────────────────────────────────────────»\n",
+ "« ┌─────┐┌───┐┌─────┐┌─────────────────────┐┌─────┐┌───┐┌─────┐┌───────┐»\n",
+ "« q_1: ┤ Sdg ├┤ H ├┤ Sdg ├┤ P(2.84734028882025) ├┤ Sdg ├┤ H ├┤ Sdg ├┤ P(3π) ├»\n",
+ "« └─────┘└───┘└─────┘└─────────────────────┘└─────┘└───┘└─────┘└───────┘»\n",
+ "« q_2: ──────────────────────────────────────────────────────────────────────»\n",
+ "« »\n",
+ "«meas: 3/══════════════════════════════════════════════════════════════════════»\n",
+ "« »\n",
+ "« »\n",
+ "« q_0: ──────────────────────────────────────────────────────────────────»\n",
+ "« ┌───┐┌─────┐┌───┐┌─────┐┌─────────────────────┐┌─────┐┌───┐┌─────┐»\n",
+ "« q_1: ┤ X ├┤ Sdg ├┤ H ├┤ Sdg ├┤ P(2.79811693035566) ├┤ Sdg ├┤ H ├┤ Sdg ├»\n",
+ "« └─┬─┘└─────┘└───┘└─────┘└─────────────────────┘└─────┘└───┘└─────┘»\n",
+ "« q_2: ──■───────────────────────────────────────────────────────────────»\n",
+ "« »\n",
+ "«meas: 3/══════════════════════════════════════════════════════════════════»\n",
+ "« »\n",
+ "« »\n",
+ "« q_0: ────────────────────────────────────────────────────────────────»\n",
+ "« ┌───────┐┌───┐┌──────┐┌─────┐┌───┐┌─────┐┌─────────────────────┐»\n",
+ "« q_1: ┤ P(3π) ├┤ X ├┤ P(0) ├┤ Sdg ├┤ H ├┤ Sdg ├┤ P(3.48506837682393) ├»\n",
+ "« └───────┘└─┬─┘└──────┘└─────┘└───┘└─────┘└─────────────────────┘»\n",
+ "« q_2: ───────────■────────────────────────────────────────────────────»\n",
+ "« »\n",
+ "«meas: 3/════════════════════════════════════════════════════════════════»\n",
+ "« »\n",
+ "« »\n",
+ "« q_0: ──────────────────────────────■──────────────────────────»\n",
+ "« ┌─────┐┌───┐┌─────┐┌───────┐┌─┴─┐┌───┐┌─────┐┌───┐┌─────┐»\n",
+ "« q_1: ┤ Sdg ├┤ H ├┤ Sdg ├┤ P(3π) ├┤ X ├┤ X ├┤ Sdg ├┤ H ├┤ Sdg ├»\n",
+ "« └─────┘└───┘└─────┘└───────┘└─┬─┘└─┬─┘└─────┘└───┘└─────┘»\n",
+ "« q_2: ──────────────────────────────■────■─────────────────────»\n",
+ "« »\n",
+ "«meas: 3/═════════════════════════════════════════════════════════»\n",
+ "« »\n",
+ "« »\n",
+ "« q_0: ────────────────────────────────────────────────────────────────»\n",
+ "« ┌─────────────────────┐┌─────┐┌───┐┌─────┐┌───────┐┌───┐┌──────┐»\n",
+ "« q_1: ┤ P(3.48506837682393) ├┤ Sdg ├┤ H ├┤ Sdg ├┤ P(3π) ├┤ X ├┤ P(0) ├»\n",
+ "« └─────────────────────┘└─────┘└───┘└─────┘└───────┘└─┬─┘└──────┘»\n",
+ "« q_2: ─────────────────────────────────────────────────────■──────────»\n",
+ "« »\n",
+ "«meas: 3/════════════════════════════════════════════════════════════════»\n",
+ "« »\n",
+ "« »\n",
+ "« q_0: ──────────────────────────────────────────────────────────────────────»\n",
+ "« ┌─────┐┌───┐┌─────┐┌─────────────────────┐┌─────┐┌───┐┌─────┐┌───────┐»\n",
+ "« q_1: ┤ Sdg ├┤ H ├┤ Sdg ├┤ P(2.79811693035566) ├┤ Sdg ├┤ H ├┤ Sdg ├┤ P(3π) ├»\n",
+ "« └─────┘└───┘└─────┘└─────────────────────┘└─────┘└───┘└─────┘└───────┘»\n",
+ "« q_2: ──────────────────────────────────────────────────────────────────────»\n",
+ "« »\n",
+ "«meas: 3/══════════════════════════════════════════════════════════════════════»\n",
+ "« »\n",
+ "« ░ ┌─┐ \n",
+ "« q_0: ──■────■───░─┤M├──────\n",
+ "« ┌─┴─┐ │ ░ └╥┘┌─┐ \n",
+ "« q_1: ┤ X ├──┼───░──╫─┤M├───\n",
+ "« └─┬─┘┌─┴─┐ ░ ║ └╥┘┌─┐\n",
+ "« q_2: ──■──┤ X ├─░──╫──╫─┤M├\n",
+ "« └───┘ ░ ║ ║ └╥┘\n",
+ "«meas: 3/══════════════╩══╩══╩═\n",
+ "« 0 1 2 "
+ ]
+ },
+ "execution_count": 18,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "qc2 = QuantumCircuit(3)\n",
+ "qc=qc2.compose(teacher_circuit)\n",
+ "qc.measure_all()\n",
+ "qc.draw()#.savefig('qae_circuit.pdf')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "id": "bf563d7c",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "{'001': 328, '010': 23, '000': 40, '011': 633}\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 22,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "#choosing the qasm simulator backend\n",
+ "\n",
+ "from qiskit.visualization import plot_histogram\n",
+ "\n",
+ "backend = Aer.get_backend('qasm_simulator')\n",
+ "\n",
+ "# running the job and getting results (counts)\n",
+ "job = execute(qc, backend, shots=1024) # shots = no. of times you want to run the experiment\n",
+ "result = job.result()\n",
+ "counts = result.get_counts(qc)\n",
+ "\n",
+ "#printing and visualizing results (histogram data of experiment)\n",
+ "print(counts)\n",
+ "plot_histogram(counts)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "id": "dd54f992",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 22,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "qc3 = QuantumCircuit(3)\n",
+ "qc=qc3.compose(student_network)\n",
+ "qc.assign_parameters(student_model.weight.detach().numpy(), inplace=True)\n",
+ "\n",
+ "qc.measure_all()\n",
+ "qc.decompose().draw(output='mpl')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "id": "c9f00715",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "{'001': 604, '010': 7, '000': 48, '011': 365}\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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SBpLtBu9F8zs6Ham9zezF7qsViIiImko0c4NTgV6tzP9SOCUQ66NiIhIGosUmmZWbGYtPQGNb/kcviYB0wnGvxQRkR5uwYIFFBQUkJ+fz+233/6Z+ffffz9f/OIXmTBhAmVlZdTWBh3GrV+/nj59+jBhwgQmTJjAFVdc0bpMU1MT06dPZ8yYMXz+85/nySfbG2Y59aI+clJNcAOQA8+2M38vcE1XVUpERNJTc3MzV199NQsXLiQvL49JkyZRXl7O2LFjW8t8+9vfbg3Ep59+mhtuuIEFCxYAcOKJJ7JixYrPrPdnP/sZgwcPZu3atXz66afs3LkzKduTqKihOZKg27x1wJeAd+PmNQHb3L25i+smIiJpZtmyZeTn5zNq1CgApk2bxrx58/YLzf79+7e+//DDDzGzz6ynrd/97ne88cYbAPTq1Ytjjjmmi2veNSJdnnX3De6+3t17uXt1+LnltVmBKSKSGRoaGhg+fHjr57y8PBoaPts696tf/YoTTzyRm266iXvuuad1en19PRMnTmTKlCm8+OKLALz33nsA3HrrrRQXF3P++eezdevW7t2Qg3TA0DSzc83siLj3Hb66v7oiInI4uPrqq3nrrbeYNWsWt912GwDHHXccb7/9Nq+++ip33nkn3/72t9m9ezf79u1j06ZNnHzyydTU1FBaWsqNN96Y4i1oX5TLs3OBocC28H1HHMjqikqJiEh6ys3NZePGja2fN23aRG5uboflp02bxpVXXglATk4OOTk5AJx00kmceOKJrF27lpNOOomjjjqKc88Nzr3OP/98HnjggW7cioN3wDPN8JLstrj3Hb0UmCIiPdykSZOoq6ujvr6epqYmKioqKC8v369MXV1d6/tnnnmG0aNHA/Duu+/S3By05q1bt466ujpGjRqFmXH22WezaNEiAJ5//vn92kjTyUF32C4iIpknOzube++9lzPPPJPm5mYuueQSCgsLmTFjBrFYjPLycu69916ee+45jjjiCAYMGMCcOXMAWLJkCTNmzOCII46gV69e3H///QwcOBCAWbNmceGFF3Lddddx7LHH8uCDD6ZyMztk7p13JZtIW6W7//sh1yiJYrGYV1dXp7oa0g0uvyvVNeg6s69LdQ1EMouZLXf3WHvzorZpRqE2TRER6dGidNieaFd7IiIiPZICUUREJKIog1CfC/yHu39yoPbN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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 21,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "#choosing the qasm simulator backend\n",
+ "\n",
+ "from qiskit.visualization import plot_histogram\n",
+ "\n",
+ "backend = Aer.get_backend('qasm_simulator')\n",
+ "\n",
+ "# running the job and getting results (counts)\n",
+ "job = execute(qc, backend, shots=1024) # shots = no. of times you want to run the experiment\n",
+ "result = job.result()\n",
+ "counts = result.get_counts(qc)\n",
+ "\n",
+ "#printing and visualizing results (histogram data of experiment)\n",
+ "print(counts)\n",
+ "plot_histogram(counts)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "4078e87c",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.8.11"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/Compaqt/three_qubit_ae_circuit.ipynb b/Compaqt/three_qubit_ae_circuit.ipynb
new file mode 100644
index 0000000..6169c7e
--- /dev/null
+++ b/Compaqt/three_qubit_ae_circuit.ipynb
@@ -0,0 +1,520 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 39,
+ "id": "5f99be15-a9b3-402e-8b2f-b0a142e6f795",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "ibmqfactory.load_account:WARNING:2022-07-26 18:36:14,318: Credentials are already in use. The existing account in the session will be replaced.\n"
+ ]
+ }
+ ],
+ "source": [
+ "import numpy as np\n",
+ "\n",
+ "# Importing standard Qiskit libraries\n",
+ "from qiskit import QuantumCircuit, transpile, Aer, IBMQ, execute\n",
+ "from qiskit.tools.jupyter import *\n",
+ "from qiskit.visualization import *\n",
+ "from ibm_quantum_widgets import *\n",
+ "from qiskit.providers.aer import QasmSimulator\n",
+ "\n",
+ "# Loading your IBM Quantum account(s)\n",
+ "provider = IBMQ.load_account()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "9fa501bd-67b9-4276-a95d-59c45c52f897",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "%matplotlib inline\n",
+ "import numpy as np\n",
+ "\n",
+ "from qiskit import Aer, QuantumCircuit\n",
+ "from qiskit.utils import QuantumInstance\n",
+ "from qiskit.algorithms import IterativeAmplitudeEstimation, EstimationProblem\n",
+ "from qiskit.circuit.library import LinearAmplitudeFunction\n",
+ "from qiskit_finance.circuit.library import LogNormalDistribution"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "id": "a7e4e5cd-cf99-46b7-a680-413eb1226cf2",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#number of qubits to represent the uncertainty\n",
+ "num_uncertainty_qubits = 1\n",
+ "\n",
+ "# parameters for considered random distribution\n",
+ "S = 2.0 # initial spot price\n",
+ "vol = 0.4 # volatility of 40%\n",
+ "r = 0.05 # annual interest rate of 4%\n",
+ "T = 40 / 365 # 40 days to maturity\n",
+ "\n",
+ "# resulting parameters for log-normal distribution\n",
+ "mu = (r - 0.5 * vol**2) * T + np.log(S)\n",
+ "sigma = vol * np.sqrt(T)\n",
+ "mean = np.exp(mu + sigma**2 / 2)\n",
+ "variance = (np.exp(sigma**2) - 1) * np.exp(2 * mu + sigma**2)\n",
+ "stddev = np.sqrt(variance)\n",
+ "\n",
+ "# lowest and highest value considered for the spot price; in between, an equidistant discretization is considered.\n",
+ "low = np.maximum(0, mean - 3 * stddev)\n",
+ "high = mean + 3 * stddev\n",
+ "\n",
+ "# construct A operator for QAE for the payoff function by\n",
+ "# composing the uncertainty model and the objective\n",
+ "uncertainty_model = LogNormalDistribution(\n",
+ " num_uncertainty_qubits, mu=mu, sigma=sigma**2, bounds=(low, high)\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "id": "84420bb7-a07e-44e3-a508-2fc9d334ea83",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 33,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# set the strike price (should be within the low and the high value of the uncertainty)\n",
+ "strike_price = 1.896\n",
+ "\n",
+ "# set the approximation scaling for the payoff function\n",
+ "c_approx = 0.25\n",
+ "\n",
+ "# setup piecewise linear objective fcuntion\n",
+ "breakpoints = [low, strike_price]\n",
+ "slopes = [0, 1]\n",
+ "offsets = [0, 0]\n",
+ "f_min = 0\n",
+ "f_max = high - strike_price\n",
+ "european_call_objective = LinearAmplitudeFunction(\n",
+ " num_uncertainty_qubits,\n",
+ " slopes,\n",
+ " offsets,\n",
+ " domain=(low, high),\n",
+ " image=(f_min, f_max),\n",
+ " breakpoints=breakpoints,\n",
+ " rescaling_factor=c_approx,\n",
+ ")\n",
+ "\n",
+ "# construct A operator for QAE for the payoff function by\n",
+ "# composing the uncertainty model and the objective\n",
+ "num_qubits = european_call_objective.num_qubits\n",
+ "european_call = QuantumCircuit(num_qubits)\n",
+ "european_call.append(uncertainty_model, range(num_uncertainty_qubits))\n",
+ "european_call.append(european_call_objective, range(num_qubits))\n",
+ "\n",
+ "# draw the circuit\n",
+ "european_call.draw()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "id": "27857bab-30de-4add-9d47-bbaeadf5eec8",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# set target precision and confidence level\n",
+ "epsilon = 0.01\n",
+ "alpha = 0.05\n",
+ "\n",
+ "qi = QuantumInstance(Aer.get_backend(\"aer_simulator\"), shots=100)\n",
+ "problem = EstimationProblem(\n",
+ " state_preparation=european_call,\n",
+ " objective_qubits=[1],\n",
+ " post_processing=european_call_objective.post_processing,\n",
+ ")\n",
+ "# construct amplitude estimation\n",
+ "ae = IterativeAmplitudeEstimation(epsilon, alpha=alpha, quantum_instance=qi)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 35,
+ "id": "cb0b453a-3d66-4bfe-9120-8906e2510e15",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "ae_circuit = ae.construct_circuit(problem)\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 36,
+ "id": "1f32a00d-1e7c-4e2c-a387-efc9a5078f3e",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 36,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "ae_circuit.decompose().draw(\n",
+ " \"mpl\", style=\"iqx\"\n",
+ ") # decompose 1 level: exposes the Phase estimation circuit!"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 37,
+ "id": "81a4c3ae-9e09-4e7e-98a3-19d9d8a2c2e1",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 37,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "qc2 = QuantumCircuit(3)\n",
+ "qc=qc2.compose(ae_circuit)\n",
+ "qc.measure_all()\n",
+ "qc.draw()#.savefig('qae_circuit.pdf')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 40,
+ "id": "e7a8aaf5-5bf8-4492-9499-dae99af0b149",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "{'010': 14, '000': 56, '001': 276, '011': 678}\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAcQAAAFCCAYAAABvtq3aAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAlXElEQVR4nO3de3RV9Z338fcXAgEaGCEWkCQ0xEDGBOXioUiNXOqFSp9J0VKh2tpWxarUjtpanz6DPF6mVpcOg63L2kGnXgdUno5YO1BsKSA2QgOCQJRESZBE7qiAxUDi9/ljn9AQE8iRk32SnM9rrSzO+e29T757/XL47Mtv723ujoiISLLrlOgCRERE2gIFooiICApEERERQIEoIiICKBBFREQASEl0Aa3l1FNP9ezs7ESXISIibciaNWv2uPvnm5rWYQMxOzubkpKSRJchIiJtiJltbW6aDpmKiIigQBQREQEUiCIiIoACUUREBFAgioiIAApEERERQIEoIiICKBBFREQABaKIiAigQBQREQEUiCIiIoACUUREBFAgioiIAApEERERQIEoIiICKBBFREQABaKIiAigQBQREQEUiCIiIoACUUREBFAgioiIAApEERERQIEoIiICKBBFRKSBxYsXk5eXR25uLvfee2+T8zz33HPk5+dTUFDA5ZdffrT93Xff5aKLLuKMM84gPz+fyspKAK644gry8vIYOnQoV111FUeOHAljVWKmQBQREQDq6uqYMWMGixYtorS0lHnz5lFaWnrMPOXl5fz85z/n1VdfZdOmTcyZM+fotCuvvJJbb72VN998k9WrV9O3b18gCMS33nqLDRs2cOjQIR599NEwV6vFFIgiIgLA6tWryc3NJScnh65duzJt2jQWLlx4zDxz585lxowZ9O7dG+Bo6JWWllJbW8uFF14IQFpaGj169ABg0qRJmBlmxhe/+EWqqqpCXKuWUyCKiAgA1dXVZGVlHX2fmZlJdXX1MfOUlZVRVlbGueeeyznnnMPixYuPtp9yyilceumljBgxgltvvZW6urpjlj1y5AhPPfUUX/nKV1p/ZT6DlEQXICIi7UdtbS3l5eUsW7aMqqoqxo4dy4YNG6itreWVV17h9ddfZ+DAgUydOpXHH3+cq6+++uiyN9xwA2PHjuW8885L4Bo0T3uIIiICQEZGBtu2bTv6vqqqioyMjGPmyczMpKioiC5dujBo0CCGDBlCeXk5mZmZDB8+nJycHFJSUpg8eTJr1649utydd97J7t27mT17dmjrEysFooiIADBq1CjKy8upqKjg8OHDzJ8/n6KiomPmmTx5MsuWLQNgz549lJWVkZOTw6hRo/jggw/YvXs3AEuXLiU/Px+ARx99lD/84Q/MmzePTp3abuy03cpERCRUKSkpPPTQQ0ycOJEzzjiDyy67jIKCAmbNmsWLL74IwMSJE0lPTyc/P58JEyZw//33k56eTufOnXnggQc4//zzOfPMM3F3pk+fDsB1113Hzp07GTNmDMOHD+euu+5K5Go2y9w90TW0ikgk4iUlJYkuQ0RE2hAzW+PukaamaQ9RREQEBaKIiAigQBQREQEUiCIiIoACUUREBFAgioiIAApEERERQIEoIiICKBBFREQABaKIiAigQBQREQEUiCIiIoAeECwi0mFNn5PoCuJn7k2t/zu0hygiIoICUUREBFAgioiIAApEERERQIEoIiICKBBFREQABaKIiAigQBQREQEUiCIiIoACUUREBFAgioiIAApEERERQIEoIiICKBBFREQABaKIiAigQBQREQESEIhmdoOZVZjZx2a2xszOO8H8Xc3srugyNWb2rpn9MKx6RUQkOaSE+cvMbCrwIHADsDL67yIzy3f3d5tZbD6QCVwLlAP9gO4hlCsiIkkk1EAEbgEed/e50fc3mtlXgOuBnzae2cwuAs4HTnf3PdHmyjAKFRGR5BLaIVMz6wqcDSxpNGkJ8KVmFpsM/BW4xcyqzKzczH5hZmmtV6mIiCSjMPcQTwU6Azsbte8ELmhmmRygEKgBvg6cAvwSGABMaTyzmV1LcGiVAQMGsGzZsuBDcnLo2bMn69evByA9PZ2CggJWrFgBQEpKCoWFhaxdu5b9+/cDEIlE2LlzJ9u2bQNg8ODBpKamsnHjRgD69u3LkCFDWLlyJQCpqamMGTOGkpISDh48CMDo0aOpqqqiuroagLy8PDp37kxpaSkA/fv3Z9CgQRQXFwPQvXt3Ro8ezapVqzh06BAAY8aMoaKigh07dgCQn59PXV0dmzdvBiAjI4PMzExWrVoFQFpaGpFIhOLiYmpqagAoLCykrKyMXbt2ATB06FBqamooLy8HICsri379+lFSUgJAr169GDlyJCtXrqS2thaAsWPHsmnTJvbu3QvA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9JqaGqZOnUpubi6jR4+msrISgMrKSrp3787w4cMZPnw411133dFlxo8fT15e3tFpu3btCmt1RESSQkqiC+ho6urqmDFjBi+//DKZmZmMGjWKoqIi8vPzj87z2GOP0bt3b95++23mz5/PbbfdxrPPPgvA6aefzrp165r87GeeeYZIJBLGaoiIJB3tIcbZ6tWryc3NJScnh65duzJt2jQWLlx4zDwLFy7kO9/5DgBTpkzhT3/6E+6eiHJFRCRKgRhn1dXVZGVlHX2fmZlJdXV1s/OkpKTwD//wD+zduxeAiooKRowYwbhx43jllVeOWe573/sew4cP5+6771aAiojEmQ6ZtiGnnXYa7777Lunp6axZs4bJkyezadMmevXqxTPPPENGRgYHDhzg61//Ok899RRXXnlloksWEekwtIcYZxkZGWzbtu3o+6qqKjIyMpqdp7a2lg8//JD09HRSU1NJT08H4Oyzz+b000+nrKzs6DIAPXv25PLLL2f16tVhrI6ISNJQIMbZqFGjKC8vp6KigsOHDzN//nyKioqOmaeoqIgnnngCgAULFvDlL38ZM2P37t3U1dUBsGXLFsrLy8nJyaG2tpY9e/YAcOTIEV566SWGDh0a7oqJiHRwOmQaZykpKTz00ENMnDiRuro6rrrqKgoKCpg1axaRSISioiKuvvpqvv3tb5Obm0ufPn2YP38+ACtWrGDWrFl06dKFTp068cgjj9CnTx8++ugjJk6cyJEjR6irq+OCCy5g+vTpCV5TEZGOxTrq4IxIJOIlJSWJLkNayfQ5ia4gPubelOgKpCPrKN8TiN93xczWuHuT16/pkKmIiAg6ZHpC2sISEUkO2kMUERFBgSgiIgIoEEVERAAFooiICKBAFJEE+qyPStu7dy8TJkwgLS2NH/zgB01+dlFRkW5gITFRIIpIQtQ/Km3RokWUlpYyb948SktLj5mn4aPSbr75Zm677TYAunXrxt13380DDzzQ5Gf/9re/JS0trdXXQToWBaKIJMTJPCrtc5/7HIWFhXTr1u1Tn3vw4EFmz57NzJkzQ1kP6TgUiCKSECf7qLTm3H777fzoRz+iR48e8S9aOjQFooh0GOvWreOdd97hkksuSXQp0g4pEEUkIU7mUWnNKS4upqSkhOzsbAoLCykrK2P8+PGtUr90PApEEUmIk3lUWnOuv/563nvvPSor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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 40,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "#choosing the qasm simulator backend\n",
+ "\n",
+ "backend = Aer.get_backend('qasm_simulator')\n",
+ "\n",
+ "# running the job and getting results (counts)\n",
+ "job = execute(qc, backend, shots=1024) # shots = no. of times you want to run the experiment\n",
+ "result = job.result()\n",
+ "counts = result.get_counts(qc)\n",
+ "\n",
+ "#printing and visualizing results (histogram data of experiment)\n",
+ "print(counts)\n",
+ "plot_histogram(counts)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "87dc200a-ffab-4d52-ab9b-a4917b5fa235",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.8.13"
+ },
+ "widgets": {
+ "application/vnd.jupyter.widget-state+json": {
+ "state": {
+ "0896113746a0475e955d5c374e16b677": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "margin": "0px 0px 0px 37px",
+ "width": "600px"
+ }
+ },
+ "0a445a7a896e48c88d10bfc9ddb16d56": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "grid_area": "right",
+ "padding": "0px 0px 0px 0px",
+ "width": "70px"
+ }
+ },
+ "183a878708724c7cb5bedf95ae67b2c5": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "width": "190px"
+ }
+ },
+ "19061323ac0f4b8d86706e88dd6c2fd8": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "1c8eba4202bd41169f960e819f6f9f62": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "margin": "0px 0px 10px 0px"
+ }
+ },
+ "20e857b040e940e0a5c295c85ab7c5cd": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "490f64ee1a05466db2ccf6916fb902ac": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "ButtonModel",
+ "state": {
+ "button_style": "primary",
+ "description": "Clear",
+ "layout": "IPY_MODEL_0a445a7a896e48c88d10bfc9ddb16d56",
+ "style": "IPY_MODEL_c3e7eb3dd970471fafe0d88a731e428d"
+ }
+ },
+ "49c725f8317e4bbcbea138a6a3d8c7f2": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "width": "70px"
+ }
+ },
+ "50c6e20662324391addd28659ffb9467": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HBoxModel",
+ "state": {
+ "children": [
+ "IPY_MODEL_f27536a36a68454cac108225494cf10c",
+ "IPY_MODEL_7d4b291b63164b15a6f6340555495b92",
+ "IPY_MODEL_c640d80b40864d9fb7767e08cfbcbd8c",
+ "IPY_MODEL_ca7464ced777416fbcc2d12b0117ae18",
+ "IPY_MODEL_a55c1d99ccc3419e92e2247bc06a5118"
+ ],
+ "layout": "IPY_MODEL_0896113746a0475e955d5c374e16b677"
+ }
+ },
+ "51469f5c10854add855b9f85367f7bef": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "667806b28b2841ef8aa921b116499e3f": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "width": "145px"
+ }
+ },
+ "6db22bf201c745fb869adb35472b594c": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "GridBoxModel",
+ "state": {
+ "children": [
+ "IPY_MODEL_490f64ee1a05466db2ccf6916fb902ac"
+ ],
+ "layout": "IPY_MODEL_d33010831d6e421d9f68d6cd03a8be3b"
+ }
+ },
+ "7c17bda266224be883edf55bc6b4bde8": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "width": "95px"
+ }
+ },
+ "7d4b291b63164b15a6f6340555495b92": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "layout": "IPY_MODEL_667806b28b2841ef8aa921b116499e3f",
+ "style": "IPY_MODEL_20e857b040e940e0a5c295c85ab7c5cd",
+ "value": "Backend "
+ }
+ },
+ "9db88b56224b41a09e981b3479df2206": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "a55c1d99ccc3419e92e2247bc06a5118": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "layout": "IPY_MODEL_f094ba572d4e4fa9bd4e9e18eaf9c7d3",
+ "style": "IPY_MODEL_19061323ac0f4b8d86706e88dd6c2fd8",
+ "value": "Message "
+ }
+ },
+ "b61947f905ec4486988762e68be73044": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "layout": "IPY_MODEL_1c8eba4202bd41169f960e819f6f9f62",
+ "style": "IPY_MODEL_9db88b56224b41a09e981b3479df2206",
+ "value": "Circuit Properties
"
+ }
+ },
+ "c3e7eb3dd970471fafe0d88a731e428d": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "ButtonStyleModel",
+ "state": {}
+ },
+ "c640d80b40864d9fb7767e08cfbcbd8c": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "layout": "IPY_MODEL_7c17bda266224be883edf55bc6b4bde8",
+ "style": "IPY_MODEL_e9c2da93d6574d75939a634692c6430c",
+ "value": "Status "
+ }
+ },
+ "c80b15805dd1451499cbea5c91366d56": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "ca7464ced777416fbcc2d12b0117ae18": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "layout": "IPY_MODEL_49c725f8317e4bbcbea138a6a3d8c7f2",
+ "style": "IPY_MODEL_51469f5c10854add855b9f85367f7bef",
+ "value": "Queue "
+ }
+ },
+ "d33010831d6e421d9f68d6cd03a8be3b": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "grid_template_areas": "\n \". . . . right \"\n ",
+ "grid_template_columns": "20% 20% 20% 20% 20%",
+ "width": "100%"
+ }
+ },
+ "e9c2da93d6574d75939a634692c6430c": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "f094ba572d4e4fa9bd4e9e18eaf9c7d3": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "f27536a36a68454cac108225494cf10c": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "layout": "IPY_MODEL_183a878708724c7cb5bedf95ae67b2c5",
+ "style": "IPY_MODEL_c80b15805dd1451499cbea5c91366d56",
+ "value": "Job ID "
+ }
+ }
+ },
+ "version_major": 2,
+ "version_minor": 0
+ }
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/Compaqt/three_qubit_ae_circuit_noisy-qkrt.ipynb b/Compaqt/three_qubit_ae_circuit_noisy-qkrt.ipynb
new file mode 100644
index 0000000..18fda1b
--- /dev/null
+++ b/Compaqt/three_qubit_ae_circuit_noisy-qkrt.ipynb
@@ -0,0 +1,471 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "5f99be15-a9b3-402e-8b2f-b0a142e6f795",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "\n",
+ "# Importing standard Qiskit libraries\n",
+ "from qiskit import QuantumCircuit, transpile, Aer, IBMQ, execute\n",
+ "from qiskit.tools import *\n",
+ "from qiskit.visualization import *\n",
+ "from ibm_quantum_widgets import *\n",
+ "from qiskit.providers.aer import QasmSimulator\n",
+ "\n",
+ "# Loading your IBM Quantum account(s)\n",
+ "provider = IBMQ.load_account()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "9fa501bd-67b9-4276-a95d-59c45c52f897",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ ":219: RuntimeWarning: scipy._lib.messagestream.MessageStream size changed, may indicate binary incompatibility. Expected 56 from C header, got 64 from PyObject\n"
+ ]
+ }
+ ],
+ "source": [
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "%matplotlib inline\n",
+ "import numpy as np\n",
+ "\n",
+ "from qiskit import Aer, QuantumCircuit\n",
+ "from qiskit.utils import QuantumInstance\n",
+ "from qiskit.algorithms import IterativeAmplitudeEstimation, EstimationProblem\n",
+ "from qiskit.circuit.library import LinearAmplitudeFunction\n",
+ "from qiskit_finance.circuit.library import LogNormalDistribution"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "a7e4e5cd-cf99-46b7-a680-413eb1226cf2",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#number of qubits to represent the uncertainty\n",
+ "num_uncertainty_qubits = 1\n",
+ "\n",
+ "# parameters for considered random distribution\n",
+ "S = 2.0 # initial spot price\n",
+ "vol = 0.4 # volatility of 40%\n",
+ "r = 0.05 # annual interest rate of 4%\n",
+ "T = 40 / 365 # 40 days to maturity\n",
+ "\n",
+ "# resulting parameters for log-normal distribution\n",
+ "mu = (r - 0.5 * vol**2) * T + np.log(S)\n",
+ "sigma = vol * np.sqrt(T)\n",
+ "mean = np.exp(mu + sigma**2 / 2)\n",
+ "variance = (np.exp(sigma**2) - 1) * np.exp(2 * mu + sigma**2)\n",
+ "stddev = np.sqrt(variance)\n",
+ "\n",
+ "# lowest and highest value considered for the spot price; in between, an equidistant discretization is considered.\n",
+ "low = np.maximum(0, mean - 3 * stddev)\n",
+ "high = mean + 3 * stddev\n",
+ "\n",
+ "# construct A operator for QAE for the payoff function by\n",
+ "# composing the uncertainty model and the objective\n",
+ "uncertainty_model = LogNormalDistribution(\n",
+ " num_uncertainty_qubits, mu=mu, sigma=sigma**2, bounds=(low, high)\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "84420bb7-a07e-44e3-a508-2fc9d334ea83",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# set the strike price (should be within the low and the high value of the uncertainty)\n",
+ "strike_price = 1.896\n",
+ "\n",
+ "# set the approximation scaling for the payoff function\n",
+ "c_approx = 0.25\n",
+ "\n",
+ "# setup piecewise linear objective fcuntion\n",
+ "breakpoints = [low, strike_price]\n",
+ "slopes = [0, 1]\n",
+ "offsets = [0, 0]\n",
+ "f_min = 0\n",
+ "f_max = high - strike_price\n",
+ "european_call_objective = LinearAmplitudeFunction(\n",
+ " num_uncertainty_qubits,\n",
+ " slopes,\n",
+ " offsets,\n",
+ " domain=(low, high),\n",
+ " image=(f_min, f_max),\n",
+ " breakpoints=breakpoints,\n",
+ " rescaling_factor=c_approx,\n",
+ ")\n",
+ "\n",
+ "# construct A operator for QAE for the payoff function by\n",
+ "# composing the uncertainty model and the objective\n",
+ "num_qubits = european_call_objective.num_qubits\n",
+ "european_call = QuantumCircuit(num_qubits)\n",
+ "european_call.append(uncertainty_model, range(num_uncertainty_qubits))\n",
+ "european_call.append(european_call_objective, range(num_qubits))\n",
+ "\n",
+ "# draw the circuit\n",
+ "european_call.draw(output='mpl')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "27857bab-30de-4add-9d47-bbaeadf5eec8",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# set target precision and confidence level\n",
+ "epsilon = 0.01\n",
+ "alpha = 0.05\n",
+ "\n",
+ "qi = QuantumInstance(Aer.get_backend(\"aer_simulator\"), shots=100)\n",
+ "problem = EstimationProblem(\n",
+ " state_preparation=european_call,\n",
+ " objective_qubits=[1],\n",
+ " post_processing=european_call_objective.post_processing,\n",
+ ")\n",
+ "# construct amplitude estimation\n",
+ "ae = IterativeAmplitudeEstimation(epsilon, alpha=alpha, quantum_instance=qi)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "cb0b453a-3d66-4bfe-9120-8906e2510e15",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "ae_circuit = ae.construct_circuit(problem)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "1f32a00d-1e7c-4e2c-a387-efc9a5078f3e",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAKoAAACoCAYAAABwvnWJAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAALf0lEQVR4nO3dfVDUBR7H8Q/Lkygpkc8pHGCLsYGdaCYh6I0hEplT+FiYnE0EqDGO/dEZJoeZpzaDMs7pXadmDzSKnOMZcjqKC8ado6E8+LSRPNwWGQqmqPG494e5uYKyKyy/31c/rxn+8Meuv+/Am9/uIvJ1MJlMJhCpnEbpAYiswVBJBIZKIjBUEoGhkggMlURgqCQCQyURGCqJwFBJBIZKIjBUEoGhkggMlURgqCQCQyURGCqJwFBJBIZKIjBUEoGhkggMlURgqCQCQyURGCqJwFBJBCelB1C7oylbUXeqQpFze+p8MC4t7r7uq9TcXZn5XhhqJ+pOVeDCf04rPYbNpM59N3zoJxEYKonAUEkEhkoiMFQSgaGSCAyVRGCoJAJD7Wb+8yIwIWORTfeJ+tcHGBIaaKeJHgyqDrWtrQ3r1q3DE088gV69emHUqFHQ6/Xw9/fHm2++qchMkbtSEVuZiVfLP8Xcc5/gxf1r4f3COACAk5srnn5nFk6u2wEA0Dg7YdqBtRjz/jyLv+PJN6IQc+yvcOnbGwBw8qMdGJs6v0fmd9BoMCYlFrPL/oFXv/0UEz9eClfPR3rk3F2h6lAXLFiAtLQ0xMfHY9++fZg5cybmzJmD8+fPIzg4WLG5itOz8PmIWGQGxKFi9xGEb1qCvr5D4BsThvoz1bhadQEA0Nbcgvyk9fCfF4HBzz0FAPAY6YXR785FweIMNF25DgD4QV8C1359zLexp8BF0zF8yljsjXoXO0bHAwAmZCy2+3m7SrWhZmZmYtu2bdizZw+WLl2KSZMmYdmyZRg/fjxaWlowevRopUeEqbUNZ7f9GxonRzz6pBe8Ip9BTX6xxW0uG4wo+vALhK5PgtsAD4RtfBtnt+Ra/ju8yYSaI6XwinzG7jNrX3seZRt3o6H6JzRfvY5v0j7FsD/8Hn2G9bf7ubtCtaGuWrUKkZGRCA8Ptzg+YsQIODs7IygoCABQWVmJ8PBwaLVaBAYGoqCgoMdm1Dg7YWRcJFqbmlF3qgqPBfrgssHY7nZnPs7Bz99+j2mHPoKptRUn1nzZ7jb1Z6rxWJCPXed16dsb7sMG4FLJefOxq1UX0HTlGjwDfmfXc3eVKkM1Go0oKyvDjBkz2r2vuroaOp0Orq6uAID4+HjMmjULBoMBmzdvxuzZs9HU1NTpORwcHKx60+v17e4btPhlzD37CWYUbYbXlLHIe2Mdrlb+CJd+fdB89UaH5/ux8BTc+vfDd1n5aGtuaff+poYbcPVwtzim1+utntOauZ3c3W6e69enHOZzX7kO50fcOv2YWcPWma2lyh/zMxpvXpUGDx5scfzGjRvQ6/WYOnUqAODixYs4cuQI9uzZAwAICQnB0KFDkZeXhylTpthtvpIN2ShJ39XueNPP1zr8hHuM9EJQ8isozfgnnl4yA1Vf/RfXvr9ocRsXdzc0Xm6w28wA0NJw84vo1os487n79r7rF5haqPKK2r//zedLBoPB4viaNWtQU1NjfiFVXV2NQYMGma+uAODj44OqqqpOz2Eymax6u/Opx73UlVXAQzvM4pjGxQlhG9/G6b9/hW9WfY6qfUcRun4hcMfVxGPkcNSVWv6gc3h4uNVzWjN305XraDDWwjPQ13zM3WsgXPr2Qf3pzj9m1rB1ZmupMlRfX18EBQVh1apV2L59Ow4ePIiEhARs2bIFABR9xX8v1bnHMGRCkMWx4D+9irbmFvO3rI6+twXuwwdAF//ibzdycMCQCYGozj1m9xkNnx1AYNJLcB8+EM7ubhjzXiy+zzuBBmOt3c/dFaoMVaPRYOfOndDpdEhISEBcXBz69++PpKQkODo6ml9IeXl54cKFC2hsbDTft6KiAt7e3orM/d1OPTx13nD3GggAGBIaCO1rk5GftB6mllYAQMu1X1CwKANPvzMTHiO9AABDw4LQfOU6ao6U2n3G0ozd+N+BbxCduxozT/wNDo4a5C/cYPfzdpWDpDXosbGxKC4uRklJiflYREQEpk+fjsTERBQWFiImJgaVlZVwcXHplnPue3m5Tf+lw39eBAaO9UfBogyr7xO15wOcWPslagosQx00PgBTs/9s9d9zO1vn7i5dmfleVPli6m6OHz+OZ5991uLYpk2bMH/+fKSnp8PFxQWZmZndFun9OLd9P85t32/TfXKmLbPTNA8OMaE2NDTAYDAgMTHR4rivry/y8/MVmop6iphQ3d3d0draqvQYpBBVvpgiuhNDJREYKonAUEkEhkoiMFQSQcy3p5TiqbPvz4iq9dxqw1A7YY9foUi240M/icBQSQSGSiIwVBKBoZIIDJVEYKgkAkMlERgqicBQSQSGSiIwVBKBoZIIDJVEYKgkAkMlERgqicBQSQSGSiIwVBKBoZIIDJVEYKgkAkMlEVQdqhqX9pIyVP2bUhYsWIDs7GykpKQgODgYhYWFmDNnDmpra7FkyRKlxxPH56XnMDIuEo8GeMPJzRXbh8/q9D6Ru1IxIFiLtpbftg1W7P4ahUs32XPUdlQb6q2lvYcPHzYv95o0aRKKioqQnZ2tiqW90jT+3ICz23Lh2MsVIWvjrb5fcXpWh5sKe5JqH/qtXdq7fPlyaLVaaDQaZGVlKTGqGD8cLkbF7q/R8OuadklUGaotS3sjIyORm5uLsLAwm85xv8twpbx1tLS3J3BpL9ov7QVuLuol+wpa/DKeemua+c8H5q5EbdG3PTqDKkO9fWlvVFSU+fidS3u7QtDCwvvSnZv77rZNuyPh4eFYnd39V3NVhnr70l5PT088/vjjyMrKQk5ODgD1Lu0l+1Hlc1Rrl/aSbRw0Gji6OkPjcvP65OjqDEdXZ4Wnso4qr6gAoNVqkZeXZ3EsNjYWAQEBcHNzU2gq2fxiwhC6fqH5z7GVmQCArLEJql+DrtpQO9LR0t6UlBRs3boVtbW1KC0tRXJyMvR6Pfz8/BSaUr3KdxxG+Y7DNt0n95X37TOMjVT50N+RW0t77/xGf1paGoxGIxobG3Hp0iUYjUZG+gASc0Xl0t6Hm5grKj3cGCqJwFBJBIZKIjBUEoGhkggMlURgqCQCQyURGCqJwFBJBIZKIjBUEoGhkggMlURgqCQCQyURGCqJwFBJBIZKIjBUEoGhkggMlURgqCQCQyURGCqJwFBJBIZKIjBUEoGhkggMlURgqCSCqkPl0l66RdW/cZpLe7tX8LLXMOz5YPQZ+hharv0C48EiHF/5GZouNyg9WqdUGyqX9nY/U1sbChZuQP3Zarj064MJGxYhND0Jh+b/RenROqXah35rlvbW19cjOjoaWq0Wo0aNQkREBMrLyxWaWP2KPvwCdWUVMLW0ovHSFZz5+CsMDtEpPZZVVBmqtUt7HRwckJycDIPBgOLiYkRHRyMuLk6BiWUaEhqI+tNVSo9hFdWGCtx9ae+th30PDw9MnjzZ/P6QkBBUVFRYdQ6ltz8rvV3a+4Vx8J8XgaMpW2z51HTKXtulVRnq7Ut7b9fZ0t709HRMnz7d3uOJ5x09HiFr38LB11ejrtS6L2ylqfLF1P0s7U1NTUV5eTkOHTpk1Tke1u3SI2ZNwtj35+Hg66vx07Fz3X5ee22XVuUV1dalvStXrsTevXuRm5uL3r17KzS1+j25IApjls/D/jkr7RKpPanyigpYv7Q3NTUVOTk5OHDgADw8PHp4SlnGrfwj2ppbELlrhcXxz0fEKjOQDVQbakfuXNp76tQprFixAn5+fpg4caL5+MmTJ3t+OAG2DYlReoT7JibUW0t7ExMTzcd0Ot0D/1yTbhITKpf2PtxU+WKK6E4MlURgqCQCQyURGCqJwFBJBIZKIoj5PirZxlPn80Cd18HEf9ohAfjQTyIwVBKBoZIIDJVEYKgkAkMlERgqicBQSQSGSiIwVBKBoZIIDJVEYKgkAkMlERgqicBQSQSGSiIwVBLh/258GQCKQbdCAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "ae_circuit.decompose().draw(\n",
+ " \"mpl\", style=\"iqx\"\n",
+ ") # decompose 1 level: exposes the Phase estimation circuit!"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "id": "81a4c3ae-9e09-4e7e-98a3-19d9d8a2c2e1",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "qc2 = QuantumCircuit(3)\n",
+ "qc=qc2.compose(ae_circuit)\n",
+ "qc.measure_all()\n",
+ "qc.draw()#.savefig('qae_circuit.pdf')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "e7a8aaf5-5bf8-4492-9499-dae99af0b149",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# #choosing the qasm simulator backend\n",
+ "\n",
+ "# backend = Aer.get_backend('qasm_simulator')\n",
+ "\n",
+ "# # running the job and getting results (counts)\n",
+ "# job = execute(qc, backend, shots=1024) # shots = no. of times you want to run the experiment\n",
+ "# result = job.result()\n",
+ "# counts = result.get_counts(qc)\n",
+ "\n",
+ "# #printing and visualizing results (histogram data of experiment)\n",
+ "# print(counts)\n",
+ "# plot_histogram(counts)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "id": "87dc200a-ffab-4d52-ab9b-a4917b5fa235",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ]"
+ ]
+ },
+ "execution_count": 19,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "provider.backends()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "id": "2be7dab5-4dd9-41b7-94d5-93279a9b215d",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "ibm_oslo ibm_nairobi ibmq_manila\n",
+ "-------- ----------- -----------\n",
+ "Num. Qubits: 7 Num. Qubits: 7 Num. Qubits: 5\n",
+ "Pending Jobs: 6 Pending Jobs: 23 Pending Jobs: 7\n",
+ "Least busy: False Least busy: False Least busy: False\n",
+ "Operational: True Operational: True Operational: True\n",
+ "Avg. T1: 123.3 Avg. T1: 121.9 Avg. T1: 152.5\n",
+ "Avg. T2: 98.7 Avg. T2: 53.3 Avg. T2: 58.2\n",
+ "\n",
+ "\n",
+ "\n",
+ "ibmq_quito ibmq_belem ibmq_lima\n",
+ "---------- ---------- ---------\n",
+ "Num. Qubits: 5 Num. Qubits: 5 Num. Qubits: 5\n",
+ "Pending Jobs: 1 Pending Jobs: 0 Pending Jobs: 0\n",
+ "Least busy: False Least busy: True Least busy: False\n",
+ "Operational: True Operational: True Operational: True\n",
+ "Avg. T1: 92.1 Avg. T1: 89.2 Avg. T1: 92.4\n",
+ "Avg. T2: 98.3 Avg. T2: 107.7 Avg. T2: 115.9\n",
+ "\n",
+ "\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "backend_overview()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "id": "1773a7f2-6f13-4174-a637-d7f1147a4f24",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "backend=provider.get_backend('ibmq_manila')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "id": "28e12cbe-5258-4eeb-8a1a-035ea6daf04c",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#Execute the circuit on the backend\n",
+ "job=execute(qc,backend,shots=1024)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "id": "dac27a5c-52f3-453d-a39e-9d005b17d9fc",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 28,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "job.status()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "id": "2453d1a9-18cc-478e-9781-7542255dd9ff",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "result=job.result()\n",
+ "counts=result.get_counts()\n",
+ "histogram = plot_histogram(counts,title=\"QAE on IBMQ_Manila\")\n",
+ "histogram.savefig('qae_manila.pdf')\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "74cb07a4-9925-4ee4-bded-eb7e57c65d3d",
+ "metadata": {},
+ "source": [
+ "## Qiskit Runtime"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "id": "955bd769-1e9a-4090-836e-b14725191933",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "SamplerResult(quasi_dists=[{'010': 0.0146484375, '000': 0.0367431640625, '011': 0.658447265625, '001': 0.2901611328125}], metadata=[{'header_metadata': {}, 'shots': 8192}])\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 16,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from qiskit_ibm_runtime import QiskitRuntimeService, Sampler\n",
+ "\n",
+ "service = QiskitRuntimeService()\n",
+ "\n",
+ "with Sampler(circuits=qc, service=service,\n",
+ " #options={'backend': backend},\n",
+ " options={\"backend\": \"ibmq_qasm_simulator\"},\n",
+ " #options={\"backend\": \"ibmq_belem\"},\n",
+ " #skip_transpilation=True\n",
+ " ) as sampler:\n",
+ " result = sampler(circuits=[0], shots=8192)\n",
+ " print(result)\n",
+ " \n",
+ "plot_histogram(result.quasi_dists)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "id": "30cf768e-4346-4935-b06b-df004bfe1625",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "histogram=plot_histogram(result.quasi_dists, title=\"QAE on IBMQ_Belem, shots = 8192\")\n",
+ "histogram.savefig('qae_belem-8192.pdf')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "id": "86b48874-7acc-4937-9596-f087ddcf8289",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "histogram=plot_histogram(result.quasi_dists, title=\"QAE on Simulator, shots = 8192\")\n",
+ "histogram.savefig('qae_sim-8192.pdf')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "4e7b0289-6de4-45ec-926b-6671fc9bb402",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.8.13"
+ },
+ "widgets": {
+ "application/vnd.jupyter.widget-state+json": {
+ "state": {},
+ "version_major": 2,
+ "version_minor": 0
+ }
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/Compaqt/three_qubit_ae_circuit_noisy.ipynb b/Compaqt/three_qubit_ae_circuit_noisy.ipynb
new file mode 100644
index 0000000..853152e
--- /dev/null
+++ b/Compaqt/three_qubit_ae_circuit_noisy.ipynb
@@ -0,0 +1,809 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "id": "5f99be15-a9b3-402e-8b2f-b0a142e6f795",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "ibmqfactory.load_account:WARNING:2022-07-26 21:38:19,487: Credentials are already in use. The existing account in the session will be replaced.\n"
+ ]
+ }
+ ],
+ "source": [
+ "import numpy as np\n",
+ "\n",
+ "# Importing standard Qiskit libraries\n",
+ "from qiskit import QuantumCircuit, transpile, Aer, IBMQ, execute\n",
+ "from qiskit.tools.jupyter import *\n",
+ "from qiskit.visualization import *\n",
+ "from ibm_quantum_widgets import *\n",
+ "from qiskit.providers.aer import QasmSimulator\n",
+ "\n",
+ "# Loading your IBM Quantum account(s)\n",
+ "provider = IBMQ.load_account()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "id": "9fa501bd-67b9-4276-a95d-59c45c52f897",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "%matplotlib inline\n",
+ "import numpy as np\n",
+ "\n",
+ "from qiskit import Aer, QuantumCircuit\n",
+ "from qiskit.utils import QuantumInstance\n",
+ "from qiskit.algorithms import IterativeAmplitudeEstimation, EstimationProblem\n",
+ "from qiskit.circuit.library import LinearAmplitudeFunction\n",
+ "from qiskit_finance.circuit.library import LogNormalDistribution"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "id": "a7e4e5cd-cf99-46b7-a680-413eb1226cf2",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#number of qubits to represent the uncertainty\n",
+ "num_uncertainty_qubits = 1\n",
+ "\n",
+ "# parameters for considered random distribution\n",
+ "S = 2.0 # initial spot price\n",
+ "vol = 0.4 # volatility of 40%\n",
+ "r = 0.05 # annual interest rate of 4%\n",
+ "T = 40 / 365 # 40 days to maturity\n",
+ "\n",
+ "# resulting parameters for log-normal distribution\n",
+ "mu = (r - 0.5 * vol**2) * T + np.log(S)\n",
+ "sigma = vol * np.sqrt(T)\n",
+ "mean = np.exp(mu + sigma**2 / 2)\n",
+ "variance = (np.exp(sigma**2) - 1) * np.exp(2 * mu + sigma**2)\n",
+ "stddev = np.sqrt(variance)\n",
+ "\n",
+ "# lowest and highest value considered for the spot price; in between, an equidistant discretization is considered.\n",
+ "low = np.maximum(0, mean - 3 * stddev)\n",
+ "high = mean + 3 * stddev\n",
+ "\n",
+ "# construct A operator for QAE for the payoff function by\n",
+ "# composing the uncertainty model and the objective\n",
+ "uncertainty_model = LogNormalDistribution(\n",
+ " num_uncertainty_qubits, mu=mu, sigma=sigma**2, bounds=(low, high)\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "id": "84420bb7-a07e-44e3-a508-2fc9d334ea83",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 14,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# set the strike price (should be within the low and the high value of the uncertainty)\n",
+ "strike_price = 1.896\n",
+ "\n",
+ "# set the approximation scaling for the payoff function\n",
+ "c_approx = 0.25\n",
+ "\n",
+ "# setup piecewise linear objective fcuntion\n",
+ "breakpoints = [low, strike_price]\n",
+ "slopes = [0, 1]\n",
+ "offsets = [0, 0]\n",
+ "f_min = 0\n",
+ "f_max = high - strike_price\n",
+ "european_call_objective = LinearAmplitudeFunction(\n",
+ " num_uncertainty_qubits,\n",
+ " slopes,\n",
+ " offsets,\n",
+ " domain=(low, high),\n",
+ " image=(f_min, f_max),\n",
+ " breakpoints=breakpoints,\n",
+ " rescaling_factor=c_approx,\n",
+ ")\n",
+ "\n",
+ "# construct A operator for QAE for the payoff function by\n",
+ "# composing the uncertainty model and the objective\n",
+ "num_qubits = european_call_objective.num_qubits\n",
+ "european_call = QuantumCircuit(num_qubits)\n",
+ "european_call.append(uncertainty_model, range(num_uncertainty_qubits))\n",
+ "european_call.append(european_call_objective, range(num_qubits))\n",
+ "\n",
+ "# draw the circuit\n",
+ "european_call.draw()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "id": "27857bab-30de-4add-9d47-bbaeadf5eec8",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# set target precision and confidence level\n",
+ "epsilon = 0.01\n",
+ "alpha = 0.05\n",
+ "\n",
+ "qi = QuantumInstance(Aer.get_backend(\"aer_simulator\"), shots=100)\n",
+ "problem = EstimationProblem(\n",
+ " state_preparation=european_call,\n",
+ " objective_qubits=[1],\n",
+ " post_processing=european_call_objective.post_processing,\n",
+ ")\n",
+ "# construct amplitude estimation\n",
+ "ae = IterativeAmplitudeEstimation(epsilon, alpha=alpha, quantum_instance=qi)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "id": "cb0b453a-3d66-4bfe-9120-8906e2510e15",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "ae_circuit = ae.construct_circuit(problem)\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "id": "1f32a00d-1e7c-4e2c-a387-efc9a5078f3e",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 17,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "ae_circuit.decompose().draw(\n",
+ " \"mpl\", style=\"iqx\"\n",
+ ") # decompose 1 level: exposes the Phase estimation circuit!"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "id": "81a4c3ae-9e09-4e7e-98a3-19d9d8a2c2e1",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAADWCAYAAAAq98IBAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAidUlEQVR4nO3deVhU9cIH8O/MsCqIKSmKmbIGIzgKppkKhAiJaBlYZPpqKoqYW9fUmwpkUikJZgnXSrt5ryaguXDdUacMr6+EuJBGlIYUKW4pxSLL+wevkyMIZ3SGw5z5fp6n5xkOvzPnOz34nTO/s4ysrq6uDkREJClysQMQEZH+sdyJiCSI5U5EJEEsdyIiCWK5ExFJEMudiEiCWO5ERBLEcicikiCWOxGRBLHciYgkiOVORCRBLHciIgliuRMRSRDLnYhIgljuREQSxHInIpIgljsRkQSx3ImIJIjlTkQkQWZiByAS27lz55od8+GHH2LGjBlNjnniiSf0FYnooXHPnUiAjz76SOwIRDphuRMRSRDLnYhIgljuRAJkZGSIHYFIJyx3IiIJYrkTCRAeHi52BCKd8FRIEX1/ELh1WZxt23YC3J95sHXFyv0wmY3R7NmzkZeXJ8q2VSoVkpOTRdk26QfLXUS3LgM3isVOoTtjzW1s8vLyoFarxY5BRorTMkQCxMTEiB2BSCcsdyIBmrs6lai1YbkTCTBkyBCxIxDphOVOJEBpaanYEYh0wnInIpIgljuRAJ6enmJHINIJy51IgC1btogdwWDMzc3FjkAGwPPciQRYsmQJ3nrrLbFjNMnBwQHBwcHw9fWFk5MTzMzMcOPGDeTl5eHo0aNQq9Woq6vTWsfd3R27du3CtGnTsH//fpGSkyGw3I3IzqOpyL/wDRZEbhC8zszVT2FCyNvo6xpowGTSl56e3mrLvVevXli8eDGef/75RvfCx4wZAwD48ccfsXr1anz00Ueorq6Gu7s7Dh06hC5dumDmzJksd4kxyWmZ2tpaJCYmwtXVFVZWVujduzfUajXc3d0RFRUlWq7XU/wxfIElwt60wajFdpiW1Adfn6qfDiiv+gOf712C8UFxAIDb1VWYulKF1J2vaz3H1q9XYeyyx1FWfgMAMG5YHFJ3zGmR/DW1NVibOQ/hcY9i5CJbxP/zBfz+x5UW2bYpksvlWLRoEb799luMGTMGMpkMO3fuxPz58xEWFobg4GCMHz8eq1atwoULF+Ds7Izk5GT897//RWhoqKbYs7KyNG8AJB0muec+adIkbN26FYsXL4aPjw+ys7MRGRmJ0tJSzJ07V9RsY4cuxtihi1BTU42Mr1bi7X+/iE+7fIe8wkPo0cULXe2dAQDmZhZY+PK/8doHT6K/Ryj6uDyD8yWnsX733/H2pF2wsW4PAPBxDUJS+XWcKDyIPi6GvTHLF4feRXb+dqx+7RjatemIxLRX8d6mcUiYvNug2zVFCoUCGzZsQGRkJAAgNTUVS5cuxa+//tpg7IYNGzB37lyEhYUhOTkZPj4+2LFjB+RyObKyshAWFoby8vKWfglkYCa3575p0yZ89tln2LFjB/72t78hICAAb775Jp566ilUV1ejb9++YkcEACgUZhg5cDpqa2twvuQ0svO3wcc1SGtMDwclJj6bgBWbJ+Dazd/wzsaxGPn0DPR29tOMkcvlULkEIvvMNoNn3vXftXgxYD66dHRCW2s7TAldjuPf78Gl6z8bfNuG1tru8ZKcnIzIyEjcvHkTw4YNQ3R0dKPFfkdtbS22b9+OF154AeXl5ZDL5bh9+zZmzZrFYpcokyv3hIQEhISEwM/PT2u5i4sLzM3N4e3tDQC4cOEC/Pz84ObmBi8vL3z99dctmvN2dRW2Z38EM4U5nLr2xg+/5KJ754an4z0/aCa6d/LA1JXeUCjMMCF4aYMxPbt44Ydfcg2at6z8Bi7fKIKro49mWVd7Z7Sxaocffz1p0G23hPz8fLEjaAQFBWHGjBmorKxESEiI4Llyd3d3ZGZmwtraGpcvX4a5uTnWrFkDmUxm4MQkBpOalikuLsaZM2cwZ07DOeiioiIolUpYWloCAKZOnYoXX3wR06dPR3Z2NiIiInD+/HlYWFg0ux2h/1gSpx1Cb2d/rWUbs5YhXZ0Ic4UFutq7YMn4LXC0d0FZ+XW0tWrX6LZ6O/vj24J9eOmZhTA3a5ivrVU73PrzmtYytfow+kUGCMopJPeflbfqt2Vtp7Xcxqo9/qy4+UDbudfDZG5KY38P90pKSmp2XFJSkr4i3ZdcLseaNWsAALGxsTh69Kig9e4+eJqVlYXx48cjJycHQ4YMwSuvvIING7QP0qvVapZ+K3XvGU/3Y1J77sXF9fepdXBw0FpeXl4OtVqtmZK5cuUKjhw5gkmTJgEABg4ciK5du+LQoUMGz/hy4JvYtvQG0uMuY9WMbDzlGQYAsLF+BH80UpLnS05j44G38WLAfGzYH4/L14sajPmj4iZs23QwaO42lrb12yr/XWt5WcUNtGnkTYkeTHBwMFxcXHD+/HkkJiYKWufeYg8LC8Ovv/6KRYsWAeAdL6XKpPbc7e3tAQAFBQUYPny4Zvny5ctRUlICH5/6KYWioiJ07txZsxcPAD179sTPPwubOxb6zprzhfD7ort07YOiS99hoHKkZllVdSXe2TgWzw+ejVefXYbrty5h+eb/wfKoLMjlf71vX/jtDFwc+2g9n5+fP+pShOUUktvGuj06te+Owl9y4eKoAgCUXP0Jf1bchFMX7wfazr0eJnNTzp071+yYpKSkZs+kWrlypb4iAQD8/f0bzPWPGzcOQP0B1Jqammafo7FivzPHvmnTJiQmJqJ///5wc3NDQUGBZj0/Pz8cPnxYfy+GWpxJ7bk7OTnB29sbCQkJ+Pzzz5GVlYXo6GisW7cOADTl3hoN7PUccn84oLVs3a6FMDOzwPhhcQCAmFEf4NK1C9jy1V8lU1tbixOFWRiofM7gGYcPiMLmw++h5Np5/FFxEx/vmg9ft2A4dOhh8G0bWnx8vNgRAABPPvkkAGD37ubPQGqq2IH6T6x3Crxfv34GyUviMalyl8vlSE9Ph1KpRHR0NCZOnAh7e3vExMRAoVBoDqZ2794dly5dQmVlpWbd8+fP4/HHHxcrOob6jMNPJSdRcvUnAEDuD1n4z7G1WBj5b5gp6i9caWNli/mRG/D5vlicLzn9/+MOoK2VXYtcxPRSwAIM8AjDjFX9EPm2I2pra7Dg5X8ZfLstoTWcB96mTRs4OzujsrIS3333XZNjmyv2O06cOAEA8PLyMkhmEo9JTcsAgJubW4O583HjxsHT0xPW1tYA6qdvnn76aXz66aeaA6q//PILAgL0fzDvbu9HH77v76wt2uJ/gpfin/tisSByA/q6BmLnsrIG43r1HISdCX9oft6wPw7RYYY/0AcACrkCU8MSMTVM2FywMfHw8MDZs2dFzSCXy5Gamorq6uomp2QsLCywd+/eZosdAI4ePYpPPvkEubmGPZuKWp7JlXtjcnJyMGDAAK1lqampmDBhApKTk2FhYYFNmzYJOlPGkMKemoawp6bptM6qGdkGSkMtraysDNHR0c2Oq6qqwowZMxAdHY3w8PAmz2M/cOAADhw4cN/fk/Ey+XIvKytDQUEBpk+frrXcyckJX331lUipiB5OZmYmMjMzxY5BIjL5crexsRF01gGZNn9/f7EjEOnEpA6oEj2olJQUsSMQ6YTlTiSAkLluotaE5U4kAC/oIWPDcicikiCWOxGRBLHciQQQ+wImIl2x3IkESEtLEzsCkU5M/jx3Mdl2Ms1tG6PY2NgWv7+MSqV6oPV+KioBADh176L1uCW2Ta0Hy11E7ob9SlMycsnJyQ+03oL31gIA3p0fpfWYTAunZYiIJIjlTiTAna+2IzIWLHciAZRKpdgRiHTCcicSwM/PT+wIRDphuRMRSRDLnYhIgljuRALwC6TJ2LDciQQ4fvy42BGIdMJyJyKSIJY7EZEEsdyJBMjIyBA7ApFOWO5ERBLEcicSIDw8XOwIRDrhXSGJSK9mz56NvLy8Ft+uSqV64DtpShHLnYj0Ki8vD2q1WuwYJo/TMkQCxMTEiB2BSCcsdyIBZsyYIXYEIp2w3IkEGDJkiNgRiHTCcicSoLS0VOwIRDphuRMRSRDLnUgAT09PsSMQ6YSnQhIJsGXLFrEjSFrbtm2hVCphZ2eH27dvo7CwEMXFxfcd379/f9ja2uLAgQMtmNK4cM+dSIAlS5aIHUFyHnnkEcyZMwcnT57EzZs3cezYMezbtw+HDh3CxYsXcenSJXz88cfo06eP1nr9+/fH3r17sWPHDqhUKnHCGwGTLffa2lokJibC1dUVVlZW6N27N9RqNdzd3REVFSV2PGpl0tPTxY4gKVOmTMGFCxewcuVKeHt7o6amBnl5edi/fz++/vprXLt2DZ06dcLkyZORm5uLtLQ02Nvba4rdzs4OO3bswOnTp8V+Ka2WyU7LTJo0CVu3bsXixYvh4+OD7OxsREZGorS0FHPnzhU7ntE5lPcFdmR/hJ9+PYmK239i73vVza7zeoo/zv58FAqFuWaZv+olvB7xiSGjkoisra2xadMmjBo1CgCQlZWF1atXY8+ePaisrNQa6+HhgSlTpmDKlCmIiIhAYGAgLCwsYGNjg82bN2Ps2LGoqakR42UYBZMs902bNuGzzz7D4cOHNd9qHxAQgNzcXGzduhV9+/YVOaHxsbF+BGFPTUfV7XIkbRH+yWfs0MUYO3SRAZNRa2Fubo5t27Zh2LBhuHbtGqKjo5GWlnbf8WfPnsXcuXOxatUqZGRkwNfXFwCwf/9+FrsAJjktk5CQgJCQEE2x3+Hi4gJzc3N4e3sDqJ9ndXNzg1wu5/28m9HPPRjP9IlEl45OYkcxCN4r5eHFxsZi2LBhuHTpEp5++ukmi/1uDg4OcHV11fzs4uICKysrQ8WUDJMr9+LiYpw5cwYRERENfldUVASlUglLS0sAQEhICPbs2cOrEwn5+fliRzBqKpUK8+fPR21tLV544QWcO3dO0Hp3z7GnpaUhNzcXPXv2xDvvvGPgxMbP5KZl7pxe5eDgoLW8vLwcarUazz77rGbZwIEDH2gbMpnswQMagcRph9Db2V8vz7UxaxnS1YmanxMm74Hn4wMaHatWH0a/yAC9bPduc+bMaXZMUlJSs+OSkpL0FemhzH/3HwDq/w7vfiymefPmwczMDB988AG++eYbQevcXex35tiVSiVOnDiBqKgoxMfH4+rVq5rxarVa9NfZEurq6gSNM7k9d3t7ewBAQUGB1vLly5ejpKQEPj4+YsQyWS8HvoltS29o/rtfsZPxsre3R3h4OGpqarBixQpB6zRW7DU1NTh16hR27doFS0tLTJw40cDJjZvJ7bk7OTnB29sbCQkJ6NChAxwdHZGRkYFdu3YBgF7KXeg7q7HK+QK4cf/rSwzGz88fdSn6/38rZIogKSmp2VNkV65cqa9ID2XBe2sB1P8d3v24pfj7+2sdoxg8eDAsLCxw4MCBJi9MuuN+xX7H559/jhEjRiAwMBCJiX996vPz88Phw4f1+lqMmcntucvlcqSnp0OpVCI6OhoTJ06Evb09YmJioFAoNAdTSTc1tTWoul2B29VVAICq2xWoul0hmTe6+Ph4sSMYrTs7TMeOHWt2bHPFfvfz8FN200xuzx0A3NzccOjQIa1l48aNg6enJ6ytrUVKZdwOfLsBiWl/fUwO/Xv9/8cNC8/DoUMPkVLpz5gxY8SOYLQcHR0BAD/++GOT44QUO1B/4sPt27fx6KOPwszMDNXVzV9TYYpMstwbk5OTgwEDtOd7Fy9ejPXr16O0tBSnT5/G7NmzoVar4ezsLFLK1iu43wQE95ug0zrvRx82SBZD8PDwwNmzZ8WOYZSmTp2K2bNno6Kioslx9vb2sLa2FnSBkoODAyoqKljsTWC5AygrK0NBQQGmT5+utXzp0qVYunSpSKmIpKGqqgpVVVXNjvvPf/6DQYMGITc3t9kLlK5du6aveJLFcgdgY2PDq92IWoHjx4+LHUEyTO6AKtGD8Pf3FzsCkU5Y7kQCpKSkiB2BSCcsdyIBoqOjxY5ApBOWO5EAvDiGjA3LnYhIgljuREQSxHInEoAXMJGx4XnuRAKkpaXxFgQCPciXVv9UVAIAcOreReuxobcrZSx3IgFiY2NZ7gIlJyfrvM6du1e+Oz9K6zE9OE7LEBFJEMudiEiCWO5EAqxZs0bsCEQ6YbkTCaBUKsWOQKQTljuRAH5+fmJHINIJy52ISIJY7kQC9OvXT+wIRDphuRMJwC+RIGPDcicikiCWOxGRBLHciQTIyMgQOwKRTljuREQSxHInEiA8PFzsCEQ64V0hicjkzZ49G3l5eaJsW6VSPdCdNJvDcicik5eXlwe1Wi12DL3itAyRADExMWJHINIJy51IgBkzZogdgUgnLHciAYYMGSJ2BCKdsNyJBCgtLRU7ApFOWO5ERBLEcicSwNPTU+wIRDphuRMJsGXLFrEjkATY2dm12LZY7kQCLFmyROwI1Io8+eSTWLx4MbZv344TJ07g5MmTOHjwIN5//32MHj0a5ubmDdYJCQnBhQsXEBQU1CIZTbbca2trkZiYCFdXV1hZWaF3795Qq9Vwd3dHVFSU2PGolUlPTxc7ArUCI0eOxLfffotjx47hrbfewsiRI6FSqeDt7Y2AgADMnTsXW7ZsQVFREf7+97/DwsICQH2xb9u2De3bt8ewYcNaJKvJXqE6adIkbN26FYsXL4aPjw+ys7MRGRmJ0tJSzJ07V+x4Rufj/8zHsbOZKL1xEVaWNuj/RCgmh76Hdm06iB2N6KG1a9cOKSkpePnllwEAV65cwcaNG3H06FEUFBSguroajo6O8PX1RUREBLy8vLBs2TK89NJLSElJQVJSEiwtLbF69WrMmzevRTKbZLlv2rQJn332GQ4fPqz54uOAgADk5uZi69at6Nu3r8gJjY9crsCCyH+hh0MvlJXfwPIvxmPF5glYOnGH2NGIHkr79u2xf/9++Pr64o8//sCbb76J1NRUVFZWao07deoUdu/ejaVLlyIwMBApKSnw8vLCRx99BJlMhtWrV2PmzJktltskp2USEhIQEhLS4BvtXVxcYG5uDm9vb1y/fh0jRoyAm5sbevfujWHDhqGwsFCkxK3fpGcT4OLYB2YKc7S3eRTPD5qFUz8eFjuW3kjtviMkjEwmw9atW+Hr64vCwkKoVCqsWrWqQbHfKysrC/PmzUNNTQ1kMhkqKiqQmJjYQqnrmVy5FxcX48yZM4iIiGjwu6KiIiiVSlhaWkImk2H27NkoKCjAyZMnMWLECEycOFGExMbpRGEWnLr2FjuG3uTn54sdgUTw2muvISAgAL/99hsCAgIE7+CFhIRg8+bNUCgUOH/+PKysrPDJJ58YOK02k5uWKS4uBgA4ODhoLS8vL4darcazzz4LoP6j2NChQzW/HzhwIJYvXy5oGzKZTE9pW6fEaYfQ29n/vr//+tQWZP43Fe9P0+/erlp9GP0iA/T6nAAwZ86cZsckJSU1Oy4pKUlfkR7K/Hf/AaD+7/Dux61Za8xsZ2eHZcuWAQCioqI03dGcOwdP78yxL126FPn5+QgKCsJzzz2Hbdu2aY1Xq9U6vda6ujpB40xuz93e3h4AUFBQoLV8+fLlKCkpgY+PT6PrJScn47nnnjN0PKOnPpmOpIwpeGvCDrh247ELMl7jx4+HjY0NDh48iJ07dwpa595inzlzJkpLSzVvEtOnTzdkZC0mt+fu5OQEb29vJCQkoEOHDnB0dERGRgZ27doFAI2We3x8PAoLC3Hw4EFB2xD6zmqscr4AbjSyE7Pn+Hqs3fk63pq4E716Pq337fr5+aMuRf//b8+dO9fsmKSkpGZPkV25cqW+Ij2UBe+tBVD/d3j349ZM7Mz+/v4NjqtERkYCANasWSPoORor9jv++c9/4p133kFQUBDs7e1x5coVze/8/Pxw+PDhh38R9zC5PXe5XI709HQolUpER0dj4sSJsLe3R0xMDBQKBby9vbXGv/3228jMzMSePXvQpk0bkVK3fl8e+QBrM/+Gd6bsNUixiy0+Pl7sCNSCFAoFVCoVgPqDo81pqtgB4MaNG8jJyQHQ+A6kIZjcnjsAuLm54dChQ1rLxo0bB09PT1hbW2uWxcfHY9euXdi/fz/at2/fwimNy5rts6CQm+Fvqdpz4juXlYmUSL/GjBkjdgRqQU5OTrC2tsbPP/+MGzduNDm2uWK/Iy8vD4MHD4ZSqcTevXsNkFqbSZZ7Y3JycjBgwADNz/n5+YiLi4OzszP8/f01y8X6nsXWbv+K1v2x/2F5eHjg7NmzYsegFvL7778jLi6u2WJ/5JFHsHnz5maLHQAyMzNx/fp1HDt2TM9pG8dyB1BWVoaCggKtgx1KpbLVz1MSkWFcvnxZ0FTc9evXMXbsWAQEBOD1119vcuy+ffuwb98+fUVsFssdgI2NDWpqasSOQURGKDMzE5mZmWLHaMDkDqgSPYi7p+aIjAHLnUiAlJQUsSMQ6YTlTiRAdHS02BGIdMJyJxLAEBeZEBkSy52ISIJY7kREEsRyJxKAFzCRsWG5EwmQlpYmdgQinfAiJtKZbSfT2i4AxMbG8v4yEnbnJmG6+qmoBADg1L2L1uOW2HZzWO6kM/dnxE5ApF/JyckPtN6d2xO/Oz9K63FrwGkZIiIJYrkTCSD0CxuIWguWO5EASqVS7AhEOmG5Ewng5+cndgQinbDciYgkiOVORCRBPBWSTN4TTzzR7JjY2FhB44haC+65EwkQFxcndgQinbDciYgkiOVORCRBLHciIgliuRMRSRDLnYhIgljuREQSxHIXwbBhw6BSqeDl5YXw8HDcvHlT7EhEAOq/CFypVMLFxQWTJ09GTU2N2JGaNWvWLHTr1g1mZsZz2c7FixcRGBgIDw8PKJVKLFy4UO/bYLmLID09HXl5eTh9+jS6deuGlStXih2JCLW1tZg8eTLS09NRWFiImzdv4l//+pfYsZoVERGBnJwcsWPoxMzMDO+99x7Onj2LEydO4MiRI9i+fbtet8FyF4GdnR2A+n9MFRUVkMlkIiciAo4fP46uXbvC09MTADBp0iRs2bJF5FTNGzRoEBwcHMSOoZMuXbrA19cXAGBhYYE+ffqgqKhIr9tguYvk+eefR6dOnfD999/j9ddfFzsOEYqLi/HYY49pfu7evTsuXrwoYiLTcO3aNWzbtg1BQUF6fV7jmaSSmC+//BJVVVWYNGkSMjIyMGHCBLEjkZHK/+ECDhz5tsHyVeu3NHjcvl1bvPLcMCgUDffr6urqDBfyHrerq/H5ln0o+7Nca3ljmQFgeEB/uPbo1mL57ud/T57D0dz8Bssby92lUwdEDPdv8pN5VVUVwsPDMWvWLL3fu4h77iKysLDASy+9hC+//FLsKGTEPFweh7WVBUouX0XJ5aua5fc+Lrl8FU/7ejVa7ADw2GOPae2pFxUVoVs3wxSquZkZnvJRCsrcvl1buDzuaJAcuuqjdEFtbW2zuS9fvY4hT/Zusthramrw8ssvQ6VSGeTTO8u9hd26dQslJfXfkl5bW4sdO3bwW37oochlMkQM94elhXmT4wb5ejVZkr6+viguLsZ3330HAPj0008xevRovWa9m6fL4/D1dm9yTFtrK4wOGdJqjkuZm5nhxbBnoJA3XZ3DBveDw6MdmhwTFRUFW1tbvP/++/qMqMFyb2G3bt3CyJEj4e3tDW9vb1RXV2PRokVixyIj94idLUYGPX3f33fq+AiC/fo1+RwKhQKffPIJwsPD4ezsDBsbG4wbN07fUbWEPfMUOtjZ3vf3o0OGwLZtmyafY+rUqejWrRtqamrQrVs3xMTE6Dumlq6dOiJosO99f9/zsS4Y3M+ryef45ptvsG7dOuTk5KBPnz5QqVT44IMP9JpTVteSE23UpLq6ulazh0LGp66uDv/edgBnCs5rLVfI5Zg+/jk4drYXKVnTLhT/hn/8ewfuLSIfLzdEDPcXI1KzamtrsXZTJi4U/6a13NLCHLNeDW/yDaulcM+9Fdm27wh2HPhG7BhkpGQyGZ4PHgybttZay4cO8mm1xQ4APbo5wG+ASmvZI3a2CAscKE4gAeRyOcaE+sPinqmwsKEDW0WxA62o3OPi4iCTyXDmzBmEhobCxsYGXbp0wYoVKwAAu3fvRt++fdGmTRv06dMHR44c0Vo/OzsbwcHBsLOzg7W1NQYPHtxgTE5ODsaMGYPu3bvD2toaLi4ueO211/D7779rjSssLER4eDgcHBxgaWkJR0dHjBw5ElevXoWhXL1xE8dPnQPAPXd6cG3bWCH82b++zPtxx84Y0r+3iImEGTrIB106dQRQ/y8gItQfVpYW4oZqRof27RAW+JTmZ0/XHvDp5SZiIm2tptzviIiIwDPPPKM57/ONN97AggULMG/ePLzxxhtIT09HXV0dRo0ahVu3bgEA9u3bB3//+lOO1q9fj4yMDNja2iIwMBDHjx/XPPeFCxfg5eWFDz/8EHv27MHChQuxe/duDB8+XCtDaGgofv75Z6xevRr79+9HUlISOnfujPJy7dO29OnQ0ROQy+TwN4J/iNS6PeHcHf1VHrAwN8OY0IBmD/61BmYKBV4cEQCFQo7BT3rD6bEuYkcSxNfLHR4uj8OmjTVGhwxuVdOqrWbOPS4uDvHx8UhJScG0adMAAJWVlejcuTP+/PNPFBQUoEePHgCAgwcPIjAwEBkZGXjhhRfg5uYGe3t7HDlyBPL//0Ourq5Gr1694OTkhF27djW6zerqahw9ehRDhgzBiRMnoFKpcOXKFTz66KPYtm0bRo0a9UCvZcF7ax9oPSKi5rw7P0rQuFb3ln73XrSlpSWcnJzg4eGhKXbgry80vnjxIgoLC/HDDz/glVdeQW1tLaqrq1FdXQ0AGDp0KNRqtWa9srIyLFq0CK6urrCysoK5uTmGDBkCAPj+++8BAB07doSTkxMWLFiAtWvX4ty5c4Z+yUREetfqrlDt0EH73FALCwtYWVk1WAYAFRUVuHTpEgAgJibmvqdAlZeXw9raGq+++ip2796NuLg49O3bF7a2trh48SJGjx6tmXKRyWQ4cOAA3nrrLSxatAilpaWa06vmz58v6GOX0HdWoH6u/f2PN2NAHyVGDm29B5CIyLi0unLXVceO9Qdh4uLiEBoa2ugYS0tLVFRU4Msvv8SSJUu0rga792AqAPTs2RPr169HXV0d8vPzsW7dOixcuBD29vaYPHlys5keZFom+9szyP72jM7rEZFpEbrzaPTl7u7uDicnJ5w+fRqxsbH3HVdZWYnq6mqYm2ufurRu3br7riOTydCrVy+sXLkSqampOH36tN5yExEZktGXu0wmQ2pqKkJDQzFq1Ci88sor6NSpE0pLS5Gbm4vbt29jxYoVsLOzw8CBA5GYmIjOnTuja9euSEtLw7Fjx7Se79SpU5g5cybGjBkDV1dXAPX3Xy8vL0dwcLCgTELfWTN2q5GXX4g3pr6EdrZtdXvhRERNMPpyB4CgoCBkZ2dj2bJliI6Oxq1bt9CpUyf07dsXU6ZM0YzbuHEjZsyYgdmzZ0OhUGDEiBHYvHmz5r7KAODg4IAePXpg1apVKC4uhrm5OTw8PJCWltbglMmHcfXGTeSeKcCAPkoWOxHpXas5FdLU/HC+GFv2fIXpr4xiuROR3rHcRVRbW6s5L5+ISJ9Y7kREEsTdRiIiCWK5ExFJEMudiEiCWO5ERBLEcicikiCWOxGRBLHciYgkiOVORCRBLHciIgliuRMRSRDLnYhIgljuREQSxHInIpIgljsRkQSx3ImIJIjlTkQkQSx3IiIJYrkTEUkQy52ISIJY7kREEsRyJyKSIJY7EZEEsdyJiCSI5U5EJEEsdyIiCWK5ExFJEMudiEiC/g/9adQSL/0XAQAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 18,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "qc2 = QuantumCircuit(3)\n",
+ "qc=qc2.compose(ae_circuit)\n",
+ "qc.measure_all()\n",
+ "qc.draw()#.savefig('qae_circuit.pdf')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "e7a8aaf5-5bf8-4492-9499-dae99af0b149",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# #choosing the qasm simulator backend\n",
+ "\n",
+ "# backend = Aer.get_backend('qasm_simulator')\n",
+ "\n",
+ "# # running the job and getting results (counts)\n",
+ "# job = execute(qc, backend, shots=1024) # shots = no. of times you want to run the experiment\n",
+ "# result = job.result()\n",
+ "# counts = result.get_counts(qc)\n",
+ "\n",
+ "# #printing and visualizing results (histogram data of experiment)\n",
+ "# print(counts)\n",
+ "# plot_histogram(counts)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "id": "87dc200a-ffab-4d52-ab9b-a4917b5fa235",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ]"
+ ]
+ },
+ "execution_count": 19,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "provider.backends()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "id": "2be7dab5-4dd9-41b7-94d5-93279a9b215d",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "ibm_oslo ibm_nairobi ibmq_manila\n",
+ "-------- ----------- -----------\n",
+ "Num. Qubits: 7 Num. Qubits: 7 Num. Qubits: 5\n",
+ "Pending Jobs: 58 Pending Jobs: 24 Pending Jobs: 16\n",
+ "Least busy: False Least busy: False Least busy: True\n",
+ "Operational: True Operational: True Operational: True\n",
+ "Avg. T1: 127.5 Avg. T1: 118.1 Avg. T1: 135.7\n",
+ "Avg. T2: 98.7 Avg. T2: 53.3 Avg. T2: 58.2\n",
+ "\n",
+ "\n",
+ "\n",
+ "ibmq_quito ibmq_belem ibmq_lima\n",
+ "---------- ---------- ---------\n",
+ "Num. Qubits: 5 Num. Qubits: 5 Num. Qubits: 5\n",
+ "Pending Jobs: 23 Pending Jobs: 17 Pending Jobs: 35\n",
+ "Least busy: False Least busy: False Least busy: False\n",
+ "Operational: True Operational: True Operational: True\n",
+ "Avg. T1: 92.1 Avg. T1: 89.2 Avg. T1: 92.4\n",
+ "Avg. T2: 98.3 Avg. T2: 107.7 Avg. T2: 115.9\n",
+ "\n",
+ "\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "from qiskit.tools import *\n",
+ "backend_overview()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "id": "1773a7f2-6f13-4174-a637-d7f1147a4f24",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "backend=provider.get_backend('ibmq_manila')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "id": "28e12cbe-5258-4eeb-8a1a-035ea6daf04c",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#Execute the circuit on the backend\n",
+ "job=execute(qc,backend,shots=1024)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "id": "dac27a5c-52f3-453d-a39e-9d005b17d9fc",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 28,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "job.status()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "id": "2453d1a9-18cc-478e-9781-7542255dd9ff",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "result=job.result()\n",
+ "counts=result.get_counts()\n",
+ "histogram = plot_histogram(counts,title=\"QAE on IBMQ_Manila\")\n",
+ "histogram.savefig('qae_manila.pdf')\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "c63f852a-4484-4bbc-8bcf-fc93f3b305e3",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.8.13"
+ },
+ "widgets": {
+ "application/vnd.jupyter.widget-state+json": {
+ "state": {
+ "053f5e61a7ea4738b0066acd610cfef8": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "layout": "IPY_MODEL_1acef339631d4237b14d6e0a3ec93c5b",
+ "style": "IPY_MODEL_11d743b1f1b5495b9d60688da3b520d2",
+ "value": "job has successfully run"
+ }
+ },
+ "07beff27633d48da9f0b0359c6fd55de": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "0b3476e202dd403a94fd0df296093c40": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "0c8daf2eb2f241b7969d45c25a7c6e90": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "1086392d9a1e4888b5cfe9ae92eef8f5": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "width": "95px"
+ }
+ },
+ "109d6eab719b4e84aee86acd77543aff": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "width": "190px"
+ }
+ },
+ "11d743b1f1b5495b9d60688da3b520d2": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "1614eaa9fdb44b22a481bb26d83d32e2": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "width": "190px"
+ }
+ },
+ "18567f3645914976aa1ae0aa5aaea1bf": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "1a4091d2415543018a0d705fbb678bd5": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "max_width": "700px",
+ "min_width": "700px"
+ }
+ },
+ "1acef339631d4237b14d6e0a3ec93c5b": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "overflow_x": "scroll"
+ }
+ },
+ "1f2ea46711f94fd2a611a185aa5a6f16": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "layout": "IPY_MODEL_1fb1d58ac7cd48c099f422a11db851fc",
+ "style": "IPY_MODEL_42051dd4f8d24f2ab015505d9a4eb530",
+ "value": "Status "
+ }
+ },
+ "1fb1d58ac7cd48c099f422a11db851fc": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "width": "95px"
+ }
+ },
+ "237573a03ad14398ba366fe009a8a39a": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "width": "145px"
+ }
+ },
+ "2780ede453c046c1a21759837ba33dfe": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HBoxModel",
+ "state": {
+ "children": [
+ "IPY_MODEL_28a1167360d24d3794541bbd02beddba",
+ "IPY_MODEL_2c0bfc085ffa4d44ae1d352062631364",
+ "IPY_MODEL_d9e608b14ca44b96be51d751a6124dd1",
+ "IPY_MODEL_4cd818da666441539cceb69715a2da81",
+ "IPY_MODEL_78628a9f787b4b7c9039bb6942a2d9ff",
+ "IPY_MODEL_053f5e61a7ea4738b0066acd610cfef8"
+ ],
+ "layout": "IPY_MODEL_1a4091d2415543018a0d705fbb678bd5"
+ }
+ },
+ "28a1167360d24d3794541bbd02beddba": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "ButtonModel",
+ "state": {
+ "icon": "close",
+ "layout": "IPY_MODEL_b22abcbc572e4004a82fd15dbcd21c08",
+ "style": "IPY_MODEL_5c573c00830f4598852d43fc3920661d"
+ }
+ },
+ "2c0bfc085ffa4d44ae1d352062631364": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "layout": "IPY_MODEL_109d6eab719b4e84aee86acd77543aff",
+ "style": "IPY_MODEL_82c7d3b6603843579043d7ef4a403dfa",
+ "value": "62e05f21181398da4ec6d4a6"
+ }
+ },
+ "2e0a8d303904473c82e4c7d41af98bb4": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "grid_template_areas": "\n \". . . . right \"\n ",
+ "grid_template_columns": "20% 20% 20% 20% 20%",
+ "width": "100%"
+ }
+ },
+ "30e5845584d148bcbbc90a1d7c2ede05": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "layout": "IPY_MODEL_8649d97d59774c6f9a2e76e57dacb567",
+ "style": "IPY_MODEL_07beff27633d48da9f0b0359c6fd55de",
+ "value": "Message "
+ }
+ },
+ "41df843ba2f146e0aa989592819df82c": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "grid_area": "right",
+ "padding": "0px 0px 0px 0px",
+ "width": "70px"
+ }
+ },
+ "42051dd4f8d24f2ab015505d9a4eb530": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "4cd818da666441539cceb69715a2da81": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "layout": "IPY_MODEL_1086392d9a1e4888b5cfe9ae92eef8f5",
+ "style": "IPY_MODEL_52dd5de59a9b49a9bc85230f357fc237",
+ "value": "DONE "
+ }
+ },
+ "52dd5de59a9b49a9bc85230f357fc237": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "5c573c00830f4598852d43fc3920661d": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "ButtonStyleModel",
+ "state": {
+ "button_color": "white"
+ }
+ },
+ "5fe4dd0f0d5f464fa9489c2e64e7f189": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "ButtonStyleModel",
+ "state": {}
+ },
+ "68be72052bea46a8a13dc421bc02fc40": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "GridBoxModel",
+ "state": {
+ "children": [
+ "IPY_MODEL_8e0e1b8590f145ca9a2efd9450b99458"
+ ],
+ "layout": "IPY_MODEL_2e0a8d303904473c82e4c7d41af98bb4"
+ }
+ },
+ "68ebb442b82e42e09866923de8ae4d07": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "layout": "IPY_MODEL_dc9d5ac197c144b68f8997c81fc744cf",
+ "style": "IPY_MODEL_0c8daf2eb2f241b7969d45c25a7c6e90",
+ "value": "Circuit Properties
"
+ }
+ },
+ "78628a9f787b4b7c9039bb6942a2d9ff": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "layout": "IPY_MODEL_96f5aff7df1b4871807732d61eb4dc29",
+ "style": "IPY_MODEL_961108f947dd402ca433fe81c7f91214",
+ "value": "-"
+ }
+ },
+ "82c7d3b6603843579043d7ef4a403dfa": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "8649d97d59774c6f9a2e76e57dacb567": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {}
+ },
+ "8e0e1b8590f145ca9a2efd9450b99458": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "ButtonModel",
+ "state": {
+ "button_style": "primary",
+ "description": "Clear",
+ "layout": "IPY_MODEL_41df843ba2f146e0aa989592819df82c",
+ "style": "IPY_MODEL_5fe4dd0f0d5f464fa9489c2e64e7f189"
+ }
+ },
+ "961108f947dd402ca433fe81c7f91214": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "96f5aff7df1b4871807732d61eb4dc29": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "width": "70px"
+ }
+ },
+ "9a348309fb524a708f9269acd87f0791": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HBoxModel",
+ "state": {
+ "children": [
+ "IPY_MODEL_f7c88c90e59b4e858b6dddc66713bb39",
+ "IPY_MODEL_e9af3d1e2ee14019bf4742dc44d7005d",
+ "IPY_MODEL_1f2ea46711f94fd2a611a185aa5a6f16",
+ "IPY_MODEL_c668dfdb5cd949d58336b25395af85fc",
+ "IPY_MODEL_30e5845584d148bcbbc90a1d7c2ede05"
+ ],
+ "layout": "IPY_MODEL_a8b0540237a643978dc716ab22a2219d"
+ }
+ },
+ "a8b0540237a643978dc716ab22a2219d": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "margin": "0px 0px 0px 37px",
+ "width": "600px"
+ }
+ },
+ "b22abcbc572e4004a82fd15dbcd21c08": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "margin": "0px 5px 0px 0px",
+ "width": "32px"
+ }
+ },
+ "c668dfdb5cd949d58336b25395af85fc": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "layout": "IPY_MODEL_f36d9dc034d34e73b5fcb0ea70379591",
+ "style": "IPY_MODEL_c927cc69b772492b9036065e96802858",
+ "value": "Queue "
+ }
+ },
+ "c927cc69b772492b9036065e96802858": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "d9e608b14ca44b96be51d751a6124dd1": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "layout": "IPY_MODEL_237573a03ad14398ba366fe009a8a39a",
+ "style": "IPY_MODEL_18567f3645914976aa1ae0aa5aaea1bf",
+ "value": "ibmq_manila"
+ }
+ },
+ "dc9d5ac197c144b68f8997c81fc744cf": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "margin": "0px 0px 10px 0px"
+ }
+ },
+ "e9af3d1e2ee14019bf4742dc44d7005d": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "layout": "IPY_MODEL_fe7cb80a75c7432bba941a8e2c2a31aa",
+ "style": "IPY_MODEL_f2332936c6c24ade86f8fc64f6d2e080",
+ "value": "Backend "
+ }
+ },
+ "f2332936c6c24ade86f8fc64f6d2e080": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "description_width": ""
+ }
+ },
+ "f36d9dc034d34e73b5fcb0ea70379591": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "width": "70px"
+ }
+ },
+ "f7c88c90e59b4e858b6dddc66713bb39": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "1.5.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "layout": "IPY_MODEL_1614eaa9fdb44b22a481bb26d83d32e2",
+ "style": "IPY_MODEL_0b3476e202dd403a94fd0df296093c40",
+ "value": "Job ID "
+ }
+ },
+ "fe7cb80a75c7432bba941a8e2c2a31aa": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "1.2.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "width": "145px"
+ }
+ }
+ },
+ "version_major": 2,
+ "version_minor": 0
+ }
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}