{
"cells": [
{
"cell_type": "markdown",
"id": "29990c15",
"metadata": {},
"source": [
"# CHSH experiment"
]
},
{
"cell_type": "markdown",
"id": "c1e5e2ac",
"metadata": {},
"source": [
"In this notebook, we aim to reproduce the $\\mathsf{CNOT}$ Gate to \n",
"evaluate its performance while demonstrating key features of Perceval. We use as basis the implementation from [[1]](#Reference)."
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "bb751c13",
"metadata": {},
"outputs": [],
"source": [
"import math\n",
"\n",
"import perceval as pcvl"
]
},
{
"cell_type": "markdown",
"id": "cb91de5c",
"metadata": {},
"source": [
"### Ralph CNOT Gate"
]
},
{
"cell_type": "markdown",
"id": "d1d6cd32",
"metadata": {},
"source": [
"We start by building the circuit as defined by the paper above - it is a circuit on six modes (labelled from 0 to 5 from top to bottom) consisting of five beam splitters. Modes 0 and 1 contain the control system while modes 2 and 3 encode the target system. Modes 4 and 5 are unoccupied ancillary modes (they are not displayed, but they are required)."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "edafa605",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"\n",
""
],
"text/plain": [
""
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p = pcvl.catalog['postprocessed cnot'].build_processor()\n",
"\n",
"pcvl.pdisplay(p, recursive=True)"
]
},
{
"cell_type": "markdown",
"id": "0290b85a",
"metadata": {
"collapsed": false
},
"source": [
"Simulations will run on this circuit, using four different input states corresponding to the two-qubit computational basis states. The `Analyzer` is used to compute the gate performance."
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "87a00b53",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
00
01
10
11
\n",
"\n",
"\n",
"
00
1
0
0
0
\n",
"
01
0
1
0
0
\n",
"
10
0
0
0
1
\n",
"
11
0
0
1
0
\n",
"\n",
"
"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"performance = 1/9, fidelity = 100.0%\n"
]
}
],
"source": [
"states = {\n",
" pcvl.BasicState([1, 0, 1, 0]): \"00\",\n",
" pcvl.BasicState([1, 0, 0, 1]): \"01\",\n",
" pcvl.BasicState([0, 1, 1, 0]): \"10\",\n",
" pcvl.BasicState([0, 1, 0, 1]): \"11\"\n",
"}\n",
"\n",
"ca = pcvl.algorithm.Analyzer(p, states)\n",
"ca.compute(expected={\"00\": \"00\", \"01\": \"01\", \"10\": \"11\", \"11\": \"10\"})\n",
"pcvl.pdisplay(ca)\n",
"print(f\"performance = {pcvl.simple_float(ca.performance)[1]}, fidelity = {ca.fidelity*100}%\")"
]
},
{
"cell_type": "markdown",
"id": "0cd5fcf4",
"metadata": {},
"source": [
"Beyond the actual logic function, what is interesting with this gate us that it produces entangled states that we will be trying to check with CHSH experiment when the source is not perfect."
]
},
{
"cell_type": "markdown",
"id": "c0fb4c12",
"metadata": {},
"source": [
"### Checking for entanglement with CHSH experiment\n",
"\n",
"*https://en.wikipedia.org/wiki/File:Two_channel_bell_test.svg*"
]
},
{
"cell_type": "markdown",
"id": "4e523cfc",
"metadata": {},
"source": [
"To reproduce this Bell test protocol, we define a new circuit which uses the $\\mathsf{CNOT}$ gate implemented above as a sub-circuit. The parameters $a$ and $b$ describe the measurement bases used by players $A$ and $B$ in the runs of the Bell-test. We define a noise model that represent a photon source with a brightness of 40% and a purity of 99% that will be used by the `Processor`."
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "6b889867",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"\n",
""
],
"text/plain": [
""
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"noise = pcvl.NoiseModel(brightness=0.4, g2=0.01)\n",
"\n",
"QPU = pcvl.Processor(\"SLOS\", 4, noise=noise)\n",
"QPU.add(0, pcvl.BS.H())\n",
"QPU.add(0, p)\n",
"\n",
"a = pcvl.Parameter(\"a\")\n",
"b = pcvl.Parameter(\"b\")\n",
"\n",
"QPU.add(0, pcvl.BS.H(theta=a))\n",
"QPU.add(2, pcvl.BS.H(theta=b))\n",
"\n",
"pcvl.pdisplay(QPU, recursive=True)"
]
},
{
"cell_type": "markdown",
"id": "1c96eaec",
"metadata": {},
"source": [
"We start by setting the values of the two parameters to 0, meaning that the beam splitters after the $\\mathsf{CNOT}$ effectively act as the identity. "
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "1e935739",
"metadata": {},
"outputs": [],
"source": [
"a.set_value(0)\n",
"b.set_value(0)"
]
},
{
"cell_type": "markdown",
"id": "3451e7d1",
"metadata": {},
"source": [
"We now state that our photons will be inputted on ports 0 and 2 (using the 0-index convention, and not counting heralded modes)."
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "1b626655",
"metadata": {},
"outputs": [],
"source": [
"QPU.min_detected_photons_filter(2)\n",
"QPU.with_input(pcvl.BasicState([1, 0, 1, 0]))"
]
},
{
"cell_type": "markdown",
"id": "fcdef3f6",
"metadata": {},
"source": [
"We now detail the different state vectors that are the probabilistic inputs to the circuit. The most frequent input is the empty state, followed by two states with only a single photon on either of the input ports, then by the expected nominal input $|1,0,1,0,0,0\\rangle$. Here, the heralded modes are shown because if there were a photon on them, they would also have the imperfect source. They are represented at the end of the state (the two last modes) as they have been added after the declaration of the processor."
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "e8af01a9",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
state
probability
\n",
"\n",
"\n",
"
|0,0,0,0,0,0>
9/25
\n",
"
|{0},0,0,0,0,0>
0.2395
\n",
"
|0,0,{0},0,0,0>
0.2395
\n",
"
|{0},0,{0},0,0,0>
0.1594
\n",
"
|0,0,{0}{4},0,0,0>
4.8193e-4
\n",
"
|{0}{2},0,0,0,0,0>
4.8193e-4
\n",
"
|{0},0,{0}{4},0,0,0>
3.2064e-4
\n",
"
|{0}{2},0,{0},0,0,0>
3.2064e-4
\n",
"
|{0}{2},0,{0}{4},0,0,0>
0
\n",
"\n",
"
"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"pcvl.pdisplay(QPU.source_distribution, precision=1e-4)"
]
},
{
"cell_type": "markdown",
"id": "73af9f32",
"metadata": {},
"source": [
"We can then check the output state distribution corresponding to this input distribution. By default, since our input state had 2 photons, only states having at least 2 detected photons are kept. This can be changed using `min_detected_photons_filter`."
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "cbee9802",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
state
probability
\n",
"\n",
"\n",
"
|0,1,0,1>
0.495518
\n",
"
|1,0,1,0>
0.495518
\n",
"
|0,1,1,0>
0.00747
\n",
"
|1,0,0,1>
0.001494
\n",
"\n",
"
"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"output_distribution=QPU.probs()[\"results\"]\n",
"pcvl.pdisplay(output_distribution, max_v=10)"
]
},
{
"cell_type": "markdown",
"id": "3cda6b52",
"metadata": {},
"source": [
"Let us run now the experiment with increasing value of g2 in the range $[0, 0.2]$ with a brightness of $0.15$ and check the CHSH inequality."
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "3f29137a",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "30475b1501b14a19ad6caef1e7cb322a",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/40 [00:00, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g2 = 0.0, S = 2.8284271247461903\n",
"g2 = 0.005, S = 2.792615361258137\n",
"g2 = 0.01, S = 2.7572980402457263\n",
"g2 = 0.015, S = 2.7224649920120614\n",
"g2 = 0.02, S = 2.6881063238088334\n",
"g2 = 0.025, S = 2.6542124105426095\n",
"g2 = 0.03, S = 2.6207738857392098\n",
"g2 = 0.035, S = 2.5877816329598575\n",
"g2 = 0.04, S = 2.5552267774696427\n",
"g2 = 0.045, S = 2.5231006783080483\n",
"g2 = 0.05, S = 2.4913949206290438\n",
"g2 = 0.055, S = 2.4601013083623045\n",
"g2 = 0.06, S = 2.4292118571395154\n",
"g2 = 0.065, S = 2.3987187875083835\n",
"g2 = 0.07, S = 2.368614518400099\n",
"g2 = 0.075, S = 2.338891660848145\n",
"g2 = 0.08, S = 2.3095430119332683\n",
"g2 = 0.085, S = 2.28056154897453\n",
"g2 = 0.09, S = 2.251940423920364\n",
"g2 = 0.095, S = 2.22367295795931\n",
"g2 = 0.1, S = 2.19575263631623\n",
"g2 = 0.105, S = 2.1681731032549507\n",
"g2 = 0.11, S = 2.140928157249369\n",
"g2 = 0.115, S = 2.114011746338283\n",
"g2 = 0.12, S = 2.0874179636398176\n",
"g2 = 0.125, S = 2.0611410430335115\n",
"g2 = 0.13, S = 2.035175354988402\n",
"g2 = 0.135, S = 2.00951540254766\n",
"g2 = 0.14, S = 1.9841558174433025\n",
"g2 = 0.145, S = 1.9590913563550196\n",
"g2 = 0.15, S = 1.9343168972953646\n",
"g2 = 0.155, S = 1.9098274361218837\n",
"g2 = 0.16, S = 1.885618083164027\n",
"g2 = 0.165, S = 1.8616840599720907\n",
"g2 = 0.17, S = 1.838020696169706\n",
"g2 = 0.175, S = 1.8146234264183836\n",
"g2 = 0.18, S = 1.7914877874790276\n",
"g2 = 0.185, S = 1.7686094153746597\n",
"g2 = 0.19, S = 1.7459840426455244\n",
"g2 = 0.195, S = 1.7236074956965992\n"
]
}
],
"source": [
"from tqdm.auto import tqdm\n",
"import numpy as np\n",
"\n",
"x = np.arange(0, 20, 0.5)\n",
"y = []\n",
"\n",
"for g2 in tqdm(x):\n",
" Es = []\n",
" for va in [0, math.pi/2]:\n",
" a.set_value(va)\n",
" for vb in [math.pi/4, 3*math.pi/4]:\n",
" b.set_value(vb)\n",
" Npp, Npm, Nmp, Nmm = 0, 0, 0, 0\n",
" QPU.noise = pcvl.NoiseModel(brightness=0.15, g2=g2/100)\n",
" QPU.with_input(pcvl.BasicState([1, 0, 1, 0])) # with_input has to be called everytime you change a source\n",
" output_distribution = QPU.probs()[\"results\"]\n",
" for output_state, prob in output_distribution.items():\n",
" if (output_state[0] == 1 and output_state[2] == 1):\n",
" Npp = prob\n",
" if (output_state[0] == 1 and output_state[3] == 1):\n",
" Npm = prob\n",
" if (output_state[1] == 1 and output_state[2] == 1):\n",
" Nmp = prob\n",
" if (output_state[1] == 1 and output_state[3] == 1):\n",
" Nmm = prob\n",
" E = (Npp-Npm-Nmp+Nmm)/(Npp+Npm+Nmp+Nmm)\n",
" Es.append(E)\n",
"\n",
" S = Es[0]-Es[1]+Es[2]+Es[3]\n",
" print(f\"g2 = {g2/100}, S = {S}\")\n",
" y.append(S)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "0142ce0d",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"plt.title(\"CHSH value with purity\")\n",
"plt.xlabel(\"g2 (%)\")\n",
"plt.ylabel(\"Bell inequality\")\n",
"plt.axhline(y=2, linewidth=2, color=\"red\", label='horizontal-line')\n",
"plt.plot(x, y, color =\"green\")\n",
"plt.grid(color='b', dashes=(3, 2, 1, 2))\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "1329a625",
"metadata": {},
"source": [
"Beyond 13% of g2, we are crossing the value $2$, i.e. not violating anymore the $|CHSH|\\le 2$ inequality!"
]
},
{
"cell_type": "markdown",
"id": "e55db30c",
"metadata": {},
"source": [
"## Reference\n",
"\n",
"> [1] T. C. Ralph, N. K. Langford, T. B. Bell, and A. G. White. Linear optical controlled-NOT gate in the coincidence basis. [Physical Review A](https://link.aps.org/doi/10.1103/PhysRevA.65.062324), 65(6):062324, June 2002. Publisher: American Physical Society."
]
}
],
"metadata": {
"language_info": {
"name": "python"
}
},
"nbformat": 4,
"nbformat_minor": 5
}