Objective: This project aims to determine the most efficient route between buildings at UT Austin by implementing a graph-based solution. Utilizing a graph() class, we construct an interconnected map of campus buildings, defining weighted distances between each building through an edge method. The core of our implementation employs Dijkstra’s algorithm, enabling the system to greedily identify the shortest paths among the network of connected buildings. This facilitates users in selecting the fastest route between their chosen starting and ending locations.
Operation: Our program incorporates a while loop and a permutation method to handle scenarios involving travel to multiple locations. The algorithm iterates through different paths, continually updating the total list with the most efficient building traversal segment. For each location, the starting position is adjusted to the last ending position, creating an effective and dynamic traveling salesman algorithm. Various data structures such as lists, sets, dictionaries, and heaps are employed to store information, track visited locations, associate values with edges, and manage traversed nodes in the Dijkstra algorithm, respectively.
Validation: To ensure the accuracy of our implementation, we devised a test case file for cross-referencing our code's outputs with known correct outputs. This validation step confirmed the reliability and correctness of our solution. Although the program successfully built a comprehensive database of UT buildings for reference in calculating relative path distances, we acknowledge certain limitations. Specifically, travel times between buildings were rounded to the nearest minute, introducing potential imprecision, especially over shorter distances. Additionally, the initial starting position relative to the starting building could result in noticeable variability in travel time over short distances. Nevertheless, over longer distances, the impact of these factors is expected to diminish, resulting in a satisfactory overall performance.