Backends
Available Backends
To check available backends we will create a StrangeworksOptimizer
object and call the backends
method. We can print the names of the available backends with the following code:
from strangeworks_optimization import StrangeworksOptimizer
optimizer = StrangeworksOptimizer()
backends = optimizer.backends()
for backend in backends:
print(backend.name)
Here's are some available backend samplers supported through Strangeworks Optimization:
Solver | Description | Backends (see catalog for complete list) |
---|---|---|
D-Wave | D-Wave's quantum annealing hardware relies on metal loops of niobium that have tiny electrical currents running through them. | dwave.Advantage_system6.4 , dwave.Advantage2_prototype2.3 , dwave.hybrid_binary_quadratic_model_version2p , dwave.hybrid_discrete_quadratic_model_version1p , dwave.hybrid_constrained_quadratic_model_version1p , dwave.SimulatedAnnealingSampler , dwave.RandomSampler |
Gurobi | Gurobi is an industry-leading solver for mathematical optimization | gurobi.qubo , gurobi.mps |
Toshiba | Toshiba's Simulated Bifurcation Machine (SBM) is a quantum-inspired optimization algorithm that can be run on classical hardware | toshibo.qubo , toshibo.qplib , toshiba.pubo |
Quantagonia | Quantagonia offers a Hybrid Quantum Platform for solving complex computational problems | quantagonia.qubo , quantagonia.mps |
JiJ | JiJ is part of the Strangeworks Syndicate and is working on developing quantum annealing devices | jij.SA , jij.SQA , jij.LeapHybridCQM |
NEC | NEC is developing quantum annealers using superconducting parametron qubits with a greater number of all-to-all connected qubits. | nec.vector_annealer |
Hitachi | CMOS annealing machine is a non-Neumann architecture computer that Hitachi has developed by utilizing the structure of SRAM, a storage device, to perform optimization processing with the Ising model. | hitachi.cmos_annealer |
Fujitsu | Fujitsu's Digital Annealer provides an alternative to quantum computing technology, which is at present both very expensive and difficult to run. | fujitsu.DA3 |
Aquila | Aquila is QuEra's 256-qubit neutral-atom quantum computer. It operates as an analog Hamiltonian simulator on a user-configurable architecture, executing programmable coherent quantum dynamics on up to 256 neutral-atom qubits | braket.aquila |
Note: This list is not exhaustive. For a complete list of backends, see the catalog or reach out via Slack here.
Solver Parameters
Particular solvers may have specific parameters that can be set.
For example, the D-Wave
sampler has a num_reads
parameter that can be set to specify the number of samples to generate.
The Gurobi
sampler has a time_limit
parameter that can be set to specify the maximum time to run the solver and so on.
To set the parameters for a particular solver, we can pass options
to the StrangeworksOptimizer
during initialization.
from strangeworks_optimization import StrangeworksOptimizer
...
optimizer = StrangeworksOptimizer(model=model, solver=solver, options=options)
sw_job = optimizer.run()
Each sampler has its own Parameter Model available for import from strangeworks_optimization_models.parameter_models
. See the Optimization Providers section for more details on individual solvers and their parameters.