Project Work at the Hochschule Karlsruhe (HKA) by Jonas Wilms.
NOTE: The implemented algorithms are provided as-is without the guarantee of correctness
For development, install NodeJS + NPM, then run npm ci and npm start to get a development setup (the browser will open and changes to the code are directly applied). For productive use, run npm run build, then distribute the /build to a webserver.
src/datastructurescontains fundamental datastructures such as heaps and adjacency listssrc/algocontains various implementations of weighted matching./basecontains input & output types and utilities./naivecontains a naive algorithm that tries all permutations (exponential runtime to the number of nodes)./greedycontains a greedy matcher./path_growingcontains the path growing algorithm as presented by Drake and Hougardy./path_growing_patchedcontains the path growing algorithm, implementing the adaption mentioned in the "additional remarks"./blossomcontains "some" implementation of a Blossom algorithm as presented by Edmonds, with ideas from Gabow and Galil
src/testcontains a small testsuite (work in progress)src/uicontains the user interface (as React components)./base/contains all fundamental building blocks./graph/contains the graph visualization components./Visualizeris the main component for visualizing algorithms as they run ../Compareis the main component for comparing the algorithms with each other