Peter Lorenz English smaller fonts Simulation und Animation

3.8. Zufallszahlen

In vielen realen Systemen treten zufällige Ereignisse auf. Die Zeitabstände zwischen dem Eintreffen von Kunden in einer Bank, die Fahrzeit zwischen zwei Orten, die Reparaturdauer einer Maschine oder die Anzahl bestellter Waren auf einem Auftrag sind oft nicht vorhersehbar und können im Modell auch nicht festgeschrieben werden. Man benötigt Zufallszahlen, um zufällige Ereignisse der Realität im Modell korrekt abzubilden. Man benötigt Hilfsmittel, um Zufallsgrößen mit statistisch gewonnenen (empirischen) oder mit theoretischen Verteilungen zu modellieren.

Das erfolgt im allgemeinen in zwei Schritten:

GPSS/H enthält einen Zufallszahlengenerator für Werte, die im Intervall (0, 1) gleichverteilt sind, sowie eine Serie von Transformationsverfahren, die gleichverteilte Zufallszahlen in Zahlen anderer Verteilungen umwandeln.
Zufallszahlen nach empirischen, aus statistischen Erhebungen gewonnenen Verteilungen erhält man durch Transformation aus gleichverteilten Zufallszahlen mit Hilfe von Funktionen.

Wer mit gebräuchlichen Verfahren zur Zufallszahlenerzeugung experimentieren möchte, kann hier klicken, um JavaScript-basierte Experimente zur Zufallszahlenerzeugung und -transformation auszuführen.

3.8.1 Eigenschaften Top Line

Physikalische und algorithmische Zufallszahlengeneratoren

Zufallszahlenfolgen kann man mit Würfeln, Losen oder Münzen erzeugen. Solchen physikalischen Verfahren stehen algorithmische Verfahren gegenüber, die Zufallszahlen nach einer bestimmten Rechenvorschrift berechnen. Die physikalischen Verfahren sind nur auf den ersten Blick besser. Sie haben Nachteile: Sie bedürfen der Wartung und der Eichung, und man kann die erzeugten Zahlenfolgen nicht reproduzieren, was für viele Experimente wünschenswert ist. Die algorithmischen Verfahren, welche heute praktisch benutzt werden, haben diese Nachteile nicht. Sie liefern Zahlenfolgen mit guten statistischen Eigenschaften. Diese algorithmischen Verfahren sind durchweg rekursiv: Sie berechnen eine neue Zufallszahl aus vorher erzeugten Zahlen. Algorithmisch erzeugte Zufallszahlenfolgen werden auch Pseudozufallszahlenfolgen genannt. Wenn sie entsprechenden statistischen Tests unterzogen werden, lassen sich die von einem guten algorithmischen Zufallszahlengenerator erzeugten Zufallszahlen im Grunde nicht von Zufallszahlen unterscheiden, die von wirklichen oder physikalischen Zufallsquellen generiert wurden.

Endliche Zyklen, Anfangswerte und Teilströme

Alle praktisch bedeutenden Zufallszahlengenerenatoren arbeiten rekursiv. Diese Generatoren erzeugen

Die Anzahl der Zahlen innerhalb eines Zyklus heißt Zykluslänge des Generators. Am Beginn der Arbeit muß eine Zahl als Startpunkt gewählt werden. Diese erste Zahl einer Zufallszahlenfolge wird Anfangswert (engl. seed) genannt.

GPSS/H benutzt einen multiplikativen Kongruenzgenerator, der Zahlen zwischen 1 und 231-2 erzeugt. Die Erzeugungsformel lautet

zn = a * zn-1mod 2 31-1.

Dabei ist a = 742 938 285.

Dieser Generator wird immer benutzt,

