Изменения

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

J2ni2Cmax

18 байт убрано, 02:11, 16 мая 2016
Нет описания правки
*Дано <tex>n</tex> работ и <tex>2</tex> станка.
*Для каждой работы известно её время выполнения на каждом станке <tex>p_{ij}</tex>.
*Для каждой работы известна последовательность <tex>O_{i1}, \ O_{i2} \ ... \ldots \ O_{ik}</tex> станков {{- --}} порядок, в котором нужно выполнить работу.
*В каждой последовательности <tex>O_{i}</tex> не более двух элементов.
Требуется минимизировать время окончания выполнения всех работ. }}
Тогда оптимальное расписание для нашей задачи будет следующим:
* Расписание <tex>M_{1}</tex> : сначала <tex>I_{12}</tex> в соответсвии с расписанием <tex>S_{12}</tex>. Затем <tex>I_{1}</tex> в произвольном порядке. Затем <tex>I_{21}</tex> в соответсвии с <tex>S_{21}</tex>. * Расписание <tex>M_{2}</tex> : сначала <tex>I_{21}</tex> в соответсвии с расписанием <tex>S_{21}</tex>. Затем <tex>I_{2}</tex> в произвольном порядке. Затем <tex>I_{12}</tex> в соответсвии с <tex>S_{12}</tex>.
Примечание: во время выполнения <tex>I_{21}</tex> на <tex>M_{1}</tex> или <tex>I_{12}</tex> на <tex>M_{2}</tex> могут возникнуть простои
<tex>T_{j}(x)</tex> {{---}} время выполнения множества работ <tex>x</tex> на станке <tex>j</tex>.
<tex>G_{j}</tex> {{---}} множество всех работ, которые нужно сделать хотя бы раз на <tex>j</tex>-м станке. (Формально , то есть <tex>G_{1} = I_{1} \cup I_{12} \cup I_{21}</tex>).
{{Лемма
|id=lemma1
|statement=
Расписание, построенное данным алгоритмом, обладает следующим свойством : один из станков работает без простоев.
|proof=
Рассмотрим 2 два случая:
*<tex>T_{1}(I_{12}) + T_{1}(I_{1}) \geqslant T_{2}(I_{21}) </tex>. Тогда <tex>M_{1}</tex> работает без прерываний, т.к к моменту завершения выполнения <tex>I_{1}</tex> на <tex> M_{1} </tex> все работы <tex>I_{21}</tex> выполнены на <tex>M_{2}</tex>.
*Иначе <tex>T_{1}(I_{12}) + T_{1}(I_{1}) < T_{2}(I_{21}) </tex>. Тогда <tex>M_{2}</tex> работает без прерываний, т.к к моменту завершения выполнения <tex>I_{2}</tex> на <tex> M_{2} </tex> все работы <tex>I_{12}</tex> выполнены на <tex>M_{1}</tex> .
Рассмотрим станок на котором достигается <tex>C_{max}</tex> .
*Если это <tex>M_{1}</tex>, то оптимальность очевидна (<tex>(C_{max} \geqslant \sum\limits_{i \in G_{1}} p_{i1} )</tex>).
*Иначе <tex>C_{max}</tex> достигается на <tex>M_{2}</tex>.
Тогда либо <tex>M_{2}</tex> работает без прерываний и оптимальность очевидна.
}}
 
==Сложность алгоритма==
Время работы алгоритма равно времени работы алгоритма [[F2Cmax|<tex>F2 \mid \mid C_{max}</tex>]]. Сложность алгоритма , то есть <tex>O(n\log n)</tex>.
==Источники информации==
* Peter Brucker. «Scheduling Algorithms» {{---}} «Springer», 2006 г. 179 {{---}} 180 стр. {{---}} ISBN 978-3-540-69515-8
[[Категория: Дискретная математика и алгоритмы]]
[[Категория: Теория расписаний]]
251
правка

Навигация