English - Universität Koblenz · Landau
Transcrição
English - Universität Koblenz · Landau
Seminar Sommersemester 2015: Automobile Systeme in der Automatisierung Prof. Dr. Dieter Zöbel, Universität Koblenz-Landau, FB Informatik Deadlocks bei fahrerlosen Transportsystemen Arne Reepen Eingereicht: 31.08.2015 / Fertiggestellt: 04.10.2015 Zusammenfassung Die vorliegende Arbeit vermittelt einen Einblick in den Bereich der Deadlocks bei fahrerlosen Transportsystemen. Dabei wird ein Überblick über die drei Herangehensweisen für die Behandlung von Deadlocks gegeben. Außerdem wird der modifizierte Bankier Algorithmus nach Kalinovcic im Detail vorgestellt. Abschließend werden Vor- und Nachteile der verschiedenen Herangehensweisen gegenübergestellt. Schlüsselwörter Deadlock, AGV, Banker Algorithmus 1 Einleitung Fahrerlose Transportsysteme (AGV-Systeme) werden in vielen Bereichen bereits eingesetzt, um effektiv und automatisiert Güter zu transportieren. Einige dieser Anwendungsgebiete sind zum Beispiel automatisierte Lagerhaltung, Anlieferung von Material in Produktions- oder Verpackungsanlagen oder der Transport von Containern in Güterhäfen. Neben den zahlreichen Vorteilen, die ein solches System mit sich bringt, werden auch viele neue Herausforderungen geschaffen. Ein fahrerloses Transportsystem kann nur dann effektiv arbeiten, wenn Routenplanung und Wegführung das Potenzial an Fahrzeugen und vorhandenem Platz ausschöpfen. Vor allem Deadlocks, die Verklemmung mehrerer Fahrzeuge beispielsweise an einer Kreuzung, kann die Auslastung eines Systems massiv einschränken oder gar vollständig zum Erliegen bringen. Daher ist es von großer Bedeutung, Deadlocks innerhalb des Systems entweder zu vermeiden oder frühzeitig zu erkennen und zu beheben. Dabei ist zu beachten, dass es im Vergleich zu Deadlocks im Bereich der Betriebssysteme einige Unterschiede gibt. Beispielsweise ist es einem AGV technisch möglich Rückwärts zu fahren um eine Deadlock Situation auf zu lösen. Dies führt, neben vielen Gemeinsamkeiten, zu einigen wichtigen Unterschieden im Vergleich zu der Behandlung von Deadlocks im Rahmen von Softwareprozessen. Diese Arbeit gliedert sich dabei wie folgt. Zunächst werden in Kapitel 2 die drei Herangehensweisen vorgestellt, in die man die Behandlung von Deadlocks grundlegend unterteilen kann. Anschließend wird in Kapitel 3 der modifizierte Bankier Algorithmus Universität Koblenz-Landau, Institut für Informatik [email protected] http://www.uni-koblenz-landau.de/koblenz/fb4/institute/IST/AGZoebel 2 A. Reepen nach Kalinovcic et al. [4] im Detail vorgestellt. Abschließend werden in Kapitel 4 die Vor- und Nachteile der unterschiedlichen Herangehensweisen gegenübergestellt. 2 Herangehensweisen Das Problem der Behandlung von Deadlocks stammt ursprünglich aus dem Bereich der Betriebssysteme und beschäftigt sich mit der Vergabe von exklusiven Ressourcen zwischen mehreren Prozessen. Um dies auf AGV-Systeme zu übertragen, betrachten wir Prozesse als Missionen, die von einem Fahrzeug ausgeführt werden. Eine Mission ist dabei eine Abfolge von Stationen, die für die Bearbeitung einer Transportmission angefahren werden müssen. Ressourcen entsprechen Wegabschnitten, die von den Fahrzeugen belegt werden, während sie eine Mission bearbeiten. Da sich nie zwei Fahrzeuge gleichzeitig an derselben Position aufhalten können, müssen Verfahren gefunden werden, um diese Ressourcen zu verwalten. Wollen zwei Fahrzeuge zur gleichen Zeit auf eine Kreuzung fahren, kann es ohne entsprechende Mechanismen zur Auflösung der Situation zu einer Verklemmung (Deadlock) des gesamten Systemablaufes kommen. Für den Umgang mit Deadlocks in gibt es drei unterschiedliche Herangehensweisen. 1. Verhinderung von Deadlocks 2. Vermeidung von Deadlocks 3. Erkennung und Behebung von Deadlocks Die grundlegenden Ideen dieser Herangehensweisen und ihre Eignung für den Einsatz in fahrerlosen Transportsystemen werden in den folgenden Kapiteln erläutert. Eine Gegenüberstellung der Vor- und Nachteile findet sich in Kapitel 4. 2.1 Verhinderung von Deadlocks Bei der ersten Herangehensweise, der Verhinderung von Deadlocks, wird das System nach ganz bestimmten Kriterien entworfen. Durch die Einhaltung dieser Kriterien wird effektiv verhindert, dass es zu einem Deadlock kommen kann. Nach [1] müssen für das Auftreten eines Deadlocks folgende vier Bedingungen gleichzeitig erfüllt sein: 1. Wechselseitiger Ausschluss (Mutual Exclusion): Aufgaben verlangen exklusiven Zugriff auf Ressourcen. 2. Besitzen und Warten (Hold and Wait): Aufgaben halten Ressourcen besetzt, während sie auf weitere Ressourcen warten. 3. Kein Ressourcenentzug (No Preemption): Ressourcen können nicht gewaltsam von einer Aufgabe entzogen werde. 4. Zyklisches Warten (Circular Wait): Eine Reihe von Aufgaben wartet auf Ressourcen, die der jeweils nächste belegt. Ein Transportsystem, das nach dem Verfahren der Verhinderung von Deadlocks entworfen ist, versucht das Eintreten mindestens einer dieser Bedingungen zu verhindern. Gelingt dies, so ist garantiert, dass in diesem System keine Deadlocks auftreten können. Bedingung 1 kann in den meisten Fällen nicht vermieden werden, da sich nur ein Fahrzeug zur gleichen Zeit an einem Ort aufhalten kann. Bedingung 2 kann vermieden werden, indem jede Aufgabe direkt zu Beginn alle Ressourcen anfragen muss, die sie jemals benötigen wird. Bedingung 3 kann in AGV-Systemen nicht im Deadlocks bei fahrerlosen Transportsystemen 3 Allgemeinen vermieden werden, da ein belegter Wegabschnitt nicht in jedem Fall freigegeben werden kann. Das Rückwärts fahren eines AGVs beispielsweise, bringt weitere Schwierigkeiten mit sich. Das Eintreten von Bedingung 4 kann durch eine lineare Ordnung der Missionen und dementsprechender Vergabe von Ressourcen verhindert werden. Dies führt allerdings zu starken Einschränkungen für das gesamte System. Um von einer tatsächlichen Verhinderung von Deadlocks sprechen zu können, muss außerdem das gesamte System inklusive aller zukünftigen Ereignisse bekannt sein. In einer realen Umgebung können äußere Einflüsse, die zu einem Deadlock führen können nie vollständig ausgeschlossen werden. 2.2 Vermeidung von Deadlocks Die zweite Herangehensweise zielt auf die Vermeidung von Deadlocks ab. Dabei wird nicht durch das Systemdesign garantiert, dass keine Deadlocks auftreten können, sondern das Auftreten wird zum Beispiel durch die geschickte Vergabe von Ressourcen vermieden. Anders als die Verhinderung von Deadlocks, die bereits mit dem Entwurf des Systems Deadlocks verhindert, ist die Deadlock-Vermeidung ein online Verfahren. Für jede neue Mission muss eine Route bestimmt werden, welche die Abarbeitung von Teilzielen ermöglicht, ohne dass es zu Verklemmungen mit anderen Fahrzeugen kommt. Hier gibt es unterschiedliche Strategien, wie etwa das Vorausplanen der vollständigen Route oder die schrittweise Überprüfung des nächsten Systemzustandes. Dies ermöglicht zwar eine flexiblere Auslastung ist jedoch auch mit mehr Verwaltungsaufwand verbunden. Die Aufteilung der Systemzustände in sichere und unsichere Zustände kommt dabei häufig zum Einsatz. Beispielsweise im Bankier Algorithmus nach Coffman[2], der sich in angepasster Form auch auf den Bereich der AGV Systeme anwenden lässt. Um einen sicheren Zustand handelt es sich hier, wenn es aus diesem Zustand eine Abfolge von Fahrzeugbewegungen gibt, die in einem erfolgreichen Endzustand enden. Ein unsicherer Zustand ist entsprechend dann gegeben, wenn die Gefahr eines Deadlocks besteht, da keine Bewegungsabfolge gefunden werden konnte, die in einem erfolgreichen Endzustand endet. Eine detaillierte Vorstellung einer Modifikation des Bankier Algorithmus findet sich in Kapitel 3. 2.3 Erkennen und Beheben von Deadlocks Die dritte Herangehensweise betrachtet den Aspekt der Erkennung und Behebung von Deadlocks. Anders als die bisherigen Verfahren, die versuchen, das Auftreten von Deadlocks zu verhindern, wird bei diesem Ansatz versucht Deadlocks, möglichst frühzeitig zu erkennen und den Zustand möglichst effizient aufzulösen. Im Idealfall tritt so der tatsächliche Deadlock nicht ein. Diese Herangehensweise ist die flexibelste, da sie mit wenigen Informationen über das System funktioniert. Im einfachsten Fall müssen nur die aktuellen Positionen und Fahrrichtungen der AGVs bekannt sein. Ohne Wissen über die zukünftigen Bewegungen der Fahrzeuge können Deadlocks jedoch nicht vorhergesagt und frühzeitig behoben werden. Auch können in einigen Situationen hohe Kosten, in Form von Wartezeit oder zusätzlich zurückgelegtem Weg, für das Auflösen eines Deadlocks entstehen. Daher bietet es sich an, das auftreten von Deadlocks möglichst gering zu halten, in dem beispielsweise die Strecken Auslastung nicht zu hoch wird. 4 A. Reepen Eine Umsetzung dieser Herangehensweise wird in [3] vorgestellt und kann in automatisierten Containerterminals eingesetzt werden. 3 Modifizierte Bankier Algorithmus Der hier vorgestellte modifizierte Bankier Algorithmus wurde 2011 von Kalinovcic et al. vorgestellt [4]. Ziel der Modifikationen ist es, die Auslastung der AGVs innerhalb eines Systems zu erhöhen. Dazu werden einige Zustände zugelassen, die im klassischen Bankier Algorithmus [2] als unsicher ausgeschlossen werden. Dabei sollen die Berechnung von geringer Komplexität sein und einfach in reelle Anlagen integriert werden können. 3.1 Systembeschreibung Die Struktur eines AGV-Systems lässt sich mithilfe eines ungerichteten Graphen H = (N, A) darstellen. Er besteht aus einer Menge von Knoten N = {n1 , n2 , ..., np } und einer Menge von Kanten A = {a1 , a2 , ..., aq }. Die Knotenpunkte können dabei in drei Typen unterschieden werden. Die Ladestationen Ii , Arbeitsstationen Wi sowie Kreuzungen Ci . Die Menge aller AGVs wird mit R bezeichnet. Es werden die folgenden Annahmen gemacht: 1. AGVs können sich nur auf Kanten aufhalten 2. auf jeder Kante kann sich maximal ein AGV zur gleichen Zeit aufhalten, breite Wege müssen durch mehrere Kanten modelliert werden 3. jedes AGV besitzt eine eigene Ladestation 4. AGVs dürfen weder Rückwärts fahren noch eine 180◦ Wendung machen, außer sie verlassen eine Arbeitsstation Der Ablauf einer Mission folgt immer dem Muster Ii → Wk → Wl → ... → Ii . Sie startet und endet in der Ladestation des jeweiligen AGVs und es können ein oder mehrere Arbeitsstationen angefahren werden. Eine Mission wird als mi = (σr , r) modelliert. Sie besteht aus dem Missionspfad σr und dem Fahrzeug r ∈ R, das die Mission bearbeitet. Ein Missionspfad σr = ap → aq → as → ... → ap hat die Länge |σr | und ist eine Sequenz von Kanten, welche die besuchten Knoten verbinden. σr (j) liefert die j-te Stelle in σr . Außerdem wird für jedes Fahrzeug ein Kantenindex k definiert, bei dem kr = i bedeutet, dass r die i-te Kante in σr belegt. Alle aktiven Pfade eines System, die gerade einer Mission zugewiesen sind, bilden Σ = {σ1 , σ2 , ..., σl }. Die Menge aller Kantenindizes bildet K = {k1 , k2 , ..., kl }. Daher wird der Zustand S = (Σ, K) des Systems vollständig beschrieben durch die aktiven Pfade sowie die belegten Kanten. Im initialen Zustand S0 = (Σ, K) gilt ∀kr ∈ K : kr = 1, das heißt alle Fahrzeuge befinden sich in ihrer Ladestation. Im finalen Zustand SF gilt ∀kr ∈ K : kr = |σr |, es haben alle Fahrzeuge das Ende ihres Pfades erreicht und befinden sich in ihrer Ladestation. Die folgenden Definitionen beschreiben die Zustände und Zustandsübergabe innerhalb des Systems. Deadlocks bei fahrerlosen Transportsystemen 5 Definition 1: zulässiger Zustand [4] Zustand S = (Σ, K) ist zulässig wenn: ∀p, q ∈ R, p 6= q : σp (kp ) 6= σq (kq ) Zustand S ist zulässig, wenn sich alle Fahrzeuge auf unterschiedlichen Kanten befinden. Start- und Endzustand sind nach Definition immer zulässig. Definition 2: Zustandsübergang durch Fahrzeugbewegung [4] Seien S = (Σ, K) und S 0 = (Σ, K 0 ) Zustände, dann gibt es ein r, sodass: ( 1≤r≤ |R|, ki0 ki , i 6= r = ki + 1, i = r Zustand S ändert sich zu Zustand S’ durch die Bewegung von Fahrzeug r. r Dies wird geschrieben als: S − → S0. Definition 3: Zustandsübergang durch Missionszuweisung [4] Seien S = (Σ, K) und S 0 = (Σ 0 , K 0 ) Zustände, dann gibt es ein r, sodass: ( 1 ≤ r ≤ |R|, kr = |σr |, ki0 = ki , i 6= r 1, i = r ∀i 6= r : σi0 = σi Ein Zustand S ändert sich zu Zustand S’ durch eine neue Missionszuweisung an Fahrzeug r. Dies wird geschrieben als: S − → S0. r Definition 4: Deadlock-Zustand [4] S = (Σ, K) ist ein Deadlock-Zustand, wenn es kein Fahrzeug r gibt, sodass r S− → S 0 und S 0 = (Σ, K 0 ) zulässig sind. Tritt ein Deadlock-Zustand ein, können keine erlaubten Fahrzeugbewegungen mehr durchgeführt werden, die das System zurück in einen sicheren Zustand bringen. Somit kann keine der Missionen abgeschlossen werden und der Endzustand kann nicht erreicht werden. Das System ist blockiert. Definition 5: Sicherer Zustand [4] Zustand S = (Σ, K) ist sicher, wenn es eine Sequenz von Fahrzeugbewegungen rM r1 r2 → SF gilt. r1 → r2 → ... → rM gibt, sodass S −→ S 0 −→ S 00 ... −− Ein Zustand ist sicher, wenn es mindestens eine Sequenz von Fahrzeugbewegungen gibt, sodass alle Missionen erfolgreich beendet werden können. Betrachten wir nun den Ablauf des Verfahrens. Zunächst muss einer Mission ein Pfad zugewiesen werden, über den das Fahrzeug die entsprechenden Arbeitsstationen erreichen kann. Dabei wird als Pfad einer Mission immer der kürzeste Pfad gewählt. Einflüsse, welche beispielsweise die mögliche Maximalgeschwindigkeit auf einem Wegabschnitt beeinflussen, werden ignoriert. Um in einen Deadlock-Zustand zu gelangen, muss der Zustand des Systems verändert werden. Dies ist nach den Definition 2 und 3 nur auf zwei Arten möglich. Wie von Kalinovcic et al. [4] bewiesen, kann die Vergabe einer Mission nie zu einem Deadlock führen. Damit bleibt nach Definition 2 nur noch die Bewegung eines Fahrzeuges, um den Zustand des System zu einem unsicheren Zustand zu verändern. Daher wird für die jeweils nächste Fahrzeugbewegung überprüft, ob sie in einem sicheren oder unsicheren Zustand endet. Dazu kann beispielsweise der klassische Bankier Algorithmus nach Dijkstra [2] angewendet werden, nach dem er auf fahrerlose Transportsysteme angepasst wurde. 6 A. Reepen Abb. 1 Graphdarstellung eines AGV Systems [4] Abb. 2 Wartegraph für Abbildung 1 [4] 3.2 Bankier Algorithmus für fahrerlose Transportsysteme Um den Bankier Algorithmus auf ein AGV-System anwenden zu können, müssen zunächst Ressourcen und Prozesse definiert werden. Wegabschnitte, beziehungsweise die Kanten des Graphen, sind die Ressourcen. Prozesse entsprechen den Missionen, die ein Fahrzeug abarbeiten soll. Für die jeweils nächste Bewegung, die ein Fahrzeug ausführen möchte wird getestet, ob diese Bewegung in einem sicheren Zustand endet. Verdeutlichung anhand eines Beispiels nach [4]. In Abbildung 1 sehen wir vier Fahrzeuge in einem AGV System. Fahrzeug V1 ,V3 und V4 kehren auf kürzestem Weg zu ihren Ladestationen zurück, während sich Fahrzeug V2 zu Arbeitsstelle W1 begibt. Es soll nun getestet werden, ob Fahrzeug V1 auf Kante 13 fahren darf. Dazu werden zunächst die bereits belegten Ressourcen benötigt. V1 belegt Kante 13, V2 belegt Kante 15, V3 belegt Kante 8 und V4 belegt Kante 17. Außerdem werden die Ressourcen benötigt, die eine Mission für ihre Vollendung benötigt. Für V1 sind das 1, 5, 15, V2 2, 5, 7, 15, V3 3, 6, 8, 14, 17 und V4 4, 6. Nach Ausführung des Bankier Algorithmus erhalten wir eine Sequenz, in der wir die Missionen ausführen müssen, um in einen Endzustand zu gelangen. Dabei wird jede Mission eines Fahrzeugs vollständig ausgeführt, bevor das nächste Fahrzeug fährt. Eine solche Sequenz wäre: m2 → m1 → m4 → m3 , es kann jedoch mehrere gültige Sequenzen geben. Für den Beweis, dass dieser Zustand nicht zu einem Deadlock führt, ist nur die Existenz einer solchen Abfolge wichtig. In einer realen Implementation würde eine solche Ausführungsabfolge zu sehr geringen Auslastungen führen. Deadlocks bei fahrerlosen Transportsystemen 7 Abb. 3 Grundlegender Algorithmus für den Test auf BA-Sicherheit[4] Die Bestimmung, ob ein Zustand im Bankier Algorithmus sicher(im folgenden BAsicher) ist, wird mit Hilfe von Wartegraphen nach [6] getestet. Ein solcher Wartegraph für das AGV System in Abbildung 1 is in Abbildung 2 zu sehen. Eine aus einem Knoten ausgehende Kante beschreibt darin eine Wartebeziehung gegenüber dem Zielknoten der Kante. Ist die Anzahl der ausgehenden Kanten eines Knoten outdegree = 0, so wird sein Missionspfad von keinem anderen Fahrzeug belegt. Theorem 1: Zustand S = (Σ, K) ist BA-sicher, genau dann wenn der Wartegraph G = (Ng , Ag ) azyklisch ist. [4] In Abbildung 3 ist der grundlegende Algorithmus für die Bestimmung von BASicherheit gezeigt. Dieser nimmt als Eingabe den Wartegraph für den aktuellen Systemzustand G = (Ng , Ag ). Es werden nach und nach Knoten mit einem outdegree = 0 entfernt. Wenn alle Knoten entfernt werden konnten ist der Zustand BA-sicher. Können nicht alle Knoten entfernt werden besteht eine zyklische Wartebeziehung zwischen zwei Knoten. Damit ist der Zustand nicht BA-sicher. Dies bedeutet jedoch nicht, dass es er in einem Deadlock-Zustand enden muss. Die Ausführung dieses Algorithmus hat für einen Graphen G mit n Knoten die Komplexität O(n2 ). 3.3 Modifikation zur Steigerung der Auslastung Die Annahmen des klassischen Bankier Algorithmus sind sehr streng, dadurch gibt es Zustände, die ebenfalls erfolgreich zu einem Endzustand führen, jedoch als nicht sicher erkannt werden. Das führt zu einer nicht optimalen Auslastung des Systems. Dies geschieht dadurch, dass der Fortschritt der Bewegungen anderer Fahrzeuge nicht berücksichtigt wird. Ein Fahrzeug, das den Pfad eines anderen kreuzt, belegt zwar kurzzeitig einen benötigten Wegabschnitt, hat diesen jedoch möglicherweise bereits freigegeben, wenn der Wegabschnitt tatsächlich benötigt wird. Diese Zustände werden modifiziert BA-sicher(im folgenden MBA-sicher) genannt und wie folgt formalisiert: Definition 6: MBA-sichere Sequenz [4] Sequenz r1 → r2 → ... → rM ist eine MBA Sequenz, wenn k, 1 ≤ k ≤ M existiert sodass: i)∀(i, j), 1 ≤ i ≤ j ≤ k : ri = rj und ii)∀(i, j), 1 ≤ i ≤ j ≤ M : ri = rj ⇒ ri = rj+1 = ... = rj 8 A. Reepen Abb. 4 Erweiterter Algorithmus für den Test auf MBA-Sicherheit[4] Definition 7: [4] Zustand S = (Σ, K) ist MBA-sicher, wenn es eine MBA-Sequenz r1 → r2 → ... → rM r1 r2 rM gibt, sodass: S −→ S 0 −→ S 00 ... −−→ SF Theorem 2: Zustand S = (Σ, K) und Fahrzeug r fragt an Kante a zu befahren. Das System ist nicht deadlockgefährdet, wenn die Belegung von a durch r zu einem Zustand S = (Σ, K 0 ) führt, welcher MBA-sicher ist. Dies bedeutet, dass Zustand S MBA-sicher ist, solange durch das Bewegen eines Fahrzeuges ein BA-sicherer Zustand erreicht werden kann, da man aus diesem immer einen Endzustand erreichen kann. Für die Bestimmung, ob ein Zustand MBA-sicher ist, werden ebenfalls Wartegraphen verwendet. Dabei wird für jedes Fahrzeug der Wert emax bestimmt. Dieser gibt an, wie viele Schritte das Fahrzeug auf seinem Pfad ausführen kann bevor es den Pfad eines anderen Fahrzeuges kreuzt. In Abbildung 4 ist der erweiterte Algorithmus zu sehen, der auf MBA-Sicherheit testet. Für alle Teilschritte 1 ≤ j ≤ emax wird mit Hilfe von Algorithmus 1 getestet, ob der Zustand BA-sicher ist. Kann ein solcher Zustand gefunden werden, ist der Weg bis zu diesem Punkt MBA-sicher und kann befahren werden. 3.4 Simulationsergebnisse Der vorgestellte modifizierte Bankier Algorithmus wurde in einer Simulationsumgebung getestet und mit dem klassischen Bankier Algorithmus sowie dem Ansatz von Revelio- Deadlocks bei fahrerlosen Transportsystemen 9 Abb. 5 Simulationsergebnisse für BA, MBA und RBA[4] tis [7](im folgenden RBA) verglichen. Reveliotis wählt eine andere Herangehensweise, in der Fahrzeugpfade dynamisch bestimmt werden, statt bei der Missionsvergabe festgelegt zu werden. Für die Simulation wurde ein reale Lager und Verpackungsanlage gewählt, die mit vier Fahrzeugen, acht Arbeitsstationen und 34 Pfaden arbeitet. In Abbildung 5 sind die Ergebnisse dieser Simulation zu sehen. Aus den Ergebnissen wird deutlich, dass BA und MBA immer die gleiche Strecke zurücklegen, da sie beide den kürzesten Pfad für eine Mission wählen. RBA legt längere Strecken zurück, da dieses Verfahren die Route anpasst, wenn die kürzeste Route blockiert ist. MBA erzielt im Durchschnitt kürzere Laufzeiten pro Mission als BA und RBA. Auch die Wartezeiten können mit MBA gegenüber BA reduziert werden, jedoch ist die dynamische Routenplanung von RBA hier deutlich überlegen. Wie in den Simulationsergebnissen zu sehen ist, erreicht der modifizierte Bankier Algorithmus die angestrebten Ziele. Er erzielt eine höhere Auslastung der Fahrzeuge durch kürzere Ausführungszeiten pro Mission und verkürzte Wartezeiten. Dennoch gibt es einige Aspekte, die bei der Umsetzung zu beachten sind. Vor allem sind die Simulationen mit nur vier Fahrzeugen durchgeführt worden. Diese sehr kleine Anzahl lässt wenig Rückschlüsse auf die Performanz in großen Systemen zu. Auch die Anzahl der betrachteten Wegstrecken ist, verglichen mit beispielsweise einem Containerterminal, sehr gering. Diese zwei Aspekte lassen die verwendeten Graphen sehr groß werden, was möglicherweise zu Problemen führen könnte. Vor allem in großem Systemen können auch die vollständig vorberechneten Missionspfade zu Problemen führen, da durch mehr Fahrzeuge sehr viele Kreuzungen von Missionspfaden auftreten können. Im klassischen Bankier Algorithmus würden diese bereits zu unsicheren Zuständen führen. Dies wird durch die schrittweise Überprüfung der MBA-Sicherheit bis emax zwar teilweise abgefangen, jedoch leider nicht für eine größere Anzahl von Fahrzeugen simuliert. 4 Zusammenfassung In dieser Arbeit wurden die drei grundlegenden Herangehensweisen für die Behandlung von Deadlocks in fahrerlosen Transportsystemen prinzipiell betrachtet. Im Detail wurde der modifizierte Bankier Algorithmus nach Kalinovcic[4] betrachtet. Der Ansatz der Deadlock-Verhinderung bringt durch strikte Vorgaben für das Systemdesign deutliche Einschränkungen mit sich und ist damit am wenigsten flexibel. Mit Verfahren, wie dem vorgestellten modifizierten Bankier Algorithmus, wird die 10 A. Reepen Herangehensweise der Deadlock Vermeidung verfolgt. Über die Bewertung von Systemzuständen als sicher bzw. unsicher, können die Ressourcen effizienter vergeben werden und es müssen weniger pessimistische Annahmen getroffen werden, als es bei Verhinderungsstrategien geschieht. Die Herangehensweise der Deadlock-Erkennung und -Behebung kann am flexibelsten auf neue Ereignisse reagieren, benötigt dafür allerdings den höchsten Verwaltungsaufwand [3]. Die in Kapitel 3.4 gezeigten Simulationsergebnisse zeigen, dass die von Kalinovcic et al. gemachten Modifikationen zu kürzeren Bearbeitungs- und Wartezeiten führen. Damit kann das angestrebte Ziel der Erhöhung der Auslastung, gegenüber dem klassischen Bankier Algorithmus, als erreicht angesehen werden. Das Verfahren macht allerdings einige Annahmen, welche die Fähigkeiten eines AGVs, zu Gunsten der einfacheren Planung, einschränken. Als Kritik ist außerdem die sehr geringe Anzahl der simulierten Fahrzeuge anzuführen. Insgesamt zeigt sich, dass die Wahl des richtigen Verfahrens stark vom Einsatzgebiet, Anzahl der Fahrzeuge und gegeben Vorgaben abhängt. Literatur 1. Coffman, E. G., Elphick, M., & Shoshani, A. (1971): System deadlocks. ACM Computing Surveys (CSUR), 3(2), 67-78. 2. Dijkstra, E. W. (1982): The mathematics behind the Banker?s algorithm. In Selected Writings on Computing: A Personal Perspective (pp. 308-312). Springer New York. 3. Lehmann, M., Grunow, M., & Günther, H. O. (2006): Deadlock handling for real-time control of AGVs at automated container terminals. OR Spectrum, 28(4), 631-657. 4. Kalinovcic, L., Petrovic, T., Bogdan, S., & Bobanac, V. (2011, August): Modified Banker’s algorithm for scheduling in multi-AGV systems. In Automation Science and Engineering (CASE), 2011 IEEE Conference on (pp. 351-356). IEEE. 5. Fanti, M. P., & Turchiano, B. (2001): Deadlock avoidance in automated guided vehicle systems. In Advanced Intelligent Mechatronics, 2001. Proceedings. 2001 IEEE/ASME International Conference on (Vol. 2, pp. 1017-1022). IEEE. 6. Silberschatz, A., Galvin, P. B., Gagne, G., & Silberschatz, A. (1998): Operating system concepts (Vol. 4). Reading: Addison-Wesley. 7. Reveliotis, S. A. (2000): Conflict resolution in AGV systems. IIE Transactions, 32(7), 647659.