Weitere Blöcke am Beispiel. des Frisörgeschäftes

Ähnliche Dokumente
Master Modul IV im SS 2016: Technisch-Ökonomische Wartesysteme

1. Aufgaben zur Übung Einfache Systeme

Modul OMSI-2 im SoSe 2010

Über 25 Jahre ADR Ingenieur Produkte ADR Ingenieurprodukte * Ludwig-Wagner-Str. 19 * Wiesloch

Benutzerhandbuch. ce - Inspector

Petrinetze und GPSS/H

Tutorial für die Benutzung von Anylogic im Rahmen der Vorlesung Modellgestützte Analyse und Optimierung

Hilfe für Transportdokumentation

C++ Teil Schleifen. Man kann bestimme Anweisungen in einem Programm mehrfach ausführen lassen. Dazu gibt es in C++ verschiedene Schleifen.

Klausur Stochastik. ME/SD/RE (Ma) (nicht zutreffendes bitte streichen)

Otto-von-Guericke-Universität Magdeburg

QueueTraffic und Warteschlangen

Arrays. Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss

Operations Research Kurs 00859: Stochastische Simulation

Erstellen eines RS-Flip-Flops mit Hilfe eines Blockdiagramms

Greenfoot: Verzweigungen Nicolas Ruh und Dieter Koch

leave: mov flag, 0 ; 0 in flag speichern: Lock freigeben ret

Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken.

Analyse eines Informatiksystems durch unterschiedliche Modellierungsansätze

Herzlich willkommen!

Schleifen: Immer wieder dasselbe tun

Greenfoot: Verzweigungen

9. Eine einfache Warteschlangen-Simulation.

Einstellungen des ZEIT:FREUND anpassen

Studientag 1793 Software Engineering I. 6. Juli 2014

Aufgabe zur Warteschlangensimulation

Tutorial 7 TEIL 1/2. Untersuchung von ebusiness Anwendungen auf der Basis des IBM WebSphere Developer V 7.0

OPERATIONS MANAGEMENT 4. Übungsstunde. Thema: Kurzfristige Kapazitätsplanung (Warteschlangenmanagement) Seite 1

Bedienungsanleitung PC-Software für CTS-7 C (V )

Diskrete Simulation universitätsinterner Beziehungen am Beispiel einer Bleibeverhandlung

6 DATENBANKEN Datenbank. mit Spaltenüberschriften,

Handbuch zum VivaWeb-Serienbrief-Programm

L E S E P R O B E. Werte Kunden,

Bedienungsanleitung PC-Software für CTS-32 C

VERWENDUNG DES FRAGEBOGENBAUKASTENS

Projektinstitut für Handwerk & Mittelstand Unternehmensberatung Projektmanagement Softwareentwicklung seit 1997

Workshop mit Ulead Gif Animator 5 (englische Version) Anleitung zur Erstellung eines GIF Schriftzuges. Wir benötigen:

Lesen Sie diese häufig gestellten Fragen, wenn Sie beim Bearbeiten von Projekten in Base Camp Fragen haben.

Aufgaben zur Attiny-Platine

Installationsanleitung Englisch Kompaktkurs

ODV Praktikum Versuch Dämpfung im Lichtwellenleiter : Kurzbeschreibung: Funktionen und Bedienung des LWL-Messprogramms:

FileUpload Funktion. Erklärung der. Perception von Questionmark

Schleifen in C/C++/Java

Aufbau einer Teilefamilie

Kalendergrafiken. So haben Sie Ihre Daten noch nie gesehen.

(a) Wie unterscheiden sich synchrone und asynchrone Unterbrechungen? (b) In welchen drei Schritten wird auf Unterbrechungen reagiert?

Technische Informatik für Ingenieure WS 2010/2011 Übungsblatt Nr. 3

= 7 (In Binärdarstellung: = 0111; Unterlauf) = -8 (In Binärdarstellung: = 1000; Überlauf)

Der Weg eines Betrunkenen

