Изменения

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

J2pij1Lmax

25 байт добавлено, 22:48, 11 мая 2016
Алгоритм
Давайте детально рассмотрим алгоритм. <tex>T1</tex> и <tex>T2</tex> обозначают первый период времени <tex>t \ge 0</tex>, когда соответствующие машины <tex>A</tex> и <tex>B</tex> бездействуют. <tex>LAST(i)</tex> обозначает время окончания последней запланированной операции <tex>i</tex>-той работы. <tex>Z</tex> {{---}} множество работ, где <tex>d_i \ge r</tex>
'''function'''main()''': '''for''' k: = -r + 1 '''to''' r - 1 <tex>L(k)</tex> = <tex>\emptyset</tex>; Z = <tex>\emptyset</tex>; '''for''' i: = 1 '''to''' n
'''if''' <tex>d_i</tex> < r
'''for''' j: = 1 '''to''' <tex>n_i</tex>
добавить <tex>O_{ij}</tex> в <tex>L(d_i - n_i + j)</tex>
'''else'''
добавить работу i в Z
'''for''' i: = 1 '''to''' n LAST(i) = 0; T1 = 0; T2 = 0; '''for''' k: = -r + 1 '''to''' r - 1
'''while''' <tex>L(k) \ne \emptyset</tex>
Выбрать задание <tex>O_{ij}</tex> из <tex>L(k)</tex>
<tex>L(k)</tex> = <tex>L(k)\setminus\{O_{ij}\}</tex>;
schedule(<tex>O_{ij}</tex>)
'''while''' <tex>z \ne \emptyset</tex>
Выбрать работу i из Z
Z = <tex>Z \setminus\{i\}</tex>;
'''for''' j: = 1 '''to''' <tex>n_i</tex>
schedule(<tex>O_{ij}</tex>)
'''function'''schedule(<tex>O_{ij}</tex>)''':
'''if''' <tex>\mu_{ij}</tex> == A
'''if''' T1 < LAST(i)
A(t) = <tex>O_{ij}</tex> (*)
'''else'''
t = T1; A(t) = <tex>O_{ij}</tex>;
'''while''' <tex>A(T_1)</tex> <tex>\ne \emptyset</tex>
T1 = T1 + 1;
'''else'''
'''if''' T2 < LAST(i)
B(t) = <tex>O_{ij}</tex> (**)
'''else'''
t = T2; A(t) = <tex>O_{ij}</tex>;
'''while''' <tex>B(T_2) \ne \emptyset</tex>
T2 = T2 + 1;
LAST(i) = t + 1
Анонимный участник

Навигация