Kursangebot | Produktion | Johnson-Algorithmus

Produktion

Johnson-Algorithmus

Der Johnson-Algorithmus liefert für den 2-Maschinen-Fall eine optimale Reihenfolge der jeweiligen Aufträge, die beide Maschinen in derselben Reihenfolgen durchlaufen. Die Bestimmung der optimale Reihenfolge der Aufträge erfolgt, indem die minimale Bearbeitungszeit als Entscheidungskriterium herangezogen wird. Dies soll anhand eines Beispiels dargestellt werden.

Beispiel: Johnson-Algorithmus

Beispiel

Gegeben seien folgende Aufträge $A_i$ und ihre Bearbeitungszeiten $p_{ij}$ auf den Maschinen $M_j$:

 $A_1$$A_2$$A_3$$A_4$$A_5$$A_6$
$M_1$165414125
$M_2$61279151

Wie sieht die optimale Reihenfolge bei Minimierung der Bearbeitungszeit nach dem Johnson-Algorithmus aus?

Vorgehensweise

Zuerst wird der Auftrag mit der kürzesten Bearbeitungszeit ausgewählt. Ist dieser Auftrag mit der kürzesten Bearbeitungszeit auf Maschine 2 (also $j = 2$) eingeplant, dann wird dieser Auftrag hinten angeordnet. Ist der Auftrag hingegen bei Maschine 1 (also $j = 1$) eingeplant, dann wird dieser vorne angeordnet. 

In diesem Beispiel:  Der Auftrag $A_6$ mit der Bearbeitungszeit von $p_{62} = 1$ ist auf Maschine 2 (also $j = 2$) eingeplant. Da dieser bereits hinten angeordnet ist (und sich damit nichts ändert), wird der nächste Auftrag betrachtet (der Auftrag $A_6$ wird nicht mehr berücksichtigt).

Der Auftrag mit der kürzesten Bearbeitungszeit ist jetzt $A_3$ mit $p_{31} = 4$. Da dieser auf Maschine 1 liegt, wird er vorne angeordnet. Die Reihenfolge der Aufträge sieht nun wie folgt aus (grün markierte Aufträge sind bereits abgearbeitet und werden nicht mehr berücksichtigt):

 $A_3$$A_1$$A_2$$A_4$$A_5$$A_6$
$M_1$416514125
$M_2$76129151

Der nächste Auftrag ist $A_2$ mit $p_{21} = 5$, welcher wieder auf Maschine 1 angeordnet ist und damit nach vorne (aber nach $A_3$) verschoben wird:

 $A_3$$A_2$$A_1$$A_4$$A_5$$A_6$
$M_1$451614125
$M_2$71269151

Weiter folgt Auftrag $A_1$ mit $p_{12} = 6$ auf Maschine 2, welcher nach hinten verschoben wird (aber vor $A_6$):

 $A_3$$A_2$$A_4$$A_5$$A_1$$A_6$
$M_1$451412165
$M_2$71291561

Als nächstes folgt der Auftrag $A_4$ mit $p_{42} = 9$ auf Maschine 2 (also nach vorne):

 $A_3$$A_2$$A_5$$A_4$$A_1$$A_6$
$M_1$451214165
$M_2$71215961

$A_5$ ist der letzte Auftrag und bleibt auf der Position bestehen, somit ist die optimale Reihenfolge der Aufträge auf den Maschinen:

 $A_3$$A_2$$A_5$$A_4$$A_1$$A_6$
$M_1$451214165
$M_2$71215961

Berechnung der Gesamtbearbeitungszeit 

Die Gesamtbearbeitungszeit ergibt sich wie folgt:

Für Maschine 1 können die Aufträge ohne Verzögerung nacheinander abgearbeitet werden, da dieser Maschine keine weiteren Maschinen vorgelagert sind. Die Bearbeitungszeiten der Aufträge müssen also nur kumuliert werden. Maschine 1 hat damit eine Gesamtbearbeitungszeit von 56 ohne Pufferzeiten.

 $A_3$$A_2$$A_5$$A_4$$A_1$$A_6$
$M_1$4921355156