mod_ireport ESS Enterprise Solution Server Version 1.0 / Release 6.0 ESS Programmierbeispiele 1

1 Jährlich wiederkehrende Aufgaben

So geht s Schritt-für-Schritt-Anleitung

Wenn Du Deinen Rechner zum ersten Mal einschaltest, verlangt er von Dir einige Angaben. Wähle als Sprache Deutsch.

DVD Film grösser als 4,7. Hier zeige ich wie man aus einem Film der nach dem Rippen mit Smartripper immer noch eine

Nachträglicher Einbau von Virtuellen Depots in die Anlage Rennstrecke_klein.

Handbuch zu unserer Bildergalerie

Schnellstart: Trocal LED Control & GHL Control Center

1 pulsierender Speicher

Trampolin 1.2. Startseite von Trampolin 1.2. Fenster "Großgerät"

Übersicht Shell-Scripten

HSR Rapperswil 2001 Markus Rigling. Programmieren: Exceptions Auflage

Vorbemerkungen. Die Programmieroberfläche des ClassPad

GS-Auftrag/GS-Office

MPGI 3 SLK B. Wintersemester 2011/ Februar 2012

Softwarelösungen: Versuch 4

Aufgabe 1 (Anwendungsfalldiagramm)

ANWEISUNGEN FÜR SYNC 3 NAVIGATIONSSYTEMKARTEN-UPDATE

PHP MySQL - myphpadmin Formulardaten in eine Datenbank speichern

Ein einfacher Schaltkreis für Anfänger um die Wirkungsweise zu verstehen

Installationsanleitung. Öffnungsmelder

Einfach Informatik Lernumgebung

Bekannte Probleme bei der Umstellung auf Oracle 12c R2 (UTF-8)

Exa.stat Die Klausuren werden hinsichtlich der NDZ Kriterien bewertet und die Verteilung grafisch dargestellt.

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

In dieser Aufgabe geht es darum, das einfache Meteor-Spiel zu verstehen und anzupassen. Lade als erstes das Spiel sample12 und spiele es.

Fingerpulsoximeter. 1. Wie führe ich eine Echtzeitübertragung vom PULOX PO-300 zum PC durch und speichere meine Messdaten auf dem PC?

STATA II: Daten- und Analysevorbereitung (Teil 1)

Statistik mit MAXQDA Stats

Ausdrücke (1) Grundlegende Eigenschaften

DLR SchoolLab Lektion 1 Erste Schritte

Vorgehensweise Firmware-Update

DOKUMENTATION W&Z-MESSWERTERFASSUNG

Kleine Einführung in den Matlab-GUI-Editor

WPS Schnittstelle

C# - Einführung in die Programmiersprache Bedingte Anweisungen und Schleifen

Einführung in die Programmierung

Beispiel / Übung: Prof. Dr. A. Christidis WS 2012/13

Schritt-für-Schritt-Hilfe zur Erstellung eines Engagementnachweises

Einführung in die Programmierung Wintersemester 2011/12

Vorsemesterkurs Informatik Übungsaufgaben. Tag 4a - Python

Der Editor - Einfügen von Links und Medien

3 Geoverarbeitung mit dem ModelBuilder

Transkript:

