BQM Solver Properties#

This section describes the properties of quantum-classical hybrid binary quadratic model solvers such as the Leap service’s hybrid_binary_quadratic_model_version2. For the parameters you can configure, see the BQM Solver Parameters section.

category#

Type of solver.

  • hybrid: Quantum-classical hybrid; typically one or more classical algorithms run on the problem while outsourcing to a quantum processing unit (QPU) parts of the problem where it benefits most.

Example#

>>> from dwave.system import LeapHybridBQMSampler
...
>>> sampler = LeapHybridBQMSampler()    
>>> sampler.properties["category"]      
'hybrid'

maximum_number_of_biases#

Maximum number of biases, both linear and quadratic in total, accepted by the solver.

Example#

>>> from dwave.system import LeapHybridBQMSampler
...
>>> sampler = LeapHybridBQMSampler()                
>>> sampler.properties["maximum_number_of_biases"]  
200000000

maximum_number_of_variables#

Maximum number of problem variables accepted by the solver.

Example#

>>> from dwave.system import LeapHybridBQMSampler
...
>>> sampler = LeapHybridBQMSampler()                    
>>> sampler.properties["maximum_number_of_variables"]   
1000000

maximum_time_limit_hrs#

Maximum allowed run time, in hours, that can be specified for the solver.

Example#

>>> from dwave.system import LeapHybridBQMSampler
...
>>> sampler = LeapHybridBQMSampler()                
>>> sampler.properties["maximum_time_limit_hrs"]    
24.0

minimum_time_limit#

Minimum required run time, in seconds, the solver must be allowed to work on the given problem. Specifies the minimum time as a piecewise-linear curve defined by a set of floating-point pairs. The second element is the minimum required time; the first element in each pair is some measure of the problem, dependent on the solver: for hybrid BQM solvers, this is the number of variables.

The minimum time for any particular problem is a linear interpolation calculated on two pairs that represent the relevant range for the given measure of the problem. For example, if minimum_time_limit for a hybrid BQM solver were [[1, 0.1], [100, 10.0], [1000, 20.0]], then the minimum time for a 50-variable problem would be 5 seconds, the linear interpolation of the first two pairs that represent problems with between 1 to 100 variables.

For more details, see Ocean software’s samplers section for solver methods that calculate this parameter, and their descriptions.

Example#

>>> from dwave.system import LeapHybridBQMSampler
...
>>> sampler = LeapHybridBQMSampler()                
>>> sampler.properties["minimum_time_limit"]        
[[1, 3.0],
 [1024, 3.0],
 [4096, 10.0],
 [10000, 40.0],
 [30000, 200.0],
 [100000, 600.0],
 [1000000, 600.0]]

parameters#

List of the parameters supported for the solver.

Example#

>>> from dwave.system import LeapHybridBQMSampler
...
>>> sampler = LeapHybridBQMSampler()                
>>> sampler.properties["parameters"]["time_limit"]  
'Maximum requested runtime in seconds.'

quota_conversion_rate#

Rate at which user or project quota is consumed for the solver as a ratio to QPU solver usage. Different solver types may consume quota at different rates.

Time is deducted from your quota according to:

\[\frac{num\_seconds}{quota\_conversion\_rate}\]

See the Solver Usage Charges section for more information.

Example#

>>> from dwave.system import LeapHybridBQMSampler
...
>>> sampler = LeapHybridBQMSampler()                
>>> sampler.properties["quota_conversion_rate"]     
20

supported_problem_types#

Indicates what problem types are supported for the solver.

BQM solvers support the following energy-minimization problem types:

  • bqm

    Binary quadratic models (BQM) are unconstrained and typically represent problems of decisions that could either be true (or yes) or false (no); for example, should an antenna transmit, or did a network node fail? The model uses \(0/1\)-valued variables and \(-1/1\)-valued variables; constraints are typically represented as penalty models.

Example#

>>> from dwave.system import LeapHybridBQMSampler
...
>>> sampler = LeapHybridBQMSampler()                
>>> sampler.properties["supported_problem_types"]   
['bqm']

version#

Version number of the solver.

Example#

>>> from dwave.system import LeapHybridBQMSampler
...
>>> sampler = LeapHybridBQMSampler()    
>>> sampler.properties["version"]       
2.2