Sunteți pe pagina 1din 5

Seminar

Problemă de ordonanțare. Algoritmul lui Johnson


O unitate productivă (agent economic) prelucrează un lot de 6 produse notate
𝑃1 , 𝑃2 , … , 𝑃6 în mod succesiv pe două utilaje 𝑈1 , 𝑈2 utilizând o tehnologie specifică.
Unitatea de producție cunoaște matricea timpilor 𝑡𝑖𝑗 de prelucrare a fiecărei unități de
produs 𝑃𝑖 (𝑖 = ̅̅̅̅̅1, 6) pe utilajul 𝑈𝑗 (𝑗 = ̅̅̅̅̅
1, 2).
Din cauza complexității tehnologiei de prelucrare a produsului din categoria 𝑃4 duratele
de prelucrare ale acestuia pe utilajul 𝑈1 , respectiv 𝑈2 sunt variabile aleatoare uniform
distribuite în anumite intervale conform tabelului:
t (min) 𝑈1 𝑈2
𝑃1 15 17
𝑃2 32 8
𝑃3 27 41
𝑃4 [4; 6] [16; 17]
𝑃5 12 19
𝑃6 21 30
Se cere să se stabilească utilizând metoda simulării numerice care este timpul mediu total
de prelucrare a produselor cat ordinea lansarii produselor in cadrul lotului.
Rezolvare
Înainte de a aplica metoda simulării numerice, să vedem ce este o problemă de ordonațare
și cum funcționează algoritmul lui Johnson:
O problemă de ordonanțare, este o problemă de determinare ordinii lansării în producție
(prelucrare) a fiecărui bun 𝑃𝑖 (𝑖 = ̅̅̅̅̅
1, 6) în cadrul lotului respectiv astfel încât timpul total de
prelucrare a lotului să fie minim, adică în ce ordine trebuie prelucrate produsele 𝑃1 , 𝑃2 , … , 𝑃6
pe cele două utilaje astfel încât timpul total al intregului lot sa fie minim.
Observație Această problemă este NP (non polinomială) completă și nu se cunosc algoritmi
de determinare a soluției optime de timp polinomial. Există în schimb metode euristice de
rezolvare ”eficiente” care conduc la soluții ”eficiente” (suboptimale) de timp polinomial.
O astfel de metodă euristică este și algoritmul lui Johnson care propune pentru cazul
determinist executarea următorilor pași:
Presupunem că avem următoarea matrice a timpilor de prelucrare:
𝑡𝑖𝑗 (min) 𝑈1 𝑈2
𝑃1 15 17
𝑃2 32 8
𝑃3 27 41
𝑃4 5 16
𝑃5 12 19
𝑃6 21 30
Se ordonează mai întâi produsele pe utilajul pentru care sunt cei mai mulți timpi
minimi, adică 𝑈1 în cazul nostru

Trasam pe axa timpului pentru cele doua utilaje, conform ordinii intiale produsele
specificand momentul de intrare de iesire de pe utilajul respectiv. Prelucrarea
produselor din lot pe al doiea utilaj se face dupa ce acestea au parasit utilajul U 1,
conform celor ilustrate mai jos:

Prin urmare durata totală 180 min

Programarea de mai sus pe 𝑈1 și 𝑈2 a fost făcută ținând seama de ordinea inițială dată.
Algoritmul lui Johnson are următorii pași:

 Pas 1 Se alege min 𝑡𝑖𝑗 = 5 = 𝑡41


̅̅̅̅
𝑖=1,6
̅̅̅̅
𝑗=1,2
Dacă minimul 𝑡𝑖1 se realizează pe 𝑈1 atunci produsul 𝑃𝑖 trece pe primul loc, iar dacă
timpul minim este 𝑡𝑖2 (adică este un timp de pe 𝑈2 , atunci se trece pe ultimul loc)

În cazul nostru 𝑡41 ⟹ 𝑃4 a trecut pe primul loc

 Pas 2 Se elimină a 4-a linie din matricea timpilor de execuție și se reia algoritmul de la Pas 1
pe matricea rămasă.

Iterația 2 min 𝑡 = 8 ⟹ 𝑡22 este timpul minim și deci 𝑃2 a trece pe ultimul loc
̅̅̅̅̅ i≠4 𝑖𝑗
𝑖=1,6
̅̅̅̅
𝑗=1,2

