background image

Algorytm Johnsona

 

Wariant dla dwóch maszyn

 

background image

• Algorytm ten dotyczy zagadnienia 

harmonogramowania pracy dwóch 
maszyn na „n” działkach roboczych 
(obiektach),

• Został sformułowany przy założeniu, 

że harmonogramowanie jest 
wieloetapowym procesem planowania,

• Algorytm Johnsona charakteryzuje się 

prostotą i małym zakresem obliczeń 
numerycznych.

background image

Oznaczenia w algorytmie:
a – pierwsza maszyna,
b – druga maszyna,
aj – { } zbiór zawierający czasy trwania 

czynności wykonywanych przez pierwszą 

maszynę na kolejnych obiektach,

bj – { } zbiór zawierający czasy trwania 

czynności wykonywanych przez drugą 

maszynę na kolejnych obiektach,

i1, i2, ..., in - oznacza permutację (ustawienie 

w kolejności elementów zbioru 

skończonego), określającą optymalną 

kolejność obiektów.

background image

Algorytm Johnsona jest następujący:

1. Przyjąć r = 1, s = n.
2. Znaleźć najmniejszą liczbę spośród 

czasów aj, bj (j = 1, 2, ..., n).

3. Jeżeli liczbą tą jest ak, to ir = k oraz r: 

= r +1, jeżeli zaś liczbą tą jest bl to is 

= l oraz s: = s - 1.

4. Usunąć ze zbioru czasów trwania parę 

(akbk) lub (al, bl). 

5. Powtórzyć postępowanie od punktu 2.

background image

Przykład
• Dwie różne maszyny budowlane mają 

wykonywać prace na sześciu obiektach, 

• Czasy wykonania robót na kolejnych 

obiektach przez maszynę pierwszą  wynoszą 
odpowiednio: aj = { 2, 3, 5, 1, 7, 6 }, 

• Czasy wykonania robót na kolejnych 

obiektach przez maszynę drugą wynoszą 
odpowiednio: bj = { 3, 4, 4, 2, 5, 5 },

• Należy wyznaczyć kolejność realizacji 

obiektów budowlanych, której odpowiada 
minimalny cykl realizacji wszystkich robót 
łącznie.

background image

Interacja 1

1. Przyjąć 

r = 1, s = 6.

2. Wyznaczyć

min{a1, a2, a3, a4, a5, a6, 
b1, b2, b3, b4, b5, b6} = a4 = 1

3. Ponieważ liczbą tą jest a4, 

to i1 = 4 oraz r = 1 + 1 = 2.

4. Usuwamy ze zbioru parę (a4, b4) = (1, 2).

5. Powtarzamy postępowanie od punktu 2. 

background image

Interacja 2

1. Z poprzedniego kroku 

r = 2, s = 6.

2. Wyznaczyć

min{a1, a2, a3, a5, a6, 
b1, b2, b3, b5, b6} = a1 = 2

3. Ponieważ liczbą tą jest a4, 

to i2 = 1 oraz r = 2 + 1 = 3.

4. Usuwamy ze zbioru parę (a1, b1) = (2, 3).

5. Powtarzamy postępowanie od punktu 2. 

background image

Interacja 3

1.

Z poprzedniego kroku 
r = 3, s = 6.

2.

Wyznaczyć
min{ a2, a3, a5, a6, b2, b3, b5, b6} = a2 

= 3

3.

Ponieważ liczbą tą jest a2, 
to i3 = 2 oraz r = 3 + 1 = 4.

4.

Usuwamy ze zbioru parę (a2, b2) = (3, 4).

5.

Powtarzamy postępowanie od punktu 2. 

background image

Interacja 4

1. Z poprzedniego kroku 

r = 4, s = 6.

2. Wyznaczyć

min{ a3, a5, a6, b3, b5, b6} = b3 = 4

3. Ponieważ liczbą tą jest b3, 

to i6 = 3 oraz s = 6 – 1 = 5.

4. Usuwamy ze zbioru parę (a3, b3) = (5, 4).

5. Powtarzamy postępowanie od punktu 2. 

background image

Interacja 5

1. Z poprzedniego kroku 

r = 4, s = 5.

2. Wyznaczyć

min{ a5, a6, b5, b6} = b5 = 5

3. Ponieważ liczbą tą jest b5, 

to i5 = 5 oraz s = 5 – 1 = 4.

4. Usuwamy ze zbioru parę (a5, b5) = (7, 5).

5. Powtarzamy postępowanie od punktu 2. 

background image

Interacja 6

• Wykonanie iteracji 6 nie jest 

konieczne, ponieważ w 

sześcioelementowym zbiorze obiektów 

wyznaczyliśmy już kolejność realizacji 

pięciu obiektów, a mianowicie: 

• i1 = 4, i2 = 1, i3 = 2, i5 = 5, i6 = 3. 
• Widać więc, że obiekt 6, dla którego 

nie ustalono dotychczas kolejności, 

powinien być realizowany jako czwarty 

(po obiekcie 2, i4=6). 

background image

Wynik algorytmu

Permutacją określającą optymalną 

kolejność realizacji obiektów jest 
permutacja:

i1=4, i2=1, i3=2, i4=6, i5=5, i6=3.

background image

Wynik algorytmu


Document Outline