{ "cells": [ { "cell_type": "markdown", "id": "edfd0113086d17c1", "metadata": {}, "source": [ "# Statevector converter" ] }, { "cell_type": "markdown", "id": "99e392c0b1d8e845", "metadata": {}, "source": [ "## Overview\n", "\n", "The Statevector converter enables seamless conversion of quantum states between different quantum computing frameworks:\n", "- **Perceval**: Photonic quantum computing framework\n", "- **Qiskit**: IBM's quantum computing toolkit\n", "- **QuTiP**: Quantum Toolbox in Python\n", "\n", "For a detailed example of working with quantum states in Perceval, you can read the \"Graph_States_generation_and_display.ipynb\" notebook from Perceval repository." ] }, { "cell_type": "code", "execution_count": 1, "id": "a86e36d93f8b4152", "metadata": {}, "outputs": [], "source": [ "from perceval import Encoding, StateVector, StateGenerator\n", "from perceval_interop import StatevectorConverter\n", "from qiskit.visualization import plot_state_qsphere\n", "from qutip import plot_schmidt" ] }, { "cell_type": "markdown", "id": "8e1786dcfcb39f2b", "metadata": {}, "source": [ "## Understanding Encoding Types\n", "\n", "It is important to consider that *Qiskit* only implements Statevectors that represent n-qubits states. In order to do so we propose a converter to make a StateVector from Perceval compatible with a Statevector from *Qiskit* that can be interpreted by `qsphere`. A state in dual rail encoding like $|0,1,0,1,0,0,0,1,0,0 \\rangle$ from Perceval can't be directly interpreted by *Qiskit*.\n", "\n", "Therefore, the type of encoding (*RAW, DUAL_RAIL, POLARIZATION...*) needs to be given to the converter and an optional parameter *ancillae* corresponding to the list of modes that we don't consider in the multi-qubits state." ] }, { "cell_type": "code", "execution_count": 2, "id": "a47e33fd0f55f2b5", "metadata": {}, "outputs": [], "source": [ "# Initialize the converter with dual rail encoding\n", "# This tells the converter how to interpret the photonic states\n", "converter = StatevectorConverter(encoding=Encoding.DUAL_RAIL)" ] }, { "cell_type": "markdown", "id": "f9159e6f9e0c9a38", "metadata": {}, "source": [ "## Converting Perceval States to Qiskit\n", "\n", "We can then use the converter to convert any state vector from *Perceval* to *Qiskit*. \n", "\n", "Let's create a superposition state representing 2 qubits in dual rail encoding:" ] }, { "cell_type": "code", "execution_count": 3, "id": "d9e666e562c8f14", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Original Perceval state:\n", "0.5*|1,0,1,0>+0.5*|1,0,0,1>+0.5*|0,1,1,0>+0.5*|0,1,0,1>\n", "\n", "Converted Qiskit statevector:\n", "Statevector([0.5+0.j, 0.5+0.j, 0.5+0.j, 0.5+0.j],\n", " dims=(2, 2))\n" ] } ], "source": [ "# Create a 2-qubit superposition state using dual rail encoding\n", "# Each logical qubit uses 2 modes: |0⟩ = |1,0⟩ and |1⟩ = |0,1⟩\n", "# So for 2 qubits we need 4 modes total\n", "state_vector = StateVector(\"|0,1,0,1>\") + StateVector(\"|0,1,1,0>\") + StateVector(\"|1,0,0,1>\") + StateVector(\"|1,0,1,0>\")\n", "\n", "print(\"Original Perceval state:\")\n", "print(state_vector)\n", "\n", "# Convert to Qiskit format\n", "qiskit_sv = converter.to_qiskit(state_vector)\n", "print(f\"\\nConverted Qiskit statevector:\")\n", "print(qiskit_sv)" ] }, { "cell_type": "markdown", "id": "9b2daee78c01a95c", "metadata": {}, "source": [ "`plot_state_qsphere` from *Qiskit* [[1]](#References) can be used for a graphical representation of the state." ] }, { "cell_type": "code", "execution_count": 4, "id": "6efd3ff6c113a749", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plot_state_qsphere(qiskit_sv)" ] }, { "cell_type": "markdown", "id": "5f76ec76de49da48", "metadata": {}, "source": [ "## Bidirectional Conversion\n", "\n", "After defining a converter, it is also possible to do the conversion the other way around using the `to_perceval` method.\n", "\n", "Let's demonstrate both directions:" ] }, { "cell_type": "code", "execution_count": 5, "id": "c632cb4c94d7145e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Restored Perceval state:\n", "0.5*|0,1,0,1>+0.5*|0,1,1,0>+0.5*|1,0,0,1>+0.5*|1,0,1,0>\n", "\n", "Original and restored states are equivalent: True\n" ] } ], "source": [ "# Convert back from Qiskit to Perceval\n", "pcvl_sv_restored = converter.to_perceval(qiskit_sv)\n", "\n", "print(\"Restored Perceval state:\")\n", "print(pcvl_sv_restored)\n", "\n", "# Verify the conversion is correct by comparing with original\n", "print(f\"\\nOriginal and restored states are equivalent: {state_vector == pcvl_sv_restored}\")" ] }, { "cell_type": "markdown", "id": "821c78d59c78abbc", "metadata": {}, "source": [ "## QuTiP Integration\n", "\n", "We also provide conversion to *QuTiP* (Quantum Toolbox in Python) with the same converter. QuTiP is a popular Python library for simulating open quantum systems. For instance, we can represent a Bell state $|\\Psi^->$ in polarization encoding from *Perceval* with the function `plot_schmidt` from *qutip* [[2]](#References) :" ] }, { "cell_type": "code", "execution_count": 6, "id": "50dde23c32f49e5e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-0.707*|{P:V},{P:H}>+0.707*|{P:H},{P:V}>\n" ] } ], "source": [ "# Bell state in Perceval\n", "generator = StateGenerator(Encoding.POLARIZATION)\n", "pcvl_bell = generator.bell_state(\"psi-\")\n", "print(pcvl_bell)" ] }, { "cell_type": "code", "execution_count": 7, "id": "3a7e9c2175ff134b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(
,\n", " )" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Conversion\n", "converter = StatevectorConverter(encoding=Encoding.POLARIZATION)\n", "qutip_bell = converter.to_qutip(pcvl_bell)\n", "# Plot\n", "plot_schmidt(qutip_bell)" ] }, { "cell_type": "markdown", "id": "e6d9fb7c48bdab05", "metadata": {}, "source": [ "This plot function allows to have a better visualization of entanglement.\n", "\n", "The `to_perceval` method is compatible with both *Qiskit* and *QuTiP* statevectors, making it easy to work across different quantum computing ecosystems." ] }, { "cell_type": "code", "execution_count": 8, "id": "95ea5c5887201e07", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "QuTiP statevector:\n", "Quantum object: dims=[[2, 2], [1, 1]], shape=(4, 1), type='ket', dtype=Dense\n", "Qobj data =\n", "[[ 0. ]\n", " [ 0.70710678]\n", " [-0.70710678]\n", " [ 0. ]]\n", "\n", "Round-trip conversion (QuTiP): True\n" ] } ], "source": [ "# Comparing bidirectional conversion from Qutip\n", "print(\"QuTiP statevector:\")\n", "print(qutip_bell)\n", "\n", "# Convert back from QuTiP to Perceval\n", "pcvl_from_qutip = converter.to_perceval(qutip_bell)\n", "print(f\"\\nRound-trip conversion (QuTiP): {pcvl_bell == pcvl_from_qutip}\")" ] }, { "cell_type": "markdown", "id": "271448af1b3669b4", "metadata": {}, "source": [ "## Reference" ] }, { "cell_type": "markdown", "id": "b7da801f822c849c", "metadata": {}, "source": [ "[1]\n", "https://qiskit.org/documentation/stubs/qiskit.visualization.plot_state_qsphere.html\n", "\n", "[2]\n", "https://nbviewer.org/urls/qutip.org/qutip-tutorials/tutorials-v4/visualization/qubism-and-schmidt-plots.ipynb\n", "\n" ] } ], "metadata": { "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 5 }