Esempio n. 1
0
        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}')