for ranging in range(len(set(graph3.dest_list))): next_stop = graph3.find_shortest_path(next_stop[0]) total_miles_group3 += next_stop[1] truck_driver.drive(next_stop[1]) for packaging in group3: if (locations_map.get(int(packaging.pkg_id))[1] - 1) == next_stop[0]: deliver_package(truck_driver, packaging) delivered_packages.append(packaging.pkg_id) next_stop = graph3.go_home(next_stop[0]) total_miles_group3 += next_stop[1] truck_driver.drive(next_stop[1]) # Add trucks truck1 and truck2 to routes route1 and route2 initially # route1.add_truck(truck1) route2.add_truck(truck2) delivered_packages = [] # Package delivery function # Time Complexity: O(N^2) # Space Complexity: O(1) def deliver_package(driver, package_delivered): global delivered_packages package_delivered.time_delivered = driver.finish_time package_delivered.status = str(f'Delivered at {package_delivered.time_delivered.strftime("%H:%M")}') truck = driver.truck_no for trucks in Truck.all_trucks: # print(f'Trucks: {trucks.truck_num}')