Реферат: работа по дисциплине «Имитационное моделирование экономических процессов» - Refy.ru - Сайт рефератов, докладов, сочинений, дипломных и курсовых работ

работа по дисциплине «Имитационное моделирование экономических процессов»

Остальные рефераты » работа по дисциплине «Имитационное моделирование экономических процессов»

Федеральное агентство по образованию

Государственное образовательное учреждение высшего профессионального образования

Уфимский государственный авиационный технический университет

Кафедра автоматизированных систем управления


Курсовая работа по дисциплине

«Имитационное моделирование экономических процессов»


Вариант 5


Выполнил:

Студ. ФИРТ

Гр. ПИЭ-413

Дунаев Д.Н.

Проверил:

Алыпов Ю.Е.


Уфа 2008г.


Содержание

1.Введение 3

2.Постановка задачи 6

3.Блок схема алгоритма имитационной модели 8

4.Общий вид и описание программы 9

5.Листинг программного кода 11

5.1SMO.mat 11

5.2Dimon.mat 14

5.3dimonstat.mat 15

6.Заключение 17

7.Список используемой литературы 18


Введение

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

Имитационное моделирование — это метод исследования, при котором изучаемая система заменяется моделью с достаточной точностью описывающей реальную систему и с ней проводятся эксперименты с целью получения информации об этой системе. Экспериментирование с моделью называют имитацией (имитация — это постижение сути явления, не прибегая к экспериментам на реальном объекте).

Имитационное моделирование — это частный случай математического моделирования. Существует класс объектов, для которых по различным причинам не разработаны аналитические модели, либо не разработаны методы решения полученной модели. В этом случае математическая модель заменяется имитатором или имитационной моделью.

Имитационная модель — логико-математическое описание объекта, которое может быть использовано для экспериментирования на компьютере в целях проектирования, анализа и оценки функционирования объекта.

К имитационному моделированию прибегают, когда:

дорого или невозможно экспериментировать на реальном объекте;

невозможно построить аналитическую модель: в системе есть время, причинные связи, последствие, нелинейности, стохастические (случайные) переменные;

необходимо сымитировать поведение системы во времени.

Цель имитационного моделирования состоит в воспроизведении поведения исследуемой системы на основе результатов анализа наиболее существенных взаимосвязей между ее элементами или другими словами – разработке симулятора (английский термин – simulation modeling) исследуемой предметной области для проведения различных экспериментов. Имитационную модель можно рассматривать как множество правил (дифференциальных уравнений, карт состояний, автоматов, сетей и т.п.), которые определяют, в какое состояние система перейдёт в будущем из заданного текущего состояния. Имитация – это процесс «выполнения» модели, проводящий её через (дискретные или непрерывные) изменения состояния во времени.

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

Имитация, как метод решения нетривиальных задач, получила начальное развитие в связи с созданием ЭВМ в 1950х — 1960х годах.

Можно выделить две разновидности имитации:

Метод Монте-Карло (метод статистических испытаний);

Метод имитационного моделирования (статистическое моделирование).

Виды имитационного моделирования:

Агентное моделирование – относительно новое (1990е-2000е гг.) направление в имитационном моделировании, которое используется для исследования децентрализованных систем, динамика функционирования которых определяется не глобальными правилами и законами (как в других парадигмах моделирования), а наоборот. Когда эти глобальные правила и законы являются результатом индивидуальной активности членов группы. Цель агентных моделей – получить представление об этих глобальных правилах, общем поведении системы, исходя из предположений об индивидуальном, частном поведении ее отдельных активных объектов и взаимодействии этих объектов в системе. Агент – некая сущность, обладающая активностью, автономным поведением, может принимать решения в соответствии с некоторым набором правил, взаимодействовать с окружением, а также самостоятельно изменяться.

