Belegarbeit im Fach Modellierung und Simulation
Belegaufgabe |
Notarzt |
Abgabedatum |
14. September 2001 |
Verfasser |
Patrick Langi |
7 problembezogene
Verbesserungen
8 Betrachtung
der Zufallszahlen
Im Rahmen der Vorlesung Modellierung und Simulation im Sommersemester 2001 an der Technischen Universität Chemnitz wurde an die Studenten die Aufgabe formuliert, ein Simulationsprogramm in einer höheren Programmiersprache zu implementieren. Zur Auswahl standen C++, C sowie Java und Pascal. Das zu simulierende Problem sollte von den Studenten selbst aus einer vorgegebenen Gruppe von Problemstellungen ausgewählt werden. Des weiteren bestand die Möglichkeit eine selbst formulierte Problemstellung zu implementieren.
Im folgenden soll nun meine Umsetzung dieser Aufgabe dargelegt werden, ich werde dazu das Problem, welches ich gewählt habe kurz umreißen und einige Worte zur gewählten Programmiersprache verlieren. Anschließend, soll das Problem durchdrungen werden und Lösungsansätze werden dargestellt. Dem schließt sich eine Benutzerdokumentation zum implementierten Simulation an. Letztlich werden die erzielten Ergebnisse dargestellt und näher untersucht.
Die Auslieferung des Programms erfolgt auf einer CD. Diese enthält:
Des weiteren wird die gedruckte Versionen dieses Dokumentes übergeben.
Außerdem wird das Programm im Netz als Applet zur Verfügung gestellt. Dort findet sich ebenfalls diese Dokumentation in HTML Format und einige weitere erklärende Dokumentationen, welcher aus der Feder von Jens Flohrer stammen und ergänzend zur Veranstaltung im Netz, unter http://www.tu-chemnitz.de/~jflo/ bereitgestellt wurden.
In der Einsatzzentrale der dringlichen medizinischen Hilfe geht im Mittel aller 50 Minuten (Zeitabstände exponentialverteilt) ein Notruf ein. Ist das Einsatzfahrzeug mit dem diensthabenden Arzt gerade unterwegs, werden die eingehenden Notrufe in einer Warteliste notiert. Unmittelbar nach Beenden einer Behandlung meldet sich der Arzt per Funk in der Zentrale und erhält gegebenenfalls die Adresse des nächsten Patienten. Die Auswahl aus der Warteliste erfolgt nach dem FIFO-Prinzip, wobei lebensbedrohliche Notfälle (erfahrungsgemäß etwa jeder vierte) Vorrang haben und daher immer ganz oben eingeordnet werden. Die Fahrtzeit ist davon abhängig, in welchem Stadtbezirk der nächst aufzusuchende Patient wohnt. Das Einsatzgebiet des Arztes umfasst 10 Stadtbezirke. Das ASCII-File „stadt.dat“ enthält für jeden Stadtbezirk die Einwohnerzahl (1.Wert) sowie die mittleren Fahrzeiten µ[i,j] von einem Standort im Bezirk i zu einer Wohnung im Bezirk j (2. bis 11.Wert). Die tatsächlich benötigte Zeit wird als gleichverteilt im Intervall [ Mittelwert +/- 50%] angenommen. Weiter kann davon ausgegangen werden, dass die Notfälle entsprechend der Bevölkerungszahl auf die Stadtbezirke verteilt sind. Für die Versorgung eines normalen – nicht lebensbedrohlichen Notfalles benötigt der Arzt zwischen 10 und 20 Minuten, bei lebensbedrohlichen Notfällen 30 bis 90 Minuten. Ist nach Beendigung einer Behandlung kein weiterer Patient zu versorgen (Warteliste leer), so kehrt das Einsatzfahrzeug in die Zentrale, die sich im Stadtbezirk 1 befindet, zurück. Sollte während der Rückfahrt ein Notruf eingehen, wird dieser sofort per Funk übermittelt und der Arzt bricht die Heimfahrt ab und fährt zum Patienten.
Die original Aufgabe ist unter http://www.tu-chemnitz.de/~langi/mus/beleg/aufgabe.shtml zu finden.
Klären Sie mit Hilfe von Simulationsexperimenten folgende Fragen:
Als Programmiersprache wurde Java verwandt. Dies begründet sich im wesentlichen der Portierbarkeit von Java als auch der Möglichkeit das Simulationsprogramme in Form eines Applets zur Verfügung zu stellen. Entwickelt wurde auf der Plattform
java version "1.3.0_01"
Java(TM) 2 Runtime Environment, Standard Edition
(build 1.3.0_01)
Java HotSpot(TM) Client VM (build 1.3.0_01, mixed
mode)
Da deren Klassenbibliotheken teilweise von denen abweichen welche gängige Browser zur Verfügung stellen, wurde im nachhinein eine Überarbeitung des Quelltextes vorgenommen, sodass eine Kompatibilität bis zu Plattform 1.1.8 sichergestellt ist.
Als erstes stellt sich die Frage nach temporären und permanenten Simulationselementen gestellt. Zur Beschreibung des Aufbaues des Systems wurden folgende permanenten Elemente identifiziert:
Als temporäre Elemente gelten:
Da bei Entwicklung objektorientiert vorgegangen wurde, stellen all die oben definierten Elemente auch Objekte in der Implementation dar. Außer diesen wurden weitere Objekte benötigt:
Dies sind daher alle Objekte, welche sich in der Simulation wiederfinden.
Von zentralem Interesse sind bei der Simulation die Aktivitäten des Notarztes, da dieser den einzigen Bedienkanal des Systems darstellt. Dabei wurden folgende Zustände identifiziert:
Weiterhin existieren folgende passiven Zustände:
Daher ergibt sich
folgendes Aktivitätendiagramm:
Da im folgenden auf die verschiedenen Szenarien eingegangen werden soll, erfolgt an dieser Stelle eine Einführung in das Arbeiten mit dem Simulationsprogramm.
Das Programm ist in Form eines Java Applets implementiert, es bietet aber auch die Möglichkeit als Applikation gestartet zu werden. Das Applet findet sich unter
http://www.tu-chemnitz.de/~langi/mus/index.html
Die Applikation lässt sich von der Konsole aus starten, dazu muss der Java Development Kit 1.3 installiert sein und es muss in das Verzeichnis gewechselt werden in dem die Quelltexte liegen. Dann werden die .java Dateien kompiliert mit
javac NotarztApplet.java
und ausgeführt mit
java NotarztApplet.
In beiden Fällen wird folgende Oberfläche geladen:
Es findet sich eine Dreiteilung des Programms. Im oberen Teil können die Einstellungen für den nächsten Simulationslauf vorgenommen werden. Im mittleren Teil erfolgen die Ausgaben einer laufenden Simulation und im unteren Teil werden Statusmeldungen ausgegeben und die Simulation wird gestartet.
Im Feld Laufzeit kann die Laufzeit eines Simulationsexperiments angegeben werden diese versteht sich in Minuten.
Im Feld Optionen können zusätzliche Funktionen hinzugeschaltet werden welche die Simulation beeinflussend steuern. Darauf wird unter problembezogene Verbesserungen und Fehler! Verweisquelle konnte nicht gefunden werden. näher eingegangen.
Im Feld Ausgabeoptionen finden sich drei Formen von Ausgaben. Das mitloggen der gesamten Simulation ist sehr Laufzeitaufwendig und wird daher bloß bis 1000 min. simulierte Laufzeit angeboten. Die umfangreiche Auswertung gibt eine Liste mit allen Bearbeitteten Notfällen aus, auch diese kann bei langen Simulationsdauern die Laufzeit des Programms enorm steigern. Die aggregierte Auswertung sollte in jedem Fall gewählt werden, da diese statistische Kennzahlen des Simulationslaufes zurückgibt.
Das Feld Szenarienauswahl gibt dem Nutzer die Möglichkeit eines der drei implementierten Szenarien einzustellen. Dabei ist die Grundeinstellung so wie unter Vorüberlegungen aufgeführt. Die anderen Szenarien werden unter Lösungsansätze dargestellt.
Im Feld Batch Mean kann eine Batch Mean Auswertung angefordert werden. Dabei sind die Felder Ausgabenoptionen und Laufzeit blind. Laufzeit, daher weil sich die Batch Mean Simulationsdauer aus den Batch Mean Einstellungen ergibt und die Ausgabeoptionen, da nur eine aggregirte Auswertung der Ergebnisse sinnvoll ist, alle anderen Auswertungen wären sinnlos da sie durch die Batch Mean Option nicht anders werden als ohne. Das Feld Laufzeit, zeigt auch in diesem Fall die berechnete Laufzeit an. Weitere Informationen zu Batch Mean können http://www.tu-chemnitz.de/~langi/mus/beleg/batchmean.html entnommen werden.
Die Kapazität des Ausgabefensters ist beschränkt, daher wird geraten die Ausgabeoptionen mit bedacht zu wählen. Weiterhin ist zu beachten, dass die Ausgabe in Java Standartkomponenten sehr Laufzeitintensiv ist.
Die Simulation beginnt mit den unter die Simulation wird gestartet. getroffenen Werten, während der Simulation sind keine Veränderungen am Applet möglich. Um nun den Programmablauf transparenter zu gestallten, soll nun eine Simulation von 1000 min. erläutert werden, als Szenario wurde absolute Priorisierung gewählt, zusätzliche Optionen wurden nicht berücksichtigt. Dazu als erstes die vollständige Ausgabe des Simulationsprogramms. Zur Erklärung werden innerhalb der Originalausgabe in Courier New 7pt., Erläuterungen in Times New Roman 12pt. fett gegeben.
Stadt.fuelleBezirke() - Bezirke erzeugt.
Stadt.fuelleEinwohner - Einwohnerzahlen der Stadt
bestimmt.
Die beiden oberen Zeilen werden während des erzeugen
des Objektes Stadt erzeugt. Dabei wird die Datei stadt.dat ausgelesen und die
entsprechenden Objekt Stadtbezirk werden angelegt und in einem Array innerhalb
von Stadt abgelegt, dort können sie abgerufen werden. Dazu stellt Stadt zwei
Methoden zur Verfügung, zum einem getStadtbezirk() dabei wird ein zufälliger
Stadtbezirk übergeben und getStadtbezirk(int i), wobei der i-te Stadtbezirk
übergeben wird. Ebenfalls noch vor de beginn der Simulation werden die
Notwendigen Objekte Warteliste, Zentrale und Einsatzteam erzeugt. Außerdem wird
ein Objekt von RandomGenerator erzeugt, welches an jeder Stelle in der
Simulation genutzt wird. Nun beginnt die Simulation, indem in Zentrale die
Methode Start(int laufzeit) aufgerufen wird.
42.731544103256965
: Der erste Anruf ist
eingegangen.
42.731544103256965 : Der nächste Anruf wird um
49.52620471593822 erwartet.
Der erste
und zweite Anruf werden generiert.
42.731544103256965
: Der 1. Notfall ist lebensbedrohlich.
42.731544103256965
: 1. Notfall wird bearbeitet.
42.731544103256965
: Ein neuer Einsatz beginnt.
49.42104985175483
: Ankunft bei 1. Patienten nach 6.689505748497865 min. Fahrzeit.
49.52620471593822
: Ein Anruf ist eingegangen
49.52620471593822
: Der nächste Anruf wird um 73.50806132968427 erwartet.
49.52620471593822
: 2. Notfall an 1. Stelle in Liste eingefügt
73.50806132968427
: Ein Anruf ist eingegangen
73.50806132968427
: Der nächste Anruf wird um 143.8124254057821 erwartet.
73.50806132968427
: 3. Notfall an 2. Stelle in Liste eingefügt
Während der Behandlung des 1. Patienten gehen 2 weitere Anrufe ein welch in der Liste abgelegt werden.
113.64721220811771
: 1. Patient beendet, Behandlungszeit: 64.22616235636288
Nachdem der
1. Patient beendet wurde, wird der nächste anstehende aus der Liste entnommen
113.64721220811771
: Der 2. Patient wird aus der Liste entnommen - Verbleiben 1
120.97111290730138
: Ankunft bei 2. Patienten nach 7.3239006991836675 min. Fahrzeit.
134.9593587781677
: 2. Patient beendet, Behandlungszeit: 13.988245870866347
134.9593587781677
: Der 3. Patient wird aus der Liste entnommen - Verbleiben 0
143.8124254057821 : Ein Anruf ist eingegangen
143.8124254057821
: Der nächste Anruf wird um 180.39674917495034 erwartet.
143.8124254057821
: 4. Notfall an 1. Stelle in Liste eingefügt
150.82141942469934
: Ankunft bei 3. Patienten nach 15.862060646531631 min. Fahrzeit.
169.50599297294198
: 3. Patient beendet, Behandlungszeit: 18.68457354824264
169.50599297294198
: Der 4. Patient wird aus der Liste entnommen - Verbleiben 0
172.04301222792208
: Ankunft bei 4. Patienten nach 2.5370192549800947 min. Fahrzeit.
Der 2. und
der 3. Patient wurden abgearbeitet und der 4. wird in Angriff genommen
180.39674917495034
: Ein Anruf ist eingegangen
180.39674917495034
: Der nächste Anruf wird um 220.13776951072586 erwartet.
180.39674917495034
: Der 5. Notfall ist lebensbedrohlich.
180.39674917495034
: Die Behandlung des 4. Patienten wurde wegen des 5. Patienten wurde
unterbrochen
Während der Behandlung des 4. Patienten geht der Notruf eines lebensbedrohlichen Patienten ein, da als Szenario absolute Priorisierung gewählt wurde, wird die Behandlung unterbrochen, der 4. Patient wird an erster Stelle in die Warteliste gelegt, und die Behandlung des 5. Patienten beginnt.
198.25061444096053
: Ankunft bei 5. Patienten nach 17.85386526601019 min. Fahrzeit.
220.13776951072586
: Ein Anruf ist eingegangen
220.13776951072586
: Der nächste Anruf wird um 228.95209244442688 erwartet.
220.13776951072586
: 6. Notfall an 2. Stelle in Liste eingefügt
Der Anruf des 6. Notfall welcher während der Behandlung des 5. eintrifft, wird hinter dem 4. also an 2. Stelle in die Liste eingefügt.
228.95209244442688
: Ein Anruf ist eingegangen
228.95209244442688
: Der nächste Anruf wird um 242.06550390452253 erwartet.
228.95209244442688
: 7. Notfall an 3. Stelle in Liste eingefügt
242.06550390452253
: Ein Anruf ist eingegangen
242.06550390452253
: Der nächste Anruf wird um 299.9882914529121 erwartet.
242.06550390452253
: 8. Notfall an 4. Stelle in Liste eingefügt
Auch die Notfälle 7 und 8 werden während der Behandlung des 5. Patienten in die Liste gelegt.
286.84196789122575
: 5. Patient beendet, Behandlungszeit: 88.59135345026525
286.84196789122575
: Der 4. Patient wird aus der Liste entnommen - Verbleiben 3
299.9882914529121
: Ein Anruf ist eingegangen
299.9882914529121
: Der nächste Anruf wird um 304.7395079263183 erwartet.
299.9882914529121
: 9. Notfall an 4. Stelle in Liste eingefügt
304.7395079263183
: Ein Anruf ist eingegangen
304.7395079263183
: Der nächste Anruf wird um 311.4535044597264 erwartet.
304.7395079263183
: 10. Notfall an 5. Stelle in Liste eingefügt
306.54024002850275
: Ankunft bei 4. Patienten nach 19.698272137277 min. Fahrzeit.
311.4535044597264
: Ein Anruf ist eingegangen
311.4535044597264
: Der nächste Anruf wird um 337.0392260181479 erwartet.
311.4535044597264
: 11. Notfall an 6. Stelle in Liste eingefügt
317.37350354071543
: 4. Patient beendet, Behandlungszeit: 10.833263512212703
317.37350354071543
: Der 6. Patient wird aus der Liste entnommen - Verbleiben 5
333.5074151387828
: Ankunft bei 6. Patienten nach 16.133911598067357 min. Fahrzeit.
337.0392260181479
: Ein Anruf ist eingegangen
337.0392260181479
: Der nächste Anruf wird um 351.757343669199 erwartet.
337.0392260181479
: 12. Notfall an 6. Stelle in Liste eingefügt
349.3223098412269
: 6. Patient beendet, Behandlungszeit: 15.814894702444137
349.3223098412269
: Der 7. Patient wird aus der Liste entnommen - Verbleiben 5
351.757343669199
: Ein Anruf ist eingegangen
351.757343669199
: Der nächste Anruf wird um 375.5404031893431 erwartet.
351.757343669199
: 13. Notfall an 6. Stelle in Liste eingefügt
352.7208409641738
: Ankunft bei 7. Patienten nach 3.398531122946906 min. Fahrzeit.
369.1257172272062
: 7. Patient beendet, Behandlungszeit: 16.404876263032396
369.1257172272062
: Der 8. Patient wird aus der Liste entnommen - Verbleiben 5
373.5794971174051
: Ankunft bei 8. Patienten nach 4.4537798901988594 min. Fahrzeit.
375.5404031893431
: Ein Anruf ist eingegangen
375.5404031893431
: Der nächste Anruf wird um 379.86563613222904 erwartet.
375.5404031893431
: 14. Notfall an 6. Stelle in Liste eingefügt
379.86563613222904
: Ein Anruf ist eingegangen
379.86563613222904
: Der nächste Anruf wird um 379.882268881231 erwartet.
379.86563613222904
: 15. Notfall an 7. Stelle in Liste eingefügt
379.882268881231
: Ein Anruf ist eingegangen
379.882268881231
: Der nächste Anruf wird um 396.6546724555478 erwartet.
379.882268881231
: 16. Notfall an 8. Stelle in Liste eingefügt
389.52879071168286
: 8. Patient beendet, Behandlungszeit: 15.949293594277762
389.52879071168286
: Der 9. Patient wird aus der Liste entnommen - Verbleiben 7
393.6431873770172
: Ankunft bei 9. Patienten nach 4.114396665334368 min. Fahrzeit.
396.6546724555478
: Ein Anruf ist eingegangen
396.6546724555478
: Der nächste Anruf wird um 429.4338003430671 erwartet.
396.6546724555478
: 17. Notfall an 8. Stelle in Liste eingefügt
405.4102925169008
: 9. Patient beendet, Behandlungszeit: 11.767105139883617
405.4102925169008
: Der 10. Patient wird aus der Liste entnommen - Verbleiben 7
412.09664645590806
: Ankunft bei 10. Patienten nach 6.686353939007233 min. Fahrzeit.
429.4338003430671
: Ein Anruf ist eingegangen
429.4338003430671
: Der nächste Anruf wird um 466.1377900532446 erwartet.
429.4338003430671
: Der 18. Notfall ist lebensbedrohlich.
429.4338003430671
: Die Behandlung des 10. Patienten wurde wegen des 18. Patienten wurde
unterbrochen
Hier erfolgt ein Fetching während der Behandlung des 10. Patienten zugunsten des 18.
437.9361446258848
: Ankunft bei 18. Patienten nach 8.502344282817717 min. Fahrzeit.
466.1377900532446
: Ein Anruf ist eingegangen
466.1377900532446
: Der nächste Anruf wird um 486.6879108046833 erwartet.
466.1377900532446
: 19. Notfall an 9. Stelle in Liste eingefügt
486.6879108046833
: Ein Anruf ist eingegangen
486.6879108046833
: Der nächste Anruf wird um 499.9086915484434 erwartet.
486.6879108046833
: Der 20. Notfall ist lebensbedrohlich.
Der 20. Notfall geht während der Behandlung des 18. ein, da der 18. lebensbedrohlich ist, wird die Behandlung hier nicht abgebrochen sondern der 20. Notfall wird an erster Stelle in die Liste eingefügt – dasselbe gilt, weiter unten, für den 21. Notfall welcher an 2. Stelle in die Liste eingefügt wird.
486.6879108046833
: 20. Notfall an 1. Stelle in Liste eingefügt
499.9086915484434
: Ein Anruf ist eingegangen
499.9086915484434
: Der nächste Anruf wird um 514.2391933708021 erwartet.
499.9086915484434
: Der 21. Notfall ist lebensbedrohlich.
499.9086915484434
: 21. Notfall an 2. Stelle in Liste eingefügt
501.6104691765335
: 18. Patient beendet, Behandlungszeit: 63.674324550648684
501.6104691765335
: Der 20. Patient wird aus der Liste entnommen - Verbleiben 10
506.9793259181653
: Ankunft bei 20. Patienten nach 5.36885674163176 min. Fahrzeit.
514.2391933708021
: Ein Anruf ist eingegangen
514.2391933708021
: Der nächste Anruf wird um 606.7857977022394 erwartet.
514.2391933708021
: 22. Notfall an 11. Stelle in Liste eingefügt
545.0771714638225
: 20. Patient beendet, Behandlungszeit: 38.09784554565722
545.0771714638225
: Der 21. Patient wird aus der Liste entnommen - Verbleiben 10
553.3832970065873
: Ankunft bei 21. Patienten nach 8.30612554276479 min. Fahrzeit.
603.3591949911655
: 21. Patient beendet, Behandlungszeit: 49.975897984578225
Die drei lebensbedrohlichen Patienten wurden
abgearbeitet, und es wird der durch 10. Notfall in Angriff genommen welcher
wegen des 18. lebensbedrohlichen Notfalles abgebrochen wurde.
603.3591949911655
: Der 10. Patient wird aus der Liste entnommen - Verbleiben 9
606.7857977022394
: Ein Anruf ist eingegangen
606.7857977022394
: Der nächste Anruf wird um 620.7495004496159 erwartet.
606.7857977022394
: Der 23. Notfall ist lebensbedrohlich.
Wiederum wird der 10. Notfall wegen eines
lebensbedrohlichen Notfalles abgebrochen und in die Warteliste eingefügt
610.2124004133133
: Abbruch der Anfahrt zu 10. Patienten. Fahre zu 23. Patienten
613.1870606701088
: Ankunft bei 23. Patienten nach 2.9746602567955733 min. Fahrzeit.
620.7495004496159
: Ein Anruf ist eingegangen
620.7495004496159
: Der nächste Anruf wird um 699.0675261159581 erwartet.
620.7495004496159
: Der 24. Notfall ist lebensbedrohlich.
620.7495004496159
: 24. Notfall an 1. Stelle in Liste eingefügt
659.2020629948657
: 23. Patient beendet, Behandlungszeit: 46.01500232475693
659.2020629948657
: Der 24. Patient wird aus der Liste entnommen - Verbleiben 10
663.0362550399772
: Ankunft bei 24. Patienten nach 3.834192045111422 min. Fahrzeit.
699.0675261159581
: Ein Anruf ist eingegangen
699.0675261159581
: Der nächste Anruf wird um 704.410391416351 erwartet.
699.0675261159581
: Der 25. Notfall ist lebensbedrohlich.
699.0675261159581
: 25. Notfall an 1. Stelle in Liste eingefügt
704.410391416351
: Ein Anruf ist eingegangen
704.410391416351
: Der nächste Anruf wird um 808.3619965010175 erwartet.
704.410391416351
: Der 26. Notfall ist lebensbedrohlich.
704.410391416351
: 26. Notfall an 2. Stelle in Liste eingefügt
729.2547104374273
: 24. Patient beendet, Behandlungszeit: 66.21845539745016
729.2547104374273
: Der 25. Patient wird aus der Liste entnommen - Verbleiben 11
731.3583689933514
: Ankunft bei 25. Patienten nach 2.103658555924085 min. Fahrzeit.
808.3619965010175
: Ein Anruf ist eingegangen
808.3619965010175
: Der nächste Anruf wird um 817.2528035894062 erwartet.
808.3619965010175
: Der 27. Notfall ist lebensbedrohlich.
808.3619965010175
: 27. Notfall an 2. Stelle in Liste eingefügt
813.1766678483981
: 25. Patient beendet, Behandlungszeit: 81.81829885504673
Bis zu dieser Stelle sind 5 lebensbedrohliche Notfälle in die Liste eingefügt wurden, alle vor dem 10. Notfall welcher bereits über 500 min. wartet
813.1766678483981
: Der 26. Patient wird aus der Liste entnommen - Verbleiben 11
817.2528035894062
: Ein Anruf ist eingegangen
817.2528035894062
: Der nächste Anruf wird um 876.1381882580697 erwartet.
817.2528035894062
: Der 28. Notfall ist lebensbedrohlich.
817.2528035894062
: 28. Notfall an 2. Stelle in Liste eingefügt
830.3468433495078
: Ankunft bei 26. Patienten nach 17.170175501109725 min. Fahrzeit.
876.1381882580697
: Ein Anruf ist eingegangen
876.1381882580697
: Der nächste Anruf wird um 883.9405658734028 erwartet.
876.1381882580697
: Der 29. Notfall ist lebensbedrohlich.
876.1381882580697
: 29. Notfall an 3. Stelle in Liste eingefügt
879.9276402475194
: 26. Patient beendet, Behandlungszeit: 49.580796898011585
879.9276402475194
: Der 27. Patient wird aus der Liste entnommen - Verbleiben 12
883.9405658734028
: Ein Anruf ist eingegangen
883.9405658734028
: Der nächste Anruf wird um 893.3662794487213 erwartet.
883.9405658734028
: 30. Notfall an 13. Stelle in Liste eingefügt
884.4690053253943
: Ankunft bei 27. Patienten nach 4.541365077874843 min. Fahrzeit.
893.3662794487213
: Ein Anruf ist eingegangen
893.3662794487213
: Der nächste Anruf wird um 1002.7972595094673 erwartet.
893.3662794487213
: 31. Notfall an 14. Stelle in Liste eingefügt
953.654431418721
: 27. Patient beendet, Behandlungszeit: 69.18542609332667
953.654431418721
: Der 28. Patient wird aus der Liste entnommen - Verbleiben 13
965.4667014052587
: Ankunft bei 28. Patienten nach 11.812269986537785 min. Fahrzeit.
Zum Ende der Simulation hat der 10. Notfall fast 700. min. gewartet, ohne bearbeitet geworden zu sein.
A U S W E R T U N G
===================
Hier werden alle Patienten in der Reihenfolge ihrer Behandlung ausgegeben, die erste Nummer ist die laufende Nummer des Anrufes - Erfassrang
Alle vom Notarzt abgearbeiteten
Notfälle
Nr. lebensbe- Verweildauer
Anfahrtszeit
Behandlungszeit Wartezeit
drohlich Warteliste
------------------------------------------------------------------------------------------------------
1 true 0.0
6.689505748497869
64.22616235636288 6.689505748497869
2
false
64.12100749217949
7.323900699183671
13.988245870866347
71.44490819136315
3
false 61.451297448483444 15.862060646531646 18.68457354824264 77.31335809501509
5
true 0.0 17.85386526601018 88.59135345026525 17.85386526601018
4
false
143.02954248544364
19.69827213727698
10.833263512212703
162.72781462272062
6
false 97.23573402998957
16.133911598067385
15.814894702444137
113.36964562805696
7
false
120.37021739680003
3.39853112294693
16.404876263032396 123.76874851974696
8
false
127.0602133226837
4.453779890198851
15.949293594277762
131.51399321288255
9
false
89.54049925877075
4.114396665334371
11.767105139883617
93.65489592410512
18
true 0.0 8.502344282817717 63.674324550648684 8.502344282817717
20
true
14.922558371850187
5.368856741631751
38.09784554565722
20.29141511348194
21
true
45.16847991537912
8.30612554276474
49.975897984578225
53.47460545814386
23
true
3.4266027110738833
6.40126296786941 46.01500232475693 9.827865678943294
24
true
38.45256254524986
3.834192045111416
66.21845539745016
42.28675459036128
25
true
30.187184321469203
2.10365855592414
81.81829885504673
32.290842877393345
26
true
108.7662764320471
17.170175501109714
49.580796898011585
125.93645193315682
27
true 71.5656437465019 4.541365077874873 69.18542609332667 76.10700882437678
Simulationsdauer 1002.8477252153988
Die aggregierte Auswertung wird weiter unten noch Beachtung finden.
A R Z T
bearbeitete Notfälle 18
davon lebensbedrohliche 11
davon normale 7
abgebrochene Notfälle 3
davon Anfahrten 1
davon Behandlungen 2
Gesamtbehandlungszeit
746.5167069212511 -> 74.43968691866044%
Gesamtfahrzeit
176.21845038075065 -> 17.571805364857482%
Gesamtwartezeit
42.731544103256965 -> 4.26102019567116%
P A T I E N T E N |
insgesamt
normale
lebensbedrohliche
---------------------------------------------------------------------------------------------------------
Wartezeit |
68.6502367039455
110.54190917055575
39.326065977318315
Behandlungszeit |
42.401518593356705
14.777464661565658
61.73835634561044
Anfahrtszeit | 8.92683555818539 10.140693251362833 8.077135172961182
W A R T E L I S T E |
insgesamt
normale
lebensbedrohliche
---------------------------------------------------------------------------------------------------------
Verweildauer mittel |
59.723401145760135
100.40121591919295 31.248930804357133
Verweildauer maximal | 298.6196870648472 136.40162782931475
maximale Länge | 14 12 3
Endlänge |
13 12 1
durchschnittliche Länge | 7.654400197470027
7.08385109441827
0.5705491030517573
Verlorene Zeit 38.340866739248554
Im folgenden sollen verschiedene Lösungsansätze diskutiert, und anhand der Simulationsergebnisse untermauert werden. Die Simulationsergebnisse bezeihen sich jeweils auf die Batch Mean Auswertung mit den voreingestellten Parametern.
Das unter Vorüberlegungen aufgezeigte Szenario, stellt den einfachsten von der Aufgabenformulierung zugelassene Szenario dar. Dabei wurden folgende Ergebnisse erzielt.
Z U S A M M E N
F A S S U N G A L L E R B A T C H E S
=========================================================
Simulationsdauer
2010008.1717743683
Anzahl
der Batches 100
Dauer
eines Batches 20000
Einschwingbereich
10000
A R Z T
bearbeitete Notfälle 397
davon lebensbedrohliche 100
davon normale 297
abgebrochene Notfälle 0
davon
Anfahrten 0
davon Behandlungen 0
Gesamtbehandlungszeit
10481.086883966993 -> 52.40543441983496%
Gesamtfahrzeit
4217.837969331498 -> 21.08918984665749%
Gesamtwartezeit
5300.812926639043 -> 26.504064633195217%
P A T I E N T E N |
insgesamt
normale
lebensbedrohliche
---------------------------------------------------------------------------------------------------------
Wartezeit |
80.79261263221447
96.66828481597824
34.164025193832295
Behandlungszeit | 26.47818171059653 14.99676500274357 60.19577163823566
Anfahrtszeit |
8.633617556199306
8.604245529089468
8.649287748585018
W A R T E L I S T E |
insgesamt
normale
lebensbedrohliche
---------------------------------------------------------------------------------------------------------
Verweildauer mittel |
72.15899507601503
88.06403928688894
25.444737445247462
Verweildauer maximal | 1524.3857631977537 313.4651854703958
maximale Länge | 25 24 4
Endlänge |
0 0 0
durchschnittliche Länge | 1.011559810155064
0.9868568670694212
0.02470294308564299
Verlorene Zeit 0.0
Im oberen Teil finden sich nochmals die Parameter des Batch Mean, alle folgenden Werte sind Durchschnittswerte und beziehen sich daher auf einen repräsentativen Lauf der Länge dT also 20.000 min.. Es zeigt sich das die Wartezeit eines normalen Notfalles im Schnitt etwa 96 min. beträgt, ein lebensbedrohlicher Notfall hingegen wartet ca. 34 min. dies ergibt sich aus der in der Aufgabe formulierten Regel, dass lebensbedrohliche Notfälle am Anfang der Liste eingefügt werden. Die Anfahrtszeiten zu den Notfällen sind in etwa identisch und entsprechen dem arithmetischem Mittel aller Entfernungen in stadt.dat, welches bei 8,6 liegt. Die Verweildauern in der Warteliste ergeben sich aus der Wartezeit des Notfalls abzüglich der Anfahrtszeiten. Die Endlänge der Warteliste gibt an wie viele Notfälle am Ende der Simulation noch zur Bearbeitung standen. Die Durchschnittliche Länge resultiert aus der Summe aller Listenlängen gewichtet mit der Zeit wie lange diese Vorlagen.
Um nun die Wartezeiten eines lebensbedrohlichen Notfalls zu verkürzen, wurde das Aktivitätendiagramm wie folgt geändert.
Wenn das Team sich also in einer Anfahrt zu einem normalen Notfall befindet, wird diese, wenn ein lebensbedrohlicher Anruf eingeht abgebrochen und die Anfahrt zu einem lebensbedrohlichem wird angetreten. Hierbei spricht man von Fetching, dieses geschieht inner halb jedes Szenarios, wenn der Notarzt sich auf der Rückkehr in die Zentrale befindet. Beim Fetching also Abbruch einer bestimmten Aktivität, wird der Patient welcher die Aktivität galt immer als erster „seines Standes“ eingefügt, also als erster nicht lebensbedrohlicher Notfall und muss nochmals vollständig bearbeitet werden. Bei Anfahrt Fetching wird die, zum Abbruchzeitpunkt gefahrenen Zeit ermittelt, und dem Konstrukt „verlorene Zeit“ zugeschrieben. Dann wird entschieden, ob das Team zum Startpunkt oder zum Zielpunkt seiner Anfahrt fährt. Diese Zeit wird dem neuen lebensbedrohlichen Notfall zugeschrieben. Danach wird die Fahrzeit zum nächsten, dem lebensbedrohlichen Notfall, vom Standort aus berechnet. Dabei ergeben sich folgende Werte.
Z U S A M M E N
F A S S U N G A L L E R B A T C H E S
=========================================================
Simulationsdauer
2010004.6154322838
Anzahl
der Batches 100
Dauer
eines Batches 20000
Einschwingbereich
10000
A R Z T
bearbeitete Notfälle 398
davon lebensbedrohliche 100
davon normale 298
abgebrochene Notfälle 13
davon Anfahrten 13
davon Behandlungen 0
Gesamtbehandlungszeit
10479.092216942314 -> 52.39546108471157%
Gesamtfahrzeit
4259.615644515025 -> 21.29807822257513%
Gesamtwartezeit
5261.3910503850575 -> 26.306955251925285%
P A T I E N T E N |
insgesamt
normale
lebensbedrohliche
---------------------------------------------------------------------------------------------------------
Wartezeit |
87.27563404824464
106.40698696754077
30.326840428435972
Behandlungszeit |
26.173983766688202
15.012845729566157
59.496604860398804
Anfahrtszeit | 8.505173329500307 8.433039446188776 8.721170305405137
W A R T E L I S T E |
insgesamt
normale
lebensbedrohliche
---------------------------------------------------------------------------------------------------------
Verweildauer mittel |
78.77046071874392
97.97394752135212
21.60567012303142
Verweildauer maximal | 1357.3901384382707 312.91283730644807
maximale Länge | 27 27 4
Endlänge |
0 0 0
durchschnittliche Länge | 0.9768764883773526
0.9330263522031114
0.04385013617424191
Verlorene Zeit 74.89261484633109
Die Wartezeit eines lebensbedrohlichen Notfalls konnte so im Schnitt um ca. 4 min. gesenkt werden. Allerdings geschah dies auf Kosten der normalen Notfälle, bei diesen erhöhte sich die Durchschnittliche Wartezeit um 10 min. . Letzteres ist so zu erklären, dass es bei diesem Szenario immer wieder dazu kommt, dass ein normaler Notfall erneut in die Liste eingefügt wird, damit erhöht sich natürlich seine Wartezeit. Ein weiterer zu beobachtender Effekt, ist die Anfahrtszeit, welche sich bei lebensbedrohlichen Notfällen um ca. 0,1 min erhöht, dies ist so zu erklären, dass im Falle des Abbruchs sich die Anfahrtszeit zu einem lebensbedrohlichen Notfall aus der Fahrzeit zur Beendigung der begonnenen Strecke und der tatsächlichen Fahrzeit vom Zielort der abgebrochenen Fahrt zum lebensbedrohlichen Notfall ergibt. Der Zielort der abgebrochenen Fahrt, ergibt sich aus den Entfernungen von Zielort und Start, gewählt wird der näher liegende. Die relativ geringe Abweichung ergibt sich darus, das wie oben aufgeführt lediglich 13 mal eine Anfahrt wegen eines lebensbedrohlichen Notfalles abgebrochen wurde. Die verlorene Zeit, also die Zeit welche für einen Notfall aufgewendet wurde ohne das dieser dann auch tatsächlich bearbeitet wurde, beträgt mit 75 ca. 0,375 % der Gesamtsimulationsdauer. 13 mal wurde eine Anfahrt abgebrochen, dabei wurden jedes Mal wenige Minuten verschenkt, da das Team in Richtung eines Notfall umsonst gefahren war pro abgebrochener Anfahrt werden so ca. 5,77 min. verschenkt.
Um nun die Wartezeiten der lebensbedrohlichen Notfälle noch weiter zu minimieren wurde das Aktivitätendiagramm für ein weiteres Szenario nochmals erweitert. Dazu wurde das Fetching auch auf die Behandlung von nicht lebensbedrohlichen Fällen ausgeweitet. Somit bricht das Team in diesem Szenario beim Eingang, also Anruf, eines lebensbedrohlichen Notfalls die Behandlung als auch die Anfahrt zu einem normalen, nicht lebensbedrohlichen Notfall ab. Dieses Szenario wurde absolute Priorisierung genannt, da die lebensbedrohlichen Notfälle immer Vorrang haben.
Unter denselben Prämissen arbeiten übrigens die beauftragten Notarztwagen der Klinikum Chemnitz gGmbH, dabei wird hier das Ziel verfolgt, lebensbedrohliche Notfälle, i. d. R. Herzinsuffizienz, im Stadtgebiet, innerhalb von 20 min. zu erreichen.
Bei diesem Szenario, werden also auch Behandlungen eines normalen Notfalles zugunsten eines neuen lebensbedrohlichen Notfalles eingestellt. Dabei werden alle für den normalen Notfall aufgewendeten Zeiten als verlorene Zeiten gewertet.
Z U S A M M E N F A S S U N G A L L E R
B A T C H E S
=========================================================
Simulationsdauer 2010000.323234495
Anzahl der Batches 100
Dauer eines Batches 20000
Einschwingbereich 10000
A R Z T
bearbeitete Notfälle
401
davon lebensbedrohliche 100
davon normale
301
abgebrochene Notfälle
37
davon Anfahrten
14
davon Behandlungen
23
Gesamtbehandlungszeit
10662.999392428612 -> 53.314996962143056%
Gesamtfahrzeit
4445.758513108249 -> 22.228792565541244%
Gesamtwartezeit
4891.218582292041 -> 24.456092911460207%
P A T I E N T E N | insgesamt
normale
lebensbedrohliche
---------------------------------------------------------------------------------------------------------
Wartezeit | 111.15738546189021
139.08006399780498
27.627722615389747
Behandlungszeit | 26.21384568997684
14.992636074551838
59.82084043328604
Anfahrtszeit | 8.576928655944169
8.596813435403584
8.517842195834257
W A R T E L I S T E | insgesamt
normale
lebensbedrohliche
---------------------------------------------------------------------------------------------------------
Verweildauer mittel | 102.58045680594707
130.48325056240222 19.109880419555456
Verweildauer maximal | 1715.5577449679522 275.0536576890166
maximale Länge | 30
30 4
Endlänge | 1
1 0
durchschnittliche Länge
| 1.2113444987169408 1.207074009787077 0.004270488929863969
Verlorene
Zeit 454.0845652914219
Dadurch verbessert sich die Wartezeit des lebensbedrohlichen Notfalles um drei weitere Minuten. Problematisch erweist sich die Wartezeit von normalen Notfällen, welche wiederum um 28 min. gestiegen ist. Deutlich wird an dieser Stelle das Problem der Zurechnung der entstandenen Zeiten, sobald die Problematik des Abbruchs von Aktivitäten eingeführt wird. Es besteht die Möglichkeit alle Zeiten welche nach einem behandelten Notfall entstehen dem Notfall zugerechnet, welcher als nächstes fertig behandelt ist. Dies wirft im wesentlichen zwei Probleme auf, zum ersten ist zu fragen, wie realitätsnah diese Form der Zurechnung sich darstellt. Das zweite Problem ist für das Simulationsexperiment von enormer Bedeutung, da Ergebnisse verfälscht werden. Daher stellt sich das Vorgehen über das Konstrukt der Verlorenen Zeit als das Beste heraus. Dies hat sich durch die absolute Priorisierung fast versiebenfacht und nimmt nun schon ca. 2,3 % der Gesamtsimulationsdauer in Anspruch. Die Zusammensetzung der verlorenen Zeit ist wie folgt zu analisieren. Insgesamt wurde 37 mal ein Notfall in irgendeiner Phase abgebrochen, 14 mal davon befand sich der Notarzt gerade in der Anfahrt. Wie wir aus dem Szenario mit relative Priorisierung wissen ,ist dies mit einer durchschnittlichen verlorenen Zeit von 5,77 min. verbunden, daher ist ein Gesamtanteil von abgebrochenen Anfahrten von 81 min. zu sehen. Daher fallen 373 min. verlorene Zeit auf 24 abgebrochene Behandlungen, diese Zeit setzt sich aus der Anfahrt, welche im Durchschnitt 8,6 min. pro Notfall beträgt und der Behandlungszeit zusammen. Die Behandlung dauert daher i diesem Versuch im Schnitt 7 min. bevor abgebrochen wird. Durch diese Auswertung ist es nun möglich die entstandenen Zeiten beliebig zuzurechnen, so könnte man die 185 min. den normalen Notfällen als Behandlungszeit zurechnen dabei würde sich eine durchschnittliche Behandlung um ca. 0,6 min. länger dauern. Dies soll nur ein Beispiel sein und zeigt die vielfältigen Auswertungsmöglichkeiten bei dieser Art der Zurechnung.
Im folgenden soll nun der Auslastung des Arztes betrachtet werden. Daher nochmals im Überblick die Kennzahlen, der einzelnen Szenarien, welche zum Arzt erhoben wurden:
· Ohne Priorisierung
A R Z T
bearbeitete
Notfälle 397
davon lebensbedrohliche 100
davon normale
297
abgebrochene Notfälle
0
davon Anfahrten
0
davon Behandlungen
0
Gesamtbehandlungszeit
10481.086883966993 -> 52.40543441983496%
Gesamtfahrzeit
4217.837969331498 -> 21.08918984665749%
Gesamtwartezeit
5300.812926639043 -> 26.504064633195217%
· Relative Priorisierung
A R Z T
bearbeitete Notfälle 398
davon lebensbedrohliche 100
davon normale
298
abgebrochene Notfälle
13
davon Anfahrten
13
davon Behandlungen
0
Gesamtbehandlungszeit
10479.092216942314 -> 52.39546108471157%
Gesamtfahrzeit
4259.615644515025 -> 21.29807822257513%
Gesamtwartezeit
5261.3910503850575 -> 26.306955251925285%
· Absolute Priorisierung
A R Z T
bearbeitete
Notfälle 401
davon lebensbedrohliche 100
davon normale 301
abgebrochene Notfälle 37
davon Anfahrten 14
davon Behandlungen 23
Gesamtbehandlungszeit 10662.999392428612 ->
53.314996962143056%
Gesamtfahrzeit 4445.758513108249 -> 22.228792565541244%
Gesamtwartezeit 4891.218582292041 ->
24.456092911460207%
In jedem Szenario wurden um die 400 Notfälle behandelt. Die Anzahl der lebensbedrohlichen Notfälle beträgt immer 100 dies entspricht bei insgesamt ca. 400 behandelten Notfällen in etwa einem viertel, wie in der Aufgabenstellung angezeigt. Die Behandlungsdauer der ersten beiden Szenarien ist in etwa identisch und liegt innerhalb normaler statistischer Schwankungen, vom ersten und zweitem zum dritten Szenario allerdings ist die Abweichung schon signifikant es handelt sich um fast 1% um also ca. 200 min., der Grund liegt hier in den abgebrochenen Behandlungen welche ohne Effekt blieben und wiederholt werden mussten. Somit wurde trotz der höheren Behandlungszeit keine höhere Anzahl an abgearbeiteten Patienten erreicht. Die Fahrtzeiten des Arztes steigen von Szenario zu Szenario. Vom ersten zum zweiten liegt der minimale Anstieg von 0,2% daran, das teilweise Anfahrten abgebrochen wurden und somit Fahrzeit umsonst war. Dazu wurde im zweiten Szenario die „verlorene Zeit“ erhoben welche ca. 75 min. beträgt dies entspricht, unter Einbeziehung der normalen statistischen Schwankungen, in etwa den Abweichungen in den Anfahrtszeiten der beiden Szenarien von 39 min.. Der Anstieg vom zweiten zum dritten Szenario ist über den zusätzlichen Abbruch von Behandlungen erklärbar. Diese Patienten müssen erneut angefahren werden und erhöhen somit den Durchschnitt enorm. Die Wartezeiten entwickeln sich erwartungsgemäß, so sinkt die Wartezeit im vom ersten zum zweiten Szenario um genau die Zeit, welche der Arzt mehr unterwegs ist. Ebenso sinkt die Wartezeit vom zweiten zum dritten Szenario um die Mehrbehandlungs- sowie mehr -fahrzeit.
Zur Betrachtung der Ergebnisse sollen nochmals die erzielten Werte zur Warteliste angeführt werden:
W A R T E L I S T E |
insgesamt
normale
lebensbedrohliche
---------------------------------------------------------------------------------------------------------
Verweildauer mittel |
72.15899507601503
88.06403928688894
25.444737445247462
Verweildauer maximal | 1524.3857631977537 313.4651854703958
maximale Länge | 25 24 4
Endlänge |
0 0 0
durchschnittliche Länge | 1.011559810155064
0.9868568670694212
0.02470294308564299
W A R T E L I S T E |
insgesamt normale lebensbedrohliche
---------------------------------------------------------------------------------------------------------
Verweildauer mittel |
78.77046071874392 97.97394752135212 21.60567012303142
Verweildauer maximal | 1357.3901384382707 312.91283730644807
maximale Länge | 27 27 4
Endlänge |
0 0 0
durchschnittliche Länge | 0.9768764883773526
0.9330263522031114
0.04385013617424191
W A R T E L I S T E | insgesamt
normale
lebensbedrohliche
---------------------------------------------------------------------------------------------------------
Verweildauer mittel | 102.58045680594707
130.48325056240222
19.109880419555456
Verweildauer maximal | 1715.5577449679522
275.0536576890166
maximale Länge | 30
30 4
Endlänge | 1
1 0
durchschnittliche Länge
| 1.2113444987169408 1.207074009787077 0.004270488929863969
Alle zur Warteliste erhobenen Werte bestätigen die bisher dokumentierten Ergebnisse. Die durchschnittlichen Verweildauern entwickeln sich kongruent zu den durchschnittlichen Wartezeiten der Patienten zuzüglich der jeweiligen Fahrzeiten. Die maximalen Verweildauern von normalen Notfällen der einzelnen Szenarien bewegen sich um einen Mittelwert der ca. bei 1450 liegt. Diese Werte entstehen bei der jeweils maximalen Listenlänge diese steigt von Szenario zu Szenario, dies liegt an dem mehrfachen zurücklegen von Notfällen in den Szenarien 2 (13 Abbrüche) und 3 (37 Abbrüche). Das trotz der Abhängigkeit zwischen den maximalen Verweildauern und dem gewählten Szenario kein Trend in den maximalen Verweildauern zu erkennen ist, liegt an den Unterschieden in den Szenarien im auftreten der einzelnen Notfälle, wenn eine Betrachtung über mehrere Läufe zu den einzelnen Szenarien gemacht würde könnte man hier sicher einen Trend feststellen, welcher zeigt das die maximalen Verweildauern der normalen Notfällen von Szenario zu Szenario steigen würden. Die maximalen Verweildauern von lebensbedrohlichen Notfällen sinken aufgrund der jeweils höheren Priorisierung der lebensbedrohlichen Notfälle. Die durchschnittliche Länge zwischen ersten und zweitem Szenario weist kaum Unterschiede auf beim dritten Szenario hingegen wird jedoch ein großer Unterschied deutlich. Dieser Sprung welcher auch bei den durchschnittlichen Verweildauern und den Wartezeiten der Patienten zu beobachten ist, erklärt sich aus dem enormen zeitlichem Aufwand welcher für einen normalen Notfall bewältigt wird, ohne das dieser wirklich zu ende geführt wird, da ein Abbruch dazwischenkommt. Im Vergleich zu einem Anfahrtsabbruch wie er unter relative Priorisierung auch vorkommt ist die verlorene Zeit aus einer Behandlung um mehr als den Faktor 2 größer. Da eine abgebrochenen Behandlung auch immer eine nutzlose Anfahrt beinhaltet und im Mittel eine Behandlung länger als eine Anfahrt dauert, daher also auch die Abbruchzeiten höher liegen. Insgesamt ist also zu sagen, dass die Konsequenzen aus den zusätzlichen Prämissen der absoluten Priorisierung gegenüber der relativen Priorisierung sich stärker auswirken als die Prämissen der relativen Priorisierung im Vergleich zum Ausgangsszenario.
Wie oben gezeigt wurde, ist an den Zeiten für die Behandlung der Notfälle kaum eine tatsächliche Verbesserung möglich, da wenn eine Gruppe bessergestellt wird immer die andere schlechter gestellt werden muss. Das im folgenden Aufgeführte Verfahren stellt in Aussicht die normalen Notfälle besser zu stellen ohne die lebensbedrohlichen schlechter zu stellen. Anstoß waren die langen Fahrzeiten des Arztes diese liegen bei fast 25 % der Gesamtsimulationsdauer. Durch einen Algorithmus der immer den kürzesten Weg zwischen allen anzufahrenden Knoten findet ist es möglich die Anfahrtszeiten zu minimieren klar ist an dieser Stelle auch, dass dieses Vorgehen nur für normale Notfälle denkbar ist. Als Grundlage soll das Szenario mit relativer Priorisierung dienen dabei wurden folgende Ergebnisse erzielt.
Z U S A M M E N F A S S U N G A L L E R
B A T C H E S
=========================================================
Simulationsdauer
2010081.323267229
Anzahl
der Batches 100
Dauer
eines Batches 20000
Einschwingbereich
10000
A R Z T
bearbeitete Notfälle 400
davon lebensbedrohliche 101
davon normale 299
abgebrochene Notfälle 12
davon Anfahrten 12
davon Behandlungen 0
Gesamtbehandlungszeit 10610.506664851004 ->
53.052533324255016%
Gesamtfahrzeit
4023.809044764992 -> 20.119045223824962%
Gesamtwartezeit
5365.726153765933 -> 26.828630768829665%
P A T I E N T E N |
insgesamt normale lebensbedrohliche
---------------------------------------------------------------------------------------------------------
Wartezeit |
76.81812044620614
91.94156642387074
31.693218884628827
Behandlungszeit |
26.353280970089987
15.038603332136356
60.117168582165434
Anfahrtszeit |
7.827585872512481
7.558013144850288
8.632186993139573
W A R T E L I S T E |
insgesamt
normale
lebensbedrohliche
---------------------------------------------------------------------------------------------------------
Verweildauer mittel |
68.99053457369403
84.3835532790209
23.061031891488955
Verweildauer maximal | 1766.4655436791747 292.84487863483065
maximale Länge | 19 19 4
Endlänge | 1 1 0
durchschnittliche Länge | 1.289720581214413
1.2355122069299314
0.05420837428448218
Verlorene Zeit 61.64449991181475
Man sieht sehr deutlich die Verbesserungen, so wurde die Anfahrtszeit zu einem normalen Notfall um ca. 1 min. verkürzt, dadurch konnte die durchschnittliche Wartezeit um 15 min. von 106 auf 91min. gesenkt werden. Dies lässt sich durch die Möglichkeit der schnelleren Abarbeitung der Liste erklären denn ein Minute welche beim Vorgänger eingespart wurde, kommt allen Nachfolgern zugute diese Effekt schaukelt sich desto länger die Liste ist umso höher. Auffällig gestallten sich besonders bei dieser Anordnung der Parameter die maximalen Verweildauer in der Liste, diese Steigt auffällig an.
Ein weiterer Effekt welcher bereits bei den Szenarien zu erkennen war, ist die enorme Streuung der Wartezeiten. Die Wartezeiten setzten sich aus der Verweildauer in der Liste und der Anfahrtszeit zusammen. Während die Anfahrtszeit über alle Notfälle relativ konstant ist und zwischen Werten von 1,5 und 30 liegen, zeigen die Werte der Verweildauer als wesentlich stärker streuend, so liegen die maximalen Verweildauern immer um die 1.100 min. und bei der Möglichkeit mit Wege optimieren sogar bei an die 2000 min. Um nun diese Varianzen etwas einzuschränken, wurde eine weitere Option geschaffen welche es ermöglicht normale Notfälle mit einer Wartezeit über einem fixen Wert zu priorisieren und sogar vor die lebensbedrohlichen zu setzen, dabei wurden folgende Ergebnisse erzielt. Einstellungen waren wie unter Wege optimieren wobei normale Notfälle über 600 min. priorisiert wurden.
Z U S A M M E N F A S S U N G A L L E R
B A T C H E S
=========================================================
Simulationsdauer
2010000.1124749656
Anzahl
der Batches 100
Dauer
eines Batches 20000
Einschwingbereich
10000
A R Z T
bearbeitete Notfälle 398
davon lebensbedrohliche 99
davon normale 299
abgebrochene Notfälle 12
davon Anfahrten 12
davon Behandlungen 0
Gesamtbehandlungszeit
10450.663245603175 -> 52.253316228015876%
Gesamtfahrzeit
4048.373792114811 -> 20.241868960574056%
Gesamtwartezeit
5501.425056702146 -> 27.50712528351073%
P A T I E N T E N |
insgesamt
normale
lebensbedrohliche
---------------------------------------------------------------------------------------------------------
Wartezeit |
74.29981460861684
88.2266875116275
32.505113541518284
Behandlungszeit |
26.16464113714107
15.026127073554571
59.594144049998484
Anfahrtszeit |
7.886187366316958
7.675187851735448
8.51937243072131
W A R T E L I S T E |
insgesamt normale lebensbedrohliche
---------------------------------------------------------------------------------------------------------
Verweildauer mittel | 66.41362724230002 80.55149965989227 23.985741110797186
Verweildauer maximal | 829.6112086182652 615.8787969747683
maximale Länge | 16 15 5
Endlänge |
1 0 0
durchschnittliche Länge | 1.0304511547756205
0.9283703211760025
0.10208083359961745
Verlorene Zeit 63.0443216699241
Es zeigt sich, dass die großen Varianzen bei den Verweildauern der normalen Notfälle verschwinden, auch verschieben sich auch die Mittelwerte etwas nach unten. Signifikante Änderungen sind vor allen bei den maximalen Wartezeiten der lebensbedrohlichen Notfälle zu bemerken, dies liegt daran, das nach einem bearbeitetem Notfall welcher lebensbedrohlich war mehrere Notfälle mit einmal die 600 min. Verweildauermarke überschreiten und dann alle erst mal abgearbeitet werden, bevor der nächste Lebensbedrohliche in Angriff genommen werden kann.
Als Grundlage des Programms, wird der Java interne Zufallszahlen Generator genutzt welcher durch die Klasse java.util.Random zur Verfügung gestellt wird. Dabei handelt es sich um einen MLKG Algorithmus aus der Feder von Donald Knuth. Des weiteren besteht die Möglichkeit den Zufallszahlen Generator zu nutzen, welcher zur Simulation gehört. Dabei handelt es sich ebenfalls um ein MLKG. Der seed welcher von diesem Algorithmus welcher genutzt wird, wird zu jedem Lauf neu bestimmt und berechnet sich aus einer Zufallszahl im (0,1] Intervall des Java Internen Zufallszahlengenerator multipliziert mit der aktuellen Systemzeit in Millisekunden, diese wird seit dem 01.01.1970 gezählt. Um nun die Güte eines solchen Verfahren zu beurteilen , wurde eine Funktionalität hinzugefügt, welche es erlaubt ein Zufallsexperiment wiederholt durchzuführen, dabei wird beim ersten Durchlauf ein zufälliges seed, wie oben beschrieben, erzeugt. Im zweiten Durchlauf wird das selbe seed genutzt, allerdings werden die Zufallszahlen nicht direkt ausgegeben, sondern es wird jeweils die Komplementäre Folge genutzt. Die Ausgabe erfolgt jeweils immer erst vom ersten Lauf mit normalen Zufallszahlen und im Anschluss erfolgt die Ausgabe des zweiten Durchlaufes. Dies ermöglicht eine Betrachtung der Varianzen zwischen den einzelnen Läufen. Dies soll im folgenden getan werden. dazu wird im ersten Fall das Standardszenario mit einer Laufzeit von 1000 min. genutzt.
1 . D U R C H L A U F
-----------------------------------------------------------------------------------------------------------
A
U S W E R T U N G
===================
Simulationsdauer 1014.3406785703801
A R Z T
bearbeitete Notfälle 22
davon lebensbedrohliche 7
davon normale 15
abgebrochene Notfälle 0
davon
Anfahrten 0
davon Behandlungen 0
Gesamtbehandlungszeit
624.4491213441122 -> 61.56207027250606%
Gesamtfahrzeit
220.15193740308834 -> 21.703944449252717%
Gesamtwartezeit
130.95212090724476 -> 12.910072885158241%
P A T I E N T E N |
insgesamt
normale
lebensbedrohliche
---------------------------------------------------------------------------------------------------------
Wartezeit |
40.78560748241289
48.13387556345451
22.414937279808797
Behandlungszeit | 29.735672444957725 13.813463196692428 69.541195565621
Anfahrtszeit |
7.970895421102636
9.576868456901767
3.9559628316048063
W A R T E L I S T E |
insgesamt
normale
lebensbedrohliche
---------------------------------------------------------------------------------------------------------
Verweildauer mittel |
32.814712061310246
38.55700710655277
18.458974448203985
Verweildauer maximal | 99.27970872896057 72.2975421549761
maximale Länge | 7 6 2
Endlänge |
6 6 0
durchschnittliche Länge | 1.277482019027798
1.0975258061316895 0.17995621289610855
Verlorene Zeit 0.0
2 . D U R C H L A U F
-----------------------------------------------------------------------------------------------------------
A
U S W E R T U N G
===================
Simulationsdauer 1006.6357585618683
A R Z T
bearbeitete
Notfälle 19
davon lebensbedrohliche 5
davon normale 14
abgebrochene Notfälle 0
davon Anfahrten 0
davon Behandlungen 0
Gesamtbehandlungszeit
514.3184185374148 -> 51.092802353077204%
Gesamtfahrzeit
187.47634506876415 -> 18.62404980890034%
Gesamtwartezeit
292.6019015885677 -> 29.067306530675392%
P A T I E N T E N |
insgesamt
normale lebensbedrohliche
---------------------------------------------------------------------------------------------------------
Wartezeit |
41.06875722550272 42.384026936209764 37.64905597766433
Behandlungszeit |
28.57324547430083
13.44376244885879
67.9099013404501
Anfahrtszeit |
8.012372879213723
7.638708583645352
8.983900047691492
W A R T E L I S T E | insgesamt normale lebensbedrohliche
---------------------------------------------------------------------------------------------------------
Verweildauer mittel |
33.05638434628898
34.74531835256441
28.665155929972844
Verweildauer maximal | 267.44516172783676 66.25228474775395
maximale Länge | 6 6 2
Endlänge |
6 6 0
durchschnittliche Länge | 1.7955020616216022
1.6531210877382307
0.14238097388337048
Verlorene Zeit 0.0
Hier sind nun enorme Abweichungen sichtbar, schon allein die Zahl der bearbeiteten Notfälle schwankt zwischen den beiden Läufen um 3 also ca. 15%. So auch die Wartezeit des Arztes, liegt diese im ersten Szenario noch bei ca. 13%, steigt sie im zweiten auf ca. 30%. Ähnliches gilt auch für andere statistische Kennzahlen die der oben aufgeführten Ausgabe zu entnehmen sind. Sind nun also unsere Zufallszahlen von schlechter Güte? Dafür sprechen die hohen Abweichungen in jedem Fall, da keine klaren Aussagen über den Verlauf einer Simulation gemacht werden können. Dies stellt sich bei der praktischen Simulation als äußerst problematisch heraus, da ja eben Gesetzmäßigkeiten aufgedeckt werden sollen. Dieses geben die oben erzielten Werte jedoch nicht her. Allerdings ist dies nicht alleiniger Indikator für die Güte der Zufallszahlen, so sollten wir ein in der Statistik goldenes Gesetz heran ziehen, nämlich das Gesetz der großen Zahlen. Um dies zu verdeutlichen soll die eben durchgeführte Simulation nochmals laufen, allerdings jetzt mit den Standard Beatch Mean Einstellungen.
1 . D U R C H L A U F
-----------------------------------------------------------------------------------------------------------
Z U S A M M E N F A S S U N G A L L E R
B A T C H E S
=========================================================
Simulationsdauer
2010004.0444058331
Anzahl
der Batches 100
Dauer
eines Batches 20000
Einschwingbereich
10000
A R Z T
bearbeitete Notfälle 401
davon lebensbedrohliche 100
davon normale 301
abgebrochene Notfälle 0
davon Anfahrten 0
davon Behandlungen 0
Gesamtbehandlungszeit
10557.169205201539 -> 52.7858460260077%
Gesamtfahrzeit
4256.190925745969 -> 21.280954628729845%
Gesamtwartezeit
5186.575030991886 -> 25.93287515495943%
P A T I E N T E N |
insgesamt
normale
lebensbedrohliche
---------------------------------------------------------------------------------------------------------
Wartezeit |
88.8126807388065
106.31462030885976
35.65837692074315
Behandlungszeit |
26.184991130230273
14.96464622787738
60.2555243517491
Anfahrtszeit |
8.66582580816604
8.662931536060228 8.674804299790816
W A R T E L I S T E |
insgesamt
normale
lebensbedrohliche
---------------------------------------------------------------------------------------------------------
Verweildauer mittel |
80.14685493064115
97.65168877279855
26.983572620952206
Verweildauer maximal | 1438.9238110000595 565.9184782570899
maximale Länge | 28 28 8
Endlänge |
1 1 0
durchschnittliche Länge | 1.3193379327371755
1.256999134163691
0.06233879857348492
Verlorene Zeit 0.0
2 . D U R C H L A U F
-----------------------------------------------------------------------------------------------------------
Z U S A M M E N
F A S S U N G A L L E R B A T C H E S
=========================================================
Simulationsdauer 2010051.980646161
Anzahl
der Batches 100
Dauer
eines Batches 20000
Einschwingbereich
10000
A R Z T
bearbeitete Notfälle 395
davon
lebensbedrohliche 101
davon normale 294
abgebrochene Notfälle 0
davon Anfahrten 0
davon Behandlungen 0
Gesamtbehandlungszeit
10529.275281470176 -> 52.64637640735088%
Gesamtfahrzeit 4207.643595677479 ->
21.038217978387397%
Gesamtwartezeit
5263.094979522371 -> 26.315474897611857%
P A T I E N T E N |
insgesamt
normale
lebensbedrohliche
---------------------------------------------------------------------------------------------------------
Wartezeit |
86.73454749634182
104.7305508830595
35.0392442777205
Behandlungszeit |
26.612018689535727
14.961773318457102
60.12304855146089
Anfahrtszeit |
8.606610064350575
8.600120460299586
8.624972074843537
W A R T E L I S T E |
insgesamt normale lebensbedrohliche
---------------------------------------------------------------------------------------------------------
Verweildauer mittel |
78.12793743199123
96.13043042276006
26.414272202876873
Verweildauer maximal | 1180.0320274110984 293.1255308091247
maximale Länge | 23 22 4
Endlänge |
0 0 0
durchschnittliche Länge | 0.9489298987876732
0.8930507880472558
0.05587911074041748
Verlorene Zeit 0.0
Bei diesem Durchlauf wird nun deutlich, was bereits vermutet wurde, so ist dieser Lauf von weit weniger Abweichungen als der Vorangegangene gekennzeichnet. Daraus können wir schließen, dass unsere Simulation ein gewisses Mittelmaß gefunden hat, mittels welchem nun Aussagen über reale Systeme getroffen werden können. Man muss sich in diesem Zusammenhang vergegenwärtigen, dass Abweichungen zwischen den Simulationsläufen durchaus erwünscht sind, da versucht wird die Realität, welche von Schwankungen und Zufall gekennzeichnet ist, abzubilden. Allerdings nehmen uns zu große Schwankungen zwischen den Simulationsläufen die Möglichkeit praxisrelevante Aussagen über das Realsystem zu treffen, mit Ausnahme der Aussage das das System der unterschiedlich reagiert. Um diese Aussage zu treffen ist allerdings meist keine Simulation nötig, sondern mittels Simulation sollen Gesetzmäßigkeiten von realen Systemen erkannt und ausgenutzt werden.
Wie im Beispiel unter 5.4 Start zu sehen war, ist der Einsatzwagen über 950 min. ununterbrochen unterwegs. Dieser Fall kommt zwar eher selten vor, sollte jedoch unterbunden werden. Die Begründet sich zum einen in der Belastbarkeit des Notarztes welche nach 950 min. also fast 16 h an ihren Grenzen stehen sollte. Zum zweiten muss auch der Notarztwagen hin und wieder aufgetankt werden, dieses Kriterium sticht allerdings später als der Notarztwechsel.
Des weiteren wurden keine Ausfälle von Gerät betrachtet, beispielsweise der Fall, dass der Krankenwagen ausfällt oder verunfallt, oder Gerät welches zur Behandlung nötig ist unbrauchbar wird. Auch dies kommt in der Realität zur Genüge vor.
Problematisch sehe ich auch die in der Aufgabe gegebenen Parameter, so sind Behandlungszeiten von 1h absolut unüblich. Eine Behandlung eines lebensbedrohlichen Notfalls beschränkt sich meist auf lebensrettende Maßnahmen und den Abtransport ins Krankenhaus. Die Behandlung vor Ort überschreitet selten 30 min.. Außerdem ist es meist nötig lebensbedrohliche Notfälle im Krankenhaus abzuliefern und nicht jegliche Therapie vor Ort vorzunehmen.