Graph Peripherality - #11898
Open
jeffreyyancey wants to merge 1 commit into
Open
Graph Peripherality#11898jeffreyyancey wants to merge 1 commit into
jeffreyyancey wants to merge 1 commit into
Conversation
…odes in a weighted graph
- Implemented Floyd-Warshall algorithm to calculate all-pairs shortest paths,
supporting positive edge weights for weighted graphs.
- Added functions to identify peripheral and far nodes:
- `find_peripheral_node`: Determines the node with maximal eccentricity.
- `find_far_node`: Finds the node with maximal farness, summing shortest-path distances.
- Included error handling for non-positive edge weights, with appropriate ValueError raising.
- Developed extensive test cases using doctests:
- Covered single-node, fully connected, sparse, cyclic, directed acyclic, and
disconnected graphs.
- Validated handling of edge cases including zero and negative weights.
- Ensured code meets PEP 8 standards and passed all lint checks with `ruff`.
- Provided detailed module-level docstring with explanations of algorithms,
complexity, and example applications.
This commit provides foundational functionality for graph-theoretical analysis
and sets up for future expansions or integrations.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Title: Add graph peripherality algorithms for computing peripheral and far nodes
Description:
This pull request introduces new algorithms to compute the peripheral and far nodes in a weighted graph. It includes the implementation of the Floyd-Warshall algorithm for all-pairs shortest paths and functions to calculate eccentricity and harmonic closeness centrality. The code is well-documented, includes comprehensive type hints, and contains doctests for various graph scenarios to ensure correctness.
Checklist:
Commit:
Initial Commit: Add algorithms to determine peripheral and farthest nodes in a weighted graph
supporting positive edge weights for weighted graphs.
find_peripheral_node: Determines the node with maximal eccentricity.find_far_node: Finds the node with maximal farness, summing shortest-path distances.disconnected graphs.
ruff.complexity, and example applications.