O2Cmax
Эта статья находится в разработке!
Постановка задачи
Рассмотрим задачу:
- Дано работ и станка.
- Для каждой работы известно её время выполнения на каждом станке.
Требуется минимизировать время окончания всех работ, если каждую работу необходимо выполнить на обоих станках.
Описание алгоритма
Пусть
- Разобьём все работы на два множества: и
- Найдем и
- Рассмотрим 2 случая. Первый случай, когда
- Выполняем все работы на первом станке в следующем порядке: сперва все работы из , затем из и последней работу
- На втором станке выполняем первой работу
- Остальные работы выполняем на втором станке в порядке их завершения на первом тогда, когда второй станок свободен, а работа на первом уже выполнена
Второй случай рассматривается аналогично: первый и второй станок меняются местами, и вместо
— работа
, тогда