Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
samples / Zaochniki / МоделированиеСистем.doc
Скачиваний:
27
Добавлен:
25.03.2015
Размер:
247.3 Кб
Скачать
  1. Способы генерации псевдослучайных чисел.

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

Случайные воздействия, заменяющие отброшенные при построении модели элементы описания системы, могут быть получены следующим образом: 1) вводиться в модель в виде таблиц экспериментальных результатов, полученных в процессе натурных испытаний замененных элементов;

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

При реализации первого способа приходится сталкиваться лишь с программными трудностями, связанными с организацией последовательного ввода в оперативную память компьютера больших массивов информации. Характеристики внешних воздействий, получаемых первым способом, трудно изменить в ходе моделирования. Естественным способом получения случайных воздействий является организация выборки из некоторого стохастического процесса. Соответствующие устройства носят название физических датчиков случайных чисел. Однако широкое использование таких датчиков сопряжено с рядом трудностей: невозможность повторения некоторой наблюдавшейся последовательности случайных чисел, а также схемную нестабильность, приводящую к необходимости контроля работы датчика при очередном его использовании.

Второй способ более гибок: статистические характеристики программно–имитируемых воздействий легко изменить в соответствии с изменением параметров моделируемой системы. Далее будет рассматриваться только программный способ имитации, реализация которого связана с решением ряда методологических проблем. Вопрос: как может быть случайной последовательность, выработанная по детерминированному алгоритму, когда каждый очередной член последовательности однозначно определяется своими предшественниками и параметрами датчика? Ответ: достаточно, чтобы эта последовательность выглядела, как случайная, т.е. обладала свойствами случайной последовательности. Соответствующие программные методы получения таких последовательностей называются датчиками (генераторами) псевдослучайных чисел. Далее при изложении под случайными числами будем понимать именно псевдослучайные числа.

Рассмотрим методы получения последовательности случайных действительных чисел (u0, u1,..., un,...), равномерно распределённых на [0;1), которые будем называть базовыми случайными числами. Так как в компьютере действительное число всегда представляется с ограниченной точностью, то фактически будем генерировать целые числа xn в интервале от 0 до некоторого m–1. Тогда дробь un=xn/m попадёт в интервал [0, 1).

Достаточные для многих практических задач генераторы случайных чисел представляют собой частные случаи следующей схемы. Выберем четыре числа:

  • x0 – начальное значение (x0  0);

  • a – множитель (a > 0);

  • c – приращение (c0);

  • m – модуль (m>a, m>c, m>x0).

Тогда искомая последовательность случайных чисел <Xn> получается из соотношения:

xn+1=(axn+c)mod m, n0. (1)

Она называется линейной конгруэнтной последовательностью. Для обозначения линейных конгруэнтных датчиков с c=0 и c≠0 применяются соответственно термины мультипликативный и смешанный метод.

Любая линейная конгруэнтная последовательность всегда зацикливается, т.е. числа образуют цикл, который повторяется бесконечное число раз. Это свойство присуще всем последовательностям, имеющим общий вид xn+1=f(xn). Повторяющийся цикл называется периодом.

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

xn=(аxn-12+bxn-1+c)mod m. (2)

Чтобы получить датчик с периодом, большим m, можно для генерации очередного члена последовательности использовать несколько предыдущих ее членов. Простейшим и чрезвычайно эффективным по скорости способом является аддитивный датчик, основанный на преобразовании вида:

xn=(xn-1+xn-k)mod m. (3)

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

  1. Способы получения случайных величин для различных распределений.

Соседние файлы в папке Zaochniki