After a not-so-short research, I found that my problem is actually (almost) the same as the uniform-machines scheduling problem that is formulated in the context of computer task scheduling. In stead of assigning packages to couriers, the uniform-machines scheduling assigns tasks to processors. To my surprise, the problem is much more difficult than I expected. For those who want to learn more about the problem, please refer to the wiki and the paper Exact and Approximate Algorithms for Scheduling Nonidentical Processors. Many thanks to @bsraskr .