Дискретно-событийное моделирование – подход к моделированию предлагающий абстрагироваться от непрерывной природы событий и рассматривать только основные события моделируемой системы такие как: «ожидание», «обработка заказа», «движение с грузом», «разгрузка» и другие. Дискретно-событийное моделирование наиболее развито и имеет огромную сферу приложений – от логистики и систем массового обслуживания до транспортных и производственных систем. Этот вид моделирования наиболее подходит для моделирования производственных процессов. Основан Джеффри Гордоном в 1960х годах.

Системная динамика – парадигма моделирования, где для исследуемой системы строятся графические диаграммы причинных связей и глобальных влияний одних параметров на другие во времени, а затем созданная на основе этих диаграмм модель имитируется на компьютере. По сути, такой вид моделирования более всех других парадигм помогает понять суть происходящего выявления причинно-следственных связей между объектами и явлениями. С помощью системной динамики строят модели бизнес-процессов, развития города, модели производства, динамики популяции, экологии и развития эпидемии. Метод основан Форрестером в 1950 годах.


Области применения:

Бизнес процессы

Боевые действия

Динамика населения

ИТ-инфраструктура

Математическое моделирование исторических процессов

Логистика

Пешеходная динамика

Производство

Рынок и конкуренция

Сервисные центры

Цепочки поставок

Уличное движение

Управление проектами

Экономика здравоохранения

Экосистемы

Постановка задачи

Производственный объект находится под воздействием пуассоновского потока отказов с интенсивностью λ. Отказавший объект немедленно начинает ремонтироваться (полностью восстанавливаться). Распределение времени восстановления экспоненциальное с интенсивностью µ .

Требуется определить;

коэффициент использования (готовности) объекта;

среднее время восстановления объекта

Разумные значения λ и µ и единицы измерения времени выбрать самостоятельно.


Блок схема алгоритма имитационной модели


Общий вид и описание программы

Общий вид программы представлен ниже. (рис. 1)


Рисунок 1 Общий вид программы

Данная программа написана на М-языке системы MATLAB.

Для запуска программы необходимо в командном окне системы MATLAB ввести имя М-файла : smo. В результате должно появиться окно, представленное на рисунке 1. Для запуска имитационной модели необходимо заполнить 3 левых поля и нажать на кнопку начать, как это показано на рисунке 2.

Рисунок 2 Запуск имитационной модели

В результате вы должны получить график-ход работы модели (рис.3). Данная графическая иллюстрация включает в себя следующие обозначения:

0.5 - система находиться в режиме ожидания;

1 – система находиться в режиме обслуживания;

* - заявка, получившая отказ;

Рисунок 3 Графическая иллюстрация работы модели

Для того что бы получить статистический анализ данных, необходимо ввести количество прогонов системы и нажать на кнопку “Старт”. В результате мы получим график со значениями количества обслуженных заявок при каждом запуске системы, а также необходимые результаты (рис. 4).

Рисунок 4 Статистический анализ работы модели

Если количество прогонов системы в ходе статистического анализа велико, необходимо дождаться окончания процесса - появиться окно ожидания (рис. 5).

Рисунок 5 Окно ожидания окончания работы системы

Листинг программного кода

Программа состоит из 3х M-файлов:

Smo.m –отвечает за внешний вид программы;

Dimon.m – построение имитационной модели и отображения графика ее работы;

Dimonstat.m – сбор статистической информации и построение графика.

Ниже приведены листинги данных M- файлов.

SMO.mat

function smo

%---------- Описание глобальных переменных-------------

global hFig hAxes

global hEditn hEditl hEditm hEditstat

global hButStart hButStat

global hTxt1 hTxt2 hTxt3 hTxt4 hTxt5 hTxt6

%--------

hFig=figure('Position',[200 250 1000 400],'Resize','off',...

'name','Одноканальная система массового обслуживания',...

'Interruptible','off');

hAxes=axes('Parent',hFig,'Color',[1 1 1],...

'Units','pixels','Position',[30 40 960 230],...

'FontSize',10);

xlabel('Time');

%---------- Описание компонентов для ввода данных

hEditn=uicontrol (hFig,'Style','edit',...

'BackgroundColor',[1 1 1],...

'Position',[190 380 50 20]);

hEditl=uicontrol (hFig,'Style','edit',...

'BackgroundColor',[1 1 1],...

'Position',[190 350 50 20]);

hEditm=uicontrol (hFig,'Style','edit',...

'BackgroundColor',[1 1 1],...

'Position',[190 320 50 20]);

hEditstat=uicontrol (hFig,'Style','edit',...

'BackgroundColor',[1 1 1],...

'Position',[400 320 50 20]);

%---------- Описание компонентов для отображения текстовой информации

hTxt1=uicontrol (hFig,'Style','Text',...

'BackgroundColor',[0.8 0.8 0.8],...

'Position',[10 380 180 15],...

'HorizontalAlignment','left',...

'String','Количество заявок');

hTxt2=uicontrol (hFig,'Style','Text',...

'BackgroundColor',[0.8 0.8 0.8],...

'Position',[10 350 180 15],...

'HorizontalAlignment','left',...

'String','Интенсивность потока отказов: ');

hTxt3=uicontrol (hFig,'Style','Text',...

'BackgroundColor',[0.8 0.8 0.8],...

'Position',[10 320 180 15],...

'HorizontalAlignment','left',...

'String','Интенсивность восстановления:');

hTxt4=uicontrol (hFig,'Style','Text',...

'BackgroundColor',[0 0 0],...

'Position',[250 275 1 125]);

hTxt5=uicontrol (hFig,'Style','Text',...

'BackgroundColor',[0.8 0.8 0.8],...

'Position',[260 340 200 50],...

'HorizontalAlignment','Center',...

'String','Проведение последовательности экспериментов с целью выявления средних значенй:');

hTxt6=uicontrol (hFig,'Style','Text',...

'BackgroundColor',[0.8 0.8 0.8],...

'Position',[490 370 140 20],...

'HorizontalAlignment','left',...

'String','-заявки получившие отказ');

hTxt7=uicontrol (hFig,'Style','Text',...

'BackgroundColor',[0 0 0],...

'Position',[460 275 1 125]);

hTxt8=uicontrol (hFig,'Style','Text',...

'BackgroundColor',[0.8 0.8 0.8],...

'Position',[470 380 15 15],...

'HorizontalAlignment','left',...

'FontSize',20,'ForegroundColor',[1 0 0],...

'String','*');

hTxt9=uicontrol (hFig,'Style','Text',...

'BackgroundColor',[0.8 0.8 0.8],...

'Position',[470 360 100 15],...

'HorizontalAlignment','left',...

'String','1-Система занята');

hTxt10=uicontrol (hFig,'Style','Text',...

'BackgroundColor',[0.8 0.8 0.8],...

'Position',[470 325 150 35],...

'HorizontalAlignment','left',...

'String','0.5-Система находиться в режиме ожидания');

hTxt11=uicontrol (hFig,'Style','Text',...

'BackgroundColor',[0.8 0.8 0.8],...

'Position',[260 320 135 15],...

'HorizontalAlignment','left',...

'String','Число прогонов системы:');

hTxt7=uicontrol (hFig,'Style','Text',...

'BackgroundColor',[0 0 0],...

'Position',[650 275 1 125]);

%---------- Описание компонентов-кнопок

hButStart=uicontrol (hFig,'Style','pushbutton',...

'Position',[190 290 50 20],...

'String','Начать',...

'Callback','dimon');

hButStart=uicontrol (hFig,'Style','pushbutton',...

'Position',[400 290 50 20],...

'String','Старт',...

'Callback','dimonstat');


Dimon.mat

function dimon;

global hAxes hEditn hEditl hEditm n

global hTxt1 hTxt2 hTxt3 hTxt4

%-----------Получаем информацию с полей ввода данных-----------

strn=get(hEditn,'String');

strl=get(hEditl,'String');

strm=get(hEditm,'String');

%-----------Конвертируем строковые переменные в числовые-------

