-
Notifications
You must be signed in to change notification settings - Fork 84
Open
Labels
enhancementNew feature or requestNew feature or request
Description
"Frustration" is in some sense a measure of problem hardness. That is, what is the energy contribution of the linear and quadratic biases that are violated by a given solution.
Something like
import dimod
def frustration(bqm, sample):
frustration = 0
for v, bias in bqm.linear.items():
frustration += max(0, sample[v] * bias)
for (u, v), bias in bqm.quadratic.items():
frustration += max(0, sample[u] * sample[v] * bias)
return frustration
if __name__ == "__main__":
bqm = dimod.generators.gnp_random_bqm(10, .5, "SPIN")
sampleset = dimod.ExactSolver().sample(bqm)
sample = sampleset.first.sample
print("energy:", sampleset.first.energy)
print("frustration:", frustration(bqm, sample))Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request