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

Автор работы: Пользователь скрыл имя, 15 Октября 2017 в 13:49, курсовая работа

Описание работы

Объектом моделирования является диспетчерская служба.
Предметом моделирования:
- Приём заявок от клиентов.
- Обработка заявок от клиентов.
- Выдача результата клиенту в виде квитанции.

Файлы: 1 файл

Курсовая моделирование.docx

— 84.81 Кб (Скачать файл)

   h:=nnq1 div 2;

   i:=0;

   while h<>0 do

    begin

     for j:=h+1 to nnq1 do

      begin

       i:=j-h;

       for k:=1 to matr+2 do

        a[k]:=a3[k,j];

       repeat

        for k:=1 to matr+2 do

         b[k]:=a3[k,i];

        if (a[matr+2]<b[matr+2])and(a[matr+2]>0) then

         begin

          for k:=1 to matr+2 do

           a3[k,i+h]:=b[k];

          i:=i-h;

         end;

        until (i<=0)or(a[matr+2]>=b[matr+2])or(a[matr+2]=0);

        for k:=1 to matr+2 do

         a3[k,i+h]:=a[k];

      end;

      h:=h div 2;

    end;

   seek(f,0);

   write(f,a3);

   writeln(' Вывод нового календаря');

   for i:=1 to nnq1 do

    begin

     for j:=1 to matr+2 do

      write(a3[j,i],' ');write('   ');

    end;

    writeln;

   end;

3.3.Процедура извлечения первой записи из календаря

 Извлечение осуществляется процедурой RMOVE. Происходит копирование календаря в массив А3. Затем  из его первой  записи извлекаются: время свершения события, код события и его атрибут. Затем код события обнуляется, после этого календарь. В конце вызывается процедура GRUP для расстановки записей в порядке возрастания по времени свершении. 
 

 


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
procedure rmove;


   var

    i,j:integer;

   begin

    seek(f,0);

    read(f,a3);

    i:=a3[matr+1,1];

    writeln(' Код извлеченного события ',i);

    writeln(' Время извлеченного события ',a3[matr+2,1]);

    for j:=1 to matr+3 do a3[j,1]:=0;

    for j:=1 to matr do attr[j]:=a3[j,1];

    seek(f,0);

    write(f,a3);

    writeln(' Вывод календаря');

    for i:=1 to nnq1 do

     begin

      for j:=1 to matr+2 do

       write(a3[j,i],' ');write('   ');

     end;

    writeln;

    grup;

    end;

 

3.4.Процедура инициализации

В процедуре INTLC определяются необходимые условия имитации. Обязательными являются оператор задания начального имитационного времени и оператор планирования события.

В процедуре задаются начальные условия:

  • tnow:=ttbeg – время начала имитации;
  • zanyat:=false – обнуление занятости сотрудника;
  • nevents:=0 – количество событий в календаре;
  • ochered:=0 – количество клиентов в очереди;
  • all:=0 – общее число клиентов;
  • schdl(1) – планирование первого события.


 

 


 
3.5.Главный модуль


В главном модуле задаются всепрогонные переменные, вводится количество прогонов, а также вызывается процедура slam.

  • nnrns:=0;
  • ttbeg:=0;
  • ttfin:=600;

 


 
 
 
 
 
 
 
 
 
 
 
 
 
 
3.6.Процедура поиска алгоритма обработки события


Процедура поиска алгоритма обработки события EVENT содержит оператор выбора Case, реализующий  выбор требуемой  процедуры по коду извлечённого события. Имеется 4 класса событий: приход, обслуживание, уход и ЧС.

 
3.7.Процедура обработки события первого класса 

Данная процедура служит для обработки события «Приход клиента». В ней клиент становится в очередь и увеличивается число человек в очереди на 1. Если сотрудник не занят, то происходит переход к планированию события второго класса.

3.8.Процедура обработки события второго класса

Это процедура обслуживания у сотрудника. Число клиентов в очереди уменьшается на 1, и если оно равняется 0, то сотрудник свободен, иначе клиент остаётся в очереди. Происходит обслуживание и увеличение числа обслуженных клиентов на 1.

3.9.Процедура обработки  события третьего класса

Это процедура ухода клиента. Число клиентов в очереди уменьшается на 1.

3.10.Процедура обработки  события четвёртого класса

Процедура обработки события данного класса вызывается в случае наступления чрезвычайной ситуации (отключение света). При этом работа диспетчерской службы приостанавливается на время устранения причин задержки. Увеличивается время свершения события в календаре.

3.11.Процедура формирования отчёта по прогону

Данная процедура Outputn формирует отчёт по прогону. На экран и в файл выводятся следующие статистические данные:

  • Номер прогона;
  • Общее количество обслуженных;
  • Средняя длина очереди за прогон;
  • Среднее время обслуживания за прогон;
  • Время закрытия;
  • Количество ЧС за прогон.

 

 

3.12.Процедура формирования отчёта по всем прогонам