Wenn ein Modell mehr als eine Zufallsquelle besitzt, gibt es drei alternative Möglichkeiten, dies zu handhaben:

  1. Alle Zufallszahlenfolgen können vom selben Generator erzeugt werden. Dies ist die einfachste Methode, aber auch die am wenigsten erwünschte. Die Gründe dafür werden später diskutiert.
  2. Jede Zufallsquelle kann ihren eigenen Zufallszahlengenerator benutzen. Diese Methode ist kaum ausführbar, weil gute Zufallszahlengeneratoren schwer zu finden sind.
  3. Einzelne Zufallsquellen können weiträumig voneinander getrennt werden, so dass durch die Verwendung desselben Zufallszahlengenerators keine überlappenden Folgen entstehen. Diese Methode wird in GPSS/H angewandt. GPSS/H nutzt einen einzigen Generator mit einem Zyklus von 2.137.383.636 (231 - 2). Ein Modell kann so viele Zufallszahlenfolgen oder -ströme verwenden, wie es benötigt. Standardmäßig ist der Anfangswert für den Strom Nummer n die 100000 *n-te Zufallszahl vom Beginn eines Generatorzyklus an. Der Beginn des Generatorzyklus wurde so gewählt, dass die Standard - Anfangswerte für die ersten 20 Folgen annehmbar gut arbeiten.

3.8.2 Statistische Unabhängigkeit Top Line

Zufallsquellen in einem Modell müssen statistisch unabhängig sein, damit Änderungen eines Teils des Modells keinen Einfluß auf das Verhalten anderer Teile haben.
Das kann man schon am einfachen Beispiel eines Frisiersalons erklären:
Die Ankunft von Kunden sowie die Dauer eines Haarschnittes sind Zufallsvariablen. Beim Experimentieren mit dem Modell wird man sicherlich die Ankunftsrate, die Bedienungsrate oder beides verändern und sehen, was geschieht. Würden beide Zufallsvariablen mit dem gleichen Pseudozufallszahlenstrom erzeugt werden, dann wären die beiden Zufallsquellen nicht unabhängig. Man könnte z.B. nicht die Auswirkungen eines veränderten Kundenstromes bei gleichbleibenden Bedienungszeiten untersuchen. Die Verwendung von zwei unabhängigen Pseudozufallszahlenströmen (z.B. FRN1 und FRN2) ist zu bevorzugen. Wird diese Methode angewandt, können entweder die Ankunfts - oder die Bedienungsrate unabhängig voneinander verändert werden, was das Experimentieren mit dem zu modellierenden System erleichtert.

Pseudozufallszahlenströme in GPSS/H

Die meisten Implementationen von GPSS gestatten maximal acht Pseudozufallszahlenströme, und standardmäßig benutzen alle Ströme den gleichen Ausgangswert. Wenn bei diesen Implementationen verschiedene Pseudozufallszahlenströme verwendet werden, ohne unterschiedliche Anfangswerte festzusetzen (über die RMULT-Anweisung oder den BRMULT-Block), dann sind alle Ströme identisch. Solche strenge statistische Abhängigkeit unterschiedlicher Ströme ist in hohem Maße unerwünscht.

GPSS/H beseitigt diesen Mangel durch

  1. Schaffen einer unbegrenzten Anzahl von Pseudozufallszahlenströmen und
  2. Verwendung von Standard-Anfangswerten, welche den n-ten und den (n+1)-ten Strom durch 100.000 Zufallszahlen voneinander trennen.

Offsets für Anfangswerte

In den meisten Simulationssoftwarepaketen werden die Anfangswerte für Zufallszahlenströme direkt als Wert angegeben. Der Nachteil dieser Methode ist, dass es keine Möglichkeit gibt herauszufinden, wo ein spezieller Anfangswert innerhalb des Zyklus des Zufallszahlengenerators liegt. In GPSS/H werden die Anfangswerte für Zufallszahlenströme als Offsets relativ zum Zyklusanfang angegeben. Die Steueranweisung RMULT und der Block BRMULT stehen für diesen Zweck zur Verfügung. Die Angabe eines RMULT-Wertes von 1.000.000 für einen gegebenen Zufallszahlenstrom bedeutet, dass die Erzeugung von Zufallszahlen für den Strom mit der 1000.000-sten Zufallszahl des Zyklus des Generators beginnt, der 2.137.383.636 Zufallszahlen umfaßt.

