DWAVE

BF - Brute Force

The Brute Force Solver utilizes a conventional brute force approach to search through all possible solutions. The solver becomes very slow for problems with 18 or more variables.

Provider: dwave

Solution Example:

Parameters:

None

The Dialectic Search Solver uses a path search between two states representing the thesis and antithesis. A greedy search is used to reduce the energy by applying bit flips in an attempt to find the solution. For the Dialectic Search Solver, if the target keyword is set, the max_iter keyword is ignored. If the timeout keyword is provided, the max_time keyword is ignored. However, both can be used as equivalents. Both options are available for a more convenient interaction over multiple different solvers expecting different parameter names, esentially tuning the same thing.

Provider: dwave

Solution Example:

Parameters:

decomposer : Decomposer

Decomposer parameters.

Default:

size : int

Nominal number of variables in the subproblem. Actual subproblem can be smaller, depending on other parameters (e.g. `min_gain`).

Default: 10

min_gain : float

Minimum reduction required to BQM energy, given the current sample. A variable is included in the subproblem only if inverting its sample value reduces energy by at least this amount.

Default: None

rolling : bool

If True, successive calls for the same problem (with possibly different samples) produce subproblems on different variables, selected by rolling down the list of all variables sorted by decreasing impact.

Default: true

rolling_history : float

Fraction of the problem size, as a float in range 0.0 to 1.0, that should participate in the rolling selection. Once reached, subproblem unrolling is reset. Min: 0.0, Max: 1.0

Default: 1

silent_rewind : bool

If False, raises :exc:`EndOfStream` when resetting/rewinding the subproblem generator upon the reset condition for unrolling.

Default: true

traversal : 'energy', 'bfs', 'pfs'

Traversal algorithm used to pick a subproblem of `size` variables. Options are: energy: Use the next `size` variables in the list of variables ordered by descending energy impact. bfs: Breadth-first traversal seeded by the next variable in the energy impact list. pfs: Priority-first traversal seeded by variables from the energy impact list, proceeding with the variable on the search boundary that has the highest energy impact.

Default: "energy"

tabu_antithesis : Tabu

Tabu parameters for the antithesis phase.

Default:

num_reads : int

Number of reads. Each read is generated by one run of the tabu algorithm. If `num_reads` is not explicitly given, it is selected to match the number of initial states given. If initial states are not provided, only one read is performed.

Default: None

tenure : int

Tabu tenure, which is the length of the tabu list, or number of recently explored solutions kept in memory. Default is a quarter of the number of problem variables up to a maximum value of 20.

Default: None

timeout : float

Maximum running time per read in milliseconds.

Default: 100

initial_states_generator : 'none', 'tile', 'random'

Defines the expansion of `initial_states` if fewer than `num_reads` are specified: 'none': if the number of initial states specified is smaller than `num_reads`, raises ``ValueError``. 'tile': reuses the specified initial states if fewer than `num_reads` or truncates if greater. 'random': expands the specified initial states with randomly generated states if fewer than `num_reads` or truncates if greater.

Default: "random"

tabu_synthesis : Tabu

Tabu parameters for the synthesis phase.

Default:

num_reads : int

Number of reads. Each read is generated by one run of the tabu algorithm. If `num_reads` is not explicitly given, it is selected to match the number of initial states given. If initial states are not provided, only one read is performed.

Default: None

tenure : int

Tabu tenure, which is the length of the tabu list, or number of recently explored solutions kept in memory. Default is a quarter of the number of problem variables up to a maximum value of 20.

Default: None

timeout : float

Maximum running time per read in milliseconds.

Default: 100

initial_states_generator : 'none', 'tile', 'random'

Defines the expansion of `initial_states` if fewer than `num_reads` are specified: 'none': if the number of initial states specified is smaller than `num_reads`, raises ``ValueError``. 'tile': reuses the specified initial states if fewer than `num_reads` or truncates if greater. 'random': expands the specified initial states with randomly generated states if fewer than `num_reads` or truncates if greater.

Default: "random"

loop : Loop

Parameters for the main loop of the algorithm.

Default:

max_iter : int

Maximum number of iterations.

Default: 100

max_time : int

Time in seconds after which the algorithm will stop.

Default: 5

convergence : int

Number of iterations with unchanged output to terminate algorithm.

Default: 3

target : float

Energy level that the algorithm tries to reach.

Default: None

rtol : float

Relative tolerance for convergence.

Default: 0.00001

atol : float

Absolute tolerance for convergence.

Default: 1e-8

max_tries : int

Maximum number of times the synthesis phase is run for the **same** input state. On each improvement, the better state is used for the next input state, and the try/trial counter is reset.

Default: 100

K - Kerberos

Kerberos divides the problem into subproblems and solves them using Tabu Search, Simulated Annealing and QPU Subproblem Sampling. These algorithms are executed in parallel and afterwards the best solutions are combined. This procedure is applied iteratively until the best solution is found or a termination criterion is met.

Provider: dwave

Solution Example:

Parameters:

tabu : TabuKerberos

Tabu parameters for Kerberos algorithm.

Default:

timeout : float

Maximum running time per read in milliseconds.

Default: 100

max_time : float

Timeout for tabu search.

Default: None

num_reads : int

Number of reads. Each read is generated by one run of the tabu algorithm. If `num_reads` is not explicitly given, it is selected to match the number of initial states given. If initial states are not provided, only one read is performed.

Default: None

tenure : int

Tabu tenure, which is the length of the tabu list, or number of recently explored solutions kept in memory. Default is a quarter of the number of problem variables up to a maximum value of 20.

Default: None

initial_states_generator : 'none', 'tile', 'random'

Defines the expansion of `initial_states` if fewer than `num_reads` are specified: 'none': if the number of initial states specified is smaller than `num_reads`, raises ``ValueError``. 'tile': reuses the specified initial states if fewer than `num_reads` or truncates if greater. 'random': expands the specified initial states with randomly generated states if fewer than `num_reads` or truncates if greater.

Default: "random"

simulated_annealing : SimulatedAnnealing

Simulated annealing parameters for Kerberos algorithm.

Default:

num_reads : int

Number of reads. Each read is generated by one run of the simulated annealing algorithm. If `num_reads` is not explicitly given, it is selected to match the number of initial states given. If initial states are not provided, only one read is performed.

Default: None

num_sweeps : int

Number of sweeps used in annealing.

Default: 1000

beta_range : Tuplefloat, float, NoneType

A 2-tuple defining the beginning and end of the beta schedule, where beta is the inverse temperature. The schedule is applied linearly in beta. Default range is set based on the total bias associated with each node.

Default: None

beta_schedule_type : 'linear', 'geometric'

Beta schedule type, or how the beta values are interpolated between the given 'beta_range'.

Default: "geometric"

initial_states_generator : 'none', 'tile', 'random'

Defines the expansion of `initial_states` if fewer than `num_reads` are specified: 'none:' if the number of initial states specified is smaller than `num_reads`, raises an error. 'tile': reuses the specified initial states if fewer than `num_reads` or truncates if greater. 'random': expands the specified initial states with randomly generated states if fewer than `num_reads` or truncates if greater.

Default: "random"

decomposer : Decomposer

Decomposer parameters for Kerberos algorithm.

Default:

size : int

Nominal number of variables in the subproblem. Actual subproblem can be smaller, depending on other parameters (e.g. `min_gain`).

Default: 10

min_gain : float

Minimum reduction required to BQM energy, given the current sample. A variable is included in the subproblem only if inverting its sample value reduces energy by at least this amount.

Default: None

rolling : bool

If True, successive calls for the same problem (with possibly different samples) produce subproblems on different variables, selected by rolling down the list of all variables sorted by decreasing impact.

Default: true

rolling_history : float

Fraction of the problem size, as a float in range 0.0 to 1.0, that should participate in the rolling selection. Once reached, subproblem unrolling is reset. Min: 0.0, Max: 1.0

