1. Сортируем заказы по времени начала.
2. Берем первый заказ в очереди.
3. Находим машину, которая к этому времени свободна минимальное время.
4. Назначаем заказ ей, выкидываем его из очереди.
5. Возвращаемся к п. 2.
В п. 3 берется минимальное время, если вы хотите оптимизировать загрузку и не использовать больше машин, чем требуется для заказов. Либо максимальное, если вам нужно раскидать их как можно более "справедливо" и минимизировать простой каждого участника.