- Select and implement a machine learning algorithm that could successfully create a route and deliver all of the packages.
- Select and implement a self-adjusting data structure that would be used to store package information.
- Design a program that will effectively keep track of all package information, and calculate estimated delivery times, truck mileage traveled, and any other relevant factors.
- Create a UI that a delivery manager could use to get updates on package information as they are being delivered.
- The total delivery truck mileage can not exceed 140 miles.
- Package deadlines must be met, including delivery times throughout the day.
- All packages must be delivered before the day is finished.
- There are only 3 delivery trucks and 2 drivers.
- The greedy algorithm was selected because of its simple approach to solving the problem. It operates by immediately selecting the shortest local route, without considering the global solution.
- Hash tables were used to store package information and hub information (including distances from the hub to a delivery address). This is a simple and effective data structure that is capable of storing large volumes of data. Chaining is used for collision handling.
- Classes were created to calculate distances between points, estimate delivery times, track actual delivery times, and track total truck mileage.
- A command line UI was created with simple menu options to run different reports. The user can enter a package ID and time to look up specific packages.