|
a |
|
b/Code/Cirq/01 Cirq Circuit Info kkawchak.ipynb |
|
|
1 |
{ |
|
|
2 |
"nbformat": 4, |
|
|
3 |
"nbformat_minor": 0, |
|
|
4 |
"metadata": { |
|
|
5 |
"colab": { |
|
|
6 |
"provenance": [] |
|
|
7 |
}, |
|
|
8 |
"kernelspec": { |
|
|
9 |
"name": "python3", |
|
|
10 |
"display_name": "Python 3" |
|
|
11 |
}, |
|
|
12 |
"language_info": { |
|
|
13 |
"name": "python" |
|
|
14 |
} |
|
|
15 |
}, |
|
|
16 |
"cells": [ |
|
|
17 |
{ |
|
|
18 |
"cell_type": "code", |
|
|
19 |
"execution_count": 1, |
|
|
20 |
"metadata": { |
|
|
21 |
"id": "D7avgus1L7Ea", |
|
|
22 |
"colab": { |
|
|
23 |
"base_uri": "https://localhost:8080/", |
|
|
24 |
"height": 0 |
|
|
25 |
}, |
|
|
26 |
"outputId": "0fc4bfbb-3230-4e8e-ee0f-7ddee24dff28" |
|
|
27 |
}, |
|
|
28 |
"outputs": [ |
|
|
29 |
{ |
|
|
30 |
"output_type": "stream", |
|
|
31 |
"name": "stdout", |
|
|
32 |
"text": [ |
|
|
33 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.8/1.8 MB\u001b[0m \u001b[31m14.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
34 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m142.7/142.7 kB\u001b[0m \u001b[31m17.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
35 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m579.1/579.1 kB\u001b[0m \u001b[31m37.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
36 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m58.2/58.2 kB\u001b[0m \u001b[31m6.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
37 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m66.5/66.5 kB\u001b[0m \u001b[31m8.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
38 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m596.4/596.4 kB\u001b[0m \u001b[31m56.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
39 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m221.0/221.0 kB\u001b[0m \u001b[31m25.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
40 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m229.9/229.9 kB\u001b[0m \u001b[31m26.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
41 |
"\u001b[?25h Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n", |
|
|
42 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.0/2.0 MB\u001b[0m \u001b[31m81.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
43 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m151.7/151.7 kB\u001b[0m \u001b[31m20.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
44 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m45.6/45.6 kB\u001b[0m \u001b[31m4.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
45 |
"\u001b[?25h Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n", |
|
|
46 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.6/1.6 MB\u001b[0m \u001b[31m75.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
47 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m151.7/151.7 kB\u001b[0m \u001b[31m20.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
48 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m151.7/151.7 kB\u001b[0m \u001b[31m19.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
49 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m147.4/147.4 kB\u001b[0m \u001b[31m18.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
50 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m147.4/147.4 kB\u001b[0m \u001b[31m19.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
51 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m147.4/147.4 kB\u001b[0m \u001b[31m18.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
52 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m142.7/142.7 kB\u001b[0m \u001b[31m19.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
53 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m142.7/142.7 kB\u001b[0m \u001b[31m15.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
54 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m101.2/101.2 kB\u001b[0m \u001b[31m13.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
55 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m83.4/83.4 kB\u001b[0m \u001b[31m11.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
56 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m83.2/83.2 kB\u001b[0m \u001b[31m10.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
57 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m82.5/82.5 kB\u001b[0m \u001b[31m9.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
58 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m81.0/81.0 kB\u001b[0m \u001b[31m10.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
59 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m81.0/81.0 kB\u001b[0m \u001b[31m10.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
60 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m80.8/80.8 kB\u001b[0m \u001b[31m11.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
61 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m80.7/80.7 kB\u001b[0m \u001b[31m10.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
62 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m81.5/81.5 kB\u001b[0m \u001b[31m10.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
63 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m90.4/90.4 kB\u001b[0m \u001b[31m12.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
64 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m57.5/57.5 kB\u001b[0m \u001b[31m7.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
65 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m60.6/60.6 kB\u001b[0m \u001b[31m8.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
66 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m71.5/71.5 kB\u001b[0m \u001b[31m9.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
67 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m98.7/98.7 kB\u001b[0m \u001b[31m11.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
68 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.7/1.7 MB\u001b[0m \u001b[31m65.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
69 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m112.2/112.2 kB\u001b[0m \u001b[31m14.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
70 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m69.6/69.6 kB\u001b[0m \u001b[31m9.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
71 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m485.6/485.6 kB\u001b[0m \u001b[31m47.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
72 |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m58.3/58.3 kB\u001b[0m \u001b[31m7.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", |
|
|
73 |
"\u001b[?25h Building wheel for lark (setup.py) ... \u001b[?25l\u001b[?25hdone\n", |
|
|
74 |
" Building wheel for rpcq (setup.py) ... \u001b[?25l\u001b[?25hdone\n", |
|
|
75 |
"\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.\n", |
|
|
76 |
"referencing 0.30.2 requires attrs>=22.2.0, but you have attrs 21.4.0 which is incompatible.\u001b[0m\u001b[31m\n", |
|
|
77 |
"\u001b[0m" |
|
|
78 |
] |
|
|
79 |
} |
|
|
80 |
], |
|
|
81 |
"source": [ |
|
|
82 |
"# !pip install cirq --quiet # run once" |
|
|
83 |
] |
|
|
84 |
}, |
|
|
85 |
{ |
|
|
86 |
"cell_type": "code", |
|
|
87 |
"source": [ |
|
|
88 |
"import cirq\n", |
|
|
89 |
"from cirq.contrib.svg import SVGCircuit\n", |
|
|
90 |
"\n", |
|
|
91 |
"# Create a circuit\n", |
|
|
92 |
"circuit = cirq.Circuit()\n", |
|
|
93 |
"\n", |
|
|
94 |
"# Add gates and measurements to the circuit\n", |
|
|
95 |
"circuit.append(cirq.ry(0.7).on(cirq.GridQubit(0, 0)))\n", |
|
|
96 |
"circuit.append(cirq.CNOT(cirq.GridQubit(0, 0), cirq.GridQubit(0, 1)))\n", |
|
|
97 |
"circuit.append(cirq.measure(cirq.GridQubit(0, 0), key='0'))\n", |
|
|
98 |
"circuit.append(cirq.measure(cirq.GridQubit(0, 1), key='1'))\n", |
|
|
99 |
"\n", |
|
|
100 |
"# Print the circuit\n", |
|
|
101 |
"print(circuit)\n", |
|
|
102 |
"\n", |
|
|
103 |
"# Create an SVGCircuit object and display it\n", |
|
|
104 |
"svg = SVGCircuit(circuit)\n", |
|
|
105 |
"display(svg)" |
|
|
106 |
], |
|
|
107 |
"metadata": { |
|
|
108 |
"colab": { |
|
|
109 |
"base_uri": "https://localhost:8080/", |
|
|
110 |
"height": 306 |
|
|
111 |
}, |
|
|
112 |
"id": "lcrQHMBnMgTz", |
|
|
113 |
"outputId": "ae2857ef-03e3-4637-bdd2-7fed5bbe713d" |
|
|
114 |
}, |
|
|
115 |
"execution_count": 2, |
|
|
116 |
"outputs": [ |
|
|
117 |
{ |
|
|
118 |
"output_type": "stream", |
|
|
119 |
"name": "stderr", |
|
|
120 |
"text": [ |
|
|
121 |
"WARNING:matplotlib.font_manager:findfont: Font family 'Arial' not found.\n", |
|
|
122 |
"WARNING:matplotlib.font_manager:findfont: Font family 'Arial' not found.\n", |
|
|
123 |
"WARNING:matplotlib.font_manager:findfont: Font family 'Arial' not found.\n", |
|
|
124 |
"WARNING:matplotlib.font_manager:findfont: Font family 'Arial' not found.\n", |
|
|
125 |
"WARNING:matplotlib.font_manager:findfont: Font family 'Arial' not found.\n", |
|
|
126 |
"WARNING:matplotlib.font_manager:findfont: Font family 'Arial' not found.\n", |
|
|
127 |
"WARNING:matplotlib.font_manager:findfont: Font family 'Arial' not found.\n" |
|
|
128 |
] |
|
|
129 |
}, |
|
|
130 |
{ |
|
|
131 |
"output_type": "stream", |
|
|
132 |
"name": "stdout", |
|
|
133 |
"text": [ |
|
|
134 |
"(0, 0): ───Ry(0.223π)───@───M('0')───\n", |
|
|
135 |
" │\n", |
|
|
136 |
"(0, 1): ────────────────X───M('1')───\n" |
|
|
137 |
] |
|
|
138 |
}, |
|
|
139 |
{ |
|
|
140 |
"output_type": "display_data", |
|
|
141 |
"data": { |
|
|
142 |
"text/plain": [ |
|
|
143 |
"<cirq.contrib.svg.svg.SVGCircuit at 0x793b757886d0>" |
|
|
144 |
], |
|
|
145 |
"image/svg+xml": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"340.6462890625\" height=\"100.0\"><line x1=\"34.7588671875\" x2=\"310.6462890625\" y1=\"25.0\" y2=\"25.0\" stroke=\"#1967d2\" stroke-width=\"1\" /><line x1=\"34.7588671875\" x2=\"310.6462890625\" y1=\"75.0\" y2=\"75.0\" stroke=\"#1967d2\" stroke-width=\"1\" /><line x1=\"203.61546875\" x2=\"203.61546875\" y1=\"25.0\" y2=\"75.0\" stroke=\"black\" stroke-width=\"3\" /><rect x=\"10.0\" y=\"5.0\" width=\"49.517734375\" height=\"40\" stroke=\"black\" fill=\"white\" stroke-width=\"0\" /><text x=\"34.7588671875\" y=\"25.0\" dominant-baseline=\"middle\" text-anchor=\"middle\" font-size=\"14px\" font-family=\"Arial\">(0, 0): </text><rect x=\"10.0\" y=\"55.0\" width=\"49.517734375\" height=\"40\" stroke=\"black\" fill=\"white\" stroke-width=\"0\" /><text x=\"34.7588671875\" y=\"75.0\" dominant-baseline=\"middle\" text-anchor=\"middle\" font-size=\"14px\" font-family=\"Arial\">(0, 1): </text><rect x=\"79.517734375\" y=\"5.0\" width=\"84.097734375\" height=\"40\" stroke=\"black\" fill=\"white\" stroke-width=\"1\" /><text x=\"121.56660156250001\" y=\"25.0\" dominant-baseline=\"middle\" text-anchor=\"middle\" font-size=\"14px\" font-family=\"Arial\">Ry(0.223π)</text><circle cx=\"203.61546875\" cy=\"25.0\" r=\"10.0\" /><rect x=\"183.61546875\" y=\"55.0\" width=\"40\" height=\"40\" stroke=\"black\" fill=\"white\" stroke-width=\"1\" /><text x=\"203.61546875\" y=\"75.0\" dominant-baseline=\"middle\" text-anchor=\"middle\" font-size=\"18px\" font-family=\"Arial\">X</text><rect x=\"243.61546875000002\" y=\"5.0\" width=\"47.0308203125\" height=\"40\" stroke=\"black\" fill=\"white\" stroke-width=\"1\" /><text x=\"267.13087890625\" y=\"25.0\" dominant-baseline=\"middle\" text-anchor=\"middle\" font-size=\"14px\" font-family=\"Arial\">M('0')</text><rect x=\"243.61546875000002\" y=\"55.0\" width=\"47.0308203125\" height=\"40\" stroke=\"black\" fill=\"white\" stroke-width=\"1\" /><text x=\"267.13087890625\" y=\"75.0\" dominant-baseline=\"middle\" text-anchor=\"middle\" font-size=\"14px\" font-family=\"Arial\">M('1')</text></svg>" |
|
|
146 |
}, |
|
|
147 |
"metadata": {} |
|
|
148 |
} |
|
|
149 |
] |
|
|
150 |
}, |
|
|
151 |
{ |
|
|
152 |
"cell_type": "code", |
|
|
153 |
"source": [ |
|
|
154 |
"print(\"All operations in the circuit:\")\n", |
|
|
155 |
"for moment in circuit:\n", |
|
|
156 |
" for op in moment.operations:\n", |
|
|
157 |
" print(op)" |
|
|
158 |
], |
|
|
159 |
"metadata": { |
|
|
160 |
"colab": { |
|
|
161 |
"base_uri": "https://localhost:8080/", |
|
|
162 |
"height": 0 |
|
|
163 |
}, |
|
|
164 |
"id": "6X2R4IA-5_Em", |
|
|
165 |
"outputId": "05518a54-8798-431b-be7b-67b2ac8b4f30" |
|
|
166 |
}, |
|
|
167 |
"execution_count": 3, |
|
|
168 |
"outputs": [ |
|
|
169 |
{ |
|
|
170 |
"output_type": "stream", |
|
|
171 |
"name": "stdout", |
|
|
172 |
"text": [ |
|
|
173 |
"All operations in the circuit:\n", |
|
|
174 |
"Ry(0.22281692032865347π)(q(0, 0))\n", |
|
|
175 |
"CNOT(q(0, 0), q(0, 1))\n", |
|
|
176 |
"cirq.MeasurementGate(1, cirq.MeasurementKey(name='0'), ())(q(0, 0))\n", |
|
|
177 |
"cirq.MeasurementGate(1, cirq.MeasurementKey(name='1'), ())(q(0, 1))\n" |
|
|
178 |
] |
|
|
179 |
} |
|
|
180 |
] |
|
|
181 |
} |
|
|
182 |
] |
|
|
183 |
} |