Default: 1

silent_rewind : bool

If False, raises :exc:`EndOfStream` when resetting/rewinding the subproblem generator upon the reset condition for unrolling.

Default: true

traversal : 'energy', 'bfs', 'pfs'

Traversal algorithm used to pick a subproblem of `size` variables. Options are: energy: Use the next `size` variables in the list of variables ordered by descending energy impact. bfs: Breadth-first traversal seeded by the next variable in the energy impact list. pfs: Priority-first traversal seeded by variables from the energy impact list, proceeding with the variable on the search boundary that has the highest energy impact.

Default: "energy"

qpu : Qpu

QPU parameters for Kerberos algorithm.

Default:

num_reads : int

Number of states (output solutions) to read from the sampler.

Default: 100

num_retries : int

Number of times the sampler will retry to embed if a failure occurs.

Default: 0

sampling_params : SamplingParams

Sampling parameters for the QPU. See https://docs.dwavesys.com/docs/latest/c_solver_parameters.html#anneal-offsets for more details

Default:

anneal_offsets : Any

Anneal offsets for the sampling.

Default: None

anneal_schedule : Any

Anneal schedule for the sampling.

Default: None

annealing_time : Any

Annealing time for the sampling.

Default: None

auto_scale : Any

Whether to auto scale for the sampling.

Default: None

fast_anneal : bool

Use the fast-anneal protocol instead of the standard anneal.

Default: false

flux_biases : Any

Flux biases for the sampling.

Default: None

flux_drift_compensation : bool

Whether to use flux drift compensation for the sampling.

Default: true

h_gain_schedule : Any

H gain schedule for the sampling.

Default: None

initial_state : Any

Initial state for the sampling.

Default: None

max_answers : int

Maximum number of answers for the sampling. Min: 1

Default: None

num_reads : int

Number of reads for the sampling. Min: 1

Default: 1

programming_thermalization : float

Programming thermalization for the sampling. Has to be positive.

Default: None

readout_thermalization : float

Readout thermalization for the sampling. Has to be positive.

Default: None

reduce_intersample_correlation : bool

Whether to reduce intersample correlation for the sampling.

Default: false

reinitialize_state : bool

Whether to reinitialize state for the sampling. Should be `None` if `initial_state` is `None`.

Default: None

auto_embedding_params : AutoEmbeddingParams

Auto embedding parameters for the QPU. See https://docs.ocean.dwavesys.com/projects/system/en/stable/reference/generated/minorminer.find_embedding.html for more details.

Default:

embedding_parameters : EmbeddingParameters

Embedding parameters for the auto embedding.

Default:

max_no_improvement : int

Maximum number of failed iterations to improve the current solution, where each iteration attempts to find an embedding for each variable of S such that it is adjacent to all its neighbours.

Default: 10

random_seed : int

Seed for the random number generator. If None, seed is set by `os.urandom()`.

Default: None

timeout : int

Algorithm gives up after `timeout` seconds.

Default: 1000

max_beta : float

Qubits are assigned weight according to a formula (beta^n) where n is the number of chains containing that qubit. This value should never be less than or equal to 1. If None, `max_beta` is effectively infinite.

Default: None

tries : int

Number of restart attempts before the algorithm stops. On D-WAVE 2000Q, a typical restart takes between 1 and 60 seconds.

Default: 10

inner_rounds : int

The algorithm takes at most this many iterations between restart attempts; restart attempts are typically terminated due to `max_no_improvement`. If None, `inner_rounds` is effectively infinite.

Default: None

chainlength_patience : int

Maximum number of failed iterations to improve chain lengths in the current solution, where each iteration attempts to find an embedding for each variable of S such that it is adjacent to all its neighbours.

Default: 10

max_fill : int

Restricts the number of chains that can simultaneously incorporate the same qubit during the search. Values above 63 are treated as 63. If None, `max_fill` is effectively infinite.

Default: None

threads : int

Maximum number of threads to use. Note that the parallelization is only advantageous where the expected degree of variables is significantly greater than the number of threads. Min: 1.

Default: 1

return_overlap : bool

This function returns an embedding, regardless of whether or not qubits are used by multiple variables. `return_overlap` determines the function's return value. If True, a 2-tuple is returned, in which the first element is the embedding and the second element is a bool representing the embedding validity. If False, only an embedding is returned.

Default: false

skip_initialization : bool

Skip the initialization pass. Note that this only works if the chains passed in through `initial_chains` and `fixed_chains` are semi-valid. A semi-valid embedding is a collection of chains such that every adjacent pair of variables (u,v) has a coupler (p,q) in the hardware graph where p is in chain(u) and q is in chain(v). This can be used on a valid embedding to immediately skip to the chain length improvement phase. Another good source of semi-valid embeddings is the output of this function with the `return_overlap` parameter enabled.

Default: false

initial_chains : Any

Initial chains inserted into an embedding before `fixed_chains` are placed, which occurs before the initialization pass. These can be used to restart the algorithm in a similar state to a previous embedding; for example, to improve chain length of a valid embedding or to reduce overlap in a semi-valid embedding (see `skip_initialization`) previously returned by the algorithm. Missing or empty entries are ignored. Each value in the dictionary is a list of qubit labels.

Default: []

fixed_chains : Any

Fixed chains inserted into an embedding before the initialization pass. As the algorithm proceeds, these chains are not allowed to change, and the qubits used by these chains are not used by other chains. Missing or empty entries are ignored. Each value in the dictionary is a list of qubit labels.

Default: []

restrict_chains : Any

Throughout the algorithm, it is guaranteed that chain[i] is a subset of `restrict_chains[i]` for each i, except those with missing or empty entries. Each value in the dictionary is a list of qubit labels.

Default: []

suspend_chains : Any

This is a metafeature that is only implemented in the Python interface. `suspend_chains[i]` is an iterable of iterables; for example, `suspend_chains[i] = [blob_1, blob_2]`, with each blob_j an iterable of target node labels. This enforces the following: for each suspended variable i, for each blob_j in the suspension of i, at least one qubit from blob_j will be contained in the chain for iminorminer accomplishes this through the following problem transformation for each iterable blob_j in `suspend_chains[i]`, Add an auxiliary node Zij to both source and target graphs Set fixed_chains[Zij] = [Zij] Add the edge (i,Zij) to the source graph Add the edges (q,Zij) to the target graph for each q in blob_j

Default: []

loop : Loop

Parameters for the main loop of the algorithm.

Default:

max_iter : int

Maximum number of iterations.

Default: 100

max_time : int

Time in seconds after which the algorithm will stop.

Default: 5

convergence : int

Number of iterations with unchanged output to terminate algorithm.

Default: 3

target : float

Energy level that the algorithm tries to reach.

Default: None

rtol : float

Relative tolerance for convergence.

Default: 0.00001

atol : float

Absolute tolerance for convergence.

Default: 1e-8

cpu_count_multiplier : int

Multiplier for the CPU count.

Default: 1

LBQM - Leap Hybrid Bqm

Leap's quantum-classical hybrid solvers are intended to solve arbitrary application problems formulated as quadratic models. This solver accepts arbitrarily structured, unconstrained problems formulated as BQMs, with any constraints typically represented through penalty models.

Provider: dwave

Solution Example:

Parameters:

time_limit : float, int, NoneType

The time limit for the solver.

Default: None

LCQM - Leap Hybrid Cqm

Leap's quantum-classical hybrid solvers are intended to solve arbitrary application problems formulated as quadratic models. This solver accepts arbitrarily structured problems formulated as CQMs, with any constraints represented natively.

Provider: dwave

Solution Example:

Parameters:

time_limit : float, int, NoneType

The time limit for the solver.

Default: None

spin_variables : Liststr

The list of spin variables.

Default: None

PT - Parallel Tempering

