diff --git a/.settings/module_db.json b/.settings/module_db.json index d1004fb96..4b8f32a92 100644 --- a/.settings/module_db.json +++ b/.settings/module_db.json @@ -1,4293 +1,4331 @@ -{ - "build_number": 22, - "build_date": "05-05-2025 15:07:28", - "git_revision_number": "4bc3e398493a935a3a9c0bb4efdbd95428c31dcd", - "modules": [ - { - "name": "PVC", - "class": "PVC", - "module": "modules.applications.optimization.pvc.pvc", - "submodules": [ - { - "name": "Ising", - "class": "Ising", - "args": {}, - "module": "modules.applications.optimization.pvc.mappings.ising", - "requirements": [ - { - "name": "networkx", - "version": "3.4.2" - }, - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "dimod", - "version": "0.12.18" - }, - { - "name": "networkx", - "version": "3.4.2" - } - ], - "submodules": [ - { - "name": "QAOA", - "class": "QAOA", - "args": {}, - "module": "modules.solvers.qaoa", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "scipy", - "version": "1.12.0" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "LocalSimulator", - "class": "LocalSimulator", - "args": { - "device_name": "LocalSimulator" - }, - "module": "modules.devices.braket.local_simulator", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", - "class": "SV1", - "args": { - "device_name": "SV1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" - }, - "module": "modules.devices.braket.sv1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", - "class": "TN1", - "args": { - "device_name": "TN1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" - }, - "module": "modules.devices.braket.tn1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", - "class": "Ionq", - "args": { - "device_name": "ionQ", - "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" - }, - "module": "modules.devices.braket.ionq", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", - "class": "Rigetti", - "args": { - "device_name": "Rigetti Aspen-9", - "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" - }, - "module": "modules.devices.braket.rigetti", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - } - ] - }, - { - "name": "PennylaneQAOA", - "class": "PennylaneQAOA", - "args": {}, - "module": "modules.solvers.pennylane_qaoa", - "requirements": [ - { - "name": "pennylane", - "version": "0.39.0" - }, - { - "name": "pennylane-lightning", - "version": "0.39.0" - }, - { - "name": "amazon-braket-pennylane-plugin", - "version": "1.30.2" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", - "class": "SV1", - "args": { - "device_name": "SV1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" - }, - "module": "modules.devices.braket.sv1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", - "class": "TN1", - "args": { - "device_name": "TN1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" - }, - "module": "modules.devices.braket.tn1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", - "class": "Ionq", - "args": { - "device_name": "ionq", - "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" - }, - "module": "modules.devices.braket.ionq", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", - "class": "Rigetti", - "args": { - "device_name": "Rigetti", - "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" - }, - "module": "modules.devices.braket.rigetti", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy", - "class": "OQC", - "args": { - "device_name": "OQC", - "arn": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy" - }, - "module": "modules.devices.braket.oqc", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "braket.local.qubit", - "class": "HelperClass", - "args": { - "device_name": "braket.local.qubit" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - }, - { - "name": "default.qubit", - "class": "HelperClass", - "args": { - "device_name": "default.qubit" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - }, - { - "name": "default.qubit.autograd", - "class": "HelperClass", - "args": { - "device_name": "default.qubit.autograd" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - }, - { - "name": "qulacs.simulator", - "class": "HelperClass", - "args": { - "device_name": "qulacs.simulator" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - }, - { - "name": "lightning.gpu", - "class": "HelperClass", - "args": { - "device_name": "lightning.gpu" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - }, - { - "name": "lightning.qubit", - "class": "HelperClass", - "args": { - "device_name": "lightning.qubit" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - } - ] - } - ] - }, - { - "name": "QUBO", - "class": "QUBO", - "args": {}, - "module": "modules.applications.optimization.pvc.mappings.qubo", - "requirements": [ - { - "name": "networkx", - "version": "3.4.2" - } - ], - "submodules": [ - { - "name": "Annealer", - "class": "Annealer", - "args": {}, - "module": "modules.solvers.annealer", - "requirements": [], - "submodules": [ - { - "name": "Simulated Annealer", - "class": "SimulatedAnnealingSampler", - "args": {}, - "module": "modules.devices.simulated_annealing_sampler", - "requirements": [ - { - "name": "dwave-samplers", - "version": "1.4.0" - } - ], - "submodules": [] - } - ] - } - ] - }, - { - "name": "GreedyClassicalPVC", - "class": "GreedyClassicalPVC", - "args": {}, - "module": "modules.solvers.greedy_classical_pvc", - "requirements": [ - { - "name": "networkx", - "version": "3.4.2" - } - ], - "submodules": [ - { - "name": "Local", - "class": "Local", - "args": {}, - "module": "modules.devices.local", - "requirements": [], - "submodules": [] - } - ] - }, - { - "name": "ReverseGreedyClassicalPVC", - "class": "ReverseGreedyClassicalPVC", - "args": {}, - "module": "modules.solvers.reverse_greedy_classical_pvc", - "requirements": [ - { - "name": "networkx", - "version": "3.4.2" - } - ], - "submodules": [ - { - "name": "Local", - "class": "Local", - "args": {}, - "module": "modules.devices.local", - "requirements": [], - "submodules": [] - } - ] - }, - { - "name": "RandomPVC", - "class": "RandomPVC", - "args": {}, - "module": "modules.solvers.random_classical_pvc", - "requirements": [ - { - "name": "networkx", - "version": "3.4.2" - } - ], - "submodules": [ - { - "name": "Local", - "class": "Local", - "args": {}, - "module": "modules.devices.local", - "requirements": [], - "submodules": [] - } - ] - } - ], - "requirements": [ - { - "name": "networkx", - "version": "3.4.2" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ] - }, - { - "name": "SAT", - "class": "SAT", - "module": "modules.applications.optimization.sat.sat", - "submodules": [ - { - "name": "QubovertQUBO", - "class": "QubovertQUBO", - "args": {}, - "module": "modules.applications.optimization.sat.mappings.qubovertqubo", - "requirements": [ - { - "name": "nnf", - "version": "0.4.1" - }, - { - "name": "qubovert", - "version": "1.2.5" - } - ], - "submodules": [ - { - "name": "Annealer", - "class": "Annealer", - "args": {}, - "module": "modules.solvers.annealer", - "requirements": [], - "submodules": [ - { - "name": "Simulated Annealer", - "class": "SimulatedAnnealingSampler", - "args": {}, - "module": "modules.devices.simulated_annealing_sampler", - "requirements": [ - { - "name": "dwave-samplers", - "version": "1.4.0" - } - ], - "submodules": [] - } - ] - } - ] - }, - { - "name": "Direct", - "class": "Direct", - "args": {}, - "module": "modules.applications.optimization.sat.mappings.direct", - "requirements": [ - { - "name": "nnf", - "version": "0.4.1" - }, - { - "name": "python-sat", - "version": "1.8.dev13" - } - ], - "submodules": [ - { - "name": "ClassicalSAT", - "class": "ClassicalSAT", - "args": {}, - "module": "modules.solvers.classical_sat", - "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.random_classical_sat", - "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.simulated_annealing_sampler", - "requirements": [ - { - "name": "dwave-samplers", - "version": "1.4.0" - } - ], - "submodules": [] - } - ] - } - ] - }, - { - "name": "DinneenQUBO", - "class": "DinneenQUBO", - "args": {}, - "module": "modules.applications.optimization.sat.mappings.dinneenqubo", - "requirements": [ - { - "name": "nnf", - "version": "0.4.1" - } - ], - "submodules": [ - { - "name": "Annealer", - "class": "Annealer", - "args": {}, - "module": "modules.solvers.annealer", - "requirements": [], - "submodules": [ - { - "name": "Simulated Annealer", - "class": "SimulatedAnnealingSampler", - "args": {}, - "module": "modules.devices.simulated_annealing_sampler", - "requirements": [ - { - "name": "dwave-samplers", - "version": "1.4.0" - } - ], - "submodules": [] - } - ] - } - ] - }, - { - "name": "ChoiIsing", - "class": "ChoiIsing", - "args": {}, - "module": "modules.applications.optimization.sat.mappings.choiising", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "dimod", - "version": "0.12.18" - }, - { - "name": "nnf", - "version": "0.4.1" - } - ], - "submodules": [ - { - "name": "QAOA", - "class": "QAOA", - "args": {}, - "module": "modules.solvers.qaoa", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "scipy", - "version": "1.12.0" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "LocalSimulator", - "class": "LocalSimulator", - "args": { - "device_name": "LocalSimulator" - }, - "module": "modules.devices.braket.local_simulator", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", - "class": "SV1", - "args": { - "device_name": "SV1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" - }, - "module": "modules.devices.braket.sv1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", - "class": "TN1", - "args": { - "device_name": "TN1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" - }, - "module": "modules.devices.braket.tn1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", - "class": "Ionq", - "args": { - "device_name": "ionQ", - "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" - }, - "module": "modules.devices.braket.ionq", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", - "class": "Rigetti", - "args": { - "device_name": "Rigetti Aspen-9", - "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" - }, - "module": "modules.devices.braket.rigetti", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - } - ] - }, - { - "name": "PennylaneQAOA", - "class": "PennylaneQAOA", - "args": {}, - "module": "modules.solvers.pennylane_qaoa", - "requirements": [ - { - "name": "pennylane", - "version": "0.39.0" - }, - { - "name": "pennylane-lightning", - "version": "0.39.0" - }, - { - "name": "amazon-braket-pennylane-plugin", - "version": "1.30.2" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", - "class": "SV1", - "args": { - "device_name": "SV1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" - }, - "module": "modules.devices.braket.sv1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", - "class": "TN1", - "args": { - "device_name": "TN1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" - }, - "module": "modules.devices.braket.tn1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", - "class": "Ionq", - "args": { - "device_name": "ionq", - "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" - }, - "module": "modules.devices.braket.ionq", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", - "class": "Rigetti", - "args": { - "device_name": "Rigetti", - "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" - }, - "module": "modules.devices.braket.rigetti", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy", - "class": "OQC", - "args": { - "device_name": "OQC", - "arn": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy" - }, - "module": "modules.devices.braket.oqc", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "braket.local.qubit", - "class": "HelperClass", - "args": { - "device_name": "braket.local.qubit" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - }, - { - "name": "default.qubit", - "class": "HelperClass", - "args": { - "device_name": "default.qubit" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - }, - { - "name": "default.qubit.autograd", - "class": "HelperClass", - "args": { - "device_name": "default.qubit.autograd" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - }, - { - "name": "qulacs.simulator", - "class": "HelperClass", - "args": { - "device_name": "qulacs.simulator" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - }, - { - "name": "lightning.gpu", - "class": "HelperClass", - "args": { - "device_name": "lightning.gpu" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - }, - { - "name": "lightning.qubit", - "class": "HelperClass", - "args": { - "device_name": "lightning.qubit" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - } - ] - } - ] - }, - { - "name": "DinneenIsing", - "class": "DinneenIsing", - "args": {}, - "module": "modules.applications.optimization.sat.mappings.dinneenising", - "requirements": [ - { - "name": "nnf", - "version": "0.4.1" - }, - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "dimod", - "version": "0.12.18" - }, - { - "name": "nnf", - "version": "0.4.1" - } - ], - "submodules": [ - { - "name": "QAOA", - "class": "QAOA", - "args": {}, - "module": "modules.solvers.qaoa", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "scipy", - "version": "1.12.0" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "LocalSimulator", - "class": "LocalSimulator", - "args": { - "device_name": "LocalSimulator" - }, - "module": "modules.devices.braket.local_simulator", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", - "class": "SV1", - "args": { - "device_name": "SV1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" - }, - "module": "modules.devices.braket.sv1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", - "class": "TN1", - "args": { - "device_name": "TN1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" - }, - "module": "modules.devices.braket.tn1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", - "class": "Ionq", - "args": { - "device_name": "ionQ", - "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" - }, - "module": "modules.devices.braket.ionq", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", - "class": "Rigetti", - "args": { - "device_name": "Rigetti Aspen-9", - "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" - }, - "module": "modules.devices.braket.rigetti", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - } - ] - }, - { - "name": "PennylaneQAOA", - "class": "PennylaneQAOA", - "args": {}, - "module": "modules.solvers.pennylane_qaoa", - "requirements": [ - { - "name": "pennylane", - "version": "0.39.0" - }, - { - "name": "pennylane-lightning", - "version": "0.39.0" - }, - { - "name": "amazon-braket-pennylane-plugin", - "version": "1.30.2" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", - "class": "SV1", - "args": { - "device_name": "SV1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" - }, - "module": "modules.devices.braket.sv1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", - "class": "TN1", - "args": { - "device_name": "TN1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" - }, - "module": "modules.devices.braket.tn1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", - "class": "Ionq", - "args": { - "device_name": "ionq", - "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" - }, - "module": "modules.devices.braket.ionq", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", - "class": "Rigetti", - "args": { - "device_name": "Rigetti", - "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" - }, - "module": "modules.devices.braket.rigetti", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy", - "class": "OQC", - "args": { - "device_name": "OQC", - "arn": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy" - }, - "module": "modules.devices.braket.oqc", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "braket.local.qubit", - "class": "HelperClass", - "args": { - "device_name": "braket.local.qubit" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - }, - { - "name": "default.qubit", - "class": "HelperClass", - "args": { - "device_name": "default.qubit" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - }, - { - "name": "default.qubit.autograd", - "class": "HelperClass", - "args": { - "device_name": "default.qubit.autograd" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - }, - { - "name": "qulacs.simulator", - "class": "HelperClass", - "args": { - "device_name": "qulacs.simulator" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - }, - { - "name": "lightning.gpu", - "class": "HelperClass", - "args": { - "device_name": "lightning.gpu" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - }, - { - "name": "lightning.qubit", - "class": "HelperClass", - "args": { - "device_name": "lightning.qubit" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - } - ] - } - ] - } - ], - "requirements": [ - { - "name": "nnf", - "version": "0.4.1" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ] - }, - { - "name": "TSP", - "class": "TSP", - "module": "modules.applications.optimization.tsp.tsp", - "submodules": [ - { - "name": "Ising", - "class": "Ising", - "args": {}, - "module": "modules.applications.optimization.tsp.mappings.ising", - "requirements": [ - { - "name": "networkx", - "version": "3.4.2" - }, - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "dimod", - "version": "0.12.18" - }, - { - "name": "more-itertools", - "version": "10.5.0" - }, - { - "name": "qiskit-optimization", - "version": "0.6.1" - }, - { - "name": "networkx", - "version": "3.4.2" - }, - { - "name": "dwave_networkx", - "version": "0.8.15" - } - ], - "submodules": [ - { - "name": "QAOA", - "class": "QAOA", - "args": {}, - "module": "modules.solvers.qaoa", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "scipy", - "version": "1.12.0" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "LocalSimulator", - "class": "LocalSimulator", - "args": { - "device_name": "LocalSimulator" - }, - "module": "modules.devices.braket.local_simulator", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", - "class": "SV1", - "args": { - "device_name": "SV1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" - }, - "module": "modules.devices.braket.sv1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", - "class": "TN1", - "args": { - "device_name": "TN1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" - }, - "module": "modules.devices.braket.tn1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", - "class": "Ionq", - "args": { - "device_name": "ionQ", - "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" - }, - "module": "modules.devices.braket.ionq", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", - "class": "Rigetti", - "args": { - "device_name": "Rigetti Aspen-9", - "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" - }, - "module": "modules.devices.braket.rigetti", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - } - ] - }, - { - "name": "PennylaneQAOA", - "class": "PennylaneQAOA", - "args": {}, - "module": "modules.solvers.pennylane_qaoa", - "requirements": [ - { - "name": "pennylane", - "version": "0.39.0" - }, - { - "name": "pennylane-lightning", - "version": "0.39.0" - }, - { - "name": "amazon-braket-pennylane-plugin", - "version": "1.30.2" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", - "class": "SV1", - "args": { - "device_name": "SV1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" - }, - "module": "modules.devices.braket.sv1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", - "class": "TN1", - "args": { - "device_name": "TN1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" - }, - "module": "modules.devices.braket.tn1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", - "class": "Ionq", - "args": { - "device_name": "ionq", - "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" - }, - "module": "modules.devices.braket.ionq", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", - "class": "Rigetti", - "args": { - "device_name": "Rigetti", - "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" - }, - "module": "modules.devices.braket.rigetti", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy", - "class": "OQC", - "args": { - "device_name": "OQC", - "arn": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy" - }, - "module": "modules.devices.braket.oqc", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "braket.local.qubit", - "class": "HelperClass", - "args": { - "device_name": "braket.local.qubit" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - }, - { - "name": "default.qubit", - "class": "HelperClass", - "args": { - "device_name": "default.qubit" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - }, - { - "name": "default.qubit.autograd", - "class": "HelperClass", - "args": { - "device_name": "default.qubit.autograd" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - }, - { - "name": "qulacs.simulator", - "class": "HelperClass", - "args": { - "device_name": "qulacs.simulator" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - }, - { - "name": "lightning.gpu", - "class": "HelperClass", - "args": { - "device_name": "lightning.gpu" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - }, - { - "name": "lightning.qubit", - "class": "HelperClass", - "args": { - "device_name": "lightning.qubit" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - } - ] - }, - { - "name": "QiskitQAOA", - "class": "QiskitQAOA", - "args": {}, - "module": "modules.solvers.qiskit_qaoa", - "requirements": [ - { - "name": "qiskit", - "version": "1.3.0" - }, - { - "name": "qiskit-optimization", - "version": "0.6.1" - }, - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "qiskit-algorithms", - "version": "0.3.1" - } - ], - "submodules": [ - { - "name": "qasm_simulator", - "class": "HelperClass", - "args": { - "device_name": "qasm_simulator" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - }, - { - "name": "qasm_simulator_gpu", - "class": "HelperClass", - "args": { - "device_name": "qasm_simulator_gpu" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - } - ] - } - ] - }, - { - "name": "QUBO", - "class": "QUBO", - "args": {}, - "module": "modules.applications.optimization.tsp.mappings.qubo", - "requirements": [ - { - "name": "networkx", - "version": "3.4.2" - }, - { - "name": "dwave_networkx", - "version": "0.8.15" - } - ], - "submodules": [ - { - "name": "Annealer", - "class": "Annealer", - "args": {}, - "module": "modules.solvers.annealer", - "requirements": [], - "submodules": [ - { - "name": "Simulated Annealer", - "class": "SimulatedAnnealingSampler", - "args": {}, - "module": "modules.devices.simulated_annealing_sampler", - "requirements": [ - { - "name": "dwave-samplers", - "version": "1.4.0" - } - ], - "submodules": [] - } - ] - } - ] - }, - { - "name": "GreedyClassicalTSP", - "class": "GreedyClassicalTSP", - "args": {}, - "module": "modules.solvers.greedy_classical_tsp", - "requirements": [ - { - "name": "networkx", - "version": "3.4.2" - } - ], - "submodules": [ - { - "name": "Local", - "class": "Local", - "args": {}, - "module": "modules.devices.local", - "requirements": [], - "submodules": [] - } - ] - }, - { - "name": "ReverseGreedyClassicalTSP", - "class": "ReverseGreedyClassicalTSP", - "args": {}, - "module": "modules.solvers.reverse_greedy_classical_tsp", - "requirements": [ - { - "name": "networkx", - "version": "3.4.2" - } - ], - "submodules": [ - { - "name": "Local", - "class": "Local", - "args": {}, - "module": "modules.devices.local", - "requirements": [], - "submodules": [] - } - ] - }, - { - "name": "RandomTSP", - "class": "RandomTSP", - "args": {}, - "module": "modules.solvers.random_classical_tsp", - "requirements": [ - { - "name": "networkx", - "version": "3.4.2" - } - ], - "submodules": [ - { - "name": "Local", - "class": "Local", - "args": {}, - "module": "modules.devices.local", - "requirements": [], - "submodules": [] - } - ] - } - ], - "requirements": [ - { - "name": "networkx", - "version": "3.4.2" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ] - }, - { - "name": "ACL", - "class": "ACL", - "module": "modules.applications.optimization.acl.acl", - "submodules": [ - { - "name": "MIPsolverACL", - "class": "MIPaclp", - "args": {}, - "module": "modules.solvers.mip_solver_acl", - "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.simulated_annealing_sampler", - "requirements": [ - { - "name": "dwave-samplers", - "version": "1.4.0" - } - ], - "submodules": [] - } - ] - } - ] - } - ], - "requirements": [ - { - "name": "pulp", - "version": "2.9.0" - }, - { - "name": "pandas", - "version": "2.2.3" - }, - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "openpyxl", - "version": "3.1.5" - } - ] - }, - { - "name": "MIS", - "class": "MIS", - "module": "modules.applications.optimization.mis.mis", - "submodules": [ - { - "name": "QIRO", - "class": "QIRO", - "args": {}, - "module": "modules.applications.optimization.mis.mappings.qiro", - "requirements": [ - { - "name": "qrisp", - "version": "0.5.2" - } - ], - "submodules": [ - { - "name": "QrispQIRO", - "class": "QIROSolver", - "args": {}, - "module": "modules.solvers.qrisp_qiro", - "requirements": [ - { - "name": "qrisp", - "version": "0.5.2" - } - ], - "submodules": [ - { - "name": "qrisp_simulator", - "class": "QrispSimulator", - "args": {}, - "module": "modules.devices.qrisp_simulator.qrisp_simulator", - "requirements": [ - { - "name": "qrisp", - "version": "0.5.2" - } - ], - "submodules": [] - } - ] - } - ] - }, - { - "name": "NeutralAtom", - "class": "NeutralAtom", - "args": {}, - "module": "modules.applications.optimization.mis.mappings.neutral_atom", - "requirements": [ - { - "name": "pulser", - "version": "1.1.1" - } - ], - "submodules": [ - { - "name": "NeutralAtomMIS", - "class": "NeutralAtomMIS", - "args": {}, - "module": "modules.solvers.neutral_atom_mis", - "requirements": [ - { - "name": "pulser", - "version": "1.1.1" - } - ], - "submodules": [ - { - "name": "MockNeutralAtomDevice", - "class": "MockNeutralAtomDevice", - "args": {}, - "module": "modules.devices.pulser.mock_neutral_atom_device", - "requirements": [ - { - "name": "pulser", - "version": "1.1.1" - } - ], - "submodules": [] - } - ] - } - ] - } - ], - "requirements": [] - }, - { - "name": "SCP", - "class": "SCP", - "module": "modules.applications.optimization.scp.scp", - "submodules": [ - { - "name": "qubovertQUBO", - "class": "QubovertQUBO", - "args": {}, - "module": "modules.applications.optimization.scp.mappings.qubovertqubo", - "requirements": [ - { - "name": "qubovert", - "version": "1.2.5" - } - ], - "submodules": [ - { - "name": "Annealer", - "class": "Annealer", - "args": {}, - "module": "modules.solvers.annealer", - "requirements": [], - "submodules": [ - { - "name": "Simulated Annealer", - "class": "SimulatedAnnealingSampler", - "args": {}, - "module": "modules.devices.simulated_annealing_sampler", - "requirements": [ - { - "name": "dwave-samplers", - "version": "1.4.0" - } - ], - "submodules": [] - } - ] - } - ] - } - ], - "requirements": [] - }, - { - "name": "BP", - "class": "BP", - "module": "modules.applications.optimization.bp.bp", - "submodules": [ - { - "name": "MIP", - "class": "MIP", - "args": {}, - "module": "modules.applications.optimization.bp.mappings.mip", - "requirements": [ - { - "name": "docplex", - "version": "2.25.236" - } - ], - "submodules": [ - { - "name": "MIPSolver", - "class": "MIPSolver", - "args": {}, - "module": "modules.solvers.mip_solver_bp", - "requirements": [ - { - "name": "pyscipopt", - "version": "5.0.1" - } - ], - "submodules": [ - { - "name": "Local", - "class": "Local", - "args": {}, - "module": "modules.devices.local", - "requirements": [], - "submodules": [] - } - ] - } - ] - }, - { - "name": "Ising", - "class": "Ising", - "args": {}, - "module": "modules.applications.optimization.bp.mappings.ising", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "docplex", - "version": "2.25.236" - } - ], - "submodules": [ - { - "name": "QAOA", - "class": "QAOA", - "args": {}, - "module": "modules.solvers.qaoa", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "scipy", - "version": "1.12.0" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "LocalSimulator", - "class": "LocalSimulator", - "args": { - "device_name": "LocalSimulator" - }, - "module": "modules.devices.braket.local_simulator", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", - "class": "SV1", - "args": { - "device_name": "SV1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" - }, - "module": "modules.devices.braket.sv1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", - "class": "TN1", - "args": { - "device_name": "TN1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" - }, - "module": "modules.devices.braket.tn1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", - "class": "Ionq", - "args": { - "device_name": "ionQ", - "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" - }, - "module": "modules.devices.braket.ionq", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", - "class": "Rigetti", - "args": { - "device_name": "Rigetti Aspen-9", - "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" - }, - "module": "modules.devices.braket.rigetti", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - } - ] - }, - { - "name": "PennylaneQAOA", - "class": "PennylaneQAOA", - "args": {}, - "module": "modules.solvers.pennylane_qaoa", - "requirements": [ - { - "name": "pennylane", - "version": "0.39.0" - }, - { - "name": "pennylane-lightning", - "version": "0.39.0" - }, - { - "name": "amazon-braket-pennylane-plugin", - "version": "1.30.2" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", - "class": "SV1", - "args": { - "device_name": "SV1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" - }, - "module": "modules.devices.braket.sv1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", - "class": "TN1", - "args": { - "device_name": "TN1", - "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" - }, - "module": "modules.devices.braket.tn1", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", - "class": "Ionq", - "args": { - "device_name": "ionq", - "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" - }, - "module": "modules.devices.braket.ionq", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", - "class": "Rigetti", - "args": { - "device_name": "Rigetti", - "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" - }, - "module": "modules.devices.braket.rigetti", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy", - "class": "OQC", - "args": { - "device_name": "OQC", - "arn": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy" - }, - "module": "modules.devices.braket.oqc", - "requirements": [ - { - "name": "amazon-braket-sdk", - "version": "1.88.2" - }, - { - "name": "botocore", - "version": "1.35.73" - }, - { - "name": "boto3", - "version": "1.35.73" - } - ], - "submodules": [] - }, - { - "name": "braket.local.qubit", - "class": "HelperClass", - "args": { - "device_name": "braket.local.qubit" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - }, - { - "name": "default.qubit", - "class": "HelperClass", - "args": { - "device_name": "default.qubit" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - }, - { - "name": "default.qubit.autograd", - "class": "HelperClass", - "args": { - "device_name": "default.qubit.autograd" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - }, - { - "name": "qulacs.simulator", - "class": "HelperClass", - "args": { - "device_name": "qulacs.simulator" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - }, - { - "name": "lightning.gpu", - "class": "HelperClass", - "args": { - "device_name": "lightning.gpu" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - }, - { - "name": "lightning.qubit", - "class": "HelperClass", - "args": { - "device_name": "lightning.qubit" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - } - ] - }, - { - "name": "QiskitQAOA", - "class": "QiskitQAOA", - "args": {}, - "module": "modules.solvers.qiskit_qaoa", - "requirements": [ - { - "name": "qiskit", - "version": "1.3.0" - }, - { - "name": "qiskit-optimization", - "version": "0.6.1" - }, - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "qiskit-algorithms", - "version": "0.3.1" - } - ], - "submodules": [ - { - "name": "qasm_simulator", - "class": "HelperClass", - "args": { - "device_name": "qasm_simulator" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - }, - { - "name": "qasm_simulator_gpu", - "class": "HelperClass", - "args": { - "device_name": "qasm_simulator_gpu" - }, - "module": "modules.devices.helper_class", - "requirements": [], - "submodules": [] - } - ] - } - ] - }, - { - "name": "QUBO", - "class": "QUBO", - "args": {}, - "module": "modules.applications.optimization.bp.mappings.qubo", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "docplex", - "version": "2.25.236" - } - ], - "submodules": [ - { - "name": "Annealer", - "class": "Annealer", - "args": {}, - "module": "modules.solvers.annealer", - "requirements": [], - "submodules": [ - { - "name": "Simulated Annealer", - "class": "SimulatedAnnealingSampler", - "args": {}, - "module": "modules.devices.simulated_annealing_sampler", - "requirements": [ - { - "name": "dwave-samplers", - "version": "1.4.0" - } - ], - "submodules": [] - } - ] - } - ] - } - ], - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "qiskit_optimization", - "version": "0.6.1" - }, - { - "name": "docplex", - "version": "2.25.236" - } - ] - }, - { - "name": "SALBP", - "class": "SALBP", - "module": "modules.applications.optimization.salbp.salbp", - "submodules": [ - { - "name": "MIP", - "class": "MIP", - "args": {}, - "module": "modules.applications.optimization.salbp.mappings.mip", - "requirements": [ - { - "name": "docplex", - "version": "2.25.236" - } - ], - "submodules": [ - { - "name": "MIPSolver", - "class": "MIPSolver", - "args": {}, - "module": "modules.solvers.mip_solver_bp", - "requirements": [ - { - "name": "pyscipopt", - "version": "5.0.1" - } - ], - "submodules": [ - { - "name": "Local", - "class": "Local", - "args": {}, - "module": "modules.devices.local", - "requirements": [], - "submodules": [] - } - ] - } - ] - } - ], - "requirements": [ - { - "name": "docplex", - "version": "2.25.236" - }, - { - "name": "networkx", - "version": "3.4.2" - } - ] - }, - { - "name": "GenerativeModeling", - "class": "GenerativeModeling", - "module": "modules.applications.qml.generative_modeling.generative_modeling", - "submodules": [ - { - "name": "Continuous Data", - "class": "ContinuousData", - "args": {}, - "module": "modules.applications.qml.generative_modeling.data.data_handler.continuous_data", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "PIT", - "class": "PIT", - "args": {}, - "module": "modules.applications.qml.generative_modeling.transformations.pit", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "pandas", - "version": "2.2.3" - } - ], - "submodules": [ - { - "name": "CircuitCopula", - "class": "CircuitCopula", - "args": {}, - "module": "modules.applications.qml.generative_modeling.circuits.circuit_copula", - "requirements": [ - { - "name": "scipy", - "version": "1.12.0" - } - ], - "submodules": [ - { - "name": "LibraryQiskit", - "class": "LibraryQiskit", - "args": {}, - "module": "modules.applications.qml.generative_modeling.mappings.library_qiskit", - "requirements": [ - { - "name": "qiskit", - "version": "1.3.0" - }, - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "qiskit_aer", - "version": "0.15.1" - } - ], - "submodules": [ - { - "name": "QCBM", - "class": "QCBM", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.qcbm", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "cma", - "version": "4.0.0" - }, - { - "name": "matplotlib", - "version": "3.9.3" - }, - { - "name": "tensorboard", - "version": "2.18.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "QGAN", - "class": "QGAN", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.qgan", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "torch", - "version": "2.2.2" - }, - { - "name": "matplotlib", - "version": "3.9.3" - }, - { - "name": "tensorboard", - "version": "2.18.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "Inference", - "class": "Inference", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - }, - { - "name": "LibraryPennylane", - "class": "LibraryPennylane", - "args": {}, - "module": "modules.applications.qml.generative_modeling.mappings.library_pennylane", - "requirements": [ - { - "name": "pennylane", - "version": "0.39.0" - }, - { - "name": "pennylane-lightning", - "version": "0.39.0" - }, - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "jax", - "version": "0.4.35" - }, - { - "name": "jaxlib", - "version": "0.4.35" - } - ], - "submodules": [ - { - "name": "QCBM", - "class": "QCBM", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.qcbm", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "cma", - "version": "4.0.0" - }, - { - "name": "matplotlib", - "version": "3.9.3" - }, - { - "name": "tensorboard", - "version": "2.18.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "QGAN", - "class": "QGAN", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.qgan", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "torch", - "version": "2.2.2" - }, - { - "name": "matplotlib", - "version": "3.9.3" - }, - { - "name": "tensorboard", - "version": "2.18.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "Inference", - "class": "Inference", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - }, - { - "name": "CustomQiskitNoisyBackend", - "class": "CustomQiskitNoisyBackend", - "args": {}, - "module": "modules.applications.qml.generative_modeling.mappings.custom_qiskit_noisy_backend", - "requirements": [ - { - "name": "qiskit", - "version": "1.3.0" - }, - { - "name": "qiskit_aer", - "version": "0.15.1" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "QCBM", - "class": "QCBM", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.qcbm", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "cma", - "version": "4.0.0" - }, - { - "name": "matplotlib", - "version": "3.9.3" - }, - { - "name": "tensorboard", - "version": "2.18.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "Inference", - "class": "Inference", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - }, - { - "name": "PresetQiskitNoisyBackend", - "class": "PresetQiskitNoisyBackend", - "args": {}, - "module": "modules.applications.qml.generative_modeling.mappings.preset_qiskit_noisy_backend", - "requirements": [ - { - "name": "qiskit", - "version": "1.3.0" - }, - { - "name": "qiskit_ibm_runtime", - "version": "0.33.2" - }, - { - "name": "qiskit_aer", - "version": "0.15.1" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "QCBM", - "class": "QCBM", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.qcbm", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "cma", - "version": "4.0.0" - }, - { - "name": "matplotlib", - "version": "3.9.3" - }, - { - "name": "tensorboard", - "version": "2.18.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "Inference", - "class": "Inference", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - } - ] - } - ] - }, - { - "name": "MinMax", - "class": "MinMax", - "args": {}, - "module": "modules.applications.qml.generative_modeling.transformations.min_max", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "CircuitStandard", - "class": "CircuitStandard", - "args": {}, - "module": "modules.applications.qml.generative_modeling.circuits.circuit_standard", - "requirements": [], - "submodules": [ - { - "name": "LibraryQiskit", - "class": "LibraryQiskit", - "args": {}, - "module": "modules.applications.qml.generative_modeling.mappings.library_qiskit", - "requirements": [ - { - "name": "qiskit", - "version": "1.3.0" - }, - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "qiskit_aer", - "version": "0.15.1" - } - ], - "submodules": [ - { - "name": "QCBM", - "class": "QCBM", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.qcbm", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "cma", - "version": "4.0.0" - }, - { - "name": "matplotlib", - "version": "3.9.3" - }, - { - "name": "tensorboard", - "version": "2.18.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "QGAN", - "class": "QGAN", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.qgan", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "torch", - "version": "2.2.2" - }, - { - "name": "matplotlib", - "version": "3.9.3" - }, - { - "name": "tensorboard", - "version": "2.18.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "Inference", - "class": "Inference", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - }, - { - "name": "LibraryPennylane", - "class": "LibraryPennylane", - "args": {}, - "module": "modules.applications.qml.generative_modeling.mappings.library_pennylane", - "requirements": [ - { - "name": "pennylane", - "version": "0.39.0" - }, - { - "name": "pennylane-lightning", - "version": "0.39.0" - }, - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "jax", - "version": "0.4.35" - }, - { - "name": "jaxlib", - "version": "0.4.35" - } - ], - "submodules": [ - { - "name": "QCBM", - "class": "QCBM", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.qcbm", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "cma", - "version": "4.0.0" - }, - { - "name": "matplotlib", - "version": "3.9.3" - }, - { - "name": "tensorboard", - "version": "2.18.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "QGAN", - "class": "QGAN", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.qgan", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "torch", - "version": "2.2.2" - }, - { - "name": "matplotlib", - "version": "3.9.3" - }, - { - "name": "tensorboard", - "version": "2.18.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "Inference", - "class": "Inference", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - }, - { - "name": "CustomQiskitNoisyBackend", - "class": "CustomQiskitNoisyBackend", - "args": {}, - "module": "modules.applications.qml.generative_modeling.mappings.custom_qiskit_noisy_backend", - "requirements": [ - { - "name": "qiskit", - "version": "1.3.0" - }, - { - "name": "qiskit_aer", - "version": "0.15.1" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "QCBM", - "class": "QCBM", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.qcbm", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "cma", - "version": "4.0.0" - }, - { - "name": "matplotlib", - "version": "3.9.3" - }, - { - "name": "tensorboard", - "version": "2.18.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "Inference", - "class": "Inference", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - }, - { - "name": "PresetQiskitNoisyBackend", - "class": "PresetQiskitNoisyBackend", - "args": {}, - "module": "modules.applications.qml.generative_modeling.mappings.preset_qiskit_noisy_backend", - "requirements": [ - { - "name": "qiskit", - "version": "1.3.0" - }, - { - "name": "qiskit_ibm_runtime", - "version": "0.33.2" - }, - { - "name": "qiskit_aer", - "version": "0.15.1" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "QCBM", - "class": "QCBM", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.qcbm", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "cma", - "version": "4.0.0" - }, - { - "name": "matplotlib", - "version": "3.9.3" - }, - { - "name": "tensorboard", - "version": "2.18.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "Inference", - "class": "Inference", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - } - ] - }, - { - "name": "CircuitCardinality", - "class": "CircuitCardinality", - "args": {}, - "module": "modules.applications.qml.generative_modeling.circuits.circuit_cardinality", - "requirements": [], - "submodules": [ - { - "name": "LibraryQiskit", - "class": "LibraryQiskit", - "args": {}, - "module": "modules.applications.qml.generative_modeling.mappings.library_qiskit", - "requirements": [ - { - "name": "qiskit", - "version": "1.3.0" - }, - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "qiskit_aer", - "version": "0.15.1" - } - ], - "submodules": [ - { - "name": "QCBM", - "class": "QCBM", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.qcbm", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "cma", - "version": "4.0.0" - }, - { - "name": "matplotlib", - "version": "3.9.3" - }, - { - "name": "tensorboard", - "version": "2.18.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "QGAN", - "class": "QGAN", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.qgan", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "torch", - "version": "2.2.2" - }, - { - "name": "matplotlib", - "version": "3.9.3" - }, - { - "name": "tensorboard", - "version": "2.18.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "Inference", - "class": "Inference", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - }, - { - "name": "LibraryPennylane", - "class": "LibraryPennylane", - "args": {}, - "module": "modules.applications.qml.generative_modeling.mappings.library_pennylane", - "requirements": [ - { - "name": "pennylane", - "version": "0.39.0" - }, - { - "name": "pennylane-lightning", - "version": "0.39.0" - }, - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "jax", - "version": "0.4.35" - }, - { - "name": "jaxlib", - "version": "0.4.35" - } - ], - "submodules": [ - { - "name": "QCBM", - "class": "QCBM", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.qcbm", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "cma", - "version": "4.0.0" - }, - { - "name": "matplotlib", - "version": "3.9.3" - }, - { - "name": "tensorboard", - "version": "2.18.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "QGAN", - "class": "QGAN", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.qgan", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "torch", - "version": "2.2.2" - }, - { - "name": "matplotlib", - "version": "3.9.3" - }, - { - "name": "tensorboard", - "version": "2.18.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "Inference", - "class": "Inference", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - }, - { - "name": "CustomQiskitNoisyBackend", - "class": "CustomQiskitNoisyBackend", - "args": {}, - "module": "modules.applications.qml.generative_modeling.mappings.custom_qiskit_noisy_backend", - "requirements": [ - { - "name": "qiskit", - "version": "1.3.0" - }, - { - "name": "qiskit_aer", - "version": "0.15.1" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "QCBM", - "class": "QCBM", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.qcbm", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "cma", - "version": "4.0.0" - }, - { - "name": "matplotlib", - "version": "3.9.3" - }, - { - "name": "tensorboard", - "version": "2.18.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "Inference", - "class": "Inference", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - }, - { - "name": "PresetQiskitNoisyBackend", - "class": "PresetQiskitNoisyBackend", - "args": {}, - "module": "modules.applications.qml.generative_modeling.mappings.preset_qiskit_noisy_backend", - "requirements": [ - { - "name": "qiskit", - "version": "1.3.0" - }, - { - "name": "qiskit_ibm_runtime", - "version": "0.33.2" - }, - { - "name": "qiskit_aer", - "version": "0.15.1" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "QCBM", - "class": "QCBM", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.qcbm", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "cma", - "version": "4.0.0" - }, - { - "name": "matplotlib", - "version": "3.9.3" - }, - { - "name": "tensorboard", - "version": "2.18.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "Inference", - "class": "Inference", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - } - ] - } - ] - } - ] - }, - { - "name": "Discrete Data", - "class": "DiscreteData", - "args": {}, - "module": "modules.applications.qml.generative_modeling.data.data_handler.discrete_data", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "CircuitCardinality", - "class": "CircuitCardinality", - "args": {}, - "module": "modules.applications.qml.generative_modeling.circuits.circuit_cardinality", - "requirements": [], - "submodules": [ - { - "name": "LibraryQiskit", - "class": "LibraryQiskit", - "args": {}, - "module": "modules.applications.qml.generative_modeling.mappings.library_qiskit", - "requirements": [ - { - "name": "qiskit", - "version": "1.3.0" - }, - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "qiskit_aer", - "version": "0.15.1" - } - ], - "submodules": [ - { - "name": "QCBM", - "class": "QCBM", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.qcbm", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "cma", - "version": "4.0.0" - }, - { - "name": "matplotlib", - "version": "3.9.3" - }, - { - "name": "tensorboard", - "version": "2.18.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "QGAN", - "class": "QGAN", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.qgan", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "torch", - "version": "2.2.2" - }, - { - "name": "matplotlib", - "version": "3.9.3" - }, - { - "name": "tensorboard", - "version": "2.18.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "Inference", - "class": "Inference", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - }, - { - "name": "LibraryPennylane", - "class": "LibraryPennylane", - "args": {}, - "module": "modules.applications.qml.generative_modeling.mappings.library_pennylane", - "requirements": [ - { - "name": "pennylane", - "version": "0.39.0" - }, - { - "name": "pennylane-lightning", - "version": "0.39.0" - }, - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "jax", - "version": "0.4.35" - }, - { - "name": "jaxlib", - "version": "0.4.35" - } - ], - "submodules": [ - { - "name": "QCBM", - "class": "QCBM", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.qcbm", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "cma", - "version": "4.0.0" - }, - { - "name": "matplotlib", - "version": "3.9.3" - }, - { - "name": "tensorboard", - "version": "2.18.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "QGAN", - "class": "QGAN", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.qgan", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "torch", - "version": "2.2.2" - }, - { - "name": "matplotlib", - "version": "3.9.3" - }, - { - "name": "tensorboard", - "version": "2.18.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "Inference", - "class": "Inference", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - }, - { - "name": "CustomQiskitNoisyBackend", - "class": "CustomQiskitNoisyBackend", - "args": {}, - "module": "modules.applications.qml.generative_modeling.mappings.custom_qiskit_noisy_backend", - "requirements": [ - { - "name": "qiskit", - "version": "1.3.0" - }, - { - "name": "qiskit_aer", - "version": "0.15.1" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "QCBM", - "class": "QCBM", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.qcbm", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "cma", - "version": "4.0.0" - }, - { - "name": "matplotlib", - "version": "3.9.3" - }, - { - "name": "tensorboard", - "version": "2.18.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "Inference", - "class": "Inference", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - }, - { - "name": "PresetQiskitNoisyBackend", - "class": "PresetQiskitNoisyBackend", - "args": {}, - "module": "modules.applications.qml.generative_modeling.mappings.preset_qiskit_noisy_backend", - "requirements": [ - { - "name": "qiskit", - "version": "1.3.0" - }, - { - "name": "qiskit_ibm_runtime", - "version": "0.33.2" - }, - { - "name": "qiskit_aer", - "version": "0.15.1" - }, - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [ - { - "name": "QCBM", - "class": "QCBM", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.qcbm", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "cma", - "version": "4.0.0" - }, - { - "name": "matplotlib", - "version": "3.9.3" - }, - { - "name": "tensorboard", - "version": "2.18.0" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - }, - { - "name": "Inference", - "class": "Inference", - "args": {}, - "module": "modules.applications.qml.generative_modeling.training.inference", - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - } - ], - "submodules": [] - } - ] - } - ] - } - ] - } - ], - "requirements": [] - }, - { - "name": "Classification", - "class": "Classification", - "module": "modules.applications.qml.classification.classification", - "submodules": [ - { - "name": "Image Data", - "class": "ImageData", - "args": {}, - "module": "modules.applications.qml.classification.data.data_handler.image_data", - "requirements": [ - { - "name": "pandas", - "version": "2.2.3" - }, - { - "name": "pillow", - "version": "11.1.0" - }, - { - "name": "torch", - "version": "2.2.2" - }, - { - "name": "torchvision", - "version": "0.17.2" - }, - { - "name": "tqdm", - "version": "4.67.1" - }, - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "scikit-learn", - "version": "1.4.2" - }, - { - "name": "qiskit_aer", - "version": "0.15.1" - }, - { - "name": "tensorboard", - "version": "2.18.0" - } - ], - "submodules": [ - { - "name": "Hybrid", - "class": "Hybrid", - "args": {}, - "module": "modules.applications.qml.classification.training.hybrid", - "requirements": [ - { - "name": "matplotlib", - "version": "3.9.3" - }, - { - "name": "torch", - "version": "2.2.2" - }, - { - "name": "tqdm", - "version": "4.67.1" - }, - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "tensorboardX", - "version": "2.6.2.2" - } - ], - "submodules": [] - } - ] - } - ], - "requirements": [ - { - "name": "numpy", - "version": "1.26.4" - }, - { - "name": "torch", - "version": "2.2.2" - }, - { - "name": "pennylane", - "version": "0.39.0" - }, - { - "name": "qiskit", - "version": "1.3.0" - }, - { - "name": "qiskit-machine-learning", - "version": "0.8.2" - }, - { - "name": "torchvision", - "version": "0.17.2" - } - ] - } - ] +{ + "build_number": 24, + "build_date": "24-06-2025 14:26:01", + "git_revision_number": "3bdc933cfa5f8230153714f31e5f8e524e6f8a7f", + "modules": [ + { + "name": "PVC", + "class": "PVC", + "module": "modules.applications.optimization.pvc.pvc", + "submodules": [ + { + "name": "Ising", + "class": "Ising", + "args": {}, + "module": "modules.applications.optimization.pvc.mappings.ising", + "requirements": [ + { + "name": "networkx", + "version": "3.4.2" + }, + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "dimod", + "version": "0.12.18" + }, + { + "name": "networkx", + "version": "3.4.2" + } + ], + "submodules": [ + { + "name": "QAOA", + "class": "QAOA", + "args": {}, + "module": "modules.solvers.qaoa", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "scipy", + "version": "1.12.0" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "LocalSimulator", + "class": "LocalSimulator", + "args": { + "device_name": "LocalSimulator" + }, + "module": "modules.devices.braket.local_simulator", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", + "class": "SV1", + "args": { + "device_name": "SV1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" + }, + "module": "modules.devices.braket.sv1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", + "class": "TN1", + "args": { + "device_name": "TN1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" + }, + "module": "modules.devices.braket.tn1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", + "class": "Ionq", + "args": { + "device_name": "ionQ", + "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" + }, + "module": "modules.devices.braket.ionq", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", + "class": "Rigetti", + "args": { + "device_name": "Rigetti Aspen-9", + "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" + }, + "module": "modules.devices.braket.rigetti", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + } + ] + }, + { + "name": "PennylaneQAOA", + "class": "PennylaneQAOA", + "args": {}, + "module": "modules.solvers.pennylane_qaoa", + "requirements": [ + { + "name": "pennylane", + "version": "0.39.0" + }, + { + "name": "pennylane-lightning", + "version": "0.39.0" + }, + { + "name": "amazon-braket-pennylane-plugin", + "version": "1.30.2" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", + "class": "SV1", + "args": { + "device_name": "SV1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" + }, + "module": "modules.devices.braket.sv1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", + "class": "TN1", + "args": { + "device_name": "TN1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" + }, + "module": "modules.devices.braket.tn1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", + "class": "Ionq", + "args": { + "device_name": "ionq", + "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" + }, + "module": "modules.devices.braket.ionq", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", + "class": "Rigetti", + "args": { + "device_name": "Rigetti", + "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" + }, + "module": "modules.devices.braket.rigetti", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy", + "class": "OQC", + "args": { + "device_name": "OQC", + "arn": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy" + }, + "module": "modules.devices.braket.oqc", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "braket.local.qubit", + "class": "HelperClass", + "args": { + "device_name": "braket.local.qubit" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + }, + { + "name": "default.qubit", + "class": "HelperClass", + "args": { + "device_name": "default.qubit" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + }, + { + "name": "default.qubit.autograd", + "class": "HelperClass", + "args": { + "device_name": "default.qubit.autograd" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + }, + { + "name": "qulacs.simulator", + "class": "HelperClass", + "args": { + "device_name": "qulacs.simulator" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + }, + { + "name": "lightning.gpu", + "class": "HelperClass", + "args": { + "device_name": "lightning.gpu" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + }, + { + "name": "lightning.qubit", + "class": "HelperClass", + "args": { + "device_name": "lightning.qubit" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + } + ] + } + ] + }, + { + "name": "QUBO", + "class": "QUBO", + "args": {}, + "module": "modules.applications.optimization.pvc.mappings.qubo", + "requirements": [ + { + "name": "networkx", + "version": "3.4.2" + } + ], + "submodules": [ + { + "name": "Annealer", + "class": "Annealer", + "args": {}, + "module": "modules.solvers.annealer", + "requirements": [], + "submodules": [ + { + "name": "Simulated Annealer", + "class": "SimulatedAnnealingSampler", + "args": {}, + "module": "modules.devices.simulated_annealing_sampler", + "requirements": [ + { + "name": "dwave-samplers", + "version": "1.4.0" + } + ], + "submodules": [] + } + ] + } + ] + }, + { + "name": "GreedyClassicalPVC", + "class": "GreedyClassicalPVC", + "args": {}, + "module": "modules.solvers.greedy_classical_pvc", + "requirements": [ + { + "name": "networkx", + "version": "3.4.2" + } + ], + "submodules": [ + { + "name": "Local", + "class": "Local", + "args": {}, + "module": "modules.devices.local", + "requirements": [], + "submodules": [] + } + ] + }, + { + "name": "ReverseGreedyClassicalPVC", + "class": "ReverseGreedyClassicalPVC", + "args": {}, + "module": "modules.solvers.reverse_greedy_classical_pvc", + "requirements": [ + { + "name": "networkx", + "version": "3.4.2" + } + ], + "submodules": [ + { + "name": "Local", + "class": "Local", + "args": {}, + "module": "modules.devices.local", + "requirements": [], + "submodules": [] + } + ] + }, + { + "name": "RandomPVC", + "class": "RandomPVC", + "args": {}, + "module": "modules.solvers.random_classical_pvc", + "requirements": [ + { + "name": "networkx", + "version": "3.4.2" + } + ], + "submodules": [ + { + "name": "Local", + "class": "Local", + "args": {}, + "module": "modules.devices.local", + "requirements": [], + "submodules": [] + } + ] + } + ], + "requirements": [ + { + "name": "networkx", + "version": "3.4.2" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ] + }, + { + "name": "SAT", + "class": "SAT", + "module": "modules.applications.optimization.sat.sat", + "submodules": [ + { + "name": "QubovertQUBO", + "class": "QubovertQUBO", + "args": {}, + "module": "modules.applications.optimization.sat.mappings.qubovertqubo", + "requirements": [ + { + "name": "nnf", + "version": "0.4.1" + }, + { + "name": "qubovert", + "version": "1.2.5" + } + ], + "submodules": [ + { + "name": "Annealer", + "class": "Annealer", + "args": {}, + "module": "modules.solvers.annealer", + "requirements": [], + "submodules": [ + { + "name": "Simulated Annealer", + "class": "SimulatedAnnealingSampler", + "args": {}, + "module": "modules.devices.simulated_annealing_sampler", + "requirements": [ + { + "name": "dwave-samplers", + "version": "1.4.0" + } + ], + "submodules": [] + } + ] + } + ] + }, + { + "name": "Direct", + "class": "Direct", + "args": {}, + "module": "modules.applications.optimization.sat.mappings.direct", + "requirements": [ + { + "name": "nnf", + "version": "0.4.1" + }, + { + "name": "python-sat", + "version": "1.8.dev13" + } + ], + "submodules": [ + { + "name": "ClassicalSAT", + "class": "ClassicalSAT", + "args": {}, + "module": "modules.solvers.classical_sat", + "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.random_classical_sat", + "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.simulated_annealing_sampler", + "requirements": [ + { + "name": "dwave-samplers", + "version": "1.4.0" + } + ], + "submodules": [] + } + ] + } + ] + }, + { + "name": "DinneenQUBO", + "class": "DinneenQUBO", + "args": {}, + "module": "modules.applications.optimization.sat.mappings.dinneenqubo", + "requirements": [ + { + "name": "nnf", + "version": "0.4.1" + } + ], + "submodules": [ + { + "name": "Annealer", + "class": "Annealer", + "args": {}, + "module": "modules.solvers.annealer", + "requirements": [], + "submodules": [ + { + "name": "Simulated Annealer", + "class": "SimulatedAnnealingSampler", + "args": {}, + "module": "modules.devices.simulated_annealing_sampler", + "requirements": [ + { + "name": "dwave-samplers", + "version": "1.4.0" + } + ], + "submodules": [] + } + ] + } + ] + }, + { + "name": "ChoiIsing", + "class": "ChoiIsing", + "args": {}, + "module": "modules.applications.optimization.sat.mappings.choiising", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "dimod", + "version": "0.12.18" + }, + { + "name": "nnf", + "version": "0.4.1" + } + ], + "submodules": [ + { + "name": "QAOA", + "class": "QAOA", + "args": {}, + "module": "modules.solvers.qaoa", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "scipy", + "version": "1.12.0" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "LocalSimulator", + "class": "LocalSimulator", + "args": { + "device_name": "LocalSimulator" + }, + "module": "modules.devices.braket.local_simulator", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", + "class": "SV1", + "args": { + "device_name": "SV1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" + }, + "module": "modules.devices.braket.sv1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", + "class": "TN1", + "args": { + "device_name": "TN1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" + }, + "module": "modules.devices.braket.tn1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", + "class": "Ionq", + "args": { + "device_name": "ionQ", + "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" + }, + "module": "modules.devices.braket.ionq", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", + "class": "Rigetti", + "args": { + "device_name": "Rigetti Aspen-9", + "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" + }, + "module": "modules.devices.braket.rigetti", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + } + ] + }, + { + "name": "PennylaneQAOA", + "class": "PennylaneQAOA", + "args": {}, + "module": "modules.solvers.pennylane_qaoa", + "requirements": [ + { + "name": "pennylane", + "version": "0.39.0" + }, + { + "name": "pennylane-lightning", + "version": "0.39.0" + }, + { + "name": "amazon-braket-pennylane-plugin", + "version": "1.30.2" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", + "class": "SV1", + "args": { + "device_name": "SV1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" + }, + "module": "modules.devices.braket.sv1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", + "class": "TN1", + "args": { + "device_name": "TN1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" + }, + "module": "modules.devices.braket.tn1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", + "class": "Ionq", + "args": { + "device_name": "ionq", + "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" + }, + "module": "modules.devices.braket.ionq", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", + "class": "Rigetti", + "args": { + "device_name": "Rigetti", + "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" + }, + "module": "modules.devices.braket.rigetti", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy", + "class": "OQC", + "args": { + "device_name": "OQC", + "arn": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy" + }, + "module": "modules.devices.braket.oqc", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "braket.local.qubit", + "class": "HelperClass", + "args": { + "device_name": "braket.local.qubit" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + }, + { + "name": "default.qubit", + "class": "HelperClass", + "args": { + "device_name": "default.qubit" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + }, + { + "name": "default.qubit.autograd", + "class": "HelperClass", + "args": { + "device_name": "default.qubit.autograd" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + }, + { + "name": "qulacs.simulator", + "class": "HelperClass", + "args": { + "device_name": "qulacs.simulator" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + }, + { + "name": "lightning.gpu", + "class": "HelperClass", + "args": { + "device_name": "lightning.gpu" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + }, + { + "name": "lightning.qubit", + "class": "HelperClass", + "args": { + "device_name": "lightning.qubit" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + } + ] + } + ] + }, + { + "name": "DinneenIsing", + "class": "DinneenIsing", + "args": {}, + "module": "modules.applications.optimization.sat.mappings.dinneenising", + "requirements": [ + { + "name": "nnf", + "version": "0.4.1" + }, + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "dimod", + "version": "0.12.18" + }, + { + "name": "nnf", + "version": "0.4.1" + } + ], + "submodules": [ + { + "name": "QAOA", + "class": "QAOA", + "args": {}, + "module": "modules.solvers.qaoa", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "scipy", + "version": "1.12.0" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "LocalSimulator", + "class": "LocalSimulator", + "args": { + "device_name": "LocalSimulator" + }, + "module": "modules.devices.braket.local_simulator", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", + "class": "SV1", + "args": { + "device_name": "SV1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" + }, + "module": "modules.devices.braket.sv1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", + "class": "TN1", + "args": { + "device_name": "TN1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" + }, + "module": "modules.devices.braket.tn1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", + "class": "Ionq", + "args": { + "device_name": "ionQ", + "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" + }, + "module": "modules.devices.braket.ionq", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", + "class": "Rigetti", + "args": { + "device_name": "Rigetti Aspen-9", + "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" + }, + "module": "modules.devices.braket.rigetti", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + } + ] + }, + { + "name": "PennylaneQAOA", + "class": "PennylaneQAOA", + "args": {}, + "module": "modules.solvers.pennylane_qaoa", + "requirements": [ + { + "name": "pennylane", + "version": "0.39.0" + }, + { + "name": "pennylane-lightning", + "version": "0.39.0" + }, + { + "name": "amazon-braket-pennylane-plugin", + "version": "1.30.2" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", + "class": "SV1", + "args": { + "device_name": "SV1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" + }, + "module": "modules.devices.braket.sv1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", + "class": "TN1", + "args": { + "device_name": "TN1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" + }, + "module": "modules.devices.braket.tn1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", + "class": "Ionq", + "args": { + "device_name": "ionq", + "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" + }, + "module": "modules.devices.braket.ionq", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", + "class": "Rigetti", + "args": { + "device_name": "Rigetti", + "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" + }, + "module": "modules.devices.braket.rigetti", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy", + "class": "OQC", + "args": { + "device_name": "OQC", + "arn": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy" + }, + "module": "modules.devices.braket.oqc", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "braket.local.qubit", + "class": "HelperClass", + "args": { + "device_name": "braket.local.qubit" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + }, + { + "name": "default.qubit", + "class": "HelperClass", + "args": { + "device_name": "default.qubit" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + }, + { + "name": "default.qubit.autograd", + "class": "HelperClass", + "args": { + "device_name": "default.qubit.autograd" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + }, + { + "name": "qulacs.simulator", + "class": "HelperClass", + "args": { + "device_name": "qulacs.simulator" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + }, + { + "name": "lightning.gpu", + "class": "HelperClass", + "args": { + "device_name": "lightning.gpu" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + }, + { + "name": "lightning.qubit", + "class": "HelperClass", + "args": { + "device_name": "lightning.qubit" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + } + ] + } + ] + } + ], + "requirements": [ + { + "name": "nnf", + "version": "0.4.1" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ] + }, + { + "name": "TSP", + "class": "TSP", + "module": "modules.applications.optimization.tsp.tsp", + "submodules": [ + { + "name": "Ising", + "class": "Ising", + "args": {}, + "module": "modules.applications.optimization.tsp.mappings.ising", + "requirements": [ + { + "name": "networkx", + "version": "3.4.2" + }, + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "dimod", + "version": "0.12.18" + }, + { + "name": "more-itertools", + "version": "10.5.0" + }, + { + "name": "qiskit-optimization", + "version": "0.6.1" + }, + { + "name": "networkx", + "version": "3.4.2" + }, + { + "name": "dwave_networkx", + "version": "0.8.15" + } + ], + "submodules": [ + { + "name": "QAOA", + "class": "QAOA", + "args": {}, + "module": "modules.solvers.qaoa", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "scipy", + "version": "1.12.0" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "LocalSimulator", + "class": "LocalSimulator", + "args": { + "device_name": "LocalSimulator" + }, + "module": "modules.devices.braket.local_simulator", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", + "class": "SV1", + "args": { + "device_name": "SV1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" + }, + "module": "modules.devices.braket.sv1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", + "class": "TN1", + "args": { + "device_name": "TN1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" + }, + "module": "modules.devices.braket.tn1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", + "class": "Ionq", + "args": { + "device_name": "ionQ", + "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" + }, + "module": "modules.devices.braket.ionq", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", + "class": "Rigetti", + "args": { + "device_name": "Rigetti Aspen-9", + "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" + }, + "module": "modules.devices.braket.rigetti", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + } + ] + }, + { + "name": "PennylaneQAOA", + "class": "PennylaneQAOA", + "args": {}, + "module": "modules.solvers.pennylane_qaoa", + "requirements": [ + { + "name": "pennylane", + "version": "0.39.0" + }, + { + "name": "pennylane-lightning", + "version": "0.39.0" + }, + { + "name": "amazon-braket-pennylane-plugin", + "version": "1.30.2" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", + "class": "SV1", + "args": { + "device_name": "SV1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" + }, + "module": "modules.devices.braket.sv1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", + "class": "TN1", + "args": { + "device_name": "TN1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" + }, + "module": "modules.devices.braket.tn1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", + "class": "Ionq", + "args": { + "device_name": "ionq", + "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" + }, + "module": "modules.devices.braket.ionq", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", + "class": "Rigetti", + "args": { + "device_name": "Rigetti", + "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" + }, + "module": "modules.devices.braket.rigetti", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy", + "class": "OQC", + "args": { + "device_name": "OQC", + "arn": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy" + }, + "module": "modules.devices.braket.oqc", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "braket.local.qubit", + "class": "HelperClass", + "args": { + "device_name": "braket.local.qubit" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + }, + { + "name": "default.qubit", + "class": "HelperClass", + "args": { + "device_name": "default.qubit" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + }, + { + "name": "default.qubit.autograd", + "class": "HelperClass", + "args": { + "device_name": "default.qubit.autograd" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + }, + { + "name": "qulacs.simulator", + "class": "HelperClass", + "args": { + "device_name": "qulacs.simulator" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + }, + { + "name": "lightning.gpu", + "class": "HelperClass", + "args": { + "device_name": "lightning.gpu" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + }, + { + "name": "lightning.qubit", + "class": "HelperClass", + "args": { + "device_name": "lightning.qubit" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + } + ] + }, + { + "name": "QiskitQAOA", + "class": "QiskitQAOA", + "args": {}, + "module": "modules.solvers.qiskit_qaoa", + "requirements": [ + { + "name": "qiskit", + "version": "1.3.0" + }, + { + "name": "qiskit-optimization", + "version": "0.6.1" + }, + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "qiskit-algorithms", + "version": "0.3.1" + } + ], + "submodules": [ + { + "name": "qasm_simulator", + "class": "HelperClass", + "args": { + "device_name": "qasm_simulator" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + }, + { + "name": "qasm_simulator_gpu", + "class": "HelperClass", + "args": { + "device_name": "qasm_simulator_gpu" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + } + ] + } + ] + }, + { + "name": "QUBO", + "class": "QUBO", + "args": {}, + "module": "modules.applications.optimization.tsp.mappings.qubo", + "requirements": [ + { + "name": "networkx", + "version": "3.4.2" + }, + { + "name": "dwave_networkx", + "version": "0.8.15" + } + ], + "submodules": [ + { + "name": "Annealer", + "class": "Annealer", + "args": {}, + "module": "modules.solvers.annealer", + "requirements": [], + "submodules": [ + { + "name": "Simulated Annealer", + "class": "SimulatedAnnealingSampler", + "args": {}, + "module": "modules.devices.simulated_annealing_sampler", + "requirements": [ + { + "name": "dwave-samplers", + "version": "1.4.0" + } + ], + "submodules": [] + } + ] + } + ] + }, + { + "name": "GreedyClassicalTSP", + "class": "GreedyClassicalTSP", + "args": {}, + "module": "modules.solvers.greedy_classical_tsp", + "requirements": [ + { + "name": "networkx", + "version": "3.4.2" + } + ], + "submodules": [ + { + "name": "Local", + "class": "Local", + "args": {}, + "module": "modules.devices.local", + "requirements": [], + "submodules": [] + } + ] + }, + { + "name": "ReverseGreedyClassicalTSP", + "class": "ReverseGreedyClassicalTSP", + "args": {}, + "module": "modules.solvers.reverse_greedy_classical_tsp", + "requirements": [ + { + "name": "networkx", + "version": "3.4.2" + } + ], + "submodules": [ + { + "name": "Local", + "class": "Local", + "args": {}, + "module": "modules.devices.local", + "requirements": [], + "submodules": [] + } + ] + }, + { + "name": "RandomTSP", + "class": "RandomTSP", + "args": {}, + "module": "modules.solvers.random_classical_tsp", + "requirements": [ + { + "name": "networkx", + "version": "3.4.2" + } + ], + "submodules": [ + { + "name": "Local", + "class": "Local", + "args": {}, + "module": "modules.devices.local", + "requirements": [], + "submodules": [] + } + ] + } + ], + "requirements": [ + { + "name": "networkx", + "version": "3.4.2" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ] + }, + { + "name": "ACL", + "class": "ACL", + "module": "modules.applications.optimization.acl.acl", + "submodules": [ + { + "name": "MIPsolverACL", + "class": "MIPaclp", + "args": {}, + "module": "modules.solvers.mip_solver_acl", + "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.simulated_annealing_sampler", + "requirements": [ + { + "name": "dwave-samplers", + "version": "1.4.0" + } + ], + "submodules": [] + } + ] + } + ] + } + ], + "requirements": [ + { + "name": "pulp", + "version": "2.9.0" + }, + { + "name": "pandas", + "version": "2.2.3" + }, + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "openpyxl", + "version": "3.1.5" + } + ] + }, + { + "name": "MIS", + "class": "MIS", + "module": "modules.applications.optimization.mis.mis", + "submodules": [ + { + "name": "QIRO", + "class": "QIRO", + "args": {}, + "module": "modules.applications.optimization.mis.mappings.qiro", + "requirements": [ + { + "name": "qrisp", + "version": "0.5.2" + } + ], + "submodules": [ + { + "name": "QrispQIRO", + "class": "QIROSolver", + "args": {}, + "module": "modules.solvers.qrisp_qiro", + "requirements": [ + { + "name": "qrisp", + "version": "0.5.2" + } + ], + "submodules": [ + { + "name": "qrisp_simulator", + "class": "QrispSimulator", + "args": {}, + "module": "modules.devices.qrisp_simulator.qrisp_simulator", + "requirements": [ + { + "name": "qrisp", + "version": "0.5.2" + } + ], + "submodules": [] + } + ] + } + ] + }, + { + "name": "NeutralAtom", + "class": "NeutralAtom", + "args": {}, + "module": "modules.applications.optimization.mis.mappings.neutral_atom", + "requirements": [ + { + "name": "pulser", + "version": "1.1.1" + } + ], + "submodules": [ + { + "name": "NeutralAtomMIS", + "class": "NeutralAtomMIS", + "args": {}, + "module": "modules.solvers.neutral_atom_mis", + "requirements": [ + { + "name": "pulser", + "version": "1.1.1" + } + ], + "submodules": [ + { + "name": "MockNeutralAtomDevice", + "class": "MockNeutralAtomDevice", + "args": {}, + "module": "modules.devices.pulser.mock_neutral_atom_device", + "requirements": [ + { + "name": "pulser", + "version": "1.1.1" + } + ], + "submodules": [] + } + ] + } + ] + } + ], + "requirements": [] + }, + { + "name": "SCP", + "class": "SCP", + "module": "modules.applications.optimization.scp.scp", + "submodules": [ + { + "name": "qubovertQUBO", + "class": "QubovertQUBO", + "args": {}, + "module": "modules.applications.optimization.scp.mappings.qubovertqubo", + "requirements": [ + { + "name": "qubovert", + "version": "1.2.5" + } + ], + "submodules": [ + { + "name": "Annealer", + "class": "Annealer", + "args": {}, + "module": "modules.solvers.annealer", + "requirements": [], + "submodules": [ + { + "name": "Simulated Annealer", + "class": "SimulatedAnnealingSampler", + "args": {}, + "module": "modules.devices.simulated_annealing_sampler", + "requirements": [ + { + "name": "dwave-samplers", + "version": "1.4.0" + } + ], + "submodules": [] + } + ] + } + ] + } + ], + "requirements": [] + }, + { + "name": "BP", + "class": "BP", + "module": "modules.applications.optimization.bp.bp", + "submodules": [ + { + "name": "MIP", + "class": "MIP", + "args": {}, + "module": "modules.applications.optimization.bp.mappings.mip", + "requirements": [ + { + "name": "docplex", + "version": "2.25.236" + } + ], + "submodules": [ + { + "name": "MIPSolver", + "class": "MIPSolver", + "args": {}, + "module": "modules.solvers.mip_solver_bp", + "requirements": [ + { + "name": "pyscipopt", + "version": "5.0.1" + } + ], + "submodules": [ + { + "name": "Local", + "class": "Local", + "args": {}, + "module": "modules.devices.local", + "requirements": [], + "submodules": [] + } + ] + } + ] + }, + { + "name": "Ising", + "class": "Ising", + "args": {}, + "module": "modules.applications.optimization.bp.mappings.ising", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "docplex", + "version": "2.25.236" + } + ], + "submodules": [ + { + "name": "QAOA", + "class": "QAOA", + "args": {}, + "module": "modules.solvers.qaoa", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "scipy", + "version": "1.12.0" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "LocalSimulator", + "class": "LocalSimulator", + "args": { + "device_name": "LocalSimulator" + }, + "module": "modules.devices.braket.local_simulator", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", + "class": "SV1", + "args": { + "device_name": "SV1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" + }, + "module": "modules.devices.braket.sv1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", + "class": "TN1", + "args": { + "device_name": "TN1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" + }, + "module": "modules.devices.braket.tn1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", + "class": "Ionq", + "args": { + "device_name": "ionQ", + "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" + }, + "module": "modules.devices.braket.ionq", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", + "class": "Rigetti", + "args": { + "device_name": "Rigetti Aspen-9", + "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" + }, + "module": "modules.devices.braket.rigetti", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + } + ] + }, + { + "name": "PennylaneQAOA", + "class": "PennylaneQAOA", + "args": {}, + "module": "modules.solvers.pennylane_qaoa", + "requirements": [ + { + "name": "pennylane", + "version": "0.39.0" + }, + { + "name": "pennylane-lightning", + "version": "0.39.0" + }, + { + "name": "amazon-braket-pennylane-plugin", + "version": "1.30.2" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/sv1", + "class": "SV1", + "args": { + "device_name": "SV1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/sv1" + }, + "module": "modules.devices.braket.sv1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:::device/quantum-simulator/amazon/tn1", + "class": "TN1", + "args": { + "device_name": "TN1", + "arn": "arn:aws:braket:::device/quantum-simulator/amazon/tn1" + }, + "module": "modules.devices.braket.tn1", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony", + "class": "Ionq", + "args": { + "device_name": "ionq", + "arn": "arn:aws:braket:us-east-1::device/qpu/ionq/Harmony" + }, + "module": "modules.devices.braket.ionq", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3", + "class": "Rigetti", + "args": { + "device_name": "Rigetti", + "arn": "arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3" + }, + "module": "modules.devices.braket.rigetti", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy", + "class": "OQC", + "args": { + "device_name": "OQC", + "arn": "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy" + }, + "module": "modules.devices.braket.oqc", + "requirements": [ + { + "name": "amazon-braket-sdk", + "version": "1.88.2" + }, + { + "name": "botocore", + "version": "1.35.73" + }, + { + "name": "boto3", + "version": "1.35.73" + } + ], + "submodules": [] + }, + { + "name": "braket.local.qubit", + "class": "HelperClass", + "args": { + "device_name": "braket.local.qubit" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + }, + { + "name": "default.qubit", + "class": "HelperClass", + "args": { + "device_name": "default.qubit" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + }, + { + "name": "default.qubit.autograd", + "class": "HelperClass", + "args": { + "device_name": "default.qubit.autograd" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + }, + { + "name": "qulacs.simulator", + "class": "HelperClass", + "args": { + "device_name": "qulacs.simulator" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + }, + { + "name": "lightning.gpu", + "class": "HelperClass", + "args": { + "device_name": "lightning.gpu" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + }, + { + "name": "lightning.qubit", + "class": "HelperClass", + "args": { + "device_name": "lightning.qubit" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + } + ] + }, + { + "name": "QiskitQAOA", + "class": "QiskitQAOA", + "args": {}, + "module": "modules.solvers.qiskit_qaoa", + "requirements": [ + { + "name": "qiskit", + "version": "1.3.0" + }, + { + "name": "qiskit-optimization", + "version": "0.6.1" + }, + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "qiskit-algorithms", + "version": "0.3.1" + } + ], + "submodules": [ + { + "name": "qasm_simulator", + "class": "HelperClass", + "args": { + "device_name": "qasm_simulator" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + }, + { + "name": "qasm_simulator_gpu", + "class": "HelperClass", + "args": { + "device_name": "qasm_simulator_gpu" + }, + "module": "modules.devices.helper_class", + "requirements": [], + "submodules": [] + } + ] + } + ] + }, + { + "name": "QUBO", + "class": "QUBO", + "args": {}, + "module": "modules.applications.optimization.bp.mappings.qubo", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "docplex", + "version": "2.25.236" + } + ], + "submodules": [ + { + "name": "Annealer", + "class": "Annealer", + "args": {}, + "module": "modules.solvers.annealer", + "requirements": [], + "submodules": [ + { + "name": "Simulated Annealer", + "class": "SimulatedAnnealingSampler", + "args": {}, + "module": "modules.devices.simulated_annealing_sampler", + "requirements": [ + { + "name": "dwave-samplers", + "version": "1.4.0" + } + ], + "submodules": [] + } + ] + } + ] + } + ], + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "qiskit_optimization", + "version": "0.6.1" + }, + { + "name": "docplex", + "version": "2.25.236" + } + ] + }, + { + "name": "SALBP", + "class": "SALBP", + "module": "modules.applications.optimization.salbp.salbp", + "submodules": [ + { + "name": "MIP", + "class": "MIP", + "args": {}, + "module": "modules.applications.optimization.salbp.mappings.mip", + "requirements": [ + { + "name": "docplex", + "version": "2.25.236" + } + ], + "submodules": [ + { + "name": "MIPSolver", + "class": "MIPSolver", + "args": {}, + "module": "modules.solvers.mip_solver_bp", + "requirements": [ + { + "name": "pyscipopt", + "version": "5.0.1" + } + ], + "submodules": [ + { + "name": "Local", + "class": "Local", + "args": {}, + "module": "modules.devices.local", + "requirements": [], + "submodules": [] + } + ] + } + ] + } + ], + "requirements": [ + { + "name": "docplex", + "version": "2.25.236" + }, + { + "name": "networkx", + "version": "3.4.2" + } + ] + }, + { + "name": "GenerativeModeling", + "class": "GenerativeModeling", + "module": "modules.applications.qml.generative_modeling.generative_modeling", + "submodules": [ + { + "name": "Continuous Data", + "class": "ContinuousData", + "args": {}, + "module": "modules.applications.qml.generative_modeling.data.data_handler.continuous_data", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "PIT", + "class": "PIT", + "args": {}, + "module": "modules.applications.qml.generative_modeling.transformations.pit", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "pandas", + "version": "2.2.3" + } + ], + "submodules": [ + { + "name": "CircuitCopula", + "class": "CircuitCopula", + "args": {}, + "module": "modules.applications.qml.generative_modeling.circuits.circuit_copula", + "requirements": [ + { + "name": "scipy", + "version": "1.12.0" + } + ], + "submodules": [ + { + "name": "LibraryQiskit", + "class": "LibraryQiskit", + "args": {}, + "module": "modules.applications.qml.generative_modeling.mappings.library_qiskit", + "requirements": [ + { + "name": "qiskit", + "version": "1.3.0" + }, + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "qiskit_aer", + "version": "0.15.1" + } + ], + "submodules": [ + { + "name": "QCBM", + "class": "QCBM", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.qcbm", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "cma", + "version": "4.0.0" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "QGAN", + "class": "QGAN", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.qgan", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "torch", + "version": "2.2.2" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "Inference", + "class": "Inference", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.inference", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [] + } + ] + }, + { + "name": "LibraryPennylane", + "class": "LibraryPennylane", + "args": {}, + "module": "modules.applications.qml.generative_modeling.mappings.library_pennylane", + "requirements": [ + { + "name": "pennylane", + "version": "0.39.0" + }, + { + "name": "pennylane-lightning", + "version": "0.39.0" + }, + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "jax", + "version": "0.4.35" + }, + { + "name": "jaxlib", + "version": "0.4.35" + } + ], + "submodules": [ + { + "name": "QCBM", + "class": "QCBM", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.qcbm", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "cma", + "version": "4.0.0" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "QGAN", + "class": "QGAN", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.qgan", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "torch", + "version": "2.2.2" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "Inference", + "class": "Inference", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.inference", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [] + } + ] + }, + { + "name": "CustomQiskitNoisyBackend", + "class": "CustomQiskitNoisyBackend", + "args": {}, + "module": "modules.applications.qml.generative_modeling.mappings.custom_qiskit_noisy_backend", + "requirements": [ + { + "name": "qiskit", + "version": "1.3.0" + }, + { + "name": "qiskit_aer", + "version": "0.15.1" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "QCBM", + "class": "QCBM", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.qcbm", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "cma", + "version": "4.0.0" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "Inference", + "class": "Inference", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.inference", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [] + } + ] + }, + { + "name": "PresetQiskitNoisyBackend", + "class": "PresetQiskitNoisyBackend", + "args": {}, + "module": "modules.applications.qml.generative_modeling.mappings.preset_qiskit_noisy_backend", + "requirements": [ + { + "name": "qiskit", + "version": "1.3.0" + }, + { + "name": "qiskit_ibm_runtime", + "version": "0.33.2" + }, + { + "name": "qiskit_aer", + "version": "0.15.1" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "QCBM", + "class": "QCBM", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.qcbm", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "cma", + "version": "4.0.0" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "Inference", + "class": "Inference", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.inference", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [] + } + ] + } + ] + } + ] + }, + { + "name": "MinMax", + "class": "MinMax", + "args": {}, + "module": "modules.applications.qml.generative_modeling.transformations.min_max", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "CircuitStandard", + "class": "CircuitStandard", + "args": {}, + "module": "modules.applications.qml.generative_modeling.circuits.circuit_standard", + "requirements": [], + "submodules": [ + { + "name": "LibraryQiskit", + "class": "LibraryQiskit", + "args": {}, + "module": "modules.applications.qml.generative_modeling.mappings.library_qiskit", + "requirements": [ + { + "name": "qiskit", + "version": "1.3.0" + }, + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "qiskit_aer", + "version": "0.15.1" + } + ], + "submodules": [ + { + "name": "QCBM", + "class": "QCBM", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.qcbm", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "cma", + "version": "4.0.0" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "QGAN", + "class": "QGAN", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.qgan", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "torch", + "version": "2.2.2" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "Inference", + "class": "Inference", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.inference", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [] + } + ] + }, + { + "name": "LibraryPennylane", + "class": "LibraryPennylane", + "args": {}, + "module": "modules.applications.qml.generative_modeling.mappings.library_pennylane", + "requirements": [ + { + "name": "pennylane", + "version": "0.39.0" + }, + { + "name": "pennylane-lightning", + "version": "0.39.0" + }, + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "jax", + "version": "0.4.35" + }, + { + "name": "jaxlib", + "version": "0.4.35" + } + ], + "submodules": [ + { + "name": "QCBM", + "class": "QCBM", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.qcbm", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "cma", + "version": "4.0.0" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "QGAN", + "class": "QGAN", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.qgan", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "torch", + "version": "2.2.2" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "Inference", + "class": "Inference", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.inference", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [] + } + ] + }, + { + "name": "CustomQiskitNoisyBackend", + "class": "CustomQiskitNoisyBackend", + "args": {}, + "module": "modules.applications.qml.generative_modeling.mappings.custom_qiskit_noisy_backend", + "requirements": [ + { + "name": "qiskit", + "version": "1.3.0" + }, + { + "name": "qiskit_aer", + "version": "0.15.1" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "QCBM", + "class": "QCBM", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.qcbm", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "cma", + "version": "4.0.0" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "Inference", + "class": "Inference", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.inference", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [] + } + ] + }, + { + "name": "PresetQiskitNoisyBackend", + "class": "PresetQiskitNoisyBackend", + "args": {}, + "module": "modules.applications.qml.generative_modeling.mappings.preset_qiskit_noisy_backend", + "requirements": [ + { + "name": "qiskit", + "version": "1.3.0" + }, + { + "name": "qiskit_ibm_runtime", + "version": "0.33.2" + }, + { + "name": "qiskit_aer", + "version": "0.15.1" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "QCBM", + "class": "QCBM", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.qcbm", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "cma", + "version": "4.0.0" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "Inference", + "class": "Inference", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.inference", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [] + } + ] + } + ] + }, + { + "name": "CircuitCardinality", + "class": "CircuitCardinality", + "args": {}, + "module": "modules.applications.qml.generative_modeling.circuits.circuit_cardinality", + "requirements": [], + "submodules": [ + { + "name": "LibraryQiskit", + "class": "LibraryQiskit", + "args": {}, + "module": "modules.applications.qml.generative_modeling.mappings.library_qiskit", + "requirements": [ + { + "name": "qiskit", + "version": "1.3.0" + }, + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "qiskit_aer", + "version": "0.15.1" + } + ], + "submodules": [ + { + "name": "QCBM", + "class": "QCBM", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.qcbm", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "cma", + "version": "4.0.0" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "QGAN", + "class": "QGAN", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.qgan", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "torch", + "version": "2.2.2" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "Inference", + "class": "Inference", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.inference", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [] + } + ] + }, + { + "name": "LibraryPennylane", + "class": "LibraryPennylane", + "args": {}, + "module": "modules.applications.qml.generative_modeling.mappings.library_pennylane", + "requirements": [ + { + "name": "pennylane", + "version": "0.39.0" + }, + { + "name": "pennylane-lightning", + "version": "0.39.0" + }, + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "jax", + "version": "0.4.35" + }, + { + "name": "jaxlib", + "version": "0.4.35" + } + ], + "submodules": [ + { + "name": "QCBM", + "class": "QCBM", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.qcbm", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "cma", + "version": "4.0.0" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "QGAN", + "class": "QGAN", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.qgan", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "torch", + "version": "2.2.2" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "Inference", + "class": "Inference", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.inference", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [] + } + ] + }, + { + "name": "CustomQiskitNoisyBackend", + "class": "CustomQiskitNoisyBackend", + "args": {}, + "module": "modules.applications.qml.generative_modeling.mappings.custom_qiskit_noisy_backend", + "requirements": [ + { + "name": "qiskit", + "version": "1.3.0" + }, + { + "name": "qiskit_aer", + "version": "0.15.1" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "QCBM", + "class": "QCBM", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.qcbm", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "cma", + "version": "4.0.0" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "Inference", + "class": "Inference", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.inference", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [] + } + ] + }, + { + "name": "PresetQiskitNoisyBackend", + "class": "PresetQiskitNoisyBackend", + "args": {}, + "module": "modules.applications.qml.generative_modeling.mappings.preset_qiskit_noisy_backend", + "requirements": [ + { + "name": "qiskit", + "version": "1.3.0" + }, + { + "name": "qiskit_ibm_runtime", + "version": "0.33.2" + }, + { + "name": "qiskit_aer", + "version": "0.15.1" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "QCBM", + "class": "QCBM", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.qcbm", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "cma", + "version": "4.0.0" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "Inference", + "class": "Inference", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.inference", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [] + } + ] + } + ] + } + ] + } + ] + }, + { + "name": "Discrete Data", + "class": "DiscreteData", + "args": {}, + "module": "modules.applications.qml.generative_modeling.data.data_handler.discrete_data", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "CircuitCardinality", + "class": "CircuitCardinality", + "args": {}, + "module": "modules.applications.qml.generative_modeling.circuits.circuit_cardinality", + "requirements": [], + "submodules": [ + { + "name": "LibraryQiskit", + "class": "LibraryQiskit", + "args": {}, + "module": "modules.applications.qml.generative_modeling.mappings.library_qiskit", + "requirements": [ + { + "name": "qiskit", + "version": "1.3.0" + }, + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "qiskit_aer", + "version": "0.15.1" + } + ], + "submodules": [ + { + "name": "QCBM", + "class": "QCBM", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.qcbm", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "cma", + "version": "4.0.0" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "QGAN", + "class": "QGAN", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.qgan", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "torch", + "version": "2.2.2" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "Inference", + "class": "Inference", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.inference", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [] + } + ] + }, + { + "name": "LibraryPennylane", + "class": "LibraryPennylane", + "args": {}, + "module": "modules.applications.qml.generative_modeling.mappings.library_pennylane", + "requirements": [ + { + "name": "pennylane", + "version": "0.39.0" + }, + { + "name": "pennylane-lightning", + "version": "0.39.0" + }, + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "jax", + "version": "0.4.35" + }, + { + "name": "jaxlib", + "version": "0.4.35" + } + ], + "submodules": [ + { + "name": "QCBM", + "class": "QCBM", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.qcbm", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "cma", + "version": "4.0.0" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "QGAN", + "class": "QGAN", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.qgan", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "torch", + "version": "2.2.2" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "Inference", + "class": "Inference", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.inference", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [] + } + ] + }, + { + "name": "CustomQiskitNoisyBackend", + "class": "CustomQiskitNoisyBackend", + "args": {}, + "module": "modules.applications.qml.generative_modeling.mappings.custom_qiskit_noisy_backend", + "requirements": [ + { + "name": "qiskit", + "version": "1.3.0" + }, + { + "name": "qiskit_aer", + "version": "0.15.1" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "QCBM", + "class": "QCBM", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.qcbm", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "cma", + "version": "4.0.0" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "Inference", + "class": "Inference", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.inference", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [] + } + ] + }, + { + "name": "PresetQiskitNoisyBackend", + "class": "PresetQiskitNoisyBackend", + "args": {}, + "module": "modules.applications.qml.generative_modeling.mappings.preset_qiskit_noisy_backend", + "requirements": [ + { + "name": "qiskit", + "version": "1.3.0" + }, + { + "name": "qiskit_ibm_runtime", + "version": "0.33.2" + }, + { + "name": "qiskit_aer", + "version": "0.15.1" + }, + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [ + { + "name": "QCBM", + "class": "QCBM", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.qcbm", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "cma", + "version": "4.0.0" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "tensorboard", + "version": "2.18.0" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + }, + { + "name": "Inference", + "class": "Inference", + "args": {}, + "module": "modules.applications.qml.generative_modeling.training.inference", + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + } + ], + "submodules": [] + } + ] + } + ] + } + ] + } + ], + "requirements": [] + }, + { + "name": "Classification", + "class": "Classification", + "module": "modules.applications.qml.classification.classification", + "submodules": [ + { + "name": "Image Data", + "class": "ImageData", + "args": {}, + "module": "modules.applications.qml.classification.data.data_handler.image_data", + "requirements": [ + { + "name": "pandas", + "version": "2.2.3" + }, + { + "name": "pillow", + "version": "11.1.0" + }, + { + "name": "torch", + "version": "2.2.2" + }, + { + "name": "torchvision", + "version": "0.17.2" + }, + { + "name": "tqdm", + "version": "4.67.1" + }, + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "scikit-learn", + "version": "1.4.2" + }, + { + "name": "qiskit_aer", + "version": "0.15.1" + }, + { + "name": "tensorboard", + "version": "2.18.0" + } + ], + "submodules": [ + { + "name": "Hybrid", + "class": "Hybrid", + "args": {}, + "module": "modules.applications.qml.classification.training.hybrid", + "requirements": [ + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "torch", + "version": "2.2.2" + }, + { + "name": "tqdm", + "version": "4.67.1" + }, + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "tensorboardX", + "version": "2.6.2.2" + } + ], + "submodules": [] + } + ] + } + ], + "requirements": [ + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "torch", + "version": "2.2.2" + }, + { + "name": "pennylane", + "version": "0.39.0" + }, + { + "name": "qiskit", + "version": "1.3.0" + }, + { + "name": "qiskit-machine-learning", + "version": "0.8.2" + }, + { + "name": "torchvision", + "version": "0.17.2" + } + ] + }, + { + "name": "FreeFermion", + "class": "FreeFermion", + "module": "modules.applications.simulation.free_fermion.free_fermion", + "submodules": [ + { + "name": "AerSimulator", + "class": "AerSimulator", + "args": {}, + "module": "src.modules.applications.simulation.backends.aer_simulator", + "requirements": [ + { + "name": "qiskit", + "version": "1.3.0" + } + ], + "submodules": [] + } + ], + "requirements": [ + { + "name": "qiskit", + "version": "1.3.0" + }, + { + "name": "numpy", + "version": "1.26.4" + }, + { + "name": "matplotlib", + "version": "3.9.3" + }, + { + "name": "qiskit_aer", + "version": "0.15.1" + } + ] + } + ] } \ No newline at end of file diff --git a/.settings/requirements_full.txt b/.settings/requirements_full.txt index fe49be018..81fc39967 100644 --- a/.settings/requirements_full.txt +++ b/.settings/requirements_full.txt @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:973cb037747cb907a88b41e71c606d0788c011276ab6c680233681964230cfe9 -size 947 +oid sha256:a6f1fb4ff4d9b21f1efde29b4ab3997b14adc8e4e0041ec713622dbecc20dc9a +size 899 diff --git a/README.md b/README.md index 200d76325..62f30e4b3 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,17 @@ # QUARK: A Framework for Quantum Computing Application Benchmarking -Quantum Computing Application Benchmark (QUARK) is a framework for orchestrating benchmarks of different industry applications on quantum computers. +Quantum Computing Application Benchmark (QUARK) is a framework for orchestrating benchmarks of different industry-relevant applications on quantum computers. QUARK supports various applications such as the traveling salesperson problem (TSP), the maximum satisfiability (MaxSAT) problem, robot path optimization in the PVC sealing use case (PVC) -as well as new additions like the Maximum Independent Set (MIS), Set Cover Problem (SCP) and Auto Carrier Loading (ACL). +as well as the Maximum Independent Set (MIS), Set Cover Problem (SCP) and Auto Carrier Loading (ACL). In addition, QUARK features a simulation use cases that implements a benchmark for simulating free fermions on a quantum computer to investigate the dynamic properties of electronic systems, particularly in the context of the Hubbard model, which is relevant for describing high-temperature superconductivity. -It also includes two machine learning modules, namely generative modeling and image classification, which can be benchmarked with various training methods like quantum circuit born machine (QCBM) and quantum generative adversarial networks (QGANs) or a hybrid training method, respectively. -Several learning data sets were added for convenience. +It also includes two machine learning modules, namely generative modeling and image classification, which can be benchmarked with various training methods like quantum circuit born machine (QCBM) and quantum generative adversarial networks (QGANs) or a hybrid training method, respectively. Several learning data sets were added for convenience. QUARK features different solvers (e.g., simulated /quantum annealing and the quantum approximate optimization algorithm (QAOA)), quantum devices (e.g., IonQ and Rigetti), and simulators. It is designed to be easily extendable in all of its components: applications, mappings, solvers, devices, and any other custom modules. +## QUARK Versions upwards of 3.0 +Based on feedback from the community and due to the continouos growth of the framework, QUARK's architecture and module landscape was significantly changed between versions 2.1 and 3.0. This repo is the legacy code base up to version 2.1.7. Future development will focus on the new version of the QUARK framework. You can find the new core module and its documentation [here](https://github.com/QUARK-framework/QUARK-framework). If you want to work on a plugin yourself, you are free to use the [plugin template](https://github.com/QUARK-framework/QUARK-plugin-template) which facilitates the interfacing to other QUARK plugins and the core module significantly. + ## Publications Details about the motivations for the original framework can be found in the [accompanying QUARK paper from Finžgar et al](https://arxiv.org/abs/2202.03028). Even though the architecture changes significantly from QUARK 1.0 to the current version, the guiding principles still remain. More recent publications from Kiwit et al. [[1](https://arxiv.org/abs/2308.04082), [2](https://link.springer.com/article/10.1007/s13218-024-00864-7)] provide an updated overview of the functionalities and quantum machine learning features of QUARK. diff --git a/src/installer.py b/src/installer.py index fdedf229f..4f80f60ee 100644 --- a/src/installer.py +++ b/src/installer.py @@ -51,7 +51,9 @@ def __init__(self): {"name": "GenerativeModeling", "class": "GenerativeModeling", "module": "modules.applications.qml.generative_modeling.generative_modeling"}, {"name": "Classification", "class": "Classification", - "module": "modules.applications.qml.classification.classification"} + "module": "modules.applications.qml.classification.classification"}, + {"name": "FreeFermion", "class": "FreeFermion", + "module": "modules.applications.simulation.free_fermion.free_fermion"}, ] diff --git a/src/modules/applications/simulation/__init__.py b/src/modules/applications/simulation/__init__.py new file mode 100644 index 000000000..225d96e55 --- /dev/null +++ b/src/modules/applications/simulation/__init__.py @@ -0,0 +1,17 @@ +# Copyright 2022 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. + +""" +Module containing all simulation applications +""" diff --git a/src/modules/applications/simulation/backends/__init__.py b/src/modules/applications/simulation/backends/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/modules/applications/simulation/backends/aer_simulator.py b/src/modules/applications/simulation/backends/aer_simulator.py new file mode 100644 index 000000000..2b06247b1 --- /dev/null +++ b/src/modules/applications/simulation/backends/aer_simulator.py @@ -0,0 +1,95 @@ +from typing import TypedDict +import logging + +from qiskit_aer import AerSimulator as QiskitAS +from qiskit import QuantumCircuit + +from src.modules.applications.simulation.backends.backend_input import BackendInput +from src.modules.core import Core +from src.modules.applications.simulation.backends.backend_result import BackendResult +from src.utils import start_time_measurement, end_time_measurement + +logger = logging.getLogger() + + +class AerSimulator(Core): + + def __init__(self): + """ + Initializes the AerSimulator class. + """ + super().__init__("AerSimulator") + self.submodule_options = [] + + @staticmethod + def get_requirements() -> list: + """ + Returns a list of requirements for the FreeFermion application. + + :returns: A list of dictionaries containing the name and version of required packages + """ + return [ + {"name": "qiskit", "version": "1.3.0"}, + ] + + def get_default_submodule(self, option: str) -> None: + """ + Given an option string by the user, this returns a submodule. + + :param option: String with the chosen submodule + :return: Module of type Core + :raises NotImplementedError: If the option is not recognized + """ + raise NotImplementedError(f"Submodule Option {option} not implemented") + + def get_parameter_options(self): + """ + Returns the parameter options for the application. + """ + return { + "n_shots": { + "values": [100, 200, 400, 800, 1600], + "description": "Number of shots?", + "allow_ranges": False, + "postproc": int + } + } + + class AerSimConfig(TypedDict): + """ + """ + n_shots: int + + def postprocess(self, input_data: BackendInput, config: AerSimConfig, **kwargs) -> tuple[any, float]: + """ + Processes data passed to this module from the submodule. + + :param input_data: The input data for postprocessing + :param config: The configuration dictionary + :param **kwargs: Additional keyword arguments + :returns: A tuple containing the processed solution quality and the time taken for evaluation + """ + start = start_time_measurement() + backend = QiskitAS() + circuits = input_data.circuits + self.warn_on_large_circuits(circuits) + + counts_per_circuit = [] + logger.info(f"Running circuits on AerSimulator") + for n, circuit in enumerate(circuits): + logger.info(f"Running circuit for {n} Trotter steps") + counts_per_circuit.append(backend.run(circuit, shots=config['n_shots']).result().get_counts(circuit)) + + results = BackendResult( + counts=counts_per_circuit, + n_shots=config['n_shots'] + ) + return results, end_time_measurement(start) + + @staticmethod + def warn_on_large_circuits(circuits: list[QuantumCircuit]) -> None: + warning_n_qubits = 30 + max_n_qubit = max([circuit.num_qubits for circuit in circuits]) + if max_n_qubit > warning_n_qubits: + logger.warning(f"Simulating circuits with over {warning_n_qubits} qubits. The high memory" + f" requirements can lead to memory errors on some systems.") diff --git a/src/modules/applications/simulation/backends/backend_input.py b/src/modules/applications/simulation/backends/backend_input.py new file mode 100644 index 000000000..f98c20d82 --- /dev/null +++ b/src/modules/applications/simulation/backends/backend_input.py @@ -0,0 +1,10 @@ +from dataclasses import dataclass +from qiskit import QuantumCircuit + + +@dataclass +class BackendInput: + """ + Input required for a quantum backend. + """ + circuits: list[QuantumCircuit] diff --git a/src/modules/applications/simulation/backends/backend_result.py b/src/modules/applications/simulation/backends/backend_result.py new file mode 100644 index 000000000..57e4a665a --- /dev/null +++ b/src/modules/applications/simulation/backends/backend_result.py @@ -0,0 +1,10 @@ +from dataclasses import dataclass + + +@dataclass +class BackendResult: + """ + Result returned from a quantum backend. + """ + counts: list[dict[str, int]] + n_shots: int diff --git a/src/modules/applications/simulation/free_fermion/__init__.py b/src/modules/applications/simulation/free_fermion/__init__.py new file mode 100644 index 000000000..a36aaf8cf --- /dev/null +++ b/src/modules/applications/simulation/free_fermion/__init__.py @@ -0,0 +1,17 @@ +# Copyright 2022 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. + +""" +Module for Free Fermion simulations +""" diff --git a/src/modules/applications/simulation/free_fermion/free_fermion.py b/src/modules/applications/simulation/free_fermion/free_fermion.py new file mode 100644 index 000000000..cc6197d0a --- /dev/null +++ b/src/modules/applications/simulation/free_fermion/free_fermion.py @@ -0,0 +1,187 @@ +from typing import TypedDict, Union +import logging + +import matplotlib.pyplot as plt +import numpy as np + +from src.modules.applications.simulation.backends.aer_simulator import AerSimulator +from src.modules.applications.simulation.backends.backend_input import BackendInput +from src.modules.applications.simulation.backends.backend_result import BackendResult +from src.modules.applications.simulation.free_fermion.free_fermion_helpers import ( + create_circuit, + exact_values_and_variance, + computes_score_values, + extract_simulation_results +) +from src.modules.applications.simulation.simulation import Simulation +from src.utils import start_time_measurement, end_time_measurement + +logger = logging.getLogger() + + +class FreeFermion(Simulation): + + def __init__(self): + """ + Initializes the FreeFermion class. + """ + super().__init__("FreeFermion") + self.submodule_options = ["AerSimulator"] + + @staticmethod + def get_requirements() -> list: + """ + Returns a list of requirements for the FreeFermion application. + + :returns: A list of dictionaries containing the name and version of required packages + """ + return [ + {"name": "qiskit", "version": "1.3.0"}, + {"name": "numpy", "version": "1.26.4"}, + {"name": "matplotlib", "version": "3.9.3"}, + {"name": "qiskit_aer", "version": "0.15.1"}, + {"name": "scipy", "version": "1.12.0"}, + ] + + def get_default_submodule(self, option: str) -> Union[AerSimulator]: + """ + Given an option string by the user, this returns a submodule. + + :param option: String with the chosen submodule + :return: Module of type Core + :raises NotImplementedError: If the option is not recognized + """ + if option == "AerSimulator": + return AerSimulator() + else: + raise NotImplementedError(f"Submodule Option {option} not implemented") + + def get_parameter_options(self): + """ + Returns the parameter options for the application. + """ + return { + "Lx": { + "values": [2, 4, 6], + "description": "What lattice width Lx to use for the simulation? Must be even integer.", + "custom_input": True, + "allow_ranges": False, + "postproc": int + }, + "Ly": { + "values": [2, 4, 6], + "description": "What lattice height Ly to use for the simulation? Must be even integer.", + "custom_input": True, + "allow_ranges": False, + "postproc": int + }, + "trotter_dt": { + "values": [0.2], + "description": "Which time step size?", + "custom_input": True, + "allow_ranges": False, + "postproc": float + }, + "trotter_n_step": { + "values": ["2*Ly"], + "description": "Number of time steps (default is twice Ly value)? Provide total number of steps as " + "integer if using custom value.", + "custom_input": True, + "allow_ranges": False, + }, + } + + class Config(TypedDict): + """ + A configuration dictionary for the application. + """ + Lx: int + Ly: int + trotter_dt: float + trotter_n_step: str | int + + def preprocess(self, input_data: any, conf: Config, **kwargs) -> tuple[BackendInput, float]: + """ + Generate data that gets passed to the next submodule. + + :param input_data: The input data for preprocessing + :param conf: The configuration parameters + :return: A tuple containing the preprocessed output and the time taken for preprocessing + """ + start = start_time_measurement() + lx = conf['Lx'] + ly = conf['Ly'] + if lx % 2 != 0: + raise ValueError(f"Lx must be an even integer. Provided Lx: {lx}") + if ly % 2 != 0: + raise ValueError(f"Ly must be an even integer. Provided Ly: {ly}") + trotter_n_step = conf['trotter_n_step'] + if isinstance(trotter_n_step, str): + trotter_n_step = 2 * ly + trotter_dt = conf['trotter_dt'] + n_qubits = ly * lx * 3 // 2 + logger.info( + f"Starting free fermion simulation benchmark on a {lx}x{ly} lattice ({n_qubits} qubits)") + logger.info(f"Using a trotter step size of {trotter_dt} and up to {trotter_n_step} trotter steps") + circuits = [create_circuit(lx, ly, trotter_dt, n) for n in range(trotter_n_step)] + return BackendInput(circuits), end_time_measurement(start) + + def postprocess(self, input_data: BackendResult, conf: Config, **kwargs) -> tuple[any, float]: + """ + Processes data passed to this module from the submodule. + + :param input_data: The input data for postprocessing + :param conf: The configuration parameters + :returns: A tuple containing the processed solution quality and the time taken for evaluation + """ + + start = start_time_measurement() + counts_per_circuit, n_shots = input_data.counts, input_data.n_shots + lx, ly, trotter_dt = conf['Lx'], conf['Ly'], conf['trotter_dt'] + trotter_n_step = conf['trotter_n_step'] + if isinstance(trotter_n_step, str): + trotter_n_step = 2 * ly + + simulation_results = np.array(extract_simulation_results(trotter_dt, lx, ly, n_shots, counts_per_circuit)) + exact_results = np.real(np.array(exact_values_and_variance(trotter_n_step, trotter_dt, lx, ly))) + score_gate, score_shot, score_runtime = computes_score_values(exact_results[:, 1] - simulation_results[:, 1], + simulation_results[:, 2], + exact_results[:, 2], lx * ly) + logger.info(f"Benchmark score (number of gates): {score_gate}") + logger.info(f"Benchmark score (number of shots): {score_shot}") + logger.info(f"Benchmark score (number of trotter steps): {score_runtime}") + self.metrics.add_metric_batch({ + "application_score_value": score_gate, + "application_score_value_gates": score_gate, + "application_score_value_shots": score_shot, + "application_score_value_trotter_steps": score_runtime, + "application_score_unit": "N_gates", + "application_score_type": "int" + }) + self.create_and_store_plot( + trotter_n_step, + trotter_dt, + simulation_results, + exact_results, + score_gate, + kwargs["store_dir"]) + return computes_score_values, end_time_measurement(start) + + @staticmethod + def create_and_store_plot(n_trot: int, dt: float, simulation_results, + exact_results, score_gates: int, store_dir) -> None: + plt.plot(np.array(list(range(n_trot))) * dt, exact_results[:, 1], color="black", label="exact") + plt.errorbar(simulation_results[:, 0], simulation_results[:, 1], + yerr=simulation_results[:, 2], label="simulated") + plt.title("SCORE = " + str(score_gates) + " gates") + plt.xlabel("Time") + plt.ylabel("Imbalance") + plt.legend() + plt.savefig(f"{store_dir}/simulation_plot.pdf") + plt.close() + + def save(self, path, iter_count) -> None: + """ + This method is required to implement the application, but at the moment it does nothing. + """ + pass diff --git a/src/modules/applications/simulation/free_fermion/free_fermion_helpers.py b/src/modules/applications/simulation/free_fermion/free_fermion_helpers.py new file mode 100644 index 000000000..bc5113cfa --- /dev/null +++ b/src/modules/applications/simulation/free_fermion/free_fermion_helpers.py @@ -0,0 +1,276 @@ +import numpy as np +import logging +from qiskit import QuantumCircuit +from qiskit_aer import AerSimulator +from scipy.stats import chi2 +from scipy.optimize import fsolve +from scipy.integrate import solve_ivp + +logger = logging.getLogger() + + +def coordinates(x: int, y: int, lx: int, ly: int) -> int: + """Coordinate of site (x, y)""" + return (x % lx) + (y % ly) * lx + + +def create_couplings(lx, ly) -> list[list[int]]: + """Creates the list of couplings.""" + + l_tot = lx * ly + couplings_e: list[list[int]] = [] + for j in range(l_tot): + # runs through all the lattice sites. j//Lx is the vertical coordinate + # (= lx: + self.sig *= -1 + + def dc(self, c: np.array, d: np.array): # derivative of evolution of c= + deriv: np.array = np.zeros((self.n, self.n)) * 1j + deriv[self.j, :] += 1j * (c[self.k, :] - self.s * d[self.k, :]) * self.sig + deriv[self.k, :] += 1j * (c[self.j, :] + self.s * d[self.j, :]) * self.sig + deriv[:, self.j] += 1j * (-c[:, self.k] + self.s * np.conj(d[self.k, :])) * self.sig + deriv[:, self.k] += 1j * (-c[:, self.j] - self.s * np.conj(d[self.j, :])) * self.sig + return deriv + + def dd(self, c: np.array, d: np.array) -> np.array: # derivative of evolution of D= + deriv: np.array = np.zeros((self.n, self.n)) * 1j + deriv[self.j, :] += 1j * (-d[self.k, :] + self.s * c[self.k, :]) * self.sig + deriv[self.k, :] += 1j * (-d[self.j, :] - self.s * c[self.j, :]) * self.sig + deriv[:, self.j] += 1j * (-d[:, self.k] - self.s * c[self.k, :]) * self.sig + deriv[self.k, self.j] += 1j * self.s * self.sig + deriv[:, self.k] += 1j * (-d[:, self.j] + self.s * c[self.j, :]) * self.sig + deriv[self.j, self.k] += -1j * self.s * self.sig + return deriv + + def diff(self, t: float, cvec: np.array): # function to call for the differential equation + """Function to pass to solve_ivp""" + call: np.array = cvec.reshape((2 * self.n, self.n)) + return (np.concatenate((self.dc(call[:self.n], call[self.n:]), + self.dd(call[:self.n], call[self.n:])))).reshape(2 * self.n ** 2) + + +def exact_values_and_variance(n_trot: int, dt: float, lx: int, ly: int): + l = lx * ly + n = 2 * l + # index 0: number of steps; index 1: expectation value of imbalance; index + # 2: expectation value of square of imbalance + res: np.array = np.zeros((n_trot, 3)) + + for bb in [[0, 0], [0, 1], [1, 0], [1, 1]]: # loops over the 4 boundary conditions + boundary_vert = bb[0] + boundary_hor = bb[1] + + c: np.array = np.zeros((n, n)) * 1j + d: np.array = np.zeros((n, n)) * 1j + + for j in range(l // 2): # initialize in the product state + c[j, j] = 1 + + res[0, 1] += -1 + res[0, 2] += 1 + + # applies horizontal XX, horizontal YY, vertical XX, vertical YY + order = [[1, 0, 1], [1, 0, -1], [0, 1, 1], [0, 1, -1]] + f: list = [1 / l] * (l // 2) + [-1 / l] * (l // 2) # observable in Eq10-11 + for t in range(n_trot - 1): # loop over Trotter steps + for o in order: # loop over the 4 edges configurations + for k in range(ly): # loop over vertical coordinate + for j in range(lx): # loop over horizontal coordinate + jcur = coordinates(j, k, lx, ly) + kcur = coordinates(j + o[0], k + o[1], lx, ly) + scur = o[2] + solver = FreeFermionSolver(jcur, kcur, scur, lx, ly, boundary_hor, boundary_vert, n) + cc: np.array = (solve_ivp(solver.diff, [0, dt / 2], np.concatenate((c, d)).reshape(2 * n ** 2), + atol=1e-9, rtol=1e-9).y)[:, -1].reshape((2 * n, n)) + c = cc[:n] + d = cc[n:] + a: float = np.sum([f[j] * (1 - 2 * c[j, j]) for j in range(l)]) + var: float = 4 * np.sum([f[i] * f[j] * c[i, i] * c[j, j] for i in range(l) for j in range(l)]) + var += -4 * np.sum([f[i] * f[j] * c[i, j] * c[j, i] for i in range(l) for j in range(l)]) + var += 4 * np.sum([f[i] ** 2 * c[i, i] for i in range(l)]) + var += 4 * np.sum([f[i] * f[j] * abs(d[i, j]) ** 2 for i in range(l) for j in range(l)]) + res[t + 1, 0] += t + 1 + res[t + 1, 1] += np.real(a) + res[t + 1, 2] += np.real(var) + + res = res / 4 + res[:, 2] = np.sqrt(res[:, 2] - res[:, 1] ** 2) # standard deviation per shot + return res + + +def state_preparation(u, lx: int, ly: int): + l = lx * ly + + for j in range(l // 2 - 2 * (lx // 2)): # toric code ground state preparation on the ancillas + if (j // (lx // 2)) % 2 == 0: + k = l // 2 - 2 * (lx // 2) - j - 1 + f1 = l + (k % (l // 2)) + f2 = l + ((k // (lx // 2)) + 1) * lx // 2 + (k % (lx // 2)) + f3 = l + ((k // (lx // 2)) + 1) * lx // 2 + (((k % (lx // 2)) + 1) % (lx // 2)) + f4 = l + ((k // (lx // 2)) + 2) * lx // 2 + (k % (lx // 2)) + u.h(f1) + u.cx(f1, f2) + u.cx(f1, f3) + u.cx(f1, f4) + for j in range(lx // 2 - 1): + k = lx // 2 - 2 - j + f1 = l + k + f2 = l + ((k // (lx // 2)) + 1) * lx // 2 + (k % (lx // 2)) + f3 = l + ((k // (lx // 2)) + 0) * lx // 2 + (((k % (lx // 2)) + 1) % (lx // 2)) + f4 = l + (((k // (lx // 2)) - 1) % ly) * lx // 2 + (k % (lx // 2)) + u.h(f1) + u.cx(f1, f2) + u.cx(f1, f3) + u.cx(f1, f4) + for j in range(l // 2): # change of basis of the toric code + if (j // (lx // 2)) % 2 == 1: + u.sdg(l + j) + u.h(l + j) + if (j // (lx // 2)) % 2 == 0: + u.s(l + j) + u.h(l + j) + u.s(l + j) + + +def trotter_step(u, dt: float, lx: int, e: list): + for ind2 in [1, 0]: + # ind2=0 does vertical edges, and ind2=1 does horizontal edges. + # Implements the difference horizontal/vertical in Eq7 + for ind in [0, 1]: + # ind=0 implements XX on even rows/columns and YY on odd rows/columns. + # ind=1 implements the other way around. Implements the difference 1/2 in Eq7 + for c in e: # loops over all edges + if c[3] == ind2: # selects horizontal or vertical edges + sig: int = 1 + if c[3] == 0 and (c[0] % 2) == 0: + # implements the -1 in the fermionic encoding that occurs only for even columns + sig *= -1 + # the sequence of H's and Sdg's are conjugating the central ZZZ rotation + # into some rotations like XXY + if (c[3] == 0 and c[0] % 2 == 1 - ind) or (c[3] == 1 and c[0] // lx) % 2 == 1 - ind: + # if c is a column (line), apply Y only when the parity of the column (line) is 1-ind. + u.sdg(c[0]) + u.h(c[0]) + if (c[3] == 0 and c[0] % 2 == 1 - ind) or (c[3] == 1 and (c[0] // lx) % 2 == 1 - ind): # same + u.sdg(c[1]) + u.h(c[1]) + if c[3] == 1: # apply Y on the ancilla only for horizontal edges + u.sdg(c[2]) + u.h(c[2]) + + u.cx(c[0], c[1]) # Pauli gadget that implements a ZZZ rotation on qubits c[0], c[1], c[2] + u.rzz(-2 * dt * sig / 2, c[1], c[2]) + u.cx(c[0], c[1]) + + u.h(c[2]) + if c[3] == 1: + u.s(c[2]) + u.h(c[1]) + if (c[3] == 0 and c[0] % 2 == 1 - ind) or (c[3] == 1 and (c[0] // lx) % 2 == 1 - ind): + u.s(c[1]) + u.h(c[0]) + if (c[3] == 0 and c[0] % 2 == 1 - ind) or (c[3] == 1 and (c[0] // lx) % 2 == 1 - ind): + u.s(c[0]) + + +def create_circuit(lx: int, ly: int, dt: float, n_trot: int) -> np.array: + logger.info(f"Creating simulation circuit for {n_trot} Trotter steps") + e = create_couplings(lx, ly) + u = QuantumCircuit(lx * ly * 3 // 2) + state_preparation(u, lx, ly) + for j in range(lx * ly // 2): + u.x(j) # applies X where there is a fermion. The state has to satisfy the constraint that + # there is an even number of fermions per face + for t in range(n_trot): + trotter_step(u, dt, lx, e) + u.measure_all() + return u + + +def extract_simulation_results(dt: float, lx: int, ly: int, n_shots: int, counts_per_circuit: list[dict[str, int]]) \ + -> list[tuple[float, float, float]]: + """Returns the simulation results. + + For every time step returns the time, expectation value and standard deviation as a tuple for that step. + """ + l_tot = lx * ly + results = [] + for n, counts in enumerate(counts_per_circuit): + res: float = 0 + var: float = 0 + for s in counts: + a: float = 0 + for j in range(l_tot // 2): + if s[l_tot * 3 // 2 - 1 - j] == '1': + a += -1 / l_tot + else: + a += 1 / l_tot + if s[l_tot * 3 // 2 - 1 - j - l_tot // 2] == '1': + a += 1 / l_tot + else: + a += -1 / l_tot + res += a * counts[s] + var += a ** 2 * counts[s] + res = res / n_shots + var = var / n_shots + results.append((dt * n, res, np.sqrt(var - res ** 2) / np.sqrt(n_shots))) + return results + + +def computes_score_values(delta: np.array, std_exp: np.array, std: np.array, l: int) -> tuple[int, int, int]: + """ Computes score values. + + Returns the score in terms of + 1.) Number of gates + 2.) Number of shots + 3.) Number of Trotter steps + """ + n: int = len(delta) + delta_corrected = np.zeros(n) + for j in range(n): + if std[j] > 0: + delta_corrected[j] = max(abs(delta[j]), std_exp[j]) / std[j] + # redefines delta as the maximum between the experimental standard deviation and the measured value, + # normalized by the theoretical standard deviation + rewards: float = float(delta_corrected[0]) ** 2 + opt: int = 0 + for j in range(1, n): # looks for the time point opt with maximal reward + temp: float = float(delta_corrected[j]) ** 2 / (j + 1) + if temp > rewards: + rewards = temp + opt = j + + def ff(x): return chi2.cdf(delta_corrected[opt] ** 2 * x, df=n - 1) - 0.997 + x: float = fsolve(ff, n / delta_corrected[opt] ** 2)[0] + # looks for x such that chi2.cdf(delta[opt]**2*x*L,df=1)=0.997 + + return 6 * int(np.floor(x) + 1) * (opt + 1) * l, int(np.floor(x) + 1), int(np.floor(x) + 1) * (opt + 1) diff --git a/src/modules/applications/simulation/simulation.py b/src/modules/applications/simulation/simulation.py new file mode 100644 index 000000000..e97daa973 --- /dev/null +++ b/src/modules/applications/simulation/simulation.py @@ -0,0 +1,24 @@ +# 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. +import logging +from abc import ABC, abstractmethod + +from modules.applications.application import Application + + +class Simulation(Application, ABC): + """ + Module for QUARK, is used by all Simulation applications. + """ + pass