Skip to main content

Tools to compute the minimum semidefinite rank of a simple undirected graph.

Project description

MSR: Minimum Semidefinite Rank

https://github.com/samreynoldsmath/msr

Description

Tools to compute the minimum semidefinite rank of a simple undirected graph.

The minimum semidefinite rank of a graph $G$, denoted by $\text{msr}(G)$, is the smallest rank of a positive semidefinite matrix $A$ such that $A$ is a generalized adjacency matrix of $G$; that is, $A_{ij} \neq 0$ if and only if $i \neq j$ and $ij \in E(G)$. Equivalently, $\text{msr}(G)$ is the smallest dimension $d$ such that every vertex $i$ of $G$ can be assigned to a vector $x_i \in \mathbb{R}^d$ such for each $i \neq j$, we have that $x_i \cdot x_j \neq 0$ if and only if $ij \in E(G)$. Surprisingly, the graph invariant $\text{msr}(G)$ can often be computed only by consideration of the graph structure, without the need to actually do any linear algebra.

Comments

  • 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.

Dependencies

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 See requirements.txt for a complete list of dependencies.

Author

Sam Reynolds is a PhD student studying Mathematical Sciences at Portland State University.

License

Copyright (c) 2023 under the MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

msr-0.8.2.tar.gz (24.2 kB view details)

Uploaded Source

Built Distribution

msr-0.8.2-py3-none-any.whl (28.2 kB view details)

Uploaded Python 3

File details

Details for the file msr-0.8.2.tar.gz.

File metadata

  • Download URL: msr-0.8.2.tar.gz
  • Upload date:
  • Size: 24.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.11.6 Linux/6.5.0-26-generic

File hashes

Hashes for msr-0.8.2.tar.gz
Algorithm Hash digest
SHA256 2f5cac0c751eb2e60393b9efca78723fed1fc2a15b3b2e39522f65abdbb3c792
MD5 eb970e876636c163d2349ef60c200ad6
BLAKE2b-256 c6973e1028e4dd151892737d887bfc727d8c3971b2bb67d6ee3e55bdd3378018

See more details on using hashes here.

File details

Details for the file msr-0.8.2-py3-none-any.whl.

File metadata

  • Download URL: msr-0.8.2-py3-none-any.whl
  • Upload date:
  • Size: 28.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.11.6 Linux/6.5.0-26-generic

File hashes

Hashes for msr-0.8.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a4f1da65ee0ab4779ccec9a522a8f69390d8c70cd7d4655271c9bbe5dae5a692
MD5 2eec020f4f1fc567336563457c2dca87
BLAKE2b-256 90d5627ea2a47b15529c60f253221ddf6b08bbcecf5a3ecd2e2f6114a826dfc7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page