# 4600-project-2 Project 2 for CSCE4600, for Team G4 ``` ╔════════════════╦══════════════════════════╗ ║ John Breaux ║ JohnBreaux@my.unt.edu ║ ║ Gabriel Castro ║ GabrielCastro@my.unt.edu ║ ║ Michael Laymon ║ MichaelLaymon@my.unt.edu ║ ╠════════════════╩══════════════════════════╣ ║ Created 2022-04-16 Updated 2022-04-28 ║ ╚═══════════════════════════════════════════╝ ``` ## Build Build with `make` Run with `./main.out filename` Clean with `make clean` ## Run Run with `./main.out [input_f ## Analysis, Benefits and Drawbacks ### Analysis: - 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. ## Contributions: ### John Breaux: - src/graph.cpp, inc/graph.hpp (graph implementation) - src/main.cpp - src/read.cpp, inc/read.hpp (reading from graph) - src/reducible.cpp (graph reduction) - .clang-format - Makefile (Makefile) - Readme.md - Hosted the git repo ### Michael Laymon - knotted.cpp