Лабораторная работа №2. Исследование способов формирования случайной величины на основе генератора псевдослучайных последовательностей.
Требования к содержанию, оформлению и порядку выполнения
Работа должна быть выполнена полностью в соответствии с приведенной ниже программой работы. Результаты работы оформляются в виде отчета. Отчет оформляется на бланке установленного образца. Отчет может представляться к защите в электронном виде. Содержание отчета:
1. Схема генератора ПСП на регистрах сдвига.
2. Листинг программы (или файл в электронном виде) и результаты генерации ПСП в последовательном и параллельном кодах.
3. Анализ сгенерированной ПСП по трем критериям случайности.
4. Выводы по работе.
Разработанные программные модули представляются либо в электронном виде по почте, либо в распечатанном виде (листинг программы) прилагаются к отчету. Для защиты работы необходимо ответить на контрольные вопросы и пояснить полученные результаты в виде выводов.
Теоретическая часть
В теории вероятностей для анализа характеристик систем массового обслуживания широко применяются различные методы имитационного моделирования. Для моделирования поведения систем массового обслуживания необходимо иметь возможность задавать потоки случайных величин с заданными законами распределения. Входные потоки в моделях должны быть случайными и соответствовать требуемым функциям распределения. Для этого необходимо уметь формировать потоки случайных величин, что в практике моделирования на ЭВТ означает генерирование последовательности случайных чисел. Каждое сгенерированное число в модели потока соответствует какому-нибудь параметру, - длительности заявки на обслуживание, интервалу времени между моментами поступления соседних заявок и т.п. В настоящее время создано большое количество разнообразных программных продуктов для моделирования процессов в СМО, однако, следует знать, что задача формирования случайных величин с заданным законом распределения по-прежнему полностью не решена. Возникает вопрос: почему? Ответ состоит в том, что нельзя искусственно получить случайный поток с заданными вероятностными свойствами, так как все существующие методы получения случайных чисел используют рекуррентные формулы, реализующие детерминированные алгоритмы. То есть, на практике находят широкое применение способы получения потоков «случайных» величин, которые удовлетворяют определенным критериям на случайность, хотя на самом деле таковыми не являются.
В настоящее время наиболее широко применяются два подхода.
Первый подход основан на получении равномерно распределенных чисел в интервале от 0 до 1. Эту функцию выполняют так называемые датчики случайных чисел, встраиваемые во все существующие программные средства для моделирования систем. На основе таких датчиков, как будет показано далее, можно получить последовательность случайных величин с любым распределением вероятностей.
Второй подход основан на формировании псевдослучайной последовательности (ПСП) на основе цепочки регистров сдвига, охваченной цепями обратных связей. ПСП получили широкое распространение в системах телекоммуникаций и для решения других не менее важных задач: расширения спектра сигналов в системах с кодовым разделением абонентов, тестирования цифровых каналов и трактов на наличие ошибок, решение задачи аутентификации пользователей и др. Именно поэтому важно правильно понять суть их названия – псевдослучайные.
Рассмотрим подробнее метод формирования псевдослучайных последовательностей единиц и нулей на основе регистров сдвига (или сдвигающего регистра).
Поразрядным сдвигающим регистром называется устройство, состоящее из п последовательно соединенных двоичных элементов памяти, состояние которых передается (сдвигается) на последующие элементы под действием тактовых импульсов. Чтобы после п тактовых импульсов регистр не оказался «пустым», в схему может быть введен элемент обратной связи, осуществляющий логическую операцию над содержимым n-разрядного сдвигающего регистра с логической обратной связью. Полученный результат поступает в первый разряд.
Общая функциональная схема такого сдвигающего регистра с обратной связью приведена на рис.1. Например, если n = 3, функция обратной связи имеет вид (на элемент обратной связи, являющийся сумматором по модулю 2, поданы выходы с первого и третьего разрядов регистра) и начальное состояние регистра 001, то он последовательно принимает состояния 001, 100, 110, 111, 011, 101, 010, 001... В этом случае восьмое состояние совпадает с первым, т. е. периодичность работы схемы равна 7. С выхода снимается псевдослучайная последовательность 1001110, повторяющаяся с периодом, равным 7 элементам. При этом состояния регистра представляют собой не что иное, как последовательность чисел от 0 до 7 представленных в двоичном коде, то есть последовательность чисел: 1,4,6,7,3,5,2 и затем снова 1. Легко видеть, что период повторения определяется максимальным значением числа из полученной последовательности чисел. Таким образом, на выходе генератора ПСП формируется двоичная последовательность, а в параллельном коде с выходов регистров можно получать значения псевдослучайных чисел в двоичной системе счисления.
Рис. 1. Схема n-разрядного сдвигающего регистра с внутренней обратной связью
Последовательности, образуемые с помощью схемы, изображенной на рисунке 1, применимы для широкого класса задач, а некоторые из них обладают хорошими корреляционными свойствами. Фактически таким способом при соответствующем выборе n, f и начального состояния сдвигающего регистра может быть получена любаянаперед заданная двоичная последовательность.
Однако для многих целей к схеме, изображенной на рис.1, удобнее добавить «выходную логику» g(x1, x2,…, xn), как показано на рис. 2.
Основным преимуществом последней схемы является то, что «внутренняя логика» f (x1, x2,…, xn) и сдвигающий регистр могут быть использованы для формирования некоторой последовательности с требуемым периодом р, а внешняя, или выходная, логика может видоизменить ее в любую другую последовательность с тем же периодом.
Рис. 2. Схема n -разрядного сдвигающего регистра с внешней обратной связью
Наиболее распространены и хорошо изучены регистры с обратной связью, в которых f (x1, x2,…, xn) (см. рис. 1.) представляет собой функцию проверки на четность нескольких или всех nее аргументов. В вышеприведенном примере функция линейна, так как она является функцией проверки на четность x1 и x3. Функция равна 1, когда их сумма нечетна, и 0, когда четна.
Последовательность на выходе n-разрядного сдвигающего регистра с обратной связью в конечном счете всегда периодична, причем ее период р не превышает 2n. В случае линейного сдвигающего регистра наибольший период будет р = (2n – 1) и любая выходная последовательность, имеющая такой период, называется линейной последовательностью максимальной длины. Именно таковой является последовательность 1001110 с периодом p = 7 = 23 – 1.
Для каждого значения n существуют линейные последовательности максимальной длины. Они являются псевдослучайными в том смысле, что удовлетворяют следующим трем критериям случайности:
критерий 1 (свойство уравновешенности): в каждом периоде последовательности число «1» отличается от числа «0» не более чем на единицу;
критерий 2 (свойство серий (серией называется последовательность одинаковых цифр)): в течение периода последовательности половина серий единиц и нулей имеет длину 1, одна четверть - 2, одна восьмая - 3 и т. д. до тех пор, пока это продолжение имеет смысл;
критерий 3 (свойство корреляции): если последовательность почленно сравнивать с любым ее циклическим сдвигом в течение периода этой последовательности, то число совпадений отличается от числа несовпадений не больше чем на единицу.
При подбрасывании «идеальной монеты» критерий 1 означает, что орел или решка выпадают приблизительно одинаково часто. Критерий 2 соответствует утверждению, что после выпадения орла (или решки) n раз подряд вероятность того, что при следующем подбрасывании выпадет орел (или решка), равна половине. И, наконец, критерий 3 означает независимость испытаний: значение результатов предыдущих подбрасываний не дает никакой информации относительно результатов текущих подбрасываний.
Пример. На рис. 3 последовательность генерируется четырехразрядным сдвигающим регистром и логическая обратная связь представляет собой функцию проверки на четность содержимого третьего и четвертого разрядов: х 3и х 4. Учитывая обозначения предыдущего примера: .
Здесь функция проверки на четность обозначена и известна также под названиями «исключенное ИЛИ», «сумма по модулю 2», «функция полусумматора». (В матлабе это оператор xor!) Если начальное состояние сдвигающего регистра 1000 (считая на рис. 1.3 слева направо), то он последовательно примет следующие состояния: 1000, 1100, 0010, ф001, 1100, 0110, 1011, 0101, 1010, 1401, 1110, 1111, 0111, 0011, 0001, 1000. Выходная последовательность (последние цифры каждого состояния) имеет вид 000100110101111 и ее период равен 15.
Рис.3 Схема генератора линейной ПСП максимальной длины на основе 4-х разрядного регистра сдвига с обратной связью
Критерий 1 удовлетворяется, так как число единиц в последовательности равно 8, а число нулей равно 7 и «неуравновешенность» не превышает допустимой величины.
Критерий 2 удовлетворяется, так как среди восьми серий (необходимо, чтобы половину всех серий составляли серии единиц и половину — серии нулей, так как серии обоих видов должны чередоваться) половина имеет длину 1 (две серии единиц и две серии нулей), четверть — длину 2 (одна серия единиц и одна серия нулей), одна восьмая — длину 3 (одна серия из трех нулей).
Справедливость критерия 3 можно проверить следующим образом. Если сдвинуть псевдослучайную последовательность (пример для n= 4) на один элемент (такт) и затем произвести поразрядное сравнение полученной последовательности и исходной
000100110101111
001001101011110,
то можно увидеть, что в этих двух строках элементы совпадают между собой 7 раз и не совпадают 8 раз, т. е. критерий 3 удовлетворяется. Более того, если сдвигать последовательность на любое число элементов от одного до четырнадцати (так как период последовательности для n = 4 равен p = 24-1 = 15) включительно и затем производить поразрядное сравнение, то всегда получится семь совпадений и восемь несовпадений.
Подобный результат справедлив не только для данного примера, но и для любой линейной последовательности максимальной длины. Действительно, в результате проверки на четность такойпоследовательности и ее циклической перестановки образуется новаяциклическая перестановка исходной последовательности.
Следовательно, число несовпадений (единицы в результирующей последовательности) превышает число совпадений (нули в результирующей последовательности) на единицу, что равно разности между количеством единиц и нулей в исходной последовательности. Свойство, заключающееся в том, что при поразрядной проверке на четность некоторой последовательности со своей циклической перестановкой образуется новая циклическая перестановка той же последовательности, является отличительным признаком линейных последовательностей максимальной длины.
Таким образом, все линейные последовательности максимальной длины хотя и являются детерминированными, однако проходят некоторые из основных тестов на случайность. Действительно, почти полная уравновешенность единиц и нулей в последовательностях, характер распределения длин серий в них, их кажущаяся статистическая независимость служат серьезным основанием для того, чтобы рассматривать эти последовательности как истинно случайные. Другими словами, можно с одинаковой уверенностью утверждать, что последовательность 000100110101111 получена либо при подбрасывании монеты, либо с помощью сдвигающего регистра, изображенного на рис. 1.3.
Общая постановка задачи
Для выполнения лабораторной работы необходимо:
· Изучить теоретический материал и ответить на контрольные вопросы.
· Самостоятельно в любой доступной программной среде (Matlab, Any Logic, Excel и т.д.) разработать программные модули, реализующие рассмотренные выше генераторы ПСП в соответствии с исходными данными в приведенной ниже таблице.
· Сгенерировать ПСП с использованием разработанных модулей и проанализировать полученные результаты на критерии случайности, определенные в приведенном выше теоретическом материале и в требованиях к содержанию отчета.
· Оформить бланк отчета установленным выше образом.