dwavesystems / dwavesystems/dimod

Add methods to get more statistics from the CQM object

Open
#1,000 1 comment 0 reactions 0 assignees View on GitHub
enhancement
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.