-
-
Notifications
You must be signed in to change notification settings - Fork 46.6k
Add graph centrality algorithms to compute central and median nodes i… #11880
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add graph centrality algorithms to compute central and median nodes i… #11880
Conversation
…n a graph - Implement `floyd_warshall_algorithm` to compute all-pairs shortest paths using the Floyd-Warshall algorithm. - Implement `find_central_and_median_node` to calculate eccentricity and harmonic closeness centrality for each node. - Add helper functions: - `initialize_distance_matrix` for initializing the distance matrix and validating edge weights. - `calculate_node_centrality` for computing eccentricity and closeness of a single node. - Include comprehensive module-level docstrings explaining: - The mathematical problem and its significance. - Descriptions of the algorithms used. - Pseudo-code for the Floyd-Warshall algorithm. - References to relevant Wikipedia articles. - Add detailed type hints for all functions and variables to enhance code clarity and support static type checking. - Refactor code to improve readability and maintainability: - Use descriptive variable names. - Introduce intermediate variables for complex expressions. - Add comments explaining key steps and computations. - Ensure compliance with PEP 8 standards: - Adjust line lengths to not exceed 88 characters. - Reformat long strings and comments. - Fix issues identified by code linters like `ruff`. - Handle exceptions properly: - Assign exception messages to variables before raising, adhering to best practices. - Include doctests for various graph scenarios to verify correctness: - Single-node graphs. - Two-node graphs with positive weights. - Fully connected graphs. - Directed acyclic graphs (DAGs). - Disconnected graphs. - Graphs with zero or negative edge weights (raising exceptions). - Cyclic graphs. - Sparse graphs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you describe the changes
@imSanko Certainly. Add graph centrality algorithms to compute central and median nodes in a graph
Please let me know if you have further questions. |
My branches seemed to have gotten crossed. I'll close this and recreate a new PR with the proper branch. |
Make sure that the answers are plagiarism free and not AI Generated ! |
Describe your change:
Title: Add graph centrality algorithms for computing central and median nodes
Description:
This pull request introduces new algorithms to compute the central and median 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: