Изменения

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

J2pij1Lmax

323 байта добавлено, 21:16, 21 июня 2012
Нет описания правки
main()
'''for ''' k: -r + 1 '''to ''' r - 1 do <tex>L(k) </tex> = <tex>\emptyset</tex>; Z := (empty)<tex>\emptyset</tex>; '''for ''' i:= 1 '''to ''' n do '''if ''' <tex>d_i </tex> < r then '''for ''' j := 1 '''to ''' n_i do добавить <tex>O_{ij} </tex> в <tex>L(d_i - n_i + j)</tex> '''else''' добавить работу i в Z '''for ''' i := 1 '''to ''' n do LAST(i) := 0; T1 := 0; T2 := 0; '''for ''' k := -r + 1 '''to ''' r - 1 do '''while ''' <tex>L(k) \ne \emptyset do</tex> Выбрать задание <tex>O_{ij} </tex> из <tex>L(k)</tex> <tex>L(k) :</tex> = <tex>L(k)\{O_{ij}}</tex>; schedule(<tex>O_{ij}</tex>) '''while ''' <tex>z \ne \emptyset do</tex> Выбрать работу i из Z Z := <tex>Z\{i}</tex>; '''for ''' j := 1 '''to ''' <tex>n_i</tex> schedule(<tex>O_{ij}</tex>)
schedule(O_{ij})
if \mu_{ij} = A then do if T1 < LAST(i) then do t := LAST(i) A(t) := O_{ij} else t := T1; A(t) := O_{ij}; while A(T_1) \ne \emptyset do T1 := T1 + 1; else if T2 < LAST(i) then do t := LAST(i) B(t) := O_{ij} else t := T2; A(t) := O_{ij}; while B(T_2) \ne \emptyset do T2 := T2 + 1; LAST(i) := t + 1
Очевидно, что количество шагов алгоритма ограничено <tex>O(r)</tex>
81
правка

Навигация