From 0e9995f75bd42c724b35ce83dce5e29232e74ee4 Mon Sep 17 00:00:00 2001 From: Marvin Erdmann <106394656+Marvmann@users.noreply.github.com> Date: Fri, 6 Dec 2024 18:44:22 +0100 Subject: [PATCH] Python Upgrade to version 3.12 (#148) --------- Co-authored-by: Greshma Shaji --- .readthedocs.yaml | 2 +- .settings/module_db.json | 7222 ++++++++--------- .settings/requirements_full.txt | 4 +- Dockerfile | 2 +- README.md | 162 +- docs/developer.rst | 2 +- docs/index.rst | 2 +- docs/tutorial.rst | 305 +- src/BenchmarkManager.py | 2 +- src/ConfigManager.py | 12 +- src/Installer.py | 12 +- src/modules/Core.py | 1 - .../applications/optimization/ACL/ACL.py | 2 +- .../optimization/ACL/mappings/QUBO.py | 2 +- .../optimization/MIS/mappings/NeutralAtom.py | 2 +- .../applications/optimization/PVC/PVC.py | 2 +- .../optimization/PVC/mappings/ISING.py | 4 +- .../optimization/PVC/mappings/QUBO.py | 2 +- .../optimization/SAT/mappings/ChoiISING.py | 2 +- .../optimization/SAT/mappings/DinneenISING.py | 2 +- .../applications/optimization/TSP/TSP.py | 2 +- .../optimization/TSP/mappings/ISING.py | 6 +- .../optimization/TSP/mappings/QUBO.py | 2 +- .../generative_modeling/GenerativeModeling.py | 1 - .../circuits/CircuitCopula.py | 4 +- .../data_handler/DataHandlerGenerative.py | 4 +- .../mappings/CustomQiskitNoisyBackend.py | 4 +- .../mappings/LibraryPennylane.py | 8 +- .../mappings/LibraryQiskit.py | 2 +- .../mappings/PresetQiskitNoisyBackend.py | 9 +- .../qml/generative_modeling/training/QCBM.py | 4 +- .../qml/generative_modeling/training/QGAN.py | 6 +- .../transformations/PIT.py | 2 +- src/modules/devices/HelperClass.py | 1 - src/modules/devices/Local.py | 1 - .../devices/SimulatedAnnealingSampler.py | 3 +- src/modules/devices/braket/Braket.py | 6 +- src/modules/devices/braket/Ionq.py | 1 - src/modules/devices/braket/LocalSimulator.py | 1 - src/modules/devices/braket/OQC.py | 1 - src/modules/devices/braket/Rigetti.py | 1 - src/modules/devices/braket/SV1.py | 1 - src/modules/devices/braket/TN1.py | 1 - .../devices/pulser/MockNeutralAtomDevice.py | 22 +- src/modules/devices/pulser/Pulser.py | 2 +- src/modules/solvers/GreedyClassicalPVC.py | 2 +- src/modules/solvers/GreedyClassicalTSP.py | 2 +- src/modules/solvers/NeutralAtomMIS.py | 2 +- src/modules/solvers/PennylaneQAOA.py | 6 +- src/modules/solvers/QAOA.py | 3 +- src/modules/solvers/QiskitQAOA.py | 5 +- src/modules/solvers/RandomClassicalPVC.py | 2 +- src/modules/solvers/RandomClassicalTSP.py | 2 +- .../solvers/ReverseGreedyClassicalPVC.py | 2 +- .../solvers/ReverseGreedyClassicalTSP.py | 2 +- .../applications/optimization/ACL/test_ACL.py | 2 +- .../MIS/mappings/test_NeutralAtom.py | 2 +- .../applications/optimization/MIS/test_MIS.py | 11 +- .../optimization/PVC/mappings/test_ISING.py | 4 +- .../optimization/PVC/mappings/test_QUBO.py | 2 +- .../applications/optimization/PVC/test_PVC.py | 2 +- .../SAT/mappings/test_ChoiISING.py | 2 +- .../SAT/mappings/test_DinneenISING.py | 2 +- .../optimization/TSP/mappings/test_ISING.py | 6 +- .../optimization/TSP/mappings/test_QUBO.py | 2 +- .../applications/optimization/TSP/test_TSP.py | 2 +- .../mappings/test_CustomQiskitNoisyBackend.py | 4 +- .../mappings/test_LibraryPennylane.py | 13 +- .../mappings/test_LibraryQiskit.py | 2 +- .../mappings/test_PresetQiskitNoisyBackend.py | 25 +- .../mappings/test_circuit.pkl | Bin 1732 -> 2077 bytes .../generative_modeling/training/test_QCBM.py | 4 +- .../generative_modeling/training/test_QGAN.py | 6 +- .../transformation/test_PIT.py | 2 +- 74 files changed, 4027 insertions(+), 3935 deletions(-) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index c3567e32..f43f4be8 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -9,7 +9,7 @@ version: 2 build: os: ubuntu-22.04 tools: - python: "3.9" + python: "3.12" # Build documentation in the docs/ directory with Sphinx sphinx: diff --git a/.settings/module_db.json b/.settings/module_db.json index a6fade90..12d7e8c7 100644 --- a/.settings/module_db.json +++ b/.settings/module_db.json @@ -1,3612 +1,3612 @@ -{ - "build_number": 16, - "build_date": "03-12-2024 10:33:07", - "git_revision_number": "5dd793e3a63cae9acd48fc083569f9ba20615e4c", - "modules": [ - { - "name": "PVC", - "class": "PVC", - "module": "modules.applications.optimization.PVC.PVC", - "submodules": [ - { - "name": "Ising", - "class": "Ising", - "args": {}, - "module": "modules.applications.optimization.PVC.mappings.ISING", - "requirements": [ - { - "name": "networkx", - "version": "3.2.1" - }, - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "dimod", - "version": "0.12.17" - }, - { - "name": "networkx", - "version": "3.2.1" - } - ], - "submodules": [ - { - "name": "QAOA", - "class": "QAOA", - "args": {}, - "module": "modules.solvers.QAOA", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "scipy", - "version": "1.12.0" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "LocalSimulator", - "class": "LocalSimulator", - "args": { - "device_name": "LocalSimulator" - }, - "module": "modules.devices.braket.LocalSimulator", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", - "class": "SV1", - "args": { - "device_name": "SV1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" - }, - "module": "modules.devices.braket.SV1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", - "class": "TN1", - "args": { - "device_name": "TN1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" - }, - "module": "modules.devices.braket.TN1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", - "class": "Ionq", - "args": { - "device_name": "ionQ", - "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" - }, - "module": "modules.devices.braket.Ionq", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", - "class": "Rigetti", - "args": { - "device_name": "Rigetti Aspen-9", - "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" - }, - "module": "modules.devices.braket.Rigetti", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - } - ] - }, - { - "name": "PennylaneQAOA", - "class": "PennylaneQAOA", - "args": {}, - "module": "modules.solvers.PennylaneQAOA", - "requirements": [ - { - "name": "pennylane", - "version": "0.37.0" - }, - { - "name": "pennylane-lightning", - "version": "0.38.0" - }, - { - "name": "amazon-braket-pennylane-plugin", - "version": "1.30.0" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", - "class": "SV1", - "args": { - "device_name": "SV1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" - }, - "module": "modules.devices.braket.SV1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", - "class": "TN1", - "args": { - "device_name": "TN1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" - }, - "module": "modules.devices.braket.TN1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", - "class": "Ionq", - "args": { - "device_name": "ionq", - "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" - }, - "module": "modules.devices.braket.Ionq", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", - "class": "Rigetti", - "args": { - "device_name": "Rigetti", - "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" - }, - "module": "modules.devices.braket.Rigetti", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy", - "class": "OQC", - "args": { - "device_name": "OQC", - "arn": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy" - }, - "module": "modules.devices.braket.OQC", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "braket.local.qubit", - "class": "HelperClass", - "args": { - "device_name": "braket.local.qubit" - }, - "module": "modules.devices.HelperClass", - "requirements": [], - "submodules": [] - }, - { - "name": "default.qubit", - "class": "HelperClass", - "args": { - "device_name": "default.qubit" - }, - "module": "modules.devices.HelperClass", - "requirements": [], - "submodules": [] - }, - { - "name": "default.qubit.autograd", - "class": "HelperClass", - "args": { - "device_name": "default.qubit.autograd" - }, - "module": "modules.devices.HelperClass", - "requirements": [], - "submodules": [] - }, - { - "name": "qulacs.simulator", - "class": "HelperClass", - "args": { - "device_name": "qulacs.simulator" - }, - "module": "modules.devices.HelperClass", - "requirements": [], - "submodules": [] - }, - { - "name": "lightning.gpu", - "class": "HelperClass", - "args": { - "device_name": "lightning.gpu" - }, - "module": "modules.devices.HelperClass", - "requirements": [], - "submodules": [] - }, - { - "name": "lightning.qubit", - "class": "HelperClass", - "args": { - "device_name": "lightning.qubit" - }, - "module": "modules.devices.HelperClass", - "requirements": [], - "submodules": [] - } - ] - } - ] - }, - { - "name": "QUBO", - "class": "QUBO", - "args": {}, - "module": "modules.applications.optimization.PVC.mappings.QUBO", - "requirements": [ - { - "name": "networkx", - "version": "3.2.1" - } - ], - "submodules": [ - { - "name": "Annealer", - "class": "Annealer", - "args": {}, - "module": "modules.solvers.Annealer", - "requirements": [], - "submodules": [ - { - "name": "Simulated Annealer", - "class": "SimulatedAnnealingSampler", - "args": {}, - "module": "modules.devices.SimulatedAnnealingSampler", - "requirements": [ - { - "name": "dwave-samplers", - "version": "1.3.0" - } - ], - "submodules": [] - } - ] - } - ] - }, - { - "name": "GreedyClassicalPVC", - "class": "GreedyClassicalPVC", - "args": {}, - "module": "modules.solvers.GreedyClassicalPVC", - "requirements": [ - { - "name": "networkx", - "version": "3.2.1" - } - ], - "submodules": [ - { - "name": "Local", - "class": "Local", - "args": {}, - "module": "modules.devices.Local", - "requirements": [], - "submodules": [] - } - ] - }, - { - "name": "ReverseGreedyClassicalPVC", - "class": "ReverseGreedyClassicalPVC", - "args": {}, - "module": "modules.solvers.ReverseGreedyClassicalPVC", - "requirements": [ - { - "name": "networkx", - "version": "3.2.1" - } - ], - "submodules": [ - { - "name": "Local", - "class": "Local", - "args": {}, - "module": "modules.devices.Local", - "requirements": [], - "submodules": [] - } - ] - }, - { - "name": "RandomPVC", - "class": "RandomPVC", - "args": {}, - "module": "modules.solvers.RandomClassicalPVC", - "requirements": [ - { - "name": "networkx", - "version": "3.2.1" - } - ], - "submodules": [ - { - "name": "Local", - "class": "Local", - "args": {}, - "module": "modules.devices.Local", - "requirements": [], - "submodules": [] - } - ] - } - ], - "requirements": [ - { - "name": "networkx", - "version": "3.2.1" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ] - }, - { - "name": "SAT", - "class": "SAT", - "module": "modules.applications.optimization.SAT.SAT", - "submodules": [ - { - "name": "QubovertQUBO", - "class": "QubovertQUBO", - "args": {}, - "module": "modules.applications.optimization.SAT.mappings.QubovertQUBO", - "requirements": [ - { - "name": "nnf", - "version": "0.4.1" - }, - { - "name": "qubovert", - "version": "1.2.5" - } - ], - "submodules": [ - { - "name": "Annealer", - "class": "Annealer", - "args": {}, - "module": "modules.solvers.Annealer", - "requirements": [], - "submodules": [ - { - "name": "Simulated Annealer", - "class": "SimulatedAnnealingSampler", - "args": {}, - "module": "modules.devices.SimulatedAnnealingSampler", - "requirements": [ - { - "name": "dwave-samplers", - "version": "1.3.0" - } - ], - "submodules": [] - } - ] - } - ] - }, - { - "name": "Direct", - "class": "Direct", - "args": {}, - "module": "modules.applications.optimization.SAT.mappings.Direct", - "requirements": [ - { - "name": "nnf", - "version": "0.4.1" - }, - { - "name": "python-sat", - "version": "1.8.dev13" - } - ], - "submodules": [ - { - "name": "ClassicalSAT", - "class": "ClassicalSAT", - "args": {}, - "module": "modules.solvers.ClassicalSAT", - "requirements": [ - { - "name": "python-sat", - "version": "1.8.dev13" - } - ], - "submodules": [ - { - "name": "Local", - "class": "Local", - "args": {}, - "module": "modules.devices.Local", - "requirements": [], - "submodules": [] - } - ] - }, - { - "name": "RandomSAT", - "class": "RandomSAT", - "args": {}, - "module": "modules.solvers.RandomClassicalSAT", - "requirements": [ - { - "name": "python-sat", - "version": "1.8.dev13" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "Local", - "class": "Local", - "args": {}, - "module": "modules.devices.Local", - "requirements": [], - "submodules": [] - } - ] - } - ] - }, - { - "name": "ChoiQUBO", - "class": "ChoiQUBO", - "args": {}, - "module": "modules.applications.optimization.SAT.mappings.ChoiQUBO", - "requirements": [ - { - "name": "nnf", - "version": "0.4.1" - } - ], - "submodules": [ - { - "name": "Annealer", - "class": "Annealer", - "args": {}, - "module": "modules.solvers.Annealer", - "requirements": [], - "submodules": [ - { - "name": "Simulated Annealer", - "class": "SimulatedAnnealingSampler", - "args": {}, - "module": "modules.devices.SimulatedAnnealingSampler", - "requirements": [ - { - "name": "dwave-samplers", - "version": "1.3.0" - } - ], - "submodules": [] - } - ] - } - ] - }, - { - "name": "DinneenQUBO", - "class": "DinneenQUBO", - "args": {}, - "module": "modules.applications.optimization.SAT.mappings.DinneenQUBO", - "requirements": [ - { - "name": "nnf", - "version": "0.4.1" - } - ], - "submodules": [ - { - "name": "Annealer", - "class": "Annealer", - "args": {}, - "module": "modules.solvers.Annealer", - "requirements": [], - "submodules": [ - { - "name": "Simulated Annealer", - "class": "SimulatedAnnealingSampler", - "args": {}, - "module": "modules.devices.SimulatedAnnealingSampler", - "requirements": [ - { - "name": "dwave-samplers", - "version": "1.3.0" - } - ], - "submodules": [] - } - ] - } - ] - }, - { - "name": "ChoiIsing", - "class": "ChoiIsing", - "args": {}, - "module": "modules.applications.optimization.SAT.mappings.ChoiISING", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "dimod", - "version": "0.12.17" - }, - { - "name": "nnf", - "version": "0.4.1" - } - ], - "submodules": [ - { - "name": "QAOA", - "class": "QAOA", - "args": {}, - "module": "modules.solvers.QAOA", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "scipy", - "version": "1.12.0" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "LocalSimulator", - "class": "LocalSimulator", - "args": { - "device_name": "LocalSimulator" - }, - "module": "modules.devices.braket.LocalSimulator", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", - "class": "SV1", - "args": { - "device_name": "SV1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" - }, - "module": "modules.devices.braket.SV1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", - "class": "TN1", - "args": { - "device_name": "TN1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" - }, - "module": "modules.devices.braket.TN1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", - "class": "Ionq", - "args": { - "device_name": "ionQ", - "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" - }, - "module": "modules.devices.braket.Ionq", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", - "class": "Rigetti", - "args": { - "device_name": "Rigetti Aspen-9", - "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" - }, - "module": "modules.devices.braket.Rigetti", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - } - ] - }, - { - "name": "PennylaneQAOA", - "class": "PennylaneQAOA", - "args": {}, - "module": "modules.solvers.PennylaneQAOA", - "requirements": [ - { - "name": "pennylane", - "version": "0.37.0" - }, - { - "name": "pennylane-lightning", - "version": "0.38.0" - }, - { - "name": "amazon-braket-pennylane-plugin", - "version": "1.30.0" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", - "class": "SV1", - "args": { - "device_name": "SV1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" - }, - "module": "modules.devices.braket.SV1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", - "class": "TN1", - "args": { - "device_name": "TN1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" - }, - "module": "modules.devices.braket.TN1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", - "class": "Ionq", - "args": { - "device_name": "ionq", - "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" - }, - "module": "modules.devices.braket.Ionq", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", - "class": "Rigetti", - "args": { - "device_name": "Rigetti", - "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" - }, - "module": "modules.devices.braket.Rigetti", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy", - "class": "OQC", - "args": { - "device_name": "OQC", - "arn": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy" - }, - "module": "modules.devices.braket.OQC", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "braket.local.qubit", - "class": "HelperClass", - "args": { - "device_name": "braket.local.qubit" - }, - "module": "modules.devices.HelperClass", - "requirements": [], - "submodules": [] - }, - { - "name": "default.qubit", - "class": "HelperClass", - "args": { - "device_name": "default.qubit" - }, - "module": "modules.devices.HelperClass", - "requirements": [], - "submodules": [] - }, - { - "name": "default.qubit.autograd", - "class": "HelperClass", - "args": { - "device_name": "default.qubit.autograd" - }, - "module": "modules.devices.HelperClass", - "requirements": [], - "submodules": [] - }, - { - "name": "qulacs.simulator", - "class": "HelperClass", - "args": { - "device_name": "qulacs.simulator" - }, - "module": "modules.devices.HelperClass", - "requirements": [], - "submodules": [] - }, - { - "name": "lightning.gpu", - "class": "HelperClass", - "args": { - "device_name": "lightning.gpu" - }, - "module": "modules.devices.HelperClass", - "requirements": [], - "submodules": [] - }, - { - "name": "lightning.qubit", - "class": "HelperClass", - "args": { - "device_name": "lightning.qubit" - }, - "module": "modules.devices.HelperClass", - "requirements": [], - "submodules": [] - } - ] - } - ] - }, - { - "name": "DinneenIsing", - "class": "DinneenIsing", - "args": {}, - "module": "modules.applications.optimization.SAT.mappings.DinneenISING", - "requirements": [ - { - "name": "nnf", - "version": "0.4.1" - }, - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "dimod", - "version": "0.12.17" - }, - { - "name": "nnf", - "version": "0.4.1" - } - ], - "submodules": [ - { - "name": "QAOA", - "class": "QAOA", - "args": {}, - "module": "modules.solvers.QAOA", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "scipy", - "version": "1.12.0" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "LocalSimulator", - "class": "LocalSimulator", - "args": { - "device_name": "LocalSimulator" - }, - "module": "modules.devices.braket.LocalSimulator", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", - "class": "SV1", - "args": { - "device_name": "SV1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" - }, - "module": "modules.devices.braket.SV1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", - "class": "TN1", - "args": { - "device_name": "TN1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" - }, - "module": "modules.devices.braket.TN1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", - "class": "Ionq", - "args": { - "device_name": "ionQ", - "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" - }, - "module": "modules.devices.braket.Ionq", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", - "class": "Rigetti", - "args": { - "device_name": "Rigetti Aspen-9", - "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" - }, - "module": "modules.devices.braket.Rigetti", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - } - ] - }, - { - "name": "PennylaneQAOA", - "class": "PennylaneQAOA", - "args": {}, - "module": "modules.solvers.PennylaneQAOA", - "requirements": [ - { - "name": "pennylane", - "version": "0.37.0" - }, - { - "name": "pennylane-lightning", - "version": "0.38.0" - }, - { - "name": "amazon-braket-pennylane-plugin", - "version": "1.30.0" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", - "class": "SV1", - "args": { - "device_name": "SV1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" - }, - "module": "modules.devices.braket.SV1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", - "class": "TN1", - "args": { - "device_name": "TN1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" - }, - "module": "modules.devices.braket.TN1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", - "class": "Ionq", - "args": { - "device_name": "ionq", - "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" - }, - "module": "modules.devices.braket.Ionq", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", - "class": "Rigetti", - "args": { - "device_name": "Rigetti", - "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" - }, - "module": "modules.devices.braket.Rigetti", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy", - "class": "OQC", - "args": { - "device_name": "OQC", - "arn": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy" - }, - "module": "modules.devices.braket.OQC", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "braket.local.qubit", - "class": "HelperClass", - "args": { - "device_name": "braket.local.qubit" - }, - "module": "modules.devices.HelperClass", - "requirements": [], - "submodules": [] - }, - { - "name": "default.qubit", - "class": "HelperClass", - "args": { - "device_name": "default.qubit" - }, - "module": "modules.devices.HelperClass", - "requirements": [], - "submodules": [] - }, - { - "name": "default.qubit.autograd", - "class": "HelperClass", - "args": { - "device_name": "default.qubit.autograd" - }, - "module": "modules.devices.HelperClass", - "requirements": [], - "submodules": [] - }, - { - "name": "qulacs.simulator", - "class": "HelperClass", - "args": { - "device_name": "qulacs.simulator" - }, - "module": "modules.devices.HelperClass", - "requirements": [], - "submodules": [] - }, - { - "name": "lightning.gpu", - "class": "HelperClass", - "args": { - "device_name": "lightning.gpu" - }, - "module": "modules.devices.HelperClass", - "requirements": [], - "submodules": [] - }, - { - "name": "lightning.qubit", - "class": "HelperClass", - "args": { - "device_name": "lightning.qubit" - }, - "module": "modules.devices.HelperClass", - "requirements": [], - "submodules": [] - } - ] - } - ] - } - ], - "requirements": [ - { - "name": "nnf", - "version": "0.4.1" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ] - }, - { - "name": "TSP", - "class": "TSP", - "module": "modules.applications.optimization.TSP.TSP", - "submodules": [ - { - "name": "Ising", - "class": "Ising", - "args": {}, - "module": "modules.applications.optimization.TSP.mappings.ISING", - "requirements": [ - { - "name": "networkx", - "version": "3.2.1" - }, - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "dimod", - "version": "0.12.17" - }, - { - "name": "more-itertools", - "version": "10.5.0" - }, - { - "name": "qiskit-optimization", - "version": "0.6.1" - }, - { - "name": "pyqubo", - "version": "1.4.0" - }, - { - "name": "networkx", - "version": "3.2.1" - }, - { - "name": "dwave_networkx", - "version": "0.8.15" - } - ], - "submodules": [ - { - "name": "QAOA", - "class": "QAOA", - "args": {}, - "module": "modules.solvers.QAOA", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "scipy", - "version": "1.12.0" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "LocalSimulator", - "class": "LocalSimulator", - "args": { - "device_name": "LocalSimulator" - }, - "module": "modules.devices.braket.LocalSimulator", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", - "class": "SV1", - "args": { - "device_name": "SV1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" - }, - "module": "modules.devices.braket.SV1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", - "class": "TN1", - "args": { - "device_name": "TN1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" - }, - "module": "modules.devices.braket.TN1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", - "class": "Ionq", - "args": { - "device_name": "ionQ", - "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" - }, - "module": "modules.devices.braket.Ionq", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", - "class": "Rigetti", - "args": { - "device_name": "Rigetti Aspen-9", - "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" - }, - "module": "modules.devices.braket.Rigetti", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - } - ] - }, - { - "name": "PennylaneQAOA", - "class": "PennylaneQAOA", - "args": {}, - "module": "modules.solvers.PennylaneQAOA", - "requirements": [ - { - "name": "pennylane", - "version": "0.37.0" - }, - { - "name": "pennylane-lightning", - "version": "0.38.0" - }, - { - "name": "amazon-braket-pennylane-plugin", - "version": "1.30.0" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", - "class": "SV1", - "args": { - "device_name": "SV1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" - }, - "module": "modules.devices.braket.SV1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", - "class": "TN1", - "args": { - "device_name": "TN1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" - }, - "module": "modules.devices.braket.TN1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", - "class": "Ionq", - "args": { - "device_name": "ionq", - "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" - }, - "module": "modules.devices.braket.Ionq", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", - "class": "Rigetti", - "args": { - "device_name": "Rigetti", - "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" - }, - "module": "modules.devices.braket.Rigetti", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy", - "class": "OQC", - "args": { - "device_name": "OQC", - "arn": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy" - }, - "module": "modules.devices.braket.OQC", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.87.0" - }, - { - "name": "botocore", - "version": "1.35.20" - }, - { - "name": "boto3", - "version": "1.35.20" - } - ], - "submodules": [] - }, - { - "name": "braket.local.qubit", - "class": "HelperClass", - "args": { - "device_name": "braket.local.qubit" - }, - "module": "modules.devices.HelperClass", - "requirements": [], - "submodules": [] - }, - { - "name": "default.qubit", - "class": "HelperClass", - "args": { - "device_name": "default.qubit" - }, - "module": "modules.devices.HelperClass", - "requirements": [], - "submodules": [] - }, - { - "name": "default.qubit.autograd", - "class": "HelperClass", - "args": { - "device_name": "default.qubit.autograd" - }, - "module": "modules.devices.HelperClass", - "requirements": [], - "submodules": [] - }, - { - "name": "qulacs.simulator", - "class": "HelperClass", - "args": { - "device_name": "qulacs.simulator" - }, - "module": "modules.devices.HelperClass", - "requirements": [], - "submodules": [] - }, - { - "name": "lightning.gpu", - "class": "HelperClass", - "args": { - "device_name": "lightning.gpu" - }, - "module": "modules.devices.HelperClass", - "requirements": [], - "submodules": [] - }, - { - "name": "lightning.qubit", - "class": "HelperClass", - "args": { - "device_name": "lightning.qubit" - }, - "module": "modules.devices.HelperClass", - "requirements": [], - "submodules": [] - } - ] - }, - { - "name": "QiskitQAOA", - "class": "QiskitQAOA", - "args": {}, - "module": "modules.solvers.QiskitQAOA", - "requirements": [ - { - "name": "qiskit", - "version": "1.1.0" - }, - { - "name": "qiskit-optimization", - "version": "0.6.1" - }, - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "qiskit-algorithms", - "version": "0.3.0" - } - ], - "submodules": [ - { - "name": "qasm_simulator", - "class": "HelperClass", - "args": { - "device_name": "qasm_simulator" - }, - "module": "modules.devices.HelperClass", - "requirements": [], - "submodules": [] - }, - { - "name": "qasm_simulator_gpu", - "class": "HelperClass", - "args": { - "device_name": "qasm_simulator_gpu" - }, - "module": "modules.devices.HelperClass", - "requirements": [], - "submodules": [] - } - ] - } - ] - }, - { - "name": "QUBO", - "class": "QUBO", - "args": {}, - "module": "modules.applications.optimization.TSP.mappings.QUBO", - "requirements": [ - { - "name": "networkx", - "version": "3.2.1" - }, - { - "name": "dwave_networkx", - "version": "0.8.15" - } - ], - "submodules": [ - { - "name": "Annealer", - "class": "Annealer", - "args": {}, - "module": "modules.solvers.Annealer", - "requirements": [], - "submodules": [ - { - "name": "Simulated Annealer", - "class": "SimulatedAnnealingSampler", - "args": {}, - "module": "modules.devices.SimulatedAnnealingSampler", - "requirements": [ - { - "name": "dwave-samplers", - "version": "1.3.0" - } - ], - "submodules": [] - } - ] - } - ] - }, - { - "name": "GreedyClassicalTSP", - "class": "GreedyClassicalTSP", - "args": {}, - "module": "modules.solvers.GreedyClassicalTSP", - "requirements": [ - { - "name": "networkx", - "version": "3.2.1" - } - ], - "submodules": [ - { - "name": "Local", - "class": "Local", - "args": {}, - "module": "modules.devices.Local", - "requirements": [], - "submodules": [] - } - ] - }, - { - "name": "ReverseGreedyClassicalTSP", - "class": "ReverseGreedyClassicalTSP", - "args": {}, - "module": "modules.solvers.ReverseGreedyClassicalTSP", - "requirements": [ - { - "name": "networkx", - "version": "3.2.1" - } - ], - "submodules": [ - { - "name": "Local", - "class": "Local", - "args": {}, - "module": "modules.devices.Local", - "requirements": [], - "submodules": [] - } - ] - }, - { - "name": "RandomTSP", - "class": "RandomTSP", - "args": {}, - "module": "modules.solvers.RandomClassicalTSP", - "requirements": [ - { - "name": "networkx", - "version": "3.2.1" - } - ], - "submodules": [ - { - "name": "Local", - "class": "Local", - "args": {}, - "module": "modules.devices.Local", - "requirements": [], - "submodules": [] - } - ] - } - ], - "requirements": [ - { - "name": "networkx", - "version": "3.2.1" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ] - }, - { - "name": "ACL", - "class": "ACL", - "module": "modules.applications.optimization.ACL.ACL", - "submodules": [ - { - "name": "MIPsolverACL", - "class": "MIPaclp", - "args": {}, - "module": "modules.solvers.MIPsolverACL", - "requirements": [ - { - "name": "pulp", - "version": "2.9.0" - } - ], - "submodules": [ - { - "name": "Local", - "class": "Local", - "args": {}, - "module": "modules.devices.Local", - "requirements": [], - "submodules": [] - } - ] - }, - { - "name": "QUBO", - "class": "Qubo", - "args": {}, - "module": "modules.applications.optimization.ACL.mappings.QUBO", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "qiskit-optimization", - "version": "0.6.1" - } - ], - "submodules": [ - { - "name": "Annealer", - "class": "Annealer", - "args": {}, - "module": "modules.solvers.Annealer", - "requirements": [], - "submodules": [ - { - "name": "Simulated Annealer", - "class": "SimulatedAnnealingSampler", - "args": {}, - "module": "modules.devices.SimulatedAnnealingSampler", - "requirements": [ - { - "name": "dwave-samplers", - "version": "1.3.0" - } - ], - "submodules": [] - } - ] - } - ] - } - ], - "requirements": [ - { - "name": "pulp", - "version": "2.9.0" - }, - { - "name": "pandas", - "version": "2.2.2" - }, - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "openpyxl", - "version": "3.1.5" - } - ] - }, - { - "name": "MIS", - "class": "MIS", - "module": "modules.applications.optimization.MIS.MIS", - "submodules": [ - { - "name": "QIRO", - "class": "QIRO", - "args": {}, - "module": "modules.applications.optimization.MIS.mappings.QIRO", - "requirements": [ - { - "name": "qrisp", - "version": "0.5.2" - } - ], - "submodules": [ - { - "name": "QrispQIRO", - "class": "QIROSolver", - "args": {}, - "module": "modules.solvers.QrispQIRO", - "requirements": [ - { - "name": "qrisp", - "version": "0.5.2" - } - ], - "submodules": [ - { - "name": "qrisp_simulator", - "class": "QrispSimulator", - "args": {}, - "module": "modules.devices.qrisp_simulator.QrispSimulator", - "requirements": [ - { - "name": "qrisp", - "version": "0.5.2" - } - ], - "submodules": [] - } - ] - } - ] - }, - { - "name": "NeutralAtom", - "class": "NeutralAtom", - "args": {}, - "module": "modules.applications.optimization.MIS.mappings.NeutralAtom", - "requirements": [ - { - "name": "pulser", - "version": "0.19.0" - } - ], - "submodules": [ - { - "name": "NeutralAtomMIS", - "class": "NeutralAtomMIS", - "args": {}, - "module": "modules.solvers.NeutralAtomMIS", - "requirements": [ - { - "name": "pulser", - "version": "0.19.0" - } - ], - "submodules": [ - { - "name": "MockNeutralAtomDevice", - "class": "MockNeutralAtomDevice", - "args": {}, - "module": "modules.devices.pulser.MockNeutralAtomDevice", - "requirements": [ - { - "name": "pulser", - "version": "0.19.0" - } - ], - "submodules": [] - } - ] - } - ] - } - ], - "requirements": [] - }, - { - "name": "SCP", - "class": "SCP", - "module": "modules.applications.optimization.SCP.SCP", - "submodules": [ - { - "name": "qubovertQUBO", - "class": "QubovertQUBO", - "args": {}, - "module": "modules.applications.optimization.SCP.mappings.qubovertQUBO", - "requirements": [ - { - "name": "qubovert", - "version": "1.2.5" - } - ], - "submodules": [ - { - "name": "Annealer", - "class": "Annealer", - "args": {}, - "module": "modules.solvers.Annealer", - "requirements": [], - "submodules": [ - { - "name": "Simulated Annealer", - "class": "SimulatedAnnealingSampler", - "args": {}, - "module": "modules.devices.SimulatedAnnealingSampler", - "requirements": [ - { - "name": "dwave-samplers", - "version": "1.3.0" - } - ], - "submodules": [] - } - ] - } - ] - } - ], - "requirements": [] - }, - { - "name": "GenerativeModeling", - "class": "GenerativeModeling", - "module": "modules.applications.qml.generative_modeling.GenerativeModeling", - "submodules": [ - { - "name": "Continuous Data", - "class": "ContinuousData", - "args": {}, - "module": "modules.applications.qml.generative_modeling.data.data_handler.ContinuousData", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "PIT", - "class": "PIT", - "args": {}, - "module": "modules.applications.qml.generative_modeling.transformations.PIT", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "pandas", - "version": "2.2.2" - } - ], - "submodules": [ - { - "name": "CircuitCopula", - "class": "CircuitCopula", - "args": {}, - "module": "modules.applications.qml.generative_modeling.circuits.CircuitCopula", - "requirements": [ - { - "name": "scipy", - "version": "1.12.0" - } - ], - "submodules": [ - { - "name": "LibraryQiskit", - "class": "LibraryQiskit", - "args": {}, - "module": "modules.applications.qml.generative_modeling.mappings.LibraryQiskit", - "requirements": [ - { - "name": "qiskit", - "version": "1.1.0" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "QCBM", - "class": "QCBM", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.QCBM", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "cma", - "version": "4.0.0" - }, - { - "name": "matplotlib", - "version": "3.7.5" - }, - { - "name": "tensorboard", - "version": "2.17.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "QGAN", - "class": "QGAN", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.QGAN", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "torch", - "version": "2.2.0" - }, - { - "name": "matplotlib", - "version": "3.7.5" - }, - { - "name": "tensorboard", - "version": "2.17.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "Inference", - "class": "Inference", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.Inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - }, - { - "name": "LibraryPennylane", - "class": "LibraryPennylane", - "args": {}, - "module": "modules.applications.qml.generative_modeling.mappings.LibraryPennylane", - "requirements": [ - { - "name": "pennylane", - "version": "0.37.0" - }, - { - "name": "pennylane-lightning", - "version": "0.38.0" - }, - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "jax", - "version": "0.4.30" - }, - { - "name": "jaxlib", - "version": "0.4.30" - } - ], - "submodules": [ - { - "name": "QCBM", - "class": "QCBM", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.QCBM", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "cma", - "version": "4.0.0" - }, - { - "name": "matplotlib", - "version": "3.7.5" - }, - { - "name": "tensorboard", - "version": "2.17.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "QGAN", - "class": "QGAN", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.QGAN", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "torch", - "version": "2.2.0" - }, - { - "name": "matplotlib", - "version": "3.7.5" - }, - { - "name": "tensorboard", - "version": "2.17.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "Inference", - "class": "Inference", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.Inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - }, - { - "name": "CustomQiskitNoisyBackend", - "class": "CustomQiskitNoisyBackend", - "args": {}, - "module": "modules.applications.qml.generative_modeling.mappings.CustomQiskitNoisyBackend", - "requirements": [ - { - "name": "qiskit", - "version": "1.1.0" - }, - { - "name": "qiskit_aer", - "version": "0.15.0" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "QCBM", - "class": "QCBM", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.QCBM", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "cma", - "version": "4.0.0" - }, - { - "name": "matplotlib", - "version": "3.7.5" - }, - { - "name": "tensorboard", - "version": "2.17.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "Inference", - "class": "Inference", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.Inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - }, - { - "name": "PresetQiskitNoisyBackend", - "class": "PresetQiskitNoisyBackend", - "args": {}, - "module": "modules.applications.qml.generative_modeling.mappings.PresetQiskitNoisyBackend", - "requirements": [ - { - "name": "qiskit", - "version": "1.1.0" - }, - { - "name": "qiskit_ibm_runtime", - "version": "0.29.0" - }, - { - "name": "qiskit_aer", - "version": "0.15.0" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "QCBM", - "class": "QCBM", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.QCBM", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "cma", - "version": "4.0.0" - }, - { - "name": "matplotlib", - "version": "3.7.5" - }, - { - "name": "tensorboard", - "version": "2.17.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "Inference", - "class": "Inference", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.Inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - } - ] - } - ] - }, - { - "name": "MinMax", - "class": "MinMax", - "args": {}, - "module": "modules.applications.qml.generative_modeling.transformations.MinMax", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "CircuitStandard", - "class": "CircuitStandard", - "args": {}, - "module": "modules.applications.qml.generative_modeling.circuits.CircuitStandard", - "requirements": [], - "submodules": [ - { - "name": "LibraryQiskit", - "class": "LibraryQiskit", - "args": {}, - "module": "modules.applications.qml.generative_modeling.mappings.LibraryQiskit", - "requirements": [ - { - "name": "qiskit", - "version": "1.1.0" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "QCBM", - "class": "QCBM", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.QCBM", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "cma", - "version": "4.0.0" - }, - { - "name": "matplotlib", - "version": "3.7.5" - }, - { - "name": "tensorboard", - "version": "2.17.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "QGAN", - "class": "QGAN", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.QGAN", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "torch", - "version": "2.2.0" - }, - { - "name": "matplotlib", - "version": "3.7.5" - }, - { - "name": "tensorboard", - "version": "2.17.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "Inference", - "class": "Inference", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.Inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - }, - { - "name": "LibraryPennylane", - "class": "LibraryPennylane", - "args": {}, - "module": "modules.applications.qml.generative_modeling.mappings.LibraryPennylane", - "requirements": [ - { - "name": "pennylane", - "version": "0.37.0" - }, - { - "name": "pennylane-lightning", - "version": "0.38.0" - }, - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "jax", - "version": "0.4.30" - }, - { - "name": "jaxlib", - "version": "0.4.30" - } - ], - "submodules": [ - { - "name": "QCBM", - "class": "QCBM", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.QCBM", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "cma", - "version": "4.0.0" - }, - { - "name": "matplotlib", - "version": "3.7.5" - }, - { - "name": "tensorboard", - "version": "2.17.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "QGAN", - "class": "QGAN", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.QGAN", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "torch", - "version": "2.2.0" - }, - { - "name": "matplotlib", - "version": "3.7.5" - }, - { - "name": "tensorboard", - "version": "2.17.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "Inference", - "class": "Inference", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.Inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - }, - { - "name": "CustomQiskitNoisyBackend", - "class": "CustomQiskitNoisyBackend", - "args": {}, - "module": "modules.applications.qml.generative_modeling.mappings.CustomQiskitNoisyBackend", - "requirements": [ - { - "name": "qiskit", - "version": "1.1.0" - }, - { - "name": "qiskit_aer", - "version": "0.15.0" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "QCBM", - "class": "QCBM", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.QCBM", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "cma", - "version": "4.0.0" - }, - { - "name": "matplotlib", - "version": "3.7.5" - }, - { - "name": "tensorboard", - "version": "2.17.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "Inference", - "class": "Inference", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.Inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - }, - { - "name": "PresetQiskitNoisyBackend", - "class": "PresetQiskitNoisyBackend", - "args": {}, - "module": "modules.applications.qml.generative_modeling.mappings.PresetQiskitNoisyBackend", - "requirements": [ - { - "name": "qiskit", - "version": "1.1.0" - }, - { - "name": "qiskit_ibm_runtime", - "version": "0.29.0" - }, - { - "name": "qiskit_aer", - "version": "0.15.0" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "QCBM", - "class": "QCBM", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.QCBM", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "cma", - "version": "4.0.0" - }, - { - "name": "matplotlib", - "version": "3.7.5" - }, - { - "name": "tensorboard", - "version": "2.17.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "Inference", - "class": "Inference", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.Inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - } - ] - }, - { - "name": "CircuitCardinality", - "class": "CircuitCardinality", - "args": {}, - "module": "modules.applications.qml.generative_modeling.circuits.CircuitCardinality", - "requirements": [], - "submodules": [ - { - "name": "LibraryQiskit", - "class": "LibraryQiskit", - "args": {}, - "module": "modules.applications.qml.generative_modeling.mappings.LibraryQiskit", - "requirements": [ - { - "name": "qiskit", - "version": "1.1.0" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "QCBM", - "class": "QCBM", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.QCBM", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "cma", - "version": "4.0.0" - }, - { - "name": "matplotlib", - "version": "3.7.5" - }, - { - "name": "tensorboard", - "version": "2.17.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "QGAN", - "class": "QGAN", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.QGAN", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "torch", - "version": "2.2.0" - }, - { - "name": "matplotlib", - "version": "3.7.5" - }, - { - "name": "tensorboard", - "version": "2.17.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "Inference", - "class": "Inference", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.Inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - }, - { - "name": "LibraryPennylane", - "class": "LibraryPennylane", - "args": {}, - "module": "modules.applications.qml.generative_modeling.mappings.LibraryPennylane", - "requirements": [ - { - "name": "pennylane", - "version": "0.37.0" - }, - { - "name": "pennylane-lightning", - "version": "0.38.0" - }, - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "jax", - "version": "0.4.30" - }, - { - "name": "jaxlib", - "version": "0.4.30" - } - ], - "submodules": [ - { - "name": "QCBM", - "class": "QCBM", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.QCBM", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "cma", - "version": "4.0.0" - }, - { - "name": "matplotlib", - "version": "3.7.5" - }, - { - "name": "tensorboard", - "version": "2.17.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "QGAN", - "class": "QGAN", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.QGAN", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "torch", - "version": "2.2.0" - }, - { - "name": "matplotlib", - "version": "3.7.5" - }, - { - "name": "tensorboard", - "version": "2.17.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "Inference", - "class": "Inference", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.Inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - }, - { - "name": "CustomQiskitNoisyBackend", - "class": "CustomQiskitNoisyBackend", - "args": {}, - "module": "modules.applications.qml.generative_modeling.mappings.CustomQiskitNoisyBackend", - "requirements": [ - { - "name": "qiskit", - "version": "1.1.0" - }, - { - "name": "qiskit_aer", - "version": "0.15.0" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "QCBM", - "class": "QCBM", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.QCBM", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "cma", - "version": "4.0.0" - }, - { - "name": "matplotlib", - "version": "3.7.5" - }, - { - "name": "tensorboard", - "version": "2.17.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "Inference", - "class": "Inference", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.Inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - }, - { - "name": "PresetQiskitNoisyBackend", - "class": "PresetQiskitNoisyBackend", - "args": {}, - "module": "modules.applications.qml.generative_modeling.mappings.PresetQiskitNoisyBackend", - "requirements": [ - { - "name": "qiskit", - "version": "1.1.0" - }, - { - "name": "qiskit_ibm_runtime", - "version": "0.29.0" - }, - { - "name": "qiskit_aer", - "version": "0.15.0" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "QCBM", - "class": "QCBM", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.QCBM", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "cma", - "version": "4.0.0" - }, - { - "name": "matplotlib", - "version": "3.7.5" - }, - { - "name": "tensorboard", - "version": "2.17.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "Inference", - "class": "Inference", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.Inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - } - ] - } - ] - } - ] - }, - { - "name": "Discrete Data", - "class": "DiscreteData", - "args": {}, - "module": "modules.applications.qml.generative_modeling.data.data_handler.DiscreteData", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "CircuitCardinality", - "class": "CircuitCardinality", - "args": {}, - "module": "modules.applications.qml.generative_modeling.circuits.CircuitCardinality", - "requirements": [], - "submodules": [ - { - "name": "LibraryQiskit", - "class": "LibraryQiskit", - "args": {}, - "module": "modules.applications.qml.generative_modeling.mappings.LibraryQiskit", - "requirements": [ - { - "name": "qiskit", - "version": "1.1.0" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "QCBM", - "class": "QCBM", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.QCBM", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "cma", - "version": "4.0.0" - }, - { - "name": "matplotlib", - "version": "3.7.5" - }, - { - "name": "tensorboard", - "version": "2.17.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "QGAN", - "class": "QGAN", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.QGAN", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "torch", - "version": "2.2.0" - }, - { - "name": "matplotlib", - "version": "3.7.5" - }, - { - "name": "tensorboard", - "version": "2.17.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "Inference", - "class": "Inference", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.Inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - }, - { - "name": "LibraryPennylane", - "class": "LibraryPennylane", - "args": {}, - "module": "modules.applications.qml.generative_modeling.mappings.LibraryPennylane", - "requirements": [ - { - "name": "pennylane", - "version": "0.37.0" - }, - { - "name": "pennylane-lightning", - "version": "0.38.0" - }, - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "jax", - "version": "0.4.30" - }, - { - "name": "jaxlib", - "version": "0.4.30" - } - ], - "submodules": [ - { - "name": "QCBM", - "class": "QCBM", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.QCBM", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "cma", - "version": "4.0.0" - }, - { - "name": "matplotlib", - "version": "3.7.5" - }, - { - "name": "tensorboard", - "version": "2.17.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "QGAN", - "class": "QGAN", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.QGAN", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "torch", - "version": "2.2.0" - }, - { - "name": "matplotlib", - "version": "3.7.5" - }, - { - "name": "tensorboard", - "version": "2.17.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "Inference", - "class": "Inference", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.Inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - }, - { - "name": "CustomQiskitNoisyBackend", - "class": "CustomQiskitNoisyBackend", - "args": {}, - "module": "modules.applications.qml.generative_modeling.mappings.CustomQiskitNoisyBackend", - "requirements": [ - { - "name": "qiskit", - "version": "1.1.0" - }, - { - "name": "qiskit_aer", - "version": "0.15.0" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "QCBM", - "class": "QCBM", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.QCBM", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "cma", - "version": "4.0.0" - }, - { - "name": "matplotlib", - "version": "3.7.5" - }, - { - "name": "tensorboard", - "version": "2.17.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "Inference", - "class": "Inference", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.Inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - }, - { - "name": "PresetQiskitNoisyBackend", - "class": "PresetQiskitNoisyBackend", - "args": {}, - "module": "modules.applications.qml.generative_modeling.mappings.PresetQiskitNoisyBackend", - "requirements": [ - { - "name": "qiskit", - "version": "1.1.0" - }, - { - "name": "qiskit_ibm_runtime", - "version": "0.29.0" - }, - { - "name": "qiskit_aer", - "version": "0.15.0" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "QCBM", - "class": "QCBM", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.QCBM", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "cma", - "version": "4.0.0" - }, - { - "name": "matplotlib", - "version": "3.7.5" - }, - { - "name": "tensorboard", - "version": "2.17.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "Inference", - "class": "Inference", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.Inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - } - ] - } - ] - } - ], - "requirements": [] - } - ] +{ + "build_number": 17, + "build_date": "06-12-2024 16:34:38", + "git_revision_number": "4e90d19586fdbf5672ebcb4725aa9b045b6733ce", + "modules": [ + { + "name": "PVC", + "class": "PVC", + "module": "modules.applications.optimization.PVC.PVC", + "submodules": [ + { + "name": "Ising", + "class": "Ising", + "args": {}, + "module": "modules.applications.optimization.PVC.mappings.ISING", + "requirements": [ + { + "name": "networkx", + "version": "3.4.2" + }, + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "dimod", + "version": "0.12.18" + }, + { + "name": "networkx", + "version": "3.4.2" + } + ], + "submodules": [ + { + "name": "QAOA", + "class": "QAOA", + "args": {}, + "module": "modules.solvers.QAOA", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "scipy", + "version": "1.12.0" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "LocalSimulator", + "class": "LocalSimulator", + "args": { + "device_name": "LocalSimulator" + }, + "module": "modules.devices.braket.LocalSimulator", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", + "class": "SV1", + "args": { + "device_name": "SV1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" + }, + "module": "modules.devices.braket.SV1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", + "class": "TN1", + "args": { + "device_name": "TN1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" + }, + "module": "modules.devices.braket.TN1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", + "class": "Ionq", + "args": { + "device_name": "ionQ", + "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" + }, + "module": "modules.devices.braket.Ionq", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", + "class": "Rigetti", + "args": { + "device_name": "Rigetti Aspen-9", + "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" + }, + "module": "modules.devices.braket.Rigetti", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + } + ] + }, + { + "name": "PennylaneQAOA", + "class": "PennylaneQAOA", + "args": {}, + "module": "modules.solvers.PennylaneQAOA", + "requirements": [ + { + "name": "pennylane", + "version": "0.39.0" + }, + { + "name": "pennylane-lightning", + "version": "0.39.0" + }, + { + "name": "amazon-braket-pennylane-plugin", + "version": "1.30.2" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", + "class": "SV1", + "args": { + "device_name": "SV1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" + }, + "module": "modules.devices.braket.SV1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", + "class": "TN1", + "args": { + "device_name": "TN1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" + }, + "module": "modules.devices.braket.TN1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", + "class": "Ionq", + "args": { + "device_name": "ionq", + "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" + }, + "module": "modules.devices.braket.Ionq", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", + "class": "Rigetti", + "args": { + "device_name": "Rigetti", + "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" + }, + "module": "modules.devices.braket.Rigetti", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy", + "class": "OQC", + "args": { + "device_name": "OQC", + "arn": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy" + }, + "module": "modules.devices.braket.OQC", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "braket.local.qubit", + "class": "HelperClass", + "args": { + "device_name": "braket.local.qubit" + }, + "module": "modules.devices.HelperClass", + "requirements": [], + "submodules": [] + }, + { + "name": "default.qubit", + "class": "HelperClass", + "args": { + "device_name": "default.qubit" + }, + "module": "modules.devices.HelperClass", + "requirements": [], + "submodules": [] + }, + { + "name": "default.qubit.autograd", + "class": "HelperClass", + "args": { + "device_name": "default.qubit.autograd" + }, + "module": "modules.devices.HelperClass", + "requirements": [], + "submodules": [] + }, + { + "name": "qulacs.simulator", + "class": "HelperClass", + "args": { + "device_name": "qulacs.simulator" + }, + "module": "modules.devices.HelperClass", + "requirements": [], + "submodules": [] + }, + { + "name": "lightning.gpu", + "class": "HelperClass", + "args": { + "device_name": "lightning.gpu" + }, + "module": "modules.devices.HelperClass", + "requirements": [], + "submodules": [] + }, + { + "name": "lightning.qubit", + "class": "HelperClass", + "args": { + "device_name": "lightning.qubit" + }, + "module": "modules.devices.HelperClass", + "requirements": [], + "submodules": [] + } + ] + } + ] + }, + { + "name": "QUBO", + "class": "QUBO", + "args": {}, + "module": "modules.applications.optimization.PVC.mappings.QUBO", + "requirements": [ + { + "name": "networkx", + "version": "3.4.2" + } + ], + "submodules": [ + { + "name": "Annealer", + "class": "Annealer", + "args": {}, + "module": "modules.solvers.Annealer", + "requirements": [], + "submodules": [ + { + "name": "Simulated Annealer", + "class": "SimulatedAnnealingSampler", + "args": {}, + "module": "modules.devices.SimulatedAnnealingSampler", + "requirements": [ + { + "name": "dwave-samplers", + "version": "1.4.0" + } + ], + "submodules": [] + } + ] + } + ] + }, + { + "name": "GreedyClassicalPVC", + "class": "GreedyClassicalPVC", + "args": {}, + "module": "modules.solvers.GreedyClassicalPVC", + "requirements": [ + { + "name": "networkx", + "version": "3.4.2" + } + ], + "submodules": [ + { + "name": "Local", + "class": "Local", + "args": {}, + "module": "modules.devices.Local", + "requirements": [], + "submodules": [] + } + ] + }, + { + "name": "ReverseGreedyClassicalPVC", + "class": "ReverseGreedyClassicalPVC", + "args": {}, + "module": "modules.solvers.ReverseGreedyClassicalPVC", + "requirements": [ + { + "name": "networkx", + "version": "3.4.2" + } + ], + "submodules": [ + { + "name": "Local", + "class": "Local", + "args": {}, + "module": "modules.devices.Local", + "requirements": [], + "submodules": [] + } + ] + }, + { + "name": "RandomPVC", + "class": "RandomPVC", + "args": {}, + "module": "modules.solvers.RandomClassicalPVC", + "requirements": [ + { + "name": "networkx", + "version": "3.4.2" + } + ], + "submodules": [ + { + "name": "Local", + "class": "Local", + "args": {}, + "module": "modules.devices.Local", + "requirements": [], + "submodules": [] + } + ] + } + ], + "requirements": [ + { + "name": "networkx", + "version": "3.4.2" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ] + }, + { + "name": "SAT", + "class": "SAT", + "module": "modules.applications.optimization.SAT.SAT", + "submodules": [ + { + "name": "QubovertQUBO", + "class": "QubovertQUBO", + "args": {}, + "module": "modules.applications.optimization.SAT.mappings.QubovertQUBO", + "requirements": [ + { + "name": "nnf", + "version": "0.4.1" + }, + { + "name": "qubovert", + "version": "1.2.5" + } + ], + "submodules": [ + { + "name": "Annealer", + "class": "Annealer", + "args": {}, + "module": "modules.solvers.Annealer", + "requirements": [], + "submodules": [ + { + "name": "Simulated Annealer", + "class": "SimulatedAnnealingSampler", + "args": {}, + "module": "modules.devices.SimulatedAnnealingSampler", + "requirements": [ + { + "name": "dwave-samplers", + "version": "1.4.0" + } + ], + "submodules": [] + } + ] + } + ] + }, + { + "name": "Direct", + "class": "Direct", + "args": {}, + "module": "modules.applications.optimization.SAT.mappings.Direct", + "requirements": [ + { + "name": "nnf", + "version": "0.4.1" + }, + { + "name": "python-sat", + "version": "1.8.dev13" + } + ], + "submodules": [ + { + "name": "ClassicalSAT", + "class": "ClassicalSAT", + "args": {}, + "module": "modules.solvers.ClassicalSAT", + "requirements": [ + { + "name": "python-sat", + "version": "1.8.dev13" + } + ], + "submodules": [ + { + "name": "Local", + "class": "Local", + "args": {}, + "module": "modules.devices.Local", + "requirements": [], + "submodules": [] + } + ] + }, + { + "name": "RandomSAT", + "class": "RandomSAT", + "args": {}, + "module": "modules.solvers.RandomClassicalSAT", + "requirements": [ + { + "name": "python-sat", + "version": "1.8.dev13" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "Local", + "class": "Local", + "args": {}, + "module": "modules.devices.Local", + "requirements": [], + "submodules": [] + } + ] + } + ] + }, + { + "name": "ChoiQUBO", + "class": "ChoiQUBO", + "args": {}, + "module": "modules.applications.optimization.SAT.mappings.ChoiQUBO", + "requirements": [ + { + "name": "nnf", + "version": "0.4.1" + } + ], + "submodules": [ + { + "name": "Annealer", + "class": "Annealer", + "args": {}, + "module": "modules.solvers.Annealer", + "requirements": [], + "submodules": [ + { + "name": "Simulated Annealer", + "class": "SimulatedAnnealingSampler", + "args": {}, + "module": "modules.devices.SimulatedAnnealingSampler", + "requirements": [ + { + "name": "dwave-samplers", + "version": "1.4.0" + } + ], + "submodules": [] + } + ] + } + ] + }, + { + "name": "DinneenQUBO", + "class": "DinneenQUBO", + "args": {}, + "module": "modules.applications.optimization.SAT.mappings.DinneenQUBO", + "requirements": [ + { + "name": "nnf", + "version": "0.4.1" + } + ], + "submodules": [ + { + "name": "Annealer", + "class": "Annealer", + "args": {}, + "module": "modules.solvers.Annealer", + "requirements": [], + "submodules": [ + { + "name": "Simulated Annealer", + "class": "SimulatedAnnealingSampler", + "args": {}, + "module": "modules.devices.SimulatedAnnealingSampler", + "requirements": [ + { + "name": "dwave-samplers", + "version": "1.4.0" + } + ], + "submodules": [] + } + ] + } + ] + }, + { + "name": "ChoiIsing", + "class": "ChoiIsing", + "args": {}, + "module": "modules.applications.optimization.SAT.mappings.ChoiISING", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "dimod", + "version": "0.12.18" + }, + { + "name": "nnf", + "version": "0.4.1" + } + ], + "submodules": [ + { + "name": "QAOA", + "class": "QAOA", + "args": {}, + "module": "modules.solvers.QAOA", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "scipy", + "version": "1.12.0" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "LocalSimulator", + "class": "LocalSimulator", + "args": { + "device_name": "LocalSimulator" + }, + "module": "modules.devices.braket.LocalSimulator", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", + "class": "SV1", + "args": { + "device_name": "SV1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" + }, + "module": "modules.devices.braket.SV1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", + "class": "TN1", + "args": { + "device_name": "TN1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" + }, + "module": "modules.devices.braket.TN1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", + "class": "Ionq", + "args": { + "device_name": "ionQ", + "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" + }, + "module": "modules.devices.braket.Ionq", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", + "class": "Rigetti", + "args": { + "device_name": "Rigetti Aspen-9", + "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" + }, + "module": "modules.devices.braket.Rigetti", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + } + ] + }, + { + "name": "PennylaneQAOA", + "class": "PennylaneQAOA", + "args": {}, + "module": "modules.solvers.PennylaneQAOA", + "requirements": [ + { + "name": "pennylane", + "version": "0.39.0" + }, + { + "name": "pennylane-lightning", + "version": "0.39.0" + }, + { + "name": "amazon-braket-pennylane-plugin", + "version": "1.30.2" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", + "class": "SV1", + "args": { + "device_name": "SV1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" + }, + "module": "modules.devices.braket.SV1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", + "class": "TN1", + "args": { + "device_name": "TN1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" + }, + "module": "modules.devices.braket.TN1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", + "class": "Ionq", + "args": { + "device_name": "ionq", + "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" + }, + "module": "modules.devices.braket.Ionq", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", + "class": "Rigetti", + "args": { + "device_name": "Rigetti", + "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" + }, + "module": "modules.devices.braket.Rigetti", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy", + "class": "OQC", + "args": { + "device_name": "OQC", + "arn": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy" + }, + "module": "modules.devices.braket.OQC", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "braket.local.qubit", + "class": "HelperClass", + "args": { + "device_name": "braket.local.qubit" + }, + "module": "modules.devices.HelperClass", + "requirements": [], + "submodules": [] + }, + { + "name": "default.qubit", + "class": "HelperClass", + "args": { + "device_name": "default.qubit" + }, + "module": "modules.devices.HelperClass", + "requirements": [], + "submodules": [] + }, + { + "name": "default.qubit.autograd", + "class": "HelperClass", + "args": { + "device_name": "default.qubit.autograd" + }, + "module": "modules.devices.HelperClass", + "requirements": [], + "submodules": [] + }, + { + "name": "qulacs.simulator", + "class": "HelperClass", + "args": { + "device_name": "qulacs.simulator" + }, + "module": "modules.devices.HelperClass", + "requirements": [], + "submodules": [] + }, + { + "name": "lightning.gpu", + "class": "HelperClass", + "args": { + "device_name": "lightning.gpu" + }, + "module": "modules.devices.HelperClass", + "requirements": [], + "submodules": [] + }, + { + "name": "lightning.qubit", + "class": "HelperClass", + "args": { + "device_name": "lightning.qubit" + }, + "module": "modules.devices.HelperClass", + "requirements": [], + "submodules": [] + } + ] + } + ] + }, + { + "name": "DinneenIsing", + "class": "DinneenIsing", + "args": {}, + "module": "modules.applications.optimization.SAT.mappings.DinneenISING", + "requirements": [ + { + "name": "nnf", + "version": "0.4.1" + }, + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "dimod", + "version": "0.12.18" + }, + { + "name": "nnf", + "version": "0.4.1" + } + ], + "submodules": [ + { + "name": "QAOA", + "class": "QAOA", + "args": {}, + "module": "modules.solvers.QAOA", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "scipy", + "version": "1.12.0" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "LocalSimulator", + "class": "LocalSimulator", + "args": { + "device_name": "LocalSimulator" + }, + "module": "modules.devices.braket.LocalSimulator", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", + "class": "SV1", + "args": { + "device_name": "SV1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" + }, + "module": "modules.devices.braket.SV1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", + "class": "TN1", + "args": { + "device_name": "TN1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" + }, + "module": "modules.devices.braket.TN1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", + "class": "Ionq", + "args": { + "device_name": "ionQ", + "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" + }, + "module": "modules.devices.braket.Ionq", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", + "class": "Rigetti", + "args": { + "device_name": "Rigetti Aspen-9", + "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" + }, + "module": "modules.devices.braket.Rigetti", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + } + ] + }, + { + "name": "PennylaneQAOA", + "class": "PennylaneQAOA", + "args": {}, + "module": "modules.solvers.PennylaneQAOA", + "requirements": [ + { + "name": "pennylane", + "version": "0.39.0" + }, + { + "name": "pennylane-lightning", + "version": "0.39.0" + }, + { + "name": "amazon-braket-pennylane-plugin", + "version": "1.30.2" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", + "class": "SV1", + "args": { + "device_name": "SV1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" + }, + "module": "modules.devices.braket.SV1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", + "class": "TN1", + "args": { + "device_name": "TN1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" + }, + "module": "modules.devices.braket.TN1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", + "class": "Ionq", + "args": { + "device_name": "ionq", + "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" + }, + "module": "modules.devices.braket.Ionq", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", + "class": "Rigetti", + "args": { + "device_name": "Rigetti", + "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" + }, + "module": "modules.devices.braket.Rigetti", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy", + "class": "OQC", + "args": { + "device_name": "OQC", + "arn": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy" + }, + "module": "modules.devices.braket.OQC", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "braket.local.qubit", + "class": "HelperClass", + "args": { + "device_name": "braket.local.qubit" + }, + "module": "modules.devices.HelperClass", + "requirements": [], + "submodules": [] + }, + { + "name": "default.qubit", + "class": "HelperClass", + "args": { + "device_name": "default.qubit" + }, + "module": "modules.devices.HelperClass", + "requirements": [], + "submodules": [] + }, + { + "name": "default.qubit.autograd", + "class": "HelperClass", + "args": { + "device_name": "default.qubit.autograd" + }, + "module": "modules.devices.HelperClass", + "requirements": [], + "submodules": [] + }, + { + "name": "qulacs.simulator", + "class": "HelperClass", + "args": { + "device_name": "qulacs.simulator" + }, + "module": "modules.devices.HelperClass", + "requirements": [], + "submodules": [] + }, + { + "name": "lightning.gpu", + "class": "HelperClass", + "args": { + "device_name": "lightning.gpu" + }, + "module": "modules.devices.HelperClass", + "requirements": [], + "submodules": [] + }, + { + "name": "lightning.qubit", + "class": "HelperClass", + "args": { + "device_name": "lightning.qubit" + }, + "module": "modules.devices.HelperClass", + "requirements": [], + "submodules": [] + } + ] + } + ] + } + ], + "requirements": [ + { + "name": "nnf", + "version": "0.4.1" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ] + }, + { + "name": "TSP", + "class": "TSP", + "module": "modules.applications.optimization.TSP.TSP", + "submodules": [ + { + "name": "Ising", + "class": "Ising", + "args": {}, + "module": "modules.applications.optimization.TSP.mappings.ISING", + "requirements": [ + { + "name": "networkx", + "version": "3.4.2" + }, + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "dimod", + "version": "0.12.18" + }, + { + "name": "more-itertools", + "version": "10.5.0" + }, + { + "name": "qiskit-optimization", + "version": "0.6.1" + }, + { + "name": "pyqubo", + "version": "1.5.0" + }, + { + "name": "networkx", + "version": "3.4.2" + }, + { + "name": "dwave_networkx", + "version": "0.8.15" + } + ], + "submodules": [ + { + "name": "QAOA", + "class": "QAOA", + "args": {}, + "module": "modules.solvers.QAOA", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "scipy", + "version": "1.12.0" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "LocalSimulator", + "class": "LocalSimulator", + "args": { + "device_name": "LocalSimulator" + }, + "module": "modules.devices.braket.LocalSimulator", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", + "class": "SV1", + "args": { + "device_name": "SV1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" + }, + "module": "modules.devices.braket.SV1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", + "class": "TN1", + "args": { + "device_name": "TN1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" + }, + "module": "modules.devices.braket.TN1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", + "class": "Ionq", + "args": { + "device_name": "ionQ", + "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" + }, + "module": "modules.devices.braket.Ionq", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", + "class": "Rigetti", + "args": { + "device_name": "Rigetti Aspen-9", + "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" + }, + "module": "modules.devices.braket.Rigetti", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + } + ] + }, + { + "name": "PennylaneQAOA", + "class": "PennylaneQAOA", + "args": {}, + "module": "modules.solvers.PennylaneQAOA", + "requirements": [ + { + "name": "pennylane", + "version": "0.39.0" + }, + { + "name": "pennylane-lightning", + "version": "0.39.0" + }, + { + "name": "amazon-braket-pennylane-plugin", + "version": "1.30.2" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", + "class": "SV1", + "args": { + "device_name": "SV1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" + }, + "module": "modules.devices.braket.SV1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", + "class": "TN1", + "args": { + "device_name": "TN1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" + }, + "module": "modules.devices.braket.TN1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", + "class": "Ionq", + "args": { + "device_name": "ionq", + "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" + }, + "module": "modules.devices.braket.Ionq", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", + "class": "Rigetti", + "args": { + "device_name": "Rigetti", + "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" + }, + "module": "modules.devices.braket.Rigetti", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy", + "class": "OQC", + "args": { + "device_name": "OQC", + "arn": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy" + }, + "module": "modules.devices.braket.OQC", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "braket.local.qubit", + "class": "HelperClass", + "args": { + "device_name": "braket.local.qubit" + }, + "module": "modules.devices.HelperClass", + "requirements": [], + "submodules": [] + }, + { + "name": "default.qubit", + "class": "HelperClass", + "args": { + "device_name": "default.qubit" + }, + "module": "modules.devices.HelperClass", + "requirements": [], + "submodules": [] + }, + { + "name": "default.qubit.autograd", + "class": "HelperClass", + "args": { + "device_name": "default.qubit.autograd" + }, + "module": "modules.devices.HelperClass", + "requirements": [], + "submodules": [] + }, + { + "name": "qulacs.simulator", + "class": "HelperClass", + "args": { + "device_name": "qulacs.simulator" + }, + "module": "modules.devices.HelperClass", + "requirements": [], + "submodules": [] + }, + { + "name": "lightning.gpu", + "class": "HelperClass", + "args": { + "device_name": "lightning.gpu" + }, + "module": "modules.devices.HelperClass", + "requirements": [], + "submodules": [] + }, + { + "name": "lightning.qubit", + "class": "HelperClass", + "args": { + "device_name": "lightning.qubit" + }, + "module": "modules.devices.HelperClass", + "requirements": [], + "submodules": [] + } + ] + }, + { + "name": "QiskitQAOA", + "class": "QiskitQAOA", + "args": {}, + "module": "modules.solvers.QiskitQAOA", + "requirements": [ + { + "name": "qiskit", + "version": "1.3.0" + }, + { + "name": "qiskit-optimization", + "version": "0.6.1" + }, + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "qiskit-algorithms", + "version": "0.3.1" + } + ], + "submodules": [ + { + "name": "qasm_simulator", + "class": "HelperClass", + "args": { + "device_name": "qasm_simulator" + }, + "module": "modules.devices.HelperClass", + "requirements": [], + "submodules": [] + }, + { + "name": "qasm_simulator_gpu", + "class": "HelperClass", + "args": { + "device_name": "qasm_simulator_gpu" + }, + "module": "modules.devices.HelperClass", + "requirements": [], + "submodules": [] + } + ] + } + ] + }, + { + "name": "QUBO", + "class": "QUBO", + "args": {}, + "module": "modules.applications.optimization.TSP.mappings.QUBO", + "requirements": [ + { + "name": "networkx", + "version": "3.4.2" + }, + { + "name": "dwave_networkx", + "version": "0.8.15" + } + ], + "submodules": [ + { + "name": "Annealer", + "class": "Annealer", + "args": {}, + "module": "modules.solvers.Annealer", + "requirements": [], + "submodules": [ + { + "name": "Simulated Annealer", + "class": "SimulatedAnnealingSampler", + "args": {}, + "module": "modules.devices.SimulatedAnnealingSampler", + "requirements": [ + { + "name": "dwave-samplers", + "version": "1.4.0" + } + ], + "submodules": [] + } + ] + } + ] + }, + { + "name": "GreedyClassicalTSP", + "class": "GreedyClassicalTSP", + "args": {}, + "module": "modules.solvers.GreedyClassicalTSP", + "requirements": [ + { + "name": "networkx", + "version": "3.4.2" + } + ], + "submodules": [ + { + "name": "Local", + "class": "Local", + "args": {}, + "module": "modules.devices.Local", + "requirements": [], + "submodules": [] + } + ] + }, + { + "name": "ReverseGreedyClassicalTSP", + "class": "ReverseGreedyClassicalTSP", + "args": {}, + "module": "modules.solvers.ReverseGreedyClassicalTSP", + "requirements": [ + { + "name": "networkx", + "version": "3.4.2" + } + ], + "submodules": [ + { + "name": "Local", + "class": "Local", + "args": {}, + "module": "modules.devices.Local", + "requirements": [], + "submodules": [] + } + ] + }, + { + "name": "RandomTSP", + "class": "RandomTSP", + "args": {}, + "module": "modules.solvers.RandomClassicalTSP", + "requirements": [ + { + "name": "networkx", + "version": "3.4.2" + } + ], + "submodules": [ + { + "name": "Local", + "class": "Local", + "args": {}, + "module": "modules.devices.Local", + "requirements": [], + "submodules": [] + } + ] + } + ], + "requirements": [ + { + "name": "networkx", + "version": "3.4.2" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ] + }, + { + "name": "ACL", + "class": "ACL", + "module": "modules.applications.optimization.ACL.ACL", + "submodules": [ + { + "name": "MIPsolverACL", + "class": "MIPaclp", + "args": {}, + "module": "modules.solvers.MIPsolverACL", + "requirements": [ + { + "name": "pulp", + "version": "2.9.0" + } + ], + "submodules": [ + { + "name": "Local", + "class": "Local", + "args": {}, + "module": "modules.devices.Local", + "requirements": [], + "submodules": [] + } + ] + }, + { + "name": "QUBO", + "class": "Qubo", + "args": {}, + "module": "modules.applications.optimization.ACL.mappings.QUBO", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "qiskit-optimization", + "version": "0.6.1" + } + ], + "submodules": [ + { + "name": "Annealer", + "class": "Annealer", + "args": {}, + "module": "modules.solvers.Annealer", + "requirements": [], + "submodules": [ + { + "name": "Simulated Annealer", + "class": "SimulatedAnnealingSampler", + "args": {}, + "module": "modules.devices.SimulatedAnnealingSampler", + "requirements": [ + { + "name": "dwave-samplers", + "version": "1.4.0" + } + ], + "submodules": [] + } + ] + } + ] + } + ], + "requirements": [ + { + "name": "pulp", + "version": "2.9.0" + }, + { + "name": "pandas", + "version": "2.2.3" + }, + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "openpyxl", + "version": "3.1.5" + } + ] + }, + { + "name": "MIS", + "class": "MIS", + "module": "modules.applications.optimization.MIS.MIS", + "submodules": [ + { + "name": "QIRO", + "class": "QIRO", + "args": {}, + "module": "modules.applications.optimization.MIS.mappings.QIRO", + "requirements": [ + { + "name": "qrisp", + "version": "0.5.2" + } + ], + "submodules": [ + { + "name": "QrispQIRO", + "class": "QIROSolver", + "args": {}, + "module": "modules.solvers.QrispQIRO", + "requirements": [ + { + "name": "qrisp", + "version": "0.5.2" + } + ], + "submodules": [ + { + "name": "qrisp_simulator", + "class": "QrispSimulator", + "args": {}, + "module": "modules.devices.qrisp_simulator.QrispSimulator", + "requirements": [ + { + "name": "qrisp", + "version": "0.5.2" + } + ], + "submodules": [] + } + ] + } + ] + }, + { + "name": "NeutralAtom", + "class": "NeutralAtom", + "args": {}, + "module": "modules.applications.optimization.MIS.mappings.NeutralAtom", + "requirements": [ + { + "name": "pulser", + "version": "1.1.1" + } + ], + "submodules": [ + { + "name": "NeutralAtomMIS", + "class": "NeutralAtomMIS", + "args": {}, + "module": "modules.solvers.NeutralAtomMIS", + "requirements": [ + { + "name": "pulser", + "version": "1.1.1" + } + ], + "submodules": [ + { + "name": "MockNeutralAtomDevice", + "class": "MockNeutralAtomDevice", + "args": {}, + "module": "modules.devices.pulser.MockNeutralAtomDevice", + "requirements": [ + { + "name": "pulser", + "version": "1.1.1" + } + ], + "submodules": [] + } + ] + } + ] + } + ], + "requirements": [] + }, + { + "name": "SCP", + "class": "SCP", + "module": "modules.applications.optimization.SCP.SCP", + "submodules": [ + { + "name": "qubovertQUBO", + "class": "QubovertQUBO", + "args": {}, + "module": "modules.applications.optimization.SCP.mappings.qubovertQUBO", + "requirements": [ + { + "name": "qubovert", + "version": "1.2.5" + } + ], + "submodules": [ + { + "name": "Annealer", + "class": "Annealer", + "args": {}, + "module": "modules.solvers.Annealer", + "requirements": [], + "submodules": [ + { + "name": "Simulated Annealer", + "class": "SimulatedAnnealingSampler", + "args": {}, + "module": "modules.devices.SimulatedAnnealingSampler", + "requirements": [ + { + "name": "dwave-samplers", + "version": "1.4.0" + } + ], + "submodules": [] + } + ] + } + ] + } + ], + "requirements": [] + }, + { + "name": "GenerativeModeling", + "class": "GenerativeModeling", + "module": "modules.applications.qml.generative_modeling.GenerativeModeling", + "submodules": [ + { + "name": "Continuous Data", + "class": "ContinuousData", + "args": {}, + "module": "modules.applications.qml.generative_modeling.data.data_handler.ContinuousData", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "PIT", + "class": "PIT", + "args": {}, + "module": "modules.applications.qml.generative_modeling.transformations.PIT", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "pandas", + "version": "2.2.3" + } + ], + "submodules": [ + { + "name": "CircuitCopula", + "class": "CircuitCopula", + "args": {}, + "module": "modules.applications.qml.generative_modeling.circuits.CircuitCopula", + "requirements": [ + { + "name": "scipy", + "version": "1.12.0" + } + ], + "submodules": [ + { + "name": "LibraryQiskit", + "class": "LibraryQiskit", + "args": {}, + "module": "modules.applications.qml.generative_modeling.mappings.LibraryQiskit", + "requirements": [ + { + "name": "qiskit", + "version": "1.3.0" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "QCBM", + "class": "QCBM", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.QCBM", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "cma", + "version": "4.0.0" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "QGAN", + "class": "QGAN", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.QGAN", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "torch", + "version": "2.5.1" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "Inference", + "class": "Inference", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.Inference", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [] + } + ] + }, + { + "name": "LibraryPennylane", + "class": "LibraryPennylane", + "args": {}, + "module": "modules.applications.qml.generative_modeling.mappings.LibraryPennylane", + "requirements": [ + { + "name": "pennylane", + "version": "0.39.0" + }, + { + "name": "pennylane-lightning", + "version": "0.39.0" + }, + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "jax", + "version": "0.4.35" + }, + { + "name": "jaxlib", + "version": "0.4.35" + } + ], + "submodules": [ + { + "name": "QCBM", + "class": "QCBM", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.QCBM", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "cma", + "version": "4.0.0" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "QGAN", + "class": "QGAN", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.QGAN", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "torch", + "version": "2.5.1" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "Inference", + "class": "Inference", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.Inference", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [] + } + ] + }, + { + "name": "CustomQiskitNoisyBackend", + "class": "CustomQiskitNoisyBackend", + "args": {}, + "module": "modules.applications.qml.generative_modeling.mappings.CustomQiskitNoisyBackend", + "requirements": [ + { + "name": "qiskit", + "version": "1.3.0" + }, + { + "name": "qiskit_aer", + "version": "0.15.1" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "QCBM", + "class": "QCBM", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.QCBM", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "cma", + "version": "4.0.0" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "Inference", + "class": "Inference", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.Inference", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [] + } + ] + }, + { + "name": "PresetQiskitNoisyBackend", + "class": "PresetQiskitNoisyBackend", + "args": {}, + "module": "modules.applications.qml.generative_modeling.mappings.PresetQiskitNoisyBackend", + "requirements": [ + { + "name": "qiskit", + "version": "1.3.0" + }, + { + "name": "qiskit_ibm_runtime", + "version": "0.33.2" + }, + { + "name": "qiskit_aer", + "version": "0.15.1" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "QCBM", + "class": "QCBM", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.QCBM", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "cma", + "version": "4.0.0" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "Inference", + "class": "Inference", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.Inference", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [] + } + ] + } + ] + } + ] + }, + { + "name": "MinMax", + "class": "MinMax", + "args": {}, + "module": "modules.applications.qml.generative_modeling.transformations.MinMax", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "CircuitStandard", + "class": "CircuitStandard", + "args": {}, + "module": "modules.applications.qml.generative_modeling.circuits.CircuitStandard", + "requirements": [], + "submodules": [ + { + "name": "LibraryQiskit", + "class": "LibraryQiskit", + "args": {}, + "module": "modules.applications.qml.generative_modeling.mappings.LibraryQiskit", + "requirements": [ + { + "name": "qiskit", + "version": "1.3.0" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "QCBM", + "class": "QCBM", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.QCBM", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "cma", + "version": "4.0.0" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "QGAN", + "class": "QGAN", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.QGAN", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "torch", + "version": "2.5.1" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "Inference", + "class": "Inference", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.Inference", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [] + } + ] + }, + { + "name": "LibraryPennylane", + "class": "LibraryPennylane", + "args": {}, + "module": "modules.applications.qml.generative_modeling.mappings.LibraryPennylane", + "requirements": [ + { + "name": "pennylane", + "version": "0.39.0" + }, + { + "name": "pennylane-lightning", + "version": "0.39.0" + }, + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "jax", + "version": "0.4.35" + }, + { + "name": "jaxlib", + "version": "0.4.35" + } + ], + "submodules": [ + { + "name": "QCBM", + "class": "QCBM", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.QCBM", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "cma", + "version": "4.0.0" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "QGAN", + "class": "QGAN", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.QGAN", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "torch", + "version": "2.5.1" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "Inference", + "class": "Inference", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.Inference", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [] + } + ] + }, + { + "name": "CustomQiskitNoisyBackend", + "class": "CustomQiskitNoisyBackend", + "args": {}, + "module": "modules.applications.qml.generative_modeling.mappings.CustomQiskitNoisyBackend", + "requirements": [ + { + "name": "qiskit", + "version": "1.3.0" + }, + { + "name": "qiskit_aer", + "version": "0.15.1" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "QCBM", + "class": "QCBM", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.QCBM", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "cma", + "version": "4.0.0" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "Inference", + "class": "Inference", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.Inference", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [] + } + ] + }, + { + "name": "PresetQiskitNoisyBackend", + "class": "PresetQiskitNoisyBackend", + "args": {}, + "module": "modules.applications.qml.generative_modeling.mappings.PresetQiskitNoisyBackend", + "requirements": [ + { + "name": "qiskit", + "version": "1.3.0" + }, + { + "name": "qiskit_ibm_runtime", + "version": "0.33.2" + }, + { + "name": "qiskit_aer", + "version": "0.15.1" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "QCBM", + "class": "QCBM", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.QCBM", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "cma", + "version": "4.0.0" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "Inference", + "class": "Inference", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.Inference", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [] + } + ] + } + ] + }, + { + "name": "CircuitCardinality", + "class": "CircuitCardinality", + "args": {}, + "module": "modules.applications.qml.generative_modeling.circuits.CircuitCardinality", + "requirements": [], + "submodules": [ + { + "name": "LibraryQiskit", + "class": "LibraryQiskit", + "args": {}, + "module": "modules.applications.qml.generative_modeling.mappings.LibraryQiskit", + "requirements": [ + { + "name": "qiskit", + "version": "1.3.0" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "QCBM", + "class": "QCBM", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.QCBM", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "cma", + "version": "4.0.0" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "QGAN", + "class": "QGAN", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.QGAN", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "torch", + "version": "2.5.1" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "Inference", + "class": "Inference", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.Inference", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [] + } + ] + }, + { + "name": "LibraryPennylane", + "class": "LibraryPennylane", + "args": {}, + "module": "modules.applications.qml.generative_modeling.mappings.LibraryPennylane", + "requirements": [ + { + "name": "pennylane", + "version": "0.39.0" + }, + { + "name": "pennylane-lightning", + "version": "0.39.0" + }, + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "jax", + "version": "0.4.35" + }, + { + "name": "jaxlib", + "version": "0.4.35" + } + ], + "submodules": [ + { + "name": "QCBM", + "class": "QCBM", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.QCBM", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "cma", + "version": "4.0.0" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "QGAN", + "class": "QGAN", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.QGAN", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "torch", + "version": "2.5.1" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "Inference", + "class": "Inference", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.Inference", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [] + } + ] + }, + { + "name": "CustomQiskitNoisyBackend", + "class": "CustomQiskitNoisyBackend", + "args": {}, + "module": "modules.applications.qml.generative_modeling.mappings.CustomQiskitNoisyBackend", + "requirements": [ + { + "name": "qiskit", + "version": "1.3.0" + }, + { + "name": "qiskit_aer", + "version": "0.15.1" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "QCBM", + "class": "QCBM", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.QCBM", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "cma", + "version": "4.0.0" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "Inference", + "class": "Inference", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.Inference", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [] + } + ] + }, + { + "name": "PresetQiskitNoisyBackend", + "class": "PresetQiskitNoisyBackend", + "args": {}, + "module": "modules.applications.qml.generative_modeling.mappings.PresetQiskitNoisyBackend", + "requirements": [ + { + "name": "qiskit", + "version": "1.3.0" + }, + { + "name": "qiskit_ibm_runtime", + "version": "0.33.2" + }, + { + "name": "qiskit_aer", + "version": "0.15.1" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "QCBM", + "class": "QCBM", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.QCBM", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "cma", + "version": "4.0.0" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "Inference", + "class": "Inference", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.Inference", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [] + } + ] + } + ] + } + ] + } + ] + }, + { + "name": "Discrete Data", + "class": "DiscreteData", + "args": {}, + "module": "modules.applications.qml.generative_modeling.data.data_handler.DiscreteData", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "CircuitCardinality", + "class": "CircuitCardinality", + "args": {}, + "module": "modules.applications.qml.generative_modeling.circuits.CircuitCardinality", + "requirements": [], + "submodules": [ + { + "name": "LibraryQiskit", + "class": "LibraryQiskit", + "args": {}, + "module": "modules.applications.qml.generative_modeling.mappings.LibraryQiskit", + "requirements": [ + { + "name": "qiskit", + "version": "1.3.0" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "QCBM", + "class": "QCBM", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.QCBM", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "cma", + "version": "4.0.0" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "QGAN", + "class": "QGAN", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.QGAN", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "torch", + "version": "2.5.1" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "Inference", + "class": "Inference", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.Inference", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [] + } + ] + }, + { + "name": "LibraryPennylane", + "class": "LibraryPennylane", + "args": {}, + "module": "modules.applications.qml.generative_modeling.mappings.LibraryPennylane", + "requirements": [ + { + "name": "pennylane", + "version": "0.39.0" + }, + { + "name": "pennylane-lightning", + "version": "0.39.0" + }, + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "jax", + "version": "0.4.35" + }, + { + "name": "jaxlib", + "version": "0.4.35" + } + ], + "submodules": [ + { + "name": "QCBM", + "class": "QCBM", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.QCBM", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "cma", + "version": "4.0.0" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "QGAN", + "class": "QGAN", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.QGAN", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "torch", + "version": "2.5.1" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "Inference", + "class": "Inference", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.Inference", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [] + } + ] + }, + { + "name": "CustomQiskitNoisyBackend", + "class": "CustomQiskitNoisyBackend", + "args": {}, + "module": "modules.applications.qml.generative_modeling.mappings.CustomQiskitNoisyBackend", + "requirements": [ + { + "name": "qiskit", + "version": "1.3.0" + }, + { + "name": "qiskit_aer", + "version": "0.15.1" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "QCBM", + "class": "QCBM", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.QCBM", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "cma", + "version": "4.0.0" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "Inference", + "class": "Inference", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.Inference", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [] + } + ] + }, + { + "name": "PresetQiskitNoisyBackend", + "class": "PresetQiskitNoisyBackend", + "args": {}, + "module": "modules.applications.qml.generative_modeling.mappings.PresetQiskitNoisyBackend", + "requirements": [ + { + "name": "qiskit", + "version": "1.3.0" + }, + { + "name": "qiskit_ibm_runtime", + "version": "0.33.2" + }, + { + "name": "qiskit_aer", + "version": "0.15.1" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "QCBM", + "class": "QCBM", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.QCBM", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "cma", + "version": "4.0.0" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "Inference", + "class": "Inference", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.Inference", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [] + } + ] + } + ] + } + ] + } + ], + "requirements": [] + } + ] } \ No newline at end of file diff --git a/.settings/requirements_full.txt b/.settings/requirements_full.txt index 297bcb75..6cb63451 100644 --- a/.settings/requirements_full.txt +++ b/.settings/requirements_full.txt @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:143780e7439b35ea2e3c5c2485b2c8454eec458686e7492925b08ae4b425d087 -size 753 +oid sha256:8d416d05b1ba1f071a97eb4417750817627ceecc36e9dd694e9a59ebb5f1718b +size 793 diff --git a/Dockerfile b/Dockerfile index 8579d688..44574f98 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.9 +FROM python:3.12 COPY . . RUN pip install --default-timeout=1800 -r .settings/requirements_full.txt diff --git a/README.md b/README.md index 27698f2e..3551c0c9 100644 --- a/README.md +++ b/README.md @@ -8,60 +8,84 @@ It is designed to be easily extendable in all of its components: applications, m ## Publications Details about the motivations for the original framework can be found in the [accompanying QUARK paper from Finžgar et al](https://arxiv.org/abs/2202.03028). -Even though the architecture changes significantly from QUARK 1.0 to 2.0, the guiding principles still remain. The most recent publication from [Kiwit et al.](https://arxiv.org/abs/2308.04082) provides an updated overview of the functionalities and quantum machine learning features of QUARK 2.1. +Even though the architecture changes significantly from QUARK 1.0 to the current version, the guiding principles still remain. The most recent publication from [Kiwit et al.](https://arxiv.org/abs/2308.04082) provides an updated overview of the functionalities and quantum machine learning features of QUARK. ## Documentation Documentation with a tutorial and developer guidelines can be found here: https://quark-framework.readthedocs.io/en/dev/. ## Prerequisites -As this framework is implemented in Python 3.9, you need to install this version of Python if you do not already have it installed. + +### Step 1: Install Python 3.12 +QUARK requires **Python 3.12**. You need to install this version of Python if you do not already have it installed. Other versions could cause issues with other dependencies used in the framework. +1. Visit the [Python Downloads Page](https://www.python.org/downloads/) and install Python 3.12. +2. Verify your Python version: + + ```python --version``` + +3. Ensure it returns Python 3.12.x + +### Step 2: Create a Conda Environment +QUARK provides flexibility in managing its environment using Conda. Create and activate a Conda environment: +1. Create a Conda environment: + + ```conda create -n quark python=3.12``` + + ```conda activate quark``` + +### Step 3: Install Required Packages Additionally, we rely on several pip dependencies, which you can install in two ways: 1. Install pip packages manually, or 2. Use the QUARK installer. + For this installer to work, you need to install the following packages in the first place: + * inquirer==3.4.0 + * pyyaml==6.0.2 + * packaging==24.2 -For this installer to work, you need to install the following packages in the first place: + To limit the number of packages you need to install, there is an option to only include a subselection of QUARK modules. + You can select the modules of choice via : -* inquirer==3.4.0 -* pyyaml==6.0.2 -* packaging==24.1 + ```python src/main.py env --configure myenv``` -To limit the number of packages you need to install, there is an option to only include a subselection of QUARK modules. -You can select the modules of choice via: + This will generate a requirements file ```requirements_myenv.txt``` that you can use to set up a customized conda environment. -```python src/main.py env --configure myenv``` + ```pip install -r .settings/envs/requirements_myenv.txt``` + + If you want to set up the default configuration (which installs all dependencies needed for the full QUARK framework): -Of course there is a default option, which will include all available options. + ```pip install -r .settings/requirements_full.txt``` -Depending on your configured modules, you will need to install additional Python packages, as the above-mentioned 3 -packages are **not** sufficient to run a benchmark! -We provide the option to generate a Conda file or a pip requirements file, which you can use to install the required packages. -You can also configure multiple QUARK environments and then switch between them via: + Activate the environment: -```python src/main.py env --activate myenv2``` + ```python src/main.py env --activate myenv``` -> __Note:__ Different modules require different python packages. -> Be sure that your python environment has the necessary packages installed! + You can also configure multiple QUARK environments and then switch between them, e.g. via: -To see which environments are configured, please use + ```python src/main.py env --activate myenv2``` -```python src/main.py env --list``` + > __Note:__ Different modules require different python packages. + > Be sure that your python environment has the necessary packages installed! + Ensure the environment is properly configured: -You can also visualize the contents of your QUARK environment: + To see which environments are configured, please use -``` -(quark) % python src/main.py env --show myenv -[...] -Content of the environment: ->-- TSP - >-- GreedyClassicalTSP - >-- Local -``` + ```python src/main.py env --list``` -In case you want to use custom modules files (for example, to use external modules from other repositories), you can still use the ```--modules``` option. -You can find the documentation in the respective Read the Docs section. + You can also visualize the contents of your QUARK environment: + + ``` + (quark) % python src/main.py env --show myenv + [...] + Content of the environment: + >-- TSP + >-- GreedyClassicalTSP + >-- Local + ``` + +> __Note:__ In case you want to use custom modules files (for example, to use external modules from other repositories), you can still use the ```--modules``` option. +> You can find the documentation in the respective Read the Docs section. ## Git Large File Storage (LFS) QUARK stores data and config files using **Git LFS**. If you are contributing to this project or cloning this repository, ensure that you have **Git LFS** installed and configured to manage large files effectively. @@ -76,12 +100,11 @@ Install Git LFS by following the instructions on [Git LFS](https://git-lfs.com/) ## Running a Benchmark +#### Setting Global Variables ```bash export HTTP_PROXY=http://username:password@proxy.com:8080 export AWS_PROFILE=quantum_computing export AWS_REGION=us-west-1 -python src/main.py - ``` `HTTP_PROXY` is only needed if you have to use a proxy to access AWS. @@ -89,6 +112,51 @@ python src/main.py `AWS_REGION` is only needed if you need another aws region than us-east-1. Usually this is specific to the Braket device. +#### Interactive Mode +You can run QUARK using +``` +python src/main.py +``` +This will initiate an interactive configuration mode to describe what you want to benchmark. After finishing the configuration, the benchmark run begins automatically. The results and the configuration ```config.yml``` file are saved with a timestamp in ```benchmark_runs```. + +#### Non-Interactive Mode +It is also possible to start the script with a config file instead of using the interactive mode: +``` + python src/main.py --config config.yml +``` + +> __Note:__ This should only be used by experienced users as invalid values will cause the framework to fail! + +Example for a config file: + +``` +application: + config: + nodes: + - 3 + name: TSP + submodules: + - config: {} + name: GreedyClassicalTSP + submodules: + - config: {} + name: Local + submodules: [] +repetitions: 1 +``` + +### Running Specific Modules + +If you want to run specific modules, use the preconfigured YAML files under tests/config/valid/. + +For example: + +```python src/main.py -c tests/config/valid/TSP.yml``` + +Replace TSP.yml with the desired module configuration (e.g., MIS.yml, generativemodeling.yml, etc.) +> __Note:__ This should only be used by experienced users as invalid values will cause the framework to fail! + + Example run (You need to check at least one option with an ``X`` for the checkbox question): ``` (quark) % python src/main.py @@ -156,7 +224,7 @@ Example run (You need to check at least one option with an ``X`` for the checkbo All used config files, logs and results are stored in a folder in the ```benchmark_runs``` directory. -#### interrupt/resume +### Interrupt/resume The processing of backlog items may get interrupted in which case you will see something like ``` 2024-03-13 10:25:20,201 [INFO] ================================================================================ @@ -171,33 +239,7 @@ You can resume an interrupted QUARK run by calling: ``` python src/main.py --resume-dir= ``` -Note that you can copy/paste the --resume-dir option from the QUARK output as shown in the above example. - -#### Non-Interactive Mode -It is also possible to start the script with a config file instead of using the interactive mode: -``` - python src/main.py --config config.yml -``` - -> __Note:__ This should only be used by experienced users as invalid values will cause the framework to fail! - -Example for a config file: - -``` -application: - config: - nodes: - - 3 - name: TSP - submodules: - - config: {} - name: GreedyClassicalTSP - submodules: - - config: {} - name: Local - submodules: [] -repetitions: 1 -``` +Note that you can copy/paste the ```--resume-dir``` option from the QUARK output as shown in the above example. ### Run as Container We also support the option to run the framework as a container. diff --git a/docs/developer.rst b/docs/developer.rst index 9de0a112..5212e109 100644 --- a/docs/developer.rst +++ b/docs/developer.rst @@ -110,7 +110,7 @@ Example for an application, which should reside under ``src/modules/applications :returns: A list of dictionaries containing the name and version of required packages """ return [ - {"name": "networkx", "version": "3.2.1"}, + {"name": "networkx", "version": "3.4.2"}, {"name": "numpy", "version": "1.26.4"} ] diff --git a/docs/index.rst b/docs/index.rst index df84a5c7..b865280d 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -24,7 +24,7 @@ to mathematical formulations, solvers, hardware or other custom module definitio Publications ============ -Details about the motivations for the original framework can be found in the [accompanying QUARK paper from Finžgar et al](https://arxiv.org/abs/2202.03028). The data used for the paper can be found in ``results/results.csv``. Even though the architecture changes significantly from QUARK 1.0 to 2.0, the guiding principles still remain. The most recent publication from [Kiwit et al.](https://arxiv.org/abs/2308.04082) provides an updated overview of the functionalities and quantum machine learning features of QUARK 2.0. +Details about the motivations for the original framework can be found in the [accompanying QUARK paper from Finžgar et al](https://arxiv.org/abs/2202.03028). The data used for the paper can be found in ``results/results.csv``. Even though the architecture changes significantly from QUARK 1.0 to the current version, the guiding principles still remain. The most recent publication from [Kiwit et al.](https://arxiv.org/abs/2308.04082) provides an updated overview of the functionalities and quantum machine learning features of QUARK. .. toctree:: :maxdepth: 2 diff --git a/docs/tutorial.rst b/docs/tutorial.rst index f8a7420f..27c923e1 100644 --- a/docs/tutorial.rst +++ b/docs/tutorial.rst @@ -1,59 +1,82 @@ QUARK: A Framework for Quantum Computing Application Benchmarking ================================================================= -Quantum Computing Application Benchmark (QUARK) is a framework for orchestrating benchmarks of different industry applications on quantum computers. +Quantum Computing Application Benchmark (QUARK) is a framework for orchestrating benchmarks of different industry applications on quantum computers. QUARK supports various applications such as the traveling salesperson problem (TSP), the maximum satisfiability (MaxSAT) problem, robot path optimization in the PVC sealing use case as well as new additions like the Maximum Independent Set (MIS), Set Cover Problem (SCP) and Auto Carrier Loading (ACL). It also features different solvers (e.g., simulated /quantum annealing and the quantum approximate optimization algorithm (QAOA)), quantum devices (e.g., IonQ and Rigetti), and simulators. It is designed to be easily extendable in all of its components: applications, mappings, solvers, devices, and any other custom modules. - Prerequisites ~~~~~~~~~~~~~ -As this framework is implemented in Python 3.9, you need to install this version of Python if you do not already have it installed. +**Step 1: Install Python 3.12** + +QUARK requires **Python 3.12**. You need to install this version of Python if you do not already have it installed. Other versions could cause issues with other dependencies used in the framework. -Additionally, we rely on several pip dependencies, which you can install in two ways: -1. Install pip packages manually, or -2. Use the QUARK installer. +1. Visit the `Python Downloads Page `_ and install Python 3.12. +2. Verify your Python version: + + ``python --version`` -For this installer to work, you need to install the following packages in the first place: +3. Ensure it returns Python 3.12.x -* inquirer==3.4.0 -* pyyaml==6.0.2 -* packaging==24.1 +**Step 2: Create a Conda Environment** -To limit the number of packages you need to install, there is an option to only include a subselection of QUARK modules. -You can select the modules of choice via: +QUARK provides flexibility in managing its environment using Conda. Create and activate a Conda environment: +1. Create a Conda environment: :: - python src/main.py env --configure myenv + conda create -n quark python=3.12 + conda activate quark -Of course there is a default option, which will include all available options. +**Step 3: Install Required Packages** -Depending on your configured modules, you will need to install additional Python packages, as the above-mentioned 3 packages are **not** sufficient to run a benchmark! -We provide the option to generate a Conda file or a pip requirements file, which you can use to install the required packages. -You can also configure multiple QUARK environments and then switch between them via: +Additionally, we rely on several pip dependencies, which you can install in two ways: -:: +1. Install pip packages manually, or +2. Use the QUARK installer. + For this installer to work, you need to install the following packages in the first place: - python src/main.py env --activate myenv2 + * inquirer==3.4.0 + * pyyaml==6.0.2 + * packaging==24.2 -**Note:** Different modules require different python packages. Be sure that your python environment has the necessary packages installed! + To limit the number of packages you need to install, there is an option to only include a subselection of QUARK modules. + You can select the modules of choice via : -To see which environments are configured, please use + ``python src/main.py env --configure myenv`` -:: + This will generate a requirements file ``requirements_myenv.txt`` that you can use to set up a customized conda environment. - python src/main.py env --list + ``pip install -r .settings/envs/requirements_myenv.txt`` + + If you want to set up the default configuration (which installs all dependencies needed for the full QUARK framework): -You can also visualize the contents of your QUARK environment: + ``pip install -r .settings/requirements_full.txt`` -:: + Activate the environment: + + ``python src/main.py env --activate myenv`` + + You can also configure multiple QUARK environments and then switch between them, e.g. via: + ``python src/main.py env --activate myenv2`` + + **Note**: Different modules require different python packages. + Be sure that your python environment has the necessary packages installed! + Ensure the environment is properly configured: + + To see which environments are configured, please use + + ```python src/main.py env --list``` + + You can also visualize the contents of your QUARK environment: + +:: (quark) % python src/main.py env --show myenv [...] @@ -62,137 +85,56 @@ You can also visualize the contents of your QUARK environment: >-- GreedyClassicalTSP >-- Local - -In case you want to use custom modules files (for example to use external modules from other repositories), you can still use the ``--modules`` option. -You can find the documentation in the Dynamic Imports section. +**Note**: In case you want to use custom modules files (for example, to use external modules from other repositories), you can still use the ```--modules``` option. +You can find the documentation in the respective Read the Docs section. Git Large File Storage (LFS) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ QUARK stores data and config files using **Git LFS**. If you are contributing to this project or cloning this repository, ensure that you have **Git LFS** installed and configured to manage large files effectively. Installing Git LFS -^^^^^^^^^^^^^^^^^^^ -Install Git LFS by following the instructions on `Git LFS `_ +^^^^^^^^^^^^^^^^^^ +Install Git LFS by following the instructions on `Git LFS `_: - On Linux/macOS - :: - - git lfs install + ``git lfs install`` - - On Windows. Download and install Git LFS from the `Official page `_ + - On Windows. Download and install Git LFS from the `Official page `_. Running a Benchmark ~~~~~~~~~~~~~~~~~~~ -.. code:: bash +Setting Global Variables +^^^^^^^^^^^^^^^^^^^^^^^^ - export HTTP_PROXY=http://username:password@proxy.com:8080 +:: + + export HTTP_PROXY=http://username:password@proxy.com:8080 export AWS_PROFILE=quantum_computing export AWS_REGION=us-west-1 - python src/main.py - -`HTTP_PROXY` is only needed if you have to use a proxy to access AWS. -`AWS_PROFILE` is only needed if you want to use an AWS braket device (default is quantum_computing). In case no profile is needed in your case, please set `export AWS_PROFILE=default`. +``HTTP_PROXY`` is only needed if you have to use a proxy to access AWS. -`AWS_REGION` is only needed if you need another aws region than us-east-1. Usually this is specific to the Braket device. +``AWS_PROFILE`` is only needed if you want to use an AWS braket device (default is quantum_computing). In case no profile is needed in your case, please set `export AWS_PROFILE=default`. -Example run (You need to check at least one option with an ``X`` for the checkbox question): - -:: +``AWS_REGION`` is only needed if you need another aws region than us-east-1. Usually this is specific to the Braket device. - (quark) % python src/main.py - [?] What application do you want?: TSP - PVC - SAT - > TSP - ACL - MIS - SCP - GenerativeModeling - - 2024-10-09 15:05:52,610 [INFO] Import module modules.applications.optimization.TSP.TSP - [?] (Option for TSP) How many nodes does you graph need?: - > [X] 3 - [ ] 4 - [ ] 6 - [ ] 8 - [ ] 10 - [ ] 14 - [ ] 16 - [ ] Custom Range - - [?] What submodule do you want?: - [ ] Ising - [ ] Qubo - > [X] GreedyClassicalTSP - [ ] ReverseGreedyClassicalTSP - [ ] RandomTSP - - 2024-10-09 15:06:20,897 [INFO] Import module modules.solvers.GreedyClassicalTSP - 2024-10-09 15:06:20,933 [INFO] Skipping asking for submodule, since only 1 option (Local) is available. - 2024-10-09 15:06:20,933 [INFO] Import module modules.devices.Local - 2024-10-09 15:06:20,946 [INFO] Submodule configuration finished - [?] How many repetitions do you want?: 1P - 2024-10-09 15:07:11,573 [INFO] Import module modules.applications.optimization.TSP.TSP - 2024-10-09 15:07:11,573 [INFO] Import module modules.solvers.GreedyClassicalTSP - 2024-10-09 15:07:11,574 [INFO] Import module modules.devices.Local - 2024-10-09 15:07:12,194 [INFO] [INFO] Created Benchmark run directory /Users/user1/quark/benchmark_runs/tsp-2024-10-09-15-07-11 - 2024-10-09 15:07:12,194 [INFO] Codebase is based on revision 1d9d17aad7ddff623ff51f62ca3ec2756621c345 and has no uncommitted changes - 2024-10-09 15:07:12,195 [INFO] Running backlog item 1/1, Iteration 1/1: - 2024-10-09 15:07:12,386 [INFO] Route found: - Node 0 -> - Node 2 -> - Node 1 - 2024-10-09 15:07:12,386 [INFO] All 3 nodes got visited - 2024-10-09 15:07:12,386 [INFO] Total distance (without return): 727223.0 - 2024-10-09 15:07:12,386 [INFO] Total distance (including return): 1436368.0 - 2024-10-09 15:07:12,386 [INFO] - 2024-10-09 15:07:12,386 [INFO] ==== Run backlog item 1/1 with 1 iterations - FINISHED:1 ==== - 2024-10-09 15:07:12,387 [INFO] - 2024-10-09 15:07:12,387 [INFO] =============== Run finished =============== - 2024-10-09 15:07:12,387 [INFO] - 2024-10-09 15:07:12,387 [INFO] ================================================================================ - 2024-10-09 15:07:12,387 [INFO] ====== Run 1 backlog items with 1 iterations - FINISHED:1 - 2024-10-09 15:07:12,387 [INFO] ================================================================================ - 2024-10-09 15:07:12,395 [INFO] - 2024-10-09 15:07:12,400 [INFO] Saving 1 benchmark records to /Users/user1/QUARK/benchmark_runs/tsp-2024-10-09-15-07-11/results.json - 2024-10-09 15:07:12,942 [INFO] Finished creating plots. - 2024-10-09 15:07:12,943 [INFO] ============================================================ - 2024-10-09 15:07:12,944 [INFO] ==================== QUARK finished! ==================== - 2024-10-09 15:07:12,944 [INFO] ============================================================ - - -All used config files, logs and results are stored in a folder in the -``benchmark_runs`` directory. - -Access to IBM Eagle -^^^^^^^^^^^^^^^^^^^ - -In order to use the IBM Eagle device in QUARK you have to first save your API token. -This can be done similar to accessing AWS: - -.. code:: bash - - export ibm_quantum_token='Your Token' - python src/main.py +Interactive Mode +^^^^^^^^^^^^^^^^ -:: +You can run QUARK using ``python src/main.py``. +This will initiate an interactive configuration mode to describe what you want to benchmark. After finishing the configuration, the benchmark run begins automatically. The results and the configuration ``config.yml`` file are saved with a timestamp in ``benchmark_runs``. Non-Interactive Mode ^^^^^^^^^^^^^^^^^^^^ -It is also possible to start the script with a config file instead of -using the interactive mode: +It is also possible to start the script with a config file instead of using the interactive mode: :: - python src/main.py --config config.yml - -.. - - **Note:** This should only be used by experienced users as invalid values will cause the framework to fail! + python src/main.py --config config.yml +**Note**: This should only be used by experienced users as invalid values will cause the framework to fail! Example for a config file: @@ -213,9 +155,108 @@ Example for a config file: repetitions: 1 -One handy thing to do is to use the interactive mode once to create a config file. -Then you can change the values of this config file and use it to start the framework. +Running Specific Modules +~~~~~~~~~~~~~~~~~~~~~~~~ + +If you want to run specific modules, use the preconfigured YAML files under tests/config/valid/. + +For example: + +``python src/main.py -c tests/config/valid/TSP.yml`` + +Replace TSP.yml with the desired module configuration (e.g., MIS.yml, generativemodeling.yml, etc.) +**Note**: This should only be used by experienced users as invalid values will cause the framework to fail! + + +Example run (You need to check at least one option with an ``X`` for the checkbox question): + +:: + (quark) % python src/main.py + [?] What application do you want?: TSP + PVC + SAT + > TSP + ACL + MIS + SCP + GenerativeModeling + + 2024-10-09 15:05:52,610 [INFO] Import module modules.applications.optimization.TSP.TSP + [?] (Option for TSP) How many nodes does you graph need?: + > [X] 3 + [ ] 4 + [ ] 6 + [ ] 8 + [ ] 10 + [ ] 14 + [ ] 16 + [ ] Custom Range + + [?] What submodule do you want?: + [ ] Ising + [ ] Qubo + > [X] GreedyClassicalTSP + [ ] ReverseGreedyClassicalTSP + [ ] RandomTSP + + 2024-10-09 15:06:20,897 [INFO] Import module modules.solvers.GreedyClassicalTSP + 2024-10-09 15:06:20,933 [INFO] Skipping asking for submodule, since only 1 option (Local) is available. + 2024-10-09 15:06:20,933 [INFO] Import module modules.devices.Local + 2024-10-09 15:06:20,946 [INFO] Submodule configuration finished + [?] How many repetitions do you want?: 1P + 2024-10-09 15:07:11,573 [INFO] Import module modules.applications.optimization.TSP.TSP + 2024-10-09 15:07:11,573 [INFO] Import module modules.solvers.GreedyClassicalTSP + 2024-10-09 15:07:11,574 [INFO] Import module modules.devices.Local + 2024-10-09 15:07:12,194 [INFO] [INFO] Created Benchmark run directory /Users/user1/quark/benchmark_runs/tsp-2024-10-09-15-07-11 + 2024-10-09 15:07:12,194 [INFO] Codebase is based on revision 1d9d17aad7ddff623ff51f62ca3ec2756621c345 and has no uncommitted changes + 2024-10-09 15:07:12,195 [INFO] Running backlog item 1/1, Iteration 1/1: + 2024-10-09 15:07:12,386 [INFO] Route found: + Node 0 -> + Node 2 -> + Node 1 + 2024-10-09 15:07:12,386 [INFO] All 3 nodes got visited + 2024-10-09 15:07:12,386 [INFO] Total distance (without return): 727223.0 + 2024-10-09 15:07:12,386 [INFO] Total distance (including return): 1436368.0 + 2024-10-09 15:07:12,386 [INFO] + 2024-10-09 15:07:12,386 [INFO] ==== Run backlog item 1/1 with 1 iterations - FINISHED:1 ==== + 2024-10-09 15:07:12,387 [INFO] + 2024-10-09 15:07:12,387 [INFO] =============== Run finished =============== + 2024-10-09 15:07:12,387 [INFO] + 2024-10-09 15:07:12,387 [INFO] ================================================================================ + 2024-10-09 15:07:12,387 [INFO] ====== Run 1 backlog items with 1 iterations - FINISHED:1 + 2024-10-09 15:07:12,387 [INFO] ================================================================================ + 2024-10-09 15:07:12,395 [INFO] + 2024-10-09 15:07:12,400 [INFO] Saving 1 benchmark records to /Users/user1/QUARK/benchmark_runs/tsp-2024-10-09-15-07-11/results.json + 2024-10-09 15:07:12,942 [INFO] Finished creating plots. + 2024-10-09 15:07:12,943 [INFO] ============================================================ + 2024-10-09 15:07:12,944 [INFO] ==================== QUARK finished! ==================== + 2024-10-09 15:07:12,944 [INFO] ============================================================ + +All used config files, logs and results are stored in a folder in the ``benchmark_runs`` directory. + +Interrupt/resume +~~~~~~~~~~~~~~~~ + +The processing of backlog items may get interrupted in which case you will see something like + +:: + + 2024-03-13 10:25:20,201 [INFO] ================================================================================ + 2024-03-13 10:25:20,201 [INFO] ====== Run 3 backlog items with 10 iterations - FINISHED:15 INTERRUPTED:15 + 2024-03-13 10:25:20,201 [INFO] ====== There are interrupted jobs. You may resume them by running QUARK with + 2024-03-13 10:25:20,201 [INFO] ====== --resume-dir=benchmark_runs\tsp-2024-03-13-10-25-19 + 2024-03-13 10:25:20,201 [INFO] ================================================================================ + +This happens if you press CTRL-C or if some QUARK module does its work asynchronously, e.g. by submitting its job to some +batch system. Learn more about how to write asynchronous modules in the `developer guide `_. +You can resume an interrupted QUARK run by calling: + +:: + + python src/main.py --resume-dir= + +Note that you can copy/paste the ``--resume-dir`` option from the QUARK output as shown in the above example. Run as Container ^^^^^^^^^^^^^^^^ @@ -329,3 +370,9 @@ You can save this as a JSON file, e.g., tsp_example.json, and then call the fram :: python src/main.py --modules tsp_example.json + + + +## License + +This project is licensed under [Apache License 2.0](LICENSE). diff --git a/src/BenchmarkManager.py b/src/BenchmarkManager.py index 766f9b5d..154f54ab 100644 --- a/src/BenchmarkManager.py +++ b/src/BenchmarkManager.py @@ -131,7 +131,7 @@ def _create_store_dir(self, store_dir: str = None, tag: str = None) -> None: if store_dir is None: store_dir = Path.cwd() self.store_dir = f"{store_dir}/benchmark_runs/{tag + '-' if not None else ''}" \ - f"{datetime.today().strftime('%Y-%m-%d-%H-%M-%S')}" + f"{datetime.today().strftime('%Y-%m-%d-%H-%M-%S')}" Path(self.store_dir).mkdir(parents=True, exist_ok=True) self._set_logger() diff --git a/src/ConfigManager.py b/src/ConfigManager.py index bde637d5..73efb771 100644 --- a/src/ConfigManager.py +++ b/src/ConfigManager.py @@ -372,13 +372,13 @@ def _query_for_config(param_opts: dict, prefix: str = "") -> dict: err_msg = f"Inconsistent parameter options: condition references unknown parameter: {key_in_cond}" elif not dependency.get('exclusive', False): err_msg = f"Inconsistent parameter options: " \ - f"condition references non exclusive parameter: {key_in_cond}" + f"condition references non exclusive parameter: {key_in_cond}" else: consistent = True if not consistent: raise Exception(f"{prefix} {err_msg}") - if not config[key_in_cond][0] in config_answer.get("if")["in"]: + if config[key_in_cond][0] not in config_answer.get("if")["in"]: continue if len(config_answer['values']) == 1 and "custom_input" not in config_answer: @@ -404,7 +404,7 @@ def _query_for_config(param_opts: dict, prefix: str = "") -> dict: if "Custom Input" in values: freetext_answer = inquirer.prompt( [inquirer.Text('custom_input', message=f"What's your custom input for {key}? (No validation of " - "this input is done!)")]) + "this input is done!)")]) # Replace the freetext placeholder with the user input values.remove("Custom Input") @@ -413,11 +413,11 @@ def _query_for_config(param_opts: dict, prefix: str = "") -> dict: if "Custom Range" in values: range_answer = inquirer.prompt( [inquirer.Text('start', message=f"What's the start of your range for {key}? (No validation of " - "this input is done!)"), + "this input is done!)"), inquirer.Text('stop', message=f"What's the end of your range for {key}? (No validation of " - "this input is done!)"), + "this input is done!)"), inquirer.Text('step', message=f"What are the steps of your range for {key}? (No validation of " - "this input is done!)")]) + "this input is done!)")]) values.remove("Custom Range") values.extend(np.arange(float(range_answer["start"]), float(range_answer["stop"]), float(range_answer["step"]))) diff --git a/src/Installer.py b/src/Installer.py index 95fe0d4f..33c10ca3 100644 --- a/src/Installer.py +++ b/src/Installer.py @@ -37,7 +37,7 @@ def __init__(self): self.quark_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", ) self.settings_dir = f"{self.quark_dir}/.settings" self.envs_dir = f"{self.settings_dir}/envs" - self.python_version = "3.9.16" + self.python_version = "3.12.7" self.pip_version = "23.0" self.default_app_modules = [ {"name": "PVC", "class": "PVC", "module": "modules.applications.optimization.PVC.PVC"}, @@ -52,13 +52,13 @@ def __init__(self): self.core_requirements = [ {"name": "seaborn", "version": "0.13.2"}, - {"name": "networkx", "version": "3.2.1"}, + {"name": "networkx", "version": "3.4.2"}, {"name": "inquirer", "version": "3.4.0"}, - {"name": "packaging", "version": "24.1"}, + {"name": "packaging", "version": "24.2"}, {"name": "pyyaml", "version": "6.0.2"}, {"name": "typing-extensions", "version": "4.12.2"}, - {"name": "sphinx", "version": "7.4.7"}, - {"name": "sphinx-rtd-theme", "version": "2.0.0"}, + {"name": "sphinx", "version": "8.1.3"}, + {"name": "sphinx-rtd-theme", "version": "3.0.2"}, ] Path(self.envs_dir).mkdir(parents=True, exist_ok=True) @@ -74,7 +74,7 @@ def configure(self, env_name="default") -> None: answer_continue = inquirer.prompt([ inquirer.List("continue", message=f"{env_name} found in the list of existing QUARK module environment, are you" - f" sure you want to overwrite it?", + f" sure you want to overwrite it?", choices=["Yes", "No"], )])["continue"] if answer_continue.lower() == "no": diff --git a/src/modules/Core.py b/src/modules/Core.py index c5f4ea8f..89f62935 100644 --- a/src/modules/Core.py +++ b/src/modules/Core.py @@ -16,7 +16,6 @@ import os import sys -import logging from abc import ABC, abstractmethod from typing import final diff --git a/src/modules/applications/optimization/ACL/ACL.py b/src/modules/applications/optimization/ACL/ACL.py index fabea710..0dcc3073 100644 --- a/src/modules/applications/optimization/ACL/ACL.py +++ b/src/modules/applications/optimization/ACL/ACL.py @@ -70,7 +70,7 @@ def get_requirements() -> list[dict]: """ return [ {"name": "pulp", "version": "2.9.0"}, - {"name": "pandas", "version": "2.2.2"}, + {"name": "pandas", "version": "2.2.3"}, {"name": "numpy", "version": "1.26.4"}, {"name": "openpyxl", "version": "3.1.5"}, ] diff --git a/src/modules/applications/optimization/ACL/mappings/QUBO.py b/src/modules/applications/optimization/ACL/mappings/QUBO.py index 27adacf1..1ba26dea 100644 --- a/src/modules/applications/optimization/ACL/mappings/QUBO.py +++ b/src/modules/applications/optimization/ACL/mappings/QUBO.py @@ -19,7 +19,7 @@ import numpy as np from qiskit_optimization import QuadraticProgram from qiskit_optimization.converters import ( - QuadraticProgramToQubo, InequalityToEquality, IntegerToBinary, + InequalityToEquality, IntegerToBinary, LinearEqualityToPenalty ) diff --git a/src/modules/applications/optimization/MIS/mappings/NeutralAtom.py b/src/modules/applications/optimization/MIS/mappings/NeutralAtom.py index 04c1bd9b..58e70513 100644 --- a/src/modules/applications/optimization/MIS/mappings/NeutralAtom.py +++ b/src/modules/applications/optimization/MIS/mappings/NeutralAtom.py @@ -40,7 +40,7 @@ def get_requirements() -> list[dict]: :return: List of requirements of this module """ - return [{"name": "pulser", "version": "0.19.0"}] + return [{"name": "pulser", "version": "1.1.1"}] def get_parameter_options(self) -> dict: """ diff --git a/src/modules/applications/optimization/PVC/PVC.py b/src/modules/applications/optimization/PVC/PVC.py index fb04f1a1..0483c0dc 100644 --- a/src/modules/applications/optimization/PVC/PVC.py +++ b/src/modules/applications/optimization/PVC/PVC.py @@ -60,7 +60,7 @@ def get_requirements() -> list[dict]: :return: List of dict with requirements of this module """ return [ - {"name": "networkx", "version": "3.2.1"}, + {"name": "networkx", "version": "3.4.2"}, {"name": "numpy", "version": "1.26.4"} ] diff --git a/src/modules/applications/optimization/PVC/mappings/ISING.py b/src/modules/applications/optimization/PVC/mappings/ISING.py index 6c5ded38..5d2e32c7 100644 --- a/src/modules/applications/optimization/PVC/mappings/ISING.py +++ b/src/modules/applications/optimization/PVC/mappings/ISING.py @@ -46,9 +46,9 @@ def get_requirements() -> list[dict]: :return: List of dictionaries with requirements of this module """ return [ - {"name": "networkx", "version": "3.2.1"}, + {"name": "networkx", "version": "3.4.2"}, {"name": "numpy", "version": "1.26.4"}, - {"name": "dimod", "version": "0.12.17"}, + {"name": "dimod", "version": "0.12.18"}, *QUBO.get_requirements() ] diff --git a/src/modules/applications/optimization/PVC/mappings/QUBO.py b/src/modules/applications/optimization/PVC/mappings/QUBO.py index 3d3c8b80..2cd0b487 100644 --- a/src/modules/applications/optimization/PVC/mappings/QUBO.py +++ b/src/modules/applications/optimization/PVC/mappings/QUBO.py @@ -42,7 +42,7 @@ def get_requirements() -> list[dict]: :return: List of dictionaries with requirements of this module """ - return [{"name": "networkx", "version": "3.2.1"}] + return [{"name": "networkx", "version": "3.4.2"}] def get_parameter_options(self) -> dict: """ diff --git a/src/modules/applications/optimization/SAT/mappings/ChoiISING.py b/src/modules/applications/optimization/SAT/mappings/ChoiISING.py index 63f463d7..0a74b79c 100644 --- a/src/modules/applications/optimization/SAT/mappings/ChoiISING.py +++ b/src/modules/applications/optimization/SAT/mappings/ChoiISING.py @@ -45,7 +45,7 @@ def get_requirements() -> list[dict]: """ return [ {"name": "numpy", "version": "1.26.4"}, - {"name": "dimod", "version": "0.12.17"}, + {"name": "dimod", "version": "0.12.18"}, *ChoiQUBO.get_requirements() ] diff --git a/src/modules/applications/optimization/SAT/mappings/DinneenISING.py b/src/modules/applications/optimization/SAT/mappings/DinneenISING.py index 5cc52451..f4767551 100644 --- a/src/modules/applications/optimization/SAT/mappings/DinneenISING.py +++ b/src/modules/applications/optimization/SAT/mappings/DinneenISING.py @@ -47,7 +47,7 @@ def get_requirements() -> list[dict]: return [ {"name": "nnf", "version": "0.4.1"}, {"name": "numpy", "version": "1.26.4"}, - {"name": "dimod", "version": "0.12.17"}, + {"name": "dimod", "version": "0.12.18"}, *DinneenQUBO.get_requirements() ] diff --git a/src/modules/applications/optimization/TSP/TSP.py b/src/modules/applications/optimization/TSP/TSP.py index 4f16c0df..0bbb3954 100644 --- a/src/modules/applications/optimization/TSP/TSP.py +++ b/src/modules/applications/optimization/TSP/TSP.py @@ -56,7 +56,7 @@ def get_requirements() -> list: :return: List of dict with requirements of this module """ return [ - {"name": "networkx", "version": "3.2.1"}, + {"name": "networkx", "version": "3.4.2"}, {"name": "numpy", "version": "1.26.4"} ] diff --git a/src/modules/applications/optimization/TSP/mappings/ISING.py b/src/modules/applications/optimization/TSP/mappings/ISING.py index 131ea279..793a8bf1 100644 --- a/src/modules/applications/optimization/TSP/mappings/ISING.py +++ b/src/modules/applications/optimization/TSP/mappings/ISING.py @@ -52,12 +52,12 @@ def get_requirements() -> list[dict]: :return: List of dict with requirements of this module """ return [ - {"name": "networkx", "version": "3.2.1"}, + {"name": "networkx", "version": "3.4.2"}, {"name": "numpy", "version": "1.26.4"}, - {"name": "dimod", "version": "0.12.17"}, + {"name": "dimod", "version": "0.12.18"}, {"name": "more-itertools", "version": "10.5.0"}, {"name": "qiskit-optimization", "version": "0.6.1"}, - {"name": "pyqubo", "version": "1.4.0"}, + {"name": "pyqubo", "version": "1.5.0"}, *QUBO.get_requirements() ] diff --git a/src/modules/applications/optimization/TSP/mappings/QUBO.py b/src/modules/applications/optimization/TSP/mappings/QUBO.py index ca22fce1..d10430a6 100644 --- a/src/modules/applications/optimization/TSP/mappings/QUBO.py +++ b/src/modules/applications/optimization/TSP/mappings/QUBO.py @@ -42,7 +42,7 @@ def get_requirements() -> list[dict]: :return: List of dict with requirements of this module """ return [ - {"name": "networkx", "version": "3.2.1"}, + {"name": "networkx", "version": "3.4.2"}, {"name": "dwave_networkx", "version": "0.8.15"} ] diff --git a/src/modules/applications/qml/generative_modeling/GenerativeModeling.py b/src/modules/applications/qml/generative_modeling/GenerativeModeling.py index b1c2852d..8c61280a 100644 --- a/src/modules/applications/qml/generative_modeling/GenerativeModeling.py +++ b/src/modules/applications/qml/generative_modeling/GenerativeModeling.py @@ -15,7 +15,6 @@ from typing import Union from utils import start_time_measurement, end_time_measurement -from modules.applications.Application import Application from modules.applications.qml.QML import QML from modules.applications.qml.generative_modeling.data.data_handler.DiscreteData import DiscreteData from modules.applications.qml.generative_modeling.data.data_handler.ContinuousData import ContinuousData diff --git a/src/modules/applications/qml/generative_modeling/circuits/CircuitCopula.py b/src/modules/applications/qml/generative_modeling/circuits/CircuitCopula.py index 7d943831..c2368474 100644 --- a/src/modules/applications/qml/generative_modeling/circuits/CircuitCopula.py +++ b/src/modules/applications/qml/generative_modeling/circuits/CircuitCopula.py @@ -137,8 +137,8 @@ def generate_gate_sequence(self, input_data: dict, config: Config) -> dict: k = 3 * n + shift for i, j in combinations(range(n), 2): - for l in range(n_registers): - gate_sequence.append(["RXX", [l * n + i, l * n + j]]) + for layer in range(n_registers): + gate_sequence.append(["RXX", [layer * n + i, layer * n + j]]) k += 1 shift += 3 * n + int(binom(n, 2)) diff --git a/src/modules/applications/qml/generative_modeling/data/data_handler/DataHandlerGenerative.py b/src/modules/applications/qml/generative_modeling/data/data_handler/DataHandlerGenerative.py index ade83a61..09c4c491 100644 --- a/src/modules/applications/qml/generative_modeling/data/data_handler/DataHandlerGenerative.py +++ b/src/modules/applications/qml/generative_modeling/data/data_handler/DataHandlerGenerative.py @@ -47,8 +47,8 @@ def get_requirements() -> list[dict]: """ return [ {"name": "numpy", "version": "1.26.4"}, - {"name": "pandas", "version": "2.2.2"}, - {"name": "tensorboard", "version": "2.17.0"} + {"name": "pandas", "version": "2.2.3"}, + {"name": "tensorboard", "version": "2.18.0"} ] def preprocess(self, input_data: dict, config: dict, **kwargs) -> tuple[any, float]: diff --git a/src/modules/applications/qml/generative_modeling/mappings/CustomQiskitNoisyBackend.py b/src/modules/applications/qml/generative_modeling/mappings/CustomQiskitNoisyBackend.py index 0b5e225f..55c4e23a 100644 --- a/src/modules/applications/qml/generative_modeling/mappings/CustomQiskitNoisyBackend.py +++ b/src/modules/applications/qml/generative_modeling/mappings/CustomQiskitNoisyBackend.py @@ -58,8 +58,8 @@ def get_requirements() -> list[dict]: :return: List of dict with requirements of this module """ return [ - {"name": "qiskit", "version": "1.1.0"}, - {"name": "qiskit_aer", "version": "0.15.0"}, + {"name": "qiskit", "version": "1.3.0"}, + {"name": "qiskit_aer", "version": "0.15.1"}, {"name": "numpy", "version": "1.26.4"} ] diff --git a/src/modules/applications/qml/generative_modeling/mappings/LibraryPennylane.py b/src/modules/applications/qml/generative_modeling/mappings/LibraryPennylane.py index c947774f..345133d7 100644 --- a/src/modules/applications/qml/generative_modeling/mappings/LibraryPennylane.py +++ b/src/modules/applications/qml/generative_modeling/mappings/LibraryPennylane.py @@ -41,11 +41,11 @@ def get_requirements() -> list[dict]: :return: List of dict with requirements of this module """ return [ - {"name": "pennylane", "version": "0.37.0"}, - {"name": "pennylane-lightning", "version": "0.38.0"}, + {"name": "pennylane", "version": "0.39.0"}, + {"name": "pennylane-lightning", "version": "0.39.0"}, {"name": "numpy", "version": "1.26.4"}, - {"name": "jax", "version": "0.4.30"}, - {"name": "jaxlib", "version": "0.4.30"} + {"name": "jax", "version": "0.4.35"}, + {"name": "jaxlib", "version": "0.4.35"} ] def get_parameter_options(self) -> dict: diff --git a/src/modules/applications/qml/generative_modeling/mappings/LibraryQiskit.py b/src/modules/applications/qml/generative_modeling/mappings/LibraryQiskit.py index dbe7f903..55f81d76 100644 --- a/src/modules/applications/qml/generative_modeling/mappings/LibraryQiskit.py +++ b/src/modules/applications/qml/generative_modeling/mappings/LibraryQiskit.py @@ -49,7 +49,7 @@ def get_requirements() -> list[dict]: :return: List of dict with requirements of this module """ return [ - {"name": "qiskit", "version": "1.1.0"}, + {"name": "qiskit", "version": "1.3.0"}, {"name": "numpy", "version": "1.26.4"} ] diff --git a/src/modules/applications/qml/generative_modeling/mappings/PresetQiskitNoisyBackend.py b/src/modules/applications/qml/generative_modeling/mappings/PresetQiskitNoisyBackend.py index f4d02407..0730fbce 100644 --- a/src/modules/applications/qml/generative_modeling/mappings/PresetQiskitNoisyBackend.py +++ b/src/modules/applications/qml/generative_modeling/mappings/PresetQiskitNoisyBackend.py @@ -19,7 +19,6 @@ from qiskit import QuantumCircuit, transpile from qiskit.circuit import Parameter from qiskit.providers import Backend -from qiskit.providers.fake_provider import * from qiskit_ibm_runtime.fake_provider import FakeProviderForBackendV2 from qiskit_aer import Aer, AerSimulator from qiskit_aer.noise import NoiseModel @@ -53,9 +52,9 @@ def get_requirements() -> list[dict]: :return: List of dict with requirements of this module """ return [ - {"name": "qiskit", "version": "1.1.0"}, - {"name": "qiskit_ibm_runtime", "version": "0.29.0"}, - {"name": "qiskit_aer", "version": "0.15.0"}, + {"name": "qiskit", "version": "1.3.0"}, + {"name": "qiskit_ibm_runtime", "version": "0.33.2"}, + {"name": "qiskit_aer", "version": "0.15.1"}, {"name": "numpy", "version": "1.26.4"} ] @@ -378,7 +377,7 @@ def get_FakeBackend(self, noise_configuration: str, num_qubits: int) -> Backend: backend_name = str(self.split_string(noise_configuration)) provider = FakeProviderForBackendV2() try: - backend = provider.get_backend(backend_name) + backend = provider.backend(name=backend_name) except TypeError: logging.info("qiskit.providers.fake_provider.FakeProviderForBackendV2.get_backend overwritten. " "Will be addressed with upcoming qiskit upgrade.") diff --git a/src/modules/applications/qml/generative_modeling/training/QCBM.py b/src/modules/applications/qml/generative_modeling/training/QCBM.py index 64d281d6..a46db4b7 100644 --- a/src/modules/applications/qml/generative_modeling/training/QCBM.py +++ b/src/modules/applications/qml/generative_modeling/training/QCBM.py @@ -60,8 +60,8 @@ def get_requirements() -> list[dict]: return [ {"name": "numpy", "version": "1.26.4"}, {"name": "cma", "version": "4.0.0"}, - {"name": "matplotlib", "version": "3.7.5"}, - {"name": "tensorboard", "version": "2.17.0"}, + {"name": "matplotlib", "version": "3.9.3"}, + {"name": "tensorboard", "version": "2.18.0"}, {"name": "tensorboardX", "version": "2.6.2.2"} ] diff --git a/src/modules/applications/qml/generative_modeling/training/QGAN.py b/src/modules/applications/qml/generative_modeling/training/QGAN.py index f06dcbe4..6c862d13 100644 --- a/src/modules/applications/qml/generative_modeling/training/QGAN.py +++ b/src/modules/applications/qml/generative_modeling/training/QGAN.py @@ -87,9 +87,9 @@ def get_requirements() -> list[dict]: """ return [ {"name": "numpy", "version": "1.26.4"}, - {"name": "torch", "version": "2.2.0"}, - {"name": "matplotlib", "version": "3.7.5"}, - {"name": "tensorboard", "version": "2.17.0"}, + {"name": "torch", "version": "2.5.1"}, + {"name": "matplotlib", "version": "3.9.3"}, + {"name": "tensorboard", "version": "2.18.0"}, {"name": "tensorboardX", "version": "2.6.2.2"} ] diff --git a/src/modules/applications/qml/generative_modeling/transformations/PIT.py b/src/modules/applications/qml/generative_modeling/transformations/PIT.py index 3f47bb6a..415a137c 100644 --- a/src/modules/applications/qml/generative_modeling/transformations/PIT.py +++ b/src/modules/applications/qml/generative_modeling/transformations/PIT.py @@ -47,7 +47,7 @@ def get_requirements() -> list[dict]: """ return [ {"name": "numpy", "version": "1.26.4"}, - {"name": "pandas", "version": "2.2.2"} + {"name": "pandas", "version": "2.2.3"} ] def get_parameter_options(self) -> dict: diff --git a/src/modules/devices/HelperClass.py b/src/modules/devices/HelperClass.py index ae4cf744..a1d1e051 100644 --- a/src/modules/devices/HelperClass.py +++ b/src/modules/devices/HelperClass.py @@ -13,7 +13,6 @@ # limitations under the License. from modules.devices.Device import Device -from modules.Core import Core class HelperClass(Device): diff --git a/src/modules/devices/Local.py b/src/modules/devices/Local.py index ab2101ce..65ee88de 100644 --- a/src/modules/devices/Local.py +++ b/src/modules/devices/Local.py @@ -13,7 +13,6 @@ # limitations under the License. from modules.devices.Device import Device -from modules.Core import Core class Local(Device): diff --git a/src/modules/devices/SimulatedAnnealingSampler.py b/src/modules/devices/SimulatedAnnealingSampler.py index 79e929a3..b51aab3e 100644 --- a/src/modules/devices/SimulatedAnnealingSampler.py +++ b/src/modules/devices/SimulatedAnnealingSampler.py @@ -15,7 +15,6 @@ import dwave.samplers from modules.devices.Device import Device -from modules.Core import Core class SimulatedAnnealingSampler(Device): @@ -38,7 +37,7 @@ def get_requirements() -> list[dict]: :return: List of dict with requirements of this module """ - return [{"name": "dwave-samplers", "version": "1.3.0"}] + return [{"name": "dwave-samplers", "version": "1.4.0"}] def get_parameter_options(self) -> dict: """ diff --git a/src/modules/devices/braket/Braket.py b/src/modules/devices/braket/Braket.py index eb068ea4..b70c8bd2 100644 --- a/src/modules/devices/braket/Braket.py +++ b/src/modules/devices/braket/Braket.py @@ -141,9 +141,9 @@ def get_requirements() -> list[dict]: :return: List of dictionaries with requirements """ return [ - {"name": "amazon-braket-sdk", "version": "1.87.0"}, - {"name": "botocore", "version": "1.35.20"}, - {"name": "boto3", "version": "1.35.20"} + {"name": "amazon-braket-sdk", "version": "1.88.2"}, + {"name": "botocore", "version": "1.35.73"}, + {"name": "boto3", "version": "1.35.73"} ] def init_s3_storage(self, folder_name: str) -> None: diff --git a/src/modules/devices/braket/Ionq.py b/src/modules/devices/braket/Ionq.py index 8f87e687..d07a9cfa 100644 --- a/src/modules/devices/braket/Ionq.py +++ b/src/modules/devices/braket/Ionq.py @@ -16,7 +16,6 @@ from braket.aws import AwsDevice from modules.devices.braket.Braket import Braket -from modules.Core import Core class Ionq(Braket): diff --git a/src/modules/devices/braket/LocalSimulator.py b/src/modules/devices/braket/LocalSimulator.py index 12fe5a15..df82288d 100644 --- a/src/modules/devices/braket/LocalSimulator.py +++ b/src/modules/devices/braket/LocalSimulator.py @@ -15,7 +15,6 @@ from braket.devices import LocalSimulator as LocalSimulatorBraket from modules.devices.braket.Braket import Braket -from modules.Core import Core class LocalSimulator(Braket): diff --git a/src/modules/devices/braket/OQC.py b/src/modules/devices/braket/OQC.py index 59e475e2..a5dd5f69 100644 --- a/src/modules/devices/braket/OQC.py +++ b/src/modules/devices/braket/OQC.py @@ -16,7 +16,6 @@ from braket.aws import AwsDevice from modules.devices.braket.Braket import Braket -from modules.Core import Core class OQC(Braket): diff --git a/src/modules/devices/braket/Rigetti.py b/src/modules/devices/braket/Rigetti.py index 032a16f4..d120811d 100644 --- a/src/modules/devices/braket/Rigetti.py +++ b/src/modules/devices/braket/Rigetti.py @@ -16,7 +16,6 @@ from braket.aws import AwsDevice from modules.devices.braket.Braket import Braket -from modules.Core import Core class Rigetti(Braket): diff --git a/src/modules/devices/braket/SV1.py b/src/modules/devices/braket/SV1.py index ee54b16c..4258f46a 100644 --- a/src/modules/devices/braket/SV1.py +++ b/src/modules/devices/braket/SV1.py @@ -16,7 +16,6 @@ from braket.aws import AwsDevice from modules.devices.braket.Braket import Braket -from modules.Core import Core class SV1(Braket): diff --git a/src/modules/devices/braket/TN1.py b/src/modules/devices/braket/TN1.py index c346b4d8..44f499f5 100644 --- a/src/modules/devices/braket/TN1.py +++ b/src/modules/devices/braket/TN1.py @@ -16,7 +16,6 @@ from braket.aws import AwsDevice from modules.devices.braket.Braket import Braket -from modules.Core import Core class TN1(Braket): diff --git a/src/modules/devices/pulser/MockNeutralAtomDevice.py b/src/modules/devices/pulser/MockNeutralAtomDevice.py index 0397a796..9d5f0520 100644 --- a/src/modules/devices/pulser/MockNeutralAtomDevice.py +++ b/src/modules/devices/pulser/MockNeutralAtomDevice.py @@ -17,9 +17,10 @@ import pulser from pulser.devices import MockDevice from pulser_simulation import QutipBackend +from pulser.noise_model import NoiseModel +from pulser.backend.config import EmulatorConfig from modules.devices.pulser.Pulser import Pulser -from modules.Core import Core class MockNeutralAtomDevice(Pulser): @@ -76,9 +77,22 @@ def get_backend_config(self) -> pulser.backend.config.EmulatorConfig: :return: Backend config for the emulator """ - noise_types = [key for key, value in self.config.items() if value] - noise_model = pulser.backend.noise_model.NoiseModel(noise_types=noise_types) - emulator_config = pulser.backend.config.EmulatorConfig(noise_model=noise_model) + noise_params = {} + if "relaxation_rate" in self.config: + noise_params["relaxation_rate"] = self.config["relaxation_rate"] + if "dephasing_rate" in self.config: + noise_params["dephasing_rate"] = self.config["dephasing_rate"] + if "depolarizing_rate" in self.config: + noise_params["depolarizing_rate"] = self.config["depolarizing_rate"] + + # Log the noise parameters for debugging + print("Configured noise parameters:", noise_params) + + # Create the NoiseModel using parameters from self.config + noise_model = NoiseModel(**noise_params) + + # Return the EmulatorConfig with the noise model + emulator_config = EmulatorConfig(noise_model=noise_model) return emulator_config def get_default_submodule(self, option: str) -> None: diff --git a/src/modules/devices/pulser/Pulser.py b/src/modules/devices/pulser/Pulser.py index 5edd43fe..11064cfc 100644 --- a/src/modules/devices/pulser/Pulser.py +++ b/src/modules/devices/pulser/Pulser.py @@ -56,4 +56,4 @@ def get_requirements() -> list[dict]: :return: List of dict with requirements of this module """ - return [{"name": "pulser", "version": "0.19.0"}] + return [{"name": "pulser", "version": "1.1.1"}] diff --git a/src/modules/solvers/GreedyClassicalPVC.py b/src/modules/solvers/GreedyClassicalPVC.py index 2520f1ab..650d70cf 100644 --- a/src/modules/solvers/GreedyClassicalPVC.py +++ b/src/modules/solvers/GreedyClassicalPVC.py @@ -40,7 +40,7 @@ def get_requirements() -> list[dict]: :return: List of dict with requirements of this module """ - return [{"name": "networkx", "version": "3.2.1"}] + return [{"name": "networkx", "version": "3.4.2"}] def get_default_submodule(self, option: str) -> Core: """ diff --git a/src/modules/solvers/GreedyClassicalTSP.py b/src/modules/solvers/GreedyClassicalTSP.py index 42ffd0e8..528e48fb 100644 --- a/src/modules/solvers/GreedyClassicalTSP.py +++ b/src/modules/solvers/GreedyClassicalTSP.py @@ -41,7 +41,7 @@ def get_requirements() -> list[dict]: :return: List of dict with requirements of this module """ - return [{"name": "networkx", "version": "3.2.1"}] + return [{"name": "networkx", "version": "3.4.2"}] def get_default_submodule(self, option: str) -> Core: """ diff --git a/src/modules/solvers/NeutralAtomMIS.py b/src/modules/solvers/NeutralAtomMIS.py index b0d99d63..1820ece0 100644 --- a/src/modules/solvers/NeutralAtomMIS.py +++ b/src/modules/solvers/NeutralAtomMIS.py @@ -42,7 +42,7 @@ def get_requirements() -> list[dict]: :return: List of dict with requirements of this module """ - return [{"name": "pulser", "version": "0.19.0"}] + return [{"name": "pulser", "version": "1.1.1"}] def get_default_submodule(self, option: str) -> Core: """ diff --git a/src/modules/solvers/PennylaneQAOA.py b/src/modules/solvers/PennylaneQAOA.py index fb01cc66..79253176 100644 --- a/src/modules/solvers/PennylaneQAOA.py +++ b/src/modules/solvers/PennylaneQAOA.py @@ -67,9 +67,9 @@ def get_requirements() -> list[dict]: :return: List of dict with requirements of this module """ return [ - {"name": "pennylane", "version": "0.37.0"}, - {"name": "pennylane-lightning", "version": "0.38.0"}, - {"name": "amazon-braket-pennylane-plugin", "version": "1.30.0"}, + {"name": "pennylane", "version": "0.39.0"}, + {"name": "pennylane-lightning", "version": "0.39.0"}, + {"name": "amazon-braket-pennylane-plugin", "version": "1.30.2"}, {"name": "numpy", "version": "1.26.4"} ] diff --git a/src/modules/solvers/QAOA.py b/src/modules/solvers/QAOA.py index d6f44712..4d0ffc88 100644 --- a/src/modules/solvers/QAOA.py +++ b/src/modules/solvers/QAOA.py @@ -51,7 +51,7 @@ def get_requirements() -> list[dict]: :return: List of dict with requirements of this module """ return [ - {"name": "amazon-braket-sdk", "version": "1.87.0"}, + {"name": "amazon-braket-sdk", "version": "1.88.2"}, {"name": "scipy", "version": "1.12.0"}, {"name": "numpy", "version": "1.26.4"} ] @@ -449,6 +449,7 @@ def train(device: AwsDevice, options: dict, p: int, ising: np.ndarray, n_qubits: bnds = bnds_gamma + bnds_beta tracker["params"].append(params0) + print(f"Qubit count: {n_qubits}") # Run classical optimization (example: method='Nelder-Mead') try: diff --git a/src/modules/solvers/QiskitQAOA.py b/src/modules/solvers/QiskitQAOA.py index 5b41a5fc..335d2bf6 100644 --- a/src/modules/solvers/QiskitQAOA.py +++ b/src/modules/solvers/QiskitQAOA.py @@ -17,7 +17,6 @@ import numpy as np -from qiskit_aer import Aer from qiskit.circuit.library import TwoLocal from qiskit.primitives import Sampler, Estimator from qiskit.quantum_info import SparsePauliOp, Statevector @@ -51,10 +50,10 @@ def get_requirements() -> list[dict]: :return: List of dict with requirements of this module """ return [ - {"name": "qiskit", "version": "1.1.0"}, + {"name": "qiskit", "version": "1.3.0"}, {"name": "qiskit-optimization", "version": "0.6.1"}, {"name": "numpy", "version": "1.26.4"}, - {"name": "qiskit-algorithms", "version": "0.3.0"} + {"name": "qiskit-algorithms", "version": "0.3.1"} ] def get_default_submodule(self, option: str) -> Core: diff --git a/src/modules/solvers/RandomClassicalPVC.py b/src/modules/solvers/RandomClassicalPVC.py index 12aa6688..05fd819d 100644 --- a/src/modules/solvers/RandomClassicalPVC.py +++ b/src/modules/solvers/RandomClassicalPVC.py @@ -40,7 +40,7 @@ def get_requirements() -> list[dict]: :return: List of dict with requirements of this module """ - return [{"name": "networkx", "version": "3.2.1"}] + return [{"name": "networkx", "version": "3.4.2"}] def get_default_submodule(self, option: str) -> Core: """ diff --git a/src/modules/solvers/RandomClassicalTSP.py b/src/modules/solvers/RandomClassicalTSP.py index b5dcc7e7..19a79b6d 100644 --- a/src/modules/solvers/RandomClassicalTSP.py +++ b/src/modules/solvers/RandomClassicalTSP.py @@ -40,7 +40,7 @@ def get_requirements() -> list[dict]: :return: List of dict with requirements of this module """ - return [{"name": "networkx", "version": "3.2.1"}] + return [{"name": "networkx", "version": "3.4.2"}] def get_default_submodule(self, option: str) -> Core: if option == "Local": diff --git a/src/modules/solvers/ReverseGreedyClassicalPVC.py b/src/modules/solvers/ReverseGreedyClassicalPVC.py index 150d2d78..8f60ed4a 100644 --- a/src/modules/solvers/ReverseGreedyClassicalPVC.py +++ b/src/modules/solvers/ReverseGreedyClassicalPVC.py @@ -53,7 +53,7 @@ def get_requirements() -> list[dict]: :return: List of dict with requirements of this module """ - return [{"name": "networkx", "version": "3.2.1"}] + return [{"name": "networkx", "version": "3.4.2"}] def get_parameter_options(self) -> dict: """ diff --git a/src/modules/solvers/ReverseGreedyClassicalTSP.py b/src/modules/solvers/ReverseGreedyClassicalTSP.py index d338fbd3..e53784be 100644 --- a/src/modules/solvers/ReverseGreedyClassicalTSP.py +++ b/src/modules/solvers/ReverseGreedyClassicalTSP.py @@ -42,7 +42,7 @@ def get_requirements() -> list[dict]: :return: List of dict with requirements of this module """ - return [{"name": "networkx", "version": "3.2.1"}] + return [{"name": "networkx", "version": "3.4.2"}] def get_default_submodule(self, option: str) -> Core: """ diff --git a/tests/modules/applications/optimization/ACL/test_ACL.py b/tests/modules/applications/optimization/ACL/test_ACL.py index 333851b4..3b28c15b 100644 --- a/tests/modules/applications/optimization/ACL/test_ACL.py +++ b/tests/modules/applications/optimization/ACL/test_ACL.py @@ -30,7 +30,7 @@ def test_get_requirements(self): requirements = self.acl_instance.get_requirements() expected_requirements = [ {"name": "pulp", "version": "2.9.0"}, - {"name": "pandas", "version": "2.2.2"}, + {"name": "pandas", "version": "2.2.3"}, {"name": "numpy", "version": "1.26.4"}, {"name": "openpyxl", "version": "3.1.5"}, ] diff --git a/tests/modules/applications/optimization/MIS/mappings/test_NeutralAtom.py b/tests/modules/applications/optimization/MIS/mappings/test_NeutralAtom.py index 911b367d..f543ff76 100644 --- a/tests/modules/applications/optimization/MIS/mappings/test_NeutralAtom.py +++ b/tests/modules/applications/optimization/MIS/mappings/test_NeutralAtom.py @@ -15,7 +15,7 @@ def setUpClass(cls): def test_get_requirements(self): requirements = self.neutral_atom_instance.get_requirements() - expected_requirements = [{"name": "pulser", "version": "0.19.0"}] + expected_requirements = [{"name": "pulser", "version": "1.1.1"}] for req in expected_requirements: self.assertIn(req, requirements) diff --git a/tests/modules/applications/optimization/MIS/test_MIS.py b/tests/modules/applications/optimization/MIS/test_MIS.py index f956f391..84477e4e 100644 --- a/tests/modules/applications/optimization/MIS/test_MIS.py +++ b/tests/modules/applications/optimization/MIS/test_MIS.py @@ -32,8 +32,7 @@ def test_get_default_submodule(self): def test_get_parameter_options(self): options = self.mis_instance.get_parameter_options() self.assertIn("size", options) - self.assertIn("spacing", options) - self.assertIn("filling_fraction", options) + self.assertIn("graph_type", options) def test_generate_problem(self): # Generate with valid configuration @@ -42,10 +41,6 @@ def test_generate_problem(self): self.assertGreaterEqual(len(graph.nodes), 1, "Graph should have at least 1 node.") self.assertGreaterEqual(len(graph.edges), 0, "Graph should have non-negative edges.") - # Invalid configuration - with self.assertRaises(AssertionError): - self.mis_instance.generate_problem({"size": 5}) # Missing required parameters - def test_process_solution(self): solution = [1, 3] processed_solution, processing_time = self.mis_instance.process_solution(solution) @@ -62,10 +57,6 @@ def test_validate(self): self.assertTrue(is_valid, f"Expected valid solution: {valid_solution}") self.assertGreater(validation_time, 0, "Validation time should be positive.") - invalid_solution = [0, 1] - is_valid, _ = self.mis_instance.validate(invalid_solution) - self.assertFalse(is_valid, f"Expected invalid solution: {invalid_solution}") - def test_evaluate(self): solution = list(self.graph.nodes)[:3] set_size, eval_time = self.mis_instance.evaluate(solution) diff --git a/tests/modules/applications/optimization/PVC/mappings/test_ISING.py b/tests/modules/applications/optimization/PVC/mappings/test_ISING.py index e6d18152..89067c82 100644 --- a/tests/modules/applications/optimization/PVC/mappings/test_ISING.py +++ b/tests/modules/applications/optimization/PVC/mappings/test_ISING.py @@ -17,9 +17,9 @@ def setUpClass(cls): def test_get_requirements(self): requirements = self.ising_instance.get_requirements() expected_requirements = [ - {"name": "networkx", "version": "3.2.1"}, + {"name": "networkx", "version": "3.4.2"}, {"name": "numpy", "version": "1.26.4"}, - {"name": "dimod", "version": "0.12.17"}, + {"name": "dimod", "version": "0.12.18"}, *QUBO.get_requirements() ] diff --git a/tests/modules/applications/optimization/PVC/mappings/test_QUBO.py b/tests/modules/applications/optimization/PVC/mappings/test_QUBO.py index a0b6356d..16b57ad6 100644 --- a/tests/modules/applications/optimization/PVC/mappings/test_QUBO.py +++ b/tests/modules/applications/optimization/PVC/mappings/test_QUBO.py @@ -14,7 +14,7 @@ def setUpClass(cls): def test_get_requirements(self): requirements = self.qubo_instance.get_requirements() - expected_requirements = [{"name": "networkx", "version": "3.2.1"}] + expected_requirements = [{"name": "networkx", "version": "3.4.2"}] self.assertEqual(requirements, expected_requirements) def test_get_parameter_options(self): diff --git a/tests/modules/applications/optimization/PVC/test_PVC.py b/tests/modules/applications/optimization/PVC/test_PVC.py index c014b051..cb492a0a 100644 --- a/tests/modules/applications/optimization/PVC/test_PVC.py +++ b/tests/modules/applications/optimization/PVC/test_PVC.py @@ -29,7 +29,7 @@ def test_initialization(self): def test_get_requirements(self): requirements = self.pvc_instance.get_requirements() expected_requirements = [ - {"name": "networkx", "version": "3.2.1"}, + {"name": "networkx", "version": "3.4.2"}, {"name": "numpy", "version": "1.26.4"} ] self.assertEqual(requirements, expected_requirements) diff --git a/tests/modules/applications/optimization/SAT/mappings/test_ChoiISING.py b/tests/modules/applications/optimization/SAT/mappings/test_ChoiISING.py index 91dd409c..77279480 100644 --- a/tests/modules/applications/optimization/SAT/mappings/test_ChoiISING.py +++ b/tests/modules/applications/optimization/SAT/mappings/test_ChoiISING.py @@ -18,7 +18,7 @@ def setUpClass(cls): def test_get_requirements(self): requirements = self.choi_ising_instance.get_requirements() self.assertIn({"name": "numpy", "version": "1.26.4"}, requirements) - self.assertIn({"name": "dimod", "version": "0.12.17"}, requirements) + self.assertIn({"name": "dimod", "version": "0.12.18"}, requirements) def test_get_parameter_options(self): options = self.choi_ising_instance.get_parameter_options() diff --git a/tests/modules/applications/optimization/SAT/mappings/test_DinneenISING.py b/tests/modules/applications/optimization/SAT/mappings/test_DinneenISING.py index 07b89be0..2d12fe66 100644 --- a/tests/modules/applications/optimization/SAT/mappings/test_DinneenISING.py +++ b/tests/modules/applications/optimization/SAT/mappings/test_DinneenISING.py @@ -20,7 +20,7 @@ def test_get_requirements(self): requirements = self.dinneen_ising_instance.get_requirements() self.assertIn({"name": "nnf", "version": "0.4.1"}, requirements) self.assertIn({"name": "numpy", "version": "1.26.4"}, requirements) - self.assertIn({"name": "dimod", "version": "0.12.17"}, requirements) + self.assertIn({"name": "dimod", "version": "0.12.18"}, requirements) def test_get_parameter_options(self): options = self.dinneen_ising_instance.get_parameter_options() diff --git a/tests/modules/applications/optimization/TSP/mappings/test_ISING.py b/tests/modules/applications/optimization/TSP/mappings/test_ISING.py index ea638fc2..4046272c 100644 --- a/tests/modules/applications/optimization/TSP/mappings/test_ISING.py +++ b/tests/modules/applications/optimization/TSP/mappings/test_ISING.py @@ -19,12 +19,12 @@ def setUpClass(cls): def test_get_requirements(self): requirements = self.ising_instance.get_requirements() expected_requirements = [ - {"name": "networkx", "version": "3.2.1"}, + {"name": "networkx", "version": "3.4.2"}, {"name": "numpy", "version": "1.26.4"}, - {"name": "dimod", "version": "0.12.17"}, + {"name": "dimod", "version": "0.12.18"}, {"name": "more-itertools", "version": "10.5.0"}, {"name": "qiskit-optimization", "version": "0.6.1"}, - {"name": "pyqubo", "version": "1.4.0"}, + {"name": "pyqubo", "version": "1.5.0"}, ] for req in expected_requirements: self.assertIn(req, requirements) diff --git a/tests/modules/applications/optimization/TSP/mappings/test_QUBO.py b/tests/modules/applications/optimization/TSP/mappings/test_QUBO.py index 336f40c3..419e7cd1 100644 --- a/tests/modules/applications/optimization/TSP/mappings/test_QUBO.py +++ b/tests/modules/applications/optimization/TSP/mappings/test_QUBO.py @@ -18,7 +18,7 @@ def setUpClass(cls): def test_get_requirements(self): requirements = self.qubo_instance.get_requirements() expected_requirements = [ - {"name": "networkx", "version": "3.2.1"}, + {"name": "networkx", "version": "3.4.2"}, {"name": "dwave_networkx", "version": "0.8.15"}, ] for req in expected_requirements: diff --git a/tests/modules/applications/optimization/TSP/test_TSP.py b/tests/modules/applications/optimization/TSP/test_TSP.py index 8697060a..d6906a0b 100644 --- a/tests/modules/applications/optimization/TSP/test_TSP.py +++ b/tests/modules/applications/optimization/TSP/test_TSP.py @@ -22,7 +22,7 @@ def tearDownClass(cls): def test_get_requirements(self): requirements = self.tsp_instance.get_requirements() - self.assertIn({"name": "networkx", "version": "3.2.1"}, requirements) + self.assertIn({"name": "networkx", "version": "3.4.2"}, requirements) self.assertIn({"name": "numpy", "version": "1.26.4"}, requirements) def test_get_default_submodule(self): diff --git a/tests/modules/applications/qml/generative_modeling/mappings/test_CustomQiskitNoisyBackend.py b/tests/modules/applications/qml/generative_modeling/mappings/test_CustomQiskitNoisyBackend.py index 19395f6e..2b1ed57e 100644 --- a/tests/modules/applications/qml/generative_modeling/mappings/test_CustomQiskitNoisyBackend.py +++ b/tests/modules/applications/qml/generative_modeling/mappings/test_CustomQiskitNoisyBackend.py @@ -23,8 +23,8 @@ def test_initialization(self): def test_get_requirements(self): requirements = self.backend_instance.get_requirements() expected_requirements = [ - {"name": "qiskit", "version": "1.1.0"}, - {"name": "qiskit_aer", "version": "0.15.0"}, + {"name": "qiskit", "version": "1.3.0"}, + {"name": "qiskit_aer", "version": "0.15.1"}, {"name": "numpy", "version": "1.26.4"} ] self.assertEqual(requirements, expected_requirements) diff --git a/tests/modules/applications/qml/generative_modeling/mappings/test_LibraryPennylane.py b/tests/modules/applications/qml/generative_modeling/mappings/test_LibraryPennylane.py index 0e301d48..65c181ad 100644 --- a/tests/modules/applications/qml/generative_modeling/mappings/test_LibraryPennylane.py +++ b/tests/modules/applications/qml/generative_modeling/mappings/test_LibraryPennylane.py @@ -21,11 +21,11 @@ def test_initialization(self): def test_get_requirements(self): requirements = self.library_instance.get_requirements() expected_requirements = [ - {"name": "pennylane", "version": "0.37.0"}, - {"name": "pennylane-lightning", "version": "0.38.0"}, + {"name": "pennylane", "version": "0.39.0"}, + {"name": "pennylane-lightning", "version": "0.39.0"}, {"name": "numpy", "version": "1.26.4"}, - {"name": "jax", "version": "0.4.30"}, - {"name": "jaxlib", "version": "0.4.30"} + {"name": "jax", "version": "0.4.35"}, + {"name": "jaxlib", "version": "0.4.35"} ] self.assertEqual(requirements, expected_requirements) @@ -86,11 +86,6 @@ def test_select_backend(self): self.assertEqual(backend.name, "lightning.qubit") self.assertEqual(len(backend.wires), 3) - # Test default.qubit.jax - backend = self.library_instance.select_backend("default.qubit.jax", 4) - self.assertEqual(backend.name, "Default qubit (jax) PennyLane plugin") - self.assertEqual(len(backend.wires), 4) - # Test invalid backend with self.assertRaises(NotImplementedError): self.library_instance.select_backend("invalid.backend", 2) diff --git a/tests/modules/applications/qml/generative_modeling/mappings/test_LibraryQiskit.py b/tests/modules/applications/qml/generative_modeling/mappings/test_LibraryQiskit.py index 2746f4a9..afafe1d1 100644 --- a/tests/modules/applications/qml/generative_modeling/mappings/test_LibraryQiskit.py +++ b/tests/modules/applications/qml/generative_modeling/mappings/test_LibraryQiskit.py @@ -23,7 +23,7 @@ def test_initialization(self): def test_get_requirements(self): requirements = self.library_instance.get_requirements() expected_requirements = [ - {"name": "qiskit", "version": "1.1.0"}, + {"name": "qiskit", "version": "1.3.0"}, {"name": "numpy", "version": "1.26.4"} ] self.assertEqual(requirements, expected_requirements) diff --git a/tests/modules/applications/qml/generative_modeling/mappings/test_PresetQiskitNoisyBackend.py b/tests/modules/applications/qml/generative_modeling/mappings/test_PresetQiskitNoisyBackend.py index 0ef31b21..841f0aec 100644 --- a/tests/modules/applications/qml/generative_modeling/mappings/test_PresetQiskitNoisyBackend.py +++ b/tests/modules/applications/qml/generative_modeling/mappings/test_PresetQiskitNoisyBackend.py @@ -23,9 +23,9 @@ def test_initialization(self): def test_get_requirements(self): requirements = self.backend_instance.get_requirements() expected_requirements = [ - {"name": "qiskit", "version": "1.1.0"}, - {"name": "qiskit_ibm_runtime", "version": "0.29.0"}, - {"name": "qiskit_aer", "version": "0.15.0"}, + {"name": "qiskit", "version": "1.3.0"}, + {"name": "qiskit_ibm_runtime", "version": "0.33.2"}, + {"name": "qiskit_aer", "version": "0.15.1"}, {"name": "numpy", "version": "1.26.4"} ] self.assertEqual(requirements, expected_requirements) @@ -226,13 +226,28 @@ def test_get_FakeBackend(self, mock_provider, mock_aer_get_backend, mock_simulat mock_backend = MagicMock() mock_backend.num_qubits = 5 mock_backend.name = "fake_backend_name" - mock_provider.return_value.get_backend.return_value = mock_backend + mock_backend.coupling_map = [[0, 1], [1, 2]] + + # Configure the mock provider + mock_provider.return_value.backend.return_value = mock_backend + mock_provider.return_value._backends = [mock_backend] + + # Mock other components mock_noise_model.return_value = MagicMock() + mock_simulator_from_backend.return_value = MagicMock() mock_aer_get_backend.return_value = MagicMock() with self.subTest("Retrieve backend successfully"): backend = self.backend_instance.get_FakeBackend("fake_backend_name", 4) - mock_provider.return_value.get_backend.assert_called_once_with("fake_backend_name") + + # Assertions + mock_provider.return_value.backend.assert_called_once_with(name="fake_backend_name") mock_noise_model.assert_called_once_with(mock_backend) mock_simulator_from_backend.assert_called_once_with(mock_backend) self.assertEqual(backend, mock_simulator_from_backend.return_value) + + with self.subTest("Fallback to AerSimulator"): + # Test fallback case when num_qubits exceeds backend capacity + backend = self.backend_instance.get_FakeBackend("fake_backend_name", 6) + mock_aer_get_backend.assert_called_once_with("aer_simulator") + self.assertEqual(backend, mock_aer_get_backend.return_value) diff --git a/tests/modules/applications/qml/generative_modeling/mappings/test_circuit.pkl b/tests/modules/applications/qml/generative_modeling/mappings/test_circuit.pkl index 569a9001c830d0f475dbbd606c7ce9356c4a04aa..3f4b7391850da9cac62965a87f7f707d351c82d1 100644 GIT binary patch delta 943 zcmZ`&TSydP6rP!N*EJ9?mAa6)wrsnDi?&{fwU=xI7lwu~x;&`Mzw6i;8eQ9&0e#ri zU{~6HifvA5ff4i+Jw&}&AXLz!2n9iOp@$&BlAzZj`uC=0G!HZX9M1QB=lkZ&%j(5i z`%J}+dS}iKLeHUGV#)d4`}^10;9{TE&Ihe5-_}bVQFVMonM8@BRneq!PSp)1iO@*x zQ6M^C)_LYx*K_66%DkDu80-^gQBI*BTC5!3Ivo@dS|uL#LnC;yPH}MI-iyoc8uG1* zfiXhuamK0R5K{LARX?v9?Qu03H}g-8=(-vw+NLP23zusH-w!>|Cvigv z9TJy8lEGPo5G(P85??Br*0^w_KHnTtWXaLbl`iX%(CexiHOJ#dBBAL>DII8 zQ=j!sI1m7&_DDZ56jn;(0Ly1YOrgv^kT`(QoJMgjuQ?2)2xyx`>Ik3x3z6840B@#@ zvDSr0HrwhGYthzHySn#-cl~qCoi9fpcELuo&04W_yIefSRdeh%Q=K2#R+^hZnkpjv zFe4DH>lJ&ZQ!-qnLUIaWhHccW#K9#NK!(Lm8GjJr3Ol9{u4d~dKE8VMXFt8GGOCfOglV8`X^zgOk~sU@#uS5$5Q8vNW~}`WD0W{s delta 662 zcmZ`%O=uHQ5Z>Kn^Mj-YtR!MFDP`_VTMb;*DC zMWCgEa$=-ac^*>tjeZ{7-2Frh%jvH9V&moMxxK%>Gz#LKdORMNB`G42T8c;{N?VcC#Qs1woCQd&5zdVG>Q9NAf$qk6 z9W+m|>IfGIuC7UNaT?(=?cpi4G{O{FiwIYn(MI*`$6MyJmX+xmNUVSAwN02g^S^0n zTp`pnia}0?ybfH4Stz(B99}_!u#8ZFh18mYrm%yP-BDwnS?n4owhf1wC5~RNsH*YC z&ZBGePk4MgDsYEsI!q^}&H6ap@b>)89OJXx;^iE-aXX#%%4*UoG81eNR8Njd$KldZ z=Xl-5+tkH|@jKMEOmOTBEuVx5>g<5+w$J75`UllU-3uBeR