MuPAD Education Group: Kostenlose Materialen für MuPAD Pro:
www.sciface.com/education, schule.mupad.de, studium.mupad.de, mupad.zum.de.

___________________________________________________________________________

 

Inhalt....: Warteschlangen III

Kategorie.: Arbeitsblatt

Mathematik: Stochastik, Statistik

MuPAD.....: 3.1.1

Datum.....: 2007-05-14

Autoren...: Anna Lena Stahr <annalena.stahr@web.de>

Funktionen: proc, local, stats::exponentialRandom, for, _plus, if, else,

Funktionen: trunc, float, plot::PointList2d, plot::Function2d, AxesTitles,

Funktionen: LegendText, LegendVisible, LegendPlacement, LegendAlignment,

Funktionen: PointStyle, PointSize, Color, print, expr2text, stats::mean, 

Funktionen: listlib::setDifference, concat

___________________________________________________________________________

 

Warteschlangen mit begrenztem Warteraum

 

Dieses Notebook ist als Fortsetzung der Notebooks "Warteschlangen I" und "Warteschlangen II" zu verstehen. Die verwendeten Abkürzungen, wie z.B. ZAZ für "Zwischenankunftszeit", werden in der Legende am Ende des Dokuments erläutert.

 

In diesem Notebook werden wir zwei weitere Warteschlangensysteme kennenlernen, das M|const|1|m-Warteschlangensystem und das M|M|1|m-Warteschlangensystem. Bei diesen Systemen handelt es sich um Warteschlangensysteme mit begrenzten Warteräumen, d.h. einer Beschränkung der maximalen Anzahl wartender Kunden. Die Warteschlangensysteme M|const|1|m und M|M|1|m unterscheiden sich von den M|const|1- und M|M|1-Warteschlangensystemen nur dadurch, dass der Warteraum auf maximal m wartende Kunden beschränkt ist, d.h. dass sich maximal m+1 Kunden im System aufhalten können.

 

Aufbau dieses Notebooks:

1. Das M|const|1|m-Warteschlangensystem

2. Das M|M|1|m-Warteschlangensystem

 

 

1. Das M|const|1|m-Warteschlangensystem

 

Das M|const|1|m-Warteschlangensystem ist ein M|const|1-Warteschlangensystem mit einem auf m, m in N, Kunden begrenzten Warteraum, d.h. dass entweder der Warteraum z.B. räumlich auf m wartende Kunden begrenzt ist oder dass die Kunden, die in dieses Warteschlangensystem eintreffen, so ungeduldig sind, dass sie sich nicht in die Warteschlange einreihen, wenn sie bereits m wartende Kunden vor sich sehen.

 

Die Prozedur "WarteMconst1m" plottet die Wartezeit eines jeden Kunden und die Länge der Warteschlange bei seiner Ankunft und berechnet die durchschnittliche Warteschlangenlänge und Wartezeit der Kunden. Sie bekommt dazu die mittlere Anzahl LA ankommender Kunden pro Zeiteinheit als Parameter für die Exponentialverteilung der Zwischenankunftszeiten übergeben, die konstante Dauer BE der Bedienzeiten, die Gesamtanzahl KG ankommender Kunden und die maximale Anzahl m wartender Kunden.

 

WarteMconst1m:=proc(LA,BE,KG,m)

  local VW,ZAZ,A,L1,L2,wartemittel,laengemittel,f1,f2,f3,f4;

  begin

  VW:=0:                         // virtuelle Wartezeit

  ZAZ:= stats::exponentialRandom(0,LA);

  A:= [ZAZ()$i=1..KG];           // ZAZ der Kunden

  L1:= [[0,0]$KG];

  L2:= [[0,0]$KG];

 

  for i from 1 to KG do

    L1[i][1]:=_plus(A[k]$k=1..i); // AZ des i. Kunden

    if A[i] < VW

      then L1[i][2]:= VW-A[i]     // WZ des i. Kunden

      else L1[i][2]:= 0

    end_if;

    L2[i][1]:=i;                  // Nummer des i. Kunden

    L2[i][2]:=trunc(L1[i][2]/BE);

                                  // WL bei Ankunft des i. Kunden

    if L2[i][2] < m               // Warteschlange nicht zu lang

      then VW:= L1[i][2]+BE       // der Kunde stellt sich an

      else VW:= L1[i][2]          // der Kunde stellt sich nicht an

    end_if;

  end_for;

 

  wartemittel:= stats::mean(L1[i][2] $ i=1..KG);

                                  // durchschnittliche Wartezeit

  laengemittel:= stats::mean(L2[i][2] $ i=1..KG);

                                  // durchschnittliche Warteschlangenlänge

 

  f1:= plot::PointList2d(L1, PointStyle=XCrosses, Color=RGB::Red);

  f2:= plot::Function2d(wartemittel, x=0..L1[KG][1], LegendText="durschnittliche Wartezeit");

  plot(f1, f2, AxesTitles=["Ankunftszeit","Wartezeit"], LegendVisible=TRUE, LegendPlacement=Bottom, LegendAlignment=Left);

  print("durchschnittliche Wartezeit: ". expr2text(float(wartemittel)));

 

  f3:= plot::PointList2d(L2,PointSize=1.5, Color=RGB::Red);

  f4:= plot::Function2d(laengemittel, x=0..KG, LegendText="durschnittliche Länge der Warteschlange");

  plot(f3, f4, AxesTitles=["Kundennummer", "WL bei Ankunft des Kunden"], LegendVisible=TRUE, LegendPlacement=Bottom, LegendAlignment=Left);

  print("durchschnittliche Länge der Warteschlange: ".expr2text(float(laengemittel)))

