|
153 | 153 | " <tr>\n",
|
154 | 154 | " <td style=\"text-align:center; border:1px solid\">$\\text{CNOT}$</td>\n",
|
155 | 155 | " <td style=\"text-align:center; border:1px solid\">$\\begin{bmatrix} 1 & 0 & 0 & 0 \\\\ 0 & 1 & 0 & 0 \\\\ 0 & 0 & 0 & 1 \\\\ 0 & 0 & 1 & 0 \\end{bmatrix}$</td>\n",
|
156 |
| - " <td style=\"text-align:center; border:1px solid\">$\\text{CNOT}|\\psi\\rangle = \\alpha|00\\rangle + \\beta|01\\rangle + \\color{red}\\delta|10\\rangle + \\color{red}\\gamma|11\\rangle$</td>\n", |
157 |
| - " <td style=\"text-align:center; border:1px solid\">$\\text{CNOT}|00\\rangle = |00\\rangle \\\\\n", |
158 |
| - " \\text{CNOT}|01\\rangle = |01\\rangle \\\\\n", |
159 |
| - " \\text{CNOT}|10\\rangle = |11\\rangle \\\\\n", |
| 156 | + " <td style=\"text-align:center; border:1px solid\">$\\text{CNOT}|\\psi\\rangle = \\alpha|00\\rangle + \\beta|01\\rangle + {\\color{red}\\delta}|10\\rangle + {\\color{red}\\gamma}|11\\rangle$</td>\n", |
| 157 | + " <td style=\"text-align:center; border:1px solid\">$\\text{CNOT}|00\\rangle = |00\\rangle$<\\br>$\n", |
| 158 | + " \\text{CNOT}|01\\rangle = |01\\rangle$<\\br>$\n", |
| 159 | + " \\text{CNOT}|10\\rangle = |11\\rangle$<\\br>$\n", |
160 | 160 | " \\text{CNOT}|11\\rangle = |10\\rangle$</td>\n",
|
161 | 161 | " <td style=\"text-align:center; border:1px solid\"><a href=\"https://docs.microsoft.com/qsharp/api/qsharp/microsoft.quantum.intrinsic.cnot\">CNOT</a></td>\n",
|
162 | 162 | " </tr>\n",
|
|
225 | 225 | "\n",
|
226 | 226 | "Let's consider ket-bra representation of the $\\text{CNOT}$ gate:\n",
|
227 | 227 | "\n",
|
228 |
| - "$$\\text{CNOT} = |00\\rangle\\langle00| + |01\\rangle\\langle01| + |10\\rangle\\langle11| + |11\\rangle\\langle10| = \\\\\n", |
229 |
| - "= \\begin{bmatrix} 1 \\\\ 0 \\\\ 0 \\\\ 0 \\end{bmatrix}\\begin{bmatrix} 1 & 0 & 0 & 0 \\end{bmatrix} +\n", |
| 228 | + "$$\\text{CNOT} = |00\\rangle\\langle00| + |01\\rangle\\langle01| + |10\\rangle\\langle11| + |11\\rangle\\langle10| =$$\n", |
| 229 | + "$$= \\begin{bmatrix} 1 \\\\ 0 \\\\ 0 \\\\ 0 \\end{bmatrix}\\begin{bmatrix} 1 & 0 & 0 & 0 \\end{bmatrix} +\n", |
230 | 230 | "\\begin{bmatrix} 0 \\\\ 1 \\\\ 0 \\\\ 0 \\end{bmatrix}\\begin{bmatrix} 0 & 1 & 0 & 0 \\end{bmatrix} +\n",
|
231 | 231 | "\\begin{bmatrix} 0 \\\\ 0 \\\\ 1 \\\\ 0 \\end{bmatrix}\\begin{bmatrix} 0 & 0 & 0 & 1 \\end{bmatrix} +\n",
|
232 |
| - "\\begin{bmatrix} 0 \\\\ 0 \\\\ 0 \\\\ 1 \\end{bmatrix}\\begin{bmatrix} 0 & 0 & 1 & 0 \\end{bmatrix} = \\\\ =\n", |
233 |
| - "\\begin{bmatrix} 1 & 0 & 0 & 0 \\\\ 0 & 0 & 0 & 0 \\\\ 0 & 0 & 0 & 0 \\\\ 0 & 0 & 0 & 0 \\\\ \\end{bmatrix} + \n", |
| 232 | + "\\begin{bmatrix} 0 \\\\ 0 \\\\ 0 \\\\ 1 \\end{bmatrix}\\begin{bmatrix} 0 & 0 & 1 & 0 \\end{bmatrix} =$$ \n", |
| 233 | + "$$=\\begin{bmatrix} 1 & 0 & 0 & 0 \\\\ 0 & 0 & 0 & 0 \\\\ 0 & 0 & 0 & 0 \\\\ 0 & 0 & 0 & 0 \\\\ \\end{bmatrix} + \n", |
234 | 234 | "\\begin{bmatrix} 0 & 0 & 0 & 0 \\\\ 0 & 1 & 0 & 0 \\\\ 0 & 0 & 0 & 0 \\\\ 0 & 0 & 0 & 0 \\\\ \\end{bmatrix} + \n",
|
235 | 235 | "\\begin{bmatrix} 0 & 0 & 0 & 0 \\\\ 0 & 0 & 0 & 0 \\\\ 0 & 0 & 0 & 1 \\\\ 0 & 0 & 0 & 0 \\\\ \\end{bmatrix} + \n",
|
236 | 236 | "\\begin{bmatrix} 0 & 0 & 0 & 0 \\\\ 0 & 0 & 0 & 0 \\\\ 0 & 0 & 0 & 0 \\\\ 0 & 0 & 1 & 0 \\\\ \\end{bmatrix} =\n",
|
|
239 | 239 | "This representation can be used to carry out calculations in Dirac notation without ever switching back to matrix representation:\n",
|
240 | 240 | "\n",
|
241 | 241 | "$$\\text{CNOT}|10\\rangle \n",
|
242 |
| - "= \\big(|00\\rangle\\langle00| + |01\\rangle\\langle01| + |10\\rangle\\langle11| + |11\\rangle\\langle10|\\big)|10\\rangle = \\\\\n", |
243 |
| - "= |00\\rangle\\langle00|10\\rangle + |01\\rangle\\langle01|10\\rangle + |10\\rangle\\langle11|10\\rangle + |11\\rangle\\langle10|10\\rangle = \\\\\n", |
244 |
| - "= |00\\rangle\\big(\\langle00|10\\rangle\\big) + |01\\rangle\\big(\\langle01|10\\rangle\\big) + |10\\rangle\\big(\\langle11|10\\rangle\\big) + |11\\rangle\\big(\\langle10|10\\rangle\\big) = \\\\\n", |
245 |
| - "= |00\\rangle(0) + |01\\rangle(0) + |10\\rangle(0) + |11\\rangle(1) = |11\\rangle$$\n", |
| 242 | + "= \\big(|00\\rangle\\langle00| + |01\\rangle\\langle01| + |10\\rangle\\langle11| + |11\\rangle\\langle10|\\big)|10\\rangle =$$\n", |
| 243 | + "$$= |00\\rangle\\langle00|10\\rangle + |01\\rangle\\langle01|10\\rangle + |10\\rangle\\langle11|10\\rangle + |11\\rangle\\langle10|10\\rangle =$$\n", |
| 244 | + "$$= |00\\rangle\\big(\\langle00|10\\rangle\\big) + |01\\rangle\\big(\\langle01|10\\rangle\\big) + |10\\rangle\\big(\\langle11|10\\rangle\\big) + |11\\rangle\\big(\\langle10|10\\rangle\\big) =$$\n", |
| 245 | + "$$= |00\\rangle(0) + |01\\rangle(0) + |10\\rangle(0) + |11\\rangle(1) = |11\\rangle$$\n", |
246 | 246 | "\n",
|
247 | 247 | "> Notice how a lot of the inner product terms turn out to equal 0, and our expression is easily simplified. We have expressed the CNOT gate in terms of outer product of computational basis states, which are orthonormal, and apply it to another computational basis state, so the individual inner products are going to always be 0 or 1. "
|
248 | 248 | ]
|
|
294 | 294 | "> * Two, as we can clearly see, are computational basis states $|00\\rangle$ and $|01\\rangle$ with eigen values $1$ and $1$, respectively (the basis states that are not affected by the gate). \n",
|
295 | 295 | "> * The other two are $|1\\rangle \\otimes |+\\rangle = \\frac{1}{\\sqrt{2}}\\big(|10\\rangle + |11\\rangle\\big)$ and $|1\\rangle \\otimes |-\\rangle = \\frac{1}{\\sqrt{2}}\\big(|10\\rangle - |11\\rangle\\big)$ with eigenvalues $1$ and $-1$, respectively:\n",
|
296 | 296 | ">\n",
|
297 |
| - "> $$\\text{CNOT}|0\\rangle \\otimes |0\\rangle = |0\\rangle \\otimes |1\\rangle \\\\\n", |
298 |
| - "\\text{CNOT}|0\\rangle \\otimes |1\\rangle = |0\\rangle \\otimes |1\\rangle \\\\\n", |
299 |
| - "\\text{CNOT}|1\\rangle \\otimes |+\\rangle = |1\\rangle \\otimes |+\\rangle \\\\\n", |
300 |
| - "\\text{CNOT}|1\\rangle \\otimes |-\\rangle = -|1\\rangle \\otimes |-\\rangle$$\n", |
| 297 | + "> $$\\text{CNOT}|0\\rangle \\otimes |0\\rangle = |0\\rangle \\otimes |1\\rangle$$\n", |
| 298 | + "$$\\text{CNOT}|0\\rangle \\otimes |1\\rangle = |0\\rangle \\otimes |1\\rangle$$\n", |
| 299 | + "$$\\text{CNOT}|1\\rangle \\otimes |+\\rangle = |1\\rangle \\otimes |+\\rangle$$\n", |
| 300 | + "$$\\text{CNOT}|1\\rangle \\otimes |-\\rangle = -|1\\rangle \\otimes |-\\rangle$$\n", |
301 | 301 | ">\n",
|
302 | 302 | "> Here's what the decomposition looks like:\n",
|
303 | 303 | ">\n",
|
|
306 | 306 | "= |00\\rangle\\langle00| + |01\\rangle\\langle01| + \n",
|
307 | 307 | "\\frac{1}{2}\\big[\\big(|10\\rangle + |11\\rangle\\big)\\big(\\langle10| + \\langle11|\\big) - \\big(|10\\rangle - |11\\rangle\\big)\\big(\\langle10| - \\langle11|\\big)\\big] = \\\\\n",
|
308 | 308 | "= |00\\rangle\\langle00| + |01\\rangle\\langle01| +\n",
|
309 |
| - "\\frac{1}{2}\\big(\\color{red}{|10\\rangle\\langle10|} + |10\\rangle\\langle11| + |11\\rangle\\langle10| + \\color{red}{|11\\rangle\\langle11|} - \\color{red}{|10\\rangle\\langle10|} + |10\\rangle\\langle11| + |11\\rangle\\langle10| - \\color{red}{|11\\rangle\\langle11|}\\big) = \\\\\n", |
| 309 | + "\\frac{1}{2}\\big({\\color{red}{|10\\rangle\\langle10|}} + |10\\rangle\\langle11| + |11\\rangle\\langle10| + {\\color{red}{|11\\rangle\\langle11|}} - {\\color{red}{|10\\rangle\\langle10|}} + |10\\rangle\\langle11| + |11\\rangle\\langle10| - {\\color{red}{|11\\rangle\\langle11|}}\\big) = \\\\\n", |
310 | 310 | "= |00\\rangle\\langle00| + |01\\rangle\\langle01| + \\frac{1}{2}\\big(2|10\\rangle\\langle11| + 2|11\\rangle\\langle10|\\big) = \\\\ \n",
|
311 | 311 | "= |00\\rangle\\langle00| + |01\\rangle\\langle01| + |10\\rangle\\langle11| + |11\\rangle\\langle10|$$"
|
312 | 312 | ]
|
|
0 commit comments