- •Введение
- •Глава 1. Основные понятия теории моделирования
- •1.1. Классификация видов моделирования
- •1.2. Жизненный цикл компьютерной модели
- •1.3. Вычислительный эксперимент
- •1.4. Наиболее известные методологии и системы компьютерного моделирования
- •1.4.1. Универсальные системы моделирования
- •1.4.2.Системы моделирования бизнес-процессов
- •1.5. О моделировании вычислительных систем
- •Глава 2. Введение в сети Петри
- •2.1. Обыкновенные сети Петри
- •2.1.1. Формальное определение
- •2.1.2. Графы сетей Петри
- •2.1.3. Пространство состояний сети Петри
- •2.1.4. Основные свойства сетей Петри
- •2.1.5. Некоторые обобщения сетей Петри
- •Инварианты сетей Петри
- •2.2. Раскрашенные (цветные) сети Петри
- •2.2.1. Мультимножества
- •2 2.2. Формальное определение cpn
- •2.2.3. Функционирование cpn
- •2.2.4. Расширения cpn
- •2.2.5. Сравнение формализмов обыкновенных и раскрашенных сетей Петри
- •2.2.6. О моделирующих возможностях сетей Петри.
- •2.3. Моделирование дискретных систем
- •2.3.1. Моделирование вычислительных систем
- •1. Простейшая система массового обслуживания.
- •2.3.2. Моделирование программ
- •1. Последовательная модель программирования
- •2. Модель параллелизма данных
- •3. Моделирование некоторых структур параллельного программирования. Семафоры
- •4. Метод асинхронного программирования
- •3 Моделирование протоколов передачи данных
- •1. Описание работы протокола
- •3. Временной механизм работы cpn
- •4. Описание работы cpn
- •2.3.4. Об исследовании сетей Петри с помощью эвм
- •Глава 3. Моделирование вычислительных Процессов с помощью цепей Маркова
- •3.1. Определение цепи Маркова
- •3.3. Классификация состояний цепей Маркова
- •3.4. Оценка длительности пребывания процесса в множестве невозвратных состояний
- •3.5. Исследование динамики цепей Маркова при большом числе шагов
- •4.1. Задачи и упражнения по главе 2
- •4.2. Задачи и упражнения по главе 3
- •1. Запуск программы и построение графа сети Петри
- •2. Задание цветовых множеств, переменных и начальной маркировки
- •Библиографический список
- •Глава 1.Основные понятия теории моделирования 5
- •Глава 2 Введение в сети Петри 21
- •Глава 4. Задания для самостоятельной работы 148
- •Глава 5. Лабораторный практикум 162
3.4. Оценка длительности пребывания процесса в множестве невозвратных состояний
Рассмотрим поведение цепи Маркова при росте числа шагов k. Из анализа структуры матрицы Рк (3.10) следует, что процесс, стартовав из некоторого состояния Si принадлежащего невозвратному множеству Т, на каждом шаге с вероятностями, определенными матрицей R, переходит в эргодическое множество Ť. Через определенное число шагов процесс окажется в Ť с вероятностью, как угодно близкой к единице.
При моделировании реальных систем с помощью конечных цепей Маркова часто бывает необходимо оценивать показатели продолжительности работы системы или трудоемкости процессов. Для этой цели нужно уметь рассчитывать число шагов, в течение которых процесс не покидает множество Т («время жизни» процесса), а также «время жизни» отдельных состояний этого множества.
Обозначим пij общее число моментов времени (тактов работы системы), проведенных процессом в состоянии Sj при условии, что он стартовал из состояния Si (Si,Sj € T). Понятно, что nij - случайная величина, принимающая целочисленные значения 0,1,2,... с соответствующими вероятностями, которые мы будем обозначать pij(l),...,piJ(k),... . Таким образом Рij{к)= Рi{nij=k} - вероятность того, что система за все «время жизни» процесса находилась в состоянии Sj при старте из Si, k раз. При этом
∞
∑Рij(k)=1. Зная распределение вероятностей можно вычислить все необходимые статистические
k=0
характеристики процесса - математическое ожидание, дисперсию и другие. Однако вычисление таких распределений в общем случае - достаточно сложная задача, поэтому мы ограничимся в данном разделе рассмотрением трех более простых практически важных задач:
оценки вида функции распределения ij(k);
вычисления математического ожидания величин пij, т.е. M nij и средних значений трудоемкости процесса;
вычисления дисперсий пij, т.е. Dnij среднеквадратичных отклонений трудоемкости процесса.
1. Оценим вид функции распределения ij(k) случайных величин пij . Обратимся к матрице (3.11)
R(k) = ||rij(k)||, Si T, Sj Ť.
Элемент этой матрицы rij(к) представляет собой вероятность перехода в Sj Ť при старте из St T за k шагов. Разность ij(k) = rij(k)-rij(k-1) есть вероятность перехода в Sj Ť точно на k шаге при старте из Si T. Эта разность всегда неотрицательна в силу структуры матрицы Рk (3.10).
Задача нахождения вероятностей распределения Прощается, если рассматривать переходы не между отдельными состояниями, а между множествами Т и Ť . Граф цепи Маркова примет вид, показанный на рисунке 3.5.
Обозначим вероятность перехода между множествами T и Ť при старте из Sl T за один шаг
где rij - элемент матрицы R (3.9); qi =l-r, - вероятность того, что процесс останется в Т.
Для рассматриваемой системы матрица переходных вероятностей имеет вид
и для нее по формуле (3.11) нетрудно подсчитать вероятности перехода из T в Ť за k шагов и на k -м шаге.
Можно убедиться в том, что pj(k) = riqik-1 представляет собой функцию распределения случайной величины ni.
В самом деле, все i(k)0, кроме того, воспользовавшись формулой для суммы членов геометрической прогрессии, получим:
Полученное распределение носит название показательного. График этой функции имеет вид, показанный на рисунке 3.6.
Из графика видно, что наиболее вероятны малые значения пi ,а с ростом числа шагов вероятность i(k) монотонно убывает.
Математическое ожидание и дисперсия числа пребываний процесса в множестве Т определяется по известным формулам (промежуточные выкладки опущены):
Вернемся к случайным величинам пij. Их функции распределения представляют собой аналоги показательного распределения, однако вычисляются в общем случае достаточно сложно. Что касается матожиданий и дисперсий этих величин, то для их вычисления, как мы увидим в следующих разделах, не нужно знать функции распределения.
2. Переходя к вычислению матожидания величины nij, начнем с изучения свойств матрицы Qk, входящей в структуру Pk в формуле (3.10). Поскольку по определению все элементы матрицы Q рij≤1, и
S n
∑pij ≤ 1(в отличие от матрицы Р, для которой ∑pij = 1 Si,Sj Т, то при больших k эта матрица
j=1 j=1
стремится к нулевой, т.е. Qk —> ØS при k —> ∞ ). Здесь ØS - нулевая квадратная матрица 5-го порядка.
Для дальнейшего нам понадобится формула, оценивающая матрицу (I - Q)-1. Рассмотрим тождество
Следовательно, существует обратная матрица (I-Q)-1, которая играет большую роль при изучении марковских процессов с матрицей переходных вероятностей вида (3.9). Эту матрицу называют фундаментальной и обозначают
Обозначим, как и прежде, через nij общее число моментов времени, проводимых процессом в состоянии Sj при условии, что он начался из состояния Si. Эта функция определена только для невозвратного множества, т.е. Si , Sj T.
Можно показать, что матрица математических ожиданий чисел nij равна N, т.е.
Для того, чтобы в этом убедиться, введем вспомогательную переменную ukij, которая принимает единичное значение, если процесс, стартовав при t = t0 из S=Si оказывается при t = tk в S = Sj, т.е.
1 , если S(tk)=SJ | S(t0)=Si ,
uikj =
0 в противном случае.
Вероятность того, что uikj = 1, обозначим рi(k)j .
∞
Легко видеть, что nij =∑ uikj .
k=0
Оценим теперь матожидание матрицы, образованной элементами пij:
Здесь рi(k)j - элемент Рk, Si , S j T.
Таким образом, среднее число шагов, которое проводит процесс в невозвратном состоянии, S j, начавшись в Si , всегда конечно и определяется i-й строкой матрицы (I - Q)-1.
4. Рассмотрим другой вывод формулы (3.14), который понадобится в дальнейшем.
Величина пij на каждом временном шаге k может быть определена соотношением
Первая сумма в написанном выражении относится к случаю, когда состояния Si, и Sj совпадают, кроме того, процесс на следующем шаге уходит в эргодическое множество Ť. Вторая сумма представляет собой вклад в величину пij за счет перехода в j-е состояние из i-го через промежуточные l-e состояния, а слагаемое δij - добавление 1, если Si = Sj .
Раскроем скобки во втором слагаемом и учтем, что
Тогда
выражение для пij(k+1)
примет
вид
Применив к этой формуле операцию математической ожидания и рассматривая предельный случай (k —>∞ и nkj(k) —> nkj), получим:
Перейдем к
матрицам:
5. Напомним, что i-я строка матрицы N определяет среднее число тактов пребывания марковского процесса в различных состояниях невозвратного множества при старте из Si. Поэтому если нас интересует только одно конкретное начальное состояние, то вычисление всей матрицы N дает избыточную информацию. В этом случае вычисления можно упростить.
Формулу N = (I-Q)-1 можно переписать иначе:
О тсюда, если представляет интерес только начальное состояние Si T , достаточно рассмотреть i-ю строку уравнения (3.16) при этом величины nij определятся системой уравнений:
6. Рассмотрим теперь случай, когда система может стартовать из любого состояния St T с заданной вероятностью, т.е. вектор начальных состояний имеет вид
В этом случае величина N1. - среднее число тактов пребывания процесса в состоянии Sl T - определяется взвешенной суммой элементов j-го столбца матрицы N:
Пример. Вернемся к рассмотренному ранее примеру. В нашей системе имеется одно поглощающее состояние, которое соответствует ожиданию сигнала оператора с клавиатуры,
остальные состояния - эргодические. Представим матрицу в виде
Вычислим
В ыпишем матрицу вероятностей переходов для множества Т невозвратных состояний
Здесь det{l -Q)=l-p1~p2- p3 = р4.
Матрица N показывает среднее число пребываний процесса в каждом из состояний S0,Sl:S?,S3. Если процесс начинается с So, то, как видно по первой строке матрицы N,
1
в состоянии So процесс был в среднем — раз;
Р4
Р1
в состоянии S, процесс был в среднем —- раз;
Р4
Р2
в состоянии S2 процесс был в среднем —— раз;
Р4
Р3
в состоянии S3 процесс был в среднем —— раз.
Р4
Например,
пусть р1 =0.8, р2 = 0.05, p3 =0.1,p4 =0.05.
Тогда в состоянии S0 процесс был в среднем п11 = 20 раз;
в состоянии S1 процесс был в среднем п12 = 16 раз;
в состоянии S2 процесс был в среднем п13 = 1 раз;
в состоянии S3 процесс был в среднем п14 - 2 раза.
Нетрудно проверить, что п12 +п13 +п14 = 19, плюс система 1 раз перешла в состояние S4, таким образом п11 = 19 +1 = 20.
7. Зная среднее число пребываний процесса в невозвратном состоянии и трудоемкость каждого этапа, можно вычислить среднюю трудоемкость алгоритма в целом.
Если C1,...,Cs - средние трудоемкости этапов, то при старте процесса из состояния S1 общая средняя трудоемкость вычислительного процесса равна
Пусть C1 = 0.5с - среднее время работы процессора;
C2= 0.75с - среднее время работы НЖМД;
С3 = 2.5с - среднее время работы НГМД;
С4=30с - среднее время работы принтера.
Тогда по формуле (1.19) общая средняя трудоемкость (продолжительность) одного цикла работы ВС при старте из состояния So составит
С1о =0.5 -20 + 0.75 -16 + 2.5 -1 + 30- 2- 84.5с.
8. Оценим теперь дисперсию числа пребываний процесса в множестве невозвратных состояний М nij .
Этот показатель характеризует степень разброса величины пij относительно среднего.
В соответствии с определением дисперсии случайной величины nij имеем:
Второе слагаемое в (3.20) - это матрица, образованная из квадратов элементов матрицы N. Обозначим ее
Вычислим теперь первое слагаемое в (3.20). Оно представляет собой матрицу, составленную из матожиданий случайной величины пij2. Для вычисления М\п12\ воспользуемся
приемом, который был применен в п. 3 настоящего параграфа, для вычисления M[njJ j.
Рассматривая предельный случай (к —>∞), имеем
Здесь первое слагаемое определяет вклад в величину п12. начального состояния, когда процесс, начавшись в Si Т , сразу же перешел в Sk Ť . Второе слагаемое определяет вклад в величину nij за счет перехода в Sj из Si через промежуточное SkT
Добавка δkj. в круглой скобке относится к случаю, когда процесс стартовал из Sj T.
Раскроем скобки во втором слагаемом (3.22) и, проделав элементарные преобразования, получим:
В последнем преобразовании использована следующая цепочка тождеств:
где (QN)dg - матрица, полученная обнулением всех элементов исходной матрицы вне главной диагонали (благодаря множителю δij в последнем слагаемом (3.23)). Далее проделаем некоторые преобразования над матрицами. Перенося неизвестную матрицу ||M[п2kj|| в левую часть равенства, имеем:
т.к. Idg=I.
Возвращаясь к (3.20) с учетом . (3.21), получим окончательно:
Пример. Вернемся к нашему примеру и оценив дисперсии числа шагов вычислительного процесса. Как было получено ранее,
В ряде случаев исследователя интересует не дисперсия, а среднеквадратичное отклонение числа пребываний процесса от среднего, которое вычисляется по известной формуле
или в матричной форме
Пример. Для тех же численных значений вероятностей что рассматривались ранее
Располагая матрицей а, можно вычислить среднеквадратичное отклонение трудоемкости вычислительного процесса от среднего:
Для рассматриваемого примера