end_proc;

math

WarteMconst1m(1,1,500,3)

MuPAD graphics

"durchschnittliche Wartezeit: 1.69177654"

MuPAD graphics

"durchschnittliche Länge der Warteschlange: 1.252"

 

 

Wir variieren nun die Werte LA und BE, indem wir sowohl die mittlere Anzahl ankommender Kunden pro Zeiteinheit als auch die Bediendauer immer größer werden lassen.

 

WarteMconst1m(2,2,500,3)

MuPAD graphics

"durchschnittliche Wartezeit: 6.442757337"

MuPAD graphics

"durchschnittliche Länge der Warteschlange: 2.726"

 

 

WarteMconst1m(3,3,500,3)

MuPAD graphics

"durchschnittliche Wartezeit: 10.07623941"

MuPAD graphics

"durchschnittliche Länge der Warteschlange: 2.87"

 

 

WarteMconst1m(4,4,500,3)

MuPAD graphics

"durchschnittliche Wartezeit: 13.70086189"

MuPAD graphics

"durchschnittliche Länge der Warteschlange: 2.918"

 

 

Wir stellen fest, dass in einem M|const|1|m-Warteschlangensystem immer eine stationäre Verteilung der Anzahl der Kunden im System existiert. Dafür sorgt die begrenzte Systemkapazität: Die Warteschlange kann nicht beliebig lang werden und so können auch die Wartezeiten der Kunden einen bestimmten Wert nicht überschreiten.

 

 

2. Das M|M|1|m-Warteschlangensystem

 

Das M|M|1|m-Warteschlangensystem ist ein System mit exponential-verteilten Zwischenankunfts- und Bedienzeiten, einem Schalter und einem auf m Kunden begrenzten Warteraum.

 

In der Prozedur "WarteMM1m", die die Wartezeit eines jeden Kunden plottet und die durchschnittliche Wartezeit der Kunden berechnet, wird die begrenzte Systemkapazität nicht durch eine maximale Anzahl m wartender Kunden sondern durch eine maximale Wartezeit w realisiert. Die Kunden, die in dieses System eintreffen, sind so ungeduldig, dass sie sich nicht in die Warteschlange einreihen, wenn ihre Wartezeit den Wert w überschreiten würde. Die Anzahl der potentiellen Kunden, die dem Warteschlangensystem deswegen verloren gehen, wird von der Prozedur ebenfalls berechnet.Die Prozedur bekommt die mittlere Anzahl LA ankommender Kunden pro Zeiteinheit als Parameter für die Exponentialverteilung der Zwischenankunftszeiten übergeben, die mittlere Anzahl MU bedienter Kunden pro Zeiteinheit als Parameter für die Exponentialverteilung der Bedienzeiten, die Gesamtanzahl KG ankommender Kunden und die maximale Wartezeit w.

 

WarteMM1m:=proc(LA,MU,KG,w)

  local VW,ZAZ,BZ,A,B,L1,L2,L3,wartemittel,f1,f2;

