Distributing Students to Their Paths in a Timetable
During our school trip to Berlin, my teacher jokingly suggested creating a Berlin app to simplify the planning process. The idea evolved to include displaying each student's schedule on a website and a lot more usefull features.
- In each approach, the initial step involved building a graph. Here's a brief overview:
- DFS for Each Student: Applied a depth-first search for each student to optimize path exploration and assignment.
- Priority Queue: Introduced a priority queue for students, giving preference to those with more individualized elements.
- Find All Paths: Explored all paths and attempted to distribute students accordingly, followed by allocation based on these numbers.
- Path Filtering: Enhanced efficiency by filtering out unnecessary data during the distribution process.
- Maxflow Graphs: Attempted to use maxflow graphs to distribute students to each path, but this solution proved challenging.
- Prioritizing Roommates: Augmented the algorithm by prioritizing roommates in the allocation proccess, when they made the same choices.