și eliminăm linia 2 din tabel.

Iterația 3 min 𝑡 = 12 = 𝑡51 ⟹ 𝑃5 ocupă locul 2 în noua ordine,


̅̅̅̅̅ i≠2,4 𝑖𝑗
𝑖=1,6
̅̅̅̅
𝑗=1,2

iar linia a 5-a se va elimina din tabel.


Și așa mai departe, rezultând o nouă ordine a prelucrării: 𝑃4 , 𝑃5, 𝑃1 , 𝑃6 , 𝑃3 , 𝑃2

𝑈1 𝑈2
𝑃4 5 16
𝑃5 12 19
𝑃1 15 17
𝑃6 21 30
𝑃3 27 41
𝑃2 32 8

Recalculând durata totală de prelucrare folosind axa timpului pentru 𝑈1 și 𝑈2 avem:

Timp total de prelucrare 136 min

În cazul când cel puțin o durată este variabilă aleatoare atunci apelam la metoda simularii numerice:

Pregătirea simulării:
Din matricea duratelor de prelucrare se identifică numai două durate cu comportament
aleator, prin urmare vom simula duratele de prelucrare ale lui 𝑃4 pe utilajele 𝑈1 și 𝑈2 , deci avem
nevoie de două șiruri de numere pseudo-aleatoare.

Fie: {0,69; 0,96; 0,97; 0,78; 0,34; 0,02; 0,07; 0,53; 0,23; 0,68} și
{0,75; 0,25; 0,83; 0,44; 0,65; 0,77; 0,55; 0,28; 0,27; 0,12}

Simularea propriu-zisă:

Durata totală
n 𝑢1𝑖 𝑢𝑖2 D41 D42 Ordonare Johnson

𝑃4 , 𝑃5, 137,13
1 0,69 0,75 5,38 16,75
𝑃1 , 𝑃6 , 𝑃3 , 𝑃2
2 0,96 0,25 … …

3 0,97 0,83

4 0,78 0,44

5 0,34 0,65

6 0,02 0,77

7 0,07 0,55

8 0,53 0,28

9 0,23 0,27

10 0,68 0,12

Se calculează duratele simulate pentru P4 pe 𝑈1 și 𝑈2

𝐷41 = 4 + (6 − 4) ∙ 0,69 = 5,38

𝐷42 = 16 + (17 − 16) ∙ 0,75 = 16,75


după care se aplică algoritmul Johnson de ordonanțare rezultând {𝑃4 , 𝑃5 , 𝑃1 , 𝑃6 , 𝑃3 , 𝑃2 } cu timpul
total de 137,13

Șirul generat trebuie să aibă un număr foarte mare de elemente.

Presupunem că acest număr este N. În urma realizării unui ciclu (în care au fost calculate N durate
totale pentru diferite N ordonări) se calculează o durată totală medie/ ciclu.

Se obține astfel
𝑝
1
𝐷𝑐𝑖 = ∑ 𝐷𝑡𝑜𝑡𝑎𝑙ă 𝑖
𝑁
𝑖=1

Se reiau ciclurile de 𝑝 ori (𝑝 ⟶ ∞) și durata totală rezultată în urma ciclurilor realizate este:
𝑝
1
𝐷𝑇 = ∑ 𝐷𝑐 𝑖
𝑝
𝑖=1

Temă:
1. Sa se completeze tabelul dat cu 2 noi cicluri pentru siruri de cate 10 nr. pseudoaleatoare
uniform distribuite in (0,1)
2.Se consideră matricea timpilor de prelucrare:

𝑈1 𝑈2
𝑃1 15’ 17’
𝑃2 32’ 8’
𝑃3 27’ [39; 44]
𝑃4 [2; 7] 16’
𝑃5 12’ 19’
𝑃6 2’ t’

unde t’ este o variabilă aleatoare cu distribuția

𝑡: ( 2′ 3′ 3,5′ 3,8′ 4′
).
0,1 0,2 0,4 0,2 0,1
Se cere să se determine durata totală de prelucrare a lotului prin simulare numerica folosind
algoritmul lui Johnson.

S-ar putea să vă placă și