dwavesystems / dwavesystems/dimod
Add methods to get more statistics from the CQM object
- Dominant language
- Python
- Stars
- 143
- Forks
- 91
- Avg merge
- 1h 24m
- Merged PRs (30d)
- 3
Description
It would be nice to have methods to quickly get some statistics about the CQM model.
These are my wish list:
```
cqm.num_variables
cqm.num_binaries
cqm.num_integers
cqm.num_discretes
cqm.num_linear_constraints
cqm.num_quadratic_constraints
cqm.num_le_ineqaultiy_constraints
cqm.num_ge_ineqaultiy_constraints
cqm.num_equality_constraints
```
I currently get some of these information using this script.
```
integer_count = 0
binary_count = 0
for vtype in cqm.variables.vartypes:
if vtype is vartypes.INTEGER:
integer_count += 1
elif vtype is vartypes.BINARY:
binary_count += 1
else:
raise ValueError
print("------ variables information:")
print("total num vars:", len(cqm.variables))
print("num_binary:", binary_count)
print("num_Integers:", integer_count)
assert (binary_count + integer_count == len(cqm.variables))
num_quad_cstr = 0
num_linear_cstr = 0
for c, v in cqm.constraints.items():
if len(v.lhs.quadratic) > 0:
num_quad_cstr += 1
else:
num_linear_cstr += 1
print("----- constraints info")
print("total num cstr:", len(cqm.constraints))
if num_linear_cstr > 0:
print("num_linear_cstr:", num_linear_cstr)
if num_quad_cstr > 0:
print("num_quad_cstr:", num_quad_cstr)
assert (num_quad_cstr + num_linear_cstr == len(cqm.constraints))
```
Contributor guide
Assessment
This issue has not been assessed yet.