Изменения

Перейти к: навигация, поиск

Flow shop

21 байт добавлено, 11:14, 22 июня 2012
м
G/
Рассмотрим пример: <tex>F \mid p_{ij} = 1 \mid C_{max}</tex>
Допустим, у нас <tex>n</tex> работ и <tex>m</tex> машин. В начальный момент времени мы можем начать обрабатывать любую работу на первой машине. В следующий момент на первом первой машине можно обрабатывать следующую работу, а на второй перейдёт предыдущая работа с первой машины, и так далее. Таким образом, на выполнение всех работ у нас уйдёт <tex>n + m - 1</tex> единиц времени. Проиллюстрируем это диаграммой Гантта Ганта для случая <tex>n = 6, m = 5</tex>: (по горизонтали время, по вертикали машины, в ячейке номер выполняемой работы)
'''0 1 2 3 4 5 6 7 8 9 10'''
-------------------------------------------
Оптимальное расписание для первой и второй машины будет совпадать. Таким образом, нам требуется найти перестановку входных работ.
Алгоритм такой: возьмём два пустых списка. Будем рассматривать работы в порядке возрастания <tex>min(p_1, p_2)</tex>, то есть , минимума из времён выполнения данной работы на первой и второй машине. Если у работы <tex>p_1 <= p_2</tex>, то добавим её в конец первого списка. В противном случае , добавим её в начало второго списка. Итоговое расписание это конкатенация первого и второго списков.
Псевдокод:
42
правки

Навигация