Weitere Blöcke am Beispiel des Frisörgeschäftes (O. Bouillon 2008) Upload: Sonntag, 23.02.2008 um 12:00 Uhr Wie versprochen das Material für Sie. Habe gestern von 15:00 20:00 dran gesessen, hat länger gedauert als vermutet. Ich hoffe nur, es hilft nun auch. Am Ende dieser Seite finden Sie noch eine Übungsaufgabe. Sollte es Fragen geben, bin ich in der Schule erreichbar, Sie können mir aber auch eine E-Mail an Oliver@Obouillon.de schicken. Wenn Sie das Beispiel testen wollen gehen Sie am besten wie folgt vor: Öffnen Sie WinGPSS (ggf. runterladen) Kopieren Sie aus dem LIS-File das Listing (Seite 8) Fügen Sie es in WinGPSS im Edit-Fenster ein. die grafische Darstellung erzeugt sich dann automatisch. Termine für den Test sind: Inf 14 am 03. März Inf 8 am 07. März Übungsaufgabe: Entwickeln Sie ein Win-GPSS-Simulationsmodell zur Nachbildung einer Bank. Die Bank ist täglich 10 Stunden geöffnet. Die Kunden kommen im Abstand von 1 bis 7 Minuten gleichverteilt. 15% der Kunden geht ausschließlich zum Kontoauszugsdrucker. Das Ausgeben der Kontoauszüge dauert 1 bis 3 Minuten. Die anderen Kunden möchten am Schalter durch Angestellte beraten werden. Die Beratung dauert zwischen 2 und 10 Minuten. Es stehen 2 Kundenberater zur Verfügung. Für die Wartenden vor den Kundenberatern ist eine Warteschlangenstatistik zu erzeugen. Es gibt eine gemeinsame Warteschlange. Alle Kunden gehen nach der Bedienung auch noch zum Kontoauszugdrucker. Alle Kunden, die sich nach Ladenschluss noch im Geschäft befinden, werden bedient. Anschließend wird die Simulation beendet. 1/9

Bild 1 Grundaufgabe: In einem Damenfrisiersalon gibt es zwei Frisörinnen und eine Lehrlingin. Die Kundinnen kommen durchschnittlich alle 25 Minuten an, wobei das Zeitintervall zwischen 10 und 40 Minuten schwankt. Den Kundinnen werden zunächst von der Lehrlingin die Haare gewaschen. Das dauert 3-5 min. Danach werden Sie von einer der beiden Frisörinnen zwischen 20 und 80min bedient. Der Laden ist von 10 bis 20 Uhr geöffnet. Simulieren Sie ein Woche (Mo-Sa), in dem Sie im Menupunkt Parameter den Wert für Simulate auf 6 stellen. Erzeugen Sie ein Modell des Geschäftes mit WinGPSS. Beachten Sie, dass die Zwischenankunftszeit als Mittelwert mit Abweichung angegeben werden muss. Das heißt für eine Zeitspanne von 2-8 Minuten muss 5±3 Minuten verwendet werden. Weitere Blöcke in WinGpss Zeiterfassung mit ARRIVE-DEPART Passiert eine Forderung (transaction) den arrive-block wird die Zeiterfassung gestartet. Passiert sie den dazu gehörenden depart-block wird sie angehalten. Aufgabe: Im Frisiersalon soll die Zeit erfasst werden, die eine Kundin vom Betreten des Ladens bis zum Beginn des Frisieren benötigt. Bild 2 Zeitbereiche auswerten mit QTABLE Diese Anweisung wird zwischen SIMULATE und GENERATE eingefügt. Die QTABLE-Anweisung hat vier Operanden (alle vier müssen angegeben werden): Der Operand A enthält den Namen der Warteschlange, die in der Tabelle ausgewertet werden soll. Der Operand B gibt die obere Grenze der kleinsten Klasse an und wird oft auf 0 gesetzt. Der Operand C legt die Breite der Klassen fest (ausgenommen der kleinsten und größten Klasse). Mit dem Operanden D wird die Anzahl der Klassen in der Tabelle festgelegt. Maximal sind es 20 Klassen. Aufgabe: Im Modell soll die Zeit erfasst werden, die eine Kundin benötigt bis sie von einer der beiden Frisörinnen bedient wird. Als kritisch wollen wir ansehen, wenn eine Kundin dafür länger als 30min benötigt. Für diese Zeiterfassung soll eine qtable erstellt werden so, dass in der ersten Klasse alle Kundinnen mit Verweilzeiten bis 5 Minuten erfasst werden, dann 5-minütlich und alle Kundinnen die länger als 30 Minuten brauchen erscheinen als Überlauf. Blocknamen Für jedes Element kann ein Blockname vergeben werden. Dieser kann dann in den folgenden Anweisungen als Sprungmarke verwendet werden um diesen Block von einer anderen Stelle der Simulation aus anzuspringen. Sprünge mit GOTO Mit Hilfe des GOTO-Befehls kann verzweigt werden. Es kann eine Wahrscheinlichkeit zwischen 0..1 eingestellt werden. Lässt man die Wahrscheinlichkeit weg wird unbedingt gesprungen (d.h. Wahrscheinlichkeit 1) Bild 3 Aufgabe: Im Frisiersalon kaufen 20% der Kundinnen bevor sie gehen noch ein Pflegeprodukt beim Lehrling. Das dauert 4±2 min. Vordrängeln mit PRIORITY Mit Hilfe des PRIORITY-Befehls kann einer Forderung (Transaction) eine andere Wichtigkeit gegeben werden. Ist diese höher als die der anderen Forderungen stellt die Forderung sich in einer Warteschlange vorn an. Aufgabe: Sorgen Sie dafür, dass die Kundinnen, die Pflegeprodunkte kaufen, nicht solange warten bis alle zu waschenden Kundinnen abgearbeitet sind sondern nur solange bis die gerade vom Lehrling bediente Kundin fertig ist. Bild 4 Alternativen mit IF Mit dem IF-Block kann man in der Simulation in Abhängigkeit von einer Bedingung verzweigen. Es gibt zwei Möglichkeiten: 1. numerisch Es wird in Abhängigkeit von einem Variablenwert verzweigt. Die Standardvariable für Warteschlangen hat immer die Form Q$«name» («name» ist der Name der Einrichtung/Speicher/AD-Set) 2. logisch In Abhängigkeit vom Zustand einer Einrichtung oder Speichers. Dabei ist folgendes möglich: nur für Einrichtung nur für Speicher U belegt (in Use) E leer (Empty) NU nicht belegt (Not in Use) NE nicht leer (Not Empty) F voll (Full) NF nicht voll (Not Full) Aufgabe: Wenn eine Kundin den Laden betritt und die Warteschlange bei den Friörinnen ist 2 oder größer, dann gehen sie wieder. Hierzu soll ein extra terminate-block verwendet werden. 2/9

