Given a graph of N people, a list of rowdy groups, the capacity of busses, and the number of busses, this algorithm will output a list of busses and the students assigned to each bus that maximizes friendships and satisfies the constraint of no rowdy groups.
There are a few different implementations/attempts to solve this NP-Complete problem. The algorithm we chose uses a randomizer combined with a function called simulated annealing that maximizes friendships.
To run our algorithm, make sure to have NetworkX and Numpy installed. You can visit the following links to install: NetworkX: https://networkx.github.io/documentation/stable/install.html Numpy: https://docs.scipy.org/doc/numpy-1.15.0/user/install.html
Make sure to be using Python3 and have the correct filepath for Input and Output. Then call main.py to run our solver.