Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
vstup.docx
Скачиваний:
26
Добавлен:
13.03.2016
Размер:
1.28 Mб
Скачать

3. Моделювання систем за допомогою дискретних марківських ланцюгів.

Пусть имеется физическая система S с дискретными состояниями S1, S2, … Snи дискретным временем t1, t2, … , tk, … (шаги, этапы процесса, СП можно рассматривать как функцию аргумента (номера шага)). В общем случае СП состоит в том, что происходят переходы S1®S1®S2®S3®S4®S1®… в моменты t1, t2, t3….

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

Такая случайная последовательность событий называется марковской цепью. Будем описывать марковскую цепь (МЦ) с помощью вероятностей состояний. Пусть – вероятность того, что после k - шагов система находится в состоянии Si. Легко видеть, что "k. Поставим задачу: найти вероятности состояний системы для любого k.

Для любого шага (момента времени t1, t2, … , tk) существуют какие-то вероятности перехода системы из любого состояния в любое другое (некоторые из них равны нулю, если непосредственный переход за один шаг невозможен), а также вероятности задержки системы в одном состоянии. Будем их называть переходными вероятностями МЦ. Марковская цепь называется однородной, если переходные  вероятности не зависят от номера шага, в противном случае -  неоднородная МЦ. Рассмотримоднородную МЦ.

Пусть S= S1, S2, … Sn. Обозначим переходные вероятности через Pij. Пусть известна матрица

Пользуюсь введенными выше событиями , переходные вероятности можно написать как условные вероятности:. Сумма членов в каждой строке матрицы должна быть равна 1. Вместо матрицы переходных вероятностей часто используют размеченный граф состояний (обозначают на дугах ненулевые вероятности переходов, вероятности задержки не требуются, поскольку они легко вычисляются, например P11=1-(P12+P13)). Имея в распоряжении размеченный граф состояний (или матрицу переходных вероятностей) и зная начальное состояние системы, можно найти вероятности состояний p1(k),p2(k),…pn(k) "k.

Пусть начальное  состояние системы Sm, тогда

p1(0)=0  p2(0)=0… pm(0)=1… pn(0)=0.

Первый шаг:

p1(1)=Pm1, p2(1)=Pm2,…pm(1)=Pmm,… ,pn(1)=Pmn.

После второго шага по формуле полной вероятности получим:

p1(2)=p1(1)P11+p2(1)P21+…pn(1)Pn1,

pi(2)=p1(1)P1i+p2(1)P2i+…pn(1)Pni   или .

Для произвольного шага k получаем:

(i=1,2,..n).

 Для неоднородной МЦпереходные вероятности  зависят от номера шага. Обозначим переходные вероятности для шага k через.

Тогда формула для расчета вероятностей состояний приобретает вид:

.

Екзаменаційний білет № 5

1. Поняття асемблера, компілятора, транслятора, інтерпретатора.

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

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

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

Компилятор— это обслуживающая программа, выполняющая трансляцию на машинный язык программы, записанной на исходном языке программирования. Также как и ассемблер, компилятор обеспечивает преобразование программы с одного языка на другой (чаще всего, в язык конкретного компьютера). Вместе с тем, команды исходного языка значительно отличаются по организации и мощности от команд машинного языка. Существуют языки, в которых одна команда исходного языка транслируется в 7-10 машинных команд. Однако есть и такие языки, в которых каждой команде может соответствовать 100 и более машинных команд (например, Пролог). Кроме того, в исходных языках достаточно часто используется строгая типизация данных, осуществляемая через их предварительное описание. Программирование может опираться не на кодирование алгоритма, а на тщательное обдумывание структур данных или классов. Процесс трансляции с таких языков обычно называется компиляцией, а исходные языки обычно относятся к языкам программирования высокого уровня (или высокоуровневым языкам). Абстрагирование языка программирования от системы команд компьютера привело к независимому созданию самых разнообразных языков, ориентированных на решение конкретных задач. Появились языки для научных расчетов, экономических расчетов, доступа к базам данных и другие.

Интерпретатор- программа или устройство, осуществляющее пооператорную трансляцию и выполнение исходной программы. В отличие от компилятора, интерпретатор не порождает на выходе программу на машинном языке. Распознав команду исходного языка, он тут же выполняет ее. Как в компиляторах, так и в интерпретаторах используются одинаковые методы анализа исходного текста программы. Но интерпретатор позволяет начать обработку данных после написания даже одной команды. Это делает процесс разработки и отладки программ более гибким. Кроме того, отсутствие выходного машинного кода позволяет не «захламлять» внешние устройства дополнительными файлами, а сам интерпретатор можно достаточно легко адаптировать к любым машинным архитектурам, разработав его только один раз на широко распространенном языке программирования. Поэтому, интерпретируемые языки, типа Java Script, VB Script, получили широкое распространение. Недостатком интерпретаторов является низкая скорость выполнения программ. Обычно интерпретируемые программы выполняются в 50-100 раз медленнее программ, написанных в машинных кодах.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]