Автор работы: Пользователь скрыл имя, 07 Марта 2014 в 10:20, курсовая работа
Краткое описание
За последнее время в самых разных областях практики возникла необходимость в решении различных вероятностных задач, связанных с работой так называемых систем массового обслуживания ( СМО ). Примерами таких систем могут служить: телефонные станции, ремонтные мастерские, билетные кассы, стоянки такси, парикмахерские, медицинские учреждения и т.п. Темой данного курсового проекта является моделирование дневного стационара - многоканальной СМО с ожиданием. Задачами являются определение оптимального числа койко-мест для данного количества клиентов стационара. Решение данной задачи построено не на аналитическом описании системы, а на статистическом моделировании
Содержание
Введение 1. Постановка задачи 2. Теоретическая часть 2.1 Предмет и задачи теории массового обслуживания 3. Описание программного модуля 4. Руководство программиста 5. Руководство пользователя Заключение
Проверяются койки, если список
процедур обслуживаемой заявки пуст, койка
освобождается, просматривается очередь
и ставится на обслуживание свежующая
заявка.
Наращивается текущее время
моделирования.
Если текущее время равно времени
моделирования, процесс останавливается,
выдается сообщение "моделирование
завершено", генерируется отчет, работа
таймера останавливается.
Заявки поступают на обслуживание
из очереди в соответствии с приоритетом
(сначала на обслуживание идут приоритетные
заявки). Каждую секунду состояние системы
визуально отображается с помощью графиков
и таблицы, которые будут описаны в руководстве
пользователя.
4. Руководство
программиста
Все файлы проекта располагаются
в директории с наименованием СМО. В проект
входят: файл проекта DelphiSMO. dpr, файлы исходного
текста:
Unit1 - основной модуль
Unit2 - модуль для заполнения
параметров каналов обслуживания
(процедур)
Unit3 - модуль для заполнения
параметров очередей
Unit4 - модуль для заполнения
параметров потоков входных заявок
Unit5 - модуль для демонстрации
приветствия
Файл справки (Руководство пользователя)
в формате HTML, и исполняемый файл SMO. exe.
Для программного представления
заявок используется следующая запись
type
zaeavka=record
t1: real; // время появления заявки
t2: real; // время ожедания в очереди
t_obs: real; // время обслуживания
prior: boolean; // приоритет заявки
proc: string; // на какие процедуры
koyka: integer;
end;
Для программного представления
потока входных заявок используется следующая
запись
type
vpotok_z=record
z_ki: zaeavka;
name: string;
t1_zaevki: real;
ind: integer;
ot,do_, interval: real;
prioritet: boolean;
p1,p2: real;
kol_sgener_z: integer;
end;
Для программного представления
очереди используется следующая запись
type ocher=record
mas_z: array of zaeavka;
ochered: integer; // кол-во в очериде
max_l_och: integer; // max длина очереди
name: string;
t_ozhed: real;
ind: integer;
prior: boolean;
end;
Для программного представления
аппарата обслуживания - процедура используется
следующая запись
type
obsluzh_p=record
mas_ochered: array of ocher;
name: string;
bul: boolean; // занят, свободен
obsl: integer; // кол-во обслуженных
poter: integer; // кол-во потерян заявок
t_obsl_min: real; // время обслуживания
t_obsl_max: real; // время обслуживания
t_prostoy: real; // время простоя
z_obsl: zaeavka;
end;
Для программного представления
аппарата обслуживания -койка используется
следующая запись
type
obsluzh_k=record
mas_ocher: array of ocher;
bul_k: boolean; // занят, свободен
poter_k: integer; // кол-во потерян заявок
obsl: integer; // кол-во обслуженных
t_prostoy: real; // время простоя
z_obsl: zaeavka;
n_koyki: integer;
end;
Компонент Series1, Series2 служат для
построения графиков, характеризующих
состояние системы на текущей момент по:
Количеству обслуженных заявок
Количеству потерянных заявок
Времени простоя
Состоянию (занят (1), свободен
(0))
Эффективность работы ( (общее
время - время порстоя) / общее время).
Ниже приведены глобальные переменные,
используемые в программе.
vpz: array of vpotok_z;
koyki: array of obsluzh_k;
proz: array of obsluzh_p;
i,j,k,l,n,m: integer;
s,d,f: string;
p3: real;
k_p,k_o,k_k: integer;
t_1z: real;
kol_koek: integer; // количество коек
t_mod: real; // время моделирования
t_tek: real; // текущее (сколько прошло
с момента начала моделирования)
t: real;
indeks: integer;
t_ozhed_v_SMO: real;
file_: file of real;
sfilename: string='';
ind_n: integer;
В программе используются процедуры
и функции, которые написаны для удобства
работы и понимания программы:
procedure TForm1. Button1 Click ( Sender: TObject)
- процедура добавляющая в систему
потоки входных заявок с соответствующими
свойствами
procedure TForm1. Button3 Click ( Sender: TObject)
- процедура добавляющая в систему
аппарата обслуживания - процедура с соответствующими
свойствами
procedure TForm1. SpeedButton1 Click
( Sender: TObject) - процедура, предназначенная
для считывания всех заданных пользователем
начальных параметров и запуска таймера
procedure tform1. otchet - процедура создания отчета по результатам
моделирования
Работа всех этих функций и процедур
описана в приложении курсового проекта.
5. Руководство
пользователя
Исполняемый файл программы,
SMO. exe, рекомендуется скопировать в директорию
c: \SMO, и создать ярлык программы на рабочем
столе.
При запуске программы на несколько
секунд появляется окно приветствия изображенное
на рисунке 1, после чего оно закрывается
и открывается главное окно, состоящее
из трех вкладок, первая из них представленное
на рисунке 2.
В верхней половине окна расположены
панели для ввода основных параметров
работы системы:
Потоков входных заявок
Обслуживающих устройств - процедур
Очередей
После добавления необходимого
количества потоков входных заявок, можно
произвести настройку параметров каждого
из них. При щелчке мышью на соответствующем
имени потока появляется окно свойств
представленное на рисунке 3.
Рисунок 3. Окно установки свойств
потока входных заявок
В данном окне можно установить
наименование потока, количество заявок,
поступивших за какой - либо промежуток
времени, указанный в минутах или часах,
и статус заявки, т е простые или приоритетные
заявки будет генерировать данный поток.
После добавления необходимого
количества обслуживающих устройств -
процедур, можно произвести настройку
параметров каждого из них. При щелчке
мышью на соответствующем имени устройства
появляется окно свойств представленное
на рисунке 4.
Рисунок 4. Окно установки свойств
обслуживающего устройства
В данном окне можно установить
наименование, максимальную и минимальную
длительность обслуживания заявки в минутах.
При добавлении количества входных
потоков заявок автоматически генерируется
количество очередей (максимальное их
количество 2, для приоритетных и обычных
заявок). Для каждой очереди можно произвести
настройку параметров. При щелчке мышью
на соответствующем имени потока появляется
окно свойств представленное на рисунке
5.
Рисунок 5. Окно установки свойств
очереди
В данном окне можно установить
наименование и максимальную длину очереди.
В нижней половине окна можно
настроить:
время моделирования (в годах,
неделя, часах или минутах)
время пребывания заявки в системе
(в минутах или часах), по истеканию которого
заявка покидает систему, не зависимо
от того, где она в данный момент находилась