n=str2num(strn);

l=str2num(strl);

m=str2num(strm);

%----------- Имитационная модель одноканальной СМО-------------

T(1)=0;

otkaz=0;

prinat=0;

axes(hAxes);

cla;

xlabel('Time');

plot([0,0],[0.4,0.4]);

f=true;

for i=1:1:n

hold on;

z(i)=-1/l*log(rand);

s(i)=-1/m*log(rand);

if f

konec=T(i)+s(i);

line([T(i),T(i)],[0.5,1]);

line([T(i),konec],[1,1]);

line([konec,konec],[1,0.5]);

end

T(i+1)=T(i)+z(i);

if (T(i+1)<konec)

otkaz=otkaz+1;

plot(T(i+1),1.05,'r*');

f=false;

else

prinat=prinat+1;

line([konec,T(i+1)],[0.5,0.5]);

f=true;

end; end;

dimonstat.mat

function dimonstat;

global hFig hAxes hEditn hEditl hEditm hEditstat

global hTxt1 hTxt2 hTxt3 hTxt4 htxt12

%-----------Получаем информацию с полей ввода данных-----------

strn=get(hEditn,'String');

strl=get(hEditl,'String');

strm=get(hEditm,'String');

strstat=get(hEditstat,'String');

%-----------Конвертируем строковые переменные в числовые-------

n=str2num(strn);

l=str2num(strl);

m=str2num(strm);

stat=str2num(strstat);

%----------- Имитационная модель одноканальной СМО-------------

h=waitbar(0,'Please, wait until data proccesing...');

for k=1:1:stat

waitbar(k/stat,h);

T(1)=0;

otkaz=0;

prinat=0;

f=true;

for i=1:1:n

hold on;

z(i)=-1/l*log(rand);

s(i)=-1/m*log(rand);

if f

konec=T(i)+s(i);

end

T(i+1)=T(i)+z(i);

if (T(i+1)<konec)

otkaz=otkaz+1;

f=false;

else

prinat=prinat+1;

f=true;

end;

end;

udacha(k)=prinat;

neudacha(k)=otkaz;

end;

close(h);

axes(hAxes);

cla;

hTxt12=uicontrol (hFig,'Style','Text',...

'BackgroundColor',[0.8 0.8 0.8],...

'Position',[660 270 300 120],...

'HorizontalAlignment','left',...

'String',['В ходе проведения имитационного моделирования выявлено, что среднее число обсуженыых заявок =' num2str(sum(udacha)/k)...

', среднее число заявок, получивших отказ, =' num2str(sum(neudacha)/k)...

'. Коэффициент готовности ситемы равняется ' num2str(sum(udacha)/(sum(udacha)+sum(neudacha)))...

'. Среднее время осбуживание: ' num2str(sum(s)/n)]);

try

plot(udacha);

catch

errordlg('Пожалуйста, укажите число прогонов системы','ErrorMessage');

end

end


Заключение

Если не можете добиться результата,

имитируйте кипучую деятельность

и бешеную активность.

(Из законов Мэрфи: следствие Эндрю)


Имитационные моделирование на сегодняшний день является мощным средством для анализа в случае, когда невозможно, либо слишком дорого проведение опытов на реальном объекте. Также имитационное моделирование показывает свое преимущество над аналитическим решением задачи, в случае, когда присутствует фактор времени, сложные причинные связи, случайные переменные.

Имитационное моделирование позволяет имитировать поведение системы, во времени. При чём плюсом является то, что временем в модели можно управлять: замедлять в случае с быстропротекающими процессами и ускорять для моделирования систем с медленной изменчивостью.

Таким образом имитация является востребованным методом моделирования в различных областях деятельности.


Список используемой литературы

Кельтон В.Д., Лоу А.М. “Имитационное моделирование. Классика CS.” 3-е изд. - СПб.: Питер

Мартынов. Н.Н. “Введение в MATLAB 6.x” –Кудиц-Образ: Москва 2002

matlab.exponenta/