{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# HOM & threshold detection\n", "\n", "This example aims to demonstrate Hong-Ou-Mandel interference, the limitations of detection on Artemis and a technique for countering this." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import lightworks as lw\n", "from lightworks import emulator, remote\n", "\n", "try:\n", " remote.token.load(\"main_token\")\n", "except remote.TokenError:\n", " print(\n", " \"Token could not be automatically loaded, this will need to be \"\n", " \"manually configured.\"\n", " )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## HOM\n", "\n", "Hong-Ou-Mandel interference is the foundational effect of photonic quantum computing. It occurs when indistinguishable photons are incident of a beam splitter, at which point an interference occurs and generates entanglement. The simplest case of this is when two photons are incident on different inputs of a 50:50 beam splitter. In this case the photons will always go to the same output as each other, and they end up in the superposition state $\\ket{2,0} + \\ket{0, 2}$. This is contrary to what would be expected for classical light, where a $\\ket{1, 1}$ component would be measured 50% of the time. This is summarised in the image below. \n", "\n", "\n", "\n", "### Simulation\n", "\n", "We can see the effect in Lightworks using the following circuit." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "0\n", "1\n", "\n", "\n", "\n", "\n", "BS\n", "r = 0.5\n", "\n", "\n", "\n", "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "hom_circ = lw.PhotonicCircuit(2)\n", "hom_circ.bs(0)\n", "\n", "hom_circ.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is then sampled from, and as expected only $\\ket{2, 0}$ & $\\ket{0, 2}$ are measured." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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yAEAZEqQAwDIlCAHAJApQQ4AIFOCHABApmpNkLv66qujTp060bdv3/K5BQsWxLnnnhubb755bLzxxtG9e/eYNWtWje9NmzYtunXrFo0bN47mzZvHxRdfHN98802NMmPHjo299947GjVqFO3atYuhQ4eutd8FALBOB7lJkybF7bffHrvvvnuN8xdddFE89thjMXz48Bg3blzMmDEjTjjhhPL1JUuWFCFu0aJFMX78+Bg2bFgR0gYMGFAuM3Xq1KLMIYccElOmTCmCYp8+fWLkyJFr9TcCAKxzQe6rr76KU045Jf7rv/4rNt100/L5L774Iu688864/vrr49BDD42OHTvG3XffXQS2559/vijz1FNPxRtvvBF//vOfY88994wjjzwy/uM//iNuueWWItwlQ4YMibZt28Z1110X7du3j/POOy9OPPHEGDx4cMV+MwDAOhHk0tBp6jHr3LlzjfOTJ0+OxYsX1zi/8847xzbbbBMTJkwoPqfX3XbbLVq0aFEu07Vr15g3b168/vrr5TLfrjuVKdWxLAsXLizqqH4AANQ29Sv5x++999546aWXiqHVb5s5c2Y0bNgwmjVrVuN8Cm3pWqlM9RBXul66trwyKZzNnz8/Ntxww+/87UGDBsVvfvOb1fALAQDWwR656dOnx4UXXhh/+ctfYoMNNojapH///sXQbulIbQUAqG0qFuTS0Ons2bOL1aT169cvjrSg4fe//33xPvWapXluc+fOrfG9tGq1ZcuWxfv0+u1VrKXP/6pMkyZNltkbl6TVrel69QMAoLapWJA77LDD4tVXXy1WkpaOffbZp1j4UHrfoEGDGD16dPk7b7/9drHdSKdOnYrP6TXVkQJhyahRo4rg1aFDh3KZ6nWUypTqAADIVcXmyG2yySax66671ji30UYbFXvGlc737t07+vXrF5tttlkRzs4///wigO23337F9S5duhSBrWfPnnHNNdcU8+Euv/zyYgFF6lVLzj777Lj55pvjkksuiTPOOCPGjBkT999/f4wYMaICvxoAYB1Z7PCvpC1C6tatW2wEnFaSptWmt956a/l6vXr14vHHH49zzjmnCHgpCPbq1SsGDhxYLpO2HkmhLe1Jd+ONN0arVq3ijjvuKOoCAMhZnaqqqqpKN6K2SytcmzZtWix8WJPz5dr8Wi8hrA0fXN0t1lXuI7Bu3EdWNHtUfB85AABWjSAHAJApQQ4AIFOCHABApgQ5AIBMCXIAAJkS5AAAMiXIAQBkSpADAMiUIAcAkClBDgAgU4IcAECmBDkAgEwJcgAAmRLkAAAyJcgBAGRKkAMAyJQgBwCQKUEOACBTghwAQKYEOQCATAlyAACZEuQAADIlyAEAZEqQAwDIlCAHAJApQQ4AIFOCHABApgQ5AIBMCXIAAJkS5AAAMiXIAQBkSpADAMiUIAcAkClBDgAgU4IcAECmBDkAgEwJcgAAmRLkAAAyJcgBAGRKkAMAyJQgBwCQKUEOACBTghwAQKYEOQCATAlyAACZEuQAADIlyAEAZEqQAwDIlCAHAJApQQ4AIFOCHABApgQ5AIBMCXIAAJkS5AAAMiXIAQBkSpADAMiUIAcAkClBDgAgU4IcAECmBDkAgEwJcgAAmRLkAAAyJcgBAGRKkAMAyJQgBwCQKUEOACBTghwAQKYEOQCATAlyAACZEuQAADIlyAEAZEqQAwDIlCAHAJApQQ4AIFOCHABApioa5G677bbYfffdo0mTJsXRqVOneOKJJ8rXFyxYEOeee25svvnmsfHGG0f37t1j1qxZNeqYNm1adOvWLRo3bhzNmzePiy++OL755psaZcaOHRt77713NGrUKNq1axdDhw5da78RAGCdDHKtWrWKq6++OiZPnhwvvvhiHHrooXHsscfG66+/Xly/6KKL4rHHHovhw4fHuHHjYsaMGXHCCSeUv79kyZIixC1atCjGjx8fw4YNK0LagAEDymWmTp1alDnkkENiypQp0bdv3+jTp0+MHDmyIr8ZAGB1qVNVVVUVtchmm20W1157bZx44omx5ZZbxj333FO8T956661o3759TJgwIfbbb7+i9+7oo48uAl6LFi2KMkOGDIlLL7005syZEw0bNizejxgxIl577bXy3+jRo0fMnTs3nnzyyRVq07x586Jp06bxxRdfFD2Ha0qbX49YY3UD/+eDq7vFusp9BNaN+8iKZo9aM0cu9a7de++98fXXXxdDrKmXbvHixdG5c+dymZ133jm22WabIsgl6XW33XYrh7ika9euxY8v9eqlMtXrKJUp1bEsCxcuLOqofgAA1DYVD3KvvvpqMf8tzV87++yz46GHHooOHTrEzJkzix61Zs2a1SifQlu6lqTX6iGudL10bXllUjibP3/+Mts0aNCgIgWXjtatW6/W3wwAsE4EuZ122qmYu/bCCy/EOeecE7169Yo33nijom3q379/0ZVZOqZPn17R9gAALEv9qLDU65ZWkiYdO3aMSZMmxY033hgnnXRSsYghzWWr3iuXVq22bNmyeJ9eJ06cWKO+0qrW6mW+vdI1fU7jzRtuuOEy25R6B9MBAFCbVbxH7tuWLl1azFFLoa5BgwYxevTo8rW333672G4kzaFL0msamp09e3a5zKhRo4qQloZnS2Wq11EqU6oDACBX9Ss9hHnkkUcWCxi+/PLLYoVq2vMtbQ2S5qb17t07+vXrV6xkTeHs/PPPLwJYWrGadOnSpQhsPXv2jGuuuaaYD3f55ZcXe8+VetTSvLubb745LrnkkjjjjDNizJgxcf/99xcrWQEAclbRIJd60k477bT4+OOPi+CWNgdOIe7www8vrg8ePDjq1q1bbASceunSatNbb721/P169erF448/XsytSwFvo402KubYDRw4sFymbdu2RWhLe9KlIdu0d90dd9xR1AUAkLNat49cbWQfOVi32EcO+KHsIwcAwA8iyAEAZEqQAwDIlCAHALA+BbmXXnqp2L+t5JFHHonjjjsu/v3f/73YxBcAgFoa5M4666z4xz/+Ubx///33o0ePHtG4ceMYPnx4sV8bAAC1NMilELfnnnsW71N4O+igg4rNfIcOHRoPPPDA6m4jAACrK8ilrefSo7SSp59+Oo466qjifevWreOTTz5ZlSoBAFgbQW6fffaJ3/72t/GnP/0pxo0bF926/f9N8aZOnRotWrRYlSoBAFgbQS49OisteDjvvPPisssui3bt2hXn//u//zv233//VakSAIC18azVPfbYo8aq1ZJrr7026tev6ONbAQDWG6vUI7fddtvFp59++p3zCxYsiB133HF1tAsAgDUR5D744INYsmTJd84vXLgwPvzww1WpEgCAlbRS46CPPvpo+f3IkSOjadOm5c8p2I0ePTratm27sm0AAGBNB7n09IakTp060atXrxrXGjRoEG3atInrrrtuVdoBAMCaDHKlveNSr9ukSZNiiy22WNm/BwDAarJKS0zTfnEAAFTWKu8VkubDpWP27NnlnrqSu+66a3W0DQCA1R3kfvOb38TAgQOLJzxstdVWxZw5AAAyCHJDhgyJoUOHRs+ePVd/iwAAWHP7yC1atMijuAAAcgxyffr0iXvuuWf1twYAgDU7tJoexfWHP/whnn766dh9992LPeSqu/7661elWgAA1nSQe+WVV2LPPfcs3r/22ms1rln4AABQi4PcM888s/pbAgDAmp8jBwBApj1yhxxyyHKHUMeMGfND2gQAwJoKcqX5cSWLFy+OKVOmFPPlevXqtSpVAgCwNoLc4MGDl3n+qquuiq+++mpVqgQAoJJz5E499VTPWQUAyDHITZgwITbYYIPVWSUAAKtzaPWEE06o8bmqqio+/vjjePHFF+OKK65YlSoBAFgbQa5p06Y1PtetWzd22mmnGDhwYHTp0mVVqgQAYG0EubvvvntVvgYAQKWDXMnkyZPjzTffLN7vsssusddee62udgEAsCaC3OzZs6NHjx4xduzYaNasWXFu7ty5xUbB9957b2y55ZarUi0AAGt61er5558fX375Zbz++uvx2WefFUfaDHjevHlxwQUXrEqVAACsjR65J598Mp5++ulo3759+VyHDh3illtusdgBAKA298gtXbo0GjRo8J3z6Vy6BgBALQ1yhx56aFx44YUxY8aM8rmPPvooLrroojjssMNWZ/sAAFidQe7mm28u5sO1adMmtt9+++Jo27Ztce6mm25alSoBAFgbc+Rat24dL730UjFP7q233irOpflynTt3XpXqAABY0z1yY8aMKRY1pJ63OnXqxOGHH16sYE3Hj3/842Ivuf/5n/9ZlXYAALAmg9wNN9wQZ555ZjRp0mSZj+0666yz4vrrr1/ZNgAAsKaD3MsvvxxHHHHE915PW4+kpz0AAFDLgtysWbOWue1ISf369WPOnDmro10AAKzOIPejH/2oeILD93nllVdiq622WpkqAQBYG0HuqKOOiiuuuCIWLFjwnWvz58+PK6+8Mo4++uhVbQsAAGtq+5HLL788Hnzwwdhxxx3jvPPOi5122qk4n7YgSY/nWrJkSVx22WUrUyUAAGsjyLVo0SLGjx8f55xzTvTv3z+qqqqK82krkq5duxZhLpUBAKAWbgi87bbbxl//+tf4/PPP49133y3C3A477BCbbrrpmmkhAACr78kOSQpuaRNgAAAyetYqAACVJ8gBAGRKkAMAyJQgBwCQKUEOACBTghwAQKYEOQCATAlyAACZEuQAADIlyAEAZEqQAwDIlCAHAJApQQ4AIFOCHABApgQ5AIBMCXIAAJkS5AAAMiXIAQBk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e2wsWrSoXEYfCytKjxyshLT7enqkzl577bXM65MnT46DDz44vvzyy7XeNiAP2267bfFEh3SvSD755JPo1q1bNGvWrNgceO7cuXrkWGF65GAlNGrUqBgW+T4pwKUyAN9nzpw5RZgr2WKLLeLpp58u7h9HHXVU/POf/6xo+8iLIAcr4aSTTopevXrFQw89VCPQpffp3Omnnx4///nPK9pGoHZL82vTVIxv9/Y/9dRTxWO7jj/++Iq1jfwYWoWVsHDhwujbt2/cdddd8c0330TDhg2L82luS/369aN3794xePBgvXLA97rggguK56kOHz78O9dSr9zhhx8ekyZNMrTKChHkYBWkHrg0H6769iMdO3YsVqABLM/nn38eM2bMiF122WWZ11OYe+mll8rPYIXlEeQAADJljhysZmkrgffee6/SzQAy5j7CitIjB6tZ2qm9QYMG8ctf/jJuuummSjcHyJD7CCtKjxysZmlT4Lfeeivat29f6aYAmXIfYUXpkQMAyFT9SjcAANZHadV7esRf9dXv++67b/EKK0qQg5WwePHiuOyyy+LBBx+MzTbbLM4+++w444wzytc97Br4V77++us466yz4t577406deoU95Lks88+K56xmjYVv/3226Nx48aVbioZMEcOVkLpAdcpwHXp0iX69etX3JCrM1sBWJ4LL7wwJk6cGCNGjIgFCxYU/wBMR3r/17/+tbiWysCKMEcOVsIOO+xQPLnh6KOPLj6/++67ceSRR8YBBxxQPO1h9uzZeuSA5dp0002LELf//vsv8/pzzz1X3GPSxsHwr+iRg5Xw0Ucfxa677lr+3K5duxg7dmyMHz8+evbsKcABK7QitfR4v2VJ11IZWBGCHKyENAn525t0/uhHP4pnnnmmeDbiL37xi4q1DchD6m1L+8P9/e9//861dO6cc86JY445piJtIz+GVmEl9OnTp5gDd+eddy6zt+7ggw+O999/X88c8L3SkOnJJ58cI0eOLIZZmzdvXpxPUzPmzp0bXbt2jXvuuSeaNWtW6aaSAUEOVsL//u//Fpt0phvtsqQHYY8aNSp69eq11tsG5OXNN9+MCRMmFAsdSj3+nTp1ip133rnSTSMjghwAQKbsIwcrqG3btsWeTyurb9++ccEFF6yRNgF5cR9hddMjByto3Lhxq/S9Nm3axLbbbrva2wPkx32E1U2QAwDIlO1HAAAyJcgBAGRKkAMAyJQgBwCQKUEOYDnmzJlTPDJpm222iUaNGhWbtqYNodODzZO0lcTDDz+8SqsQb7jhhjXQYmB9Yh85gOXo3r17LFq0KIYNGxbbbbddsQv/6NGj49NPP6100wBsPwLwfdJzL9OzMMeOHRs/+9nPltmrlh7bVpL2+frggw/ivffei379+sXzzz8fX3/9dbRv3z4GDRoUnTt3LsqlZ/J+ez+x0q34b3/7W/Tv3z9efPHF2GKLLeL4448vvrvRRhut8d8L5MfQKsD32HjjjYsjDZ0uXLjwO9cnTZpUvN59993x8ccflz9/9dVXcdRRRxU9d3//+9/jiCOOiGOOOSamTZtWXH/wwQejVatWMXDgwOJ76UhSAExlUy/gK6+8Evfdd18R7M4777y1+ruBfOiRA1iOBx54IM4888yYP39+7L333kXPXI8ePWL33Xcvz5F76KGH4rjjjltuPbvuumucffbZ5VCWevPSY5fSUdKnT5+oV69e3H777eVzKcilv5l69jbYYIM19juBPOmRA1iO1Ds2Y8aMePTRR4vesjTMmgLd0KFDv/c7qUfuV7/6VTGk2qxZs6JX78033yz3yH2fl19+uai31BOYjrSwYunSpTF16tQ18OuA3FnsAPAvpJ6www8/vDiuuOKKoufsyiuvjF/84hfLLJ9C3KhRo+J3v/tdtGvXLjbccMM48cQTi0UTy5MC4FlnnbXMh6OnVbMA3ybIAaykDh06lLccadCgQSxZsqTG9bQ1SQp5aaFCKaClRRDVNWzY8DvfSz19b7zxRhH+AFaEoVWA75G2GDn00EPjz3/+c7H4IA1vDh8+PK655po49thjy3Pd0qKGmTNnxueff16c22GHHYoFDVOmTCmGS08++eRieLS69L1nn302Pvroo/jkk0+Kc5deemmMHz++mEeXvvvOO+/EI488YrED8L0EOYDvkeao7bvvvjF48OA46KCDigULaWg1LX64+eabizLXXXddMYzaunXr2GuvvYpz119/fbFtyf7771+sVk3z3FJvW3VpxWrqpdt+++1jyy23LM6lBRRpW5J//OMfceCBBxb1DRgwILbeeusK/HogB1atAgBkSo8cAECmBDkAgEwJcgAAmRLkAAAyJcgBAGRKkAMAyJQgBwCQKUEOACBTghwAQKYEOQCATAlyAACZEuQAACJP/w8hZeqf1GGHFQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sampler = lw.Sampler(hom_circ, lw.State([1, 1]), 10000)\n", "\n", "backend = emulator.Backend(\"slos\")\n", "\n", "results = backend.run(sampler)\n", "results.plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On Artemis, however, the detectors are single photon detectors and therefore can only indicate the presence of up to 1 photon per mode. This is sometimes known as threshold detection. We can simulate the effect of this using the detector module of the emulator." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "sampler.detector = emulator.Detector(photon_counting=False)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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AECmBDkAgEwJcgAAmRLkAAAyJcgBAGRKkAMAyJQgBwCQKUEOACBTghwAQKZqTZC76qqrok6dOtG/f//yuUWLFsVZZ50VLVq0iM022yx69eoVc+bMqfa9Dz/8MHr27BlNmjSJli1bxvnnnx9ff/11tToTJkyILl26RKNGjWLHHXeMkSNHrrffBQCwQQe5l156KW699dbYfffdq50/77zz4tFHH437778/Jk6cGLNmzYpjjjmmXL5s2bIixC1ZsiQmTZoUo0aNKkLapZdeWq4zY8aMos4BBxwQU6dOLYJi375944knnlivvxEAYIMLcl9++WWceOKJ8T//8z+xxRZblM/Pnz8/br/99hg6dGgceOCB0bVr17jzzjuLwPb8888XdZ588sl4880346677orOnTvHYYcdFr/+9a/jpptuKsJdMmLEiGjfvn1ce+210aFDh+jXr18ce+yxMWzYsFW2afHixbFgwYJqBwBAbVPxIJeGTlOPWffu3audnzJlSixdurTa+V122SW23XbbmDx5cvE5vXbq1ClatWpVrtOjR48ieE2bNq1c55vXTnVK11iZIUOGRLNmzcpHu3btauz3AgBsEEHunnvuiVdeeaUITt80e/bsaNiwYTRv3rza+RTaUlmpzoohrlReKvuuOinsLVy4cKXtGjRoUNEjWDpmzpz5PX8pAEDNqx8VksLRueeeG2PHjo1NNtkkapO0KCIdAAC1WcV65NLQ6dy5c4vVpPXr1y+OtKDhhhtuKN6nXrM0z23evHnVvpdWrbZu3bp4n16/uYq19Plf1WnatGk0btx4Hf9KAIANMMgddNBB8frrrxcrSUvHXnvtVSx8KL1v0KBBjBs3rvyd6dOnF9uNdOvWrficXtM1UiAsST18KaR17NixXGfFa5TqlK4BAJCrig2tbr755rHbbrtVO7fpppsWe8aVzp966qkxYMCA2HLLLYtwdvbZZxcBbJ999inKDznkkCKw9e7dO66++upiPtzFF19cLKAoDY2eccYZMXz48Bg4cGCccsopMX78+Ljvvvti9OjRFfjVAAAbQJBbHWmLkLp16xYbAactQdJq05tvvrlcXq9evXjsscfizDPPLAJeCoJ9+vSJwYMHl+ukrUdSaEt70l1//fXRtm3buO2224prAQDkrE5VVVVVpRtR26UVrmkbkrSCNfUMrivbX6iXENaHD67qGRsq9xHYMO4jq5s9Kr6PHAAAa0eQAwDIlCAHAJApQQ4AIFOCHABApgQ5AIBMCXIAAJkS5AAAMiXIAQBkSpADAMiUIAcAkClBDgAgU4IcAECmBDkAgEwJcgAAmRLkAAAyJcgBAGRKkAMAyJQgBwCQKUEOACBTghwAQKYEOQCATAlyAACZEuQAADIlyAEAZEqQAwDIlCAHAJApQQ4AIFOCHABApgQ5AIBMCXIAAJkS5AAAMiXIAQBkSpADAMiUIAcAkClBDgAgU4IcAECmBDkAgEwJcgAAmRLkAAAyJcgBAGRKkAMAyJQgBwCQKUEOACBTghwAQKYEOQCATAlyAACZEuQAADIlyAEAZEqQAwDIlCAHAJApQQ4AIFOCHABApgQ5AIBMCXIAAJkS5AAAMiXIAQBkSpADAMiUIAcAkClBDgAgU4IcAECmBDkAgEwJcgAAmRLkAAAyJcgBAGRKkAMAyJQgBwCQKUEOACBTghwAQKYEOQCATAlyAACZEuQAADIlyAEAZEqQAwDIlCAHAJCpiga5W265JXbfffdo2rRpcXTr1i0ef/zxcvmiRYvirLPOihYtWsRmm20WvXr1ijlz5lS7xocffhg9e/aMJk2aRMuWLeP888+Pr7/+ulqdCRMmRJcuXaJRo0ax4447xsiRI9fbbwQA2CCDXNu2beOqq66KKVOmxMsvvxwHHnhgHHXUUTFt2rSi/LzzzotHH3007r///pg4cWLMmjUrjjnmmPL3ly1bVoS4JUuWxKRJk2LUqFFFSLv00kvLdWbMmFHUOeCAA2Lq1KnRv3//6Nu3bzzxxBMV+c0AADWlTlVVVVXUIltuuWVcc801ceyxx8bWW28dd999d/E+efvtt6NDhw4xefLk2GeffYreuyOOOKIIeK1atSrqjBgxIi644IL4+OOPo2HDhsX70aNHxxtvvFH+M4477riYN29ejBkzZrXatGDBgmjWrFnMnz+/6DlcV7a/cPQ6uzbwTx9c1TM2VO4jsGHcR1Y3e9SaOXKpd+2ee+6Jr776qhhiTb10S5cuje7du5fr7LLLLrHtttsWQS5Jr506dSqHuKRHjx7Fjy/16qU6K16jVKd0jZVZvHhxcY0VDwCA2qbiQe71118v5r+l+WtnnHFGPPjgg9GxY8eYPXt20aPWvHnzavVTaEtlSXpdMcSVyktl31UnhbOFCxeutE1DhgwpUnDpaNeuXY3+ZgCADSLI7bzzzsXctRdeeCHOPPPM6NOnT7z55psVbdOgQYOKrszSMXPmzIq2BwBgZepHhaVet7SSNOnatWu89NJLcf3118fPf/7zYhFDmsu2Yq9cWrXaunXr4n16ffHFF6tdr7SqdcU631zpmj6n8ebGjRuvtE2pdzAdAAC1WcV75L5p+fLlxRy1FOoaNGgQ48aNK5dNnz692G4kzaFL0msamp07d265ztixY4uQloZnS3VWvEapTukaAAC5ql/pIczDDjusWMDwxRdfFCtU055vaWuQNDft1FNPjQEDBhQrWVM4O/vss4sAllasJoccckgR2Hr37h1XX311MR/u4osvLvaeK/WopXl3w4cPj4EDB8Ypp5wS48ePj/vuu69YyQoAkLOKBrnUk3byySfHRx99VAS3tDlwCnEHH3xwUT5s2LCoW7dusRFw6qVLq01vvvnm8vfr1asXjz32WDG3LgW8TTfdtJhjN3jw4HKd9u3bF6Et7UmXhmzT3nW33XZbcS0AgJzVun3kaiP7yMGGxT5ywEa9j9wrr7xSzE0refjhh+Poo4+O//7v/y4WKAAAsO6tVZA7/fTT45133ine/+UvfymelJCedZoepZXmogEAUEuDXApxnTt3Lt6n8Lb//vsXCxXSc07/8Ic/1HQbAQCoqSCXptWlbUKSp556Kg4//PDifXoCwieffLI2lwQAYH0Eub322iuuvPLK+N///d+YOHFi9Oz5/yf8zZgx41uPwwIAoBYFubQtSFrw0K9fv7jooovKT2b4/e9/H/vuu29NtxEAgJraR26PPfaotmq15Jprron69Sv+1C8AgI3CWvXI7bDDDvHpp59+6/yiRYtip512qol2AQCwLoLcBx98EMuWLfvW+fT0hb/97W9rc0kAANbQGo2DPvLII+X3peehlqRglx5Onx6JBQBALQty6ekNSZ06dYpnmq6oQYMGsf3228e1115bsy0EAOD7B7nS3nGp1+2ll16Krbbaak2+DgBADVqrJaZpvzgAACprrfcKSfPh0jF37txyT13JHXfcURNtAwCgpoPcFVdcEYMHDy6e8LDNNtsUc+YAAMggyI0YMSJGjhwZvXv3rvkWAQCw7vaRW7JkiUdxAQDkGOT69u0bd999d823BgCAdTu0mh7F9dvf/jaeeuqp2H333Ys95FY0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uVSW6sDqEORgDaT5b0kaPl2ZdPPVyQ18l759+xbDp5dcckkcdNBB1ebIjRs3Lq688so4++yzK91MMiHIwRo44YQTirkrq5JWnV122WXrtU1AXgYPHlzMkbvmmmviv/7rv8rTNdJ/AtM95IILLoiBAwdWuplkwhw5AKiQGTNmVNt+JD17FdaEIAcAkClPdoAalrYUeP/99yvdDCDz4dc//elPlW4GGdAjB+tgi5IGDRrEL3/5y7jxxhsr3RwgQ2mINS1+SIsh0tNiYFUsdoAatnz58mLeS9qZHWBtpHtIWlj19NNPV7op1HJ65AAAMqVHDtZCWmWWnom44mqztElwegX4Pr766quYMmVK7L///pVuChnQIwdreINNT2645557ir2fttxyy+L8Z599VuwBdfzxx8ett95aPIIHYG28+uqrxebjHvXH6rBqFdbAueeeWzwjcfTo0bFo0aJiMnI60vs//vGPRVmqAwDrgx45WANbbLFFEeL23XfflZY/99xzccQRR8Tnn3++3tsG5KHUk78qqSfuyy+/1CPHajFHDtZwRWrDhg1XWZ7KUh2AVVm8eHGceeaZ0alTp5WW//Wvf40rrrhivbeLPAlysAZSb1vaH+7222+PPffcs1rZn//85+LmfOSRR1asfUDt17lz52jXrl306dNnlXPkBDlWlzlysAaGDx8erVq1iq5du0aLFi2iQ4cOxZHe77XXXtGyZcuiDsCq9OzZM+bNm/edQ68nn3zyem0T+TJHDtbCW2+9FZMnTy4WOiRp25Fu3brFLrvsUummAbAREeQAADJljhyswbMP095xa6p///5xzjnnrJM2AXlxH6Gm6ZGD1TRx4sS1+t72228f2223XY23B8iP+wg1TZADAMiUVasAAJkS5AAAMiXIAQBkSpADAMiUIAcAkClBDuA7fPzxx8UzdLfddtto1KhR8RSPHj16xHPPPVeUpz3BHnroobXaTuK6665bBy0GNiY2BAb4Dr169YolS5bEqFGjYocddigeyzZu3Lj49NNPK900APvIAaxKerD5FltsERMmTIif/OQnK+1V++tf/1r+nDZs/eCDD+L999+PAQMGxPPPPx9fffVVdOjQIYYMGRLdu3cv6v30pz/91sawpVvxs88+G4MGDYqXX345ttpqq/jZz35WfHfTTTdd578XyI+hVYBV2GyzzYojDZ0uXrz4W+UvvfRS8XrnnXfGRx99VP785ZdfxuGHH1703P35z3+OQw89NI488sj48MMPi/IHHngg2rZtG4MHDy6+l44kBcBUN/UCvvbaa3HvvfcWwa5fv37r9XcD+dAjB/Ad/vCHP8Rpp50WCxcujC5duhQ9c8cdd1zsvvvu5TlyDz74YBx99NHfeZ3ddtstzjjjjHIoS7156fmZ6Sjp27dv1KtXL2699dbyuRTk0p+ZevY22WSTdfY7gTzpkQP4Dql3bNasWfHII48UvWVpmDUFupEjR67yO6lH7le/+lUxpNq8efOiV++tt94q98ityquvvlpct9QTmI60sGL58uUxY8aMdfDrgNxZ7ADwL6SesIMPPrg4LrnkkqLn7LLLLov//M//XGn9FOLGjh0bv/nNb2LHHXeMxo0bx7HHHlssmvguKQCefvrpcc4553yrLK2aBfgmQQ5gDXXs2LG85UiDBg1i2bJl1crT1iQp5KWFCqWAlhZBrKhhw4bf+l7q6XvzzTeL8AewOgytAqxC2mLkwAMPjLvuuqtYfJCGN++///64+uqr46ijjirPdUuLGmbPnh2ff/55ce6HP/xhsaBh6tSpxXDpCSecUAyPrih975lnnom///3v8cknnxTnLrjggpg0aVIxjy599913342HH37YYgdglQQ5gFVIc9T23nvvGDZsWOy///7FgoU0tJoWPwwfPryoc+211xbDqO3atYs999yzODd06NBi25J99923WK2a5rml3rYVpRWrqZfuBz/4QWy99dbFubSAIm1L8s4778R+++1XXO/SSy+NNm3aVODXAzmwahUAIFN65AAAMiXIAQBkSpADAMiUIAcAkClBDgAgU4IcAECmBDkAgEwJcgAAmRLkAAAyJcgBAGRKkAMAiDz9P+7MVayfDTkWAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "backend = emulator.Backend(\"slos\")\n", "\n", "results = backend.run(sampler)\n", "results.plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As can be seen above, now $\\ket{1,0}$ & $\\ket{0,1}$ are measured instead of $\\ket{2,0}$ & $\\ket{0,2}$. However the 1-photon states could correspond to either 1 or 2-photons at the output, meaning we cannot normally distinguish between photon loss and HOM interference effects.\n", "\n", "## Pseudo-PNR detection\n", "\n", "There is a technique, however, called pseudo Photon-Number Resolving (PNR) detection which can be implemented to reduce the effect of this limitation. This comes at the cost of requiring an additional measurement mode per photon that needs to be measured. It is also a probabilistic effect so will reduce the number of measured output counts.\n", "\n", "To achieve the desired affect, each output of the circuit is split into multiple modes using beam splitters, with the aim of dividing any-multi photon input states on a mode. In the case of 2 modes, a 50% beam splitter is found to be optimal. When using this, 50% of the time photons will go to different outputs after passing through the beam splitter, in which case they can then be resolved.\n", "\n", "A circuit to observe the HOM effect through pseudo-PNR is created. The beam splitter on which HOM occurs is placed across modes 1 & 2, and then the additional beam splitters for the PNR detection are introduced. " ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "0\n", "1\n", "2\n", "3\n", "\n", "\n", "\n", "\n", "BS\n", "r = 0.5\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "BS\n", "r = 0.5\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "BS\n", "r = 0.5\n", "\n", "\n", "\n", "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "thresh_circ = lw.PhotonicCircuit(4)\n", "\n", "thresh_circ.bs(1, reflectivity=0.5)\n", "thresh_circ.bs(0)\n", "thresh_circ.bs(2)\n", "\n", "thresh_circ.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the circuit above, up to 2 photons can be measured. However, we can add additional beam splitters to further increase the number of photons that can be measured or increase the probability of success for a particular photon number. For 2 photons, the chance of success increases to 66.6% when using 3 modes. It can be seen below how the reflectivities in this case are 1/3 & 1/2, these are the optimal values for 3 modes. For each additional layer of beam splitters (mode), the optimal reflectivity of that layer will always be 1/n where n is the number of modes. So for 4 measurement modes, the optimal values will be 1/4, 1/3 & 1/2." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "0\n", "1\n", "2\n", "3\n", "4\n", "5\n", "\n", "\n", "\n", "\n", "BS\n", "r = 0.5\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "BS\n", "r = 0.3333\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "BS\n", "r = 0.3333\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "BS\n", "r = 0.5\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "BS\n", "r = 0.5\n", "\n", "\n", "\n", "\n", "\n", "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "thresh_circ = lw.PhotonicCircuit(6)\n", "\n", "thresh_circ.bs(2, reflectivity=0.5)\n", "thresh_circ.bs(1, reflectivity=1 / 3)\n", "thresh_circ.bs(3, reflectivity=1 / 3)\n", "thresh_circ.bs(0)\n", "thresh_circ.bs(4)\n", "\n", "thresh_circ.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As this is significantly smaller than the size of the Artemis processor, we'll choose to use this 6 mode version.\n", "\n", "A sampler is then created, using the input state required for the HOM interference. The minimum detection is set to 2 so that we only get a valid measurement when the PNR detection is successful. " ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "sampler = lw.Sampler(\n", " thresh_circ, lw.State([0, 0, 1, 1, 0, 0]), 10000, min_detection=2\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is then run on the backend and plotted below." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "backend = remote.QPU(\"Artemis\")\n", "\n", "job = backend.run(sampler)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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b9K8eXPdMvf4449L48aNXffIffDBB9KlS5dCX+f222+XAQMGuEKZas1T0/6oxalv375SokQJef31113PqSCn3lO17IWHh3vtcwKwEy1yAFAI1Tp29OhR+fDDD3VrmbrMqgJdYmJigT+jWuReeOEFfUm1fPnyulVv7969rha5gnz11Vf6dZ0tgWpRHStyc3Pl0KFDXvh0AGxHZwcAuArVEvbggw/qZcyYMbrlbNy4cfLUU0/lu70KcUlJSTJt2jS59dZbpVSpUtKtWzfdaaIwKgA+88wz+U7OrXrNAsDlCHIAcJ0aNGjgGnKkZMmScunSJbf1amgSFfJURwVnQFOdIPIKDQ294udUS98333yjwx8AXAsurQJAAdQQIw888IC89957uvOBury5ZMkSmTJlijzyyCOue91Up4b09HQ5ffq0fu62227THRpSUlL05dLu3bvry6N5qZ/buHGj/PTTT/Lzzz/r50aOHClbtmzR99Gpn92/f78sX76czg4ACkSQA4ACqHvUYmNjZebMmRIfH687LKhLq6rzw+zZs/U206dP15dRo6OjpVmzZvq5GTNm6GFL7r77bt1bVd3nplrb8lI9VlUr3S233CKVK1fWz6kOFGpYku+++05atWqlX2/s2LESFRXlh08PwAb0WgUAALAULXIAAACWIsgBAABYiiAHAABgKYIcAACApQhyAAAAliLIAQAAWIogBwAAYCmCHAAAgKUIcgAAAJYiyAEAAFiKIAcAAGApghwAAIDY6f8DpHYUfY8mmEcAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "job.wait_until_complete()\n", "\n", "results = job.get_result()\n", "results.plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From this plot, it is hard to see the true results due the pseudo-PNR detection, so we'll define a mapping which sums the photon counts across the combined detection modes and use the result remapping feature to then plot this data." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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OPXUU2P27Nn1yjz00EOxww47RNOmTaN9+/YxZMiQr+weAQCWl8ZRReuvv36cd955semmm8a8efPi+uuvjwMOOCCee+652GqrrXKZo48+Ovr371/3nRTYKubMmZNDXOvWrePxxx+Pd955Jw4//PBYaaWV4te//nUuM2HChFwmBcAbb7wxRo4cGUcddVSst9560a1btyrcNQDAChDk9t9//3r7v/rVr3Ir3RNPPFEX5FJwS0FtYe6///546aWX4oEHHohWrVrFdtttF+eee26cfvrpcfbZZ0eTJk1i8ODBsdFGG8WFF16Yv9OhQ4f461//GoMGDRLkAICi1cwYudS6dtNNN8X06dNzF2tFakVbZ511Yuutt46+ffvGv//977pzo0ePjm222SaHuIoUzqZNmxbjxo2rK9OlS5d6vyuVSccXZcaMGfka828AALWmqi1yyYsvvpiD22effRarr7563H777bHlllvmc4cccki0a9cu2rRpEy+88EJuaRs/fnzcdttt+fykSZPqhbiksp/OLa5MCmeffvpprLLKKp+r04ABA+Kcc85ZbvcMALBCBLnNN988xo4dGx999FH86U9/it69e8fDDz+cw9wxxxxTVy61vKVxbXvttVe8/vrrsckmmyy3OqWWvz59+tTtp9DXtm3b5fb7AACK7FpN49jSTNJOnTrllrBtt902LrnkkoWW3WmnnfLna6+9lj/T2LnJkyfXK1PZr4yrW1SZNEt2Ya1xSZrdWplJW9kAAGpN1YPcgubOnZvHqC1MarlLUstckrpkU9fslClT6sqMGDEiB69K92wqk2aqzi+VmX8cHgBAiaratZq6MPfdd9/YYIMN4uOPP46hQ4fmNd/uu+++3H2a9vfbb79Ye+218xi5U045JXbbbbe89lzStWvXHNh69eoVAwcOzOPhzjjjjDjhhBNyq1qSlh257LLL4rTTTosjjjgiRo0aFbfccksMHz68mrcOAFB2kEstaWndt7T+W/PmzXNASyFu7733jjfffDMvK3LxxRfnmaxpjFqPHj1yUKto1KhRDBs2LI4//vjcwrbaaqvlMXbzrzuXlh5JoS2FwNRlm9auu/rqqy09AgAUr6pB7pprrlnkuRTc0qSHL5Jmtd5zzz2LLZPeEJEWGQYAWJHU3Bg5AAC+HEEOAKBQghwAQKEEOQCAQglyAACFEuQAAAolyAEAFEqQAwAolCAHAFAoQQ4AoFCCHABAoQQ5AIBCCXIAAIUS5AAACiXIAQAUSpADACiUIAcAUChBDgCgUIIcAEChBDkAgEIJcgAAhRLkAAAKJcgBABRKkAMAKJQgBwBQKEEOAKBQghwAQKEEOQCAQglyAACFEuQAAAolyAEAFEqQAwAolCAHAFAoQQ4AoFCCHABAoQQ5AIBCCXIAAIUS5AAACiXIAQAUSpADAChUVYPclVdeGR07doxmzZrlrXPnzvGXv/yl7vxnn30WJ5xwQqy99tqx+uqrR48ePWLy5Mn1rjFx4sTo3r17rLrqqtGyZcs49dRTY/bs2fXKPPTQQ7HDDjtE06ZNo3379jFkyJCv7B4BAFbIILf++uvHeeedF2PGjIlnnnkm9txzzzjggANi3Lhx+fwpp5wSd999d9x6663x8MMPx9tvvx0HHXRQ3ffnzJmTQ9zMmTPj8ccfj+uvvz6HtH79+tWVmTBhQi6zxx57xNixY+Pkk0+Oo446Ku67776q3DMAwLLSYN68efOihqy11lpx/vnnx8EHHxzrrrtuDB06NP+cvPLKK9GhQ4cYPXp07Lzzzrn17nvf+14OeK1atcplBg8eHKeffnq8++670aRJk/zz8OHD429/+1vd7+jZs2dMnTo17r333i9Vp2nTpkXz5s3jo48+yi2Hy8uG/zV8uV2bFdMb53WPWuH5peTnF2rNl80eNTNGLrWu3XTTTTF9+vTcxZpa6WbNmhVdunSpK7PFFlvEBhtskINckj632WabuhCXdOvWLd98pVUvlZn/GpUylWsszIwZM/I15t8AAGpN1YPciy++mMe/pfFrxx13XNx+++2x5ZZbxqRJk3KLWosWLeqVT6EtnUvS5/whrnK+cm5xZVI4+/TTTxdapwEDBuQUXNnatm27TO8ZAGCFCHKbb755Hrv25JNPxvHHHx+9e/eOl156qap16tu3b27KrGxvvvlmVesDALAwjaPKUqtbmkmadOrUKZ5++um45JJL4gc/+EGexJDGss3fKpdmrbZu3Tr/nD6feuqpeterzGqdv8yCM13TfupvXmWVVRZap9Q6mDYAgFpW9Ra5Bc2dOzePUUuhbqWVVoqRI0fWnRs/fnxebiSNoUvSZ+qanTJlSl2ZESNG5JCWumcrZea/RqVM5RoAAKVqXO0uzH333TdPYPj444/zDNW05ltaGiSNTTvyyCOjT58+eSZrCmcnnXRSDmBpxmrStWvXHNh69eoVAwcOzOPhzjjjjLz2XKVFLY27u+yyy+K0006LI444IkaNGhW33HJLnskKAFCyqga51JJ2+OGHxzvvvJODW1ocOIW4vffeO58fNGhQNGzYMC8EnFrp0mzTK664ou77jRo1imHDhuWxdSngrbbaanmMXf/+/evKbLTRRjm0pTXpUpdtWrvu6quvztcCAChZza0jV4usI0etqqV1uDy/lPz8Qq0pbh05AACWjCAHAFAoQQ4AoFCCHABAoQQ5AIBCCXIAAIUS5AAACiXIAQAUSpADACiUIAcAUChBDgCgUIIcAEChBDkAgEIJcgAAhRLkAAAKJcgBABRKkAMAKJQgBwBQKEEOAKBQghwAQKEEOQCAQglyAACFEuQAAAolyAEAFEqQAwAolCAHAFAoQQ4AoFCCHABAoQQ5AIBCCXIAAIUS5AAACiXIAQAUSpADACiUIAcAUChBDgCgUIIcAEChBDkAgEIJcgAAhRLkAAAKJcgBABRKkAMAKFRVg9yAAQPim9/8ZqyxxhrRsmXLOPDAA2P8+PH1yuy+++7RoEGDettxxx1Xr8zEiROje/fuseqqq+brnHrqqTF79ux6ZR566KHYYYcdomnTptG+ffsYMmTIV3KPAAArZJB7+OGH44QTTognnngiRowYEbNmzYquXbvG9OnT65U7+uij45133qnbBg4cWHduzpw5OcTNnDkzHn/88bj++utzSOvXr19dmQkTJuQye+yxR4wdOzZOPvnkOOqoo+K+++77Su8XAGBZahxVdO+999bbTwEstaiNGTMmdtttt7rjqaWtdevWC73G/fffHy+99FI88MAD0apVq9huu+3i3HPPjdNPPz3OPvvsaNKkSQwePDg22mijuPDCC/N3OnToEH/9619j0KBB0a1bt89dc8aMGXmrmDZt2jK8awCAFXCM3EcffZQ/11prrXrHb7zxxlhnnXVi6623jr59+8a///3vunOjR4+ObbbZJoe4ihTOUvgaN25cXZkuXbrUu2Yqk44vqsu3efPmdVvbtm2X6X0CABTfIje/uXPn5i7P73znOzmwVRxyyCHRrl27aNOmTbzwwgu5pS2No7vtttvy+UmTJtULcUllP51bXJkU9j799NNYZZVV6p1LYbFPnz51+6mcMAcA1JqaCXJprNzf/va33OU5v2OOOabu59Tytt5668Vee+0Vr7/+emyyySbLpS5pQkTaAABqWU10rZ544okxbNiwePDBB2P99ddfbNmddtopf7722mv5M42dmzx5cr0ylf3KuLpFlWnWrNnnWuMAAEpR1SA3b968HOJuv/32GDVqVJ6Q8EXSrNMktcwlnTt3jhdffDGmTJlSVybNgE0hbcstt6wrM3LkyHrXSWXScQCAr1WQe/bZZ3N4qrjzzjvzGnD/7//9v7wMyJJ0p95www0xdOjQvJZcGsuWtjRuLUndp2kGaprF+sYbb8Rdd90Vhx9+eJ7R2rFjx1wmLVeSAluvXr3i+eefz0uKnHHGGfnale7RtO7cP/7xjzjttNPilVdeiSuuuCJuueWWOOWUU5bm9gEAyg1yxx57bPz973/PP6eA1LNnz7xEyK233prD0pd15ZVX5pmqadHf1MJW2W6++eZ8Pi0dkpYVSWFtiy22iJ/97GfRo0ePuPvuu+uu0ahRo9wtmz5TC9thhx2Ww17//v3ryqSWvuHDh+dWuG233TYvQ3L11VcvdOkRAIAVerJDCnFpvbYkhbfUQpZa1R577LEc6i6++OIv3bW6OGmmaFo0+IukWa333HPPYsuksPjcc899qXoBAKywLXIpgKXlQpLUYrbffvvVBa/33ntv2dYQAIBlF+R23HHH+OUvfxl//OMfc4tZev1V5VVYC67XBgBADQW59GqrNOEhzTj9xS9+kV9Cn/zpT3+Kb3/728u6jgAALKsxcmnCwPyzVivOP//8aNy4ZtYYBgBYoS1Vi9zGG28c77///ueOf/bZZ7HZZpsti3oBALA8glxa023OnDmfOz5jxox46623luaSAAAsoSXqB00L8lakhXebN29et5+CXXp7wpd5OwMAAF9xkEtvb0gaNGgQvXv3rndupZVWig033DAvtgsAQI0FucracanV7emnn4511llnedULAIAvsFRTTNN6cQAAVNdSrxWSxsOlbcqUKXUtdRXXXnvtsqgbAADLOsidc845+aX06Q0P6SX3acwcAAAFBLnBgwfHkCFDolevXsu+RgAALL915GbOnOlVXAAAJQa5o446KoYOHbrsawMAwPLtWk2v4vrd734XDzzwQHTs2DGvITe/iy66aGkuCwDA8g5yL7zwQmy33Xb557/97W/1zpn4AABQw0HuwQcfXPY1AQBg+Y+RAwCg0Ba5PfbYY7FdqKNGjfq/1AkAgOUV5Crj4ypmzZoVY8eOzePlevfuvTSXBADgqwhygwYNWujxs88+Oz755JOluSQAANUcI3fYYYd5zyoAQIlBbvTo0bHyyisvy0sCALAsu1YPOuigevvz5s2Ld955J5555pk488wzl+aSAAB8FUGuefPm9fYbNmwYm2++efTv3z+6du26NJcEAOCrCHLXXXfd0nwNAIBqB7mKMWPGxMsvv5x/3mqrrWL77bdfVvUCAGB5BLkpU6ZEz54946GHHooWLVrkY1OnTs0LBd90002x7rrrLs1lAQBY3rNWTzrppPj4449j3Lhx8cEHH+QtLQY8bdq0+MlPfrI0lwQA4Ktokbv33nvjgQceiA4dOtQd23LLLePyyy832QEAoJZb5ObOnRsrrbTS546nY+kcAAA1GuT23HPP+OlPfxpvv/123bF//etfccopp8Ree+21LOsHAMCyDHKXXXZZHg+34YYbxiabbJK3jTbaKB+79NJLl+aSAAB8FWPk2rZtG88++2weJ/fKK6/kY2m8XJcuXZbmcgAALO8WuVGjRuVJDanlrUGDBrH33nvnGaxp++Y3v5nXknv00UeXph4AACzPIHfxxRfH0UcfHc2aNVvoa7uOPfbYuOiii5a0DgAALO8g9/zzz8c+++yzyPNp6ZH0tgcAAGosyE2ePHmhy45UNG7cON59991lUS8AAJZlkPvGN76R3+CwKC+88EKst956S3JJAAC+iiC33377xZlnnhmfffbZ5859+umncdZZZ8X3vve9L329AQMG5EkSa6yxRrRs2TIOPPDAGD9+fL0y6XedcMIJsfbaa8fqq68ePXr0yC2D85s4cWJ07949Vl111XydU089NWbPnl2vTHov7A477BBNmzaN9u3bx5AhQ5bk1gEAyg5yZ5xxRn6v6mabbRYDBw6MO++8M2+/+c1vYvPNN8/nfvGLX3zp6z388MM5pD3xxBMxYsSImDVrVh5nN3369LoyaZHhu+++O2699dZcPi1CfNBBB9WdnzNnTg5xM2fOjMcffzyuv/76HNL69etXV2bChAm5zB577BFjx46Nk08+OY466qi47777luT2AQBqSoN58+bNW5Iv/POf/4zjjz8+h6DKV9NSJN26dcvvWk0LAy+tNL4utailwLbbbrvFRx99FOuu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g2L8+PHVrgosMc8vJXvyySdjrbXWigcffLDaVWERBDlq3vXXXx933HFHXHPNNdWuCiwxzy8lGzJkSH4v+XXXXVftqrAIXtFFzdtkk02ic+fOMWrUqHjrrbeiYUP//qAcnl9KNWPGjGjTpk2cfvrp0b9///ye8tVXX73a1WIB/qJQ0x555JF4//3348orr4y5c+fGfffdV+0qwZfm+aVkd955Zw5up556amy44Ybxpz/9qdpVYiEEOWq+W6pHjx6xxhprRM+ePXMzP5TC80vpz++hhx4aDRo0iMMOO0z3ao3StUrN+vTTT6N169Zx1113xXe/+9149tlnY5dddol33nknmjdvXu3qwWJ5filZ6kbdYIMN4sUXX4zNN9883nzzzdhoo43i1VdfzZ/UDi1y1Kw///nPebZU+p9gssMOO8TGG28cN910U7WrBl/I80vJbrjhhthuu+1yiEvatm2bn+U//OEP1a4aCxDkqFnpD0Zq1p9fat7XPUUJPL+U3q16+OGH1zvWq1cvQa4G6VqlJlWa8V9++eXYdNNN646nWX9p0O1LL70Um222WVXrCIvi+aX057d3795x6623xtprr113/JNPPokDDzwwT96Z/7mmugQ5AIBC6VoFAChU42pXABYlrbu1sMVT0/HURZVmVEGteuqpp2L06NF59l+SZrCmhYG/9a1vVbtqsNQmT54cV111VfTr16/aVeF/6Fql5kybNi2OOuqouPvuu6NZs2Zx7LHHxllnnRWNGjWq+0OSVhufM2dOtasKnzNlypS8dtxjjz2W/7HRqlWruud24sSJ8Z3vfCfPaG3ZsmW1qwpL7Pnnn88zsP39rR1a5Kg5Z555Zv5j8cc//jGmTp0av/zlL/MaXLfddls0adIkl/HvD2rVf/7nf+b/yaWJDpWlGyrGjx8fRxxxRJxwwgl5IDnUmhdeeGGx59MzTG3RIkfNadeuXZ76vvvuu+f99957L7p37x4tWrTIi6umcKdFjlqV3uKQXs21/fbbL/T8mDFj8rP98ccff+V1gy+ShrOkNzksLBpUjqdPf39rh8kO1Jx33303h7mKddZZJx544IH8P7799tsv/v3vf1e1frA4TZs2zcMDFiU9x6kM1KK0iPXvf//7mDBhwue2f/zjHzFs2LBqV5EFCHLUnDSuKHVLLdjKcf/99+fXHn3/+9+vWt3gi/zgBz/Ia3Ddfvvt9QJd+jkd+/GPfxw//OEPq1pHWJROnTrF22+/nf8xvbDtG9/4hqEtNcYYOWpO165d88uZU+vb/FZfffW47777Yu+9965a3eCLXHTRRXlmdc+ePWP27Nl14zpnzpwZjRs3jiOPPDIuuOCCalcTFuq4446L6dOnL/Yf2unvM7XDGDlqzocffpj/RbjVVlstsmsqTX6ovMMSalFqgUvj4eZffiS1dqSZ2ADLiiAHAFAoY+QoUnpx8+uvv17tasBS8fxSsv79+8ejjz5a7WrwP7TIUewU+ZVWWimOOeaYuPTSS6tdHVginl9KttFGG+UFrvfaa6+8cDvVpUWOIqXB5K+88kp06NCh2lWBJeb5pWRpKZL3338/jj/++GpXBS1yAADlsvwINSvN9nvyySfrzfrbaaed8icAX720NEmajb3bbrtVuyr8Dy1y1OQfimOPPTZuuumm/CqYtNJ48sEHH+SFKNNiqldddVWsuuqq1a4qfM6sWbPiF7/4RX43cHp207pc6f2qFWlskVfMUar0HuwddtjB81tDjJGj5vz0pz+Np556KoYPHx6fffZZ/h9f2tLP99xzTz6XykAt+tWvfpVnpaYAlxa37tOnT/6Hyfz8+xlYVrTIUXPWXHPNHOK+/e1vL/T8Y489Ft/73vfywsFQazbddNMYNGhQfkaT1157Lfbdd9/YZZdd4tprr40pU6ZokaNmVXpAFiU9t5988onnt4YYI0dNzuirvNZoYdK5VAZq0b/+9a/Yeuut6/bbt28fDz30UOy5557Rq1evGDhwYFXrB4szY8aMPBt1m222Wej5f/7zn3HOOed85fVi0QQ5ak5qyUjra11zzTWx/fbb1zv33HPP5T8y+++/f9XqB4uTJuOkxX433HDDumPpReMPPvhg7LHHHvGjH/2oqvWDxdluu+2ibdu20bt370WOkRPkaosxctScyy67LFq1apXfS7n22mvntbbSln7ecccdo2XLlrkM1KLU8jZ06NDPHU/dqaNGjcprcEGt6t69e0ydOnWxXa+HH374V1onFs8YOWrWyy+/HKNHj84THSotHZ07d44tttii2lWDRUpdT2mx327dui30/Ntvvx0jRoxYZIsHwJIQ5AAACmWMHDX3Dr+0dtySOvnkk+MnP/nJcqkTfFmeX0rm+S2TFjlqysMPP7xU30sDy9u1a7fM6wNLwvNLyTy/ZRLkAAAKZdYqAEChBDkAgEIJcgAAhRLkAAAKJcgBABRKkANYjHfffTe/33eDDTaIpk2b5jeMpLc2PPbYY/l8WnfrjjvuWKolGy6++OLlUGPg68SCwACL0aNHj5g5c2Zcf/31sfHGG+dXxo0cOTLef//9alcNwDpyAIuSXh6+5pprxkMPPRTf/e53F9qqlt6tWpEWRX3jjTfi9ddfjz59+sQTTzwR06dPjw4dOsSAAQOiS5cuudzuu+/+ucVXK3+K//rXv0bfvn3jmWeeiXXWWSe+//3v5++uttpqy/1+gfLoWgVYhNVXXz1vqet0xowZnzv/9NNP58/rrrsu3nnnnbr9Tz75JPbbb7/ccvfcc8/FPvvsE/vvv39MnDgxn7/tttti/fXXj/79++fvpS1JATCVTa2AL7zwQtx888052J144olf6X0D5dAiB7AYf/7zn+Poo4+OTz/9NHbYYYfcMtezZ8/o2LFj3Ri522+/PQ488MDFXmfrrbeO4447ri6Upda89I7KtFUcddRR0ahRo7jqqqvqjqUgl35natlbeeWVl9t9AmXSIgewGKl17O2334677rort5albtYU6IYMGbLI76QWuZ///Oe5S7VFixa5Ve/ll1+ua5FblOeffz5ft9ISmLY0sWLu3LkxYcKE5XB3QOlMdgD4AqklbO+9987bmWeemVvOzjrrrPjRj3600PIpxI0YMSIuuOCCaN++fayyyipx8MEH50kTi5MC4LHHHhs/+clPPncuzZoFWJAgB7CEttxyy7olR1ZaaaWYM2dOvfNpaZIU8tJEhUpAS5Mg5tekSZPPfS+19L300ks5/AF8GbpWARYhLTGy5557xg033JAnH6TuzVtvvTUGDhwYBxxwQN1YtzSpYdKkSfHhhx/mY5tuumme0DB27NjcXXrIIYfk7tH5pe898sgj8a9//Svee++9fOz000+Pxx9/PI+jS9999dVX48477zTZAVgkQQ5gEdIYtZ122ikGDRoUu+22W56wkLpW0+SHyy67LJe58MILczdq27ZtY/vtt8/HLrroorxsybe//e08WzWNc0utbfNLM1ZTK90mm2wS6667bj6WJlCkZUn+/ve/x6677pqv169fv2jTpk0V7h4ogVmrAACF0iIHAFAoQQ4AoFCCHABAoQQ5AIBCCXIAAIUS5AAACiXIAQAUSpADACiUIAcAUChBDgCgUIIcAECU6f8DgRbTRcQJxscAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def mode_grouping(s: lw.State, n: int) -> lw.State:\n", " \"\"\"\n", " Sum the first half of modes and second half and returns this as a 2 mode\n", " state.\n", " \"\"\"\n", " return lw.State([sum(s[:n]), sum(s[n:])])\n", "\n", "\n", "n = 3\n", "\n", "m_results = results.map(mode_grouping, n=n)\n", "m_results.plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As expected, the 2 photon state is now observed a significant majority or the time.\n", "\n", ".. note::\n", " Due to the non-unity success rate of pseudo-PNR detection, the counts of the $\\ket{2, 0}$ & $\\ket{0, 2}$ states will be suppressed compared to $\\ket{1, 1}$. Some care should be taken when interpreting or processing data found with this method." ] } ], "metadata": { "kernelspec": { "display_name": "venv", "language": "python", "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.11.6" } }, "nbformat": 4, "nbformat_minor": 2 }