Modellierung und Simulation 1 - fh-swf.de · • Ergänzen Sie das Programm um die Möglichkeit des...

47
Modellierung und Simulation 1 Prof. Dr. H. Schulze Prof. Dr. C. Lüders Modellierung und Simulation 1 Kapitel 4 Modellierung und Simulation von Bediensystemen Prof. Dr. Henrik Schulze, Prof. Dr. Christian Lüders Fachhochschule Südwestfalen Standort Meschede Fachbereich Ingenieur- und Wirtschaftswissenschaften Tel.: 0291 / 99 10 -4300 | -4261 E-Mail: schulze.henrik | [email protected]

Transcript of Modellierung und Simulation 1 - fh-swf.de · • Ergänzen Sie das Programm um die Möglichkeit des...

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Modellierung und

Simulation 1

Kapitel 4

Modellierung und Simulation

von Bediensystemen

Prof. Dr. Henrik Schulze, Prof. Dr. Christian Lüders

Fachhochschule Südwestfalen

Standort Meschede

Fachbereich Ingenieur- und Wirtschaftswissenschaften

Tel.: 0291 / 99 10 -4300 | -4261

E-Mail: schulze.henrik | [email protected]

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

4.1 Allgemeines

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Bediensystem

Quellen

Sources Warteschlange

Queue

Bedieneinheit

Server

Senke

Sink

Zeit

zufällige Startzeiten

zufällige Bedienzeiten

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Bediensysteme – Typische Fragen

1. Welcher Anteil der Anforderungen wurde erfolgreich bedient?

2. Wie groß war die gesamte Bedienzeit? (im Mittel, in 90% der Fälle)

3. Wie groß war die Wartezeit? (im Mittel, in 90% der Fälle)

4. Wie viele Server werden benötigt?

5. Wie viele Warteplätze werden benötigt?

6. Was ist die geeignete Abfertigungsmethode? (FIFO, Priorität)

7. Lassen sich die einzelnen Prozesse besser anordnen? (parallel)

8. Wie lässt sich die „Kundenzufriedenheit“ steigern?

9. Wie stark sind die einzelnen Server ausgelastet?

10. …

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Bediensysteme - Beispiele

1. Postschalter

2. Funkkanalzuteilung

3. Zugriffe auf ein BUS-System

4. Dimensionierung & Abfertigungsstrategien bei Routern

5. Dimensionierung von Servern

6. Lagerhaltung, Bestückung von Automaten

7. Geschäftsprozesse

8. Produktionsprozesse

9. …

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

R, tX t

Menge „gleichartiger“ Zufallsvariablen, die i.Allg. abhängig voneinander sind

Index wird vielfach als Zeit t (diskretisierte Zeit n) interpretiert

Wertebereich der Zufallsvariablen: Zustandsraum

0N, nX ndiskret: kontinuierlich

Markov-Kette Markov-Prozess

Spezialfall:

• Zustandsraum diskret

• Gedächtnislosigkeit

• Memoryless (M)

Stochastischer Prozess

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Beispiele für stochastische Prozesse

1. Anzahl der Sonnenstunden in Meschede am Tag n im Jahr

2. Globale Durchschnittstemparatur im Jahr n

3. Tabellenplatz von Schalke 04 am Spieltag n

4. Position des Fußballs im Spiel zur Zeit t

5. Buchstabe in einem Text an Position

6. Windgeschwindigkeit an einem Standort zur Zeit t

7. Anzahl laufender Telefonate in einer Funkzelle zur Zeit t

8. Anzahl von insgesamt abgewickelter Telefonate am Tag n

9. Anzahl der Zugriffe auf einen Server

10. Aufgerufene Internetseite in einer Session nach Klick n

11. Bestand eines bestimmten Bauteils in einem Lager am Tag n

12. Ausfall eines Bauteils zur Zeit t

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