Parallel Tempering uses multiple optimization procedures per temperature. During the cooling process, an exchange of replicas can take place between the parallel procedures, thus enabling higher energy mountains to be overcome.

Provider: dwave

Solution Example:

Parameters:

n_replicas : int

Number of replicas for the parallel tempering. Default is 2.

Default: 2

random_swaps_factor : int

Factor for random swaps. Default is 1.

Default: 1

fixed_temperature_sampler : FixedTemperatureSampler

Parameters for the fixed temperature sampler.

Default:

num_sweeps : int

Number of sweeps for the sampler.

Default: 10000

num_reads : int

Number of reads for the sampler.

Default: None

cpu_count_multiplier : int

Multiplier for the CPU count. Default is 5.

Default: 5

loop : Loop

Parameters for the main loop of the algorithm.

Default:

max_iter : int

Maximum number of iterations.

Default: 100

max_time : int

Time in seconds after which the algorithm will stop.

Default: 5

convergence : int

Number of iterations with unchanged output to terminate algorithm.

Default: 3

target : float

Energy level that the algorithm tries to reach.

Default: None

rtol : float

Relative tolerance for convergence.

Default: 0.00001

atol : float

Absolute tolerance for convergence.

Default: 1e-8

PTQ - Parallel Tempering Qpu

Parallel Tempering uses multiple optimization procedures per temperature. During the cooling process, an exchange of replicas can take place between the parallel procedures, thus enabling higher energy mountains to be overcome.

Provider: dwave

Solution Example:

Parameters:

n_replicas : int

Number of replicas for the parallel tempering.

Default: 4

decomposer : Decomposer

Parameters for the decomposer.

Default:

size : int

Nominal number of variables in the subproblem. Actual subproblem can be smaller, depending on other parameters (e.g. `min_gain`).

Default: 10

min_gain : float

Minimum reduction required to BQM energy, given the current sample. A variable is included in the subproblem only if inverting its sample value reduces energy by at least this amount.

Default: None

rolling : bool

If True, successive calls for the same problem (with possibly different samples) produce subproblems on different variables, selected by rolling down the list of all variables sorted by decreasing impact.

Default: true

rolling_history : float

Fraction of the problem size, as a float in range 0.0 to 1.0, that should participate in the rolling selection. Once reached, subproblem unrolling is reset. Min: 0.0, Max: 1.0

Default: 1

silent_rewind : bool

If False, raises :exc:`EndOfStream` when resetting/rewinding the subproblem generator upon the reset condition for unrolling.

Default: true

traversal : 'energy', 'bfs', 'pfs'

Traversal algorithm used to pick a subproblem of `size` variables. Options are: energy: Use the next `size` variables in the list of variables ordered by descending energy impact. bfs: Breadth-first traversal seeded by the next variable in the energy impact list. pfs: Priority-first traversal seeded by variables from the energy impact list, proceeding with the variable on the search boundary that has the highest energy impact.

Default: "energy"

qpu : Qpu

Parameters for the QPU.

Default:

num_reads : int

Number of states (output solutions) to read from the sampler.

Default: 100

num_retries : int

Number of times the sampler will retry to embed if a failure occurs.

Default: 0

sampling_params : SamplingParams

Sampling parameters for the QPU. See https://docs.dwavesys.com/docs/latest/c_solver_parameters.html#anneal-offsets for more details

Default:

anneal_offsets : Any

Anneal offsets for the sampling.

Default: None

anneal_schedule : Any

Anneal schedule for the sampling.

Default: None

annealing_time : Any

Annealing time for the sampling.

Default: None

auto_scale : Any

Whether to auto scale for the sampling.

Default: None

fast_anneal : bool

Use the fast-anneal protocol instead of the standard anneal.

Default: false

flux_biases : Any

Flux biases for the sampling.

Default: None

flux_drift_compensation : bool

Whether to use flux drift compensation for the sampling.

Default: true

h_gain_schedule : Any

H gain schedule for the sampling.

Default: None

initial_state : Any

Initial state for the sampling.

Default: None

max_answers : int

Maximum number of answers for the sampling. Min: 1

Default: None

num_reads : int

Number of reads for the sampling. Min: 1

Default: 1

programming_thermalization : float

Programming thermalization for the sampling. Has to be positive.

Default: None

readout_thermalization : float

Readout thermalization for the sampling. Has to be positive.

Default: None

reduce_intersample_correlation : bool

Whether to reduce intersample correlation for the sampling.

Default: false

reinitialize_state : bool

Whether to reinitialize state for the sampling. Should be `None` if `initial_state` is `None`.

Default: None

auto_embedding_params : AutoEmbeddingParams

Auto embedding parameters for the QPU. See https://docs.ocean.dwavesys.com/projects/system/en/stable/reference/generated/minorminer.find_embedding.html for more details.

Default:

embedding_parameters : EmbeddingParameters

Embedding parameters for the auto embedding.

Default:

max_no_improvement : int

Maximum number of failed iterations to improve the current solution, where each iteration attempts to find an embedding for each variable of S such that it is adjacent to all its neighbours.

Default: 10

random_seed : int

Seed for the random number generator. If None, seed is set by `os.urandom()`.

Default: None

timeout : int

Algorithm gives up after `timeout` seconds.

Default: 1000

max_beta : float

Qubits are assigned weight according to a formula (beta^n) where n is the number of chains containing that qubit. This value should never be less than or equal to 1. If None, `max_beta` is effectively infinite.

Default: None

tries : int

Number of restart attempts before the algorithm stops. On D-WAVE 2000Q, a typical restart takes between 1 and 60 seconds.

Default: 10

inner_rounds : int

The algorithm takes at most this many iterations between restart attempts; restart attempts are typically terminated due to `max_no_improvement`. If None, `inner_rounds` is effectively infinite.

Default: None

chainlength_patience : int

Maximum number of failed iterations to improve chain lengths in the current solution, where each iteration attempts to find an embedding for each variable of S such that it is adjacent to all its neighbours.

Default: 10

max_fill : int

Restricts the number of chains that can simultaneously incorporate the same qubit during the search. Values above 63 are treated as 63. If None, `max_fill` is effectively infinite.

Default: None

threads : int

Maximum number of threads to use. Note that the parallelization is only advantageous where the expected degree of variables is significantly greater than the number of threads. Min: 1.

Default: 1

return_overlap : bool

This function returns an embedding, regardless of whether or not qubits are used by multiple variables. `return_overlap` determines the function's return value. If True, a 2-tuple is returned, in which the first element is the embedding and the second element is a bool representing the embedding validity. If False, only an embedding is returned.

Default: false

skip_initialization : bool

Skip the initialization pass. Note that this only works if the chains passed in through `initial_chains` and `fixed_chains` are semi-valid. A semi-valid embedding is a collection of chains such that every adjacent pair of variables (u,v) has a coupler (p,q) in the hardware graph where p is in chain(u) and q is in chain(v). This can be used on a valid embedding to immediately skip to the chain length improvement phase. Another good source of semi-valid embeddings is the output of this function with the `return_overlap` parameter enabled.

Default: false

initial_chains : Any

Initial chains inserted into an embedding before `fixed_chains` are placed, which occurs before the initialization pass. These can be used to restart the algorithm in a similar state to a previous embedding; for example, to improve chain length of a valid embedding or to reduce overlap in a semi-valid embedding (see `skip_initialization`) previously returned by the algorithm. Missing or empty entries are ignored. Each value in the dictionary is a list of qubit labels.

Default: []

fixed_chains : Any

Fixed chains inserted into an embedding before the initialization pass. As the algorithm proceeds, these chains are not allowed to change, and the qubits used by these chains are not used by other chains. Missing or empty entries are ignored. Each value in the dictionary is a list of qubit labels.

Default: []

restrict_chains : Any