Bild 5 Warten wenn WAITIF Mit diesem Block können Forderungen (Transaction) in Abhängigkeit vom Zustand einer Einrichtung/Speicher aufgehalten werden. Sie müssen unter einer bestimmten Bedingung warten. Die möglichen Zustände sind bereits unter Punkt 2 beim IF-Block beschrieben. Aufgabe: Der Frisörladen wird erst geschlossen, wenn alle Kundinnen bedient sind. D.h. wenn der Hausmeister kommt dürfen keine Kundinnen mehr in den Laden. Der Hausmeister wiederum wartet, bis alle Kundinnen, die drin sind, den Laden verlassen haben. Erklärung zu den Abschnitten (Bildern) 1-5 zu 1. zu 2. zu 3. Das ist die bekannte Lösung der Aufgabe (siehe Klausur). Hier kann man erkennen, das unmittelbar nach dem Betreten des Ladens die Zeiterfassung mit dem ARRIVE-Block gestartet wird. Wichtig ist, dass der DEPART-Block erst nach dem ENTER steht. Nur so wird die Zeit bis zum Beginn des Frisierens erfasst. Würde man den Block vor ENTER setzen, endet die Zeiterfassung mit dem Anstellen bei den Frisörinnen. Im Hauptstrang (links) erkennt man unten, dass nach dem frisieren mit GOTO 0.2 mit einer Wahrscheinlichkeit von 20% zu dem rechts erkennbaren Zweig Pflege gesprungen wird. In diesem Zweig wird einfach noch einmal der SEIZE- RELEASE-Block lehrl verwendet. Es handelt sich dabei um die gleiche Einrichtung wie im Hauptstrang. Das bedeutet auch, dass die Forderungen im Hauptstrang (Kundinnen, denen die Haare gewaschen werden sollen) und die im Pflegestrang (Kundinnen, die Pflegeprodukte kaufen wollen) ein und dieselbe Warteschlange haben. Damit die Kundin, die Pflegeprodukte kaufen möchte, nicht warten muss bis alle vor ihr in der Warteschlange die Haare gewaschen bekommen haben, erhalten Sie mit PRIORITY eine höhere Priorität und werden damit bevorzugt bedient. Nämlich unmittelbar nachdem die Kundin, die gerade vom Lehrling die Haare gewaschen bekommt, fertig ist. zu 4. Im Hauptstrang befindet sich unmittelbar nach dem GENERATE ein IF-Block. Die Bedingung heißt q$friseu >=2. Das bedeutet, nachdem eine Forderung (Kundin) die Tür geöffnet hat, prüft sie die Länge der Wartschlange bei den beiden Frisöinnen. Sollte die Schlange 2 oder größer sein geht die Kundin wieder durch einen extra TERMINATE-Block, da kann man hinterher gut sehen, wie viele das waren. Hinweis: Die aktuelle Länge der Warteschlange zur Laufzeit der Simulation steht immer in q$name also hier q$friseu. zu 5. Jetzt wirdús schwierig. Um den Laden richtig zu schließen sind zwei Dinge erforderlich. Erstens dürfen keine Kundinnen mehr den Laden betreten, wenn der Hausmeister im System (Frisörgeschäft) angekommen ist. Das wird durch den jeweils ersten Block im Hauptstrang und im Hausmeisterstrang realisiert. Im Hausmeisterstrang belegt der Hausmeister nach dem Erscheinen die Einrichtung hausm. Dadurch kann man nun im WAITIF-Block im Hauptstrang!! als Bedingung hausm = U also Hausmeister belegt nutzen. Konkret heißt das, wenn eine Kundin nach dem Erscheinen des Hausmeisters in den Laden will, dann ist die Einrichtung hausm natürlich belegt und sie kommt nicht über das WAITIF im Hauptstrang hinweg, denn Sie muss dort solange warten, bis die Einrichtung hausm wieder frei ist. (Das ist übrigens nie mehr so keine Kundin kommt mehr rein, wenn der Hausmeister da ist.) Zweitens muss der Hausmeister solange warten, bis alle Kundinnen, die im Laden sind, diesen verlassen haben. Um das überprüfen zu können, wurde im Hauptstrang ein Speicher ENTER Laden eingefügt. Also jede Kundin, die den Laden betritt erhöht den Speicherinhalt um eins. Wenn Sie den Laden verlässt muss der Speicher wieder runter gezählt werden. Deshalb gibt es zwei LEAVE Laden Blöcke. Einmal beim TERMINATE im Hauptstrang und einmal beim TERMINATE im Pflegestrang. Das bedeutet nun, solange Kundinnen im Laden sind ist in dem Speicher was drin solange dieser Speicher nicht leer ist, darf der Hausmeister nicht gehen. Das wird realisiert mit dem WAITIF-Block im Hausmeisterstrang und der Bedingung Laden=NE also Laden nicht leer. Der Hausmeister muss am WAITIF warten, solange der Laden nicht leer ist. Hinweis: Vor dem TERMINATE (Ciao), durch das die Kundinnen gehen denen die Wartschlange zu lang ist, muss kein LEAVE-Laden. Sie haben ja niemals das ENTER-Laden passiert. 3/9