Die Angabe eines RMULT-Wertes von 1.000.000 bedeutet nicht, dass der Anfangswert 1.000.000 verwendet wird. Es gibt mindestens drei Fälle, in denen die GPSS/H - Methode besser ist:

  1. Angenommen, dass sich nach Durchführung eines strengen statistischen Tests herausstellt, dass die Folge von Zufallszahlen, die aufgrund einer bestimmten Wahl des Anfangswertes entstanden ist, unakzeptable Ergebnisse liefert. (Sogar bei einem sehr guten Generator werden einige Zufallszahlenfolgen unakzeptabel sein.) In einem solchen Fall wird man einen anderen Anfangswert nehmen wollen, der von dem ursprünglichen weit entfernt ist. In GPSS/H ist das einfach. Wenn ein RMULT-Wert von 1.500.000.000 z.B. zu schlechten Ergebnissen führt, könnte man es mit dem Wert 1.600.000.000 versuchen. Man würde sicherlich nicht 1.500.000.001 nehmen, da sich dieser Wert von dem mit dem schlechten Ergebnis nur durch eine Zufallszahl unterscheidet. Würden Anfangswerte direkt verwendet werden, wäre es nicht so einfach, die relative Position zwischen zwei gegebenen Anfangswerten zu bestimmen.
  2. Angenommen, dass sich nach Durchführung eines strengen statistischen Tests herausstellt, dass zwei Anfangswerte jeweils ausgezeichnete Ergebnisse liefern. Ohne die relativen Positionen dieser zwei Werte innerhalb des Generatorzyklus zu kennen, gäbe es keine Möglichkeit, den Überlappungsbereich der beiden Zufallszahlenfolgen herauszufinden, die durch die betreffenden Anfangswerte erzeugt wurden. Im schlimmsten Fall sind die Anfangswerte zwei aufeinanderfolgende Zufallszahlen.
  3. Die Verwendung von Offsets anstelle der Anfangswerte erleichtert die Konstruktion von Steueranweisungsschleifen, in denen RMULT-Werte auf der Grundlage von Schleifenindizes berechnet werden. Man kann z.B. eine solche Schleife konstruieren, um ein Modell 10 mal auszuführen, wobei das Modell 15 Zufallsquellen enthält und alle 150 Zufallszahlenfolgen sich nicht überlappen sollen.

Wie oben dargestellt, ist in GPSS/H standardmäßig jeder Zufallszahlenstrom vom Nachbarstrom durch 100.000 Zufallszahlen getrennt. Für die meisten Modellanwendungen wird die Verwendung von standardmäßigen Anfangswerten, die dieses Verhalten hervorrufen, ausreichend sein. Nutzer, die eine genauere Kontrolle über den Prozeß der Erzeugung von Zufallszahlen übernehmen müssen, sollten die RMULT-Steueranweisung und/oder den BRMULT-Block verwenden.


3.8.3 Anweisungen Top Line

Der GPSS/H-Zufallszahlengenerator wird von den beiden Anweisungen RMULT und BRMULT beeinflußt.

RMULT

ist eine Steueranweisung zur Eingabe von Startindizes für Zufallszahlenströme. Die Syntaxdarstellung lautet

RMULT [wert ],...

wert
ist einer von beliebig vielen Operanden. Hier darf jede ganze Zahl eingetragen werden. Der an i-ter Stelle stehende Wert verkörpert einen Startindex für den i-ten Zufallszahlenstrom.
Wenn man einen negativen Wert eingibt, werden sogenannte antithetische Werte zum Strom mit derselben positiven Zahl erzeugt. Antithetische Werte benutzt man in Simulationsexperimenten zur Reduzierung der Varianz.

BRMULT

ist ein Block zur Eingabe von Startindizes für Zufallszahlenströme. Die Syntaxdarstellung lautet

BRMULT [wert ],...

wert
ist einer von beliebig vielen Operanden. Hier darf jede ganze Zahl eingetragen werden. Der an i-ter Stelle stehende Wert verkörpert einen Startindex für den i-ten Zufallszahlenstrom.