Throughout the algorithm, it is guaranteed that chain[i] is a subset of `restrict_chains[i]` for each i, except those with missing or empty entries. Each value in the dictionary is a list of qubit labels.

Default: []

suspend_chains : Any

This is a metafeature that is only implemented in the Python interface. `suspend_chains[i]` is an iterable of iterables; for example, `suspend_chains[i] = [blob_1, blob_2]`, with each blob_j an iterable of target node labels. This enforces the following: for each suspended variable i, for each blob_j in the suspension of i, at least one qubit from blob_j will be contained in the chain for iminorminer accomplishes this through the following problem transformation for each iterable blob_j in `suspend_chains[i]`, Add an auxiliary node Zij to both source and target graphs Set fixed_chains[Zij] = [Zij] Add the edge (i,Zij) to the source graph Add the edges (q,Zij) to the target graph for each q in blob_j

Default: []

fixed_temperature_sampler : FixedTemperatureSampler

Parameters for the fixed temperature sampler.

Default:

num_sweeps : int

Number of sweeps for the sampler.

Default: 10000

num_reads : int

Number of reads for the sampler.

Default: None

cpu_count_multiplier : int

Multiplier for the CPU count.

Default: 5

loop : Loop

Parameters for the main loop of the algorithm.

Default:

max_iter : int

Maximum number of iterations.

Default: 100

max_time : int

Time in seconds after which the algorithm will stop.

Default: 5

convergence : int

Number of iterations with unchanged output to terminate algorithm.

Default: 3

target : float

Energy level that the algorithm tries to reach.

Default: None

rtol : float

Relative tolerance for convergence.

Default: 0.00001

atol : float

Absolute tolerance for convergence.

Default: 1e-8

PA - Population Annealing

Population Annealing uses a sequential Monte Carlo method to minimize the energy of a population. The population consists of walkers that can explore their neighborhood during the cooling process. Afterwards, walkers are removed and duplicated using bias to lower energy. Eventually, a population collapse occurs where all walkers are in the lowest energy state.

Provider: dwave

Solution Example:

Parameters:

fixed_temperature_sampler : FixedTemperatureSampler

Parameters for the fixed temperature sampler.

Default:

num_sweeps : int

Number of sweeps for the sampler.

Default: 10000

num_reads : int

Number of reads for the sampler.

Default: None

max_iter : int

Maximum number of iterations. Default is 20.

Default: 20

max_time : int

Maximum time in seconds that the algorithm is allowed to run. Default is 2.

Default: 2

PAQ - Population Annealing Qpu

Population Annealing uses a sequential Monte Carlo method to minimize the energy of a population. The population consists of walkers that can explore their neighborhood during the cooling process. Afterwards, walkers are removed and duplicated using bias to lower energy. Eventually, a population collapse occurs where all walkers are in the lowest energy state.

Provider: dwave

Solution Example:

Parameters:

decomposer : Decomposer

Parameters for the decomposer, which selects variables for the graph search to stop.

Default:

size : int

Nominal number of variables in the subproblem. Actual subproblem can be smaller, depending on other parameters (e.g. `min_gain`).

Default: 10

min_gain : float

Minimum reduction required to BQM energy, given the current sample. A variable is included in the subproblem only if inverting its sample value reduces energy by at least this amount.

Default: None

rolling : bool

If True, successive calls for the same problem (with possibly different samples) produce subproblems on different variables, selected by rolling down the list of all variables sorted by decreasing impact.

Default: true

rolling_history : float

Fraction of the problem size, as a float in range 0.0 to 1.0, that should participate in the rolling selection. Once reached, subproblem unrolling is reset. Min: 0.0, Max: 1.0

Default: 1

silent_rewind : bool

If False, raises :exc:`EndOfStream` when resetting/rewinding the subproblem generator upon the reset condition for unrolling.

Default: true

traversal : 'energy', 'bfs', 'pfs'

Traversal algorithm used to pick a subproblem of `size` variables. Options are: energy: Use the next `size` variables in the list of variables ordered by descending energy impact. bfs: Breadth-first traversal seeded by the next variable in the energy impact list. pfs: Priority-first traversal seeded by variables from the energy impact list, proceeding with the variable on the search boundary that has the highest energy impact.

Default: "energy"

qpu : Qpu

Parameters for the Quantum Processing Unit (QPU).

Default:

num_reads : int

Number of states (output solutions) to read from the sampler.

Default: 100

num_retries : int

Number of times the sampler will retry to embed if a failure occurs.

Default: 0

sampling_params : SamplingParams

Sampling parameters for the QPU. See https://docs.dwavesys.com/docs/latest/c_solver_parameters.html#anneal-offsets for more details

Default:

anneal_offsets : Any

Anneal offsets for the sampling.

Default: None

anneal_schedule : Any

Anneal schedule for the sampling.

Default: None

annealing_time : Any

Annealing time for the sampling.

Default: None

auto_scale : Any

Whether to auto scale for the sampling.

Default: None

fast_anneal : bool

Use the fast-anneal protocol instead of the standard anneal.

Default: false

flux_biases : Any

Flux biases for the sampling.

Default: None

flux_drift_compensation : bool

Whether to use flux drift compensation for the sampling.

Default: true

h_gain_schedule : Any

H gain schedule for the sampling.

Default: None

initial_state : Any

Initial state for the sampling.

Default: None

max_answers : int

Maximum number of answers for the sampling. Min: 1

Default: None

num_reads : int

Number of reads for the sampling. Min: 1

Default: 1

programming_thermalization : float

Programming thermalization for the sampling. Has to be positive.

Default: None

readout_thermalization : float

Readout thermalization for the sampling. Has to be positive.

Default: None

reduce_intersample_correlation : bool

Whether to reduce intersample correlation for the sampling.

Default: false

reinitialize_state : bool

Whether to reinitialize state for the sampling. Should be `None` if `initial_state` is `None`.

Default: None

auto_embedding_params : AutoEmbeddingParams

Auto embedding parameters for the QPU. See https://docs.ocean.dwavesys.com/projects/system/en/stable/reference/generated/minorminer.find_embedding.html for more details.

Default:

embedding_parameters : EmbeddingParameters

Embedding parameters for the auto embedding.

Default:

max_no_improvement : int

Maximum number of failed iterations to improve the current solution, where each iteration attempts to find an embedding for each variable of S such that it is adjacent to all its neighbours.

Default: 10

random_seed : int

Seed for the random number generator. If None, seed is set by `os.urandom()`.

Default: None

timeout : int

Algorithm gives up after `timeout` seconds.

Default: 1000

max_beta : float

Qubits are assigned weight according to a formula (beta^n) where n is the number of chains containing that qubit. This value should never be less than or equal to 1. If None, `max_beta` is effectively infinite.

Default: None

tries : int

Number of restart attempts before the algorithm stops. On D-WAVE 2000Q, a typical restart takes between 1 and 60 seconds.

Default: 10

inner_rounds : int

The algorithm takes at most this many iterations between restart attempts; restart attempts are typically terminated due to `max_no_improvement`. If None, `inner_rounds` is effectively infinite.

Default: None

chainlength_patience : int

Maximum number of failed iterations to improve chain lengths in the current solution, where each iteration attempts to find an embedding for each variable of S such that it is adjacent to all its neighbours.

Default: 10

max_fill : int

Restricts the number of chains that can simultaneously incorporate the same qubit during the search. Values above 63 are treated as 63. If None, `max_fill` is effectively infinite.

Default: None

threads : int

Maximum number of threads to use. Note that the parallelization is only advantageous where the expected degree of variables is significantly greater than the number of threads. Min: 1.

Default: 1

return_overlap : bool

This function returns an embedding, regardless of whether or not qubits are used by multiple variables. `return_overlap` determines the function's return value. If True, a 2-tuple is returned, in which the first element is the embedding and the second element is a bool representing the embedding validity. If False, only an embedding is returned.