Bild1 Lösung der Aufgabe Bild1 auseinander gezogen für weitere Ergänzungen 4/9

Bild 2 Bild 3 5/9

Bild 4 Bild 5 6/9

Komplettlösung simulate 6 friseu capacity 2 qtable zeit,5,5,6,g Laden capacity generate 25,15 waitif hausm=u if q$friseu>=2,ciao enter Laden arrive zeit seize lehrl,q advance 4,1 release lehrl enter friseu,q depart zeit advance 50,30 leave friseu priority 1 goto pflege,0.2 leave Laden terminate generate 600 seize hausm waitif Laden=NE terminate 1 pflege seize lehrl,q advance 4,2 release lehrl leave Laden terminate ciao terminate start 1 end 7/9

Das vollständige Lis-File (allerdings nur für einen Durchlauf, nicht für 6). Bestehend aus Listing, Blockstatistik, Warteschlange, Speicher/Einrichtung und Tabellen. Ergänzt ist noch der Tabellengraph. Listing *Adr. Operation A,B,C,D,E,F,G,H simulate 6 friseu capacity 2 qtable zeit,5,5,6,g Laden capacity generate 25,15 waitif hausm=u if q$friseu>=2,ciao enter Laden arrive zeit seize lehrl,q advance 4,1 release lehrl enter friseu,q depart zeit advance 50,30 leave friseu priority 1 goto pflege,0.2 leave Laden terminate generate 600 seize hausm waitif Laden=NE terminate 1 pflege seize lehrl,q advance 4,2 release lehrl leave Laden terminate ciao terminate start 1 end -------------------------------------------------------------------------------- Blockstatistik Zeit 628.58 Nummer Name Oper. Aktuell Gesamt 1 GENERA 1 24 2 WAITIF 23 3 IF 23 4 ENTER 22 5 ARRIVE 22 6 SEIZE 22 7 ADVANC 22 8 RELEAS 22 9 ENTER 22 10 DEPART 22 11 ADVANC 22 12 LEAVE 22 13 PRIORI 22 14 GOTO 22 15 LEAVE 18 16 TERMIN 18 17 GENERA 1 18 SEIZE 1 19 WAITIF 1 20 TERMIN 1 21 PFLEGE SEIZE 4 22 ADVANC 4 23 RELEAS 4 24 LEAVE 4 25 TERMIN 4 26 CIAO TERMIN 1 8/9