begin

 

  VW:= 0:                         // virtuelle Wartezeit

  ZAZ:= stats::exponentialRandom(0,LA);

  BZ:= stats::exponentialRandom(0,MU);

  A:= [ZAZ()$i=1..KG];            // ZAZ der Kunden

  B:= [BZ()$i=1..KG];             // BZ der Kunden

  L1:= [[0,0]$KG];

  L2:= [];

 

  for i from 1 to KG do

    L1[i][1]:=_plus(A[k]$k=1..i); // AZ des i. Kunden

    if A[i]<VW

      then L1[i][2]:=VW-A[i]      // WZ des i. Kunden

      else L1[i][2]:=0

    end_if;

    if L1[i][2]<w                 // Wartezeit nicht zu lang

      then VW:=L1[i][2]+B[i]      // Kunde stellt sich an

      else VW:=L1[i][2];          // Kunde stellt sich nicht an

           L2:=L2.[L1[i]];        // alle Kunden, die sich nicht anstellen

    end_if;

  end_for;

  L3:= listlib::setDifference(L1,L2); // Wartezeiten

 

  wartemittel:=stats::mean(L3[i][2]$i=1..nops(L3));

                                      // durchschnittliche Wartezeit

 

  f1:= plot::Function2d(wartemittel, x=0..max(L3[i][1]$i=1..nops(L3)), LegendText="durchschnittliche Wartezeit", LineWidth=0.5);

  f2:= plot::PointList2d(L3);

  plot(f1, f2, AxesTitles=["Ankunftszeit","Wartezeit"], LegendVisible=TRUE, LegendPlacement=Top, LegendAlignment=Right);

  print("durchschnittliche Wartezeit: ".expr2text(wartemittel));

  print("Von ".nops(L1).

        " potentiellen Kunden reihten sich ".nops(L2).

        " nicht in die Warteschlange ein!");

end_proc;

math

WarteMM1m(2,2,1000,10)

MuPAD graphics

"durchschnittliche Wartezeit: 5.68225175"

"Von 1000 potentiellen Kunden reihten sich 79 nicht in die Warteschlange ein!"

 

 

Auch in diesem Warteschlangensystem können wir durch Variation der Werte LA und MU feststellen, dass für beliebige Werte eine stationäre Verteilung existiert und die Wartezeiten der Kunden den vorgegebenen Wert nicht überschreiten:

 

WarteMM1m(3,2,1000,10)

MuPAD graphics

"durchschnittliche Wartezeit: 8.907653636"

"Von 1000 potentiellen Kunden reihten sich 345 nicht in die Warteschlange ein!"

 

WarteMM1m(5,2,1000,10)

MuPAD graphics

"durchschnittliche Wartezeit: 9.289340063"

"Von 1000 potentiellen Kunden reihten sich 565 nicht in die Warteschlange ein!"

 

 

___________________________________________________________________________

 

Legende:

 

X_s

Anzahl der bis zum Zeitpunkt s eingetroffenen Kunden

Y_s

Anzahl der bis zum Zeitpunkt s bedienten Kunden

L_s

=X_s-Y_s, Anzahl der Kunden im Warteschlangensystem zum Zeitpunkt s

ZAZ

Zwischenankunftszeit

AZ

Ankunftszeit

BZ

Bedienzeit

EB

Ende der Bedienzeit

LA

mittlere Anzahl ankommender Kunden pro Zeiteinheit

MU

mittlere Anzahl bedienter Kunden pro Zeiteinheit

KG

Gesamtzahl der ankommenden Kunden

BE

konstante Bedienzeit

VW

virtuelle Wartezeit. Die virtuelle Wartezeit ist für jeden Zeitpunkt die Zeit, die

der Schalter noch zur Bedienung aller bestehenden  Forderungen benötigt.

WZ

Wartezeit eines angekommenen Kunden

WL

Länge der Warteschlange

rho

Verkehrsdichte des Warteschlangensystems (siehe "Warteschlangen I")

 

 

Anmerkungen:

1. Weitere Anregungen zum Einsatz von MuPAD in der Lehre finden Sie auf unserem WebPortal schule.mupad.de bzw. studium.mupad.de.

 

2. Mathematische Formeln in diesem Notebook stammen aus der Examensarbeit "Theorie und Simulation von Warteschlangen", die von der Autorin im Rahmen  der Ersten Staatsprüfung für das Lehramt an Gymnasien im Jahr 2006 am Institut für Mathematische Stochastik an der Georg-August Universität in Göttingen angefertigt wurde. Die programmierten Warteschlangensysteme wurden im Rahmen dieser Arbeit ebenfalls mathematisch untersucht. Der interessierte Leser sei darauf verwiesen. Entsprechende Teile der Arbeit können gerne auf Anfrage bei der Autorin angefordert werden.

___________________________________________________________________________

 

 

 

 

 

MuPAD Education Group: Kostenlose Materialen für MuPAD Pro:
www.sciface.com/education, schule.mupad.de, studium.mupad.de, mupad.zum.de.