Das folgende Programmbeispiel setzt diesen Startindex auf zwei dicht beieinanderliegende Werte. Wenn man die erzeugten Zufallszahlenströme oder -folgen vergleicht, sieht man die teilweise Überlappung.

   

Im folgenden Programmbeispiel werden antithetische Zufallszahlenströme erzeugt. Der Startindex wird auf einen positiven und danach auf dessen Negativwert eingestellt und man kann die erzeugten Folgen vergleichen. Wenn man die erzeugte Resultatdatei aufruft, sieht man, dass 1 - z der antithetische Wert der Zufallszahl z ist.

   

3.8.4 Standardattribute Top Line

Der GPSS/H-Zufallszahlengenerator besitzt die Standardattribute RNj, FRNj undRNXj.

RNj

ist ein Numerisches Standardattribut des Zufallszahlengenerators. Dabei identifiziert j den Zufallszahlenstrom.
Beim Aufruf wird die nächste Zahl des Stromes benutzt, um einen ganzzahligen Wert aus dem Intervall [0, 999] zu erzeugen. Die Endpunkte sind hier eingeschlossen.
Es gibt eine Ausnahme: Als Argument einer Funktion wird RNj in eine Gleitkommazahl aus (0.0, 1.0) umgewandelt.

FRNj

ist ein Numerisches Standardattribut des Zufallszahlengenerators. Dabei identifiziert j den Zufallszahlenstrom.
Beim Aufruf wird die nächste Zahl des Stromes benutzt, um einen Gleitkommawert aus dem Intervall (0.0, 1.0) zu erzeugen. Dabei sind die Endpunkte ausgeschlossen.

RNXj

ist ein Numerisches Standardattribut des Zufallszahlengenerators. Dabei identifiziert j den Zufallszahlenstrom. Es gibt die aktuelle Position innerhalb des Zyklus des Zufallszahlengenerators für den Zufallszahlenstrom j zurück. Dieser Wert kann für vielfältige Zwecke benutzt werden. Er kann z.B. in eine Datei geschrieben oder in einem folgenden Lauf wieder daraus gelesen werden. Oder man verwendet ihn in einer RMULT-Anweisung, um die Erzeugung von Zufallszahlen in einem zweiten Lauf an der Stelle fortzusetzen, an der sie im ersten Lauf abgebrochen wurde.

Das folgende Programmbeispiel demonstriert die Verwendung der drei oben eingeführten Numerischen Standardattribute.

   

3.8.5 Algorithmus für den GPSS/H-Zufallszahlengenerator Top Line

Der folgende Abschnitt ist dann von Interesse, wenn man den GPSS/H-Zufallszahlengenerator selbst programmieren möchte. Der GPSS/H-Nutzer braucht das nicht zu tun.

Fishman, G. S. and Moore III, L. S.: An Exhaustive Analysis of Multiplicative Congruential Random Number Generators with Modulus 231-1.
SIAM Journal of Scientific and Statistical Computing Vol 7, 1, 1986, pp 24-25

GPSS/H verwendet den von Lehmer vorgeschlagenen Algorithmus zur multiplikativen Erzeugung von Pseudozufallszahlen. Der im GPSS/H-Algorithmus verwendete Multiplikator wurde in einer erschöpfenden Studie der Lehmer-Multiplikatoren, die von George Fishman und Louis Moore durchgeführt wurde, für gut befunden.