Процедура Output выводит на экран и в файл данные:

  • Среднее количество обслуженных;
  • Средняя длина очереди;
  • Среднее время обслуживания;
  • Время закрытия;
  • Число прогонов;
  • Количество ЧС.

 

4.ВЫБОР ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

 

Для реализации имитационной модели воспользуемся универсальным языком программирования. В качестве такого языка будем использовать язык Borland Pascal 7.0.

 

Данный язык обладает достаточным набором операторов, с помощью которых вполне реально создать имитационную модель. Кроме того, данное программное средство очень просто в применении. 
5.ПРОГРАММА ИМИТАЦИОННОГО МОДЕЛИРОВАНИЯ

 

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

 

6.РЕЗУЛЬТАТЫ МОДЕЛИРОВАНИЯ

 

После запуска программы введём   количество  прогонов  модели равное 10. В результате имитации получим данные, по каждому из прогонов. Ниже приведен отчет по первому прогону (рис 7):

**************************************************************

Прогон №1

Время закрытия:    18:00

Общее число посетителей:    63

Средняя длина очереди:    1.19

Среднее время обслуживания:    9.48

**************************************************************

 

Результаты по всем прогонам приведены в таблице 1.

Номер прогона

Время закрытия

Общее число посетителей

Средняя длина очереди

Среднее время обслуживания

ЧС

1

18:00

63

1.19

9.48

 

2

18:00

67

1.279

9.43

 

3

18:00

66

1.299

9.57

 

4

18:00

65

1.154

9.71

 

5

18:00

63

1.361

9.84

 

6

18:00

64

1.172

9.891

 

7

18:00

66

1.136

9.41

 

8

18:00

69

1.242

9.17

ЧС

9

18:00

65

1.319

9.55

 

10

18:00

68

1.261

9.33

 

Среднее

 

65.6

1.241

9.53

1


 

Таблица 1 – результаты моделирования при количестве прогонов, равном 10 
7.АНАЛИЗ РЕЗУЛЬТАТОВ

7.1.Расчёт оптимального числа прогонов

Анализ результатов состоит в определении по результатам нескольких прогонов оптимального числа прогонов, обеспечивающих заданную точность результатов с заданной вероятностью.

Для того, чтобы выполнить подобный анализ, необходимо задать два параметра: доверительную вероятность и точность оценки.

Число независимых повторных прогонов для достижения заданной доверительной вероятности  1- α равно

,[2]

где - среднеквадратическое отклонение переменной X; q – половина доверительного интервала (точность оценки). Поскольку сами параметры , основаны на статистике, сначала делают  любые I прогонов, находят (по разбросу выборок X), (по таблице t-распределения Стьюдента для заданной доверительной вероятности и m=I–1), а затем уточняют I  по и q.[2]

m – число прогонов

=65 – выборочное среднее число посетителей.

Примем доверительную вероятность  p=1-α=0.95(95%).

=2.26216 

Для полученных данных имеем:

 = =3.01(ед. 
клиентов).

q=*0.05/2=65*0.025=1.625(ед.клиентов)

Подставим полученные значения в формулу для расчёта оптимального числа прогонов:

==17 
В результате анализа получаем, что оптимальное количество прогонов, которое обеспечивает оценку математического ожидания с точностью 5% равно 17.

7.2. Установление закона  распределения

    Процедура проверки гипотез требует определения нулевой гипотезы (H0) и альтернативной (H1). Проверка ведется по выбранным критериям.

-критерий (критерий согласия  Пирсона) используют при наличии  гистограмм:

,

где - число интервалов, - теоретическая вероятность попадания в - й интервал, - практическое число попаданий в - й интервал. Из таблицы - распределения находят верхний порог значимости (квантиль)   (где ) для выбранного . Значение сравнивают с :

1) приемлемо, если  < (гипотеза H0);

2) не приемлемо, если  ³ (гипотеза H1).

Одним из методов преобразования данных к удобному формальному виду является группировка по классам, отображающая количество (частоту) попадания данных в каждый класс. Результаты обычно отображают графически в виде гистограмм.

    На основе таблицы 2, приведённой ниже, построим гистограмму (рис 8).

 

 

Номер прогона

Количество посетителей

Средняя длина очереди

Среднее время обслуживания

ЧС

1

63

1.17

9.46

 

2

66

1.299

9.57

 

3

65

1.319

9.55

 

4

66

1.307

9.61

 

5

67

1.279

9.43

 

6

67

1.268

9.41

 

7

69

1.242

9.17

 

8

68

1.261

9.33

 

9

69

1.241

9.16

ЧС

10

69

1.244

9.19

 

11

64

1.172

9.891

 

12

68

1.265

9.36

 

13

65

1.322

9.58

 

14

62

1.13

9.41

 

15

64

1.165

9.886

 

16

67

1.272

9.44

 

17

64

1.18

9.896

 

Среднее

66.059

1.243

9.491

1

Информация о работе Моделирование работы диспетчерского пункта