Поиск самой ранней даты и времени для одной операции за раз может не дать вам наилучшего результата.Рассмотрим пример, где операция A использует машину 1 в течение длительного времени, операция B использует машину 1 в течение короткого времени, а операция C использует машину 2 в течение короткого времени, но операция C должна быть выполнена после B.
InВ этом случае лучше запланировать B до A на машине 1, но ваш подход не достиг бы этого.Конечно, написание и использование программного обеспечения для управления этим будет сложнее, чем вы предлагали, поэтому вам нужно решить, стоит ли эта выгода дополнительных усилий.
Посмотрите на Планирование , Планирование работы магазина и Алгоритм планирования .
Сначала вам нужно подумать о том, какую информацию вы можете собирать о задачах (например, зависимости, приоритеты, сроки)), а затем решите, как лучше всего это составить.
Возможно, вы обнаружите, что такой подход, как вы, достаточно хорош в вашем случае.Моим дополнением к предложенному алгоритму будет сортировка списка существующих машинных операций для ускорения поиска по ним, то есть вы можете остановиться, как только найдете время, в которое подходит ваша операция, потому что это гарантированно самое раннее время.
Относительно простым расширением может быть система приоритетов, которая позволяет продвигать задачи с более низким приоритетом (что также может потребовать корректировки их зависимостей), но более сложные алгоритмы будут учитывать несколько задач одновременно и пытаться оптимизироватьисход.В конце концов, все сводится к тому, что подходит для вашей конкретной проблемы.