From 8c08ce39525a5163ba8502cc4ee0c0a9298c9b2b Mon Sep 17 00:00:00 2001 From: Simon Hofmann Date: Fri, 28 Aug 2026 01:04:03 +0200 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=9A=9A=20Move=20DD=20sampling=20to=20?= =?UTF-8?q?DDSIM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pyproject.toml | 1 + src/mqt/problemsolver/csp.py | 7 ++++++- src/mqt/problemsolver/tsp.py | 7 ++++++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index aab7e195..a2bb9a3a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -22,6 +22,7 @@ dynamic = ["version"] dependencies = [ "mqt.core>=3.8.0", + "mqt.ddsim>=2.6.0; python_version >= '3.11'", "qiskit>=2.0.3", "qiskit_aer>=0.16.4; python_version < '3.14'", "numpy>=1.24", diff --git a/src/mqt/problemsolver/csp.py b/src/mqt/problemsolver/csp.py index aa1f174d..32d38b65 100644 --- a/src/mqt/problemsolver/csp.py +++ b/src/mqt/problemsolver/csp.py @@ -8,13 +8,18 @@ from __future__ import annotations +import sys from typing import TYPE_CHECKING, TypedDict import numpy as np from mqt.core import load -from mqt.core.dd import sample from qiskit import QuantumCircuit, QuantumRegister +if sys.version_info >= (3, 11): + from mqt.ddsim import sample +else: + from mqt.core.dd import sample + if TYPE_CHECKING: from qiskit.circuit import Instruction diff --git a/src/mqt/problemsolver/tsp.py b/src/mqt/problemsolver/tsp.py index bab6ccf6..6753c291 100644 --- a/src/mqt/problemsolver/tsp.py +++ b/src/mqt/problemsolver/tsp.py @@ -9,17 +9,22 @@ # Code is adapted from https://arxiv.org/abs/1805.10928 and https://qiskit.org/textbook/ch-paper-implementations/tsp.html from __future__ import annotations +import sys from typing import TYPE_CHECKING, cast import matplotlib.pyplot as plt import networkx as nx import numpy as np from mqt.core import load -from mqt.core.dd import sample from python_tsp.exact import solve_tsp_dynamic_programming from qiskit import ClassicalRegister, QuantumCircuit, QuantumRegister from qiskit.synthesis.qft import synth_qft_full +if sys.version_info >= (3, 11): + from mqt.ddsim import sample +else: + from mqt.core.dd import sample + if TYPE_CHECKING: from qiskit.circuit import Gate From 4aa24686f33a86459b55658d6476af4e28cb43bb Mon Sep 17 00:00:00 2001 From: Simon Hofmann Date: Fri, 28 Aug 2026 09:40:25 +0200 Subject: [PATCH 2/2] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Drop=20Python=203.10?= =?UTF-8?q?=20fallback?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pyproject.toml | 2 +- src/mqt/problemsolver/csp.py | 7 +------ src/mqt/problemsolver/tsp.py | 7 +------ 3 files changed, 3 insertions(+), 13 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index a2bb9a3a..ace0a895 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -22,7 +22,7 @@ dynamic = ["version"] dependencies = [ "mqt.core>=3.8.0", - "mqt.ddsim>=2.6.0; python_version >= '3.11'", + "mqt.ddsim>=2.6.0", "qiskit>=2.0.3", "qiskit_aer>=0.16.4; python_version < '3.14'", "numpy>=1.24", diff --git a/src/mqt/problemsolver/csp.py b/src/mqt/problemsolver/csp.py index 32d38b65..90d863fc 100644 --- a/src/mqt/problemsolver/csp.py +++ b/src/mqt/problemsolver/csp.py @@ -8,18 +8,13 @@ from __future__ import annotations -import sys from typing import TYPE_CHECKING, TypedDict import numpy as np from mqt.core import load +from mqt.ddsim import sample from qiskit import QuantumCircuit, QuantumRegister -if sys.version_info >= (3, 11): - from mqt.ddsim import sample -else: - from mqt.core.dd import sample - if TYPE_CHECKING: from qiskit.circuit import Instruction diff --git a/src/mqt/problemsolver/tsp.py b/src/mqt/problemsolver/tsp.py index 6753c291..58997ae3 100644 --- a/src/mqt/problemsolver/tsp.py +++ b/src/mqt/problemsolver/tsp.py @@ -9,22 +9,17 @@ # Code is adapted from https://arxiv.org/abs/1805.10928 and https://qiskit.org/textbook/ch-paper-implementations/tsp.html from __future__ import annotations -import sys from typing import TYPE_CHECKING, cast import matplotlib.pyplot as plt import networkx as nx import numpy as np from mqt.core import load +from mqt.ddsim import sample from python_tsp.exact import solve_tsp_dynamic_programming from qiskit import ClassicalRegister, QuantumCircuit, QuantumRegister from qiskit.synthesis.qft import synth_qft_full -if sys.version_info >= (3, 11): - from mqt.ddsim import sample -else: - from mqt.core.dd import sample - if TYPE_CHECKING: from qiskit.circuit import Gate