/* * from_truck: position of the truck where the order is * to truck: truck to put the order */ bool Optimize::swap_order( const Order from_order, Vehicle_pickDeliver &from_truck, const Order to_order, Vehicle_pickDeliver &to_truck) { if (!from_truck.has_order(from_order) || !to_truck.has_order(to_order)) { return false; } pgassert(from_truck.has_order(from_order)); pgassert(to_truck.has_order(to_order)); from_truck.erase(from_order); to_truck.erase(to_order); from_truck.insert(to_order); to_truck.insert(from_order); pgassert(from_truck.has_order(to_order)); pgassert(to_truck.has_order(from_order)); return true; }
/* * from_truck: position of the truck where the order is * to truck: truck to put the order */ void Optimize::swap_order( const Order from_order, Vehicle_pickDeliver &from_truck, const Order to_order, Vehicle_pickDeliver &to_truck) { pgassert(from_truck.has_order(from_order)); pgassert(to_truck.has_order(to_order)); from_truck.erase(from_order); to_truck.erase(to_order); from_truck.insert(to_order); to_truck.insert(from_order); pgassert(from_truck.has_order(to_order)); pgassert(to_truck.has_order(from_order)); }
/* * from_truck: position of the truck where the order is * to truck: truck to put the order */ void Optimize::move_order( Order order, Vehicle_pickDeliver &from_truck, Vehicle_pickDeliver &to_truck) { pgassert(from_truck.has_order(order)); pgassert(!to_truck.has_order(order)); from_truck.erase(order); to_truck.insert(order); pgassert(!from_truck.has_order(order)); pgassert(to_truck.has_order(order)); }