dwavesystems / dwavesystems/dimod
cqm.to_hash()
- Dominant language
- Python
- Stars
- 143
- Forks
- 91
- Avg merge
- 1h 24m
- Merged PRs (30d)
- 3
Description
**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`?
Contributor guide
Assessment
This issue has not been assessed yet.