dimod icon indicating copy to clipboard operation
dimod copied to clipboard

DQM.to_bqm() or similar

Open arcondello opened this issue 5 years ago • 0 comments

Something like

def dqm_to_bqm(dqm, strength):
    case_starts, linear, quadratic, _ = dqm.to_numpy_vectors()
    bqm = dimod.AdjVectorBQM.from_numpy_vectors(linear, quadratic, 0.0, dimod.BINARY)
    for i in range(len(case_starts)-1):
        cases = range(case_starts[i], case_starts[i+1])
        bqm.update(dimod.generators.combinations(cases, 1, strength=strength))
    if len(case_starts):
        cases = range(case_starts[-1], dqm.num_cases())
        bqm.update(dimod.generators.combinations(cases, 1, strength=strength))
    return bqm

arcondello avatar Dec 08 '20 18:12 arcondello