4.2 Markov-Ketten

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

)(

)|(BP

BAPBAP

Wahrscheinlichkeit, dass A eintritt unter der Bedingung, dass B vorliegt.

)(

)(

)(

)()|( AP

BP

BPAP

BP

BAPBAP

Falls A und B unabhängig sind:

Bedingte Wahrscheinlichkeit:

Wiederholung: Bedingte Wahrscheinlichkeiten

1 2 3 4 5 6

1 2 3 4 5 6 7

2 3 4 5 6 7 8

3 4 5 6 7 8 9

4 5 6 7 8 9 10

5 6 7 8 9 10 11

6 7 8 9 10 11 12

Bsp: Würfeln mit 2 Würfeln

A: Augenzahlsumme 7

12/736/21)( AP

B: erster Würfel zeigt 6

6/1

6/1

)()|(

BP

BAPBAP

B: erster Würfel gerade

3

2

2/1

36/12

)()|(

BP

BAPBAP

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

A

)(

)|(BP

BAPBAP

Wahrscheinlichkeit, dass A eintritt unter der Bedingung, dass B vorliegt.

)(

)(

)(

)()|( AP

BP

BPAP

BP

BAPBAP

Falls A und B unabhängig sind:

Bedingte Wahrscheinlichkeit:

)()|( BPBAPBAP

i

ii

i

i BPBAPBAPAP )()|(

B1 B2 B3

B4 B5 B6

B7 B8 B9

Wiederholung: Bedingte Wahrscheinlichkeiten

Zerlegung in disjunkte Mengen Bi

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Diskreter stochastischer Prozess mit diskretem Zustandsraum und folgender Eigenschaft

für die bedingten Wahrscheinlichkeiten:

)|(),,...,,( 1100112211 nnnnnnnnnn jXjXPjXjXjXjXjXP

Nur der unmittelbar vorhergehende Zustand spielt eine Rolle, nicht die Vorgeschichte.

Übergangswahrscheinlichkeiten von Zustand i j: pi j

)|()( 1 iXjXPnp nnji

Homogene Kette: Übergangswahrscheinlichkeiten unabhängig von n: pi j

1 2 k 0

10p 21p 32p 1, kkp

1,1kp32p21p10p

00p

Definition einer Markov-Kette

Übergangsgraph

für die Zustände 0, 1, 2, … k, k+1, …

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Die Übergangswahrscheinlichkeiten erlauben es, die Wahrscheinlichkeit für den

Zustand j zur Zeit n iterativ zu berechnen:

Zustandswahrscheinlichkeiten zur Zeit n als Zeilenvektor:

Iterative Berechnung der Zustandswahrscheinlichkeiten:

)()()()( 11 iPpiXPpjXPjP n

i

jin

i

jinn

............

...

...

...

222120

121110

020100

ppp

ppp

ppp

TP

...),2(),1(),0( nnnn PPPP

Tnn PP P 1

n

Tn PP P 0

Übergangswahrscheinlichkeiten als Elemente der

Übergangs-Matrix (Transission T):

Stationärer Zustand: Tstst PP P Eigenvektor der Übergangsmatrix z. Eigenwert 1

Wann existiert ein stationärer Zustand? Wann gilt: ? n

Tn

st PP P

0lim

Zeilensumme = ? Warum?

Markov-Kette: Übergangsmatrix u. stationärer Zustand

)|( 1 iXjXPp nnji

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Beispiel 1: System mit Ausfall und Reparatur

1 0

r

a 1-a 1-r

rr

aapppp

1

1),(),( 1010

rpapp 100 )1( aprpp 011 )1(

rpap 100 aprp 010

Gerät in

Ordnung

Gerät

defekt Stationärer Zustand

in Matrix-Form

Wahrscheinlichkeit

• für Ausfall an Tag n: a

• für Reparatur an Tag n: r Gleichgewicht

bei 0

GGW

bei 1

p0 a = p1 r Gleichgewicht auf Link

B.1: MATLAB-Übung

[V, D] = eig(A)

D: Diagonalmatrix mit Eigenwerten von A

V: Matrix mit Eigenvektoren von A

als Spalten

Normierung des 1. Eigenvektors (Warum?)

VN = V(:, 1) / sum( V(:, 1) )

• Berechne: Eigenvektor

• Berechne: PT^n, n = 1, 2, 4, 8, …

01 pr

ap

00101 pr

appp

ra

rp

0

ra

ap

1

Normierung:

Ergebnis:

Vergleich für 2 Parametersätze

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Beispiel 2: Erweiterte Systeme mit Reparatur

1 0

r1

a1

1- a1 – a2

3 2

1 0

r

a 1-a

Gerät in

Ordnung

Gerät

defekt

2

1 - r

l

1 - l

Nicht

reparabel

a2 r2

Wahrscheinlichkeit

• für Ausfall an Tag n: a

• für Reparatur an Tag n: r

• für Neubeschaffung am Tag n: l

r1

a1

a2 r2

1- r1 – a2

1- r1 – r2 1- a1 – r2

Ausfallwahrscheinlichkeit

• falls beide Teile erforderlich: 1 – p0

• falls Teile redundant sind: p3

Ausfall eines Geräts aus zwei Teilen Nicht-reparabler Defekt

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Bediensystem mit einem Server und Warteschlange

• Diskreter Zeittakt

• unbegrenzte Warteplätze

• Zustand:

• Anzahl Kunden k im System

• Neuankunft Kunde: pa = l

• Bedienzeit-Ende: pe = µ

• Last: a = l / m < 1

1 Server, 1 Warteplatz

1 2 0

m m m

3

m

l l l l

1lm 1lm 1lm

1l

l pk = µ pk+1 a pk = pk+1

pk = ak p0 p0 = 1 – a

1 2 0

m m

l l

1lm

1l 1m

Mittlere Kundenzahl im System: E{K} = a/(1 – a)

B.2 MATLAB-Übung

• Übergangsmatrix PT aufstellen

• Eigenwerte / -vektoren berechnen

• PT^n berechnen

• Wartewahrscheinlichkeit?

• Serverauslastung?

• Mittlere Kundenzahl

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Explizite Simulation einer Markov-Kette (Bsp. M/M/1) nmax = 100000; % Maximale Laufzeit

lambda = 0.06; % Erzeugungswahrscheinlichkeit

mu = 0.1; % Ende-Wahrscheinlichkeit

a = lambda/mu; % Last

k = 0; % aktuelle Zahl: Kunden im System

K = []; % speichert Kunden in jedem Zeitschritt

N = 0; % aktuelle Anzahl erzeugter Kundenwünsche

for n = 1:nmax, % Schleife über Zeitschritte

if(rand(1,1) < lambda + mu), % Änderung der Kundenzahl

% mit p = lambda + mu

if( rand(1, 1) > a /(1 + a) ) % Verringerung Kundenzahl (Ende)

k = max(0, k - 1);

else % Erhöhung der Kundenzahl

k = k + 1;

end

end

K = [K; k]; % Füge aktuelle Kundenzahl zu

end % Kundenzahlvektor hinzu

Statistische Auswertung, Diagramme

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Zeitlicher Verlauf der Kundenzahl und Histogramm

der Zustandswahrscheinlichkeiten für M/M/1-System

0 500 1000 1500 20000

1

2

3

4

5

6Kundenzahl im System als Funktion der Zeit

Zeitschritt

Kundenzahl im

Syste

m

0 2 4 6 8 100

0.5

1

1.5

2

2.5

3

3.5

4x 10

4 Histogramm der Kundenzahl im System

Kundenzahl

Häufigkeit

Parameter wie auf vorheriger Folie

zeitlicher

Mittelwert

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Aufg. B.3: Simulationsaufgaben zur Markov-Kette (M/M/1)

• Wie groß muss man nmax wählen, um ca. 20000 Ankünfte zu simulieren?

• Ergänzen Sie das Simulationsprogramm diskretMM1 um

– die Ausgabe der tatsächlichen Ankünfte

– ein Diagramm zum zeitlichen Verlauf der Kundenzahl sowie mit dem Histogramm

– die Ausgabe des Ensemble-Mittelwerts E{K} und des zeitlichen Mittelwerts der Kundenzahl

• Simulieren Sie das System für zwei verschiedene Werte der Last und vergleichen

Sie die Ergebnisse mit den Werten für die Formeln zum stationären Zustand.

• Simulieren Sie das System zweimal mit der Last a = 1! Was stellen Sie fest?

• Ergänzen Sie das Programm um die Möglichkeit des Abweisens (Blockierung B)

eines Kundenwunsches bei einer endlichen Warteschlangenlänge (z.B. nur 1 Platz)!

• Bauen Sie einen Zähler für die Anzahl von Blockierungen ein und geben Sie die die

Blockierwahrscheinlichkeit aus.

• Simulieren Sie das System für zwei verschiedene Werte der Last und vergleichen

Sie die Ergebnisse mit den Werten für die Formeln zum stationären Zustand.

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Weitere Beispiele für Markov-Ketten

0 1

q

p

3 2

p

q

q q p p

01 11

00 10

21

20

02 12 22

0

3 4

0,5

0,5

1 2 0,5

0,5

0,75

0,25

0,5 0,5

0,5 0,5

B.4 MATLAB-Übung

• Erzeuge PT

• Berechne: PT^n,

• n = 50, 51, 52, 53

• Was fällt auf?

• Woran liegt das?

• ….

Zweidimensionaler Prozess

„Random Walk“

Überlegung

• Was geschieht langfristig?

• Pn im stationärem Zustand?

• ….

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Internet-Suche als Markov-Kette

Einfaches Beispiel mit 5 verlinkten Seiten

5

2 4

3

1

p1j = (0, ¼, ¼ , ¼, ¼)

p2j = (½ , 0, 0 , ½, 0)

p3j = (0, 0, 0 , 1, 0)

p4j = (0, 1, 0 , 0, 0)

p5j = (1/3 ,1/3, 0 ,1/3, 0)

Übergangswahrscheinlichkeiten

aus dem Zustand i heraus: 1/L

L: Anzahl der Links

Wie sieht die stationäre Verteilung aus?

Ranking der Seiten nach

Wahrscheinlichkeit (stationär)

B.5a: MATLAB-Übung

• Übergangsmatrix PT einlesen

• liegt als Excel-Tabelle vor

• PT = xlsread(`www5.xlsx´)

• PT^n berechnen

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Internet-Suche als Markov-Kette

Einfaches Beispiel mit 6 verlinkten Seiten

5

2 4

3

1

p1j = (1- a) p1j + a / N

Problem?

6 Absorbierende

Zustände

Prozess läuft irgendwann in die

absorbierenden Zustände 3 und 6

und kehrt nicht mehr zurück

Lösung?

„Steuersatz“ a bei allen Zuständen

Link p34 gestrichen

Jetzt: immer ein Link zurück

B.5b: MATLAB-Übung

• Übergangsmatrix PT einlesen

• PT = xlsread(`www6.xlsx´)

• PT^n berechnen

• Mit Steuersatz modifizieren

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Für eine (positiv) rekurrente, aperiodische und irreduzible Markov-Kette gilt:

- Der folgende Grenzwert für die Übergangsmatrix existiert:

)(/1 kPstk

- Es existiert ein eindeutiger stationärer Zustand (Eigenvektor): Tstst PP P

Wichtige Ergebnisse für Markov-Ketten

n

Tn

T PP

lim

- Alle Zeilen von sind identisch und gleich

TP stP

- Mittlere Zeit für die Rückkehr in den Zustand k:

- Das Verhalten der Markov-Kette ist ergodisch:

Erwartungswert/Ensemble-Mittel = zeitliches Mittel

k

st kPkKE )(

N

n

nN

t KN

K1

1lim

z.B. Mittlere

Kundenzahl

Gilt auch für andere Größen.

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

4.3 Markov-Prozesse

(und ähnliche Prozesse)

- zeit-kontinuierlich

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Markov-Kette (diskrete Zeitschritte)

)|(),,...,,( 1100112211 nnnnnnnnnn jXjXPjXjXjXjXjXP

Nur der unmittelbar vorhergehende Zustand spielt eine Rolle, nicht die Vorgeschichte.

Übergangswahrscheinlichkeiten von Zustand i j: )|( 1 iXjXPp nnji

Markov-Prozess und Übergangsraten (1)

)()|()( iXPiXjXPjXP t

i

ttttt

)(

)|()()(iXP

t

iXjXP

t

jXPjXPt

i

jitttttt

)()( tPtdt

dPi

i

ji

j

Markov-Prozess (Zeit kontinuierlich)

0t

)()()()( 11 iPpiXPpjXPjP n

i

jin

i

jinn 1 Zeilensumme j

jip

jjji

jii

ji PP

j

jzz

zji

jii

ji PP

0z

zi

Übergangsraten: ij

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

in Zustand j

hinein

aus Zustand j

heraus

Markov-Prozess und Übergangsraten (2)

)()|()( iXPiXjXPjXP t

i

ttttt

)(

)|()()(iXP

t

iXjXP

t

jXPjXPt

i

jitttttt

dt

dPj

Übergangsraten i j : ij

0t

j

jzz

zji

jii

ji PP

0eZeilensumm0 j

ji

„Wahrscheinlichkeitsfluss“

0: dt

dPjZustandrstationäre

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

)(

)|(BP

BAPBAP

Wahrscheinlichkeit, dass A eintritt unter der Bedingung, dass B vorliegt.

)(1

)()|],[(

tP

ttpüberlebttZeitzurbistttinAusfallPP

T

Tausfall

)(1

)(lim)(

0 tP

tp

t

Pt

T

Tausfall

t

a

z.B. Wahrscheinlichkeit, dass Bauteil bis zur Zeit t ausfällt:

Verteilung: F(t) = PT( T ≤ t), Dichte: pT(t) = f(t) = F‘(t)

Ausfallrate:

Bedingte Wahrscheinlichkeit:

Durch Reparatur bzw. Ausfall eines Bauteils / Ende oder Beginn eines Prozesses

ändert sich der Zustand eines Systems von i auf j = i ± 1

Bestimmung der Übergangsrate:

Bedingte Wahrscheinlichkeiten u. Ausfallrate / Ende-Rate

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

)(1

)()(

tP

tpt

T

T

aAusfallrate:

)exp()()( tµµtptf T

Exponential-Verteilung mit Parameter µ:

Dichte:

)exp(1)()( tµtPtF T

µµt

µtµ

tP

tpt

T

T

))exp(1(1

)exp(

)(1

)()(a

Ausfallrate

Sterberate

Ende-Rate

Bei einer Exponential-Verteilung ist die Ausfallrate konstant (µ) und hängt nicht

von der Vorgeschichte ab – Gedächtnislosigkeit (Memoryless)

Mittlere Lebensdauer (Mean Time Before Failure): MTBF = E{T} = = 1/µ

Analog bei Zwischenankunftszeiten/ Reparaturzeiten gemäß Exponential-Verteilung:

Konstante Ankunftsrate l / Reparaturrate r : r = 1/MTTR (Mean Time To Restore)

Ausfallrate: Gedächtnislosigkeit Exponential-Verteilung

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

)(1

)(lim)(

0 tP

tp

t

Ptr

T

Tausfall

t

Ausfallrate:

Weibull-Verteilung mit Parameter µ, k:

Dichte:

k

T tµtPtF exp1)()(

1

)(1

)()(

k

T

T tµµktP

tptr

Ausfallrate

Sterberate

Enderate

Einfluss von k ?

kk

T tµtµµktptf

exp)()(1

Ausfallrate (Weibull-Verteilung)

t

r Badewannenkurve

Früh-

ausfälle Normalbereich Alterung

k = 1

k > 1 k < 1

Ausfallrate bei Pareto?

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Kendall-Notation für Bediensysteme A / B / s / q / K / SD

• A: Verteilung der Zwischen-Ankunftszeiten

• M: Memoryless (Exponential) D: Deterministisch

• G: General (beliebige Verteilung) P: Pareto ….

• B: Verteilung der Bedienzeiten

• Siehe A

• s: Anzahl der Bedieneinheiten 1, 2, 3, …

• q: Anzahl der Bedieneinheiten + Warteplätze s, s+1, s+2, …,

• K: maximale Anzahl der Kunden

• K = 1, 2, 3, …,

• SD: Sevice-Disziplin

• FIFO: First In First Out LIFO: Last In Last Out

• SJF: Shortest Job First PRIO: Prioriry …

Rot: Default-Werte

können weggelassen

werden, z.B.

• M/M/1 =

• M/M/1///FIFO

• M/M/8/8 =

• M/M/8/8//FIFO

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Mehrere Bedienplätze s, unbegrenzte Warteplätze: M/M/s

1 2 s 0

l l l l l l

1m 2m 3m sm sm sm

l

sm

k

l l

km k1m

Kunden im System: k

Anzahl Server: s

Ankunftsrate: l

Mittlere Bearbeitungszeit:

Ende-Rate: µ = 1/

Gesamtlast A = l/µ = l

Last pro Server a = A/s

veränderlich

8

60 h-1

6 min = 0,1 h

10 h-1

60 h-1 0,1 h = 6 Erl

0,75 Erl pro Server

Parameter Zahlenbeispiel (kleines Callcenter)

0,95 Erl pro Server

Pseudo-Einheit

Erlang (Erl)

Agner Krarup Erlang

Dän. Mathematiker u. Ingenieur

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Mehrere Bedienplätze s, unbegrenzte Warteplätze: M/M/s

1 2 s 0

l l l l l l

1m 2m 3m sm sm sm

l

sm

l pk + kµ pk = l pk-1 + (k+1)µ pk+1

l pk + sµ pk = l pk-1 + s µ pk+1

kµ pk = l pk-1

l p0 = 1µ p1

sµ pk = l pk-1

1 kk pk

Ap

0!

pk

Ap

k

k

1 kk pap

0!

pas

Ap sk

s

k

k = 1, 2, …., s – 1,

k = s, s+1, ….

1

11

0

0 )1(!!

a

s

A

k

Ap

ss

k

k

k

l l

km k1m Kunden im System: k

Anzahl Server: s

Gesamtlast A = l/µ = l

Last pro Server a = A/s

Gleichgewicht bei Gleichgewicht bei

Normierung

Mittlere Länge

Warteschlange

Mittlere Anzahl

Kunden im System

02)1(!p

a

a

s

AK

s

W

WKAK

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

M/M/s/s-System, keine Warteplätze Verlustsystem

1 2 s 0

l l l

1m 2m 3m

l

sm

0!

pk

Ap

k

k

1

0

0!

s

k

k

k

Ap

k

l l

km k1m

Kunden im System: k

Anzahl Server: s

Gesamtlast A = l/µ = l

0!

)|( ps

ApAnkunftskPB

s

s

Gesamtlast A = l / µ

Ankunftsrate l

Serverauslastung: A (1 – B)

Eintrittsrate: le l (1 – B)

System

Zustandswahrscheinlichkeiten für s ???

Blockierwahrscheinlichkeit (Erlang-B-Formel)

10-2

10-1

100

10-1

100

101

102

Last pro Server

Blo

ckin

g B

/ %

Neuankunft

Blockierung

s = 2 4 8 16 32

s =1

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Poisson-Prozess

Ak

k ek

Ap

!Wahrscheinlichkeit für k Kunden:

System ohne Begrenzungen:

Zwischenankunftszeiten exponential-verteilt, Bedienzeiten exponential-verteilt

Anzahl Kunden Kt im System zur Zeit t ist ein Poisson-Prozess

tKEµ

A l

0 5 10 150

0.1

0.2

0.3

0.4

0.5

k

pk

0 5 10 150

0.1

0.2

0.3

0.4

0.5

k

pk

0 5 10 150

0.1

0.2

0.3

0.4

0.5

k

pk

0 5 10 150

0.1

0.2

0.3

0.4

0.5

k

pk

A = 0,75 A = 1,5

A = 3 A = 6

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Theorem von Little Verweilzeiten im System

T1

T2

T3

T4

T5

T6

T7

T8

Ka

t1 t2 t3 t4

11

aK

j

jT

Ke

T

<<

GFTeK

j

j

1

1

I

i

ii tkGFFlächeGraue1

I

i

iiT

t tkT

KKE1

1lim

aa K

j

j

a

a

K

j

j TKT

KT

T 11

11

TE l

Ergodischer Prozess (ohne Verluste)

TEKKE t l

Mittlere Kunden-

Zahl im System

Mittlere

Verweilzeit

Ankunfts-

rate = x

t

k

QQ TEKE l

TEBKE l)1(

in der Queue

mit Blockierung:

benötigt Markov-Eigenschaft nicht!!!

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Warte- & Verweilzeiten bei M/M/s über Theorem von Little

1 2 s 0

l l l l l l

1m 2m 3m sm sm sm

l

sm

1

11

0

0 )1(!!

a

s

A

k

Ap

ss

k

k

02)1(!p

a

a

s

AK

s

W

WKAK

k

l l

km k1m Kunden im System: k

Anzahl Server: s

Gesamtlast A = l / µ

Last pro Server a = A/s

Normierung

Mittlere Länge

Warteschlange

Mittlere Anzahl

Kunden im System

l/WW KT

WW T

µKAKT

1// ll

Mittlere Wartezeit Mittlere Verweildauer

Verteilung der Wartezeit Verteilung der Verweildauer

TttTP /exp1 WWW TtptTP /exp1

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Jackson-Netz: Netz aus M/M/1-Systemen

µ1 µ1

µ1 µ2 µ1

µ2

µ3

µ1

µ2

µ3 l2

l1

l1

l2 l1

l3 l1 l2

l3 ql1

l2 1q)l1

l1

Last an Bedieneinheit i: ai = li / mi

1el

2el

3el

4el

43211 eeee lllll

1el

11 )1( eq ll

q

n

i

i

k

in aakkkp i

1

11 )1(),...,(Zustandswahrsch.

nges KKKK ...21Mittl. Kundenzahl:

emee

gesKT

lll ...21 Mittl. Verweilzeit:

Eintrittsraten der für externe (e) Quellen: ejl

1el1el

1el

2el

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

S-Bahn-Station

An einer belebten S-Bahn-Station treffen im Mittel

10 Bahnen pro Stunde ein.

Ein Fahrgast trifft zu zufälligen Zeit ein. Wie lange

muss er im Mittel auf eine Bahn warten?

0 1 2 3 t / h

0 1 2 3 t / h

18 min

Mittlere Wartezeit: 0,3 1 min + 0,7 21 min = 15 min

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Pollaczek–Khinchine-Formel für M/G/1-System

2

)1( 2

,,

CTT MWGW

Mittlere

Wartedauer

Zwischenankunftszeiten: exponentialverteilt mit Rate l

Bedienzeiten T mit beliebiger Verteilung G = G(T)

• Mittelwert

• Standardabweichung s

• Variationskoeffizient C = s /

• Last a = l

für ein beliebiges G

kein Markov-Prozess

• Index M: M/M/1-System

• Index G: M/G/1-System

2

)1( 2

,,

CKK MWGW

Mittlere Länge

Warteschlange

WG TTMittlere

Verweilzeit

aKK GWG ,

Mittlere

Kundenzahl

Exponentialverteilung

C = ?

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Bedien-Disziplinen

ohne Pre-emption mit Pre-emption

Ohne Prioritäten

First In First Out (FIFO) =

First Come First Serve (FCFS)

Last In First Out (LIFO)

Random (RAND)

Priority

Shortest Remaining

Processing Time (SRPT)

Ohne Prioritäten

Processor Sharing (PS)

= Time Div. Multiplex (TDM)

= Round Robin (RR)

Forground Background (FB)

Priority (PRIO)

• Shortest Job First (SJF)

• Job Type

• Transmission Quality

• Proportional Fair

• Nearest Deadline

Pre-emption: Vorkaufsrecht, Verdrängung

i.A. keine analytischen Formeln

Simulation

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

4.4 Ereignisorientierte Simulation

(von Bediensystemen)

Komplexere Systeme mit beliebigen Bedienzeit-

Verteilungen und komplexen Zuteilungsstrategien

nicht analytisch behandelbar

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Ereignisorientierte Simulation

Nachteile von festen, diskreten Zeitschritten (Perioden-Orientierung) bei Zufallsprozessen

• Zeitschritt groß: mehrere „gleichzeitige“ Ereignisse in einem Zeitschlitz

• Zeitschlitz klein: in den meisten Zeitschlitzen geschieht nichts (ineffizient)

Lösung: Ereignisorientierte Simulation (Discrete Event (System) Simulation)

• Nur die Zeitpunkte werden betrachtet, an denen sich der Zustand des Systems ändert

• Ereignis: Zustandsänderung

• Abzuarbeitende Ereignisse werden in eine dynamische EventList eingetragen

• Kennzeichen eines Events: Eintrittszeitpunkt, Typ, zugeordneter Prozess (Kunde, Paket), …

• Abhängig von Typ wird zum Eintrittszeitpunkt bestimmte Routine (Funktion) abgearbeitet

• Je nach Ergebnis können neue Events erzeugt werden (zu zufälligen Zeiten)

• Abzuarbeitende Prozesse / erzeugte Pakete speichern ihren Lebenslauf

• Wann ist was passiert?

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Illustration: Ereignisorientierte Simulation

E1 E2 E3 E4 E5 E7 E8 E9 E10 E11

Packet 3

• pnr

• state

• type

• length

• origin

• Statistics

(Lebenslauf)

P 1 P 2 P 4

Event 6

• time

• type

• pnr

Generator

• RandomGenerator1

- verschiedene Param.

Ankunftszeit

• RandomGenerator2

- verschiedene Param.

Paketlänge

• weitere Parameter

Prozessor belegt:

Einreihen in Warteschlange

Prozessor frei:

Start der Bearbeitung

Ende festlegen

Bearbeitung abgeschlossen

Neues Paket in Warteschlange?

Zeit t

Zwischenankunftszeit Bearbeitungszeit Wartezeit

P 3

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Startzeiten von Prozessen / Paketen switch Generator.type

case 'deterministic'

NextTime = time + Generator.par1;

case 'uniformly_distributet'

dt = Generator.par2 - Generator.par1;

NextTime = time + Generator.par1 + dt*rand(1, 1);

case 'exponential'

lambda = Generator.par1; % hier nur par1 benötigt

NextTime = time - log(rand(1,1)) / lambda;

case 'weibull'

????????????;

case 'pareto'

????????????;

otherwise

NextTime = time

end

SetEvent(NextTime, 'generate', PacketNr)

Struktur Generator

Generator.type

Generator.par1

Generator.par2

analog für Paketlängen

Es lassen sich auch Ankunftszeiten

aus Dateien (Messungen) einbruingen.

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Hauptprogramm und Abarbeitung von Events function t = ProcNextEvent()

% suche nächstes Event in der Liste –

% das mit dem niedrgsten Zeitwert t

% n ist die Position in der Liste

[t, n] = min([EventList.time]);

% führe die Verarbeitung für das Event

% gemäß Typ aus

switch EventList(n).type

case 'generate'

GeneratePacket(t);

case 'process'

ProcessPacket(t, EventList(n).Pnr);

case 'delete'

DeletePacket(t, EventList(n).Pnr);

otherwise

warning('Fehler Event.type')

end

% Lösche abgearbeitetes Event aus Liste

EventList(n) = [];

Initialisierung • Generator

• Bedieneinheit

• Event- und PacketList leer

MaxSimTime =1000; % maximale Zeit

time = 0; % aktuelle Zeit

pnr = 1; % 1. Paket

SetEvent(time, 'generate', pnr);

while time < MaxSimeTime;

time = ProcNextEvent();

end

Statistische Auswertung • Warte- und Verweilzeiten (Verteilung, MW, …)

• Erzeugte Anforderungen, Blockierungen

• Kundenzahl, Warteschlangenlänge (Vert., MW)

• Zeitlicher Verlauf, ….

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Bearbeitung eines ankommenden Paketes

function ProcessPacket(time, PacketNr)

if load < channels, % falls Kanal/Server frei

load = load + 1; % ein Kanal mehr belegt

duration = PacketList(PacketNr).length / rate; % Dauer der Bearbeitung

SetEvent(time + duration, 'delete', PacketNr); % Beende nach Verarbeitung

Else % falls alle Kanäle/Server belegt

q = min(find(queue == 0)); % suche ersten freien Warteplatz

if length(q) == 0, % falls kein Warteplatz vorhanden

SetEvent(time, 'delete', PacketNr);

warning('blocking‘) % Blockierung

else % falls Warteplatz q frei

queue(q) = PacketNr; % trage Paketnummer dort ein

load = load + 1; % erhöhe Last im System

end

end

Processor.load = load; % Aktualisiere Zustand Bediensystem

Processor.queue = queue;

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Beendigung eines Prozesses (Paket verarbeitet) function DeletePacket(time, PacketNr)

PacketList(PacketNr).end = time; % Verarbeitung von PacketNr. beendet

PacketList(PacketNr).state = 'deleted'; % Setze Zustand auf 'deleted'

p = queue(1); % Hole nächstes Paket aus Queue (FIFO)

if p == 0, % Falls keines in der Queue

noaction = 1; % keine weiteren Maßnahmen

else % Falls Paket p in der Queue

queue(1) = 0; % Warteplatz freigeben

queue = circshift(queue', -1)'; % die anderen Pakete nachrücken lassen

Packet = PacketList(p); % neu zu verarbeitendes Packet

duration = Packet.length / rate; % Dauer der Bearbeitung

SetEvent(time + duration, 'delete', Packet.nr); % Beende nach Verarbeitung

end

load = max(0, load - 1); % ein Kanal weniger belegt

Processor.load = load; % Aktualisiere Zustand Bediensystem

Processor.queue = queue;

Modellierung und Simulation 1

Prof. Dr. H. Schulze

Prof. Dr. C. Lüders

Aufg. B.6: Simulation einfacher Bedienprozesse

a) Simulieren Sie mit Hilfe der vorliegenden SW ein M/M/1-System für zwei verschiedene

sinnvolle Werte für die Last. Stellen Sie MaxSimTime so ein, dass ca. 10000 Pakete erzeugt

werden.

– Wie groß ist die mittlere Zahl der Kunden im Systeme, wie groß die Auslastung pro Kanal?

– Speichern Sie die (komplementären) Verteilungsfunktionen für die Warte- und Verweilzeit in einem

Word-Dokument und notieren Sie dabei die eingestellte Last.

– Was fällt Ihnen beim Vergleich der beiden Diagramme auf? Wie kann man die

Wartewahrscheinlichkeit ablesen?

– Überprüfen Sie, inwieweit das Gesetz von Little erfüllt ist!

b) Simulieren Sie mit Hilfe der vorliegenden SW ein M/M/s-System für eine selbst gewählte

Kanalzahl s > 1. Erhöhen Sie dabei die Last auf das s-fache gegenüber (a). Vergleichen Sie

die Ergebnisse mit denen für (a)!

c) Simulieren Sie ein M/G/1-System für eine Verteilung G Ihrer Wahl (z.B. Pareto, nicht

exponentiell). Dazu müssen beim Paketlängen-Generator den entsprechenden Zufallszahlen-

generator implementieren. Vergleichen Sie die Ergebnisse mit denen für (a)!

d) Simulieren Sie ein M/M/1-System mit einer anderen Bediendisziplin als FIFO (z.B. LIFO).

Dazu sind Änderungen in „DeletePacket“ vorzunehmen. Vergleichen Sie die Ergebnisse mit

denen für (a)!