Генераторы случайных чисел и потоков

Произвольные числа создаются из алгоритмов, которые используют начальные значения и другие параметры для производства последовательности произвольных чисел. Такой ряд произвольных чисел называется потоком произвольных чисел. При создании моделей с помощью произвольных чисел, важно проследить, из какого потока происходят произвольные числа. Иногда все произвольные числа для разных процессов могут поступать из одного потока, а в других случаях каждому процессу могут требоваться уникальные потоки.

Есть много различных генераторов чисел для создания произвольных чисел. Три метода в ArcGIS для создания произвольных значений (типы генераторов): функция Standard C Rand(), собранный алгоритм ACM 599 и Mersenne Twister mt19937. Вы можете воспроизвести результаты из модели, которая использует произвольные числа. Для обеспечения воспроизводимости результатов в моделях можно добавить начальные объекты в качестве параметра. Если вы установите один источник для двух разных запусков одной модели, которая использует произвольные точки, модель создаст одинаковые результаты.

Генератор случайных чисел, определяется либо глобально в параметрах среды, либо в каком-нибудь инструменте, который использует произвольные значения, например Вычислить поле, Создать произвольный растр или Создать произвольно расположенные точки. Генератор произвольных чисел запускает поток произвольных чисел на основе типа и исходного файла генератора. Эти числа определяются произвольно, значения находятся в диапазоне от 0 до 1. Числа создаются по необходимости.

Во многих случаях, например, когда значения используются для моделирования неопределенности исходных данных или моделирования параметров, не эффективно добавить ясные случайные значения в инструмент. Как правило, существует априорная информация о распределении неопределенности во входных данных или параметров в модели. Такие инструменты, как Создать произвольный растр, и Вычислить поле вытягивают номера от случайного потока и преобразуют их на основе распределения, определенного в инструменте. Например, при добавлении случайных значений к входной высотной поверхности с точностью плюс-минус 2 фута, если модель запускается много раз в анализе ошибок, будет больше добавлений значений в диапазоне от 0 до 1, чем от 1 до 2. При использовании случайных значений, могут быть установлены диапазон значений, используемое распределение (например, нормальное или Пуассоново) и параметры распределения (например, стандартное отклонение). Каждое значение не зависит от остальных.

Есть несколько распределений, допустимых для присвоения (или преобразования) значений в инструментах, которые используют распределения (например, Создать произвольный растр, и Вычислить поле). Распределения в целом дают разные результаты, и то, какое распределение выбрать, определяется целевым назначением. Выбранные распределения должны быть лучшим представлением моделируемого процесса.

Более подробно о допустимых распределениях и о том, как они в целом используются, см. в разделе Распределения для присвоения произвольных значений. См. Синтаксис распределения для произвольных значений для синтаксиса и параметров для каждого распределения.

Настройка случайного потока глобально

Тип и источник генератора случайных чисел установлены в разделе Случайные числа (Random Numbers) диалогового окна Параметры среды (Environment Settings). Все последующие инструменты, использующие произвольные значения, такие как ArcGIS.Rand() (в Вычислить поле), Создать произвольный растр и Создать произвольно расположенные точки, получают значения из случайного потока. Поскольку каждому инструменту требуется произвольное число, числа эти получаются из глобального произвольного потока.

Создание разных потоков случайных чисел для каждого процесса

Возможно, вы хотите, чтобы уникальные потоки для каждого процесса убеждались, что процесс независимо произвольный, не влияли на результаты или производили выходные данные. Вы можете создать поток локально, установив генератор случайных чисел и источник локально (например, нажав кнопку Параметры среды (Environments) инструмента или щелкнув правой кнопкой на инструменте в ModelBuilder и нажав Свойства (Properties)). Создается новый поток случайных чисел, и если этом инструменту нужно случайное число, он вытянет только из этого недавно созданного потока. Если модель повторяется, инструмент с присвоенным потоком случайных чисел продолжит вытягивать значения из локального потока при каждом повторении. Другие инструменты не будут вытягивать значения из потока.

Вы можете запустить любое количество локальных потоков в модели, по вашему желанию. А также у вас есть смесь некоторых инструментов, вытягивающих случайные значения из глобального потока, в то время как остальные вытягивают значения из собственного локального потока.

Создание случайных значений для произвольно размещенных точек

Присвоение произвольных значений произвольно расположенным точкам состоит из трех этапов. Во-первых, определенное количество точек размещается в инструменте Создать произвольно расположенные точки. Во-вторых, инструмент Добавить поле используется для создания нового поля в выходном векторном слое из инструмента Создать произвольно расположенные точки. В-третьих, инструмент Вычислить поле используется для присвоения случайных значений вновь созданному полю путем прямого использования функции ArcGIS.Rand() с распределением в качестве простого выражения, или путем использования функции ArcGIS.Rand() в сложном выражении.