diff --git a/.settings/module_db.json b/.settings/module_db.json index b268c0f1..d40604b5 100644 --- a/.settings/module_db.json +++ b/.settings/module_db.json @@ -1,3571 +1,3571 @@ -{ - "build_number": 14, - "build_date": "14-10-2024 14:33:46", - "git_revision_number": "81265cfafef1726474dcfc1ed8c6ae04513236dc", - "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/Aria-1", - "class": "Ionq", - "args": { - "device_name": "ionQ", - "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Aria-1" - }, - "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/Ankaa-2", - "class": "Rigetti", - "args": { - "device_name": "Rigetti Ankaa-2", - "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Ankaa-2" - }, - "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/Aria-1", - "class": "Ionq", - "args": { - "device_name": "ionq", - "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Aria-1" - }, - "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/Ankaa-2", - "class": "Rigetti", - "args": { - "device_name": "Rigetti", - "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Ankaa-2" - }, - "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/Aria-1", - "class": "Ionq", - "args": { - "device_name": "ionQ", - "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Aria-1" - }, - "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/Ankaa-2", - "class": "Rigetti", - "args": { - "device_name": "Rigetti Ankaa-2", - "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Ankaa-2" - }, - "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/Aria-1", - "class": "Ionq", - "args": { - "device_name": "ionq", - "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Aria-1" - }, - "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/Ankaa-2", - "class": "Rigetti", - "args": { - "device_name": "Rigetti", - "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Ankaa-2" - }, - "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/Aria-1", - "class": "Ionq", - "args": { - "device_name": "ionQ", - "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Aria-1" - }, - "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/Ankaa-2", - "class": "Rigetti", - "args": { - "device_name": "Rigetti Ankaa-2", - "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Ankaa-2" - }, - "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/Aria-1", - "class": "Ionq", - "args": { - "device_name": "ionq", - "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Aria-1" - }, - "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/Ankaa-2", - "class": "Rigetti", - "args": { - "device_name": "Rigetti", - "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Ankaa-2" - }, - "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/Aria-1", - "class": "Ionq", - "args": { - "device_name": "ionQ", - "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Aria-1" - }, - "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/Ankaa-2", - "class": "Rigetti", - "args": { - "device_name": "Rigetti Ankaa-2", - "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Ankaa-2" - }, - "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/Aria-1", - "class": "Ionq", - "args": { - "device_name": "ionq", - "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Aria-1" - }, - "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/Ankaa-2", - "class": "Rigetti", - "args": { - "device_name": "Rigetti", - "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Ankaa-2" - }, - "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": "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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.training.Inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - } - ] - }, - { - "name": "CircuitCardinality", - "class": "CircuitCardinality", - "args": {}, - "module": "modules.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.training.Inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - } - ] - } - ] - } - ], - "requirements": [] - } - ] +{ + "build_number": 15, + "build_date": "28-10-2024 09:38:32", + "git_revision_number": "62a87b5b3c81a449424964c1672d9b32bc678c1a", + "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": "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": [] + } + ] } \ No newline at end of file diff --git a/src/modules/applications/qml/Circuit.py b/src/modules/applications/qml/Circuit.py new file mode 100644 index 00000000..0a7b4c3f --- /dev/null +++ b/src/modules/applications/qml/Circuit.py @@ -0,0 +1,33 @@ +# Copyright 2021 The QUARK Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from abc import ABC, abstractmethod +from modules.Core import Core + + +class Circuit(Core, ABC): + """ + This module is abstract base class for the library-agnostic gate sequence, that define a quantum circuit. + """ + + @abstractmethod + def generate_gate_sequence(self, input_data: dict, config: any) -> dict: + """ + Generates the library agnostic gate sequence, a well-defined definition of the quantum circuit. + + :param input_data: Input data required to generate the gate sequence + :param config: Configuration for the gate sequence + :return: Generated gate sequence + """ + pass diff --git a/src/modules/applications/qml/DataHandler.py b/src/modules/applications/qml/DataHandler.py new file mode 100644 index 00000000..da318932 --- /dev/null +++ b/src/modules/applications/qml/DataHandler.py @@ -0,0 +1,69 @@ +# Copyright 2021 The QUARK Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from abc import ABC, abstractmethod + +import pandas as pd +from tensorboard.backend.event_processing.event_accumulator import EventAccumulator + + +class DataHandler(ABC): + """ + Abstract base class for DataHandler. This class defines the + necessary methods that both supervised and unsupervised QML applciations + must implement. + """ + + @abstractmethod + def data_load(self, gen_mod: dict, config: dict) -> tuple[any, float]: + """ + Helps to ensure that the model can effectively learn the underlying + patterns and structure of the data, and produce high-quality outputs. + + :param gen_mod: Dictionary with collected information of the previous modules + :param config: Config specifying the parameters of the data handler + :return: Mapped problem and the time it took to create the mapping + """ + pass + + @abstractmethod + def evaluate(self, solution: any) -> tuple[any, float]: + """ + Computes the best loss values. + + :param solution: Solution data + :return: Evaluation data and the time it took to create it + """ + pass + + @staticmethod + def tb_to_pd(logdir: str, rep: str) -> None: + """ + Converts TensorBoard event files in the specified log directory + into a pandas DataFrame and saves it as a pickle file. + + :param logdir: Path to the log directory containing TensorBoard event files + :param rep: Repetition counter + """ + event_acc = EventAccumulator(logdir) + event_acc.Reload() + tags = event_acc.Tags() + data = [] + tag_data = {} + for tag in tags['scalars']: + data = event_acc.Scalars(tag) + tag_values = [d.value for d in data] + tag_data[tag] = tag_values + data = pd.DataFrame(tag_data, index=[d.step for d in data]) + data.to_pickle(f"{logdir}/data_{rep}.pkl") diff --git a/src/modules/applications/qml/Model.py b/src/modules/applications/qml/Model.py new file mode 100644 index 00000000..f0f11f18 --- /dev/null +++ b/src/modules/applications/qml/Model.py @@ -0,0 +1,59 @@ +# Copyright 2021 The QUARK Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and + +from abc import ABC, abstractmethod + + +class Model(ABC): + """ + Abstract base class for any quantum model. This class defines the necessary methods + that models like 'LibraryGenerative' must implement. + """ + + @abstractmethod + def sequence_to_circuit(self, input_data: dict) -> dict: + """ + Abstract method to convert a sequence into a quantum circuit. + + :param input_data: Input data representing the gate sequence + :return: A dictionary representing the quantum circuit + """ + pass + + @staticmethod + @abstractmethod + def get_execute_circuit(circuit: any, backend: any, config: str, config_dict: dict) -> tuple[any, any]: + """ + This method combines the circuit implementation and the selected backend and returns a function that will be + called during training. + + :param circuit: Implementation of the quantum circuit + :param backend: Configured qiskit backend + :param config: Name of a backend + :param config_dict: Dictionary including the number of shots + :return: Tuple that contains a method that executes the quantum circuit for a given set of parameters and the + transpiled circuit + """ + pass + + @staticmethod + @abstractmethod + def select_backend(config: str, n_qubits: int) -> any: + """ + This method configures the backend. + + :param config: Name of a backend + :param n_qubits: Number of qubits + :return: Configured backend + """ + pass diff --git a/src/modules/applications/qml/Training.py b/src/modules/applications/qml/Training.py new file mode 100644 index 00000000..17ea21de --- /dev/null +++ b/src/modules/applications/qml/Training.py @@ -0,0 +1,33 @@ +# Copyright 2021 The QUARK Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from abc import ABC, abstractmethod + + +class Training(ABC): + """ + Abstract base class for training QML models. + """ + + @abstractmethod + def start_training(self, input_data: dict, config: any, **kwargs: dict) -> dict: + """ + This function starts the training of QML model or deploys a pretrained model. + + :param input_data: A representation of the quantum machine learning model that will be trained + :param config: Config specifying the parameters of the training (dict-like Config type defined in children) + :param kwargs: Optional additional settings + :return: Solution, the time it took to compute it and some optional additional information + """ + pass diff --git a/src/modules/circuits/CircuitCardinality.py b/src/modules/applications/qml/generative_modeling/circuits/CircuitCardinality.py similarity index 97% rename from src/modules/circuits/CircuitCardinality.py rename to src/modules/applications/qml/generative_modeling/circuits/CircuitCardinality.py index 84a05243..06c73c3d 100644 --- a/src/modules/circuits/CircuitCardinality.py +++ b/src/modules/applications/qml/generative_modeling/circuits/CircuitCardinality.py @@ -14,14 +14,14 @@ from typing import Union, TypedDict -from modules.circuits.Circuit import Circuit +from modules.applications.qml.generative_modeling.circuits.CircuitGenerative import CircuitGenerative from modules.applications.qml.generative_modeling.mappings.LibraryQiskit import LibraryQiskit from modules.applications.qml.generative_modeling.mappings.LibraryPennylane import LibraryPennylane from modules.applications.qml.generative_modeling.mappings.PresetQiskitNoisyBackend import PresetQiskitNoisyBackend from modules.applications.qml.generative_modeling.mappings.CustomQiskitNoisyBackend import CustomQiskitNoisyBackend -class CircuitCardinality(Circuit): +class CircuitCardinality(CircuitGenerative): """ This class generates a library-agnostic gate sequence, i.e. a list containing information about the gates and the wires they act on. diff --git a/src/modules/circuits/CircuitCopula.py b/src/modules/applications/qml/generative_modeling/circuits/CircuitCopula.py similarity index 97% rename from src/modules/circuits/CircuitCopula.py rename to src/modules/applications/qml/generative_modeling/circuits/CircuitCopula.py index 3ebbdbb7..7d943831 100644 --- a/src/modules/circuits/CircuitCopula.py +++ b/src/modules/applications/qml/generative_modeling/circuits/CircuitCopula.py @@ -16,14 +16,14 @@ from itertools import combinations from scipy.special import binom -from modules.circuits.Circuit import Circuit +from modules.applications.qml.generative_modeling.circuits.CircuitGenerative import CircuitGenerative from modules.applications.qml.generative_modeling.mappings.LibraryQiskit import LibraryQiskit from modules.applications.qml.generative_modeling.mappings.LibraryPennylane import LibraryPennylane from modules.applications.qml.generative_modeling.mappings.PresetQiskitNoisyBackend import PresetQiskitNoisyBackend from modules.applications.qml.generative_modeling.mappings.CustomQiskitNoisyBackend import CustomQiskitNoisyBackend -class CircuitCopula(Circuit): +class CircuitCopula(CircuitGenerative): """ This class generates a library-agnostic gate sequence, i.e. a list containing information about the gates and the wires they act on. The marginal distributions generated by the copula diff --git a/src/modules/circuits/Circuit.py b/src/modules/applications/qml/generative_modeling/circuits/CircuitGenerative.py similarity index 84% rename from src/modules/circuits/Circuit.py rename to src/modules/applications/qml/generative_modeling/circuits/CircuitGenerative.py index c3bd1540..f6824ffa 100644 --- a/src/modules/circuits/Circuit.py +++ b/src/modules/applications/qml/generative_modeling/circuits/CircuitGenerative.py @@ -12,12 +12,14 @@ # See the License for the specific language governing permissions and # limitations under the License. -from abc import ABC, abstractmethod +from abc import ABC from modules.Core import Core from utils import start_time_measurement, end_time_measurement +from modules.applications.qml.Circuit import Circuit -class Circuit(Core, ABC): + +class CircuitGenerative(Circuit, Core, ABC): """ This module is abstract base class for the library-agnostic gate sequence, that define a quantum circuit. """ @@ -31,17 +33,6 @@ def __init__(self, name: str): super().__init__() self.architecture_name = name - @abstractmethod - def generate_gate_sequence(self, input_data: dict, config: any) -> dict: - """ - Generates the library agnostic gate sequence, a well-defined definition of the quantum circuit. - - :param input_data: Input data required to generate the gate sequence - :param config: Configuration for the gate sequence - :return: Generated gate sequence - """ - pass - def preprocess(self, input_data: dict, config: dict, **kwargs) -> tuple[dict, float]: """ Library-agnostic implementation of the gate sequence, that will be mapped to backend such as Qiskit in the diff --git a/src/modules/circuits/CircuitStandard.py b/src/modules/applications/qml/generative_modeling/circuits/CircuitStandard.py similarity index 97% rename from src/modules/circuits/CircuitStandard.py rename to src/modules/applications/qml/generative_modeling/circuits/CircuitStandard.py index a5ea2455..6d419de9 100644 --- a/src/modules/circuits/CircuitStandard.py +++ b/src/modules/applications/qml/generative_modeling/circuits/CircuitStandard.py @@ -14,14 +14,14 @@ from typing import Union, TypedDict -from modules.circuits.Circuit import Circuit +from modules.applications.qml.generative_modeling.circuits.CircuitGenerative import CircuitGenerative from modules.applications.qml.generative_modeling.mappings.LibraryQiskit import LibraryQiskit from modules.applications.qml.generative_modeling.mappings.LibraryPennylane import LibraryPennylane from modules.applications.qml.generative_modeling.mappings.PresetQiskitNoisyBackend import PresetQiskitNoisyBackend from modules.applications.qml.generative_modeling.mappings.CustomQiskitNoisyBackend import CustomQiskitNoisyBackend -class CircuitStandard(Circuit): +class CircuitStandard(CircuitGenerative): """ This class generates a library-agnostic gate sequence, i.e. a list containing information about the gates and the wires they act on. diff --git a/src/modules/circuits/__init__.py b/src/modules/applications/qml/generative_modeling/circuits/__init__.py similarity index 100% rename from src/modules/circuits/__init__.py rename to src/modules/applications/qml/generative_modeling/circuits/__init__.py diff --git a/src/modules/applications/qml/generative_modeling/data/data_handler/ContinuousData.py b/src/modules/applications/qml/generative_modeling/data/data_handler/ContinuousData.py index 37b9fb1f..e463b750 100644 --- a/src/modules/applications/qml/generative_modeling/data/data_handler/ContinuousData.py +++ b/src/modules/applications/qml/generative_modeling/data/data_handler/ContinuousData.py @@ -21,10 +21,10 @@ from utils import start_time_measurement, end_time_measurement from modules.applications.qml.generative_modeling.transformations.MinMax import MinMax from modules.applications.qml.generative_modeling.transformations.PIT import PIT -from modules.applications.qml.generative_modeling.data.data_handler.DataHandler import DataHandler +from modules.applications.qml.generative_modeling.data.data_handler.DataHandlerGenerative import DataHandlerGenerative -class ContinuousData(DataHandler): +class ContinuousData(DataHandlerGenerative): """ A data handler for continuous datasets. This class loads a dataset from a specified path and provides methods for data transformation and evaluation. diff --git a/src/modules/applications/qml/generative_modeling/data/data_handler/DataHandler.py b/src/modules/applications/qml/generative_modeling/data/data_handler/DataHandlerGenerative.py similarity index 79% rename from src/modules/applications/qml/generative_modeling/data/data_handler/DataHandler.py rename to src/modules/applications/qml/generative_modeling/data/data_handler/DataHandlerGenerative.py index 5120ed03..ade83a61 100644 --- a/src/modules/applications/qml/generative_modeling/data/data_handler/DataHandler.py +++ b/src/modules/applications/qml/generative_modeling/data/data_handler/DataHandlerGenerative.py @@ -14,18 +14,17 @@ import pickle import os -from abc import ABC, abstractmethod +from abc import ABC from qiskit import qpy import numpy as np -import pandas as pd -from tensorboard.backend.event_processing.event_accumulator import EventAccumulator from modules.Core import Core +from modules.applications.qml.DataHandler import DataHandler from utils import start_time_measurement, end_time_measurement -class DataHandler(Core, ABC): +class DataHandlerGenerative(Core, DataHandler, ABC): """ The task of the DataHandler module is to translate the application’s data and problem specification into preprocessed format. @@ -103,7 +102,7 @@ def postprocess(self, input_data: dict, config: dict, **kwargs) -> tuple[dict, f # Save metrics per iteration if "inference" not in input_data.keys(): - DataHandler.tb_to_pd(logdir=store_dir_iter, rep=str(kwargs['rep_count'])) + self.tb_to_pd(logdir=store_dir_iter, rep=str(kwargs['rep_count'])) self.metrics.add_metric_batch( {"metrics_pandas": os.path.relpath(f"{store_dir_iter}/data.pkl", current_directory)} ) @@ -155,18 +154,6 @@ def postprocess(self, input_data: dict, config: dict, **kwargs) -> tuple[dict, f return input_data, end_time_measurement(start) - @abstractmethod - def data_load(self, gen_mod: dict, config: dict) -> tuple[any, float]: - """ - Helps to ensure that the model can effectively learn the underlying - patterns and structure of the data, and produce high-quality outputs. - - :param gen_mod: Dictionary with collected information of the previous modules - :param config: Config specifying the parameters of the data handler - :return: Mapped problem and the time it took to create the mapping - """ - pass - def generalization(self) -> tuple[dict, float]: """ Computes generalization metrics. @@ -177,34 +164,3 @@ def generalization(self) -> tuple[dict, float]: metrics = {} # Replace with actual metric calculations time_taken = 0.0 # Replace with actual time calculation return metrics, time_taken - - @abstractmethod - def evaluate(self, solution: any) -> tuple[any, float]: - """ - Computes the best loss values. - - :param solution: Solution data - :return: Evaluation data and the time it took to create it - """ - return None, 0.0 - - @staticmethod - def tb_to_pd(logdir: str, rep: str) -> None: - """ - Converts TensorBoard event files in the specified log directory - into a pandas DataFrame and saves it as a pickle file. - - :param logdir: Path to the log directory containing TensorBoard event files - :param rep: Repetition counter - """ - event_acc = EventAccumulator(logdir) - event_acc.Reload() - tags = event_acc.Tags() - data = [] - tag_data = {} - for tag in tags['scalars']: - data = event_acc.Scalars(tag) - tag_values = [d.value for d in data] - tag_data[tag] = tag_values - data = pd.DataFrame(tag_data, index=[d.step for d in data]) - data.to_pickle(f"{logdir}/data_{rep}.pkl") diff --git a/src/modules/applications/qml/generative_modeling/data/data_handler/DiscreteData.py b/src/modules/applications/qml/generative_modeling/data/data_handler/DiscreteData.py index a1c75267..cf7fdebf 100644 --- a/src/modules/applications/qml/generative_modeling/data/data_handler/DiscreteData.py +++ b/src/modules/applications/qml/generative_modeling/data/data_handler/DiscreteData.py @@ -19,13 +19,13 @@ import numpy as np -from modules.circuits.CircuitCardinality import CircuitCardinality -from modules.applications.qml.generative_modeling.data.data_handler.DataHandler import DataHandler -from modules.applications.qml.generative_modeling.data.data_handler.MetricsGeneralization import MetricsGeneralization +from modules.applications.qml.generative_modeling.circuits.CircuitCardinality import CircuitCardinality +from modules.applications.qml.generative_modeling.data.data_handler.DataHandlerGenerative import DataHandlerGenerative +from modules.applications.qml.generative_modeling.metrics.MetricsGeneralization import MetricsGeneralization from utils import start_time_measurement, end_time_measurement -class DiscreteData(DataHandler): +class DiscreteData(DataHandlerGenerative): """ A data handler for discrete datasets with cardinality constraints. This class creates a dataset with a cardinality constraint and provides diff --git a/src/modules/applications/qml/generative_modeling/mappings/CustomQiskitNoisyBackend.py b/src/modules/applications/qml/generative_modeling/mappings/CustomQiskitNoisyBackend.py index c937bbe0..0b5e225f 100644 --- a/src/modules/applications/qml/generative_modeling/mappings/CustomQiskitNoisyBackend.py +++ b/src/modules/applications/qml/generative_modeling/mappings/CustomQiskitNoisyBackend.py @@ -26,9 +26,9 @@ from qiskit_aer import Aer, AerSimulator, noise from qiskit_aer.noise import NoiseModel -from modules.training.QCBM import QCBM -from modules.training.Inference import Inference -from modules.applications.qml.generative_modeling.mappings.Library import Library +from modules.applications.qml.generative_modeling.training.QCBM import QCBM +from modules.applications.qml.generative_modeling.training.Inference import Inference +from modules.applications.qml.generative_modeling.mappings.LibraryGenerative import LibraryGenerative logging.getLogger("NoisyQiskit").setLevel(logging.WARNING) @@ -37,7 +37,7 @@ def split_string(s): return s.split(' ', 1)[0] -class CustomQiskitNoisyBackend(Library): +class CustomQiskitNoisyBackend(LibraryGenerative): """ This module maps a library-agnostic gate sequence to a qiskit circuit and creates an artificial noise model. """ diff --git a/src/modules/applications/qml/generative_modeling/mappings/Library.py b/src/modules/applications/qml/generative_modeling/mappings/LibraryGenerative.py similarity index 70% rename from src/modules/applications/qml/generative_modeling/mappings/Library.py rename to src/modules/applications/qml/generative_modeling/mappings/LibraryGenerative.py index 1882c3b9..d429f758 100644 --- a/src/modules/applications/qml/generative_modeling/mappings/Library.py +++ b/src/modules/applications/qml/generative_modeling/mappings/LibraryGenerative.py @@ -12,22 +12,26 @@ # See the License for the specific language governing permissions and # limitations under the License. -from abc import ABC, abstractmethod +from abc import ABC import logging from typing import TypedDict from utils import start_time_measurement, end_time_measurement from modules.Core import Core +from modules.applications.qml.Model import Model -class Library(Core, ABC): +class LibraryGenerative(Core, Model, ABC): """ This class is an abstract base class for mapping a library-agnostic gate sequence to a library such as Qiskit. + It provides no concrete implementations of abstract methods and is intended to be extended by specific libraries. """ def __init__(self, name: str): """ Constructor method. + + :param name: Name of the model """ self.name = name super().__init__() @@ -84,35 +88,3 @@ def postprocess(self, input_data: dict, config: dict, **kwargs) -> tuple[dict, f """ start = start_time_measurement() return input_data, end_time_measurement(start) - - @abstractmethod - def sequence_to_circuit(self, input_data: dict) -> dict: - pass - - @staticmethod - @abstractmethod - def get_execute_circuit(circuit: any, backend: any, config: str, config_dict: dict) -> tuple[any, any]: - """ - This method combines the circuit implementation and the selected backend and returns a function that will be - called during training. - - :param circuit: Implementation of the quantum circuit - :param backend: Configured backend - :param config: Name of the PennyLane device - :param config_dict: Dictionary including the number of shots - :return: Tuple that contains a method that executes the quantum circuit for a given set of parameters and the - transpiled circuit - """ - pass - - @staticmethod - @abstractmethod - def select_backend(config: str, n_qubits: int) -> any: - """ - This method configures the backend. - - :param config: Name of a backend - :param n_qubits: Number of qubits - :return: Configured backend - """ - return diff --git a/src/modules/applications/qml/generative_modeling/mappings/LibraryPennylane.py b/src/modules/applications/qml/generative_modeling/mappings/LibraryPennylane.py index 507b4751..c947774f 100644 --- a/src/modules/applications/qml/generative_modeling/mappings/LibraryPennylane.py +++ b/src/modules/applications/qml/generative_modeling/mappings/LibraryPennylane.py @@ -19,15 +19,15 @@ from jax import numpy as jnp import jax -from modules.applications.qml.generative_modeling.mappings.Library import Library -from modules.training.Inference import Inference -from modules.training.QGAN import QGAN -from modules.training.QCBM import QCBM +from modules.applications.qml.generative_modeling.mappings.LibraryGenerative import LibraryGenerative +from modules.applications.qml.generative_modeling.training.Inference import Inference +from modules.applications.qml.generative_modeling.training.QGAN import QGAN +from modules.applications.qml.generative_modeling.training.QCBM import QCBM jax.config.update("jax_enable_x64", True) -class LibraryPennylane(Library): +class LibraryPennylane(LibraryGenerative): def __init__(self): super().__init__("LibraryPennylane") @@ -183,8 +183,8 @@ def get_execute_circuit(circuit: callable, backend: qml.device, config: str, con that will be called during training. :param circuit: PennyLane implementation of the quantum circuit - :param backend: Configured PennyLane device - :param config: Name of the PennyLane device + :param backend: Configured qiskit backend + :param config: Name of a backend :param config_dict: Dictionary including the number of shots :return: Tuple that contains a method that executes the quantum circuit for a given set of parameters twice """ diff --git a/src/modules/applications/qml/generative_modeling/mappings/LibraryQiskit.py b/src/modules/applications/qml/generative_modeling/mappings/LibraryQiskit.py index 5bc47c6c..dbe7f903 100644 --- a/src/modules/applications/qml/generative_modeling/mappings/LibraryQiskit.py +++ b/src/modules/applications/qml/generative_modeling/mappings/LibraryQiskit.py @@ -21,15 +21,15 @@ from qiskit.providers import Backend from qiskit.quantum_info import Statevector -from modules.training.QCBM import QCBM -from modules.training.QGAN import QGAN -from modules.training.Inference import Inference -from modules.applications.qml.generative_modeling.mappings.Library import Library +from modules.applications.qml.generative_modeling.training.QCBM import QCBM +from modules.applications.qml.generative_modeling.training.QGAN import QGAN +from modules.applications.qml.generative_modeling.training.Inference import Inference +from modules.applications.qml.generative_modeling.mappings.LibraryGenerative import LibraryGenerative logging.getLogger("qiskit").setLevel(logging.WARNING) -class LibraryQiskit(Library): +class LibraryQiskit(LibraryGenerative): """ This module maps a library-agnostic gate sequence to a qiskit circuit. """ diff --git a/src/modules/applications/qml/generative_modeling/mappings/PresetQiskitNoisyBackend.py b/src/modules/applications/qml/generative_modeling/mappings/PresetQiskitNoisyBackend.py index 91972a22..f4d02407 100644 --- a/src/modules/applications/qml/generative_modeling/mappings/PresetQiskitNoisyBackend.py +++ b/src/modules/applications/qml/generative_modeling/mappings/PresetQiskitNoisyBackend.py @@ -24,14 +24,14 @@ from qiskit_aer import Aer, AerSimulator from qiskit_aer.noise import NoiseModel -from modules.training.QCBM import QCBM -from modules.training.Inference import Inference -from modules.applications.qml.generative_modeling.mappings.Library import Library +from modules.applications.qml.generative_modeling.training.QCBM import QCBM +from modules.applications.qml.generative_modeling.training.Inference import Inference +from modules.applications.qml.generative_modeling.mappings.LibraryGenerative import LibraryGenerative logging.getLogger("NoisyQiskit").setLevel(logging.WARNING) -class PresetQiskitNoisyBackend(Library): +class PresetQiskitNoisyBackend(LibraryGenerative): """ This module maps a library-agnostic gate sequence to a qiskit circuit. """ diff --git a/src/modules/applications/qml/generative_modeling/data/data_handler/MetricsGeneralization.py b/src/modules/applications/qml/generative_modeling/metrics/MetricsGeneralization.py similarity index 100% rename from src/modules/applications/qml/generative_modeling/data/data_handler/MetricsGeneralization.py rename to src/modules/applications/qml/generative_modeling/metrics/MetricsGeneralization.py diff --git a/src/modules/training/Inference.py b/src/modules/applications/qml/generative_modeling/training/Inference.py similarity index 96% rename from src/modules/training/Inference.py rename to src/modules/applications/qml/generative_modeling/training/Inference.py index 502677af..1330efbb 100644 --- a/src/modules/training/Inference.py +++ b/src/modules/applications/qml/generative_modeling/training/Inference.py @@ -14,10 +14,10 @@ from typing import TypedDict import numpy as np -from modules.training.Training import Training, Core, GPU +from modules.applications.qml.generative_modeling.training.TrainingGenerative import TrainingGenerative, Core, GPU -class Inference(Training): +class Inference(TrainingGenerative): """ This module executes a quantum circuit with parameters of a pretrained model. """ diff --git a/src/modules/training/QCBM.py b/src/modules/applications/qml/generative_modeling/training/QCBM.py similarity index 98% rename from src/modules/training/QCBM.py rename to src/modules/applications/qml/generative_modeling/training/QCBM.py index b610b1e7..301b3f4d 100644 --- a/src/modules/training/QCBM.py +++ b/src/modules/applications/qml/generative_modeling/training/QCBM.py @@ -20,14 +20,14 @@ from matplotlib import figure, axes import matplotlib.pyplot as plt -from modules.training.Training import Training, Core, GPU +from modules.applications.qml.generative_modeling.training.TrainingGenerative import TrainingGenerative, Core, GPU from utils_mpi import is_running_mpi, get_comm MPI = is_running_mpi() comm = get_comm() -class QCBM(Training): +class QCBM(TrainingGenerative): """ This module optimizes the parameters of quantum circuit using CMA-ES. This training method is referred to as quantum circuit born machine (QCBM). diff --git a/src/modules/training/QGAN.py b/src/modules/applications/qml/generative_modeling/training/QGAN.py similarity index 99% rename from src/modules/training/QGAN.py rename to src/modules/applications/qml/generative_modeling/training/QGAN.py index 5b0b080a..647fa91d 100644 --- a/src/modules/training/QGAN.py +++ b/src/modules/applications/qml/generative_modeling/training/QGAN.py @@ -23,14 +23,14 @@ import numpy as np import matplotlib.pyplot as plt -from modules.training.Training import Training, Core +from modules.applications.qml.generative_modeling.training.TrainingGenerative import TrainingGenerative, Core from utils_mpi import is_running_mpi, get_comm MPI = is_running_mpi() comm = get_comm() -class QGAN(Training): # pylint: disable=R0902 +class QGAN(TrainingGenerative): # pylint: disable=R0902 """ Class for QGAN """ diff --git a/src/modules/training/Training.py b/src/modules/applications/qml/generative_modeling/training/TrainingGenerative.py similarity index 90% rename from src/modules/training/Training.py rename to src/modules/applications/qml/generative_modeling/training/TrainingGenerative.py index f65567aa..bcd1d39b 100644 --- a/src/modules/training/Training.py +++ b/src/modules/applications/qml/generative_modeling/training/TrainingGenerative.py @@ -13,7 +13,7 @@ # limitations under the License. import logging -from abc import ABC, abstractmethod +from abc import ABC import time try: @@ -26,10 +26,11 @@ logging.info("CuPy not available, using vanilla numpy, data processing on CPU") from modules.Core import Core +from modules.applications.qml.Training import Training from utils import start_time_measurement, end_time_measurement -class Training(Core, ABC): +class TrainingGenerative(Core, Training, ABC): """ The Training module is the base class fot both finding (QCBM) and executing trained models (Inference). """ @@ -75,18 +76,6 @@ def postprocess(self, input_data: dict, config: dict, **kwargs) -> tuple[dict, f logging.info(f"Training finished in {postprocessing_time / 1000} s.") return training_results, postprocessing_time - @abstractmethod - def start_training(self, input_data: dict, config: any, **kwargs: dict) -> dict: - """ - This function starts the training of qml model or deploys a pretrained model. - - :param input_data: A representation of the quantum machine learning model that will be trained - :param config: Config specifying the parameters of the training (dict-like Config type defined in children) - :param kwargs: Optional additional settings - :return: Solution, the time it took to compute it and some optional additional information - """ - pass - def sample_from_pmf(self, pmf: np.ndarray, n_shots: int) -> np.ndarray: """ This function samples from the probability mass function generated by the quantum circuit. diff --git a/src/modules/training/__init__.py b/src/modules/applications/qml/generative_modeling/training/__init__.py similarity index 100% rename from src/modules/training/__init__.py rename to src/modules/applications/qml/generative_modeling/training/__init__.py diff --git a/src/modules/applications/qml/generative_modeling/transformations/MinMax.py b/src/modules/applications/qml/generative_modeling/transformations/MinMax.py index 729eaf2e..1b895f23 100644 --- a/src/modules/applications/qml/generative_modeling/transformations/MinMax.py +++ b/src/modules/applications/qml/generative_modeling/transformations/MinMax.py @@ -16,8 +16,8 @@ import numpy as np from modules.applications.qml.generative_modeling.transformations.Transformation import Transformation -from modules.circuits.CircuitStandard import CircuitStandard -from modules.circuits.CircuitCardinality import CircuitCardinality +from modules.applications.qml.generative_modeling.circuits.CircuitStandard import CircuitStandard +from modules.applications.qml.generative_modeling.circuits.CircuitCardinality import CircuitCardinality class MinMax(Transformation): # pylint: disable=R0902 diff --git a/src/modules/applications/qml/generative_modeling/transformations/PIT.py b/src/modules/applications/qml/generative_modeling/transformations/PIT.py index 959f430f..41532995 100644 --- a/src/modules/applications/qml/generative_modeling/transformations/PIT.py +++ b/src/modules/applications/qml/generative_modeling/transformations/PIT.py @@ -16,7 +16,7 @@ import pandas as pd from modules.applications.qml.generative_modeling.transformations.Transformation import Transformation -from modules.circuits.CircuitCopula import CircuitCopula +from modules.applications.qml.generative_modeling.circuits.CircuitCopula import CircuitCopula class PIT(Transformation): # pylint disable=R0902