This project is a PHP implementation of my idea for a schedule generator. This means entering in all the courses that you want to take along with the available sections and the times it meets, then generating every possible non-conflicting schedule.
Please comment or email with your questions, suggestions, etc.
The new algorithm implemented by commit 9102865 is the Bron-Kerbosch maximal clique finding algorithm. I realized that the scheduling program could be thought of as a graph where vertices represent a section of a class and edges exist between vertices that are compatible (can be taken together).
Representing the problem as a graph means that possible non-conflicting schedules are maximal cliques. Therefore, to find all possible schedules, I implemented the Bron-Kerbosch maximal clique finding algorithm. This does run faster than my old algorithm and generates fewer total schedules because the old algorithm generated some schedules that were included in larger ones (sub-graphs).
Below is an illustration of how the schedule generating algorithm generally works.