Zufallszahlengeneratoren und -ströme

Zufallszahlen werden über Algorithmen generiert. Dabei wird eine Folge von Zufallszahlen anhand von Startwerten (Seed Values) und anderen Parametern erzeugt. Eine solche Reihe von Zufallszahlen wird als Zufallszahlenstrom bezeichnet. Beim Erstellen von Modellen mit Zufallszahlen muss unbedingt verfolgt werden, aus welchem Strom die Zufallszahlen stammen. In manchen Fällen können alle Zufallszahlen für die unterschiedlichen Prozesse aus demselben Strom stammen, während in anderen Fällen jeder Prozess einen eigenen Strom benötigt.

Zum Erstellen von Zufallszahlen stehen viele unterschiedliche Zahlengeneratoren zur Verfügung. In ArcGIS werden zum Generieren von Zufallswerten drei Methoden (die Generatortypen) verwendet: die Standard-C-Funktion "Rand()", der ACM-Sammelalgorithmus 599 und Mersenne Twister mt19937. Es kann sein, dass Sie die Ergebnisse von Modellen reproduzieren möchten, in denen Zufallszahlen verwendet werden. Um die Reproduzierbarkeit in Modellen sicherzustellen, kann ein Startwert als Parameter hinzugefügt werden. Wenn Sie denselben Seed-Wert für zwei verschiedene Ausführungen desselben Modells angeben, erzeugt das Modell dieselben Ergebnisse.

Der Zufallszahlengenerator wird entweder global in den Umgebungseinstellungen oder in einem beliebigen Werkzeug angegeben, das Zufallswerte verwendet, z. B. Feld berechnen, Zufälliges Raster erstellen oder Zufällige Punkte erstellen verwendet. Der Zufallszahlengenerator startet einen Strom von Zufallszahlen, der auf dem Generatortyp und dem Startwert basiert. Die Zahlen werden nach dem Zufallsprinzip bestimmt, und die Werte liegen zwischen 0 und 1. Die Zahlen werden nach Bedarf erstellt.

In vielen Fällen ist es nicht effektiv, einem Werkzeug reine Zufallswerte hinzuzufügen, z. B. wenn die Werte zum Modellieren der Unsicherheit in den Eingabedaten oder Modellparametern verwendet werden. In den meisten Fällen sind A-priori-Informationen zur Verteilung der Unsicherheit in den Eingabedaten oder Parametern im Modell bekannt. Werkzeuge wie Zufälliges Raster erstellen, undFeld berechnen rufen Zahlen aus dem Zufallszahlenstrom ab und transformieren diese anhand der im Werkzeug angegebenen Verteilung. Wenn Sie z. B. einer Eingabe-Höhenoberfläche mit einer Genauigkeit von plus/minus zwei Fuß Zufallswerte hinzufügen und das Modell in einer Fehleranalyse oftmals ausgeführt wird, sollten Werte zwischen 0 und 1 von mehr Ausprägungen als Werte zwischen 1 und 2 hinzugefügt werden. Wenn Sie Zufallswerte verwenden, können der Wertebereich, die zu verwendende Verteilung (z. B. Normal oder Poisson) und die Verteilungsparameter (z. B. die Standardabweichung) angegeben werden. Jeder Wert ist von den anderen Werten unabhängig.

Zum Zuweisen (oder Transformieren) der Werte in den Werkzeugen, die Verteilungen verwenden (z. B. Zufälliges Raster erstellen, und Feld berechnen), stehen Ihnen mehrere Verteilungen zur Verfügung. Die Verteilungen führen im Allgemeinen zu unterschiedlichen Ergebnissen, und die auszuwählende Verteilung wird durch den Endzweck bestimmt. Die ausgewählte Verteilung sollte die beste Repräsentation des modellierten Prozesses darstellen.

Eine Beschreibung der verfügbaren Verteilungen und ihrer Verwendung finden Sie unter Verteilungen zum Zuweisen von Zufallswerten. Die Syntax und Parameter für die jeweilige Verteilung finden Sie unter Die Verteilungssyntax für Zufallswerte.

Globales Festlegen des Zufallszahlenstroms

Der Typ und der Startwert des Zufallszahlengenerators werden im Dialogfeld "Umgebungseinstellungen" im Abschnitt mit den Optionen für Zufallszahlen festgelegt. Alle nachfolgenden Werkzeuge, in denen Zufallswerte verwendet werden – ArcGIS.Rand() (in Feld berechnen), Zufälliges Raster erstellen und Zufällige Punkte erstellen – rufen Werte aus dem Datenstrom ab. Da jedes Werkzeug eine Zufallzahl benötigt, ruft es den nächsten Wert aus dem globalen Zufallszahlenstrom ab.

Erstellen unterschiedlicher Zufallszahlenströme für jeden Prozess

Sie können für jeden Prozess einen eigenen Zahlenstrom verwenden, um sicherzustellen, dass der Prozess von den anderen Zufallszahlenströmen unabhängige Zufallszahlen verwendet, und um die Ergebnisse nicht zu verzerren oder die Ausgabe zu reproduzieren. Sie können einen Zahlenstrom lokal erstellen, indem Sie den Zufallszahlengenerator und den Startwert lokal festlegen (z. B. indem Sie in einem Werkzeug auf die Schaltfläche "Umgebungen" oder in ModelBuilder mit der rechten Maustaste auf ein Werkzeug und auf "Eigenschaften" klicken). Ein neuer Zufallszahlenstrom wird erstellt, und falls dieses Werkzeug einen Zufallswert benötigt, ruft es ihn aus diesem neu erstellten Strom ab. Bei der Iteration des Modells ruft das Werkzeug, dem der Zufallszahlenstrom zugewiesen ist, weiterhin bei jeder Iteration Werte aus dem lokalen Strom ab. Andere Werkzeuge rufen keine Werte aus dem Strom ab.

Sie können innerhalb eines Modells beliebig viele lokale Ströme starten. Außerdem können mehrere Werkzeuge Zufallswerte aus dem globalen Zahlenstrom abrufen, während andere Werkzeuge Werte aus dem eigenen lokalen Strom abrufen.

Erstellen von Zufallswerten für zufällig platzierte Punkte

Das Zuweisen von Zufallswerten zu nach dem Zufallsprinzip platzierten Punkten erfolgt in drei Schritten. Zuerst wird mit dem Werkzeug Zufällige Punkte erstellen eine festgelegte Anzahl von Punkten platziert. Im zweiten Schritt wird mit dem Werkzeug Feld hinzufügen in dem mit dem Werkzeug Zufällige Punkte erstellen erzeugten Ausgabe-Feature-Layer ein neues Feld erstellt. Im dritten Schritt werden dem neu erstellten Feld mit dem Werkzeug Feld berechnen Zufallswerte zugewiesen. Hierfür wird die Funktion "ArcGIS.Rand()" mit einer Verteilung als einfacher Ausdruck oder über die Funktion "ArcGIS.Rand()" in einem komplexen Ausdruck direkt verwendet.