Please ensure you've read and agree to abide by the license before continuing.
This software's source code was made public under a restrictive license with the intent to allow comparison of Project 2 solutions with other former course-members and members of the general public. I'm not liable for any academic stupidity that may result from attempted plagiarism of this work.
- We implemented the Graph Reduction algorithm on adjacency matrices, with some minor optimizations:
- By counting the number of remaining processes, and comparing it to the number of processes eliminated so far, we can detect when the algorithm has failed a single time, after which it'll fail forever.
-
### Benefits:
- The graph reduction algorithm is very elegant, but also easy to optimize
- "Deleting" a node from an adjacency matrix can be performed by zeroing its respective row and column and re-running the algorithm, which is very simple!
### Drawbacks:
- The adjacency matrix representation is used without interpretation, making the output somewhat hard to read
- Our implementation of knot detection didn't pan out.