{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "zJAHLtnyQah6"
},
"source": [
"##### Copyright 2020 The Cirq Developers"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"cellView": "form",
"execution": {
"iopub.execute_input": "2023-01-17T10:27:03.034401Z",
"iopub.status.busy": "2023-01-17T10:27:03.033927Z",
"iopub.status.idle": "2023-01-17T10:27:03.038518Z",
"shell.execute_reply": "2023-01-17T10:27:03.037802Z"
},
"id": "zuEmbgh8QaG1"
},
"outputs": [],
"source": [
"# @title Licensed under the Apache License, Version 2.0 (the \"License\");\n",
"# you may not use this file except in compliance with the License.\n",
"# You may obtain a copy of the License at\n",
"#\n",
"# https://www.apache.org/licenses/LICENSE-2.0\n",
"#\n",
"# Unless required by applicable law or agreed to in writing, software\n",
"# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
"# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
"# See the License for the specific language governing permissions and\n",
"# limitations under the License."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "W31l4SmqQSrM"
},
"source": [
"# Rabi oscillation experiment"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "2eDV4QFhQhlO"
},
"source": [
"
"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"execution": {
"iopub.execute_input": "2023-01-17T10:27:03.042086Z",
"iopub.status.busy": "2023-01-17T10:27:03.041596Z",
"iopub.status.idle": "2023-01-17T10:27:50.402023Z",
"shell.execute_reply": "2023-01-17T10:27:50.401140Z"
},
"id": "bd9529db1c0b"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: pip in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (22.3.1)\r\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\r\n",
"tensorflow 2.11.0 requires protobuf<3.20,>=3.9.2, but you have protobuf 3.20.3 which is incompatible.\u001b[0m\u001b[31m\r\n",
"\u001b[0m"
]
}
],
"source": [
"try:\n",
" import cirq\n",
" import recirq\n",
"except ImportError:\n",
" !pip install -U pip\n",
" !pip install --quiet cirq\n",
" !pip install --quiet git+https://github.com/quantumlib/ReCirq\n",
" import cirq\n",
" import recirq\n",
"\n",
"import numpy as np\n",
"import cirq_google"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "kL2C06ln6h48"
},
"source": [
"In this experiment, you are going to use Cirq to check that rotating a qubit by an increasing angle, and then measuring the qubit, produces Rabi oscillations. This requires you to do the following things:\n",
"\n",
"1. Prepare the $|0\\rangle$ state.\n",
"2. Rotate by an angle $\\theta$ around the $X$ axis.\n",
"3. Measure to see if the result is a 1 or a 0.\n",
"4. Repeat steps 1-3 $k$ times.\n",
"5. Report the fraction of $\\frac{\\text{Number of 1's}}{k}$\n",
"found in step 3."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ACqqV6tJ7xXp"
},
"source": [
"## 1. Getting to know Cirq\n",
"\n",
"Cirq emphasizes the details of implementing quantum algorithms on near term devices.\n",
"For example, when you work on a qubit in Cirq you don't operate on an unspecified qubit that will later be mapped onto a device by a hidden step.\n",
"Instead, you are always operating on specific qubits at specific locations that you specify.\n",
"\n",
"Suppose you are working with a 54 qubit Sycamore chip.\n",
"This device is included in Cirq by default.\n",
"It is called `cirq_google.Sycamore`, and you can see its layout by printing it."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"execution": {
"iopub.execute_input": "2023-01-17T10:27:50.407029Z",
"iopub.status.busy": "2023-01-17T10:27:50.406252Z",
"iopub.status.idle": "2023-01-17T10:27:50.416061Z",
"shell.execute_reply": "2023-01-17T10:27:50.415372Z"
},
"id": "rKoMKEw46XY7"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" (0, 5)───(0, 6)\n",
" │ │\n",
" │ │\n",
" (1, 4)───(1, 5)───(1, 6)───(1, 7)\n",
" │ │ │ │\n",
" │ │ │ │\n",
" (2, 3)───(2, 4)───(2, 5)───(2, 6)───(2, 7)───(2, 8)\n",
" │ │ │ │ │ │\n",
" │ │ │ │ │ │\n",
" (3, 2)───(3, 3)───(3, 4)───(3, 5)───(3, 6)───(3, 7)───(3, 8)───(3, 9)\n",
" │ │ │ │ │ │ │ │\n",
" │ │ │ │ │ │ │ │\n",
" (4, 1)───(4, 2)───(4, 3)───(4, 4)───(4, 5)───(4, 6)───(4, 7)───(4, 8)───(4, 9)\n",
" │ │ │ │ │ │ │ │\n",
" │ │ │ │ │ │ │ │\n",
"(5, 0)───(5, 1)───(5, 2)───(5, 3)───(5, 4)───(5, 5)───(5, 6)───(5, 7)───(5, 8)\n",
" │ │ │ │ │ │ │\n",
" │ │ │ │ │ │ │\n",
" (6, 1)───(6, 2)───(6, 3)───(6, 4)───(6, 5)───(6, 6)───(6, 7)\n",
" │ │ │ │ │\n",
" │ │ │ │ │\n",
" (7, 2)───(7, 3)───(7, 4)───(7, 5)───(7, 6)\n",
" │ │ │\n",
" │ │ │\n",
" (8, 3)───(8, 4)───(8, 5)\n",
" │\n",
" │\n",
" (9, 4)\n"
]
}
],
"source": [
"working_device = cirq_google.Sycamore\n",
"print(working_device)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "FJJEbuk-98Gj"
},
"source": [
"For this experiment you only need one qubit and you can just pick whichever one you like."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"execution": {
"iopub.execute_input": "2023-01-17T10:27:50.419326Z",
"iopub.status.busy": "2023-01-17T10:27:50.419057Z",
"iopub.status.idle": "2023-01-17T10:27:50.422568Z",
"shell.execute_reply": "2023-01-17T10:27:50.421908Z"
},
"id": "XoXekxuQ8bI0"
},
"outputs": [],
"source": [
"my_qubit = cirq.GridQubit(5, 6)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "8Tucm7os-uET"
},
"source": [
"Once you've chosen your qubit you can build circuits that use it."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"execution": {
"iopub.execute_input": "2023-01-17T10:27:50.425951Z",
"iopub.status.busy": "2023-01-17T10:27:50.425440Z",
"iopub.status.idle": "2023-01-17T10:27:50.496404Z",
"shell.execute_reply": "2023-01-17T10:27:50.495704Z"
},
"id": "niH8sty--Hu0"
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"findfont: Font family 'Arial' not found.\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"findfont: Font family 'Arial' not found.\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"findfont: Font family 'Arial' not found.\n"
]
},
{
"data": {
"image/svg+xml": [
"(5, 6): Rx(0.5π) M('out') "
],
"text/plain": [
""
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from cirq.contrib.svg import SVGCircuit\n",
"\n",
"# Create a circuit with X, Ry(pi/2) and H.\n",
"my_circuit = cirq.Circuit(\n",
" # Rotate the qubit pi/2 radians around the X axis.\n",
" cirq.rx(np.pi / 2).on(my_qubit),\n",
" # Measure the qubit.\n",
" cirq.measure(my_qubit, key=\"out\"),\n",
")\n",
"SVGCircuit(my_circuit)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "-zbI-2KUMU66"
},
"source": [
"Now you can simulate sampling from your circuit using `cirq.Simulator`."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"execution": {
"iopub.execute_input": "2023-01-17T10:27:50.500248Z",
"iopub.status.busy": "2023-01-17T10:27:50.499594Z",
"iopub.status.idle": "2023-01-17T10:27:50.507505Z",
"shell.execute_reply": "2023-01-17T10:27:50.506807Z"
},
"id": "IqUn4uv9_IVo"
},
"outputs": [],
"source": [
"sim = cirq.Simulator()\n",
"samples = sim.sample(my_circuit, repetitions=10)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "k-uAT6sHdGib"
},
"source": [
"You can also get properties of the circuit, such as the density matrix of the circuit's output or the state vector just before the terminal measurement."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"execution": {
"iopub.execute_input": "2023-01-17T10:27:50.511056Z",
"iopub.status.busy": "2023-01-17T10:27:50.510491Z",
"iopub.status.idle": "2023-01-17T10:27:50.517591Z",
"shell.execute_reply": "2023-01-17T10:27:50.516891Z"
},
"id": "83OqpReyHyUK"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"State before measurement:\n",
"measurements: (no measurements)\n",
"\n",
"qubits: (cirq.GridQubit(5, 6),)\n",
"output vector: 0.707|0⟩ - 0.707j|1⟩\n",
"\n",
"phase:\n",
"output vector: |⟩\n",
"State after measurement:\n",
"measurements: out=1\n",
"\n",
"qubits: (cirq.GridQubit(5, 6),)\n",
"output vector: -1j|1⟩\n",
"\n",
"phase:\n",
"output vector: |⟩\n"
]
}
],
"source": [
"state_vector_before_measurement = sim.simulate(my_circuit[:-1])\n",
"sampled_state_vector_after_measurement = sim.simulate(my_circuit)\n",
"\n",
"print(f\"State before measurement:\")\n",
"print(state_vector_before_measurement)\n",
"print(f\"State after measurement:\")\n",
"print(sampled_state_vector_after_measurement)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "1raIf8dsWHLJ"
},
"source": [
"You can also examine the outputs from a noisy environment.\n",
"For example, an environment where 10% depolarization is applied to each qubit after each operation in the circuit:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"execution": {
"iopub.execute_input": "2023-01-17T10:27:50.520861Z",
"iopub.status.busy": "2023-01-17T10:27:50.520466Z",
"iopub.status.idle": "2023-01-17T10:27:50.531286Z",
"shell.execute_reply": "2023-01-17T10:27:50.530598Z"
},
"id": "P7VW97ugWE_h"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Noisy state after measurement:measurements: out=1\n",
"\n",
"qubits: (cirq.GridQubit(5, 6),)\n",
"final density matrix:\n",
"[[0.06666666+0.j 0. +0.j]\n",
" [0. +0.j 0.9333333 +0.j]]\n",
"\n",
"phase:\n",
"final density matrix:\n",
"[[1.+0.j]]\n",
"Noisy state before measurement:measurements: (no measurements)\n",
"\n",
"qubits: (cirq.GridQubit(5, 6),)\n",
"final density matrix:\n",
"[[0.49999994+0.j 0. +0.43333334j]\n",
" [0. -0.43333334j 0.49999994+0.j ]]\n",
"\n",
"phase:\n",
"final density matrix:\n",
"[[1.+0.j]]\n"
]
}
],
"source": [
"noisy_sim = cirq.DensityMatrixSimulator(noise=cirq.depolarize(0.1))\n",
"noisy_post_measurement_state = noisy_sim.simulate(my_circuit)\n",
"noisy_pre_measurement_state = noisy_sim.simulate(my_circuit[:-1])\n",
"\n",
"print(\"Noisy state after measurement:\" + str(noisy_post_measurement_state))\n",
"print(\"Noisy state before measurement:\" + str(noisy_pre_measurement_state))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "2h6yoOl4Rmwt"
},
"source": [
"## 2. Parameterized Circuits and Sweeps\n",
"\n",
"Now that you have some of the basics end to end, you can create a parameterized circuit that rotates by an angle $\\theta$:"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"execution": {
"iopub.execute_input": "2023-01-17T10:27:50.534598Z",
"iopub.status.busy": "2023-01-17T10:27:50.534175Z",
"iopub.status.idle": "2023-01-17T10:27:50.636977Z",
"shell.execute_reply": "2023-01-17T10:27:50.636262Z"
},
"id": "n6h6yuyGM58s"
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"findfont: Font family 'Arial' not found.\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"findfont: Font family 'Arial' not found.\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"findfont: Font family 'Arial' not found.\n"
]
},
{
"data": {
"image/svg+xml": [
"(5, 6): Rx(theta) M('out') "
],
"text/plain": [
""
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import sympy\n",
"\n",
"theta = sympy.Symbol(\"theta\")\n",
"\n",
"parameterized_circuit = cirq.Circuit(\n",
" cirq.rx(theta).on(my_qubit), cirq.measure(my_qubit, key=\"out\")\n",
")\n",
"SVGCircuit(parameterized_circuit)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "rU3BBOp0S4sM"
},
"source": [
"In the above block you saw that there is a `sympy.Symbol` that you placed in the circuit. Cirq supports symbolic computation involving circuits. What this means is that when you construct `cirq.Circuit` objects you can put placeholders in many of the classical control parameters of the circuit which you can fill with values later on.\n",
"\n",
"Now if you wanted to use `cirq.simulate` or `cirq.sample` with the parameterized circuit you would also need to specify a value for `theta`."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"execution": {
"iopub.execute_input": "2023-01-17T10:27:50.640694Z",
"iopub.status.busy": "2023-01-17T10:27:50.640245Z",
"iopub.status.idle": "2023-01-17T10:27:50.652378Z",
"shell.execute_reply": "2023-01-17T10:27:50.651703Z"
},
"id": "SMdz-yAZSwrU"
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" theta \n",
" out \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 2 \n",
" 1 \n",
" \n",
" \n",
" 1 \n",
" 2 \n",
" 1 \n",
" \n",
" \n",
" 2 \n",
" 2 \n",
" 1 \n",
" \n",
" \n",
" 3 \n",
" 2 \n",
" 1 \n",
" \n",
" \n",
" 4 \n",
" 2 \n",
" 1 \n",
" \n",
" \n",
" 5 \n",
" 2 \n",
" 0 \n",
" \n",
" \n",
" 6 \n",
" 2 \n",
" 1 \n",
" \n",
" \n",
" 7 \n",
" 2 \n",
" 0 \n",
" \n",
" \n",
" 8 \n",
" 2 \n",
" 0 \n",
" \n",
" \n",
" 9 \n",
" 2 \n",
" 0 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" theta out\n",
"0 2 1\n",
"1 2 1\n",
"2 2 1\n",
"3 2 1\n",
"4 2 1\n",
"5 2 0\n",
"6 2 1\n",
"7 2 0\n",
"8 2 0\n",
"9 2 0"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sim.sample(parameterized_circuit, params={theta: 2}, repetitions=10)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "H_H13Hc8g873"
},
"source": [
"You can also specify *multiple* values of `theta`, and get samples back for each value."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"execution": {
"iopub.execute_input": "2023-01-17T10:27:50.655895Z",
"iopub.status.busy": "2023-01-17T10:27:50.655338Z",
"iopub.status.idle": "2023-01-17T10:27:50.668656Z",
"shell.execute_reply": "2023-01-17T10:27:50.668008Z"
},
"id": "0zjZxGY6hIsu"
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" theta \n",
" out \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 0.500000 \n",
" 0 \n",
" \n",
" \n",
" 1 \n",
" 0.500000 \n",
" 0 \n",
" \n",
" \n",
" 2 \n",
" 0.500000 \n",
" 0 \n",
" \n",
" \n",
" 3 \n",
" 0.500000 \n",
" 0 \n",
" \n",
" \n",
" 4 \n",
" 0.500000 \n",
" 0 \n",
" \n",
" \n",
" 5 \n",
" 0.500000 \n",
" 0 \n",
" \n",
" \n",
" 6 \n",
" 0.500000 \n",
" 0 \n",
" \n",
" \n",
" 7 \n",
" 0.500000 \n",
" 0 \n",
" \n",
" \n",
" 8 \n",
" 0.500000 \n",
" 0 \n",
" \n",
" \n",
" 9 \n",
" 0.500000 \n",
" 0 \n",
" \n",
" \n",
" 0 \n",
" 3.141593 \n",
" 1 \n",
" \n",
" \n",
" 1 \n",
" 3.141593 \n",
" 1 \n",
" \n",
" \n",
" 2 \n",
" 3.141593 \n",
" 1 \n",
" \n",
" \n",
" 3 \n",
" 3.141593 \n",
" 1 \n",
" \n",
" \n",
" 4 \n",
" 3.141593 \n",
" 1 \n",
" \n",
" \n",
" 5 \n",
" 3.141593 \n",
" 1 \n",
" \n",
" \n",
" 6 \n",
" 3.141593 \n",
" 1 \n",
" \n",
" \n",
" 7 \n",
" 3.141593 \n",
" 1 \n",
" \n",
" \n",
" 8 \n",
" 3.141593 \n",
" 1 \n",
" \n",
" \n",
" 9 \n",
" 3.141593 \n",
" 1 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" theta out\n",
"0 0.500000 0\n",
"1 0.500000 0\n",
"2 0.500000 0\n",
"3 0.500000 0\n",
"4 0.500000 0\n",
"5 0.500000 0\n",
"6 0.500000 0\n",
"7 0.500000 0\n",
"8 0.500000 0\n",
"9 0.500000 0\n",
"0 3.141593 1\n",
"1 3.141593 1\n",
"2 3.141593 1\n",
"3 3.141593 1\n",
"4 3.141593 1\n",
"5 3.141593 1\n",
"6 3.141593 1\n",
"7 3.141593 1\n",
"8 3.141593 1\n",
"9 3.141593 1"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sim.sample(parameterized_circuit, params=[{theta: 0.5}, {theta: np.pi}], repetitions=10)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "juuWvOEphaaE"
},
"source": [
"Cirq has shorthand notation you can use to sweep `theta` over a range of values."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"execution": {
"iopub.execute_input": "2023-01-17T10:27:50.672119Z",
"iopub.status.busy": "2023-01-17T10:27:50.671552Z",
"iopub.status.idle": "2023-01-17T10:27:50.690305Z",
"shell.execute_reply": "2023-01-17T10:27:50.689633Z"
},
"id": "8lCb3049hqXn"
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" theta \n",
" out \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 0.000000 \n",
" 0 \n",
" \n",
" \n",
" 1 \n",
" 0.000000 \n",
" 0 \n",
" \n",
" \n",
" 2 \n",
" 0.000000 \n",
" 0 \n",
" \n",
" \n",
" 3 \n",
" 0.000000 \n",
" 0 \n",
" \n",
" \n",
" 4 \n",
" 0.000000 \n",
" 0 \n",
" \n",
" \n",
" 0 \n",
" 0.785398 \n",
" 0 \n",
" \n",
" \n",
" 1 \n",
" 0.785398 \n",
" 0 \n",
" \n",
" \n",
" 2 \n",
" 0.785398 \n",
" 0 \n",
" \n",
" \n",
" 3 \n",
" 0.785398 \n",
" 0 \n",
" \n",
" \n",
" 4 \n",
" 0.785398 \n",
" 0 \n",
" \n",
" \n",
" 0 \n",
" 1.570796 \n",
" 1 \n",
" \n",
" \n",
" 1 \n",
" 1.570796 \n",
" 1 \n",
" \n",
" \n",
" 2 \n",
" 1.570796 \n",
" 0 \n",
" \n",
" \n",
" 3 \n",
" 1.570796 \n",
" 1 \n",
" \n",
" \n",
" 4 \n",
" 1.570796 \n",
" 1 \n",
" \n",
" \n",
" 0 \n",
" 2.356194 \n",
" 0 \n",
" \n",
" \n",
" 1 \n",
" 2.356194 \n",
" 0 \n",
" \n",
" \n",
" 2 \n",
" 2.356194 \n",
" 1 \n",
" \n",
" \n",
" 3 \n",
" 2.356194 \n",
" 1 \n",
" \n",
" \n",
" 4 \n",
" 2.356194 \n",
" 1 \n",
" \n",
" \n",
" 0 \n",
" 3.141593 \n",
" 1 \n",
" \n",
" \n",
" 1 \n",
" 3.141593 \n",
" 1 \n",
" \n",
" \n",
" 2 \n",
" 3.141593 \n",
" 1 \n",
" \n",
" \n",
" 3 \n",
" 3.141593 \n",
" 1 \n",
" \n",
" \n",
" 4 \n",
" 3.141593 \n",
" 1 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" theta out\n",
"0 0.000000 0\n",
"1 0.000000 0\n",
"2 0.000000 0\n",
"3 0.000000 0\n",
"4 0.000000 0\n",
"0 0.785398 0\n",
"1 0.785398 0\n",
"2 0.785398 0\n",
"3 0.785398 0\n",
"4 0.785398 0\n",
"0 1.570796 1\n",
"1 1.570796 1\n",
"2 1.570796 0\n",
"3 1.570796 1\n",
"4 1.570796 1\n",
"0 2.356194 0\n",
"1 2.356194 0\n",
"2 2.356194 1\n",
"3 2.356194 1\n",
"4 2.356194 1\n",
"0 3.141593 1\n",
"1 3.141593 1\n",
"2 3.141593 1\n",
"3 3.141593 1\n",
"4 3.141593 1"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sim.sample(\n",
" parameterized_circuit,\n",
" params=cirq.Linspace(theta, start=0, stop=np.pi, length=5),\n",
" repetitions=5,\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "wqaORMoKiAIW"
},
"source": [
"The result value being returned by `sim.sample` is a `pandas.DataFrame` object.\n",
"Pandas is a common library for working with table data in python.\n",
"You can use standard pandas methods to analyze and summarize your results."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"execution": {
"iopub.execute_input": "2023-01-17T10:27:50.693798Z",
"iopub.status.busy": "2023-01-17T10:27:50.693222Z",
"iopub.status.idle": "2023-01-17T10:27:51.571839Z",
"shell.execute_reply": "2023-01-17T10:27:51.571121Z"
},
"id": "bLzGV8nFiS9o"
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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yZNUqVKFLVu2sGrVqtwjNwBWq5WMjAzS09Px8fG56Gumpqby6quvsnDhQk6cOEFOTg7nz5/XkRyREk4lR0RKFHd399zbFosFAJvNBtjLysiRI+nRo8d/nufl5XXJ13z66adZvHgx77zzDjVr1sTb25u77rqLrKysQk4vIsVJJUdEHJKHhwdWq7VAz2nevDl79uyhZs2al1zH3d39P6+7atUq7r//frp37w7Yy9KFE51FpORSyRERh1StWjXWrl3LoUOH8PPzyz1aczkvv/wyXbp0oUqVKtx11124uLiwZcsWtm/fzuuvv577ukuWLKFt27Z4enpStmxZatWqxffff0/Xrl2xWCy89NJL+dqeiDg2XV0lIg7p6aefxtXVlfr161OhQoV8nR8TExPDggUL+OWXX2jVqhXXXXcd77//PlWrVs1d591332Xx4sWEh4fTrFkzAN577z3Kli1LmzZt6Nq1KzExMTRv3rzI3puIFA9dXSUiIiJOSUdyRERExCmp5IiIiIhTUskRERERp6SSIyIiIk5JJUdERESckkqOiIiIOCWVHBEREXFKKjkiIiLilFRyRERExCmp5IiIiIhTUskRERERp/T/WfvIotf1DMQAAAAASUVORK5CYII=\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import pandas\n",
"\n",
"big_results = sim.sample(\n",
" parameterized_circuit,\n",
" params=cirq.Linspace(theta, start=0, stop=np.pi, length=20),\n",
" repetitions=10_000,\n",
")\n",
"\n",
"# big_results is too big to look at. Plot cross tabulated data instead.\n",
"pandas.crosstab(big_results.theta, big_results.out).plot()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "b2TkL28AmBSQ"
},
"source": [
"## 3. The ReCirq experiment\n",
"\n",
"[ReCirq](https://github.com/quantumlib/ReCirq) comes with a pre-written Rabi oscillation experiment `recirq.benchmarks.rabi_oscillations`, which performs the steps outlined at the start of this tutorial to create a circuit that exhibits Rabi Oscillations or [Rabi Cycles](https://en.wikipedia.org/wiki/Rabi_cycle). \n",
"\n",
"This method takes a `cirq.Sampler`, which could be a simulator or a network connection to real hardware, as well as a qubit to test and two iteration parameters, `num_points` and `repetitions`. It then runs `repetitions` many experiments on the provided `sampler`, where each experiment is a circuit that rotates the chosen `qubit` by some $\\theta$ Rabi angle around the $X$ axis (by applying an exponentiated $X$ gate). The result is a sequence of the expected probabilities of the chosen qubit at each of the Rabi angles. "
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"execution": {
"iopub.execute_input": "2023-01-17T10:27:51.575898Z",
"iopub.status.busy": "2023-01-17T10:27:51.575305Z",
"iopub.status.idle": "2023-01-17T10:27:53.031727Z",
"shell.execute_reply": "2023-01-17T10:27:53.031014Z"
},
"id": "ma0pVZwSThQx"
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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tm1Ny4HLZXV1QND4HWbHjRungQMHqnPnzpo9e7Zmz56tTp066Z577tFLL70UjBoBeLlc5oWpbVtp3jxz7osveKECYFYyyMzMfT49XerZk98TCFt+b5pQo0YNjRo1Sn379s1xfurUqXryySdDvr+WCWCwLZfLvCCd/SPrcJjbOXOklJSirwuA9dxu84fuzp153+9wSAkJZvUTp7NISwMKI6ibJuzatUstW7bMdb5ly5batWuXv08HwBdut5SamjvISqfPDR5MbxwQqZYvzz/ISub3xI4d5jogzPgdZmvWrKnZ3kXazzBr1izVqlUrIEUBOAsvVAAK4utgEoNOCEM+Lc11plGjRqlXr1768ssv1apVK0nSihUrtHjx4jxDLoAA4IUKQEHi4wN7HWAjfo/M3njjjfruu+9UsWJFzZ07V3PnzlXFihX13XffqQe7jgDBwQsVgIIkJ5ueWG8P/dkcDikx0VwHhBm/RmZPnjypf/zjHxoxYoTefffdYNUE4GzeF6r09Lz7Zr2TO3ihAiKT0ymNH28miTocOX9PeANuWhqTvxCW/BqZLV68uD744INg1QIgP94XqvyCrMQLFRDpUlLMqibVq+c8X748q50grPndZtC9e3fNnTs3CKUAKFBKinT99bnPJyTwQgXASEkxOwMuWSLddJM5V78+vx8Q1vyeAFarVi099dRTWrFihZo0aaLSpUvnuP+BBx4IWHEAzpCVJa1ZY46feUa6+GLTI5uczIgsgNOcTqlNG/M7Ys4cadkys75sjRpWVwYERaE2Tcj3yRwObdmy5byLCiY2TYBtff211KqV2a5yzx6pRAmrKwIQ6tq3lxYvNttfP/GE1dUAPvMnr/k9MhvqO3wBYcu79N0NNxBkAfjmjjtMmJ06VRoxIv/VDgAb8yvMfvPNN/rkk0904sQJtWvXTp06dQpWXQDOlJUlvf++Ob75ZmtrAWAfPXpIZcpIW7ZIX33FiicISz5PAJszZ45atWql8ePHa+LEierSpYteeOGFYNYGwGvlSum//zUtBh06WF0NALsoXfr0H8BTplhaChAsPofZsWPH6u6771ZGRob++usvPfPMMxozZkwwawPg5W0x6NZNiomxthYA9tKvn7l9/33pyBFrawGCwOcwu2HDBj300ENy/m/W9IMPPqiDBw9q7969QSsOgEyLwZw55pgWAwD++tvf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pYWVhIQEPfvss1q1apV++OEHXXPNNerWrZt+/vlnq0sLW99//73efPNNNWjQwOpSwtJll12mXbt2ZX989dVXVpcUVv766y+1atVKxYsX16effqpffvlFL774osqXL291aUWOpbmCqHnz5rryyiv16quvSjK7myUmJur+++/XsGHDLK4u/DgcDn344Yfq3r271aWEtT/++EOVK1fWsmXLdPXVV1tdTlirUKGCnn/+ed11111WlxJ2Dh06pMaNG+u1117TM888oyuuuEJpaWlWlxU2nnzySc2dO1dr1661upSwNWzYMK1YsULLly+3uhTLMTIbJCdOnNCqVavUvn377HPFihVT+/bttXLlSgsrA85PRkaGJBO0EBxut1szZ87U4cOH2ao7SO677z516dIlx+9oBNamTZtUrVo1XXzxxbr11lu1fft2q0sKKx9//LGaNm2qm266SZUrV1ajRo309ttvW12WJQizQbJv3z653e7sncy8qlSpot27d1tUFXB+srKyNHjwYLVq1Spkd92zs59++kllypRRTEyM7rnnHn344YeqV6+e1WWFnZkzZ2r16tXZ26Qj8Jo3b64pU6ZowYIFev3117V161YlJyfr4MGDVpcWNrZs2aLXX39dtWrV0meffaaBAwfqgQce0NSpU60urchZvp0tAPu47777tG7dOnrfguTSSy/V2rVrlZGRoTlz5qhfv35atmwZgTaAduzYodTUVC1atEglSpSwupywdd1112UfN2jQQM2bN9dFF12k2bNn0zYTIFlZWWratKnGjBkjSWrUqJHWrVunN954Q/369bO4uqLFyGyQVKxYUU6nU3v27Mlxfs+ePapatapFVQGFN2jQIP373//WkiVLlJCQYHU5YSk6Olo1a9ZUkyZNNHbsWDVs2FDjx4+3uqywsmrVKu3du1eNGzdWVFSUoqKitGzZMr388suKioqS2+22usSwVK5cOdWuXVu//fab1aWEjfj4+Fx/6NatWzci2zkIs0ESHR2tJk2aaPHixdnnsrKytHjxYnrgYCsej0eDBg3Shx9+qC+++EI1atSwuqSIkZWVpePHj1tdRlhp166dfvrpJ61duzb7o2nTprr11lu1du1aOZ1Oq0sMS4cOHdLmzZsVHx9vdSlho1WrVrmWSdy4caMuuugiiyqyDm0GQTR06FD169dPTZs2VbNmzZSWlqbDhw+rf//+VpcWNg4dOpTjL/2tW7dq7dq1qlChgi688EILKwsf9913n6ZPn66PPvpIZcuWze75jouLU8mSJS2uLnwMHz5c1113nS688EIdPHhQ06dP19KlS/XZZ59ZXVpYKVu2bK5+79KlS+uCCy6gDzyAHnroIXXt2lUXXXSR/vvf/2rkyJFyOp3q3bu31aWFjSFDhqhly5YaM2aMbr75Zn333Xd666239NZbb1ldWtHzIKheeeUVz4UXXuiJjo72NGvWzPPNN99YXVJYWbJkiUdSro9+/fpZXVrYyOv7K8kzefJkq0sLK3feeafnoosu8kRHR3sqVarkadeunWfhwoVWlxURWrdu7UlNTbW6jLDSq1cvT3x8vCc6OtpTvXp1T69evTy//fab1WWFnU8++cRz+eWXe2JiYjx16tTxvPXWW1aXZAnWmQUAAIBt0TMLAAAA2yLMAgAAwLYIswAAALAtwiwAAABsizALAAAA2yLMAgAAwLYIswAAALAtwiwAAABsizALIKK1adNGgwcPLvCapKQkpaWlFUk95/Lkk0/qiiuuOO/n+fPPP1W5cmVt27btvJ/rXJYuXSqHw6EDBw5IkqZMmaJy5coF9Gvs27dPlStX1s6dOwP6vABCH2EWgC3dcccdcjgccjgcKl68uGrUqKFHHnlEx44dC/jX+v777/X3v//9nNft3LlT0dHRuvzyywNeQ6CNHj1a3bp1U1JSkiRp27Zt2d9Ph8OhChUqqHXr1lq+fHnAv3avXr20cePGgD5nxYoV1bdvX40cOTKgzwsg9BFmAdhWp06dtGvXLm3ZskUvvfSS3nzzzaCEmUqVKqlUqVLnvG7KlCm6+eablZmZqW+//TbgdQTKkSNH9M477+iuu+7Kdd/nn3+uXbt26csvv1S1atV0/fXXa8+ePQH9+iVLllTlypUD+pyS1L9/f7333nvav39/wJ8bQOgizAKwrZiYGFWtWlWJiYnq3r272rdvr0WLFmXf/+eff6p3796qXr26SpUqpfr162vGjBm5nufUqVMaNGiQ4uLiVLFiRY0YMUIejyf7fl/aDDwejyZPnqzbb79dffr00TvvvJPjfu/Ip8vlUtu2bVWqVCk1bNhQK1euzHHd22+/rcTERJUqVUo9evTQuHHjzvmW/MSJE1W3bl2VKFFCderU0WuvvVbg9fPnz1dMTIyuuuqqXPddcMEFqlq1qi6//HI99thjuYL5v/71LzVt2lRly5ZV1apV1adPH+3duzfX89euXVslS5ZU27Ztc7UynN1msHnzZnXr1k1VqlRRmTJldOWVV+rzzz/P8ZikpCSNGTNGd955p8qWLasLL7xQb731Vo5rLrvsMlWrVk0ffvhhgf/9AMILYRZAWFi3bp2+/vprRUdHZ587duyYmjRponnz5mndunX6+9//rttvv13fffddjsdOnTpVUVFR+u677zR+/HiNGzdOEydO9OvrL1myREeOHFH79u112223aebMmTp8+HCu6/75z3/qoYce0tq1a1W7dm317t1bp06dkiStWLFC99xzj1JTU7V27Vpde+21Gj16dIFf97333tMTTzyh0aNHa/369RozZoxGjBihqVOn5vuY5cuXq0mTJgU+79GjRzVt2jRJyvE9PXnypJ5++mn9+OOPmjt3rrZt26Y77rgj+/4dO3YoJSVFXbt21dq1azVgwAANGzaswK916NAhde7cWYsXL9aaNWvUqVMnde3aVdu3b89x3YsvvqimTZtqzZo1uvfeezVw4EBt2LAhxzXNmjULSmsEgBDmAQAb6tevn8fpdHpKly7tiYmJ8UjyFCtWzDNnzpwCH9elSxfPgw8+mP1569atPXXr1vVkZWVln3v00Uc9devWzf78oosu8rz00ksFPm+fPn08gwcPzv68YcOGnsmTJ2d/vnXrVo8kz8SJE7PP/fzzzx5JnvXr13s8Ho+nV69eni5duuR43ltvvdUTFxeX/fnIkSM9DRs2zP78kksu8UyfPj3HY55++mlPixYt8q21W7dunjvvvDPHOW99JUuW9JQuXdrjcDg8kjxNmjTxnDhxIt/n+v777z2SPAcPHvR4PB7P8OHDPfXq1ctxzaOPPuqR5Pnrr788Ho/HM3ny5Bz/TXm57LLLPK+88kr25xdddJHntttuy/48KyvLU7lyZc/rr7+e43FDhgzxtGnTpsDnBhBeGJkFYFtt27bV2rVr9e2336pfv37q37+/brzxxuz73W63nn76adWvX18VKlRQmTJl9Nlnn+Ua8bvqqqvkcDiyP2/RooU2bdokt9vtUx0HDhyQy+XSbbfdln3utttuy9VqIEkNGjTIPo6Pj5ek7LfpN2zYoGbNmuW4/uzPz3T48GFt3rxZd911l8qUKZP98cwzz2jz5s35Pu7o0aMqUaJEnvfNmjVLa9as0QcffKCaNWtqypQpKl68ePb9q1atUteuXXXhhReqbNmyat26tSRlf0/Xr1+v5s2b53jOFi1a5FuLZEZmH3roIdWtW1flypVTmTJltH79+lz/n8783jkcDlWtWjVXi0PJkiV15MiRAr8egPASZXUBAFBYpUuXVs2aNSVJkyZNUsOGDXNMbHr++ec1fvx4paWlqX79+ipdurQGDx6sEydOBLSO6dOn69ixYzlCnMfjUVZWljZu3KjatWtnnz8zGHoDdFZWVqG+7qFDhySZPtuzA6TT6cz3cRUrVtRff/2V532JiYmqVauWatWqpVOnTqlHjx5at26dYmJidPjwYXXs2FEdO3bUe++9p0qVKmn79u3q2LHjeX1PH3roIS1atEgvvPCCatasqZIlS6pnz565nvPM751kvn9nf+/279+vSpUqFboWAPbDyCyAsFCsWDE99thjevzxx3X06FFJpge1W7duuu2229SwYUNdfPHFeS4JdfbKA998841q1apVYCA80zvvvKMHH3xQa9euzf748ccflZycrEmTJvn833DppZfq+++/z3Hu7M/PVKVKFVWrVk1btmxRzZo1c3zUqFEj38c1atRIv/zyyznr6dmzp6KiorInlP3666/6888/9eyzzyo5OVl16tTJNTJat27dXD3J33zzTYFfZ8WKFbrjjjvUo0cP1a9fX1WrVi30+rfr1q1To0aNCvVYAPZEmAUQNm666SY5nU5NmDBBklSrVi0tWrRIX3/9tdavX69//OMfeS4ztX37dg0dOlQbNmzQjBkz9Morryg1NdWnr7l27VqtXr1aAwYM0OWXX57jo3fv3po6dWr2BK9zuf/++zV//nyNGzdOmzZt0ptvvqlPP/00RwvE2UaNGqWxY8fq5Zdf1saNG/XTTz9p8uTJGjduXL6P6dixo37++ed8R2e9HA6HHnjgAT377LM6cuSILrzwQkVHR+uVV17Rli1b9PHHH+vpp5/O8Zh77rlHmzZt0sMPP6wNGzZo+vTpmjJlSoFfp1atWnK5XNl/BPTp06dQo9VHjhzRqlWr1KFDB78fC8C+CLMAwkZUVJQGDRqk5557TocPH9bjjz+uxo0bq2PHjmrTpo2qVq2q7t2753pc3759dfToUTVr1kz33XefUlNTfdokQTKjsvXq1VOdOnVy3dejRw/t3btX8+fP9+m5WrVqpTfeeEPjxo1Tw4YNtWDBAg0ZMiTf/lZJGjBggCZOnKjJkyerfv36at26taZMmVLgyGz9+vXVuHFjzZ49+5w19evXTydPntSrr76qSpUqacqUKXr//fdVr149Pfvss3rhhRdyXH/hhRfqgw8+0Ny5c9WwYUO98cYbGjNmTIFfY9y4cSpfvrxatmyprl27qmPHjmrcuPE5azvbRx99pAsvvFDJycl+PxaAfTk8njMWUwQAhJS7775bv/76a8CXm5o3b54efvhhrVu3TsWKhce4xlVXXaUHHnhAffr0sboUAEWICWAAEEJeeOEFXXvttSpdurQ+/fRTTZ069ZybIBRGly5dtGnTJqWnpysxMTHgz1/U9u3bp5SUFPXu3dvqUgAUMUZmASCE3HzzzVq6dKkOHjyoiy++WPfff7/uueceq8sCgJBFmAUAAIBthUejFAAAACISYRYAAAC2RZgFAACAbRFmAQAAYFuEWQAAANgWYRYAAAC2RZgFAACAbRFmAQAAYFv/D9Nshcy0T63NAAAAAElFTkSuQmCC\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import datetime\n",
"from recirq.benchmarks import rabi_oscillations\n",
"\n",
"result = rabi_oscillations(\n",
" sampler=noisy_sim, qubit=my_qubit, num_points=50, repetitions=10000\n",
")\n",
"result.plot()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "U-oezaJAnzJ8"
},
"source": [
"Notice that you can tell from the plot that you used the noisy simulator you defined earlier.\n",
"You can also tell that the amount of depolarization is roughly 10%."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "V6uE-yFxoT-3"
},
"source": [
"## 4. Exercise: Find the best qubit\n",
"\n",
"As you have seen, you can use Cirq to perform a Rabi oscillation experiment.\n",
"You can either make the experiment yourself out of the basic pieces made available by Cirq, or use the prebuilt experiment method.\n",
"\n",
"Now you're going to put this knowledge to the test.\n",
"\n",
"There is some amount of depolarizing noise on each qubit.\n",
"Your goal is to characterize every qubit from the Sycamore chip using a Rabi oscillation experiment, and find the qubit with the lowest noise according to the secret noise model."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"execution": {
"iopub.execute_input": "2023-01-17T10:27:53.035994Z",
"iopub.status.busy": "2023-01-17T10:27:53.035325Z",
"iopub.status.idle": "2023-01-17T10:27:53.040420Z",
"shell.execute_reply": "2023-01-17T10:27:53.039736Z"
},
"id": "-eISq1eqXYWx"
},
"outputs": [],
"source": [
"import hashlib\n",
"\n",
"\n",
"class SecretNoiseModel(cirq.NoiseModel):\n",
" def noisy_operation(self, op):\n",
" # Hey! No peeking!\n",
" q = op.qubits[0]\n",
" v = hashlib.sha256(str(q).encode()).digest()[0] / 256\n",
" yield cirq.depolarize(v).on(q)\n",
" yield op\n",
"\n",
"\n",
"secret_noise_sampler = cirq.DensityMatrixSimulator(noise=SecretNoiseModel())"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"execution": {
"iopub.execute_input": "2023-01-17T10:27:53.043695Z",
"iopub.status.busy": "2023-01-17T10:27:53.043163Z",
"iopub.status.idle": "2023-01-17T10:27:54.080552Z",
"shell.execute_reply": "2023-01-17T10:27:54.079749Z"
},
"id": "Rvf87Wqrp-lu"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"qubit cirq.GridQubit(7, 6)\n"
]
},
{
"data": {
"text/plain": [
""
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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375at26dGjduXGr9I0eO6Oyzz1bjxo31wgsvqHnz5vr2229Vt25dx/sEAABA5eEozGZkZMRl59OmTdMf/vAHjRgxQpI0a9Ysvfzyy5o9e7bGjx9fav3Zs2dr9+7deuedd1S1alVJUk5OTlzKBgAAgOSXsDazR44cUY0aNfTCCy9owIABxcuHDx+uPXv26KWXXip1n/POO0/169dXjRo19NJLL6lRo0a69NJLdfPNNwdN4hDo8OHDOnz4cPH1ffv2KTs7mzazAAAAScoTbWZ37dqlwsJCZWZmBi3PzMzUtm3bQt5n48aNeuGFF1RYWKhXXnlFt912m+6//3799a9/DbufqVOnKiMjo/iUnZ0d08cBAACAxHHUzKBLly5avny56tWrp86dO0ccgmvNmjUxK1xJRUVFaty4sR577DGlpqaqa9eu2rJli+69915NmjQp5H0mTJgQNDauXTMLAAAA73MUZvv376/09HRJCmoSUB4NGzZUamqqtm/fHrR8+/btatKkScj7NG3aVFWrVg1qUtCuXTtt27ZNR44cUVpaWqn7pKenF5cdAAAAlYujMBtY6xmuBtSttLQ0de3aVcuXLy8OyEVFRVq+fLmuvfbakPc59dRTNX/+fBUVFSklxbSQWL9+vZo2bRoyyAIAAKByi7rN7EcffaSnn35aTz/9tFavXh3VNvLy8vT4449r3rx5Wrt2ra655hoVFBQUj24wbNgwTZgwoXj9a665Rrt379bo0aO1fv16vfzyy5oyZYpGjRoV7cMAAACAhzmqmQ30/fffa8iQIVq1alXx+K579uzRKaecoueee05ZWVmOtzV48GDt3LlTt99+u7Zt26YTTzxRS5cuLe4Utnnz5uIaWEnKzs7Wq6++qrFjx6pTp05q3ry5Ro8erZtvvtntwwAAAEAl4HpornPPPVd79uzRvHnzdPzxx0uS1q1bpxEjRqhOnTpaunRpXAoaK0xnCwAAkNzc5DXXYbZ69ep655131Llz56Dlq1evVq9evXTgwAH3Ja5AhFkAAIDkFtdxZrOzs/XLL7+UWl5YWKhmzZq53RwAAAAQNddh9t5779V1112njz76qHjZRx99pNGjR+u+++6LaeEAAACASBw1M6hXr17QRAkFBQU6evSoqlQx/cfsyzVr1tTu3bvjV9oYoJkBAABAcnOT1xyNZjB9+vRYlAsAAACI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roYNGzq6T3p6eqnZygAAAFA5uO4ANn78+JCzfBUVFYVt4xpOw4YNlZqaqu3btwct3759u5o0aVJq/a+//lrffPON+vXrpypVqqhKlSp66qmn9M9//lNVqlTR119/7e7BAAAAwNNch9kNGzaoffv2pZa3bdtWX331lattpaWlqWvXrlq+fHnxsqKiIi1fvlw9e/YMuY9PP/1U+fn5xacLL7xQvXv3Vn5+Ps0HAAAAfmVcNzPIyMjQxo0blZOTE7T8q6++Us2aNV0XIC8vT8OHD1e3bt3UvXt3TZ8+XQUFBRoxYoQkadiwYWrevLmmTp2qatWqqUOHDkH3r1u3riSVWg4AAIDKz3WY7d+/v8aMGaMXX3xRxx57rCQTZG+44QZdeOGFrgswePBg7dy5U7fffru2bdumE088UUuXLi3uFLZ582alpLiuQAYAAMCvgKNxZgPt3btX5557rj766CNlZWVJkr7//nv16tVLixcvLq4pTVZuxi0DAABAxYv5OLOBMjIy9M477+j111/XJ598ourVq6tTp076zW9+E3WBAQAAgGi4rpnduXOnGjVqFPK2Tz/9VB07doxJweKFmlkAAIDk5iavuW6M2rFjR7388sullt93333q3r27280BAAAAUXMdZvPy8nTxxRfrmmuu0cGDB7VlyxadddZZuueeezR//vx4lBEAAAAIyXUzA0n6+OOPdfnll+vw4cPavXu3evToodmzZ4ec6CDZ0MwAAAAgucW1mYEktW7dWh06dNA333yjffv2afDgwZ4IsgAAAKhcXIfZVatWqVOnTtqwYYP+97//6dFHH9V1112nwYMH66effopHGQEAAICQXIfZM888U4MHD9Z7772ndu3a6eqrr9bHH3+szZs3J/1IBgAAAKhcXI8z+9prr+n0008PWnbsscdq1apVuuuuu2JWMAAAAKAsUXUA8zI6gAEAACS3uHQAO++887R3797i63fffbf27NlTfP3HH39U+/bt3ZcWAAAAiJLjMPvqq6/q8OHDxdenTJmi3bt3F18/evSo1q1bF9vSAQAAABE4DrMlWyP8ylonAAAAIAlFNc4sAAAAkAwch1mfzyefz1dqGQAAAJAojofmsixLV1xxhdLT0yVJhw4d0siRI1WzZk1JCmpPCwAAAFQEx2F2+PDhQdeHDh1aap1hw4aVv0QAAACAQ47D7Jw5c+JZDgAAAMA1OoABAADAswizAAAA8CzCLAAAADyLMAsAAADPIswCAADAswizAAAA8CzCLAAAADyLMAsAAADPIswCAADAswizAAAA8CzCLAAAADyLMAsAAADPIswCAADAswizAAAA8CzCLAAAADyLMAsAAADPIswCAADAswizAAAA8CzCLAAAADyLMAsAAADPIswCAADAswizAAAA8CzCLAAAADyLMAsAAADPIswCAADAswizAAAA8CzCLAAAADyLMAsAAADPIswCAADAswizAAAA8CzCLAAAADyLMAsAAADPIswCAADAswizAAAA8CzCLAAAADyLMAsAAADPIswCAADAswizAAAA8CzCLAAAADyLMAsAAADPIswCAADAswizAAAA8CzCLAAAADyLMAsAAADPIswCAADAswizAAAA8CzCLAAAADyLMAsAAADPIswCAADAswizAAAA8CzCLAAAADyLMAsAAADPIswCAADAswizAAAA8CzCLAAAADyLMAsAAADPIswCAADAswizAAAA8CzCLAAAADyLMAsAAADPIswCAADAswizAAAA8CzCLAAAADyLMAsAAADPIswCAADAswizAAAA8CzCLAAAADyLMAsAAADPIswCAADAswizAAAA8CzCLAAAADyLMAsAAADPIswCAADAswizAAAA8CzCLAAAADyLMAsAAADPIswCAADAswizAAAA8CzCLAAAADyLMAsAAADPIswCAADAswizAAAA8CzCLAAAADyLMAsAAADPIswCAADAswizAAAA8CzCLAAAADyLMAsAAADPIswCAADAswizAAAA8CzCLAAAADyLMAsAAADPIswCAADAswizAAAA8KykCLMzZsxQTk6OqlWrph49euiDDz4Iu+7jjz+uXr16qV69eqpXr5769OkTcX0AAABUXgkPswsWLFBeXp4mTZqkNWvWKDc3V3379tWOHTtCrr9y5UoNGTJEK1as0Lvvvqvs7Gydc8452rJlSwWXHAAAAInmsyzLSmQBevTooZNOOkmPPPKIJKmoqEjZ2dm67rrrNH78+DLvX1hYqHr16umRRx7RsGHDylx/3759ysjI0N69e1WnTp1ylx8AAACx5SavJbRm9siRI1q9erX69OlTvCwlJUV9+vTRu+++62gbBw4c0C+//KL69euHvP3w4cPat29f0AkAAACVQ0LD7K5d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6pZbblGbNm20ZMkSdejQIVEPIaL09HRNmjSpVFMHxBbPc8Xgea4YPM/xx3NcMXieK8av/XlO+DizAAAAQLQSPgMYAAAAEC3CLAAAADyLMAsAAADPIswCAADAswizcTZjxgzl5OSoWrVq6tGjhz744INEF6lSefPNN9WvXz81a9ZMPp9PS5YsSXSRKp2pU6fqpJNOUu3atdW4cWMNGDBA69atS3SxKp1HH31UnTp1Kh70vGfPnvrPf/6T6GJVenfffbd8Pp/GjBmT6KJUKnfccYd8Pl/QqW3btokuVqWzZcsWDR06VA0aNFD16tXVsWNHffTRR4kuVoUjzMbRggULlJeXp0mTJmnNmjXKzc1V3759tWPHjkQXrdIoKChQbm6uZsyYkeiiVFpvvPGGRo0apffee0+vv/66fvnlF51zzjkqKChIdNEqlaysLN19991avXq1PvroI5155pnq37+/Pv/880QXrdL68MMP9fe//12dOnVKdFEqpRNOOEFbt24tPr399tuJLlKl8tNPP+nUU09V1apV9Z///EdffPGF7r//ftWrVy/RRatwDM0VRz169NBJJ52kRx55RJKZ3Sw7O1vXXXedxo8fn+DSVT4+n08vvviiBgwYkOiiVGo7d+5U48aN9cYbb+g3v/lNootTqdWvX1/33nuvrrrqqkQXpdLZv3+/unTpopkzZ+qvf/2rTjzxRE2fPj3Rxao07rjjDi1ZskT5+fmJLkqlNX78eK1atUpvvfVWoouScNTMxsmRI0e0evVq9enTp3hZSkqK+vTpo3fffTeBJQPKZ+/evZJM0EJ8FBYW6rnnnlNBQQFTdcfJqFGjdP755wd9RyO2NmzYoGbNmqlVq1a67LLLtHnz5kQXqVL55z//qW7duul3v/udGjdurM6dO+vxxx9PdLESgjAbJ7t27VJhYWHxTGa2zMxMbdu2LUGlAsqnqKhIY8aM0amnnpq0s+552aeffqpatWopPT1dI0eO1Isvvqj27dsnuliVznPPPac1a9YUT5OO2OvRo4fmzp2rpUuX6tFHH9WmTZvUq1cv/fzzz4kuWqWxceNGPfroo2rTpo1effVVXXPNNbr++us1b968RBetwiV8OlsA3jFq1Ch99tlntH2Lk+OPP175+fnau3evXnjhBQ0fPlxvvPEGgTaGvvvuO40ePVqvv/66qlWrlujiVFq//e1viy936tRJPXr0UMuWLbVw4UKazcRIUVGRunXrpilTpkiSOnfurM8++0yzZs3S8OHDE1y6ikXNbJw0bNhQqamp2r59e9Dy7du3q0mTJgkqFRC9a6+9Vv/+97+1YsUKZWVlJbo4lVJaWppat26trl27aurUqcrNzdWDDz6Y6GJVKqtXr9aOHTvUpUsXValSRVWqVNEbb7yhhx56SFWqVFFhYWGii1gp1a1bV8cdd5y++uqrRBel0mjatGmpP7rt2rX7VTbnIMzGSVpamrp27arly5cXLysqKtLy5ctpAwdPsSxL1157rV588UX997//1THHHJPoIv1qFBUV6fDhw4kuRqVy1lln6dNPP1V+fn7xqVu3brrsssuUn5+v1NTURBexUtq/f7++/vprNW3aNNFFqTROPfXUUsMkrl+/Xi1btkxQiRKHZgZxlJeXp+HDh6tbt27q3r27pk+froKCAo0YMSLRRas09u/fH/RPf9OmTcrPz1f9+vXVokWLBJas8hg1apTmz5+vl156SbVr1y5u852RkaHq1asnuHSVx4QJE/Tb3/5WLVq00M8//6z58+dr5cqVevXVVxNdtEqldu3apdp716xZUw0aNKAdeAyNGzdO/fr1U8uWLfXDDz9o0qRJSk1N1ZAhQxJdtEpj7NixOuWUUzRlyhRdcskl+uCDD/TYY4/pscceS3TRKp6FuHr44YetFi1aWGlpaVb37t2t9957L9FFqlRWrFhhSSp1Gj58eKKLVmmEen4lWXPmzEl00SqVK6+80mrZsqWVlpZmNWrUyDrrrLOs1157LdHF+lU4/fTTrdGjRye6GJXK4MGDraZNm1ppaWlW8+bNrcGDB1tfffVVootV6fzrX/+yOnToYKWnp1tt27a1HnvssUQXKSEYZxYAAACeRZtZAAAAeBZhFgAAAJ5FmAUAAIBnEWYBAADgWYRZAAAAeBZhFgAAAJ5FmAUAAIBnEWYBAADgWYRZAL9qZ5xxhsaMGRNxnZycHE2fPr1CylOWO+64QyeeeGK5t/Pjjz+qcePG+uabb8q9rbKsXLlSPp9Pe/bskSTNnTtXdevWjek+du3apcaNG+v777+P6XYBJD/CLABPuuKKK+Tz+eTz+VS1alUdc8wxuummm3To0KGY7+vDDz/UH//4xzLX+/7775WWlqYOHTrEvAyxdtddd6l///7KycmRJH3zzTfFz6fP51P9+vV1+umn66233or5vgcPHqz169fHdJsNGzbUsGHDNGnSpJhuF0DyI8wC8Kxzzz1XW7du1caNG/XAAw/o73//e1zCTKNGjVSjRo0y15s7d64uueQS7du3T++//37MyxErBw4c0JNPPqmrrrqq1G3Lli3T1q1b9eabb6pZs2a64IILtH379pjuv3r16mrcuHFMtylJI0aM0LPPPqvdu3fHfNsAkhdhFoBnpaenq0mTJsrOztaAAQPUp08fvf7668W3//jjjxoyZIiaN2+uGjVqqGPHjvrHP/5RajtHjx7Vtddeq4yMDDVs2FC33XabLMsqvt1JMwPLsjRnzhxdfvnluvTSS/Xkk08G3W7XfC5evFi9e/dWjRo1lJubq3fffTdovccff1zZ2dmqUaOGLrroIk2bNq3MQ/JPPPGE2rVrp2rVqqlt27aaOXNmxPVfeeUVpaen6+STTy51W4MGDdSkSRN16NBBt9xyS6lg/vTTT6tbt26qXbu2mjRpoksvvVQ7duwotf3jjjtO1atXV+/evUs1ZSjZzODrr79W//79lZmZqVq1aumkk07SsmXLgu6Tk5OjKVOm6Morr1Tt2rXVokULPfbYY0HrnHDCCWrWrJlefPHFiI8fQOVCmAVQKXz22Wd65513lJaWVrzs0KFD6tq1q15++WV99tln+uMf/6jLL79cH3zwQdB9582bpypVquiDDz7Qgw8+qGnTpumJJ55wtf8VK1bowIED6tOnj4YOHarnnntOBQUFpda79dZbNW7cOOXn5+u4447TkCFDdPToUUnSqlWrNHLkSI0ePVr5+fk6++yzddddd0Xc77PPPqvbb79dd911l9auXaspU6botttu07x588Le56233lLXrl0jbvfgwYN66qmnJCnoOf3ll19055136pNPPtGSJUv0zTff6Iorrii+/bvvvtPAgQPVr18/5efn6+qrr9b48eMj7mv//v0677zztHz5cn388cc699xz1a9fP23evDlovfvvv1/dunXTxx9/rD//+c+65pprtG7duqB1unfvHpemEQCSmAUAHjR8+HArNTXVqlmzppWenm5JslJSUqwXXngh4v3OP/9864Ybbii+fvrpp1vt2rWzioqKipfdfPPNVrt27Yqvt2zZ0nrggQcibvfSSy+1xowZU3w9NzfXmjNnTvH1TZs2WZKsJ554onjZ559/bkmy1q5da1mWZQ0ePNg6//zzg7Z72WWXWRkZGcXXJ02aZOXm5hZfP/bYY6358+cH3efOO++0evbsGbas/fv3t6688sqgZXb5qlevbtWsWdPy+XyWJKtr167WkSNHwm7rww8/tCRZP//8s2VZljVhwgSrffv2QevcfPPNliTrp59+sizLsubMmRP0mEI54YQTrIcffrj4esuWLa2hQ4cWXy8qKrIaN25sPfroo0H3Gzt2rHXGGWdE3DaAyoWaWQCe1bt3b+Xn5+v999/X8OHDNWLECF188cXFtxcWFurOO+9Ux44dVb9+fdWqVUuvvvpqqRq/k08+WT6fr/h6z549tWHDBhUWFjoqx549e7R48WINHTq0eNnQoUNLNTWQpE6dOhVfbtq0qSQVH6Zft26dunfvHrR+yeuBCgoK9PXXX+uqq65SrVq1ik9//etf9fXXX4e938GDB1WtWrWQty1YsEAff/yxFi1apNatW2vu3LmqWrVq8e2rV69Wv3791KJFC9WuXVunn366JBU/p2vXrlWPHj2CttmzZ8+wZZFMzey4cePUrl071a1bV7Vq1dLatWtLvU6Bz53P51OTJk1KNXGoXr26Dhw4EHF/ACqXKokuAABEq2bNmmrdurUkafbs2crNzQ3q2HTvvffqwQcf1PTp09WxY0fVrFlTY8aM0ZEjR2Jajvnz5+vQoUNBIc6yLBUVFWn9+vU67rjjipcHBkM7QBcVFUW13/3790sy7WxLBsjU1NSw92vYsKF++umnkLdlZ2erTZs2atOmjY4ePaqLLrpIn332mdLT01VQUKC+ffuqb9++evbZZ9WoUSNt3rxZffv2LddzOm7cOL3++uu677771Lp1a1WvXl2DBg0qtc3A504yz1/J52737t1q1KhR1GUB4D3UzAKoFFJSUnTLLbdo4sSJOnjwoCTTBrV///4aOnSocnNz1apVq5BDQpUceeC9995TmzZtIgbCQE8++aRuuOEG5efnF58++eQT9erVS7Nnz3b8GI4//nh9+OGHQctKXg+UmZmpZs2aaePGjWrdunXQ6Zhjjgl7v86dO+uLL74oszyDBg1SlSpVijuUffnll/rxxx919913q1evXmrbtm2pmtF27dqVapP83nvvRdzPqlWrdMUVV+iiiy5Sx44d1aRJk6jHv/3ss8/UuXPnqO4LwJsIswAqjd/97ndKTU3VjBkzJElt2rTR66+/rnfeeUdr167Vn/70p5DDTG3evFl5eXlat26d/vGPf+jhhx/W6NGjHe0zPz9fa9as0dVXX60OHToEnYYMGaJ58+YVd/Aqy3XXXadXXnlF06ZN04YNG/T3v/9d//nPf4KaQJQ0efJkTZ06VQ899JDWr1+vTz/9VHPmzNG0adPC3qdv3776/PPPw9bO2nw+n66//nrdfffdOnDggFq0aKG0tDQ9/PDD2rhxo/75z3/qzjvvDLrPyJEjtWHDBt14441at26d5s+fr7lz50bcT5s2bbR48eLiPwGXXnppVLXVBw4c0OrVq3XOOee4vi8A7yLMAqg0qlSpomuvvVb33HOPCgoKNHHiRHXp0kV9+/bVGWecoSZNmmjAgAGl7jds2DAdPHhQ3bt316hRozR69GhHkyRIpla2ffv2atu2banbLrroIu3YsUOvvPKKo22deuqpmjVrlqZNm6bc3FwtXbpUY8eODdu+VZKuvvpqPfHEE5ozZ446duyo008/XXPnzo1YM9uxY0d16dJFCxcuLLNMw4cP1y+//KJHHnlEjRo10ty5c/X888+rffv2uvvuu3XfffcFrd+iRQstWrRIS5YsUW5urmbNmqUpU6ZE3Me0adNUr149nXLKKerXr5/69u2rLl26lFm2kl566SW1aNFCvXr1cn1fAN7ls6yAwRQBAEnlD3/4g7788suYDzf18ssv68Ybb9Rnn32mlJTKUa9x8skn6/rrr9ell16a6KIAqEB0AAOAJHLffffp7LPPVs2aNfWf//xH8+bNK3MShGicf/752rBhg7Zs2aLs7OyYb7+i7dq1SwMHDtSQIUMSXRQAFYyaWQBIIpdccolWrlypn3/+Wa1atdJ1112nkSNHJrpYAJC0CLMAAADwrMrRUAoAAAC/SoRZAAAAeBZhFgAAAJ5FmAUAAIBnEWYBAADgWYRZAAAAeBZhFgAAAJ5FmAUAAIBn/R86ffaOaxvybQAAAABJRU5ErkJggg==\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"q = list(cirq_google.Sycamore.metadata.qubit_set)[3]\n",
"print(\"qubit\", repr(q))\n",
"rabi_oscillations(sampler=secret_noise_sampler, qubit=q).plot()"
]
}
],
"metadata": {
"colab": {
"collapsed_sections": [
"V6uE-yFxoT-3"
],
"name": "rabi_oscillations.ipynb",
"toc_visible": true
},
"kernelspec": {
"display_name": "Python 3",
"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.9.16"
}
},
"nbformat": 4,
"nbformat_minor": 0
}