{ "cells": [ { "cell_type": "markdown", "id": "135014b8", "metadata": {}, "source": [ "# Getting started with AutoQASM\n", "In this notebook, we demonstrate how to write and execute a quantum program with AutoQASM, using Bell state preparation as an example." ] }, { "cell_type": "code", "execution_count": 1, "id": "15cdfaee", "metadata": {}, "outputs": [], "source": [ "# general imports\n", "from collections import Counter\n", "\n", "import matplotlib.pyplot as plt\n", "\n", "# AutoQASM imports\n", "import autoqasm as aq\n", "from autoqasm.instructions import cnot, h, measure\n", "\n", "# AWS imports: Import Braket SDK modules\n", "from braket.devices import LocalSimulator" ] }, { "cell_type": "markdown", "id": "d2d7004f", "metadata": {}, "source": [ "## Build and run a Bell state program\n", "As a hello-world example, we create a Bell state and execute it on the Braket local simulator. The quantum program is defined in the `bell_state` function. The `@aq.main` decorator marks the `bell_state` function as a quantum program and enables AutoQASM syntax in the function scope." ] }, { "cell_type": "code", "execution_count": 2, "id": "2fa589ad", "metadata": {}, "outputs": [], "source": [ "@aq.main\n", "def bell_state():\n", " h(0)\n", " cnot(0, 1)\n", " return measure([0, 1])" ] }, { "cell_type": "markdown", "id": "2c59985b", "metadata": {}, "source": [ "The quantum program is defined by the decorated `bell_state` function. You can view the generated OpenQASM script with the `to_ir()` method. This can help you debug if you are already familiar with OpenQASM." ] }, { "cell_type": "code", "execution_count": 3, "id": "19467aa5", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "OPENQASM 3.0;\n", "output bit[2] return_value;\n", "qubit[2] __qubits__;\n", "h __qubits__[0];\n", "cnot __qubits__[0], __qubits__[1];\n", "bit[2] __bit_0__ = \"00\";\n", "__bit_0__[0] = measure __qubits__[0];\n", "__bit_0__[1] = measure __qubits__[1];\n", "return_value = __bit_0__;\n" ] } ], "source": [ "print(bell_state.build().to_ir())" ] }, { "cell_type": "markdown", "id": "756d0587", "metadata": {}, "source": [ "Here we submit the quantum program to the local simulator and obtain the results." ] }, { "cell_type": "code", "execution_count": 4, "id": "57bf2546", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "measurement counts: Counter({'00': 53, '11': 47})\n" ] } ], "source": [ "device = LocalSimulator(\"autoqasm\")\n", "result = device.run(bell_state, shots=100).result()\n", "counts = Counter(result.measurements[\"return_value\"])\n", "print(\"measurement counts: \", counts)" ] }, { "cell_type": "code", "execution_count": 5, "id": "7fc6f4a6", "metadata": {}, "outputs": [ { "data": { "image/png": "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27aqq6v11ltvacqUKe0yGAAAQFuEFDObN28O2j7nnHPUt29fPfnkkyf9pBMAAEB7Cilm3n333faeAwAAICQhxcwR33zzjbZv3y7LsjRkyBD17du3veYCAABok5BuAN6/f7/uvPNO9e/fX9dcc42uvvpqxcbG6q677lJjY2N7zwgAAHBcIcVMZmamSktL9fe//13fffedvvvuO73xxhsqLS3Vr3/96/aeEQAA4LhCepvpb3/7m/76178qJSUlsHbDDTcoIiJCN910k5YtW9Ze8wEAAJxQSFdmGhsb5Xa7W63369ePt5kAAMAZFVLMJCYmau7cuTpw4EBgrampSfPmzVNiYmK7DQcAAHAyIb3NlJeXp3HjxmnAgAEaMWKELMtSRUWFXC6XioqK2ntGAACA4wopZoYNG6YdO3bopZde0ieffCLbtnXLLbdo8uTJioiIaO8ZAQAAjiukmMnNzZXb7dbdd98dtP7CCy/om2++0ezZs9tlOAAAgJMJ6Z6Z5557ThdeeGGr9UsuuUTPPvvsaQ8FAADQViHFjN/vV//+/Vut9+3bV9XV1ac9FAAAQFuFFDNxcXF67733Wq2/9957io2NPe2hAAAA2iqke2amTZumjIwMff/99xo7dqwkac2aNZo1axa/ARgAAJxRIcXMrFmz9O2332rGjBlqaWmRJHXr1k2zZ89WVlZWuw4IAABwIiHFjGVZWrRokR577DF9/PHHioiIkNfrlcvlau/5AAAATiikmDmiR48euuKKK9prFgAAgFMW0g3AAAAA4YKYAQAARiNmAACA0YgZAABgNGIGAAAYjZgBAABGI2YAAIDRiBkAAGA0YgYAABiNmAEAAEYjZgAAgNGIGQAAYDRiBgAAGI2YAQAARiNmAACA0YgZAABgNGIGAAAYjZgBAABGI2YAAIDRiBkAAGA0YgYAABiNmAEAAEZzNGZyc3N1xRVXKCoqSv369dPEiRO1ffv2oGNs25bP51NsbKwiIiKUkpKibdu2OTQxAAAIN47GTGlpqe6//36tX79excXFOnjwoNLS0rR///7AMYsXL9aSJUuUn5+v8vJyeTwepaamqqGhwcHJAQBAuOjs5IuvXr06aHvlypXq16+fNm3apGuuuUa2bSsvL0/Z2dlKT0+XJBUUFMjtdquwsFDTp093YmwAABBGwuqembq6OklSr169JEmVlZXy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S1mWpYqKijPyegCcR8wA6HDl5eW65557AtuWZen1119v8/NffPFF9ezZs03HxsXFqbq6WgkJCac4JQBT8UWTADpc3759z8jrtLS0qGvXrnypKPADw5UZAO3i4MGDmjlzpnr27KnevXvr0Ucf1ZGvfjv6babBgwdLkn7xi1/IsqzA9n/+8x9de+21ioqKUnR0tEaOHKmNGzeqpKREd9xxh+rq6mRZlizLks/nC5xr/vz5mjp1qmJiYnT33Xe3epuppKRElmVpzZo1GjVqlCIjI5WUlBT4RvUj5s+fr379+ikqKkrTpk3TnDlzdOmllwb2l5SUaPTo0erevbt69uypq666Sjt37uyov04Ap4CYAdAuCgoK1LlzZ/373//W7373Oy1dulR/+MMfWh1XXl4uSVq5cqWqq6sD25MnT9aAAQNUXl6uTZs2ac6cOerSpYuSkpKUl5en6OhoVVdXq7q6Wg8//HDgfL/97W+VkJCgTZs26bHHHjvufNnZ2XryySe1ceNGde7cWXfeeWdg35///GctWLBAixYt0qZNmzRw4EAtW7YssP/gwYOaOHGikpOTtWXLFr3//vu65557ZFnWaf+9ATh9vM0EoF3ExcVp6dKlsixLQ4cO1datW7V06VLdfffdQccdecupZ8+eQW8H7dq1S7/5zW904YUXSpK8Xm9gX0xMjCzLOubbR2PHjg2Kmy+//PKY8y1YsEDJycmSpDlz5mj8+PE6cOCAunXrpqefflp33XWX7rjjDknS448/rqKiIu3bt0+SVF9fr7q6Ov30pz/Vj370I0nSRRdddEp/PwA6DldmALSLK6+8MuhKRWJionbs2KFDhw616fmZmZmaNm2arrvuOi1cuFCff/55m543atSoNh03fPjwwJ/79+8vSaqpqZEkbd++XaNHjw46/ujtXr16aerUqbr++us1YcIEPfXUU6qurm7T6wLoeMQMgLDg8/m0bds2jR8/Xu+8844uvvhirVq16qTP6969e5vO36VLl8Cfj0TX4cOHW60dceR+nyNWrlyp999/X0lJSXr11Vc1ZMgQrV+/vk2vDaBjETMA2sX//sO+fv16eb1ederUqdWxXbp0OeYVmyFDhuihhx5SUVGR0tPTtXLlSklS165d23yFJxRDhw7Vhg0bgtY2btzY6rjLLrtMWVlZKisrU0JCggoLCztsJgBtR8wAaBdVVVXKzMzU9u3b9fLLL+vpp5/Wgw8+eMxjBw8erDVr1sjv96u2tlZNTU2aOXOmSkpKtHPnTr333nsqLy8P3JcyePBg7du3T2vWrNGePXvU2NjYrrM/8MADev7551VQUKAdO3Zo/vz52rJlS+BqTWVlpbKysvT+++9r586dKioq0qeffsp9M0CY4AZgAO3i9ttvV1NTk0aPHq1OnTrpgQceCPpFeUd78sknlZmZqRUrVui8887Tp59+qr179+r222/X119/rT59+ig9PV3z5s2TJCUlJenee+/VzTffrL1792ru3LmBj2e3h8mTJ+uLL77Qww8/rAMHDuimm27S1KlTA1drIiMj9cknn6igoEB79+5V//79NXPmTE2fPr3dZgAQOsv+3zeGAQBKTU2Vx+PRn/70J6dHAXASXJkB8IPX2NioZ599Vtdff706deqkl19+WW+//baKi4udHg1AG3BlBsAPXlNTkyZMmKAPPvhAzc3NGjp0qB599FGlp6c7PRqANiBmAACA0fg0EwAAMBoxAwAAjEbMAAAAoxEzAADAaMQMAAAwGjEDAACMRswAAACjETMAAMBo/w8JFbC73oFyrAAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.bar(counts.keys(), counts.values())\n", "\n", "plt.xlabel(\"bitstrings\")\n", "plt.ylabel(\"counts\")\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "658c21ce", "metadata": {}, "source": [ "The output shows roughly equal measurement counts of the \"00\" and \"11\" bitstrings, a feature of the Bell state.\n", "\n", "In this notebook, you learn how to use AutoQASM to compose a basic quantum program. To learn more about composing more complex quantum programs with control flow and subroutines, continue to the next AutoQASM example notebook!" ] } ], "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.13.5" } }, "nbformat": 4, "nbformat_minor": 5 }