Application
Often, we need to store the fingerprint of a CQM object. This may be useful when one needs to store a CQM object in memory or on disk or retrieve the result of previously solved CQM problems. Having a hash value that is sensitive to the values of all biases and constraints will make it very convenient to give a unique label to CQMs. I don't know if it's possible/useful to decide if it's also sensitive to labels, but I will personally always choose to be sensitive to labels
Proposed Solution
import hashlib
def _to_hash(cqm):
with cqm.to_file() as f:
return hashlib.sha1(f.read()).hexdigest()
Alternatives Required
The method above is expensive and creates copies of the CQM object.
Additional Context
The main use case to consider here is when a large problem is broken into smaller problems and many problems are submitted in parallel. In case any of them fail, a restart would ideally load previously solved problems and resubmit the failed ones. This may actually end up being a feature on its own. MultiCQMSampler?
Application Often, we need to store the fingerprint of a CQM object. This may be useful when one needs to store a CQM object in memory or on disk or retrieve the result of previously solved CQM problems. Having a hash value that is sensitive to the values of all biases and constraints will make it very convenient to give a unique label to CQMs. I don't know if it's possible/useful to decide if it's also sensitive to labels, but I will personally always choose to be sensitive to labels
Proposed Solution
Alternatives Required The method above is expensive and creates copies of the CQM object.
Additional Context The main use case to consider here is when a large problem is broken into smaller problems and many problems are submitted in parallel. In case any of them fail, a restart would ideally load previously solved problems and resubmit the failed ones. This may actually end up being a feature on its own.
MultiCQMSampler
?