{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Getting started with Amazon Braket\n", "\n", "In this hello-world tutorial we prepare a maximally entangled Bell state between two qubits. We then run our circuit on a local simulator and obtain the results." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# general imports\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "\n", "# AWS imports: Import Braket SDK modules\n", "from braket.circuits import Circuit\n", "from braket.devices import LocalSimulator" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Build a circuit\n", "\n", "Let's build a Bell state with two qubits. By calling `Circuit()` we create an empty circuit, and we can just add gates to the circuit. " ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# build a Bell state with two qubits. Here 'cnot(control=0, target=1)' can be simplified as 'cnot(0,1)'\n", "bell = Circuit().h(0).cnot(control=0, target=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Submit the circuit to the local simulator and obtain the results\n", "\n", "Here we submit our circuit to the local simulator and obtain the results." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Counter({'00': 502, '11': 498})\n" ] } ], "source": [ "# set up device\n", "device = LocalSimulator()\n", "\n", "# run circuit\n", "result = device.run(bell, shots=1000).result()\n", "# get measurement shots\n", "counts = result.measurement_counts\n", "# print counts\n", "print(counts)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# plot using Counter\n", "plt.bar(counts.keys(), counts.values());\n", "plt.xlabel('bitstrings');\n", "plt.ylabel('counts');" ] } ], "metadata": { "kernelspec": { "display_name": "conda_braket", "language": "python", "name": "conda_braket" }, "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.7.7" } }, "nbformat": 4, "nbformat_minor": 4 }