Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Моделирование работы конечного автомата

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

Пусть дан конечный автомат:

Z S            
             
             
             

Сигналы поступают в автомат в случайный момент времени и образуют простейший поток.

Δt – случайная величина по показательному закону,

λ = 2 (сигналов в единицу времени)

(среднее время между сигналами)

S      
p 0,2 0,5 0,3

Составим вот для этой таблицы – таблицу накоплений

 

 

S      
pN 0,2 0,7  

Датчик:

function n=diskrdat(pN)

r=rand;

[a,n]=min(pN<r); % массив сравнивается с r (pN<r)

 

Пример: r=0,5

pN<r = [1 0 0]

min(pN<0,5)=[0,2], где 0,2 – номер интервала куда попало случайное число.

Модель автомата(modelavt)

function modelavt;

global t Tmod lambda pN avt

init; % Инициализация исходных данных

 

while t < Tmod; % Цикл по времени до конца моделирования

[dT,S]=generat[pN,lambda]; % Генерируются pN

t=t+dT;

[Vhd,Avt]=avtwork(Avt,S);

end

pprint; % Вывод результатов

 

function init;

global t Tmod lambda pN avt

 

t=0; % Текущее модельное время

Tmod=1000; % Время окончания моделирования

lambda=1; % Интенсивность появления заявок

pN=[0.2 0.7 1]

 

Avt=struct(... % Структура автомата

'Z',1,... % Текущее состояние автомата, нач.сост.=1

'Tvh',0,... % Время входа в текущее состояние

'nZ',[1,0,0],... % Счетчики состояний

'tZ',[0,0,0],... % Счетчики продолжительности состояний

'mZ',0,... % Подсчет среднего состояния

'TabZ',[1,2,3;1,1,1; 1,1,2],... % Автоматная таблица состояний

'TabVs',[0,1,3; 3,6,4;1,0,0]); % Таблица выходных сигналов

 

function [dT,Sign]=generat[pN,lambda];

Sign=diskrdat(pN);

dT=pokdat(lambda);

 

function n=diskrdat(pN);

r=rand;

[a,n]=min(pN<r);

 

function Z=pokdat(lambda);

t=rand; % Случайное значение на отрезке [0,1]

while

t==1; t=rand;

end; % Пока значение равно 1, повторяем выбор

z=-(1/Lambda)*log(1-t);

 

function [Vhd,avt]=avtwork(avt,s);

global t

 

Zst=avt.Z; % Запоминаем текущее состояние автомата

Znov=avt.TabZ(Zst,s); % Находим по таблице новое состояние

Vhd =avt.TabVs(Zst,s); % Определяем выходной сигнал

if Zst ~= Znov % Если состояние изменилось

dT=t-avt.Tvh; % Время, которое провел автомат в старом состоянии

if dT > 0 % Если это время не нулевое

avt.nZ(Zst)=avt.nZ(Zst)+1; % Увеличиваем счетчик старого состояния

avt.tZ(Zst)=avt.tZ(Zst)+ dT; % Находим общее время для старого состояния

avt.mZ = avt.mZ + Zst*dT; % Подсчитываем среднее состояние автомата

end

avt.Tvh=t; % Запоминаем время входа в новое состояние

avt.Z=Znov; % Делаем текущим состоянием новое состояние

end

function pprint(avt);

global Tmod

 

Nz=sum(Avt.nZ); % Суммируем число всех наблюдаемых состояний

procZ=Avt.nZ/Nz*100 % Процент количества каждого состояния среди всех

sredT=Avt.tZ./Avt.nZ % Среднее время нахождения в каждом состоянии

verZ=Avt.tZ./Tmod % Вероятность каждого состояния

 


<== предыдущая лекция | следующая лекция ==>
Минимизация конечных автоматов | Моделирование работы системы массового обслуживания
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 333; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.