Der Lehmer-Algorithmus ist wie folgt implementiert:

  1. Alle Zufallszahlen werden berechnet durch
    1. Erzeugung einer 31- Bit Rohzufallszahl und
    2. Umwandlung dieser Zahl in die aus dem Zusammenhang hervorgehende erforderliche Form.
    Alle Rohzufallszahlen bestehen aus 31 signifikanten Bits und einem Null-Vorzeichenbit. Der minimale Wert für eine Rohzufallszahl ist 1, der maximale Wert beträgt 2.137.383.636 (23l - 2).
  2. Die (i+1)-te 31-Bit-Zufallszahl wird aus der i-ten wie folgt berechnet:

    X(i+1) = (X(i) * 732.938.285) mod 2.137.383.637.

    Die Multiplikation in der obigen Rechnung liefert ein Produkt, das aus mehr als 31 Bits besteht.

    Marse, K.J., and Roberts, S.D. Implementing a portable FORTRAN Uniform (0, 1) Generator.
    SIMULATION, Vol 14, 4, Oct. 1983, pp 135-139

    Die verschiedenen Implementationen von GPSS/H benutzen mehrere Techniken, um dieses Problem zu lösen, einschließlich der Verwendung von Integerarithmetik mit erweiterter Genauigkeit und/oder einer Mixtur aus Integer - und Gleitkommaarithmetik. Der in GPSS/H verwendete Lehmer-Algorithmus kann in (Marse, Roberts 1983) nachgelesen werden. Dort wird eine maschinenunabhängige Technik zur Durchführung des Lehmer-Algorithmus vorgestellt.

  3. In GPSS/H gilt: X(0) = 266.301.881.
  4. Wenn antithetische Variablen verlangt werden, wird die 31-Bit Zufallszahl durch ihr duales Komplement ersetzt, d.h. alle 31 Bits werden invertiert. GPSS/H vergleicht hierzu den 31-Bit Wert mit einer Maske von 31 1-Bits durch exklusives oder (XOR).
  5. Die 31-Bit Integer-Zufallszahl wird durch eine Technik in eine Zufallszahl umgewandelt, die vom jeweiligen Zusammenhang abhängt. Die folgenden Umwandlungen werden je nach Zusammenhang ausgeführt:
    1. Ist ein Integerwert von 0 bis 999 erforderlich, wird der 31-Bit Wert um 10 Bits nach rechts verschoben (shift right) und mit 1000 multipliziert. Das daraus resultierende Produkt wird um 21 Bits nach rechts verschoben. Die Verschiebung um 10 Bits nach rechts entspricht einer Division durch 1023.
    2. Ist eine Zufallszahl vom Typ Gleitkomma erforderlich, wird der 31-Bit-Wert in einen Gleitkommawert doppelter Genauigkeit umgewandelt und durch
      2 147 483 648.0 (231) dividiert. Die unterschiedlichen Implementationen von GPSS/H verwenden eine Vielzahl von Tricks, um die tatsächliche Durchführung der Division mit doppelter Genauigkeit zu vermeiden, da eine solche Operation bei leistungsschwächeren CPU's sehr aufwendig ist. Aber in allen Fällen ist das Ergebnis das gleiche, als wenn tatsächlich eine Division ausgeführt worden wäre.
    3. Ist eine Zufallszahl der Form A+-B erforderlich, werden die folgenden Schritte ausgeführt:
      • Der Wert 1.073.741.823 (230-1) wird von dem 31-Bit Integerwert subtrahiert, was ein Ergebnis liefert, das im Bereich von
        - 1.073.741.822 ..1.073.741.823 liegt.
      • Das Ergebnis aus dem vorigen Schritt wird verdoppelt (zu sich selbst addiert), was ein Ergebnis liefert, das im Bereich
        2.147.483.644 ( - 231+4)...2.147.483.646 (231-2) liegt.
      • Das Ergebnis aus dem vorigen Schritt wird in einen Gleitkommawert doppelter Genauigkeit umgewandelt und durch 2.147.483.648 (231) dividiert, was ein Gleitkommaergebnis aus dem offenen Intervall
        (-1.0, 1.0) liefert.
      • A+B wird berechnet aus A+B* (Ergebnis aus dem vorigen Schritt).
      Zufallszahlen zur Erzeugung von Zwischenankunftszeiten der Form A+B für GENERATE- und ADVANCE-Blöcke werden immer von RN1 generiert.
    4. Der statistische Modus des TRANSFER-Blocks (Sprung mit Wahrscheinlichkeitsangabe) erfordert Integer-Zufallszahlen aus dem Bereich von 0 bis 999. Diese werden wie im Punkt 1 beschrieben erzeugt.
      Zufallszahlen für den statistischen Modus des TRANSFER-Blocks werden immer von RN1 generiert
    5. Der PICK-Modus des TRANSFER-Blocks (Verteilungssprung) führt gleichverteilte Zufallssprünge in einen Bereich von Blöcken aus. Die Nummer des Zielblockes wird wie folgt berechnet:
      • Es wird, wie im Punkt 2 beschrieben, eine Zufallszahl vom Typ Gleitkomma erzeugt
      • Die Größe des Bereiches von Blöcken ergibt sich aus der Nummer des letzten Blockes im Bereich minus der Nummer des ersten Blockes im Bereich plus 1. Ist das Ergebnis kleiner oder gleich Null, erfolgt ein Laufzeitfehler. (Die Nummer des ersten Blockes muß immer kleiner oder gleich der Nummer des letzten Blockes aus dem Bereich sein.)
      • Die Nummer des Zielblockes wird berechnet aus

        Nummer des ersten Blockes + (Bereichsgröße + 1) * Gleitkomma-Zufallszahl. Der Wert diese Ausdruckes wird durch Abschneiden in einen Integerwert umgewandelt.

      Zufallszahlen für TRANSFER PICK-Blöcke werden immer von RN1 generiert.

