https://github.com/samreynoldsmath/msr
Tools to compute the minimum semidefinite rank of a simple undirected graph.
The minimum semidefinite rank of a graph
- This package began as a school project for a course on semidefinite programming (see the final report).
- In addition to SDP, this package also uses combinatorial techniques to compute bounds on the MSR, some of which are well-known in the literature, and some of which are still under development.
- The package uses a custom graph representation, but supports conversion to\from networkx graphs.
- The package is not designed with efficiency in mind, and probably will not scale well to large graphs.
Install the package with pip:
pip install msr
This project is written in Python 3.11 and uses the following packages:
- cvxpy is used to solve semidefinite programs
- matplotlib is used for visualization
- networkx is used for graph isomorphism testing
- tqdm is used for progress bars
Moreover, examples are written in Jupyter notebooks.
Copyright (c) 2023 -- 2024 Samuel Reynolds, released under the MIT license.