Für Maschine 2 sieht das schon anders aus. Da die Maschine 1 der Maschine 2 vorgelagert ist, muss dies bei der Berechnung der Bearbeitungszeit berücksichtigt werden. Denn ist ein Auftrag bereits auf Maschine 2 eingeplant, aber auf Maschine 1 noch nicht fertiggestellt, entstehen Pufferzeiten und die Gesamtbearbeitungszeit verlängert sich. 

Berechnung

Der Auftrag $A_3$ dauert 7 ZE und ist auf Maschine 1 bei 4 ZE fertiggestellt, kann also auch erst dann auf Maschine 2 einplanbar werden. Das bedeutet also, dass $A_3$ auf Maschine 2 bei 11 Zeiteinheiten fertiggestellt ist (= 4 + 7).

 $A_3$$A_2$$A_5$$A_4$$A_1$$A_6$
$M_1$4921355156
$M_2$111215961


Als nächstes betrachtet man Auftrag $A_2$. Dieser ist bei 9 ZE auf Maschine 1 fertiggestellt, allerdings erst bei 11 ZE auf Maschine 2 einsetzbar (der vorherige Auftrag endet erst bei 11 ZE). Das bedeutet eine Zwischenlagerung über 2 ZE von $A_2$. $A_2$ ist also erst bei 11 ZE einplanbar und dauert 12 ZE, insgesamt ergibt sich also 23 ZE:

 $A_3$$A_2$$A_5$$A_4$$A_1$$A_6$
$M_1$4921355156
$M_2$112315961


Auftrag $A_5$ ist bereits bei 21 ZE auf Maschine 1 fertiggestellt, allerdings auf Maschine 2 erst ab 23 ZE einplanbar (Zwischenlagerung von $A_5$ über 2 ZE). $A_5$ hat eine Bearbeitungszeit von 15 ZE, das ergibt 38 ZE (=23 + 15).

 $A_3$$A_2$$A_5$$A_4$$A_1$$A_6$
$M_1$4921355156
$M_2$112338961


Auftrag $A_4$ beginnt demnach erst bei 38 ZE (Zwischenlagerung von 3 ZE) und dauert 9 ZE, das ergibt eine Gesamtbearbeitungszeit von 47 ZE. 

 $A_3$$A_2$$A_5$$A_4$$A_1$$A_6$
$M_1$4921355156
$M_2$1123384761


Auftrag $A_1$ ist bereits bei 47 ZE auf der Maschine 2 einplanbar, jedoch erst bei 51 ZE auf Maschine 1 fertiggestellt, weshalb die Gesamtbearbeitungsdauer 57 ZE (=51 + 6) darstellt. Der letzte Auftrag beginnt bei 57 ZE und dauert 1 ZE, was eine Gesamtbearbeitungszeit der Maschine 2 von 58 ZE bedeutet.

 $A_3$$A_2$$A_5$$A_4$$A_1$$A_6$
$M_1$4921355156
$M_2$112338475758

Berechnung der Pufferzeit

Die Berechnung der Pufferzeit der Maschine 2 erfolgt so:

Man berechnet für einen Auftrag $A_i$ die Pufferzeit durch:

Pufferzeit = Gesamtbearbeitungszeit aller Aufträge bis $A_i$ (inklusive) - Bearbeitungszeit des Auftrages $A_i$ - Gesamtbearbeitungszeit der vorangegangenen Aufträge (exklusive)

 $A_3$$A_2$$A_5$$A_4$$A_1$$A_6$
$M_1$4921355156
$M_2$112338475758
Puffer400040

Z.B.: Bei Auftrag $A_1$, berechnet sich die Pufferzeit durch die Gesamtbearbeitungszeit aller Aufträge (inklusive $A_1$), also 57 ZE, abzüglich der Gesamtbearbeitungszeit der vorangegangenen Aufträge (exklusive $A_1$) also 47 ZE, abzüglich der Bearbeitungszeit des Auftrages $A_1$ also 6 ZE. 

Grafisch: Johnson-Algorithmus

Man kann das ganze auch grafisch ermitteln, indem man die Reihenfolge in ein Gantt-Diagramm einzeichnet.

Johnson-Algorithmus
Optimale Belegung nach dem Johnson-Algorithmus