КАТЕГОРИИ: Архитектура-(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) |
Моделирование работы конечного автомата
Требуется составить программу, которая имитирует работу конечного автомата при переходе из одного состояния в другое при различных входных сигналах. При этом требуется просчитать общее время нахождения автомата в каждом состоянии, вероятность каждого состояния, количество каждого состояния в % соотношении. Найти среднее состояние автомата. Пусть дан конечный автомат:
Сигналы поступают в автомат в случайный момент времени и образуют простейший поток. Δt – случайная величина по показательному закону, λ = 2 (сигналов в единицу времени) (среднее время между сигналами)
Составим вот для этой таблицы – таблицу накоплений
Датчик: 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; Просмотров: 351; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |