„Alles sollte so einfach wie möglich gemacht werden, aber nicht einfacher“
Albert Einstein
Was ist QUESIM
QUESIM ist ein Werkzeug zur benutzerfreundlichen Simulation von Warteschlangensystemen in der objektorientierten, prozessorientierten diskreten Simulationssprache, die durch die Systemklasse SIMULATION von SIMULA definiert wird. Es besteht aus zwei Klassen:
STATSIM, eine Unterklasse von SIMULATION, deklariert Klassen für die transparente Sammlung und Auswertung von Statistiken. Es gibt die beiden üblichen Klassen für Zeitstatistiken (Akkumulator) und zeitlose Statistiken (Tally). Eine weitere Klasse ist eine Tally mit Histogramm. Die Klasse Empirical Table macht die in SIMULA bereits verfügbaren Funktionen benutzerfreundlicher. Sie kann aus einer von Tally erstellten Textdatei initialisiert werden, sodass eine empirische Tabellenverteilung durch Simulation generiert werden kann. Dann gibt es Prozeduren für einige theoretische Zufallsverteilungen.
QUESIM, eine Unterklasse von STATSIM, deklariert Klassen für typische Teile von Warteschlangensystemen: einen generischen Kunden, verschiedene Warteschlangen, einen Multichannel-Server und die gesamte Station als solche (G/G/c-System von Kendall). Zwei Hilfsprozeduren generieren eine Überschrift in einer Textdatei und auf dem Bildschirm.
Die folgende Abbildung zeigt die Position der von den oben genannten Klassen erstellten „Sprachen“ im SIMULA-Kontext.
Warum SIMULA?
SIMULA (früher SIMULA 67 genannt) ist die erste wirklich objektorientierte Sprache. Obwohl sie ziemlich alt ist, besitzt sie immer noch die meisten (und alle wichtigen) Mechanismen und Prinzipien der OOP. Mit Ausnahme der Programmiersprache Beta sind andere weit verbreitete OOP-Sprachen konzeptuelle Teilmengen der Sprache SIMULA, deren Standard 1967 definiert wurde. Einige Dinge wie Klassen, Vererbung, virtuelle Methoden usw. wurden in SIMULA lange Zeit definiert, bevor sie durch den OOP-Boom in den 80er Jahren wiederentdeckt wurden.
Heute gibt es visuelle Tools, mit denen Simulationsmodelle ohne Programmierung erstellt werden können. Dennoch gibt es Modelle, die aus verschiedenen Gründen programmiert werden müssen. SIMULAs Systemklasse SIMULATION stellt die erste objektorientierte, prozessorientierte diskrete Simulationssprache dar. Sie ist kostenlos und im Vergleich zu anderen Simulationstools sehr schnell. Um mehr über SIMULA zu erfahren, besuchen Sie die SIMULA-Seite
des Autors.
Warum QUESIM?
An SIMULA wurde kritisiert, dass einerseits die Sprache selbst sehr ausgefeilt ist und andererseits nur über begrenzte Simulationsmöglichkeiten außer der Zeitsteuerung verfügt. Das Fehlen unterstützender Simulationstools wie transparente Statistikerfassung, fortgeschrittenere Warteschlangen als die in der Systemklasse SIMSET verfügbaren Basislisten, Berichterstellung usw. ist darauf zurückzuführen, dass die Sprache 1968 formal eingefroren wurde. Diese Entscheidung war umstritten. Der Vorteil ist, dass es nur ein SIMULA mit minimalen Unterschieden zwischen den Implementierungen gibt. Andererseits wurde die zukünftige Entwicklung erschwert. SIMULA ist daher eher ein OOP-Hintergrund für die Erstellung von Simulationstools als eine vollständige benutzerfreundliche Simulationsumgebung. Das wohl bekannteste dieser Tools ist DEMOS (Birtwistle 1979). DEMOS ist keine Unterklasse der Systemklasse SIMULATION und daher können die Benutzer keine Prozesse von SIMULATION verwenden. Ich bin davon überzeugt, dass die prozessorientierte diskrete Simulation die fortschrittlichste und natürlichste Art der Erstellung von Simulationsmodellen ist. Die Klasse Prozess von SIMULATION ist die erste Superklasse dieser Art. Die Prozesshandhabungsfunktionen von SIMULATION sind somit eine Art Standard, der in viele spätere Simulationswerkzeuge übernommen wurde. Um die Prozesse von SIMULATION ohne Einschränkungen verfügbar zu halten, habe ich eine einfache Erweiterung für SIMULATION geschrieben, die die Verwendung benutzerfreundlicher macht. Bei der Verwendung von QUESIM können sich Studenten und andere Benutzer auf die Logik des Modells konzentrieren, ohne durch die Wiederholung mühsamer Aufgaben, die hauptsächlich mit der Erfassung und Auswertung von Statistiken zusammenhängen, gestört zu werden.
Download und Installation
Laden Sie die Datei quesim.zip herunter , die die Quelldateien der Klassen STATSIM und QUESIM zusammen mit einigen Demonstrationssimulationsmodellen und zugehörigen Dateien mit Eingabedaten und Beispielergebnissen enthält.
Es ist keine Installation erforderlich, kopieren Sie einfach die beiden Quelldateien in den Ordner Ihres Projekts und kompilieren Sie sie (zuerst STATSIM). Importieren Sie sie als externe Klassen. Programme, die sie verwenden, erhalten dann standardmäßig das Präfix STATSIM oder QUESIM. Aus den Demobeispielen geht auch alles hervor. Kontaktieren Sie mich, wenn Sie Probleme, Kommentare oder Vorschläge haben.
Anforderungen
QUESIM soll mit allen SIMULA-Compilern auf allen Plattformen funktionieren. Bitte melden Sie etwaige Probleme. Die einzige Voraussetzung ist also ein funktionierender SIMULA auf Ihrem Computer. Für Windows-Plattformen gibt es einen kostenlosen Port von CIM SIMULA. Besuchen Sie die SIMULA-Seite des Autors , um den Link für die Download-Anweisungen zu erhalten.
QUESIM Beispiele
Die Datei quesim.zip enthält zwei Beispiele mit zugehörigen Eingabe- und Ergebnisdateien. Es gibt ein Modell des M/M/c-Systems, das sehr einfach in jedes beliebige Warteschlangensystem umgewandelt werden kann. Das zweite Beispiel ist ein Warteschlangennetzwerk aus drei Stationen. Es gibt eine PDF-Datei mit der Systemdefinition und der Spezifikation des durch die Simulation zu lösenden Problems. Aus der kommentierten Quelle sollte alles klar sein. Beachten Sie, dass bei der prozessorientierten Simulation die Sicht des Modellierers auf die Welt eine Reihe parallel kommunizierender und kooperierender Prozesse ist. Das Programm ist dann eine Beschreibung aller Prozesse. Weitere Beispiele finden Sie im Text Einführung in OOP in SIMULA.
Der Autor
Bei Problemen können Sie mich jederzeit kontaktieren:
Jaroslav Sklenar
Außerordentlicher Professor
Fakultät für Telekommunikation
Technische Universität Brno
Tschechische Republik
E-Mail: jarek.sklenar@gmail.com