{ "cells": [ { "cell_type": "markdown", "id": "ccfdaffd-503e-494c-a503-74f2635b223f", "metadata": {}, "source": [ "# 09 - Application Classes for Optimization Problems\n", "### Modified for use with Quantum Rings toolkit for Qiskit 2.x" ] }, { "cell_type": "code", "execution_count": 1, "id": "ae849d0c-b1d5-4b69-8c19-65f0f800b603", "metadata": {}, "outputs": [], "source": [ "# This code is from the tutorial at:\n", "# https://qiskit-community.github.io/qiskit-optimization/tutorials/09_application_classes.html\n", "\n", "# Modified for use with Quantum Rings SDK" ] }, { "cell_type": "code", "execution_count": 2, "id": "4069feef-3001-4f3c-bd99-6816a6365fce", "metadata": {}, "outputs": [], "source": [ "#\n", "# Setup your account\n", "# You can also save your account locally using the class method QrRuntimeService.save_account(...) and\n", "# invoke the QrRuntimeService class constructor without any arguments.\n", "#\n", "\n", "import os\n", "my_token = os.environ[\"QR_TOKEN\"]\n", "my_name = os.environ[\"QR_ACCOUNT\"]\n", "\n", "\n", "#\n", "# Set the backend of your choice, depending upon the task and your hardware configuration.\n", "# See SDK documentation for additional help.\n", "#\n", "\n", "my_backend = \"scarlet_quantum_rings\"" ] }, { "cell_type": "code", "execution_count": 3, "id": "c0bc72cb-e534-4323-bf60-0bc549daf079", "metadata": {}, "outputs": [], "source": [ "# Import from Quantum Rings Toolkit\n", "from quantumrings.toolkit.qiskit import QrRuntimeService\n", "\n", "# Acquire Quantum Rings backend\n", "qr_services = QrRuntimeService(name = my_name, token = my_token)\n", "qr_backend = qr_services.backend(name = my_backend, precision = \"single\")" ] }, { "cell_type": "code", "execution_count": 4, "id": "ac9ff6fa-8cc8-4006-a81c-936588f9b9a4", "metadata": {}, "outputs": [], "source": [ "from qiskit_optimization.algorithms import MinimumEigenOptimizer\n", "from qiskit_algorithms.utils import algorithm_globals\n", "from qiskit_algorithms import QAOA, NumPyMinimumEigensolver\n", "from qiskit_algorithms.optimizers import COBYLA\n", "\n", "\n", "# Switch to Quantum Rings's Sampler\n", "#from qiskit.primitives import Sampler\n", "from quantumrings.toolkit.qiskit import QrSamplerV2 as Sampler" ] }, { "cell_type": "markdown", "id": "346052f1-d2c2-41b6-9ff6-b04d5404507e", "metadata": {}, "source": [ "# Vertex cover problem" ] }, { "cell_type": "code", "execution_count": 5, "id": "3d05150e-acb6-4427-b9ba-4657a94946d0", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from qiskit_optimization.applications.vertex_cover import VertexCover\n", "import networkx as nx\n", "\n", "seed = 123\n", "algorithm_globals.random_seed = seed\n", "graph = nx.random_regular_graph(d=3, n=6, seed=seed)\n", "pos = nx.spring_layout(graph, seed=seed)\n", "prob = VertexCover(graph)\n", "prob.draw(pos=pos)\n" ] }, { "cell_type": "code", "execution_count": 6, "id": "c8e1dea4-3f2b-42de-8d3f-3342dba00a54", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Problem name: Vertex cover\n", "\n", "Minimize\n", " x_0 + x_1 + x_2 + x_3 + x_4 + x_5\n", "\n", "Subject to\n", " Linear constraints (9)\n", " x_0 + x_4 >= 1 'c0'\n", " x_0 + x_2 >= 1 'c1'\n", " x_0 + x_5 >= 1 'c2'\n", " x_1 + x_2 >= 1 'c3'\n", " x_1 + x_4 >= 1 'c4'\n", " x_1 + x_3 >= 1 'c5'\n", " x_2 + x_3 >= 1 'c6'\n", " x_3 + x_5 >= 1 'c7'\n", " x_4 + x_5 >= 1 'c8'\n", "\n", " Binary variables (6)\n", " x_0 x_1 x_2 x_3 x_4 x_5\n", "\n" ] } ], "source": [ "qp = prob.to_quadratic_program()\n", "print(qp.prettyprint())" ] }, { "cell_type": "code", "execution_count": 7, "id": "2307e014-5621-48da-8925-3317b5161b0d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "objective function value: 4.0\n", "variable values: x_0=0.0, x_1=0.0, x_2=1.0, x_3=1.0, x_4=1.0, x_5=1.0\n", "status: SUCCESS\n", "\n", "solution: [2, 3, 4, 5]\n" ] }, { "data": { "image/png": "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bo65/n70dwWEAwUlgGT279/vnmgCR9ja7dGcbN2QDfRA6q1EiRJeLxU4zn//+183y1q9gjraxYm/x7WDqz5TRXXlzJnT6yXBBygogQSnub96UgkcYf/yyy+2d+9eN/9XGZCBIrJixYrcxEZM02x37bg9+uij1r17d6+XE9MWLlzo/q5uuOEG++CDD7xeDnyAghJIMPqW1/i5wA6kJtNoQo12Kc4///xgH6R2d2jaRzy9MNJM9+3bt7vcRS6BndqHH35od999t3355Zd23XXXeb0cxDkKSiAB/PXXX8EeSBWR69atsyxZsrhjr0Af5DnnnGNZs2b1eqlAunMWdclEO+ya745T09O/RlGOGjXK9UYrYglILwpKwKfxICocA8fYy5Ytc8fVderUCe5AKhcyR44cXi8VCJm+vpU5qak4b775ptfLibvRlEpoKFmypEtv4BIT0ouCEkhyZKbJLjrmjbfQbR3zaQpNYAdS2XuiCTSBHcgLLrjA8ufP7/VSgbDSU5im4ShQf968eZYrVy6vlxR3tKurx4dnnnnGunXr5vVyEKcoKJHQ8SI6Cl6/fr3LVtTNxwBNdjn99NPdNAm9co+1V+26NPPrr78GdyB1o1UFsY6skt7ELlq0qNdLBSLqo48+cjuTP/zwgzVv3tzr5cStZ5991l1k0gtT9aICaUVBiYQsJLWDt3z5crcjeTI6Ita3h4pJZS5qt8+rwlKxPSoaA32QKiZVABcqVCh4hK0fy5Yty01sJIy1a9da1apV7YorrrD+/ft7vZy4pscY5cmuWrXK9VPmy5fP6yUhzlBQIuGegKZNm+aKyrR+6esWtEYIaucy0lToKgIlcIQ9YcIE27lzp5s+owf9QBFZvXp1CkgkrGuvvdYd1/75559R+b70O53YKN1BO72DBw/msQVpQkGJhGrc1y5feunBVW86Dgr3UbK+DbW+wA6kmuM3btzook/0+QI7kHXr1o2543fAC19//bW1bt2ayJsw++KLL+z66693rQR33HGH18tBHKGgREL4+++/3TFxOKioVOB3qKMG16xZk+wm9sqVK91lIMX3BHYgFeujfk4A/2/Lli3uqFsnBt988w07aWF25513ukJdAw800ABIDQpK+J4usHz//feuRyhcVOS1aNHCZTmmJZ5DIeKBY2yFi4viTgI7kAoWz5s3b9jWCfi14BkyZIg7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795tNWrUsBIlSrh+rYwZM3q9JCDhqJy59tpr3YW43377jaPuKGOHMgH069fPlixZ4vonAYTfM888Y2vWrHEv2CgmAW+89dZbrmeSvklvsEPpczt27LDy5cu7PLyPP/7Y6+UAvsy50whTDQvo2rWr18sBEhJ9k96joPS5p59+2l599VWXP0lfFxBeBw4csDp16rhIkqlTp1rmzBz6AF70TdaqVYu8SY/x6Odjq1evtl69etnDDz9MMQlEQM+ePW3BggU2Y8YMiknAA+RNxg4eAX3e15UzZ04m4gARMG/evODEqZo1a3q9HCAh0TcZOzjy9qk5c+a42IQ33njDHnjgAa+XA/jK4cOH3XxgjXabPXu2ZcuWzeslAQmHvsnYQkHpU5dddpnrm9QuCkcAQHj17t3btZL8/PPP7gkNQHTRNxl7OPL2acDy999/72KC+CYDwmv58uX2xBNPuF0RiknAu75JnRDQNxk72KH0mSNHjljdunXdEZwm42TIkMHrJQG+oYfL5s2b28KFC23u3LmWO3dur5cEJOSc7oceesiGDBliV199tdfLwb/YofSZzz//3GbNmuWOACgmgfDq37+/jR492p0AUEwC3vRNPvLII66gpJiMLexQ+si+ffusUqVKLhdPr9wAhM+6deusSpUq1qpVK/v000+9Xg6QcOibjG3sUPosPkHj37SDAiC87r//fsuSJQu3SQEP0DcZ+ygofWLz5s32wgsvWPv27a1ixYpeLwfwFe34f/311/bFF1/Y6aef7vVygITz9ttvu6xJfS+SNxmbOPL2ic6dO9sHH3xgS5YsscKFC3u9HMA3tCNStWpVq1evng0dOpTeZCDKNImqUaNG1rFjR5etjNhEQekDy5Yts8qVK1u3bt3sySef9Ho5gK/cddddLoLrzz//tDPPPNPr5QAJ1zdZu3ZtK1iwIH2TMY4jbx9QEakmZQUtAwifMWPG2EcffWTvv/8+xSQQZdrv0gu6LVu2uHxlisnYRkHpgwiFwYMH24cffmg5cuTwejlA7NOhzIoVZvPnm+3da3baaWbly5up9zhjxuC77d6929q1a2dNmjSxu+++29MlA4naN6meSfom4wNH3nFM/3R6stOrN80TzpQpk9dLAmKTHuYmTTLr08ds5EizHTuOf5/s2c2aNDHr2NHs0kutc5cu9u6779qcOXOsvApOAFFD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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Numpy Eigensolver\n", "meo = MinimumEigenOptimizer(min_eigen_solver=NumPyMinimumEigensolver())\n", "result = meo.solve(qp)\n", "print(result.prettyprint())\n", "print(\"\\nsolution:\", prob.interpret(result))\n", "prob.draw(result, pos=pos)" ] }, { "cell_type": "code", "execution_count": 8, "id": "29418e0f-f351-4877-8434-7d9c9e7e028b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "objective function value: 4.0\n", "variable values: x_0=1.0, x_1=1.0, x_2=1.0, x_3=0.0, x_4=0.0, x_5=1.0\n", "status: SUCCESS\n", "\n", "solution: [0, 1, 2, 5]\n", "\n", "time: 5.009123086929321\n" ] }, { "data": { "image/png": "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FJOA932TN954o5177rlkwKYDO5RIRruSlSpVsvLly9uQIUO8Xg7gW9u2bXOX3tT4P3jwYCZQAR5SKXTttde6nsmpU6daiRIlvF5S3GGHEsm89957tnTpUrdzAiByOnToYDt37rTevXtTTAIx0jepuwMUk+nDDiWS7ZiUKVPGvUrr06eP18sBfGvkyJF28cUXu2Ly/vvv93o5QEIL9E0q0eT111/3ejlxi4ISQR07drS33nrLFi5caEWKFPF6OYAv7dmzx6pWrWpnnnmmKyzpUwa8z5s844wz7M8//zw2IgipxpE3nJUrV9qbb75p7du3p5gEIqhz5862atUqGzp0KMUkECN5k3/88QfFZIgoKOE8++yzLlBZBSWAyFAMl47UXnrpJStXrpzXywESGn2T4cWRN2z69Oluy79Xr17Wpk0br5cD+DZBoWbNmpY5c2abMGGCZdIMYACeoG8y/CgoYZdddpmtWLHCZs6c6Z7sAIRf165d7fnnn7fJkyfbOeec4/VygITum1TWZMGCBembDCNeIie43377zYYNG2bff/89xSQQIZqC06VLFxcVRDEJeEd7aHfffbdLNdGlOIrJ8GGHMoEdOnTIvUpT7+To0aPJwgMi9H12wQUX2ObNm117yWmnneb1koCE7pt85JFHXN/k1Vdf7fVyfIUdygTWv39/mzFjho0bN45iEogQ9Sbre0xHaxSTgLd9k7p4+uijj1JMRgA7lAlq79697pZp3bp13SxhAOG3bNkyq1Klit1xxx2usATgDfomI48dygSlzMn169dbt27dvF4K4Et6rd66dWvLmzcv32eAh+ibjA4KygS0ceNG9wSniKDSpUt7vRzAlz777DN36W3IkCGuTxmANzQBTj2T5E1GFkfeCeihhx6yvn372uLFiy1//vxeLwfwHe3+V6xY0a644grr16+f18sBLNHzJh944AF74403vF6Or1FQJhjN6a5UqZLLxHvyySe9Xg7gSzfeeKM7Wps7dy4v2gCP+yYLFChgf/31F0fdEcaRd4Lp1KmTFS5c2O1SAgg/Zbp+8803NmDAAIpJIAb6JkeMGEExGQUUlAlE0SXffvutO+7OmjWr18sBfEdPXjpaa9asmbVo0cLr5QCW6H2TeoFXsmRJr5eTEDjyThD6Z1a48q5du+zvv/+2jBkzer0kwHfuu+8+++qrr9xknKJF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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# QAOA\n", "meo = MinimumEigenOptimizer(min_eigen_solver=QAOA(reps=1, sampler=Sampler(backend = qr_backend), optimizer=COBYLA()))\n", "result = meo.solve(qp)\n", "print(result.prettyprint())\n", "print(\"\\nsolution:\", prob.interpret(result))\n", "print(\"\\ntime:\", result.min_eigen_solver_result.optimizer_time)\n", "prob.draw(result, pos=pos)" ] }, { "cell_type": "markdown", "id": "a5946734-aecf-4751-bb55-4488b017f2a0", "metadata": {}, "source": [ "# Knapsack problem" ] }, { "cell_type": "code", "execution_count": 9, "id": "4d96dc5e-4ef2-4b40-a7c5-2e0e13dfeb69", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Problem name: Knapsack\n", "\n", "Maximize\n", " 3*x_0 + 4*x_1 + 5*x_2 + 6*x_3 + 7*x_4\n", "\n", "Subject to\n", " Linear constraints (1)\n", " 2*x_0 + 3*x_1 + 4*x_2 + 5*x_3 + 6*x_4 <= 10 'c0'\n", "\n", " Binary variables (5)\n", " x_0 x_1 x_2 x_3 x_4\n", "\n" ] } ], "source": [ "from qiskit_optimization.applications import Knapsack\n", "\n", "prob = Knapsack(values=[3, 4, 5, 6, 7], weights=[2, 3, 4, 5, 6], max_weight=10)\n", "qp = prob.to_quadratic_program()\n", "print(qp.prettyprint())" ] }, { "cell_type": "code", "execution_count": 10, "id": "759c1f2e-6fde-411e-822e-e77c32ccc984", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "objective function value: 13.0\n", "variable values: x_0=1.0, x_1=1.0, x_2=0.0, x_3=1.0, x_4=0.0\n", "status: SUCCESS\n", "\n", "solution: [0, 1, 3]\n" ] } ], "source": [ "# Numpy Eigensolver\n", "meo = MinimumEigenOptimizer(min_eigen_solver=NumPyMinimumEigensolver())\n", "result = meo.solve(qp)\n", "print(result.prettyprint())\n", "print(\"\\nsolution:\", prob.interpret(result))" ] }, { "cell_type": "code", "execution_count": 11, "id": "3202c698-9103-4b92-ab56-7d0cc64829ae", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "objective function value: 13.0\n", "variable values: x_0=1.0, x_1=1.0, x_2=0.0, x_3=1.0, x_4=0.0\n", "status: SUCCESS\n", "\n", "solution: [0, 1, 3]\n", "\n", "time: 5.977146148681641\n" ] } ], "source": [ "# QAOA\n", "meo = MinimumEigenOptimizer(min_eigen_solver=QAOA(reps=1, sampler=Sampler(backend = qr_backend), optimizer=COBYLA()))\n", "result = meo.solve(qp)\n", "print(result.prettyprint())\n", "print(\"\\nsolution:\", prob.interpret(result))\n", "print(\"\\ntime:\", result.min_eigen_solver_result.optimizer_time)" ] }, { "cell_type": "markdown", "id": "b70a0e03-bce8-4f51-9fd9-bc2142a74d8d", "metadata": {}, "source": [ "# How to check the Hamiltonian" ] }, { "cell_type": "code", "execution_count": 12, "id": "0848350c-b366-448d-ae21-ffef17f920b6", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Problem name: Knapsack\n", "\n", "Maximize\n", " 3*x_0 + 4*x_1 + 5*x_2 + 6*x_3 + 7*x_4\n", "\n", "Subject to\n", " Linear constraints (1)\n", " 2*x_0 + 3*x_1 + 4*x_2 + 5*x_3 + 6*x_4 <= 10 'c0'\n", "\n", " Binary variables (5)\n", " x_0 x_1 x_2 x_3 x_4\n", "\n" ] } ], "source": [ "from qiskit_optimization.converters import QuadraticProgramToQubo\n", "\n", "# the same knapsack problem instance as in the previous section\n", "prob = Knapsack(values=[3, 4, 5, 6, 7], weights=[2, 3, 4, 5, 6], max_weight=10)\n", "qp = prob.to_quadratic_program()\n", "print(qp.prettyprint())" ] }, { "cell_type": "code", "execution_count": 13, "id": "09ac5abe-22aa-4abe-8c7e-2d1eb0f1c460", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Problem name: Knapsack\n", "\n", "Minimize\n", " 26*c0@int_slack@0^2 + 104*c0@int_slack@0*c0@int_slack@1\n", " + 208*c0@int_slack@0*c0@int_slack@2 + 156*c0@int_slack@0*c0@int_slack@3\n", " + 104*c0@int_slack@1^2 + 416*c0@int_slack@1*c0@int_slack@2\n", " + 312*c0@int_slack@1*c0@int_slack@3 + 416*c0@int_slack@2^2\n", " + 624*c0@int_slack@2*c0@int_slack@3 + 234*c0@int_slack@3^2\n", " + 104*x_0*c0@int_slack@0 + 208*x_0*c0@int_slack@1 + 416*x_0*c0@int_slack@2\n", " + 312*x_0*c0@int_slack@3 + 104*x_0^2 + 312*x_0*x_1 + 416*x_0*x_2 + 520*x_0*x_3\n", " + 624*x_0*x_4 + 156*x_1*c0@int_slack@0 + 312*x_1*c0@int_slack@1\n", " + 624*x_1*c0@int_slack@2 + 468*x_1*c0@int_slack@3 + 234*x_1^2 + 624*x_1*x_2\n", " + 780*x_1*x_3 + 936*x_1*x_4 + 208*x_2*c0@int_slack@0 + 416*x_2*c0@int_slack@1\n", " + 832*x_2*c0@int_slack@2 + 624*x_2*c0@int_slack@3 + 416*x_2^2 + 1040*x_2*x_3\n", " + 1248*x_2*x_4 + 260*x_3*c0@int_slack@0 + 520*x_3*c0@int_slack@1\n", " + 1040*x_3*c0@int_slack@2 + 780*x_3*c0@int_slack@3 + 650*x_3^2 + 1560*x_3*x_4\n", " + 312*x_4*c0@int_slack@0 + 624*x_4*c0@int_slack@1 + 1248*x_4*c0@int_slack@2\n", " + 936*x_4*c0@int_slack@3 + 936*x_4^2 - 520*c0@int_slack@0\n", " - 1040*c0@int_slack@1 - 2080*c0@int_slack@2 - 1560*c0@int_slack@3 - 1043*x_0\n", " - 1564*x_1 - 2085*x_2 - 2606*x_3 - 3127*x_4 + 2600\n", "\n", "Subject to\n", " No constraints\n", "\n", " Binary variables (9)\n", " x_0 x_1 x_2 x_3 x_4 c0@int_slack@0 c0@int_slack@1 c0@int_slack@2\n", " c0@int_slack@3\n", "\n" ] } ], "source": [ "# intermediate QUBO form of the optimization problem\n", "conv = QuadraticProgramToQubo()\n", "qubo = conv.convert(qp)\n", "print(qubo.prettyprint())" ] }, { "cell_type": "code", "execution_count": 14, "id": "be66a177-7478-470a-859c-1dd4ccd45113", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "num qubits: 9, offset: 1417.5\n", "\n", "SparsePauliOp(['IIIIIIIIZ', 'IIIIIIIZI', 'IIIIIIZII', 'IIIIIZIII', 'IIIIZIIII', 'IIIZIIIII', 'IIZIIIIII', 'IZIIIIIII', 'ZIIIIIIII', 'IIIIIIIZZ', 'IIIIIIZIZ', 'IIIIIZIIZ', 'IIIIZIIIZ', 'IIIZIIIIZ', 'IIZIIIIIZ', 'IZIIIIIIZ', 'ZIIIIIIIZ', 'IIIIIIZZI', 'IIIIIZIZI', 'IIIIZIIZI', 'IIIZIIIZI', 'IIZIIIIZI', 'IZIIIIIZI', 'ZIIIIIIZI', 'IIIIIZZII', 'IIIIZIZII', 'IIIZIIZII', 'IIZIIIZII', 'IZIIIIZII', 'ZIIIIIZII', 'IIIIZZIII', 'IIIZIZIII', 'IIZIIZIII', 'IZIIIZIII', 'ZIIIIZIII', 'IIIZZIIII', 'IIZIZIIII', 'IZIIZIIII', 'ZIIIZIIII', 'IIZZIIIII', 'IZIZIIIII', 'ZIIZIIIII', 'IZZIIIIII', 'ZIZIIIIII', 'ZZIIIIIII'],\n", " coeffs=[-258.5+0.j, -388. +0.j, -517.5+0.j, -647. +0.j, -776.5+0.j, -130. +0.j,\n", " -260. +0.j, -520. +0.j, -390. +0.j, 78. +0.j, 104. +0.j, 130. +0.j,\n", " 156. +0.j, 26. +0.j, 52. +0.j, 104. +0.j, 78. +0.j, 156. +0.j,\n", " 195. +0.j, 234. +0.j, 39. +0.j, 78. +0.j, 156. +0.j, 117. +0.j,\n", " 260. +0.j, 312. +0.j, 52. +0.j, 104. +0.j, 208. +0.j, 156. +0.j,\n", " 390. +0.j, 65. +0.j, 130. +0.j, 260. +0.j, 195. +0.j, 78. +0.j,\n", " 156. +0.j, 312. +0.j, 234. +0.j, 26. +0.j, 52. +0.j, 39. +0.j,\n", " 104. +0.j, 78. +0.j, 156. +0.j])\n" ] } ], "source": [ "# qubit Hamiltonian and offset\n", "op, offset = qubo.to_ising()\n", "print(f\"num qubits: {op.num_qubits}, offset: {offset}\\n\")\n", "print(op)" ] }, { "cell_type": "code", "execution_count": 15, "id": "e85c0305-57ff-4ed0-9c82-6e2484af7b9e", "metadata": {}, "outputs": [ { "data": { "text/html": [ "

Version Information

SoftwareVersion
qiskit2.2.1
qiskit_ibm_runtime0.40.1
qiskit_optimization0.7.0
qiskit_aer0.17.1
qiskit_algorithms0.4.0
System information
Python version3.12.9
OSWindows
Tue Oct 21 15:41:30 2025 Mountain Daylight Time
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "

Quantum Rings Version Information

SoftwareVersion
QuantumRingsLib0.11.0
quantumrings-toolkit-qiskit0.2.0
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "

This code is a part of a Qiskit project

© Copyright IBM 2017, 2025.

This code is licensed under the Apache License, Version 2.0. You may
obtain a copy of this license in the LICENSE.txt file in the root directory
of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.

Any modifications or derivative works of this code must retain this
copyright notice, and modified files need to carry a notice indicating
that they have been altered from the originals.

Modifications (c) Copyright Quantum Rings Inc, 2025
Modified from the originals
Added support for Quantum Rings toolkit for Qiskit.

" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import tutorial_magics\n", "\n", "%qiskit_version_table\n", "%quantumrings_version_table\n", "%qiskit_copyright" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.12.9" } }, "nbformat": 4, "nbformat_minor": 5 }