GSoC 2025 King Ordering Algorithm and Minimum Degree Ordering Algorithm - pgRouting/pgrouting GitHub Wiki

Table of Contents

Proposal

Brief Description

This project aims to implement the King Ordering Algorithm and Minimum Degree Ordering Algorithm from the Boost Graph Library into pgRouting, expanding its graph reordering capabilities beyond the existing Cuthill-McKee ordering. These algorithms optimize graph structures for improved numerical solver performance in scientific computing and network analysis. The King Ordering Algorithm minimizes graph bandwidth by reordering vertex indices based on pseudo-degree, reducing adjacency gaps and enhancing sparse matrix computations. The Minimum Degree Ordering Algorithm reduces fill-in during Cholesky factorization by reordering matrix rows to minimize nonzero elements introduced during Gaussian elimination. By integrating these algorithms, pgRouting will offer more efficient preprocessing options, benefiting large-scale network analysis and pathfinding tasks. Deliverables include the implementation of pgr_kingOrdering() and pgr_minimumDegreeOrdering(), comprehensive documentation, test cases ensuring correctness, and regular progress updates.

State of the Project Before GSoC

Before this project, pgRouting did not support the King Ordering or Minimum Degree Ordering algorithms. The only implemented graph reordering algorithm available was the Cuthill-McKee ordering. Adding these new algorithms will expand pgRouting's capabilities for graph preprocessing and optimization.

Deliverables

  • Implementation of pgr_kingOrdering() and pgr_minimumDegreeOrdering() functions.
  • Code with detailed and essential comments following the style guide and best practices.
  • User documentation for both functions.
  • Basic pgTap test cases to ensure correctness and stability.
  • A wiki page detailing weekly progress.
  • Detailed reports for the first and final evaluations.

Detailed Proposal

Detailed Proposal Link (Google Doc)

Participants

Title GitHub Handle Name
1st Mentor @cvvergara Vicky Vergara
2nd Mentor @robe2 Regina Obe
3rd Mentor @iosefa Iosefa Percival
4th Mentor @sanak Ko Nagase
Student Developer @wifi Fan Wu

Timeline

Community Bonding Period ( TBD hrs)

TBD

Week -1

TBD

Week 0

TBD

First Coding Period

Week 1

TBD

Week 2

TBD

Week 3

TBD

Week 4

TBD

Second Coding Period

Week 5

TBD

Week 6

TBD

Week 7

TBD

Week 8

TBD

Third Coding Period

Week 9

TBD

Week 10

TBD

Week 11

TBD

Week 12

TBD

Log of Pull Requests

Link to all the Pull Requests made in GSoC-pgRouting repository

Pull Request Description Date Status
# 1604 TBD TBD TBD

Slides

TBD

Final Report

TBD

  1. Links:

(i) Code Documentation:

TBD

(ii) Tags:

TBD

(iii) Pull Requests:

TBD

(iv) Wiki Pages:

TBD

  1. Images:

TBD

  1. Media:

TBD

Weekly Reports

Third Evaluation Period

Week 12

  • Report Mail - TBD

  • What did I get done this week?

TBD

  • What do I plan on doing next week? TBD

Week 11

TBD

Week 10

Week 9

Week 8

Week 7

Week 6

Week 5

First Evaluation Period

Week 4

Week 3

Week 2

Week 1

Community Bonding Period

Week 0

Week -1

Meeting Discussions

Tasks

Pre-Bonding Period

References