A Python package for graph computation functions
Project description
GraphCalc
Overview
graphcalc
is a Python package for performing a variety of graph computations, including maximum clique detection, chromatic number calculation, and vertex cover identification. It is built on top of networkx
and provides efficient implementations of fundamental graph theory algorithms.
Features
- Maximum Clique: Finds the maximum clique in a given graph.
- Chromatic Number: Computes the minimum number of colors required for graph coloring.
- Vertex and Edge Cover: Determines vertex and edge covers.
- Matching and Independence: Calculates maximum matching and independent sets.
- Domination Number and its Variants: Calculates the domination number, total domination number, and many other domination variants.
- Degree Sequence Invariants: Calculates the residue, annihilaiton number, the slater number and more!
- Zero Forcing: Calculates the zero forcing number, the total zero forcing number, the positive semidefinite zero forcing number, and the power domination number.
Installation
To install graphcalc
, make sure you have Python 3.7 or higher, then install it:
pip install graphcalc
Example Graph Usage
from graphcalc import (
independence_number,
domination_number,
zero_forcing_number,
)
from graphcalc.generators import petersen_graph
# Calculate and print the independence number of the Petersen graph.
G = petersen_graph()
print(f"Petersen graph independence number = {independence_number(G)}")
# Calculate and print the domination number of the Petersen graph.
print(f"Petersen graph domination number = {domination_number(G)}")
# Calculate and print the zero forcing number of the Petersen graph.
print(f"Petersen graph zero forcing number = {zero_forcing_number(G)}")
Example Polytope Usage
import graphcalc as gc
from graphcalc.polytopes.generators import (
cube_graph,
octahedron_graph,
dodecahedron_graph,
tetrahedron_graph,
icosahedron_graph,
convex_polytopes_text_example,
)
# Generate polytope graphs (cubes, octahedra, etc.)
G1 = cube_graph()
G2 = octahedron_graph()
G3 = dodecahedron_graph()
G4 = tetrahedron_graph()
G5 = icosahedron_graph()
G6 = convex_polytopes_text_example(1)
G7 = convex_polytopes_text_example(2)
# Function names to compute
function_names = [
"order", # number of vertices
"size", # number of edges
"p_vector",
"independence_number",
"vertex_cover_number",
"maximum_degree",
"average_degree",
"minimum_degree",
"spectral_radius",
"diameter",
"radius",
"girth",
"algebraic_connectivity",
"largest_laplacian_eigenvalue",
"second_largest_adjacency_eigenvalue",
"smallest_adjacency_eigenvalue",
"fullerene",
]
# Compute properties for multiple polytopes
graphs = [G1, G2, G3, G4, G5, G6, G7]
df = gc.compute_graph_properties_dataframe(function_names, graphs)
print(df)
Creating Simple Graphs, Polytope Graphs, and Simple Polytope Graphs
import graphcalc as gc
# Draw a simple graph
G = gc.SimpleGraph(name="Example Graph")
G.add_edges_from([(0, 1), (1, 2), (2, 3)])
G.draw()
Author
Randy Davila, PhD
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
graphcalc-0.1.20.tar.gz
(38.5 kB
view details)
Built Distribution
File details
Details for the file graphcalc-0.1.20.tar.gz
.
File metadata
- Download URL: graphcalc-0.1.20.tar.gz
- Upload date:
- Size: 38.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 939f010da544de89d13b634586dca0591bdf683ca5d181cc234f56ad8358bcb1 |
|
MD5 | 703440235013e68f86b00742252caccc |
|
BLAKE2b-256 | 661ce198a8eeec7e4a4e43b3a6bd5d7b63aa9eb35ad8aab78f140a28518e14fb |
File details
Details for the file graphcalc-0.1.20-py3-none-any.whl
.
File metadata
- Download URL: graphcalc-0.1.20-py3-none-any.whl
- Upload date:
- Size: 83.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d40d59294848d95ed2cfa9b6d45997b07687537cb8fb0ee6a94b561f8f915a2 |
|
MD5 | 67638b5215058d75af3bfe4b62f4a208 |
|
BLAKE2b-256 | 72d8864cdf42090fa446f36f0c6e347ebce7b49b0cd7a149bd4fb885c46d82bb |