Default: false

skip_initialization : bool

Skip the initialization pass. Note that this only works if the chains passed in through `initial_chains` and `fixed_chains` are semi-valid. A semi-valid embedding is a collection of chains such that every adjacent pair of variables (u,v) has a coupler (p,q) in the hardware graph where p is in chain(u) and q is in chain(v). This can be used on a valid embedding to immediately skip to the chain length improvement phase. Another good source of semi-valid embeddings is the output of this function with the `return_overlap` parameter enabled.

Default: false

initial_chains : Any

Initial chains inserted into an embedding before `fixed_chains` are placed, which occurs before the initialization pass. These can be used to restart the algorithm in a similar state to a previous embedding; for example, to improve chain length of a valid embedding or to reduce overlap in a semi-valid embedding (see `skip_initialization`) previously returned by the algorithm. Missing or empty entries are ignored. Each value in the dictionary is a list of qubit labels.

Default: []

fixed_chains : Any

Fixed chains inserted into an embedding before the initialization pass. As the algorithm proceeds, these chains are not allowed to change, and the qubits used by these chains are not used by other chains. Missing or empty entries are ignored. Each value in the dictionary is a list of qubit labels.

Default: []

restrict_chains : Any

Throughout the algorithm, it is guaranteed that chain[i] is a subset of `restrict_chains[i]` for each i, except those with missing or empty entries. Each value in the dictionary is a list of qubit labels.

Default: []

suspend_chains : Any

This is a metafeature that is only implemented in the Python interface. `suspend_chains[i]` is an iterable of iterables; for example, `suspend_chains[i] = [blob_1, blob_2]`, with each blob_j an iterable of target node labels. This enforces the following: for each suspended variable i, for each blob_j in the suspension of i, at least one qubit from blob_j will be contained in the chain for iminorminer accomplishes this through the following problem transformation for each iterable blob_j in `suspend_chains[i]`, Add an auxiliary node Zij to both source and target graphs Set fixed_chains[Zij] = [Zij] Add the edge (i,Zij) to the source graph Add the edges (q,Zij) to the target graph for each q in blob_j

Default: []

fixed_temperature_sampler : FixedTemperatureSampler

Parameters for the fixed temperature sampler.

Default:

num_sweeps : int

Number of sweeps for the sampler.

Default: 10000

num_reads : int

Number of reads for the sampler.

Default: None

max_iter : int

Maximum number of iterations.

Default: 20

max_time : int

Maximum time in seconds that the algorithm is allowed to run.

Default: 2

QLQ - Qbsolv Like Qpu

QBSolv Like Simulated Annealing breaks down the problem and solves the parts individually using a classic solver that uses Simulated Annealing. This particular implementation uses hybrid.SimulatedAnnealingSubproblemSampler (https://docs.ocean.dwavesys.com/projects/hybrid/en/stable/reference/ samplers.html#simulatedannealingsubproblemsampler) as a sampler for the subproblems to achieve a QBSolv like behaviour.

Provider: dwave

Solution Example:

Parameters:

qbsolv_like : QBSOLVLike

Parameters for the QBSOLV-like solver.

Default:

decomposer_size : int

Size for the decomposer.

Default: 50

rolling : bool

Whether to use rolling for the solver.

Default: true

rolling_history : float

Rolling history for the solver.

Default: 0.15

cpu_count_multiplier : int

CPU count multiplier for the solver.

Default: 1

loop : Loop

Parameters for the main loop of the algorithm.

Default:

max_iter : int

Maximum number of iterations.

Default: 100

max_time : int

Time in seconds after which the algorithm will stop.

Default: 5

convergence : int

Number of iterations with unchanged output to terminate algorithm.

Default: 3

target : float

Energy level that the algorithm tries to reach.

Default: None

rtol : float

Relative tolerance for convergence.

Default: 0.00001

atol : float

Absolute tolerance for convergence.

Default: 1e-8

qpu : Qpu

QPU parameters

Default:

num_reads : int

Number of states (output solutions) to read from the sampler.

Default: 100

num_retries : int

Number of times the sampler will retry to embed if a failure occurs.

Default: 0

sampling_params : SamplingParams

Sampling parameters for the QPU. See https://docs.dwavesys.com/docs/latest/c_solver_parameters.html#anneal-offsets for more details

Default:

anneal_offsets : Any

Anneal offsets for the sampling.

Default: None

anneal_schedule : Any

Anneal schedule for the sampling.

Default: None

annealing_time : Any

Annealing time for the sampling.

Default: None

auto_scale : Any

Whether to auto scale for the sampling.

Default: None

fast_anneal : bool

Use the fast-anneal protocol instead of the standard anneal.

Default: false

flux_biases : Any

Flux biases for the sampling.

Default: None

flux_drift_compensation : bool

Whether to use flux drift compensation for the sampling.

Default: true

h_gain_schedule : Any

H gain schedule for the sampling.

Default: None

initial_state : Any

Initial state for the sampling.

Default: None

max_answers : int

Maximum number of answers for the sampling. Min: 1

Default: None

num_reads : int

Number of reads for the sampling. Min: 1

Default: 1

programming_thermalization : float

Programming thermalization for the sampling. Has to be positive.

Default: None

readout_thermalization : float

Readout thermalization for the sampling. Has to be positive.

Default: None

reduce_intersample_correlation : bool

Whether to reduce intersample correlation for the sampling.

Default: false

reinitialize_state : bool

Whether to reinitialize state for the sampling. Should be `None` if `initial_state` is `None`.

Default: None

auto_embedding_params : AutoEmbeddingParams

Auto embedding parameters for the QPU. See https://docs.ocean.dwavesys.com/projects/system/en/stable/reference/generated/minorminer.find_embedding.html for more details.

Default:

embedding_parameters : EmbeddingParameters

Embedding parameters for the auto embedding.

Default:

max_no_improvement : int

Maximum number of failed iterations to improve the current solution, where each iteration attempts to find an embedding for each variable of S such that it is adjacent to all its neighbours.

Default: 10

random_seed : int

Seed for the random number generator. If None, seed is set by `os.urandom()`.

Default: None

timeout : int

Algorithm gives up after `timeout` seconds.

Default: 1000

max_beta : float

Qubits are assigned weight according to a formula (beta^n) where n is the number of chains containing that qubit. This value should never be less than or equal to 1. If None, `max_beta` is effectively infinite.

Default: None

tries : int

Number of restart attempts before the algorithm stops. On D-WAVE 2000Q, a typical restart takes between 1 and 60 seconds.

Default: 10

inner_rounds : int

The algorithm takes at most this many iterations between restart attempts; restart attempts are typically terminated due to `max_no_improvement`. If None, `inner_rounds` is effectively infinite.

Default: None

chainlength_patience : int

Maximum number of failed iterations to improve chain lengths in the current solution, where each iteration attempts to find an embedding for each variable of S such that it is adjacent to all its neighbours.

Default: 10

max_fill : int

Restricts the number of chains that can simultaneously incorporate the same qubit during the search. Values above 63 are treated as 63. If None, `max_fill` is effectively infinite.

Default: None

threads : int

Maximum number of threads to use. Note that the parallelization is only advantageous where the expected degree of variables is significantly greater than the number of threads. Min: 1.

Default: 1

return_overlap : bool

This function returns an embedding, regardless of whether or not qubits are used by multiple variables. `return_overlap` determines the function's return value. If True, a 2-tuple is returned, in which the first element is the embedding and the second element is a bool representing the embedding validity. If False, only an embedding is returned.

Default: false

skip_initialization : bool

Skip the initialization pass. Note that this only works if the chains passed in through `initial_chains` and `fixed_chains` are semi-valid. A semi-valid embedding is a collection of chains such that every adjacent pair of variables (u,v) has a coupler (p,q) in the hardware graph where p is in chain(u) and q is in chain(v). This can be used on a valid embedding to immediately skip to the chain length improvement phase. Another good source of semi-valid embeddings is the output of this function with the `return_overlap` parameter enabled.

Default: false

initial_chains : Any

Initial chains inserted into an embedding before `fixed_chains` are placed, which occurs before the initialization pass. These can be used to restart the algorithm in a similar state to a previous embedding; for example, to improve chain length of a valid embedding or to reduce overlap in a semi-valid embedding (see `skip_initialization`) previously returned by the algorithm. Missing or empty entries are ignored. Each value in the dictionary is a list of qubit labels.

Default: []

fixed_chains : Any

Fixed chains inserted into an embedding before the initialization pass. As the algorithm proceeds, these chains are not allowed to change, and the qubits used by these chains are not used by other chains. Missing or empty entries are ignored. Each value in the dictionary is a list of qubit labels.

Default: []

restrict_chains : Any

Throughout the algorithm, it is guaranteed that chain[i] is a subset of `restrict_chains[i]` for each i, except those with missing or empty entries. Each value in the dictionary is a list of qubit labels.

Default: []

suspend_chains : Any

This is a metafeature that is only implemented in the Python interface. `suspend_chains[i]` is an iterable of iterables; for example, `suspend_chains[i] = [blob_1, blob_2]`, with each blob_j an iterable of target node labels. This enforces the following: for each suspended variable i, for each blob_j in the suspension of i, at least one qubit from blob_j will be contained in the chain for iminorminer accomplishes this through the following problem transformation for each iterable blob_j in `suspend_chains[i]`, Add an auxiliary node Zij to both source and target graphs Set fixed_chains[Zij] = [Zij] Add the edge (i,Zij) to the source graph Add the edges (q,Zij) to the target graph for each q in blob_j

Default: []

QLSA - Qbsolv Like Simulated Annealing

QBSolv Like Simulated Annealing breaks down the problem and solves the parts individually using a classic solver that uses Simulated Annealing. This particular implementation uses hybrid.SimulatedAnnealingSubproblemSampler (https://docs.ocean.dwavesys.com/projects/hybrid/en/stable/reference/ samplers.html#simulatedannealingsubproblemsampler) as a sampler for the subproblems to achieve a QBSolv like behaviour.

Provider: dwave

Solution Example:

Parameters:

qbsolv_like : QBSOLVLike

Parameters for the QbSolveLike solver.

Default:

decomposer_size : int

Size for the decomposer.

Default: 50

rolling : bool

Whether to use rolling for the solver.

Default: true

rolling_history : float

Rolling history for the solver.

Default: 0.15

cpu_count_multiplier : int

CPU count multiplier for the solver.

Default: 1

loop : Loop

Parameters for the main loop of the algorithm.

Default:

max_iter : int

Maximum number of iterations.

Default: 100

max_time : int

Time in seconds after which the algorithm will stop.

Default: 5

convergence : int

Number of iterations with unchanged output to terminate algorithm.

Default: 3

target : float

Energy level that the algorithm tries to reach.

Default: None

rtol : float

Relative tolerance for convergence.

Default: 0.00001

atol : float

Absolute tolerance for convergence.

Default: 1e-8

simulated_annealing : SimulatedAnnealing

Parameters for the Simulated Annealing.

Default:

num_reads : int

Number of reads. Each read is generated by one run of the simulated annealing algorithm. If `num_reads` is not explicitly given, it is selected to match the number of initial states given. If initial states are not provided, only one read is performed.

Default: None

num_sweeps : int

Number of sweeps used in annealing.

Default: 1000

beta_range : Tuplefloat, float, NoneType

A 2-tuple defining the beginning and end of the beta schedule, where beta is the inverse temperature. The schedule is applied linearly in beta. Default range is set based on the total bias associated with each node.

Default: None

beta_schedule_type : 'linear', 'geometric'

Beta schedule type, or how the beta values are interpolated between the given 'beta_range'.

Default: "geometric"

initial_states_generator : 'none', 'tile', 'random'

Defines the expansion of `initial_states` if fewer than `num_reads` are specified: 'none:' if the number of initial states specified is smaller than `num_reads`, raises an error. 'tile': reuses the specified initial states if fewer than `num_reads` or truncates if greater. 'random': expands the specified initial states with randomly generated states if fewer than `num_reads` or truncates if greater.

Default: "random"

QBSolv Like Tabu Search breaks down the problem and solves the parts individually using a classic solver that uses Tabu Search. This particular implementation uses hybrid.TabuSubproblemSampler (https://docs.ocean.dwavesys.com/projects/hybrid/en/stable/reference/ samplers.html#tabusubproblemsampler) as a sampler for the subproblems to achieve a QBSolv like behaviour.

Provider: dwave

Solution Example:

Parameters:

qbsolv_like : QBSOLVLike

Parameters for the QbSolveLike solver.

Default:

decomposer_size : int

Size for the decomposer.

Default: 50

rolling : bool

Whether to use rolling for the solver.

Default: true

rolling_history : float

Rolling history for the solver.

Default: 0.15

cpu_count_multiplier : int

CPU count multiplier for the solver.

Default: 1

loop : Loop

Parameters for the main loop of the algorithm.

Default:

max_iter : int

Maximum number of iterations.

Default: 100

max_time : int

Time in seconds after which the algorithm will stop.

Default: 5

convergence : int

Number of iterations with unchanged output to terminate algorithm.

Default: 3

target : float

Energy level that the algorithm tries to reach.

Default: None

rtol : float

Relative tolerance for convergence.

Default: 0.00001

atol : float

Absolute tolerance for convergence.

Default: 1e-8

tabu_search : Tabu

Parameters for the Tabu Search.

Default:

num_reads : int

Number of reads. Each read is generated by one run of the tabu algorithm. If `num_reads` is not explicitly given, it is selected to match the number of initial states given. If initial states are not provided, only one read is performed.

Default: None

tenure : int

Tabu tenure, which is the length of the tabu list, or number of recently explored solutions kept in memory. Default is a quarter of the number of problem variables up to a maximum value of 20.

Default: None

timeout : float

Maximum running time per read in milliseconds.

Default: 100

initial_states_generator : 'none', 'tile', 'random'

Defines the expansion of `initial_states` if fewer than `num_reads` are specified: 'none': if the number of initial states specified is smaller than `num_reads`, raises ``ValueError``. 'tile': reuses the specified initial states if fewer than `num_reads` or truncates if greater. 'random': expands the specified initial states with randomly generated states if fewer than `num_reads` or truncates if greater.

Default: "random"

QA - Quantum Annealing

Quantum Annealing uses a minor embedding to map problems onto a specified D-Wave sampler. The sampler solves the problem with the specified sampler method. With each call of the sampling method, the minor embedding is recalculated.

Provider: dwave

Solution Example:

Parameters:

embedding : Embedding

Parameters for the auto embedding.

Default:

chain_strength : Mapping, NoneType

Sets the coupling strength between qubits representing variables that form a `chain`. Mappings should specify the required chain strength for each variable. By default, `chain_strength` is calculated with `~dwave.embedding.chain_strength.uniform_torque_compensation`.

Default: None

chain_break_fraction : bool

Add a `chain_break_fraction` field to the unembedded response with the fraction of chains broken before unembedding.

Default: true

embedding_parameters : EmbeddingParameters

Embedding parameters for the embedding.

Default:

max_no_improvement : int

Maximum number of failed iterations to improve the current solution, where each iteration attempts to find an embedding for each variable of S such that it is adjacent to all its neighbours.

Default: 10

random_seed : int

Seed for the random number generator. If None, seed is set by `os.urandom()`.

Default: None

timeout : int

Algorithm gives up after `timeout` seconds.

Default: 1000

max_beta : float

Qubits are assigned weight according to a formula (beta^n) where n is the number of chains containing that qubit. This value should never be less than or equal to 1. If None, `max_beta` is effectively infinite.

Default: None

tries : int

Number of restart attempts before the algorithm stops. On D-WAVE 2000Q, a typical restart takes between 1 and 60 seconds.

Default: 10

inner_rounds : int

The algorithm takes at most this many iterations between restart attempts; restart attempts are typically terminated due to `max_no_improvement`. If None, `inner_rounds` is effectively infinite.

Default: None

chainlength_patience : int

Maximum number of failed iterations to improve chain lengths in the current solution, where each iteration attempts to find an embedding for each variable of S such that it is adjacent to all its neighbours.

Default: 10

max_fill : int

Restricts the number of chains that can simultaneously incorporate the same qubit during the search. Values above 63 are treated as 63. If None, `max_fill` is effectively infinite.

Default: None

threads : int

Maximum number of threads to use. Note that the parallelization is only advantageous where the expected degree of variables is significantly greater than the number of threads. Min: 1.

Default: 1

return_overlap : bool

This function returns an embedding, regardless of whether or not qubits are used by multiple variables. `return_overlap` determines the function's return value. If True, a 2-tuple is returned, in which the first element is the embedding and the second element is a bool representing the embedding validity. If False, only an embedding is returned.

Default: false

skip_initialization : bool

Skip the initialization pass. Note that this only works if the chains passed in through `initial_chains` and `fixed_chains` are semi-valid. A semi-valid embedding is a collection of chains such that every adjacent pair of variables (u,v) has a coupler (p,q) in the hardware graph where p is in chain(u) and q is in chain(v). This can be used on a valid embedding to immediately skip to the chain length improvement phase. Another good source of semi-valid embeddings is the output of this function with the `return_overlap` parameter enabled.

Default: false

initial_chains : Any

Initial chains inserted into an embedding before `fixed_chains` are placed, which occurs before the initialization pass. These can be used to restart the algorithm in a similar state to a previous embedding; for example, to improve chain length of a valid embedding or to reduce overlap in a semi-valid embedding (see `skip_initialization`) previously returned by the algorithm. Missing or empty entries are ignored. Each value in the dictionary is a list of qubit labels.

Default: []

fixed_chains : Any

Fixed chains inserted into an embedding before the initialization pass. As the algorithm proceeds, these chains are not allowed to change, and the qubits used by these chains are not used by other chains. Missing or empty entries are ignored. Each value in the dictionary is a list of qubit labels.

Default: []

restrict_chains : Any

Throughout the algorithm, it is guaranteed that chain[i] is a subset of `restrict_chains[i]` for each i, except those with missing or empty entries. Each value in the dictionary is a list of qubit labels.

Default: []

suspend_chains : Any

This is a metafeature that is only implemented in the Python interface. `suspend_chains[i]` is an iterable of iterables; for example, `suspend_chains[i] = [blob_1, blob_2]`, with each blob_j an iterable of target node labels. This enforces the following: for each suspended variable i, for each blob_j in the suspension of i, at least one qubit from blob_j will be contained in the chain for iminorminer accomplishes this through the following problem transformation for each iterable blob_j in `suspend_chains[i]`, Add an auxiliary node Zij to both source and target graphs Set fixed_chains[Zij] = [Zij] Add the edge (i,Zij) to the source graph Add the edges (q,Zij) to the target graph for each q in blob_j

Default: []

sampling_params : SamplingParams

Parameters for the sampling. See https://docs.dwavesys.com/docs/latest/c_solver_parameters.html for more details

Default:

anneal_offsets : Any

Anneal offsets for the sampling.

Default: None

anneal_schedule : Any

Anneal schedule for the sampling.

Default: None

annealing_time : Any

Annealing time for the sampling.

Default: None

auto_scale : Any

Whether to auto scale for the sampling.

Default: None

fast_anneal : bool

Use the fast-anneal protocol instead of the standard anneal.

Default: false

flux_biases : Any

Flux biases for the sampling.

Default: None

flux_drift_compensation : bool

Whether to use flux drift compensation for the sampling.

Default: true

h_gain_schedule : Any

H gain schedule for the sampling.

Default: None

initial_state : Any

Initial state for the sampling.

Default: None

max_answers : int

Maximum number of answers for the sampling. Min: 1

Default: None

num_reads : int

Number of reads for the sampling. Min: 1

Default: 1

programming_thermalization : float

Programming thermalization for the sampling. Has to be positive.

Default: None

readout_thermalization : float

Readout thermalization for the sampling. Has to be positive.

Default: None

reduce_intersample_correlation : bool

Whether to reduce intersample correlation for the sampling.

Default: false

reinitialize_state : bool

Whether to reinitialize state for the sampling. Should be `None` if `initial_state` is `None`.

Default: None

RRQA - Repeated Reverse Quantum Annealing

Repeated Reverse Quantum Annealing begins the annealing process from a previously initialized state and increases the temperature from there. Afterwards, the temperature is decreased again until the solution is found. This procedure is repeated several times with this particular solver. (for additional information see: D-Wave Reverse Annealing)

Provider: dwave

Solution Example:

Parameters:

sampling_params : RRQuantumAnnealingSamplingParams

Parameters for the RRQuantumAnnealingSamplingParams. See https://docs.dwavesys.com/docs/latest/c_solver_parameters.html for more details.

Default:

anneal_offsets : Any

Anneal offsets for the sampling.

Default: None

annealing_time : Any

Annealing time for the sampling.

Default: None

auto_scale : Any

Whether to auto scale for the sampling.

Default: None

flux_biases : Any

Flux biases for the sampling.

Default: None

flux_drift_compensation : bool

Whether to use flux drift compensation.

Default: true

h_gain_schedule : Any

H gain schedule for the sampling.

Default: None

max_answers : int

Maximum number of answers for the sampling. Min: 1

Default: None

programming_thermalization : float

Programming thermalization for the sampling. Has to be positive.

Default: None

readout_thermalization : float

Readout thermalization for the sampling. Has to be positive.

Default: None

reduce_intersample_correlation : bool

Whether to reduce intersample correlation for the sampling.

Default: false

initial_states : Dictstr, int

Initial states for the solver. For each list element `state`, one call to the sampler with the parameter `initial_state=state` will be made in the first iteration.

Default: None

n_initial_states : int

Number of initial states to create when `initial_states` is None. If `initial_states` is not None, this parameter will be ignored. Min: 1

Default: 1

samples_per_state : int

How many samples to create per state in each iteration after the first. Min: 1

Default: 1

beta_schedule : Listfloat

Beta schedule for the solver.

Default: [0.5,3]

timeout : float

Timeout for the solver.

Default: 300

max_iter : int

Maximum number of iterations for the solver.

Default: 10

target : Any

The target energy for the solving process.

Default: None

check_trivial : bool

Whether to check for trivial variables. Checking for trivial variables means an overhead. On the other hand, when set to `False`, trivial variables, i.e., variables without interactions, will lead to a runtime error.

Default: true

RRSA - Repeated Reverse Simulated Annealing

Repeated Reverse Simulated Annealing finds the solution to a problem using an annealing process. Initially, random states are chosen in the solution landscape. Afterwards, as the temperature decreases, states are chosen that are more energetically favorable. At the end of the complete annealing process, the resulting states make up the solution.

Provider: dwave

Solution Example:

Parameters:

simulated_annealing : RRSimulatedAnnealing

Simulated Annealing params in each iteration.

Default:

num_sweeps : int

Number of sweeps used in annealing.

Default: 1000

num_sweeps_per_beta : int

Number of sweeps to perform at each `beta`. One sweep consists of a sequential Metropolis update of all spins.

Default: 1

beta_schedule : Sequencefloat

Sequence of `beta` values swept. Format must be compatible with `numpy.array(beta_schedule, dtype=float)`. Values should be non-negative.

Default: None

randomize_order : bool

When `True`, each spin update selects a variable uniformly at random. This method is ergodic, obeys detailed balance and preserves symmetries of the model. When `False`, updates proceed sequentially through the labeled variables on each sweep so that all variables are updated once per sweep. This method: * can be non-ergodic in special cases when used with `proposal_acceptance_critera=='Metropolis'`. * can introduce a dynamical bias as a function of variable order. * has faster per spin update than the True method.

Default: false

proposal_acceptance_criteria : 'Gibbs', 'Metropolis'

When 'Gibbs', each spin flip proposal is accepted according to the Gibbs criteria. When 'Metropolis', each spin flip proposal is accepted according to the Metropolis-Hastings criteria.

Default: "Metropolis"

num_reads : int

Number of reads. Each read is generated by one run of the simulated annealing algorithm. If `num_reads` is not explicitly given, it is selected to match the number of initial states given. If initial states are not provided, only one read is performed.

Default: None

beta_range : Tuplefloat, float, NoneType

A 2-tuple defining the beginning and end of the beta schedule, where beta is the inverse temperature. The schedule is applied linearly in beta. Default range is set based on the total bias associated with each node.

Default: None

beta_schedule_type : 'linear', 'geometric'

Beta schedule type, or how the beta values are interpolated between the given 'beta_range'.

Default: "geometric"

initial_states_generator : 'none', 'tile', 'random'

Defines the expansion of `initial_states` if fewer than `num_reads` are specified: 'none:' if the number of initial states specified is smaller than `num_reads`, raises an error. 'tile': reuses the specified initial states if fewer than `num_reads` or truncates if greater. 'random': expands the specified initial states with randomly generated states if fewer than `num_reads` or truncates if greater.

Default: "random"

num_reads_per_iter : Listint

Number of reads in each iteration. Use `num_reads_per_iter[i]` in iteration `i`, and `num_reads_per_iter[-1]` once the list is exhausted. If the parameter is `None`, fall back to `simulated_annealing.num_reads`. Min length: 1.

Default: None

initial_states : Any

One or more samples, each defining an initial state for all the problem variables. Initial states are given one per read, but if fewer than additional values are generated as specified by `initial_states_generator`. See `~dimod.as_samples` for a description of 'samples-like.

Default: None

timeout : float

Timeout for the solver.

Default: 5

max_iter : int

Maximum number of iterations for the solver.

Default: 10

target : Any

The target energy for the solver.

Default: None

SA - Simulated Annealing

Simulated Annealing is a probabilistic technique for approximating the global optimum of a given function. It performs well on problems where approximate global optima are more desirable than exact local optima. For more details, check the DWave website.

Provider: dwave

Solution Example:

Parameters:

num_sweeps_per_beta : int

Number of sweeps to perform at each `beta`. One sweep consists of a sequential Metropolis update of all spins.

Default: 1

seed : int

Seed to use for the PRNG. Specifying a particular seed with a constant set of parameters produces identical results. If not provided, a random seed is chosen.

Default: None

beta_schedule : Sequencefloat

Sequence of `beta` values swept. Format must be compatible with `numpy.array(beta_schedule, dtype=float)`. Values should be non-negative.

Default: None

initial_states : Any

One or more samples, each defining an initial state for all the problem variables. Initial states are given one per read, but if fewer than additional values are generated as specified by `initial_states_generator`. See `~dimod.as_samples` for a description of 'samples-like.

Default: None

randomize_order : bool

When `True`, each spin update selects a variable uniformly at random. This method is ergodic, obeys detailed balance and preserves symmetries of the model. When `False`, updates proceed sequentially through the labeled variables on each sweep so that all variables are updated once per sweep. This method: * can be non-ergodic in special cases when used with `proposal_acceptance_critera=='Metropolis'`. * can introduce a dynamical bias as a function of variable order. * has faster per spin update than the True method.

Default: false

proposal_acceptance_criteria : 'Gibbs', 'Metropolis'

When 'Gibbs', each spin flip proposal is accepted according to the Gibbs criteria. When 'Metropolis', each spin flip proposal is accepted according to the Metropolis-Hastings criteria.

Default: "Metropolis"

num_reads : int

Number of reads. Each read is generated by one run of the simulated annealing algorithm. If `num_reads` is not explicitly given, it is selected to match the number of initial states given. If initial states are not provided, only one read is performed.

Default: None

num_sweeps : int

Number of sweeps used in annealing.

Default: 1000

beta_range : Tuplefloat, float, NoneType

A 2-tuple defining the beginning and end of the beta schedule, where beta is the inverse temperature. The schedule is applied linearly in beta. Default range is set based on the total bias associated with each node.

Default: None

beta_schedule_type : 'linear', 'geometric'

Beta schedule type, or how the beta values are interpolated between the given 'beta_range'.

Default: "geometric"

initial_states_generator : 'none', 'tile', 'random'

Defines the expansion of `initial_states` if fewer than `num_reads` are specified: 'none:' if the number of initial states specified is smaller than `num_reads`, raises an error. 'tile': reuses the specified initial states if fewer than `num_reads` or truncates if greater. 'random': expands the specified initial states with randomly generated states if fewer than `num_reads` or truncates if greater.

Default: "random"

Tabu Search is a heuristic optimization method that works with the help of a tabu list. Initially, random states are chosen in the solution landscape. Afterwards, an iterative search for energetically better states in the neighborhood is started from these states. According to a tabu strategy, states are added to the tabu list that are not allowed to be selected as successor states for a tabu duration. The tabu search ends as soon as there are no better successor states in the neighborhood. The resulting state is therefore the solution to the problem."

Provider: dwave

Solution Example:

Parameters:

initial_states : Any

One or more samples, each defining an initial state for all the problem variables. Initial states are given one per read, but if fewer than `num_reads` initial states are defined, additional values are generated as specified by `initial_states_generator`.

Default: None

seed : int

32-bit unsigned integer seed to use for the PRNG. If the `timeout` parameter is not None, results from the same seed may not be identical between runs due to finite clock resolution.

Default: None

num_restarts : int

Maximum number of tabu search restarts per read. Setting this value to zero results in a simple tabu search.

Default: 1000000

energy_threshold : float

Terminate when an energy lower than or equal to `energy_threshold` is found.

Default: None

coefficient_z_first : int

`max(bqm.num_variables*coefficient_z_first, lower_bound_z)` bounds the number of variable updates considered in the first simple tabu search (STS). Variable updates arising from the STS greedy-descent subroutine, invoked upon discovery of new global optima, are excluded from the count. The coefficient defaults to 10_000 for small problems (up to 500 variables) and 25_000 for larger problems.

Default: None

coefficient_z_restart : int

Controls the number of variable updates on restarted simple tabu search stages, matching the description for `coefficient_z_first`. The coefficient defaults to `coefficient_z_first/4`

Default: None

lower_bound_z : int

Sets a minimum number of variable updates on all simple tabu searches, see `coefficient_z_first`. The bound defaults to 500_000.

Default: None

num_reads : int

Number of reads. Each read is generated by one run of the tabu algorithm. If `num_reads` is not explicitly given, it is selected to match the number of initial states given. If initial states are not provided, only one read is performed.

Default: None

tenure : int

Tabu tenure, which is the length of the tabu list, or number of recently explored solutions kept in memory. Default is a quarter of the number of problem variables up to a maximum value of 20.

Default: None

timeout : float

Maximum running time per read in milliseconds.

Default: 100

initial_states_generator : 'none', 'tile', 'random'

Defines the expansion of `initial_states` if fewer than `num_reads` are specified: 'none': if the number of initial states specified is smaller than `num_reads`, raises ``ValueError``. 'tile': reuses the specified initial states if fewer than `num_reads` or truncates if greater. 'random': expands the specified initial states with randomly generated states if fewer than `num_reads` or truncates if greater.

Default: "random"