{ "cells": [ { "cell_type": "markdown", "id": "dc099292", "metadata": {}, "source": [ "# Ternary Tree Mappings" ] }, { "cell_type": "markdown", "id": "6430aff6", "metadata": {}, "source": [ "Ternary trees are one of the most used classes of Fermion encodings, which includes the JordanWigner, BravyiKitaev, Parity and JKMN encodings.\n", "\n", "You can create ones of these common ternary trees easily with built-in functions.\n", "\n", "If you want a non-standard tree encoding it's easy to build these yourself." ] }, { "cell_type": "code", "execution_count": 1, "id": "c2ba9800", "metadata": {}, "outputs": [], "source": [ "import ferrmion as fr\n", "from ferrmion.visualise import draw_tt" ] }, { "cell_type": "markdown", "id": "c91d1f18", "metadata": {}, "source": [ "## Standard Encodings\n", "\n", "Ferrmion inbuild functions for the common encodings\n", "- `JordanWigner()` or `JW()`\n", "- `BravyiKitaev()` or `BK()`\n", "- `ParityEncoding()`\n", "- `JKMN()`" ] }, { "cell_type": "markdown", "id": "bb437d18", "metadata": {}, "source": [ "The most simple, and common is JordanWigner" ] }, { "cell_type": "code", "execution_count": 2, "id": "35561593", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "jw = fr.JordanWigner(10)\n", "draw_tt(jw, type=\"linear\")" ] }, { "cell_type": "markdown", "id": "009473af", "metadata": {}, "source": [ "As another example, he're the Bravyi-Kitaev encoding for 10 modes." ] }, { "cell_type": "code", "execution_count": 8, "id": "ed8b74e4", "metadata": {}, "outputs": [ { "data": { "image/png": "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77xTCQke7ewDAPlAQAkgYvz444+66aab3Krpu+++262cLlo0hLkld6yR0tOkfelSfJKUVEYqmhyaQ+3Y4YJkC5YtxZD1Vp5++ukhORYAFDTmUALwvX379umpp55S9erVtXbtWn3xxRcuBU9Ig0ljwWOpatJxNQP/hiiYdIcqWtSlOpo2bZr7G88991w9/fTT7m8HAL8joATgaytXrlSDBg3UvXt3dezYUfPnz1fdunUVrS655BL3N/773//WHXfcocsvv9wNhQOAnxFQAvAly2j2/PPPu546CyqnTp3qeuyKFSumaGd/4/Dhw93fvGLFCpdWaOTIke6cAIAfEVAC8J1ff/1VjRo10m233abWrVtr4cKFql9/f3qfGGJ/s+XYvOGGG3TrrbeqcePG7twAgN8QUALwDeuBe/nll1WtWjUtWbJEU6ZMcb2Uthd2rLK9yK13cvLkyVq8eLE7N7Zgh95KAH5CQAnAF9asWaNmzZq5uYMtW7Z0u95YLyUCrHfSzkmLFi3cSnc7V3bOAMAPCCgBeMp62saMGaNzzjnH7XU9fvx41wNXqlQp3pmD2DmxvJt2jr799lt3zt588016KwF4joASgGfWr1+vq6++Wm3atMnqgbOeNxyenSMb/rYeXJtjes0117hzCQBeIbE5AE+899576ty5s/v6ueeec4ElOI8AIhM9lADCKi0tza1atl61f/zjH66njWAy/1q1auXOoeWvtK+tx9LOMQCEEz2UAMJmwoQJuuWWW7Rr1y4988wzuv766xUXF8c7UEBzUW0+ZdeuXZWUlORWhjdt2pRzCyAs6KEEEHJ//fWX2rdvr+bNm+uCCy5wPWrWS0kwWXDsXFrvpM1DrVmzpptn2aFDB3fuASDU6KEEEFKWS7JTp07asmWLhg0b5gJLAsnQ91baSvk777zT5fB86aWXSMEEIKTooQQQEps3b3bD21dccYVLb2M9Z9ZjRjAZenaOLVelnfOzzz7braC398KCegAIBXooARS4Tz/91AU0f/zxh5544gndfPPNBJIe9lbafMoePXqobNmybieievXqeVUcAFGKHkoABWbbtm1uUUiDBg1UuXJltwe39YzRK+kdO/e2D7i9F5UqVXL7g3fr1s29VwBQUOihBFAgvvzySzekbdsBPvbYY+rSpYvi4/nM6if79u1zq+t79eqlihUrunmWdevW9bpYAKIArT2AoOzYsUN33323Lr30UlWoUEHz5893PWAEk/5j74m9N/YelS9f3uUBtaFwew8BIBj0UALIt5kzZ7pV26tWrdL//d//uVXFCQkJnNEIsHfvXg0dOlQPPvigGwq33so6dep4XSwAEYoeSgB5lp6ervvvv18XXXSRSpQooXnz5rmeLoLJyGHv1T333KO5c+e61EL2Xj7wwAPuvQWAvKKHEkCezJkzx/VKLlu2TP3791fPnj2VmJjIWYxge/bs0eOPP+7ezzPPPFOjR49WjRo1vC4WgAhCDyWAo2LbJfbr188NixYuXNgFltajRTAZ+ew9tPdy9uzZ7mt7jy243L17t9dFAxAh6KEEcEQLFixwvZKWKLt3797uUahQIc5clH5wsPmw9jj33HNdb2VKSorXxQLgc/RQAjjsUKgFFrVq1XJf2yIc67kimIxe1vs8YMAA915bcGn7gj/yyCPu/QeAQ6GHEkCuVq9erRYtWrihbctbaMPdSUlJnK0YYgt07AOEza+0DxXWW3nWWWd5XSwAPkQPJYBct+srWbKkihcvrunTp2vQoEEEkzHIPkBY7+TXX3+tTZs2aeLEia5uAMDB6KEEYpj1PlrgePrpp+eap9CQCgiZvZU2HH64bTRtJx4S2gOxiR5KIEbZ7ii2r/NXX32V6/MWSBJMIntv5ZH2ZH/44Yfd3u0AYg8BJRCj/vjjD9c7Wa1aNfd/hjIRrMaNG+uTTz5xuSy/++47TigQQwgogRgyePBgvfTSS9q6davb4aZIkSLauHGje+5IvU/A4dhwd+3atd02nLaYy1aH/+c//+GkATGC7S2AGGFB5GeffaalS5dqyJAhKlasmEtiffLJJ+eYN2lz4AgukVfZ50526tRJ8+fPd9kBLMWU7fEOILqxKAeIMZs3b9bHH3+s999/X++8847q1avn9nHu1q2bypUr53XxEGEsP2VaWpq++eYbvfvuuy6QtP9XrVpVTZo0UZs2bVShQgWviwkgxAgogRhi8yQzex+XL1/uhiivu+46zZgxQ3/++adKly6tPn36qGXLll4XFRHAkp/blo0bNmxwPeCWo7Jt27ZusZd9OGHFNxA7GPIGYkj2oezffvtN5cuX10MPPeQW58ydO9clrr7wwgs9LSMig+3z/d5777lpFLab0v333/+35zMDyuwfZABEJwJKIIpt377dLbzJrafo+OOP17p161zPUtmyZVWnTh33AI6GzY20RTf2b9++fV1dsy0bM+ta5vactljHUlTZw+oZgOjEKm8gStl8NkvfYqtu7aZ+sGXLlrnvW2AJ5JftomQ76bz66qsuBdXixYtzPG8Bpi3KsTmVNm8XQHQioASijC2IuP7663Xttde6OZKlSpXKtYeycuXKbr6krfYGgmH17Oeff3Z5KN94442/PW9D4pdccolatWql1q1buzoKILqwKAeIIhMmTHA7lezatUvPPPOMCyyZu4Zwr/q2dFQHs3mUb775prp27ep23Rk5cqSaNm3KmwNECXoogShgK7Tbt2+v5s2b64ILLnDDjjfccAPBJMIut2DS2Acb651ctGiRS3rerFkzdejQQX/99VfYywig4NFDCUS4KVOmqGPHjm5xzbBhw1xgSa8k/Mx6K1955RU3t/LYY491uzc1atTI62IBCAI9lEAEJyi/+eabdcUVV7jFENbzYz0+BJPwO6ujN910k6uzZ599tpt7aVM1tmzZ4nXRAOQTPZRABPr000/dDfmPP/7QE0884QJLAklEam+lzafs0aOHSys0atQolxgdQGShhxKIIDasbYsaGjRo4FZpL1y40PXsEEwiUlndvfXWW11dPvXUU13dtjq+bds2r4sGIA/ooQQixJdffumGtNesWaPHHntMXbp0YWs7RBXLizp8+HDdd999qlixoptnWbduXa+LBeAo0EMJ+JztMHL33Xfr0ksvVYUKFTR//nx169aNYBJRx/Kl3nHHHa6O27ag//jHP9xQuF0DAPyNHkrAx2bOnOlWbdtuN5Yc2lbFJiQkeF0sIOT27t2roUOH6sEHH1SlSpVcbyVbgwL+RQ8l4EPp6em6//77ddFFF6lEiRKaN2+e66khmESssLp+zz33aO7cuS61kF0Ldk3YtQHAf+ihBHxmzpw5rlfS9tru37+/evbsechk0UCs7L7z+OOPu+vB9qcfPXq0atSo4XWxAGRDDyXgE7ZdYr9+/dywXuHChV1g+cADDxBMIubZByq7FmbPnu2+tmvEgku7ZgD4Az2UgA8sWLDA9UpaoufevXu7R6FChbwuFuA7FkTafGJ7pKSk6NVXX3X/AvAWPZSAx0N5dmOsVauW+9oW4VjPC8EkkDvrvR8wYIC7Vnbv3u32BR80aJC7fgB4hx5KwCPff/+965W0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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "jw = fr.BravyiKitaev(10)\n", "draw_tt(jw)" ] }, { "cell_type": "markdown", "id": "ef8e818b", "metadata": {}, "source": [ "## Custom Encodings\n", "\n", "Several methods, such as the Bonsai Algorithm and HATT, require building ternary trees on the fly.\n", "\n", "`ferrmion` allows you to do this by adding branches.\n", "Let's see how to do this by recreating the BravyiKitaev encoding above." ] }, { "cell_type": "code", "execution_count": 3, "id": "d24e2906", "metadata": {}, "outputs": [ { "data": { "image/png": "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AImgBAAgEZQAACSCEgCARFACAJAISgAAEkEJAEAiKAEASAQlAACJoAQAIBGUAAAkghIAgERQAgCQCEoAABJBCQBAIigBAEgEJQAAiaAEACARlAAAJIISAIBEUAIAkAhKAAASQQkAQCIoAQBIBCUAAImgBAAgEZQAACSCEgCARFACAJAISgAAEkEJAICgBABgd1yhBAAgEZQAACSCEgCARFACAJAISgAAEkEJAEAiKAEASAQlAACJoAQAIBGUAAAkghIAgERQAgCQCEoAABJBCQBAIigBAEgEJQAAiaAEACARlAAAJIISAIBEUAIAkAhKAAASQQkAQCIoAQBIBCUAAImgBAAgEZQAACSCEgCARFACAJAISgAAEkEJAEAiKAEASAQlAACJoAQAIBGUAAAkghIAgERQAgCQCEoAABJBCQBAIigBAEgEJQAAiaAEACARlAAAJIISAIBEUAIAkAhKAAASQQkAQCIoAQBIBCUAAImgBAAgEZQAACSCEgCARFACAJAISgAAEkEJAEAiKAEASAQlAACJoAQAIBGUAAAkghIAgERQAgCQCEoAAAQlAAC74wolAACJoAQAIBGUAAAkghIAgERQAgCQCEoAABJBCQBAIigBAEgEJQAAiaAEACARlAAAJIISAIBEUAIAkAhKAAASQQkAQCIoAQBIBCUAAImgBAAgEZQAACSCEgCARFACAJAISgAAEkEJAEAiKAEASAQlAACJoAQAIBGUAAAkghIAgERQAgCQCEoAABJBCQBAIigBAEgEJQAAiaAEACARlAAAJIISAIBEUAIAkAhKAAASQQkAwBT/BqB8B/A1kppPAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mytt = fr.TernaryTree(n_modes=10)\n", "draw_tt(mytt)" ] }, { "cell_type": "markdown", "id": "27319beb", "metadata": {}, "source": [ "First lets add the left most branch. We can do this by adding a node at `xxxx`. " ] }, { "cell_type": "code", "execution_count": 4, "id": "cabdf2b1", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mytt.add_node(\"xxxx\")\n", "draw_tt(mytt)" ] }, { "cell_type": "markdown", "id": "a6898099", "metadata": {}, "source": [ "Because no nodes existed in the path to `xxxx` these were created too!\n", "\n", "If we wanted to add the node at `xxz`, then all the nodes to this path exist already." ] }, { "cell_type": "code", "execution_count": 5, "id": "d61f63ab", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mytt.add_node(\"xxz\")\n", "draw_tt(mytt)" ] }, { "cell_type": "markdown", "id": "e09fd343", "metadata": {}, "source": [ "Let's finish growing the BK tree above." ] }, { "cell_type": "code", "execution_count": 6, "id": "7e49c558", "metadata": {}, "outputs": [ { "data": { "image/png": "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77xTCQke7ewDAPlAQAkgYvz444+66aab3Krpu+++262cLlo0hLkld6yR0tOkfelSfJKUVEYqmhyaQ+3Y4YJkC5YtxZD1Vp5++ukhORYAFDTmUALwvX379umpp55S9erVtXbtWn3xxRcuBU9Ig0ljwWOpatJxNQP/hiiYdIcqWtSlOpo2bZr7G88991w9/fTT7m8HAL8joATgaytXrlSDBg3UvXt3dezYUfPnz1fdunUVrS655BL3N/773//WHXfcocsvv9wNhQOAnxFQAvAly2j2/PPPu546CyqnTp3qeuyKFSumaGd/4/Dhw93fvGLFCpdWaOTIke6cAIAfEVAC8J1ff/1VjRo10m233abWrVtr4cKFql9/f3qfGGJ/s+XYvOGGG3TrrbeqcePG7twAgN8QUALwDeuBe/nll1WtWjUtWbJEU6ZMcb2Uthd2rLK9yK13cvLkyVq8eLE7N7Zgh95KAH5CQAnAF9asWaNmzZq5uYMtW7Z0u95YLyUCrHfSzkmLFi3cSnc7V3bOAMAPCCgBeMp62saMGaNzzjnH7XU9fvx41wNXqlQp3pmD2DmxvJt2jr799lt3zt588016KwF4joASgGfWr1+vq6++Wm3atMnqgbOeNxyenSMb/rYeXJtjes0117hzCQBeIbE5AE+899576ty5s/v6ueeec4ElOI8AIhM9lADCKi0tza1atl61f/zjH66njWAy/1q1auXOoeWvtK+tx9LOMQCEEz2UAMJmwoQJuuWWW7Rr1y4988wzuv766xUXF8c7UEBzUW0+ZdeuXZWUlORWhjdt2pRzCyAs6KEEEHJ//fWX2rdvr+bNm+uCCy5wPWrWS0kwWXDsXFrvpM1DrVmzpptn2aFDB3fuASDU6KEEEFKWS7JTp07asmWLhg0b5gJLAsnQ91baSvk777zT5fB86aWXSMEEIKTooQQQEps3b3bD21dccYVLb2M9Z9ZjRjAZenaOLVelnfOzzz7braC398KCegAIBXooARS4Tz/91AU0f/zxh5544gndfPPNBJIe9lbafMoePXqobNmybieievXqeVUcAFGKHkoABWbbtm1uUUiDBg1UuXJltwe39YzRK+kdO/e2D7i9F5UqVXL7g3fr1s29VwBQUOihBFAgvvzySzekbdsBPvbYY+rSpYvi4/nM6if79u1zq+t79eqlihUrunmWdevW9bpYAKIArT2AoOzYsUN33323Lr30UlWoUEHz5893PWAEk/5j74m9N/YelS9f3uUBtaFwew8BIBj0UALIt5kzZ7pV26tWrdL//d//uVXFCQkJnNEIsHfvXg0dOlQPPvigGwq33so6dep4XSwAEYoeSgB5lp6ervvvv18XXXSRSpQooXnz5rmeLoLJyGHv1T333KO5c+e61EL2Xj7wwAPuvQWAvKKHEkCezJkzx/VKLlu2TP3791fPnj2VmJjIWYxge/bs0eOPP+7ezzPPPFOjR49WjRo1vC4WgAhCDyWAo2LbJfbr188NixYuXNgFltajRTAZ+ew9tPdy9uzZ7mt7jy243L17t9dFAxAh6KEEcEQLFixwvZKWKLt3797uUahQIc5clH5wsPmw9jj33HNdb2VKSorXxQLgc/RQAjjsUKgFFrVq1XJf2yIc67kimIxe1vs8YMAA915bcGn7gj/yyCPu/QeAQ6GHEkCuVq9erRYtWrihbctbaMPdSUlJnK0YYgt07AOEza+0DxXWW3nWWWd5XSwAPkQPJYBct+srWbKkihcvrunTp2vQoEEEkzHIPkBY7+TXX3+tTZs2aeLEia5uAMDB6KEEYpj1PlrgePrpp+eap9CQCgiZvZU2HH64bTRtJx4S2gOxiR5KIEbZ7ii2r/NXX32V6/MWSBJMIntv5ZH2ZH/44Yfd3u0AYg8BJRCj/vjjD9c7Wa1aNfd/hjIRrMaNG+uTTz5xuSy/++47TigQQwgogRgyePBgvfTSS9q6davb4aZIkSLauHGje+5IvU/A4dhwd+3atd02nLaYy1aH/+c//+GkATGC7S2AGGFB5GeffaalS5dqyJAhKlasmEtiffLJJ+eYN2lz4AgukVfZ50526tRJ8+fPd9kBLMWU7fEOILqxKAeIMZs3b9bHH3+s999/X++8847q1avn9nHu1q2bypUr53XxEGEsP2VaWpq++eYbvfvuuy6QtP9XrVpVTZo0UZs2bVShQgWviwkgxAgogRhi8yQzex+XL1/uhiivu+46zZgxQ3/++adKly6tPn36qGXLll4XFRHAkp/blo0bNmxwPeCWo7Jt27ZusZd9OGHFNxA7GPIGYkj2oezffvtN5cuX10MPPeQW58ydO9clrr7wwgs9LSMig+3z/d5777lpFLab0v333/+35zMDyuwfZABEJwJKIIpt377dLbzJrafo+OOP17p161zPUtmyZVWnTh33AI6GzY20RTf2b9++fV1dsy0bM+ta5vactljHUlTZw+oZgOjEKm8gStl8NkvfYqtu7aZ+sGXLlrnvW2AJ5JftomQ76bz66qsuBdXixYtzPG8Bpi3KsTmVNm8XQHQioASijC2IuP7663Xttde6OZKlSpXKtYeycuXKbr6krfYGgmH17Oeff3Z5KN94442/PW9D4pdccolatWql1q1buzoKILqwKAeIIhMmTHA7lezatUvPPPOMCyyZu4Zwr/q2dFQHs3mUb775prp27ep23Rk5cqSaNm3KmwNECXoogShgK7Tbt2+v5s2b64ILLnDDjjfccAPBJMIut2DS2Acb651ctGiRS3rerFkzdejQQX/99VfYywig4NFDCUS4KVOmqGPHjm5xzbBhw1xgSa8k/Mx6K1955RU3t/LYY491uzc1atTI62IBCAI9lEAEJyi/+eabdcUVV7jFENbzYz0+BJPwO6ujN910k6uzZ599tpt7aVM1tmzZ4nXRAOQTPZRABPr000/dDfmPP/7QE0884QJLAklEam+lzafs0aOHSys0atQolxgdQGShhxKIIDasbYsaGjRo4FZpL1y40PXsEEwiUlndvfXWW11dPvXUU13dtjq+bds2r4sGIA/ooQQixJdffumGtNesWaPHHntMXbp0YWs7RBXLizp8+HDdd999qlixoptnWbduXa+LBeAo0EMJ+JztMHL33Xfr0ksvVYUKFTR//nx169aNYBJRx/Kl3nHHHa6O27ag//jHP9xQuF0DAPyNHkrAx2bOnOlWbdtuN5Yc2lbFJiQkeF0sIOT27t2roUOH6sEHH1SlSpVcbyVbgwL+RQ8l4EPp6em6//77ddFFF6lEiRKaN2+e66khmESssLp+zz33aO7cuS61kF0Ldk3YtQHAf+ihBHxmzpw5rlfS9tru37+/evbsechk0UCs7L7z+OOPu+vB9qcfPXq0atSo4XWxAGRDDyXgE7ZdYr9+/dywXuHChV1g+cADDxBMIubZByq7FmbPnu2+tmvEgku7ZgD4Az2UgA8sWLDA9UpaoufevXu7R6FChbwuFuA7FkTafGJ7pKSk6NVXX3X/AvAWPZSAx0N5dmOsVauW+9oW4VjPC8EkkDvrvR8wYIC7Vnbv3u32BR80aJC7fgB4hx5KwCPff/+965W0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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mytt.add_node(\"xxxz\")\n", "mytt.add_node(\"xzx\")\n", "mytt.add_node(\"xzz\")\n", "draw_tt(mytt)" ] }, { "cell_type": "markdown", "id": "42e6e724", "metadata": {}, "source": [ "# Enumeration Scheme" ] }, { "cell_type": "markdown", "id": "4d591e56", "metadata": {}, "source": [ "One way to encode a fermionic Hamiltonian is majorana-string encoding. For each fermionic mode we build operators from a pair of majorana-operators.\n", "$$a^{\\dagger}_j = \\frac{1}{2}(\\gamma_{2j} - i\\gamma_{2j+1})$$\n", "$$a_j = \\frac{1}{2}(\\gamma_{2j} + i\\gamma_{2j+1})$$\n", "\n", "The first step in encoding $N$ fermionic modes is then to produce a set of $2N$ pauli-strings whcih have the same properties as the Majorana operators:\n", "\n", "1. Each Majorana is mapped to a Pauli string $m_{j} \\to S_{k}\\in S$ for $j,k=0,\\dots,2N-1$\n", "2. Commutation: The Pauli strings satisfy $\\{ S_{i},S_{j} \\}=2\\delta_{ij}\\mathbb{1}$\n", "3. The operators are linearly independent\n", "4. Algebraically independent: For all unequal subsets $A \\subseteq S$ and $B \\subseteq S$ such that $A \\ne B$, $\\prod_{S_{i}\\in A}S_{i}\\propto \\prod_{S_{j}\\in B}S_{j}$ is not fulfilled." ] }, { "cell_type": "markdown", "id": "9b604b3c", "metadata": {}, "source": [ "Ternary-trees give us a method to generate valid sets of pauli-strings, but we also need to specify which fermionic modes are represented by which pauli-strings, and which physical qubits map to which logical qubits.\n", "\n", "To understand why this is important it's easiest to go through some examples.\n", "\n", "Let's start by defining a JordanWigner Ternary Tree." ] }, { "cell_type": "code", "execution_count": 13, "id": "fad7df07", "metadata": {}, "outputs": [], "source": [ "from ferrmion.visualise import draw_tt, symplectic_matshow" ] }, { "cell_type": "code", "execution_count": 14, "id": "48055f63", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "jw = fr.JordanWigner(5)\n", "draw_tt(jw, type=\"linear\")" ] }, { "cell_type": "markdown", "id": "4660d64d", "metadata": {}, "source": [ "For each node on the tree, we build up two Pauli strings to be used as Majorana operators." ] }, { "cell_type": "code", "execution_count": 15, "id": "3c2f23e6", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'': ('x', 'y'),\n", " 'z': ('zx', 'zy'),\n", " 'zz': ('zzx', 'zzy'),\n", " 'zzz': ('zzzx', 'zzzy'),\n", " 'zzzz': ('zzzzx', 'zzzzy')}" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "jw.string_pairs" ] }, { "cell_type": "markdown", "id": "dad7a4a3", "metadata": {}, "source": [ "## Naive Enumeration\n", "\n", "The simplest (and default) way to create a JW encoding is with the naive enumeration, which assigns the node highest in the tree to mode 0 and qubit 0, with indices for both increasing in lock-step as we go down the tree." ] }, { "cell_type": "code", "execution_count": 19, "id": "4cb04064", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'': (0, 0), 'z': (1, 1), 'zz': (2, 2), 'zzz': (3, 3), 'zzzz': (4, 4)}\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "jw_naive = fr.JordanWigner(4)\n", "print(jw.default_enumeration_scheme())\n", "draw_tt(\n", " jw_naive, enumeration_scheme=jw_naive.default_enumeration_scheme(), type=\"linear\"\n", ")" ] }, { "cell_type": "markdown", "id": "2414ec7b", "metadata": {}, "source": [ "If we look at the Pauli strings generated by this encoding, we see a very simple structure.\n", "\n", "We'll plot each of the pauli-strings, with color indicating which Pauli operator is applied to which qubit." ] }, { "cell_type": "code", "execution_count": 20, "id": "fe57b8f9", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAALiCAYAAADJtC2QAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAJTJJREFUeJzt3QmQVfWd6PEf2ICo0AqiwrMFjGJcMXEbt8Sd50TjknJSGVRcZmpwN44Tw5hRM8kMmFhG30hALYXUTBQrE7dkxg2NMhNhBFwiRolGDLjFFRoxNgj96pwX+oFCROjue+6vP5+qU3Rfrrf/XOHb//7fc/+nW2tra2sAUPe613oAALQPQQdIQtABkhB0gCQEHSAJQQdIQtABkhB0gCQaaj2AKineY/Xhhx/G8uXLaz0UIJGNNtooGhoaolu3bh36dQT9j5YuXRqvvfZavP/++x36hANd0yabbBIDBw6Mnj17dtjX6Oat/xErVqyI559/vvwuOmDAgPIJ7+jvpEDX+cl/6dKl8eabb5Y//e+4447RvXvHrHabof9xdl5EvampqfwuCtCeevfuHT169Ijf/e53ZW823njj6AheFF31yeig75oA3TuhLwoGkISgAyQh6ABJCHqdO+200+L444+v9TAqpzib4IADDogTTzxxtdsXLVpUvvh96aWX1mxsVfTwww+XZ3at7Tj00ENrPcTKnblyxBFHxIgRIz72ez/84Q9j8803j5dffrnTx+UslzX48P2FESs+jJrq3hANm2weVfPaP/xDtPzm+Zp9/V7DdoyB3/nOJ96vOAV18uTJseeee8aPf/zjGDlyZHn7eeedF/369YvLL7+8E0Yb8c2f/irm/n5x1NJOW/eJcV/Z40/ep/jmV7wP46PuvvvuGD16dJx99tnRGX7xr8/G268uiVrqP2jTOPSUnf/kfYpvcpMmTYrdd989rr/++vibv/mb8vZ58+bFN77xjZgwYUJsu+220dkEfU1WfBity5dFLVX1LPgi5n946qmoB8OGDYtx48aVET/ssMPiscceiylTpsTMmTM79M0dqypi/sT8hVF1xfOxzTbbrHbbs88+GxdffHH8/d//fZx00kmdMo4i5r+f1xz1oKmpKa699to499xz46ijjoohQ4bEmWeeWX58yimn1GRMgk5qRczvuOOO8h/Y008/HZdddlkMHz681sOq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ww6L4447Lp555plaDw2g8hqiQo499tjVPv+nf/qnctY+Y8aM2HXXXWs2LoB6UKmgr2r58uXxk5/8JJYsWVIuvaxJS0tLeazU3NzciSMEqJZKLbkUnn766dhss82iV69eMXr06Ljjjjtil112WeN9x44dG42NjW1HU1NTp48XoCoqF/Sddtopnnzyyfif//mfOOuss2LUqFHx61//eo33HTNmTCxatKjtWLBgQaePF6Dug37ppZfG+++/376jiYiePXvGDjvsEHvttVc5Ax8+fHhce+21a7xvMYtfeUbMygOgq1rvoD/44IOx4447xuTJk6MjrVixYrV1cgDaOejFmSdXXnllXHbZZeVs+r/+679iQxVLKNOmTYuXXnqpXEsvPn/44Ydj5MiRG/zYANlt0Br6ySefHHPnzi1PNzz66KPjK1/5Srz44ovr/XhvvPFGnHrqqeU6+uGHHx4zZ86M++67L4488sgNGSZAl7DBL4r27t07rrjiijLsm2yySey2225xySWXxJw5c8pTDz+Nm266qZydF0ssRdynTp0q5gAdfR56Ed1f/vKX8dxzz5UxL47i4+L2q666Kr7//e+XL1oWpxwW7/wEoKJBP/TQQ+OJJ54oz0IZNmxYHHzwwXHmmWeWHxfHBx98UJ5++Ktf/ap9RwxA+wb97bffjunTp8eee+651qWYIvrFAUCFg14ssQBQHZV7pygA60fQAZIQdIAkBB0gCUEHSGKDL3BRbG07f/78WLp06Wq3f/nLX97QhwagM4Je7NlywgknlJtodevWLVpbW8vbi48Ln/Zt/wDUaMnlggsuiKFDh5Z7rhR7uBQXci52Stx7773LHRIBqJMZevEu0Yceeii23HLL6N69e3kcdNBB5UUpzj///HJbAADqYIZeLKn06dOn/LiI+quvvlp+PHjwYO8iBainGXqxTe5TTz1VLrvst99+8b3vfa+8fNwNN9wQ22+/ffuOEoCOC/q3vvWtWLJkSfnxt7/97fIiF8WOi/37948pU6as78MC0NlBHzFiRNvHxbVFi73Q33nnndhiiy3aznQBoE7OQy8uFF0cxZkuxcWcV3XzzTdv6NgA6IygF8ss//iP/1iepjhw4ECzcoB6DfrEiRNj8uTJccopp7TviADo3NMWi7f6H3DAAev7nwNQlaD/1V/9Vdxyyy3tOxoAOn/JpbgIdHHO+dSpU2OPPfaIHj16rPb7V1999fqPCoDOC/qvfvWrtgtEz5kzZ7Xfc9oiQB0F/Re/+EX7jgSADeICFwBJuMAFQBIucAGQhAtcACThAhcASbjABUASLnABkES7XOCi2HXxmGOOabvAxW233daeY6SD/WufFs/xethn1GjP26fU9KOJnrOqX+Bihx12cIELgHpcQ1+2bFkcfvjh8fzzz692e79+/bztH6Cegl5sxFXs5QJAgrNcTj755LjpppvadzQAdP4a+ocfflheN7TYPnevvfaKTTfddLXft30uQJ0Evdgy9/Of/3z58W9+85vVfs/2uQCdz/a5AEls0G6LCxcuLNfRn3322fLzXXfdNc4444xobGxsr/EB0NEvis6aNSs+85nPxA9+8IN45513yqNYNy9ue/zxx9f3YQHo7Bn617/+9fjyl78cN954YzQ0NLS9UFpcPPrCCy+MadOmre9DA9CZQS9m6KvGvHywhob4xje+EXvvvff6PiwAnb3k0rdv35g/f/7Hbl+wYEH06dNnfR8WgM4O+le/+tU488wzy424iogXx5QpU8oll6997Wvr+7AAdPaSy1VXXVWeb37qqaeWa+crtwQ466yzYty4cev7sAB0dtB79uwZ1157bYwdOzZ++9vflrcVZ7hssskm6/uQANTqPPRCEfDdd999Qx8GgM4M+oknnhiTJ08uXxAtPv5TNttss/KNRqNHj/ZGI4CqBb14B+jKfVo+6d2gLS0tMXHixPjlL38Zd99994aNEoD2DfqkSZPW+PHa/PrXv4599tnn03wJADr7tMV1sdNOO8Wjjz7akV8CgPZ6UbSYhRdvMFq6dOlqtxfbAmy00UYxfPhwTzZAlYP+4osvxgknnBBPP/10ua7e2tpa3r5yjX358uXtN0oAOm7J5YILLoihQ4fGG2+8UZ66+Mwzz5QbchX7uDz88MPr+7AAdPYMffr06fHQQw/FlltuGd27dy+Pgw46qHyj0fnnnx9PPPHE+j40AJ05Qy+WVFZuwlVE/dVXXy0/Hjx4cMydO3d9HxaAzp6h77bbbvHUU0+Vyy777bdffO973yu3A7jhhhti++23X9+HBaCzg/6tb30rlixZUn787W9/O4499tg4+OCDo3///uWuiwDUSdBHjBjR9vGOO+4Yzz33XHkZui222KLtTBcAKhz04iLQ6+Lmm29en/EA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2Wef8p3SW221VRx//PExd+7cWg+r0iZMmBB77LFH2xuK9t9//7jnnnuiXgl6B7vtttvioosuKk+Jevzxx2P48OExYsSIeOONNzr6S9e1JUuWlM9V8c2QdfPII4/EOeecEzNmzIgHHnggli1bFkcddVT5XLJmxTvLx40bF7Nnz45Zs2bFYYcdFscdd1w888wzUY+cttjBihl5MWu67rrr2vabKfZ0Oe+88+Kb3/xmR3/5FIoZ+h133FHOOFl3b775ZjlTL0L/hS98wVO3jvr16xff//7348wzz4x6Y4begZYuXVp+5z/iiCP+/xPevXv5+fTp0zvyS0MsWrSoLVB8suXLl8eUKVPKn2iKpZd6lGpzrqp56623yr8kW2+99Wq3F58/99xzNRsX+RU/CV544YVx4IEHxm677Vbr4VTa008/XQb8gw8+iM0226z8aXCXXXaJeiTokFCxlj5nzpz47//+71oPpfJ22mmnePLJJ8ufaP793/89Ro0aVS5T1WPUBb0DbbnllrHRRhvF73//+9VuLz7fZpttOvJL04Wde+658fOf/7w8U6jq20lXQc+ePWOHHXYoP95rr71i5syZce2118b1118f9cYaegf/RSn+gjz44IOr/ShcfF6va3RUV7EtUxHzYsngoYceiqFDh9Z6SHVpxYoV0dLSEvXIDL2DFacsFj/C7b333rHvvvvGNddcU77ocvrpp3f0l65r7733Xrzwwgttn8+bN6/8sbh4gW+77bar6diqvMxyyy23xF133VWei/7666+3XRyhd+/etR5eJY0ZMyaOPvro8u9UcVWg4vl7+OGH47777ou6VOy2SMf6l3/5l9btttuutWfPnq377rtv64wZMzzln+AXv/hFsQvox45Ro0Z57tZiTc9XcUyaNMlzthZnnHFG6+DBg8t/mwMGDGg9/PDDW++///7WeuU8dIAkrKEDJCHoAEkIOkASgg6QhKADJCHoAEkIOkASgg6QhKDDBnjppZfKC3AU2xKsTfFW8uI+Cxcu9FzToQSdLmvBggVxxhlnlNctLTZSGzx4cFxwwQXx9ttvt+vXOeCAA+K1114r91QpTJ48OTbffPN2/RpQEHS6pBdffLHcMO3555+PW2+9tdwIbOLEiW07Yb7zzjvt9rWKbxbFdsnFLB06kqDTZXcmLEJ7//33xxe/+MVyt71i172pU6fGK6+8Epdeeml5vyLCd95552r/bTG7LmbZqyquQFXMxDfeeOPyCkHFBRLWtORSfFzstFlcTKG4rTiuuOKKTvpTk52g0+UUs+9ie9Szzz77Y9vKFjPpkSNHxm233VbuL76u/u7v/i7+9m//Np544olyhn/ssceucemmiH6xhXLfvn3LZZjiuPjii9vlzwWCTpdTLLMUsd55553X+PvF7e+++268+eab6/yYxYUlvvKVr5T/7YQJE8r18ptuuulj9yt+Kih+r5iZF988iqO4jiW0B0Gny/qkGXgR33W16hWoGhoayvX5Z599doPGB5+WoNPlFNePLGbIawtucfuAAQPKtfLifh8N/7JlyzpppPDpCDpdTv/+/ePII4+MH/7wh/GHP/xhtd8rLtv24x//OE477bTy8yLsxTr3qss177///scec8aMGW0ff/jhhzF79uy1LukUM//ly5e3458I/h9Bp0u67rrrygsBjxgxIqZNm1aek37vvfeWoR82bFhcdtll5f0OO+yw8r7Fi52zZs2K0aNHR48ePT72eOPHjy8vzlyc7VKcQVOswRfnuK/JkCFDymumFqdIvvXWW2v8BgHrpdbXwINamTdvXnmN0q233rq1W7du5fU3TzzxxNYlS5a03eeVV15pPeqoo1o33XTT1h133LH1P//zP1sbGxvbrtNZPEbx391yyy3l9WKLa1PusssurQ899NDHro/67rvvtt02evTo1v79+5e3X3755Z38Jycr1xSFP7r88svj6quvjgceeCD+7M/+zPNC3RF0WMWkSZPKN/2cf/750b27FUnqi6ADJGEKApCEoAMkIegASQg6QBKCDpCEoAMkIegASQg6QBKCDhA5/F/84bPqn4dGJQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "symplectic_matshow(jw_naive)" ] }, { "cell_type": "markdown", "id": "daab039c", "metadata": {}, "source": [ "This is often thought of as \"the\" JordanWigner encoding, but we could assign each node in the tree to any of the N fermionic modes, and any of the N qubits. So really, there are $N^2$ JordanWigner encodings!" ] }, { "cell_type": "markdown", "id": "3ecb7b5b", "metadata": {}, "source": [ "## Enumerating Fermionic Modes\n", "\n", "As an example, let's swap modes 1 and 4, but keep the qubits the same." ] }, { "cell_type": "code", "execution_count": 22, "id": "13b5df5a", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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1qw45JBD4phjjomnnnqq1kMDqLyGqJCjjz56lc//+Z//uZy1z5gxI3beeeeajQugHlQq6CtbtmxZ/OxnP4vFixeXSy+r09LSUh4rNDc3d+AIAaqlUksuhSeffDI23XTT6NGjR5xxxhlx++23x0477bTa+44ZMyYaGxvbjqampg4fL0BVVC7oO+ywQzz++OPxP//zP3HmmWfGqFGj4re//e1q7zt69OhYtGhR27FgwYIOHy9A3Qf9kksuiffff3/DjiYiunfvHtttt13sscce5Qx8+PDhcc0116z2vsUsfsUZMSsOgM5qnYP+wAMPxLBhw2LSpEnRnpYvX77KOjkAGzjoxZknV1xxRVx66aXlbPq//uu/Yn0VSyjTpk2L559/vlxLLz6fOnVqjBw5cr0fGyC79VpDP/HEE2Pu3Lnl6YZHHnlkfOUrX4nnnntunR/v9ddfj5NPPrlcRz/00ENj5syZce+998bhhx++PsME6BTW+0XRXr16xeWXX16GfeONN45ddtklLr744pgzZ0556uGnceONN5az82KJpYj7lClTxBygvc9DL6L761//Op555pky5sVRfFzcfuWVV8b3v//98kXL4pTD4p2fAFQ06AcffHA89thj5Vko22+/fRx44IFx+umnlx8XxwcffFCefvib3/xmw44YgA0b9LfeeiumT58eu++++xqXYoroFwcAFQ56scQCQHVU7p2iAKwbQQdIQtABkhB0gCQEHSCJ9b7ARbG17QsvvBBLlixZ5fYvf/nL6/vQAHRE0Is9W4477rhyE60uXbpEa2treXvxceHTvu0fgBotuZx//vkxdOjQcs+VYg+X4kLOxU6Je+65Z7lDIgB1MkMv3iX64IMPxhZbbBFdu3YtjwMOOKC8KMV5551XbgsAQB3M0Islld69e5cfF1F/+eWXy48HDx7sXaQA9TRDL7bJfeKJJ8pll3322Se+973vlZePu/7662PbbbfdsKMEoP2C/q1vfSsWL15cfvztb3+7vMhFseNiv379YvLkyev6sAB0dNBHjBjR9nFxbdFiL/S33347Nt9887YzXQCok/PQiwtFF0dxpktxMeeV3XTTTes7NgA6IujFMss//dM/lacpDhgwwKwcoF6DPmHChJg0aVKcdNJJG3ZEAHTsaYvFW/3322+/df3PAahK0P/mb/4mbr755g07GgA6fsmluAh0cc75lClTYrfddotu3bqt8vtXXXXVuo8KgI4L+m9+85u2C0TPmTNnld9z2iJAHQX9V7/61YYdCQDrxQUuAJJwgQuAJFzgAiAJF7gASMIFLgCScIELgCRc4AIgiQ1ygYti18Wjjjqq7QIXt95664YcI+3sh1Ov9hyvg6YfT/C8ke8CF9ttt50LXADU4xr60qVL49BDD4158+atcnvfvn297R+gnoJebMRV7OUCQIKzXE488cS48cYbN+xoAOj4NfQPP/ywvG5osX3uHnvsEZtssskqv2/7XIA6CXqxZe7nP//58uPf/e53q/ye7XMBOp7tcwGSWK/dFhcuXFiuoz/99NPl5zvvvHOcdtpp0djYuKHGB0B7vyg6a9as+MxnPhM/+MEP4u233y6PYt28uO3RRx9d14cFoKNn6F//+tfjy1/+ctxwww3R0NDQ9kJpcfHoCy64IKZNm7auDw1ARwa9mKGvHPPywRoa4hvf+Ebsueee6/qwAHT0kkufPn3ihRde+NjtCxYsiN69e6/rwwLQ0UH/6le/Gqeffnq5EVcR8eKYPHlyueTyta99bV0fFoCOXnK58sory/PNTz755HLtfMWWAGeeeWaMHTt2XR8WgI4Oevfu3eOaa66JMWPGxO9///vytuIMl4033nhdHxKAWp2HXigCvuuuu67vwwDQkUE//vjjY9KkSeULosXHf86mm25avtHojDPO8EYjgKoFvXgH6Ip9Wj7p3aAtLS0xYcKE+PWvfx133XXX+o0SgA0b9IkTJ6724zX57W9/G3vttden+RIAdPRpi2tjhx12iIcffrg9vwQAG+pF0WIWXrzBaMmSJavcXmwLsNFGG8Xw4cM92QBVDvpzzz0Xxx13XDz55JPlunpra2t5+4o19mXLlm24UQLQfksu559/fgwdOjRef/318tTFp556qtyQq9jHZerUqev6sAB09Ax9+vTp8eCDD8YWW2wRXbt2LY8DDjigfKPReeedF4899ti6PjQAHTlDL5ZUVmzCVUT95ZdfLj8ePHhwzJ07d10fFoCOnqHvsssu8cQTT5TLLvvss09873vfK7cDuP7662Pbbbdd14cFoKOD/q1vfSsWL15cfvztb387jj766DjwwAOjX79+5a6LANRJ0EeMGNH28bBhw+KZZ54pL0O3+eabt53pAkCFg15cBHpt3HTTTesyHgA6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HlLljRkzJvbaa6/yndJbbrllHHvssTF37txaD6vSxo8fH7vttlvbG4r23XffuPvuu6NeCXo7u/XWW+PCCy8sT4l69NFHY/jw4TFixIh4/fXX2/tL17XFixeXz1XxzZC189BDD8XZZ58dM2bMiPvvvz+WLl0aRxxxRPlcsnrFO8vHjh0bs2fPjlmzZsUhhxwSxxxzTDz11FNRj5y22M6KGXkxa7r22mvb9psp9nQ599xz45vf/GZ7f/kUihn67bffXs44WXtvvPFGOVMvQv+FL3zBU7eW+vbtG9///vfj9NNPj3pjht6OlixZUn7nP+yww/7/E961a/n59OnT2/NLQyxatKgtUHyyZcuWxeTJk8ufaIqll3qUanOuqnnzzTfLvyRbbbXVKrcXnz/zzDM1Gxf5FT8JXnDBBbH//vvHLrvsUuvhVNqTTz5ZBvyDDz6ITTfdtPxpcKeddop6JOiQULGWPmfOnPjv//7vWg+l8nbYYYd4/PHHy59o/v3f/z1GjRpVLlPVY9QFvR1tscUWsdFGG8Vrr722yu3F51tvvXV7fmk6sXPOOSd++ctflmcKVX076Sro3r17bLfdduXHe+yxR8ycOTOuueaauO6666LeWENv578oxV+QBx54YJUfhYvP63WNjuoqtmUqYl4sGTz44IMxdOjQWg+pLi1fvjxaWlqiHpmht7PilMXiR7g999wz9t5777j66qvLF11OPfXU9v7Sde29996LZ599tu3z+fPnlz8WFy/wbbPNNjUdW5WXWW6++ea48847y3PRX3311baLI/Tq1avWw6uk0aNHx5FHHln+nSquClQ8f1OnTo1777036lKx2yLt61//9V9bt9lmm9bu3bu37r333q0zZszwlH+CX/3qV8UuoB87Ro0a5blbg9U9X8UxceJEz9kanHbaaa2DBw8u/23279+/9dBDD2297777WuuV89ABkrCGDpCEoAMkIegASQg6QBKCDpCEoAMkIegASQg6QBKCDuvh+eefLy/AUWxLsCbFW8mL+yxcuNBzTbsSdDqtBQsWxGmnnVZet7TYSG3w4MFx/vnnx1tvvbVBv85+++0Xr7zySrmnSmHSpEmx2WabbdCvAQVBp1N67rnnyg3T5s2bF7fccku5EdiECRPadsJ8++23N9jXKr5ZFNslF7N0aE+CTqfdmbAI7X333Rdf/OIXy932il33pkyZEi+99FJccskl5f2KCN9xxx2r/LfF7LqYZa+suAJVMRPv2bNneYWg4gIJq1tyKT4udtosLqZQ3FYcl19+eQf9qclO0Ol0itl3sT3qWWed9bFtZYuZ9MiRI+PWW28t9xdfW//wD/8Qf//3fx+PPfZYOcM/+uijV7t0U0S/2EK5T58+5TJMcVx00UUb5M8Fgk6nUyyzFLHecccdV/v7xe3vvPNOvPHGG2v9mMWFJb7yla+U/+348ePL9fIbb7zxY/crfioofq+YmRffPIqjuI4lbAiCTqf1STPwIr5ra+UrUDU0NJTr808//fR6jQ8+LUGn0ymuH1nMkNcU3OL2/v37l2vlxf0+Gv6lS5d20Ejh0xF0Op1+/frF4YcfHj/60Y/ij3/84yq/V1y27ac//Wmccsop5edF2It17pWXa95///2PPeaMGTPaPv7www9j9uzZa1zSKWb+y5Yt24B/Ivh/BJ1O6dprry0vBDxixIiYNm1aeU76PffcU4Z+++23j0svvbS83yGHHFLet3ixc9asWXHGGWdEt27dPvZ448aNKy/OXJztUpxBU6zBF+e4r86QIUPKa6YWp0i++eabq/0GAeuk1tfAg1qZP39+eY3SrbbaqrVLly7l9TePP/741sWLF7fd56WXXmo94ogjWjfZZJPWYcOGtf7nf/5na2NjY9t1OovHKP67m2++ubxebHFtyp122qn1wQcf/Nj1Ud955522284444zWfv36lbdfdtllHfwnJyvXFIU/ueyyy+Kqq66K+++/P/7iL/7C80LdEXRYycSJE8s3/Zx33nnRtasVSeqLoAMkYQoCkISgAyQh6ABJCDpAEoIOkISgAyQh6ABJCDpAEoIOEDn8X6zeuSeCA/FzAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from ferrmion.encode.ternary_tree import JordanWigner\n", "\n", "jw = JordanWigner(4)\n", "jw.enumeration_scheme = {\n", " \"\": (0, 0),\n", " \"z\": (2, 1),\n", " \"zz\": (1, 2),\n", " \"zzz\": (3, 3),\n", "}\n", "draw_tt(jw, enumeration_scheme=jw.enumeration_scheme, type=\"linear\")\n", "symplectic_matshow(jw)" ] }, { "cell_type": "markdown", "id": "452f8269", "metadata": {}, "source": [ "now the pauli operators for fermionic modes 3 and 4 have been swapped!" ] }, { "cell_type": "markdown", "id": "a5f7326f", "metadata": {}, "source": [ "## Enumerating Qubits\n", "\n", "We can do the same thing, but this time swap qubits 1 and 4, while leaving the fermion modes unaltered." ] }, { "cell_type": "code", "execution_count": 23, "id": "8b236e49", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAApQAAAHzCAYAAACe1o1DAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAKjxJREFUeJzt3QuQXPV9Juy3Z8ZIXGwwQ5AEOFphf4pBEhdfhAJ2ORIqBNiGNYlJguSYMpeUy7eUYm/FgC7IZp0KrDe1gnUtFxdUISUCXLFdGDD5AjgfZgWFPksIU0RKJG5Gg2G8wUEGYWlm63TrNmhGjKZn+vo8VSp6evr0Od0yxevfe/7nlPr7+/sDAAAj1DHSDQEAQKAEAKBqJpQAAFRFoAQAoCoCJQAAVREoAQCoikAJAEBVBEoAAKoiUAIAUBWBEgCAqgiUAABURaAEAKAqAiUAAFURKAEAqIpACQBAVQRKAACqIlACAFAVgRIAgKoIlAAAVEWgBACgKgIlAABVESgBAKiKQAkAQFUESgAAqiJQAgBQFYESAICqCJQAAFRFoAQAoCoCJQAAVREoAQCoikAJAEBVBEoAAKrSlXbW35+80ZNseyXpezPpOCgZd1Ry8KR6HxkAQNNov0D52qZk84qkd3XS+1glTL5VESq7Zybds5IpC5LDptTjSAEAmkKpv78Y07W44iO+eG+yYXmy5cdJqSPp7yt+sZ+NSnteN2leMvVLyTHnJKVSDQ8cAKDxtX6g/M0LyepLkp77k1Jn0r/jwN9j13YTz0pm3ZIcctxYHCkAQFNq7UC56bbk8S8kO7Yl/durf79SV9I5LvnQDcnxnx2NIwQAaHqtGSiLj7R+SfLkN8ZuH9MXJTOuVoEDAG2vNS8bNNZhslC8//qlY7sPAIAm0HoTyqLmXn1x7fY361b1NwDQ1lorUG59PvnRCcn2rbXbZ9ehySeetlAHAGhbrVN5F7n40UsrC3BqqdhfsYq8hXI5AEB7BsriOpPFpYFGYzX3gSj2V+y32D8AQBtqnUBZXLS8uF5kPRT73XB9ffYNAFBnHS1zO8XiDjiDXLR8+Y+TyV9Ouj6TfHXFGO2/2O+W+5LXNo/RDgAAGldr3Mu7uDd3+TaJAwPlumeThSuSHyxMTp2cHH7IGB5Dsf/NtyczFo3hTgAAGk9rBMre1TvvzT3Q3T9LZh6fnHtKDY6h2H9xHAAAbab5K+9idXXvY8WDAU+/b2Fy1Z3JIxuT0vzkz76z/7d5+sVk9jeT8RcnU/8yuWdtZbu1zwz7QHYeBwBAe2n+CeUbPcm2V/Z5+pElye8vTT4/N1lwRnLY+P2HydMWJ185O7n5suSJ5yoB9B2dyYnHHcCxFMfx+pbk4Ekj+ywAAE2o+SeUg4TJQhEgn3k5+cjUZOIRyUNPJb/31eT/WZjc/ODA137h1uQPZybL/ih574TkUx9OPnZC8v5jkoN2Ru67//+htx94PL2j+OEAABpf808o+94c9OliyliY8Z5k+47K4pwHr6wszPngVcmnPpR0vzN59uXkgZ8n6741cPsiSJ78u5XH+9t+3+Op8YXVAQDqrPknlB0HDfr02meT901MDh2fPPZvybTjkmOPrEwuzzk5uX/9nteVq+1jB27/5PPJyZMrj/e3/b7HM240Px0AQMNr/kA57qhBny6C4q4J44v/Jzn23Xt+Vzz+xf+pPO7oSHb0Vf7sct+65MkXhrf9vsfTXeUHAgBoLs0fKMdPHDRUFoHylJ0Txv354JTkHV3JFauSTb9MvvdY5ZzKwq5AOWzFcViQAwC0meYPlKVS0j2zeLD7qb6+ZP1eE8Zj3jJRLB4fc8Se3918aXLHo8nJX09WrU4um11ZyHP04W+//V4HsvM4AADaS/MHykL3rMqdarKnxt763eTjp1Z+nvneyjmRv/hV8tobyb3rknkn7dl8wUeS55cn/3FLcseXk1/+euB08u22Lyv2XxwHAECbaf5V3oUp85P1S4b8dVdn8t/mJ7OvSfr6k//yiSFWaO+1Qryowg9o++JOOVMWjMKHAQBoLqX+/uJWMy3gwXOSnn/c537eIzHh88m3FyTzzxjmBqXOZOJZyex7qt43AECzaZ1A+Yt7kp98vH77/9iPkmPPrd/+AQDqpDXOoSwcc05lSliqbYvfX0wnJ82r7B8AoA21TqAsVnvPuiXprN2FxYvzKbe+0ZdHdnyusn8AgDbUOoGycMhxyYduqNnuOkrJDY+ekI/O+9MsW7YsO3ZUf/4mAECzaa1AWTj+s8n0RbXZ1/TF+eoNT2TJkiVZunRp5s2bl5deeqk2+wYAaBCtsyhnb8VHWr80eXLZ2O1j+uJkxtLdVfeDDz6Yiy66qPx45cqVmT179tjtGwCggbTehLJQhLyTrk5m3Zp0HTp6C3WK9yner3jf4v33Om+yCJBr167NtGnTMnfuXBU4ANA2WnNCubffvJCsviTpub9yvciRXKdy13bFKvJi4U9xruYQivMor7nmmnIFPmfOnKxYsSITJkyo7jMAADSw1g+UheIjvnhvsuH6ZMt9ldskFne2yf4+emnP6yadnUz9YuXSQMNcza0CBwDaRXsEyr29tjnZfHvSuzrpfSzZ9sq+rxl3VNI9s3Jv7uJ2ioftdR/GA1As0Jk/f345XBYLd6688sp0dnZW/xkAABpI+wXKt3p9S7KtN+nblnSMS8Z1JwdPGrW3V4EDAK1OoKwRFTgA0Kpac5V3A7IKHABoVSaUNaYCBwBajUBZJypwAKBVqLzrRAUOALQKE8o6U4EDAM1OoGwQKnAAoFmpvBuEChwAaFYmlA1GBQ4ANBuBskGpwAGAZqHyblAqcACgWZhQNjgVOADQ6ATKJqECBwAalcq7SajAAYBGZULZZFTgAECjESiblAocAGgUKu8mpQIHABqFCWWTU4EDAPUmULYIFTgAUC8q7xahAgcA6sWEssWowAGAWhMoW5QKHACoFZV3i1KBAwC1YkLZ4lTgAMBYEyjbhAocABgrKu82oQIHAMaKCWWbUYEDAKNNoGxTKnAAYLSovNuUChwAGC0mlG1OBQ4AVEugpEwFDgCMlMqbMhU4ADBSJpQMoAIHAA6UQMmgVOAAwHCpvBmUChwAGC4TSvZLBQ4AvB2BkmFRgQMAQ1F5MywqcABgKCaUHBAVOADwVgIlI6ICBwB2UXkzIipwAGAXE0pGpQK/5ZZb8tRTT+WQQw5JqVTyrQJAGxEoGRW//vWvy2Gyq6vLNwoAbUblzah417vetd8w+dxzz+Xmm2/2bQNACxIoqYne3t5cfvnlOf/8833jANBiBErGXH9/f0499dT09PSUg+WECROydu1a3zwAtAiBkjG3a5HO0UcfnYcffjjnnXdePvCBD+TOO+/07QNAC7CCgjG3efPmPP7441mzZk0eeuihbN26NZMnTy6fVwkAND+rvBkTGzduzHXXXVcOk0W9XdTep59+embNmlWuv2fOnJkjjzzStw8ALcCEklG3ffv23HjjjbnpppuyaNGiLF++PEcccUT53EkAoPWYUDJmLrzwwjzwwANZtWpVzjzzzPJzfX195XMqd51XWUwuXQgdAJqbRTmMmTvuuCNXXHFFzjrrrHzta1+r/A+uo2N3gCwmmcXddX7yk5/4WwCAJiZQMqYWLlxYXpBz11135dprrx34P76Ojvz1X/915syZk2XLlpVv4wgANB+VNzVTXIOyu7t70HuBL126tBwsV6xY4VxLAGgyAiUNoTjX8qKLLirX4StXrszs2bPrfUgAwDCpvGkIxXSyuLzQtGnTMnfuXBU4ADQRE0oaigocAJqPQElDUoEDQPNQedOQVOAA0DxMKGloKnAAaHwCJU1BBQ4AjUvlTVNQgQNA4zKhpKmowAGg8QiUNCUVOAA0DpU3TUkFDgCNw4SSpqYCB4D6EyhpCSpwAKgflTctQQUOAPVjQklLUYEDQO0JlLQkFTgA1I7Km5akAgeA2jGhpKWpwAFg7AmUtAUVOACMHZU3bUEFDgBjx4SStqICB4DRJ1DSllTgADB6VN60JRU4AIweE0ramgocAKonUIIKHACqovIGFTgAVMWEEvaiAgeAAydQwtusAl+xYkV5EQ8AMDiVN+xnFfiJJ56YuXPn5uqrry5PLwGAfZlQwn6owAHg7QmUMAwqcAAYmsobhkEFDgBDM6GEA6ACB4B9CZQwAipwANhD5Q0joAIHgD1MKKEKKnAAEChhVKjAAWhnKm8YBSpwANqZyhtGuQL/5je/Wb6zThEyi9s2TpgwwXcMQEsTKGEMqMABaCcqbxgDKnAA2okJJdSpAn/mmWeyfv36fPKTnxzZm/f3J2/0JNteSfreTDoOSsYdlRw8aXQ/BAC8DYES6lCBz5w5M6eeemr+7d/+LT//+c9zwgknDO+NXtuUbF6R9K5Oeh+rhMm3KkJl98yke1YyZUFy2JRR/zwAsDeBEmqkp6cn8+fPL4fLGTNmlINkETA//elP5+/+7u/2P4l88d5kw/Jky4+TUkfS31f8Yj97K+153aR5ydQvJceck5RKY/HRAGhzAiXUuAK/4IIL8sMf/nDPv4Sl0tBTyt+8kKy+JOm5Pyl1Jv07Dnynu7abeFYy65bkkOOq/BQAMJBFOVBDTz31VO67776B/xJ2dGTZsmX7vnjTbcnd709eeqDy80jC5N7bFe9TvF/xvgAwikwooYbOP//88nSys7OzPK3cW7FAZ/r06ZWKe/2S5MlvjN2BTF+UzLhaBQ7AqBAooYY2btyYH/zgB1m3bl3WrFlT/nn79u3l3xULdR599NHkicVjGyZ3mb44Oenqsd8PAC1PoIQ6evPNN/P000/n+9//fj784Q/nnN/7ZbL64todwKxbk+M/W7v9AdCSBEpoFFufT350QrJ9a+322XVo8omnLdQBoCoW5UAjKM6bfPTSZMe22u632F+xirzYPwCMkEAJjaC4zmRxaaD+yvmUNVPsr9hvsX8AGCGBEhpBcdHy4nqR9VDsd8P19dk3AC1BoIR6K26nWNwBZ5DrTC7/cTL5y0nXZ5Kvrhij/Rf73XJf8trmMdoBAK2uq94HAG2vuDd3+TaJAwPlumeThSuSHyxMTp2cHH7IGH5Txf43357MWNT2fx0AHDiBEuqtd/XOe3MPdPfPkpnHJ+eeUoNjKPZfHAcAjIDKG+qpWF3d+1jxYMDT71uYXHVn8sjGpDQ/+bPv7P9tnn4xmf3NZPzFydS/TO5ZW9lu7TPDPpCdxwEAB86EEurpjZ5k2yv7PP3IkuT3lyafn5ssOCM5bPz+w+Rpi5OvnJ3cfFnyxHOVAPqOzuTE4w7gWIrjeH1LcvCkkX0WANqWQAn1NEiYLBQB8pmXk49MTSYekXzqvycPPZWcOS256y8GvvYLtyZ/ODNZ9keVn987Ibn9p8nGnuSgruT53uQz30l++WrS1Zks+lTy6dOGOp5egRKAAyZQQj31vTno08WUsTDjPZV/fmVe8rmPJbf988DXPfty8sDPk3XfGvh8ESRP/t3K466O5G8XJKf8p6Tn35MPXpWce3Jy6GBTz74aX1gdgJbgHEqo67+BBw369Npnk/dN3BP6/uDE5J3jB39dudo+duDzTz6fnDy58njSuythslBMO496Z/Kroe7u2DFu5J8FgLYlUEI9jTtq0KeLoLhrwrg/HR3Jjr7Kn13uW5c8+cLg26/ZXHnte7qHOp6hfgEAQxMooZ7GTxw0VBaB8pSdE8b9+eCU5B1dyRWrkk2/TL73WOWcysJbA+WvXqss1rnxkiHerDgOC3IAGAGBEuqpVEq6ZxYPdj/V15esH2LC+FbHvDu5+dLkjkeTk7+erFqdXDa7Um0fffie1237bfKfv5381SeT06cOeiA7jwMADpxFOVBv3bMG3HqxqLG3fnf4my/4SOXPLgtvHxhGi0tdXvy/kjnTks98dD93yimOAwBGwIQS6m3K/EHvlLO3uf81+fT/SO5Zlxz3xeR/bxz6tcUK8b0D5U83VCaX3388OeXrlT/rd64i363Y/5QFVX4QANpVqb+/mF8AdfXgOUnPP+5zP++RmPD55NsLkvlnDHODUmcy8axk9j1V7xuA9iRQQiP4xT3JTz5ev/1/7EfJsefWb/8ANDWVNzSCY86pTAlLtT2tub+YTk6aV9k/AIyQQAmNstp71i1JZ+0uLN7Xn2x9oy+P7PhcZf8AMEICJTSKQ45LPnRDzXbXUUpuWP3+fHTen2bZsmXZsaP68zcBaE8CJTSS4z+bTF9Um31NX5yv/s/1WbJkSZYuXZp58+blpZdeqs2+AWgpFuVAoykuvLB+afLksrHbx/TFyYylu6vuBx54IBdddFFKpVJWrlyZ2bNnj92+AWg5JpTQaIqQd9LVyaxbk65DR2+hTvE+xfsV71u8/17nTc6ZMydr167NiSeemLlz56rAATggJpTQyH7zQrL6kqTn/sr1Ikdyncpd2xWryIuFP8W5mkMozqO85ppryhV4ETJXrFiRCRMmVPcZAGh5AiU0QwX+4r3JhuuTLfdVbpNYvrPO/u5JUNrzuklnJ1O/WLk00DBXc6vAATgQAiU0k9c2J5tvT3pXJ72PJdte2fc1445KumdW7s1d3E7xsCkj2lVPT0/mz5+fhx56qLxw58orr0xnZ2f1nwGAliNQQjN7fUuyrTfp25Z0jEvGdScHTxq1t1eBAzAcAiXwtlTgAOyPVd7A27IKHID9MaEEhk0FDsBgBErggKnAAdibyhs4YCpwAPZmQgmMmAocAIESGBUqcID2pvIGqqYCB2hvKm9g1KjAAdqTQAmMOhU4QHtReQOjTgUO0F5MKIExowIHaA8CJTDmVOAArU3lDYw5FThAazOhBGpGBQ7QmgRKoOZU4ACtReUN1JwKHKC1mFACdaMCB2gNAiVQdypwgOam8gbqTgUO0NxMKIGGoQIHaE4CJdBwVOAAzUXlDTQcFThAczGhBBqWChygOQiUQMNTgQM0NpU30PBU4ACNzYQSaBoqcIDGJFACTUcFDtBYVN5A01GBAzQWE0qgaanAARqDQAk0PRU4QH2pvIGmpwIHqC8TSqBlqMAB6kOgBFqOChygtlTeQMtRgQPUlgkl0LJU4AC1IVACLU8FDjC2VN5Ay1OBA4wtE0qgbajAAcaGQAm0HRU4wOhSeQNtRwUOMLpMKIG2tXcFfuedd+aCCy5IqVSq92EBNB2BEmh7TzzxRE466aS2/x4ARkrlDbS9Ikz29/cP+T0899xzufnmm9v+ewIYikAJUNQ1+6m6e3t7c/nll+f888/3XQEMQqAE2I9icnnqqaemp6enHCwnTJiQtWvX+s4A9iJQAgxjcnn00Ufn4YcfznnnnZcPfOAD5UU8AFR07fwnAIPYvHlzHn/88axZsyYPPfRQtm7dmsmTJ5fPqwSgwipvgLfYuHFjrrvuunKYLOrtovY+/fTTM2vWrHL9PXPmzBx55JG+N4CdTCgB9rJ9+/bceOONuemmm7Jo0aIsX748RxxxRPncSQAGZ0IJMIgLL7ywfIvGVatW5cwzzyw/19fXVz6nctd5lcXk0oXQASzKARjUHXfckSuuuCJnnXVWvva1r5Wf6+joGBAgi8fr16/3DQJtzypvgCEsXLiwvCDnrrvuyrXXXjvgd8V0snj+lFNOybJly8q3cQRoVypvgGEorkHZ3d095L3A58yZkxUrVjjXEmhLAiVAlYpzLS+66KJyBb5y5crMnj3bdwq0FZU3QJWK6WRxeaETTzwxc+fOVYEDbceEEmCUqMCBdiVQAowyFTjQblTeAKNMBQ60GxNKgDGiAgfahUAJMMZU4ECrU3kDjDEVONDqTCgBakQFDrQqgRKgxlTgQKtReQPUmAocaDUmlAB1ogIHWoVACVBnKnCg2am8AepMBQ40OxNKgAahAgealUAJ0GBU4ECzUXkDNBgVONBsTCgBGpQKHGgWAiVAg1OBA41O5Q3Q4FTgQKMzoQRoEipwoFEJlABNRgUONBqVN0CTUYEDjcaEEqBJqcCBRiFQArRQBb5ixYryBBOgllTeAC1WgV999dXl6SVArZhQArQIFThQLwIlQItRgQO1pvIGaDEqcKDWTCgBWpQKHKgVgRKgxanAgbGm8gZocSpwYKyZUAK0CRU4MFYESoA2owIHRpvKG6DNqMCB0WZCCdCm9q7AZ8+eXb5t48SJE+t9WEATEigB2tyuCrywcuVK9wIHDpjKG6DN7arAp02b5l7gwIiYUAJQpgIHRkqgBGAAFThwoFTeAAygAgcOlAklAAdcgff392fTpk1573vfO7Jvr78/eaMn2fZK0vdm0nFQMu6o5OBJ/jagCQmUABxwBX7jjTfmz//8z7Nq1apceOGFw/sGX9uUbF6R9K5Oeh+rhMm3KkJl98yke1YyZUFy2BR/O9AEBEoA3lZPT0/mz5+fBx98MJdffnm++93v5re//W2mTp2ap556Kp2dnUNPIl+8N9mwPNny46TUkfT3Fb/Y33+a9rxu0rxk6peSY85JSiV/U9CgBEoAhl2BL1q0KN/61rcGPP/3f//3+eM//uN9N/jNC8nqS5Ke+5NSZ9K/YwT/ldq53cSzklm3JIcc528LGpBFOQAM7z8YHR3513/91/I/dymVSlm8eHE5bA6w6bbk7vcnLz1Q+XkkYXLv7Yr3Kd6veF+g4QiUAAzLD3/4w9x5553p6ysq6+xenLNhw4bccccdu55InlicrL442b416d8+Ot9u8T7F+xXvW7x/sR+gYai8ARiWYjr5jW98I2vWrMm//Mu/ZPv2PWHxXe96V1599dVK2HvyG2P/jU5fnJx09djvBxgWgRKAA1YsyClC5bp163L33Xfn5Zdfzv9742cqE8RamXVrcvxna7c/YEgCJQDV2/p88qMTKrV0rXQdmnziaQt1oAE4hxKA6hTnMz56abJjW22/yWJ/xSpy51NC3QmUAFSnuM5kcWmg0VqAM1zF/or9FvsH6kqgBKA6xUXLi+tF1kOx3w3X12ffwG4CJQAjV9xOsbgDziDXmVz+42Tyl5OuzyRfXTFGX3Kx3y33Ja9tHqMdAMPRNaxXAcBgintzl2+TODBQrns2Wbgi+cHC5NTJyeGHjOHXV+x/8+3JjEX+jqBOBEoARq539c57cw9098+Smccn555Sgy+32H9xHEDdqLwBGJlidXXvY8WDAU+/b2Fy1Z3JIxuT0vzkz76z/7d5+sVk9jeT8RcnU/8yuWdtZbu1zwz7QHYeB1AvJpQAjMwbPcm2V/Z5+pElye8vTT4/N1lwRnLY+P2HydMWJ185O7n5suSJ5yoB9B2dyYnHHcCxFMfx+pbk4Ekj+yxAVQRKAEZmkDBZKALkMy8nH5ma/HZH8onrkl++mnR1Jos+lXz6tD2v/cKtyR/OTJb9UeXn905Ibv9psrEnOWjnf6E+9d+Th55KzpyW3PUX+zueXoES6kSgBGBk+t4c9OliyliY8Z7k168nf7sgOeU/JT3/nnzwquTck5NDxyfPvpw88PNk3bcGbl8EyZN/d8/PX5mXfO5jyW3//HbHU+MLqwO7OYcSgJHpOGjQp9c+m7xvYiU0Tnp3JUwWJh6RHPXO5Fdb97yuXG0fO3D7J59PTp685+c/ODF55/jhHM84f5NQJwIlACMz7qhBny6C4t4Txl3WbE529CXv6d75H6COys/Fn13uW5c8+cLg27/98ex8Y6DmBEoARmb8xEFDZREoT9lrwlj41WuVxTY3XrLnuQ9OSd7RlVyxKtn0y+R7j1XOqSwccKAsjsOCHKgbgRKAkSmVku6ZxYPdT/X1JevfMmHc9tvkP387+atPJqdP3fP8Me9Obr40uePR5OSvJ6tWJ5fNrlTjRx9+QAey8ziAerEoB4CR65414NaLRY299bsDL1V58f9K5kxLPvPRfTdf8JHKn10W3j6C6WRxp5ziOIC6MaEEYOSmzB/0Tjm7/HRDZfL4/ceTU75e+bN+5yrwoVaIvzVQzv2vyaf/R3LPuuS4Lyb/e+NbNir2P2WBv0Woo1J/f/H/HwFghB48J+n5x33u5z0SEz6ffHtBMv+MYW5Q6kwmnpXMvqfqfQMjJ1ACUJ1f3JP85OP1+xY/9qPk2HPrt39A5Q1AlY45pzIlLNX2tPz+Yjo5aV5l/0BdOYcSgOpXe8+6Jems3YXF+/qTrW/05ZEdn6vsH6grgRKA6h1yXPKhG2r2TXaUkhsePSEfnfenWbZsWXbsqP78TWDkBEoARsfxn02mL6rNtzl9cb56wxNZsmRJli5dmnnz5uWll16qzb6BfViUA8DoKS4csn5p8uSysftWpy9OZizdXXU/8MADueiii1IqlbJy5crMnj177PYNDMqEEoDRU4S8k65OZt2adB06egt1ivcp3q943+L99zpvcs6cOVm7dm2mTZuWuXPnqsChDkwoARgbv3khWX1J0nN/5XqRI7lO5a7tilXkxcKf4lzNIRTnUV5zzTXlCrwImStWrMiECROq+wzAsAiUAIxtBf7ivcmG65Mt91Vuk1i+s87+7qlR2vO6SWcnU79YuTTQMFdzq8Ch9gRKAGrjtc3J5tuT3tVJ72PJtlf2fc24o5LumZV7cxe3Uzxsyoh21dPTkwULFuTBBx8sL9y58sor09nZWf1nAAYlUAJQH69vSbb1Jn3bko5xybju5OBJo/b2KnCoHYESgJamAoexZ5U3AC3NKnAYeyaUALQFFTiMHYESgLaiAofRp/IGoK2owGH0mVAC0JZU4DB6BEoA2poKHKqn8gagranAoXomlACgAoeqCJQAsBcVOBw4lTcA7EUFDgfOhBIABmEVOAyfQAkA+6ECh7en8gaA/VCBw9szoQSAYVCBw9AESgA4ACpw2JfKGwAOgAoc9mVCCQAjoAKHPQRKAKiCChxU3gBQFRU4mFACwKhQgdPOVN4AMIpU4LQjq7wBYBSpwGlHJpQAMAZU4LQTgRIAxpAKnHag8gaAMaQCpx2YUAJADajAaWUCJQDUkAqcVqTyBoAaUoHTikwoAaAOVOC0EoESAOpIBU4rUHkDQB2pwGkFJpQA0ABU4DQzgRIAGogKnGak8gaABqICpxmZUAJAA1KB00wESgBoYCpwmoHKGwAamAqcZmBCCQBNQAVOIxMoAaCJqMBpRCpvAGgiKnAakQklADR5Bb5gwYLcdtttKZVK9T4s2pRACQBN7KGHHsrRRx+dqVOnpqurq96HQ5sSKAGgyfX39+93Ovncc8/l/vvvz6WXXlrT46J9OIcSAJrc21Xdvb29ufzyy3P++efX7JhoLwIlALT49PLUU09NT09POVhOmDAha9eurfdh0WIESgBog+llcZ7lww8/nPPOOy8f+MAHcuedd9b70Gghzt4FgBa2efPmPP7441mzZk15Ac/WrVszefLk8nmVMFosygGAFrNx48Zcd9115TBZ1NtF7X366adn1qxZ5fp75syZOfLII+t9mLQQE0oAaCHbt2/PjTfemJtuuimLFi3K8uXLc8QRR5TPnYSxYkIJAC3owgsvLN+mcdWqVTnzzDPLz/X19ZXPqXQBdEabRTkA0ILuuOOOXHHFFTnrrLPyta99rfxcR0fH7jBZTDJfffXVOh8lrUKgBIAWtXDhwvKCnLvuuivXXnvt7ueLcyrfeOONnHzyyVm2bFn5No5QDZU3ALSB4hqU3d3dg94LfM6cOVmxYoXzLBkxgRIA2lhxnuVFF11UrsJXrlyZ2bNn1/uQaEIqbwBoY8V0sri00LRp0zJ37lwVOCNiQgkAqMCpikAJAOymAmckVN4AwG4qcEbChBIA2IdV4BwIgRIAGJIKnOFQeQMAQ1KBMxwmlADA21KBI1ACAKNCBc5gVN4AwLCpwBmMyhsAOGAqcPYmUAIAI6YCp6DyBgBGTAVOwYQSAKiaCry9CZQAwKhRgbcnlTcAMGpU4O3JhBIAGHUq8PYiUAIAY0YF3h5U3gDAmFGBtwcTSgBgzKnAW5tACQDUjAq8Nam8AYCaUYG3JhNKAKDmVOCtRaAEAOpGBd4aVN4AQN2owFuDCSUAUHcq8OYmUAIADUMF3pxU3gBAw1CBNycTSgCg4ajAm4tACQA0LBV4c1B5AwANSwXeHEwoAYCGpwJvbAIlANA0VOCNSeUNADQNFXhjMqEEAJqOCryxCJQAQNNSgTcGlTcA0LRU4I3BhBIAaHoq8PoSKAGAlqECrw+VNwDQMlTg9WFCCQC0XQXe39+fUqk0sjfv70/e6Em2vZL0vZl0HJSMOyo5eFLalUAJALRVBf7qq6/mjDPOyJ/8yZ/kqquuGt4bvbYp2bwi6V2d9D5WCZNvNe6opHtm0j0rmbIgOWxK2oVACQC0tJ6enixYsCAPPvhgFi9enHXr1uUf/uEfMn78+Dz33HP5nd/5naEnkS/em2xYnmz5cVLqSPr7il/sZ2+lPa+bNC+Z+qXkmHOSkU5Dm4RACQC0TQW+ZMmS3c91dnZm4cKF+Zu/+Zt9N/jNC8nqS5Ke+5NSZ9K/48B3Wtq53cSzklm3JIccl1YlUAIAbWHNmjU57bTTyuFyl0GnlJtuSx7/QrJjW9K/vfodl7qSznHJh25Ijv9sWpFV3gBAy9u2bVsuuOCCAWFy1/O7J5RFxf3E4mT1xcn2raMTJgvF+xTvV7xv8f7FflqMCSUA0PJ+/etf5+yzz87jjz+e3/72t+XnOjo60tfXV/7npk2bMvnVW5InvzH2BzN9cXLS1WklAiUA0DaKMLlhw4Y88cQT5cU5//RP/5Qnn3wyP/veX+T9//7XtTuQWbe2VP0tUAIA7W3r88mPTqjU0rXSdWjyiadbZqGOcygBgPZVnM/46KWVBTi1tGNbZRV5i5xPKVACAO2ruM5kcWmg0VqAM1zF/or9FvtvAQIlANC+iouWF9eLrIdSZ7Lh+rQCgRIAaE/F7RSLO+AMcdHy5T9OJn856fpM8tUVY7D//h3JlvuS1zan2XXV+wAAAOqiuDd3+TaJ+wbKdc8mC1ckP1iYnDo5OfyQMTqGUkey+fZkxqI0M4ESAGhPvat33pt7X3f/LJl5fHLuKWN8DP19leNocipvAKD9FKurex8rHuzzq/ctTK66M3lkY1Kan/zZd/b/Vk+/mMz+ZjL+4mTqXyb3rK1st/aZYR3IzuNobiaUAED7eaMn2fbKoL96ZEny+0uTz89NFpyRHDZ+/2HytMXJV85Obr4seeK5SgB9R2dy4nAvMVkcx+tbkoMnpVkJlABA+xkiTBaKAPnMy8lHpibj35H8wTeT7TuS7X3JV+Yll83Z89ov3Jr84cxk2R9Vfn7vhOT2nyYbe5KDupJ/35rM/dbQ2+85nl6BEgCgqfS9OeSviiljYcZ7kvEHJf+8KDlkXLL1jWT6XyUXfDjpfmfy7MvJAz9P1n1r4PZFkDz5dyuP33nw0NsPPJ4aX1h9lDmHEgBoPx0HDfmrtc8m75uYHDo+6eyohMHCtu2VUy/793pdudo+duD2Tz6fnDy58nh/2w88np0valIqbwCg/Yw7ashfFUFx14SxUNTWH/tmpca+9k+To3ZOFzs6kh19lT9dO6+Nft+65MkXhrf9wOPpTjMzoQQA2s/4iUOGyiJQnrJzwlg44tBKrb35b5OVjyQvvVp5/oNTknd0JVesSjb9MvneY5VzKgt7B8qhtt+tOI4mXpBTECgBgPZTKiXdM4sHA57u60vWv2XCuMuEwytV9v/3dOXnY96d3HxpcsejyclfT1atTi6bnUw8Ijn68LfffueB7DyO5iZQAgDtqXtW5U41eylq7K3fTT5+auXnYpr4H69XHr/6m+Sfn05+b69h4oKPJM8vT/7jluSOLye//PXAMPp225f3XxxHk3MOJQDQnqbMT9Yv2e9Lnn0lufzmykKaYkHNl85KZgwyvdx7hXhRhQ97++JOOVMWpNmV+vuLjwcA0IYePCfp+cdB7+c9EhM+n3x7QTL/jGG8uNSZTDwrmX1Pmp1ACQC0r1/ck/zk4/Xb/8d+lBx7bpqdcygBgPZ1zDmVKWGpxmcBlrqSSfMq+28BAiUA0N6rvWfdknTW+MLineOT026u7L8FCJQAQHs75LjkQzfUdp8fur6y3xYhUAIAHP/ZZPqi2nwP0xenvL8WIlACABRmXF0Je2Np+uJkxtKW+76t8gYA2Num25LHv5Ds2Jb0bx+FtNVVOUezqNVbbDK5i0AJAPBWv3khWX1J0nN/5XqRI7lOZWnndsUq8mLhTwudM/lWAiUAwGCKe7+8eG+y4fpky32V2yQWd7Yp3/dmyGiV3a+bdHYy9YuVSwO1yGruoQiUAABv57XNyebbk97VSe9jybZX9n3NuKOS7pmVe3MXt1M8bK97MLY4gRIA4EC9viXZ1pv0bUs6xiXjupODJ7Xt9yhQAgBQFZcNAgCgKgIlAABVESgBAKiKQAkAQFUESgAAqiJQAgBQFYESAICqCJQAAFRFoAQAoCoCJQAAVREoAQCoikAJAEBVBEoAAKoiUAIAUBWBEgCAqgiUAABURaAEAKAqAiUAAFURKAEAqIpACQBAVQRKAACqIlACAFAVgRIAgKoIlAAAVEWgBACgKgIlAABVESgBAKiKQAkAQFUESgAAqiJQAgBQFYESAICqCJQAAKQa/xf0msHK6UNL3wAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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rDjssMPiuOOOi2eeeabWQwOovIaokGOPPXaVz//xH/+xnLXPmDEjdt1115qNC6AeVCroK1u2bFn89Kc/jcWLF5dLL6vT2tpaHiu0tLR04ggBqqVSSy6Fp59+OjbbbLPo1atXjB49OqZMmRK77LLLau87duzYaGxsbD+ampo6fbwAVVG5oO+0007x5JNPxn/913/FWWedFaNGjYrf/OY3q73vmDFjYuHChe1Hc3Nzp48XoO6Dfumll8YHH3ywYUcTET179oztt98+9tprr3IGPnz48LjuuutWe99iFr/ijJgVB0BXtc5Bf/DBB2OHHXaISZMmRUdavnz5KuvkAGzgoBdnnlx11VVx2WWXlbPp//iP/4j1VSyhTJs2LV566aVyLb34/OGHH46RI0eu92MDZLdea+gnn3xyzJ07tzzd8Oijj46vfOUr8eKLL67z47355ptx6qmnluvohx9+eMycOTPuu+++OPLII9dnmABdwnq/KNq7d++44ooryrBvsskmsdtuu8Ull1wSc+bMKU89/DRuvvnmcnZeLLEUcZ86daqYA3T0eehFdH/1q1/Fc889V8a8OIqPi9uvvvrq+P73v1++aFmccli88xOAigb90EMPjSeeeKI8C2XHHXeMgw8+OM4888zy4+L48MMPy9MPf/3rX2/YEQOwYYP+zjvvxPTp02PPPfdc41JMEf3iAKDCQS+WWACojsq9UxSAdSPoAEkIOkASgg6QhKADJLHeF7gotradP39+LFmyZJXbv/zlL6/vQwPQGUEv9mw54YQTyk20unXrFm1tbeXtxceFT/u2fwBqtORywQUXxLBhw8o9V4o9XIoLORc7Je69997lDokA1MkMvXiX6EMPPRRbbrlldO/evTwOOuig8qIU559/frktAAB1MEMvllT69OlTflxE/dVXXy0/HjJkiHeRAtTTDL3YJvepp54ql13222+/+N73vldePu7GG2+M7bbbbsOOEoCOC/q3vvWtWLx4cfnxt7/97fIiF8WOi/3794/Jkyev68MC0NlBHzFiRPvHxbVFi73Q33333dhiiy3az3QBoE7OQy8uFF0cxZkuxcWcV3bLLbes79gA6IygF8ss//AP/1Cepjhw4ECzcoB6DfqECRNi0qRJccopp2zYEQHQuactFm/1P+CAA9b1XwegKkH/q7/6q7j11ls37GgA6Pwll+Ii0MU551OnTo099tgjevToscqfX3PNNes+KgA6L+i//vWv2y8QPWfOnFX+zGmLAHUU9F/+8pcbdiQArBcXuABIwgUuAJJwgQuAJFzgAiAJF7gASMIFLgCScIELgCQ2yAUuil0XjznmmPYLXNx+++0bcox0sOZRoz3H6+DHh1zoefuUTvSMVf8CF9tvv70LXADU4xr60qVL4/DDD4/nn39+ldv79evnbf8A9RT0YiOuYi8XABKc5XLyySfHzTffvGFHA0Dnr6F/9NFH5XVDi+1z99prr9h0001X+XPb5wLUSdCLLXM///nPlx//9re/XeXPbJ8L0PlsnwuQxHrttrhgwYJyHf3ZZ58tP991113jjDPOiMbGxg01PgA6+kXRWbNmxWc+85n4wQ9+EO+++255FOvmxW2PP/74uj4sAJ09Q//6178eX/7yl+Omm26KhoaG9hdKi4tHX3jhhTFt2rR1fWgAOjPoxQx95ZiXD9bQEN/4xjdi7733XteHBaCzl1z69u0b8+fP/9jtzc3N0adPn3V9WAA6O+hf/epX48wzzyw34ioiXhyTJ08ul1y+9rWvrevDAtDZSy5XX311eb75qaeeWq6dr9gS4Kyzzoorr7xyXR8WgM4Oes+ePeO6666LsWPHxu9+97vytuIMl0022WRdHxKAWp2HXigCvvvuu6/vwwDQmUE/8cQTY9KkSeULosXHf8pmm21WvtFo9OjR3mgEULWgF+8AXbFPyye9G7S1tTUmTJgQv/rVr+Luu+9ev1ECsGGDPnHixNV+vCa/+c1vYp999vk0XwKAzj5tcW3stNNO8eijj3bklwBgQ70oWszCizcYLVmyZJXbi20BNtpooxg+fLgnG6DKQX/xxRfjhBNOiKeffrpcV29raytvX7HGvmzZsg03SgA6bsnlggsuiGHDhsWbb75Znrr4zDPPlBtyFfu4PPzww+v6sAB09gx9+vTp8dBDD8WWW24Z3bt3L4+DDjqofKPR+eefH0888cS6PjQAnTlDL5ZUVmzCVUT91VdfLT8eMmRIzJ07d10fFoDOnqHvtttu8dRTT5XLLvvtt19873vfK7cDuPHGG2O77bZb14cFoLOD/q1vfSsWL15cfvztb387jj322Dj44IOjf//+5a6LANRJ0EeMGNH+8Q477BDPPfdceRm6LbbYov1MFwAqHPTiItBr45ZbblmX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ekiVN3bs2Nhnn33Kd0pvtdVWcfzxx8fcuXNrPaxKGz9+fOyxxx7tbyjaf//945577ol6Jegd7Pbbb4+LLrqoPCXq8ccfj+HDh8eIESPizTff7OgvXdcWL15cPlfFD0PWziOPPBLnnHNOzJgxIx544IFYunRpHHXUUeVzyeoV7yy/8sorY/bs2TFr1qw47LDD4rjjjotnnnkm6pHTFjtYMSMvZk3XX399+34zxZ4u5513Xnzzm9/s6C+fQjFDnzJlSjnjZO299dZb5Uy9CP0XvvAFT91a6tevX3z/+9+PM888M+qNGXoHWrJkSfmT/4gjjvifJ7x79/Lz6dOnd+SXhli4cGF7oPhky5Yti8mTJ5e/0RRLL/Uo1eZcVfP222+X3yRbb731KrcXnz/33HM1Gxf5Fb8JXnjhhXHggQfGbrvtVuvhVNrTTz9dBvzDDz+MzTbbrPxtcJdddol6JOiQULGWPmfOnPjP//zPWg+l8nbaaad48skny99o/vVf/zVGjRpVLlPVY9QFvQNtueWWsdFGG8Ubb7yxyu3F59tss01Hfmm6sHPPPTd+8YtflGcKVX076Sro2bNnbL/99uXHe+21V8ycOTOuu+66uOGGG6LeWEPv4G+U4hvkwQcfXOVX4eLzel2jo7qKbZmKmBdLBg899FAMGzas1kOqS8uXL4/W1taoR2boHaw4ZbH4FW7vvfeOfffdN6699tryRZfTTz+9o790XXv//ffjhRdeaP983rx55a/FxQt82267bU3HVuVllltvvTXuuuuu8lz0119/vf3iCL1796718CppzJgxcfTRR5ffU8VVgYrn7+GHH4777rsv6lKx2yId65//+Z/btt1227aePXu27bvvvm0zZszwlH+CX/7yl8UuoB87Ro0a5blbg9U9X8UxceJEz9kanHHGGW1Dhgwp/24OGDCg7fDDD2+7//772+qV89ABkrCGDpCEoAMkIegASQg6QBKCDpCEoAMkIegASQg6QBKCDuvhpZdeKi/AUWxLsCbFW8mL+yxYsMBzTYcSdLqs5ubmOOOMM8rrlhYbqQ0ZMiQuuOCCeOeddzbo1znggAPitddeK/dUKUyaNCk233zzDfo1oCDodEkvvvhiuWHa888/H7fddlu5EdiECRPad8J89913N9jXKn5YFNslF7N06EiCTpfdmbAI7f333x9f/OIXy932il33pk6dGq+88kpceuml5f2KCN95552r/LvF7LqYZa+suAJVMRPfeOONyysEFRdIWN2SS/FxsdNmcTGF4rbiuOKKKzrpv5rsBJ0up5h9F9ujnn322R/bVraYSY8cOTJuv/32cn/xtfV3f/d38bd/+7fxxBNPlDP8Y489drVLN0X0iy2U+/btWy7DFMfFF1+8Qf67QNDpcoplliLWO++882r/vLj9vffei7feemutH7O4sMRXvvKV8t8dP358uV5+8803f+x+xW8FxZ8VM/Pih0dxFNexhA1B0OmyPmkGXsR3ba18BaqGhoZyff7ZZ59dr/HBpyXodDnF9SOLGfKaglvcPmDAgHKtvLjfH4d/6dKlnTRS+HQEnS6nf//+ceSRR8YPf/jD+MMf/rDKnxWXbfvJT34Sp512Wvl5EfZinXvl5ZoPPvjgY485Y8aM9o8/+uijmD179hqXdIqZ/7JlyzbgfxH8f4JOl3T99deXFwIeMWJETJs2rTwn/d577y1Dv+OOO8Zll11W3u+www4r71u82Dlr1qwYPXp09OjR42OPN27cuPLizMXZLsUZNMUafHGO++oMHTq0vGZqcYrk22+/vdofELBOan0NPKiVefPmldco3Xrrrdu6detWXn/zxBNPbFu8eHH7fV555ZW2o446qm3TTTdt22GHHdr+/d//va2xsbH9Op3FYxT/3q233lpeL7a4NuUuu+zS9tBDD33s+qjvvfde+22jR49u69+/f3n75Zdf3sn/5WTlmqLw3y6//PK45ppr4oEHHog/+7M/87xQdwQdVjJx4sTyTT/nn39+dO9uRZL6IugASZiCACQh6ABJCDpAEoIOkISgAyQh6ABJCDpAEoIOkISgA0QO/w8YHrfIlN0LmQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "jw = JordanWigner(4)\n", "jw.enumeration_scheme = {\n", " \"\": (0, 0),\n", " \"z\": (1, 2),\n", " \"zz\": (2, 1),\n", " \"zzz\": (3, 3),\n", "}\n", "draw_tt(jw, enumeration_scheme=jw.enumeration_scheme, type=\"linear\")\n", "symplectic_matshow(jw)" ] }, { "cell_type": "markdown", "id": "b34b40d4", "metadata": {}, "source": [ "here the Pauli-strings for each fermionic mode contain the same operators, but the order of operators in the string (and therefore which qubit they apply to) has been changed!" ] }, { "cell_type": "markdown", "id": "0fe5c6af", "metadata": {}, "source": [ "If you want to know more about why this is important, see the notebook on [Optimising for Pauli-weight](https://ferrmion.readthedocs.io/en/latest/notebooks/pauli_weight.html) or the [Reduced Entanglement Ternary Tree](https://ferrmion.readthedocs.io/en/latest/notebooks/rett.html)." ] } ], "metadata": { "kernelspec": { "display_name": "ferrmion (3.13.1)", "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.13.1" } }, "nbformat": 4, "nbformat_minor": 5 }