3.8.6 Transformation in theoretische Verteilungen Top Line

GPSS/H enthält Algorithmen zur Transformation von Zufallszahlen in fast 30 verschiedenen Verteilungen. Man findet sie in der Liste der Standardattribute. RV (Random Variate). Hier erfolgt eine Einführung am Beispiel der Exponential- und Normalverteilung. Hierzu werden die Numerischen Standardattribute (SNA) RVEXPO und RVNORM verwendet. Jedes von ihnen verlangt als erstes Argument die Angabe des Zufallszahlenstromes, von dem
(0, 1)-Zufallszahlen entnommen werden sollen. Zusätzliche SNA-Argumente spezifizieren die Parameter für die betreffende Verteilung. Alle verwendeten Algorithmen benutzen entweder eine (RVEXPO) oder zwei (RVNORM) (0, 1)-gleichverteilte Zufallszahlen und transformieren sie in eine Zufallszahl mit der entsprechenden Verteilung.

Exponentialverteilung

Zufallszahlen mit Exponentialverteilung werden durch das SNA RVEXPO erzeugt, das wie folgt aufgerufen wird:

RVEXPO(stream_number,mittelwert)

Normalverteilung

Zufallszahlen mit Normalverteilung werden durch das SNA RVNORM erzeugt, das wie folgt aufgerufen wird:

RVNORM(stream_number,mittelwert,standardabweichung)

Es ist die Angabe des Mittelwertes und der Standardabweichung erforderlich. Die Normalverteilung ist theoretisch nach beiden Seiten hin unbegrenzt, d.h. unendlich kleine und große Zufallszahlen können erzeugt werden. Der in GPSS/H verwendete Algorithmus erzeugt Zufallszahlen, die auf annähernd 44 Standardabweichungen oberhalb und unterhalb des Mittelwertes der Verteilung beschränkt sind. Die Maximal- und Minimalwerte werden jeweils mit einer Wahrscheinlichkeit von 1 zu 2.147.483.646 erzeugt.

Bei der Verwendung normalverteilter Zufallszahlen zur Verzögerung der Modellzeit ist Vorsicht geboten, da diese Zufallszahlen auch negativ sein können.

Wenn eine Normalverteilung mit einem Mittelwert von 10 und einer Standardabweichung von 1 erzeugt wird, kann der Minimalwert annähernd -34, d.h. 44 Standardabweichungen unterhalb des Mittelwertes 10 sein. Obwohl negative Werte nur mit geringer Wahrscheinlichkeit auftreten, muß der Nutzer diesen Fall berücksichtigen.

   

3.8.7 Transformation in empirische Verteilungen Top Line

Empirical Distribution

