This application simulates a package delivery routing system for the Western Governors University Parcel Service. It implements an efficient algorithm to deliver packages while minimizing total travel distance and meeting specific delivery constraints.
- Package tracking and status updates in real-time
- Route optimization using nearest neighbor algorithm
- Handling of special delivery requirements (time windows, package grouping, truck restrictions)
- Interactive query system for package status at any point in time
- Data Structures: Custom hash table implementation for O(1) package lookups
- Algorithms:
- Nearest neighbor algorithm for route optimization
- Greedy approach for package assignment to trucks
- Special Handling:
- Delayed package arrivals
- Address corrections mid-route
- Package grouping requirements
- Truck-specific delivery constraints
- Package lookup: O(1) average case
- Route optimization: O(N²) where N is the number of delivery locations
- Overall delivery algorithm: O(N⁴) worst case
- Python 3.8
- CSV data processing for package and distance information
- Object-oriented design with classes for Trucks, Packages, Drivers, and HashTable
Run the application with:
python main.py
The interactive menu allows you to:
- Generate a general status report at a specific time
- Query the status of a specific package at a given time
- Exit the application