Warteschlangen (1) (2) (3) (4) (5) Schlange Maximum Mittel Gesamt Zeitlos Prozent /AD set Inhalt Inhalt Eintritte Eintritte zeitlos ZEIT 2 0.85 22 0 0.00 LEHRL 1 0.01 26 24 92.31 FRISEU 2 0.71 22 5 22.73 (6) (7) (8) Schlange mittlere $mittlere aktueller /AD set Zeit/Trans Zeit/Trans Inhalt ZEIT 24.36 24.36 0 LEHRL 0.14 1.76 0 FRISEU 20.31 26.29 0 $mittelere Zeit/Trans ::= mittlere Zeit/Trans ohne zeitlose Eintritte -------------------------------------------------------------------------------- Speicher/Einrichtungen (1) (2) (3) Einrichtung mittlere Anzahl der mittlere Auslastung Eintritte Zeit/Trans LEHRL 16.04 26 3.88 HAUSM 4.55 1 28.58 (1) (2) (3) (4) (5) Speicher Kapazität mittlerer mittlere Eintritte mittlere Inhalt Auslastung Zeit/Trans FRISEU 2 1.85 92.59 22 52.91 LADEN 2000 mill. 2.73 0.00 22 77.96 (6) (7) Speicher aktueller maximaler Inhalt Inhalt FRISEU 0 2 LADEN 0 5 -------------------------------------------------------------------------------- Tabellen TabelleZEIT (1) (2) (3) (4) (5) (6) Eintritte mitt.zeit in AD Stabw. Summe Zeit Minimum Maximum 22 24.36 19.27 535.90 3.15 66.82 Klasse Anzahl der prozentualer kumulativer kumulativer Eintragungen Anteil Prozentsatz Rest - 5 5 22.73 22.73 77.27 5.01-10 2 9.09 31.82 68.18 10.01-15 1 4.55 36.36 63.64 15.01-20 4 18.18 54.55 45.45 20.01-25 0 0.00 54.55 45.45 25.01-30 3 13.64 68.18 31.82 Überlauf 7 31.82 100.00 0.00 (7) Mittelwert des Überlaufes 48.81 -------------------------------------------------------------------------------- Tabellengraph 9/9