In der Praxis der Simulation kennt man oft empirische Verteilungen. Hier soll an einem Beispiel gezeigt werden, wie man gleichverteilte Zufallszahlen so transformiert, dass daraus Zufallszahlen mit einer gegebenen empirischen Verteilung werden.

Modelliert werden soll ein Besucherstrom für ein Kino. Die Besucher kommen gruppenweise an. Über die Anzahl der Personen in einer Gruppe liege eine Statistik vor, die zu der nebenstehenden Tabelle zusammengefaßt ist. Danach sind Einzelbesucher mit einem Anteil von 20% an der Gesamtzahl der Besuchergruppen vertreten und Besuchergruppen aus zwei Personen bilden mit 60 % den Hauptanteil.

Anzahl der Personen einer Besuchergruppe
Anzahl Beobachtete
Häufigkeit
Empirische
Verteilungsfunktion
120%0.2
260%0.8
310%0.9
410%1.0

Um einen Zufallszahlenstrom zu modellieren, der die Zahlen 1, 2, 3 und 4 mit den Wahrscheinlichkeiten aus nebenstehender Tabelle erzeugt werden, definiert man die Umkehrfunktion der Verteilungsfunktion. Man kann sich vorstellen, dass die gleichverteilten Zufallszahlen auf der Ordinatenachse eingezeichnet werden und dass man nach den dazugehörigen Argumenten auf der Abszissenachse sucht. Es ist evident, dass der Argumentwert 2, den man für jede Zufallszahl aus dem Intervall (0.2, 0.8) erhält, die größte Wahrscheinlichkeit besitzt.

Mit dem folgenden Programm wird eine Folge von Zufallszahlen erzeugt, welche diese empirische Verteilung besitzen. Wenn man das Programm startet und die Resultatdatei betrachtet, sieht man ebenfalls auf den ersten Blick die Dominanz des Wertes 2.

   

3.8.8 Zufallsauswahl des Startwertes Top Line

Zufallszahlenströme (RNj, FRNj) haben Default-Startwerte und jede einfache Wiederholung eines Simulationslaufes ergibt die gleichen Resultate. Man kann die Startwerte mittels RMULT und BRMULT ändern. In jedem Fall erhält man reproduzierbare Resultate. Wenn man tatsächlich unvorhersehbare, zufällige Resultate benötigt (z. B. für ein Spielprogramm) kann man den aktuellen Wert des SNA CURTIME benutzen. Das ist eine Zeichenkette im Format HH:MM:SS. Diese Zeichenkette muss in einen Integer-Wert transformiert werden.

Das folgende Programm benutzt das SNA CHARSTOI. Damit kann man Zeichenketten, die ganze Zahlen darstellen, in Integer-Werte umwandeln.

Kontrollfragen über Zufallszahlen

  1. Wie kann man Zufallszahlengeneratoren klassifizieren?
  2. Welche Vorteile und Nachteile haben physikalische Zufallszahlengeneratoren?
  3. Welche Struktur haben rekursiv erzeugte Zufallszahlenfolgen?
  4. Wie werden im GPSS/H unabhängige Zufallszahlenströme oder -folgen erzeugt?
  5. Beschreiben Sie Funktion und Format der RMULT-Anweisung!
  6. Welche Wertebereiche haben die Numerischen Standardattribute RNj und FRNj?
  7. Wie erzeugt man Zufallszahlen, die die ganzzahligen Werte 3, 4, . . . , 7 mit gleicher Wahrscheinlichkeit annehmen?
  8. Wie erzeugt man Zufallszahlen, die reelle Werte aus dem Intervall (- 3, 5) mit gleicher Wahrscheinlichkeit annehmen?
  9. Nennen Sie Beispiele für SNA zur Transformation gleichverteilter Zufallszahlen in andere Verteilungen!
  10. Skizzieren Sie ein Programm, das eine Zufallszahlentafel für (0,1)-normalverteilte Zahlen mit 8 Spalten und 10 Zeilen schreibt!

SAHome previous next up Englishsmaller fonts Top Line
Last Modified Fri 05-27-11 06:54 GMT Valid CSS!

Comments please to:pelosim@yahoo.com