hybrid.utils.select_localsearch_adversaries#
- select_localsearch_adversaries(bqm, sample, max_n=None, min_gain=None)[source]#
Find variable flips that contribute high energy changes to a BQM.
- Parameters:
bqm (
dimod.BinaryQuadraticModel
) – Binary quadratic model (BQM).sample (list/dict) – Sample values as returned by dimod samplers (0 or 1 values for dimod.BINARY and -1 or +1 for dimod.SPIN)
max_n (int, optional, default=None) – Maximum contributing variables to return. By default, returns any variable for which flipping its sample value results in an energy gain of min_gain.
min_gain (float, optional, default=None) – Minimum required energy increase from flipping a sample value to return its corresponding variable.
- Returns:
Up to max_n variables for which flipping the corresponding sample value increases the BQM energy by at least min_gain.
- Return type:
Examples
This example returns 2 variables (out of up to 3 allowed) for which flipping sample values changes BQM energy by 1 or more. The BQM has energy gains of 0, -2, 2, 4 for variables a, b, c, d respectively for the given sample.
>>> import dimod >>> bqm = dimod.BQM({}, {'ab': 0, 'bc': 1, 'cd': 2}, 0, 'SPIN') >>> select_localsearch_adversaries( ... bqm, {'a': -1, 'b': 1, 'c': 1, 'd': -1}, max_n=3, min_gain=1) ['d', 'c']