Spaces:
Sleeping
Sleeping
| import os | |
| import sys | |
| from pathlib import Path | |
| # Add the project root directory to the Python path | |
| sys.path.append(str(Path(__file__).resolve().parent.parent.parent)) | |
| def create_data_directory(): | |
| """ | |
| Ensure data directories exist for all generated files. | |
| This function creates the necessary directory structure to store | |
| delivery data, vehicle data, and travel time matrices. | |
| Returns: | |
| -------- | |
| tuple of (str, str, str) | |
| Paths to time matrix directory, vehicle data directory, and delivery data directory | |
| """ | |
| vehicle_data_dir = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))), 'data', 'vehicle-data') | |
| os.makedirs(vehicle_data_dir, exist_ok=True) | |
| delivery_data_dir = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))), 'data', 'delivery-data') | |
| os.makedirs(delivery_data_dir, exist_ok=True) | |
| time_matrix_data_dir = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))), 'data', 'time-matrix') | |
| os.makedirs(time_matrix_data_dir, exist_ok=True) | |
| return time_matrix_data_dir, vehicle_data_dir, delivery_data_dir | |
| def main(): | |
| """ | |
| Run all data generation scripts for the delivery route optimization project. | |
| This function orchestrates the creation of all synthetic datasets needed for | |
| the route optimization problem, including delivery data, vehicle data, and | |
| travel time/distance matrices. | |
| Generated Files: | |
| -------------- | |
| 1. Delivery Data: | |
| - Contains information about delivery locations, time windows, packages, etc. | |
| - Used to define the delivery stops in the routing problem. | |
| 2. Vehicle Data: | |
| - Contains information about the delivery fleet, capacity, depots, etc. | |
| - Used to define the available resources for delivery routes. | |
| 3. Travel Matrices: | |
| - Contains distance and time information between all locations. | |
| - Used by the optimization algorithm to calculate route costs. | |
| Usage: | |
| ------ | |
| These generated datasets form the foundation of the delivery route optimization | |
| application. Together they define: | |
| - Where deliveries need to be made (delivery data) | |
| - What resources are available for deliveries (vehicle data) | |
| - How long it takes to travel between locations (travel matrices) | |
| The route optimization algorithm uses these inputs to determine the most | |
| efficient assignment of deliveries to vehicles and the optimal sequence of | |
| stops for each vehicle. | |
| """ | |
| print("Starting data generation process...") | |
| time_matrix_data_dir, vehicle_data_dir, delivery_data_dir = create_data_directory() | |
| print(f"Time Matrix Data will be saved to: {time_matrix_data_dir}") | |
| print(f"Delivery Data will be saved to: {delivery_data_dir}") | |
| print(f"Vehicle Data will be saved to: {vehicle_data_dir}") | |
| # Import and run delivery data generation | |
| print("\n1. Generating delivery data...") | |
| from src.utils.generate_delivery_data import generate_delivery_data | |
| delivery_data = generate_delivery_data(50, use_geocoding=True) | |
| # Import and run vehicle data generation | |
| print("\n2. Generating vehicle data...") | |
| from src.utils.generate_vehicle_data import generate_vehicle_data | |
| vehicle_data = generate_vehicle_data(10) | |
| # Import and run travel matrix generation | |
| print("\n3. Generating travel matrices...") | |
| from src.utils.generate_travel_matrix import generate_travel_matrix | |
| generate_travel_matrix() | |
| print("\nAll data generation complete! Files saved to data directory.") | |
| if __name__ == "__main__": | |
| main() |