Имитационное моделирование экономических процессов. 3
Федеральное агентство по образованию
Государственное образовательное учреждение высшего профессионального образца
Уфимский государственный авиационный технический университет
Кафедра автоматизированных систем управления
Моделирование работы автозаправочной станции (случай 2)
Пояснительная записка к курсовой работе по дисциплине «Имитационное моделирование экономических процессов»
Группа ПИЭ-414
Выполнила ____________ ___________ ____________
Принял ____________ ___________ Алыпов Ю.Е.
(подпись) (дата) (И.О.Фамилия)
Уфа-2008
Содержание
1. Теоретическая часть.........................
1.1. Понятие моделирования.................
1.2. Элементы теории массового обслуживания..................
1.3. Имитационное моделирование систем массового обслуживания..................
2. Постановка задачи........................
3. Имитационная модель........................
4. Реализация имитационной модели (среда Borland Delphi)................15-20
4.1 Описание переменных....................
4.2 Листинг программы.....................
5. Краткое руководство пользователя..................
6. Список использованной литературы....................
1. Теоретическая часть
1.1. Понятие моделирования
Модель – это любой образ, аналог, мысленный или установленный, изображение, описание, схема, чертеж, и т.п. какого-либо объекта, процесса или явления, который в процессе познания (изучения) замещает оригинал, сохраняя некоторые важные для данного исследования типичные свойства.
Моделирование - это исследование какого-либо объекта или системы объектов путем построения и изучения их моделей. А также – это использование моделей для определения или уточнения характеристик и рационализации способов построения вновь конструируемых объектов.
Модель является средством для изучения сложных систем.
В общем случае сложная система представляется как многоуровневая конструкция из взаимодействующих элементов, объединяемых в подсистемы различных уровней. К сложным системам, в т.ч., относятся информационные системы. Проектирование таких сложных систем осуществляется в два этапа.
1). Внешнее проектирование.
На этом этапе проводят выбор структуры системы, основных ее элементов, организации взаимодействия между элементами, учет воздействия внешней среды, оценка показателей эффективности системы.
2). Внутреннее проектирование – проектирование отдельных элементов системы.
Типичным методом исследования сложных систем на первом этапе является моделирование их на ЭВМ.
В результате моделирования получаются зависимости, характеризующие влияние структуры и параметров системы на ее эффективность, надежность и другие свойства. Эти зависимости используются для получения оптимальной структуры и параметров системы.
Модель, сформулированная на языке математики с использованием математических методов называется математической моделью.
Имитационное моделирование – воспроизведение на компьютере (имитация) процесса функционирования исследуемой системы. Для него не требуется приведение математической модели к виду, разрешимому относительно искомых величин.
Для имитационного моделирования характерно воспроизведение явлений, описываемых математической моделью, с сохранением их логической структуры, последовательности чередования во времени. Для оценки искомых величин может быть использована любая подходящая информация, циркулирующая в модели, если только она доступна для регистрации и последующей обработке.
Искомые величины при исследовании процессов методом имитационного моделирования обычно определяют как средние значения по данным большого числа реализаций процесса. Если число реализаций N, используемых для оценки искомых величин, достаточно велико, то в силу закона больших чисел получаемые оценки приобретают статистическую устойчивость и с достаточной для практики точностью могут быть приняты в качестве приближенных значений искомых величин.
1.2. Элементы теории массового обслуживания
За последние десятилетия в самых разных областях народного хозяйства возникла необходимость решения вероятностных задач, связанных с работой систем массового обслуживания (СМО). Примерами таких систем служат телефонные станции, ремонтные мастерские, торговые предприятия, билетные кассы и т.д. Работа любой системы массового обслуживания состоит в обслуживании поступающего в нее потока требований (вызовы абонентов, приход покупателей в магазин, требования на выполнение работы в мастерской и т. д.).
Математическая дисциплина, изучающая модели реальных систем массового обслуживания, получила название теории массового обслуживания.
Задача теории массового обслуживания - установить зависимость результирующих показателей работы СМО (вероятности того, что требование будет обслужено; математического ожидания числа обслуженных требований и т. д.) от входных показателей (количество приборов в системе, параметров входящего потока требований и т. д.). Установить такие зависимости в формульном виде можно только для простых систем массового обслуживания.
Изучение же реальных систем проводится путем имитации, или моделирования их работы на ЭВМ с привлечением метода статистических испытаний.
Система массового обслуживания считается заданной, если определены:
1) входящий поток требований, или, иначе говоря, закон распределения, характеризующий моменты времени поступления требований в систему.
Первопричину требований называют источником. В дальнейшем условимся считать, что источник располагает неограниченным числом требований и что требования однородны, т. е. различаются только моментами появления в системе;
2) система обслуживания состоит из накопителя и узла обслуживания. Последний представляет собой одно или несколько обслуживающих устройств, которые в дальнейшем будем называть приборами. Каждое требование должно поступить на один из приборов, чтобы пройти обслуживание.
Может оказаться, что требованиям придется ожидать, пока приборы освободятся. В этом случае требования находятся в накопителе, образуя одну или несколько очередей. Положим, что переход требования из накопителя в узел обслуживания происходит мгновенно;
3) время обслуживания требования каждым прибором, которое является случайной величиной и характеризуется некоторым законом распределения;
4) дисциплина ожидания, т. е. совокупность правил, регламентирующих количество требований, находящихся в один и тот же момент времени в системе. Система, в которой поступившее требование получает отказ, когда все приборы заняты, называется системой без ожидания.
Если требование, заставшее все приборы занятыми, становится в очередь и ожидает до тех пор, пока освободиться один из приборов, то такая система называется чистой системой с ожиданием.
Система, в которой требование, заставшее все приборы занятыми, становится в очередь только в том случае, когда число требований, находящихся в системе, не превышает определенного уровня (в противном случае происходит потеря требования), называется смешанной системой обслуживания;
5) дисциплина обслуживания, т. е. совокупность правил, в соответствии с которыми требование выбирается из очереди для обслуживания. Наиболее часто на практике используются следующие правила:
- заявки принимаются к обслуживанию в порядке очереди;
- заявки принимаются к обслуживанию по минимальному времени
получения отказа;
- заявки принимаются к обслуживанию в случайном порядке в соответствии с заданными вероятностями;
6) дисциплина очереди, т.е. совокупность правил, в соответствии с которыми требование отдает предпочтение той или иной очереди (если их несколько) и располагается в выбранной очереди. Например, поступившее требование может занять место в самой короткой очереди; в этой очереди оно может расположиться последним (такая очередь называется упорядоченной), а может пойти на обслуживание вне очереди. Возможны и другие варианты.
Введем также следующие характеристики потока событий:
регулярность; поток называется регулярным, если события следуют одно за другим через равные промежутки времени;
стационарность; поток называется стационарным, если его вероятностные характеристики не зависят от времени
отсутствие последействия; поток называется потоком без последействия, если для любых не пересекающихся отрезков времени число событий, попадающих на один участок не зависит от числа событий, попадающих на другой
ординарность; если события в потоке появляются поодиночке, а не группами, то поток называется ординарным.
1.3.Имитационное моделирование систем массового обслуживания
Сущность метода имитационного моделирования применительно к задачам массового обслуживания состоит в следующем. Строятся алгоритмы, при помощи которых можно вырабатывать случайные реализации заданных потоков однородных событий, а также моделировать процессы функционирования обслуживающих систем. Эти алгоритмы используются для многократного воспроизведения реализации случайного процесса обслуживания при фиксированных условиях задачи. Получаемая при этом информация о состоянии процесса подвергается статистической обработке для оценки величин, являющихся показателями качества обслуживания.
При исследовании сложных систем методом имитационного моделирования существенное внимание уделяется учету случайных факторов.
В качестве математических схем, используемых для формализации действия этих факторов, используются случайные события, случайные величины и случайные процессы (функции). Формирование на ЭВМ реализаций случайных объектов любой природы сводится к выработке и преобразованию случайных чисел. Рассмотрим способ получения возможных значений случайных величин с заданным законом распределения. Для формирования возможных значений случайных величин с заданным законом распределения исходным материалом служат случайные величины, имеющие равномерное распределение в интервале (0, 1). Другими словами, возможные значения xi случайной величины ξ, имеющей равномерное распределение в интервале (0,1), могут быть преобразованы в возможные значения yi случайной величины η, закон распределения которой задан. Способ преобразования состоит в том, что из равномерно распределенной совокупности отбираются случайные числа, удовлетворяющие некоторому условию таким образом, чтобы отобранные числа подчинялись заданному закону распределения.
Предположим, что необходимо получить последовательность случайных чисел yi, имеющих функцию плотности fη(y). Если область определения функции fη(y) не ограничена с одной или обеих сторон, необходимо перейти к соответствующему усеченному распределению. Пусть область возможных значений для усеченного распределения равна (a, b).
От случайной величины η, соответствующей функции плотности fη(y), перейдем к
Случайная величина ξ будет иметь область возможных значений (0,1) и функцию плотности fξ(z), задаваемую выражением
Пусть максимальное значение fξ(z) равно fm. Зададим равномерные распределения в интервалах (0, 1) случайных чисел x2i-1 и x2i. Процедура получения последовательности yi случайных чисел, имеющих функцию плотности fη(y), сводится к следующему:
1) из исходной совокупности выбираются пары случайных чисел
x2i-1, x2i;
2) для этих чисел проверяется справедливость неравенства
3) если неравенство (3) выполнено, то очередное число yi определяется из соотношения
При моделировании процессов обслуживания возникает необходимость формирования реализаций случайного потока однородных событий (заявок). Каждое событие потока характеризуется моментом времени tj, в который оно наступает. Чтобы описать случайный поток однородных событий как случайный процесс, достаточно задать закон распределения, характеризующий последовательность случайных величин tj. Для того, чтобы получить реализацию потока однородных событий t1, t2, …, tk, необходимо сформировать реализацию z1, z2, …, zk k-мерного случайного вектора ξ1, ξ2, …, ξk и вычислить значения ti в соответствии со следующими соотношениями:
Пусть стационарный ординарный поток с ограниченным последействием задан функцией плотности f(z). В соответствии с формулой Пальма (6) найдем функцию плотности f1(z1) для первого интервала z1.
Теперь можно сформировать случайное число z1, как было показано выше, соответствующее функции плотности f1(z1), и получить момент появления первой заявки t1 = z1. Далее формируем ряд случайных чисел, соответствующих функции плотности f(z), и при помощи соотношения (4) вычисляем значения величин t2, t3, …, tk.
Пример. Пусть получено равномерно распределенное на случайное число .Решаем уравнение
С учетом этого уравнение (7) принимает вид
,
откуда . Последнее верно, т. к. и , и - равномерно распределенные на случайные числа.
2. Постановка задачи
Требуется провести моделирование работы автозаправочной станции (АЗС) в течении 8 часов
Параметры АЗС:
– число колонок 3;
– поток автомобилей, поступающих на заправку, подчиняется экспоненциальному закону с параметрами λ=0 мин. и β=5 мин.
– время заправки на первой колонке 10±2,5 мин.
время заправки на второй и третьей колонке подчиняется экспоненциальному закону с параметрами λ=4 мин. и β мин. (разумное значение β установить самостоятельно);
– автомобиль подъезжает к свободной колонке.
Требуется определить следующие параметры работы АЗС в течение 8 часов:
– коэффициент загрузки каждой колонки;
– среднее время обслуживания каждой колонкой;
– максимальное и среднее число автомобилей в очереди к каждой колонке;
– среднее время нахождения автомобиля в каждой очереди.
3. Имитационная модель
Согласно поставленной задаче разрабатываем следующую имитационную модель.
АЗС функционирует в течении 8 часов (480 минут). АЗС имеет три колонки – 3 канала обслуживания.
Поток автомобилей, поступающих на заправку – поток заявок – случаен, ординарен и подчиняется экспоненциальному закону распределения. Это говорит о необходимости получения случайных чисел, распределенных по экспоненциальному закону распределения. Воспользуемся методом обратных функций, описанным выше.
Время заправки на первой колонке 10±2,5 мин. Это означает необходимость генерации случайного числа на интервале (0,1) и дальнейшее его сдвижение на интервал (7,5 , 12,5). Для этого воспользуемся следующей формулой (4):
Время заправки на второй и третьей колонке подчиняется экспоненциальному закону. Для получения случайных чисел, распределенных по экспоненциальному закону воспользуемся методом, описанным выше.
Результатом имитации работы АЗС будут следующие параметры:
– коэффициент загрузки каждой колонки;
– среднее время обслуживания каждой колонкой;
– максимальное и среднее число автомобилей в очереди к каждой колонке;
– среднее время нахождения автомобиля в каждой очереди.
Представим схему функционирования каждой колонки (рис.1):
рис.1
Представим алгоритм функционирования модели (рис.2), причем представим наиболее общий случай, когда каждая из колонок уже имеет очередь заявок.
рис.2
4. Реализация имитационной модели (среда Borland Delphi)
4.1. Описание переменных
tgeneral – текущее время в системе. Программа имитирует работу систему пока Tgeneral < 8 часов (480 минут)
t – случайная величина, распределенная по экспоненциальному закону распределения с параметрами λ=0 мин. и β=5 мин. Определяет моменты поступления заявок в СМО
t1 – случайная величина, определяющая время обслуживания заявки колонкой 1 (каналом 1), распределена на интервале 10±2,5
t2 – случайная величина, определяющая время обслуживания заявки колонкой 2 (каналом 2), распределенная по экспоненциальному закону распределения с параметрами λ=0 мин. и β=4,5 мин.
t3 – случайная величина, определяющая время обслуживания заявки колонкой 2 (каналом 2), распределенная по экспоненциальному закону распределения с параметрами λ=0 мин. и β=4,5 мин.
twait1, twait2, twait3 – время ожидания автомобилем своей очереди к каждой из колонок соответственно
sum_twait1, sum_twait2, sum_twait3 – суммарное время ожидания всех автомобилей в соответствующей очереди (очереди к соответствующей колонке)
tengaged1, tengaged2, tengaged3 – время, на которое каждая из колонок занята и не может временно обслуживать другие заявки
sum_t1, sum_t2, sum_t3 – суммарное время работы (непосредственно обслуживания) каждой из колонок
queue1, queue2, queue3 – количество автомобилей в очереди в данный момент времени
max1, max2, max3 – максимальная очередь к каждой колонке соответственно
quancar1, quancar2, quancar3 – количество, автомобилей, обслуженных каждой из колонок соответственно
length_queue1, length_queue2, length_queue3 – сумма длин очередей для каждой из колонок соответсвенно
q1, q2, q3 – счетчики состояний для каждой очереди соответствено
4.2. Листинг программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses unit2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
form1.Visible:=false;
form2.Show;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
halt;
end;
end.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Grids;
type
TForm2 = class(TForm)
Button1: TButton;
Button2: TButton;
StringGrid1: TStringGrid;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Bevel1: TBevel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Bevel2: TBevel;
Label14: TLabel;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses unit1;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
var tgeneral,t,t1,t2,t3,
twait1,twait2, twait3,
sum_twait1,sum_twait2,sum_
tengaged1,tengaged2,tengaged3,
sum_t1,sum_t2,sum_t3:real;
queue1,queue2,queue3,max1,
quancar1,quancar2,quancar3,
length_queue1,length_queue2,
q1,q2,q3:integer;
begin
stringgrid1.Visible:=true;
tgeneral:=0;
queue1:=0; queue2:=0; queue3:=0;
max1:=0; max2:=0; max3:=0;
tengaged1:=0; tengaged2:=0; tengaged3:=0;
twait1:=0; twait2:=0; twait3:=0;
sum_twait1:=0; sum_twait2:=0; sum_twait3:=0;
quancar1:=0; quancar2:=0; quancar3:=0;
sum_t1:=0; sum_t2:=0; sum_t3:=0;
length_queue1:=0; length_queue2:=0; length_queue3:=0;
q1:=1;q2:=1;q3:=1;
Randomize;
while tgeneral<480 do
begin
t:=abs(5*ln(5*random));
if (queue1<=queue2) and (queue1<=queue3) then
begin
t1:=abs(7.5+random*(12.5-7.5))
sum_t1:=sum_t1+t1;
queue1:=queue1+1;
length_queue1:=length_queue1+
q1:=q1+1;
if max1<queue1 then max1:=queue1;
if tengaged1>tgeneral
then twait1:=tengaged1-tgeneral+t1
else twait1:=0;
sum_twait1:=sum_twait1+twait1;
tengaged1:=tgeneral+t1;
quancar1:=quancar1+1;
end
else
begin
if queue2<=queue3 then
begin
t2:=abs(4-4*ln(4*random));
sum_t2:=sum_t2+t2;
queue2:=queue2+1;
length_queue2:=length_queue2+
q2:=q2+1;
if max2<queue2 then max2:=queue2;
if tengaged2>tgeneral
then twait2:=tengaged2+t2-tgeneral
else twait2:=0;
sum_twait2:=sum_twait2+twait2;
tengaged2:=tgeneral+t2;
quancar2:=quancar2+1;
end
else
begin
t3:=abs(4-4.5*ln(4.5*random));
sum_t3:=sum_t3+t3;
queue3:=queue3+1;
length_queue3:=length_queue3+
q3:=q3+1;
if max3<queue3 then max3:=queue3;
if tengaged3>tgeneral
then twait3:=tengaged3+t3-tgeneral
else twait3:=0;
sum_twait3:=sum_twait3+twait3;
tengaged3:=tgeneral+t3;
quancar3:=quancar3+1;
end;
end;
if (tengaged1<tgeneral) and (queue1<>0) then
begin
queue1:=queue1-1;
length_queue1:=length_queue1+
q1:=q1+1;
end;
if (tengaged2<tgeneral) and (queue2<>0) then
begin
queue2:=queue2-1;
length_queue2:=length_queue2+
q2:=q2+1;
end;
if (tengaged3<tgeneral) and (queue3<>0) then
begin
queue3:=queue3-1;
length_queue3:=length_queue3+
q3:=q3+1;
end;
tgeneral:=tgeneral+t;
end;
stringgrid1.Cells[1,0]:='Колон
stringgrid1.Cells[2,0]:='Колон
stringgrid1.Cells[3,0]:='Колон
stringgrid1.Cells[0,1]:='Коэфф
stringgrid1.Cells[0,2]:='Средн
stringgrid1.Cells[0,3]:='
stringgrid1.Cells[0,4]:='
stringgrid1.Cells[0,5]:='
stringgrid1.Cells[1,1]:=
stringgrid1.Cells[2,1]:=
stringgrid1.Cells[3,1]:=
stringgrid1.Cells[1,2]:=
stringgrid1.Cells[2,2]:=
stringgrid1.Cells[3,2]:=
stringgrid1.Cells[1,3]:=
stringgrid1.Cells[2,3]:=
stringgrid1.Cells[3,3]:=
stringgrid1.Cells[1,4]:=
stringgrid1.Cells[2,4]:=
stringgrid1.Cells[3,4]:=
stringgrid1.Cells[1,5]:=
stringgrid1.Cells[2,5]:=
stringgrid1.Cells[3,5]:=
procedure TForm2.Button2Click(Sender: TObject);
begin
halt;
end;
procedure TForm2.Button3Click(Sender: TObject);
begin
form2.Visible:=false;
form1.Show;
end;
end.
5. Краткое руководство пользователя
Запуск программы «Имитация работы АЗС» осуществляется двойным щелчком мыши по файлу Project2.exe.
При открытии данного файла вы увидите следующую форму
рис.1
Данная форма называется «Курсовая работа» и содержит информацию о разработчике программы.
Данная форма имеет две кнопки:
1) «Продолжить». При нажатии на эту кнопку происходит переход к следующей форме «Моделирование работы АЗС»
2) «Выход». При нажатии на эту кнопку происходит корректный выход из приложения

- Имитационное моделирование экономических процессов
- Имитационные дидактические игры и их роль в профессиональном образовании дизайнера
- Имитационные модели, и их использование в теории управления
- Имитация реального мира в трёхмерной графике
- ИМК на примере компании «Nokia»
- Иммануил Кант
- Иммануил Морис Валлерстайн. Миросистемный анализ
- Имитационное моделирование системы, осуществляющей модель локальной вычислительной сети (ЛВС) кольцевой структуры
- Имитационное моделирование системы распределенного банка данных
- Имитационное моделирование СМО
- Имитационное моделирование технологической системы массового обслуживания с отказами
- Имитационное моделирование экономических подсистем
- Имитационное моделирование экономических процессов
- Имитационное моделирование экономических процессов