Разработка системы массового обслуживания для информационно-поисковой системы на базе двух электронно-вычислительных машин
Характеристика компонентов и классификация моделей массового обслуживания. Анализ одноканальной и многоканальной систем массового обслуживания с отказами и ожиданиями. Разработка логической схемы и алгоритма работы программы, ее тестирование и листинг.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 05.02.2016 |
Размер файла | 567,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
КУРСОВАЯ РАБОТА
по дисциплине «Основы моделирования биологических процессов и систем»
Тема «Разработка СМО для информационно-поисковой системы на базе двух ЭВМ»
Расчетно-пояснительная записка
Содержание
Введение
1. Теория систем массового обслуживания
1.1 Компоненты и классификация моделей массового обслуживания
1.1.1 Компоненты СМО
1.1.2 Классификация СМО
1.2 Характеристики СМО 1
1.2.1 Одноканальная СМО с отказами
1.2.2 Одноканальная СМО с ожиданием и ограниченной очередью
1.2.3 Одноканальная СМО с ожиданием и неограниченной очередью
1.2.4 Многоканальная СМО с отказами
1.2.5 Многоканальная СМО с ожиданием
2. Практическое задание
2.1 Задание
2.2 Концептуализация задачи
2.2.1 Q-схема модели СМО
2.2.2 Граф состояний системы СМО
2.2.3 Логическая схема модели СМО
2.2.4 Блок-схема алгоритма работы программы
2.2.5 Выполнение задачи
2.2.6 Тестирование программы
Заключение
Список литературы
Приложение А. Листинг программы
Введение
Во многих областях человеческой деятельности ставятся и решаются задачи, связанные с моделированием поведения некоторой системы в течение времени. Моделирование системы может преследовать разные цели: наблюдение за ходом процесса работы системы, оценка эффективности функционирования системы и ее оптимизация.
Примером такой системы может послужить организация работы станции технического обслуживания. Так число механиков (обработчиков требований) не является случайно взятым, а рассчитано исходя из загруженности СТО в конкретные дни и даже часы, в праздники. Руководство станции следит, чтобы очередь клиентов (требования) была минимальной, и в то же время механиков без работы не было.
Решением подобных задач занимается теория систем массового обслуживания. Под системой массового обслуживания (СМО) понимают динамическую систему, предназначенную для эффективного обслуживания потока заявок (требований на обслуживание) при ограничениях на ресурсы системы.
Основной задачей теории СМО является изучение режима функционирования обслуживающей системы и исследование явлений, возникающих в процессе обслуживания. Также, в теории СМО возникают задачи оптимизации: каким образом достичь определенного уровня обслуживания (максимального сокращения очереди или потерь требований) при минимальных затратах, связанных с простоем обслуживающих устройств.
Модели СМО очень распространены и применяются во многих сферах деятельности человека и реализуются при помощи вычислительных систем.
Цель моей работы - разбор базовых понятий, связанных с изучением систем массового обслуживания, а также выявление перспектив развития.
1. Теория систем массового обслуживания
1.1 Компоненты и классификация моделей массового обслуживания
Системы массового обслуживания (СМО) - это такие системы, в которые в случайные моменты времени поступают заявки на обслуживание, при этом поступившие заявки обслуживаются с помощью имеющихся в распоряжении системы каналов обслуживания.
С позиции моделирования процесса массового обслуживания ситуации, когда образуются очереди заявок (требований) на обслуживание, возникают следующим образом. Поступив в обслуживающую систему, требование присоединяется к очереди других (ранее поступивших) требований. Канал обслуживания выбирает требование из находящихся в очереди, с тем, чтобы приступить к его обслуживанию. После завершения процедуры обслуживания очередного требования канал обслуживания приступает к обслуживанию следующего требования, если таковое имеется в блоке ожидания.
Цикл функционирования системы массового обслуживания подобного рода повторяется многократно в течение всего периода работы обслуживающей системы. При этом предполагается, что переход системы на обслуживание очередного требования после завершения обслуживания предыдущего требования происходит мгновенно, в случайные моменты времени.
Примерами систем массового обслуживания могут служить:
1. магазины;
2. банки;
3. ремонтные мастерские;
4. почтовые отделения;
5. посты технического обслуживания автомобилей, посты ремонта автомобилей;
6. персональные компьютеры, обслуживающие поступающие заявки или требования на решение тех или иных задач;
7. телефонные станции и т.д.
1.1.1 Компоненты СМО
Основными компонентами системы массового обслуживания любого вида являются:
1. входной поток поступающих требований или заявок на обслуживание;
2. дисциплина очереди;
3. механизм обслуживания.
Раскроем содержание каждого из указанных выше компонентов.
- Входной поток требований - для описания входного потока требуется задать вероятностный закон, определяющий последовательность моментов поступления требований на обслуживание и указать количество таких требований в каждом очередном поступлении. При этом, как правило, оперируют понятием «вероятностное распределение моментов поступления требований». Здесь могут поступать как единичные, так и групповые требования (требования поступают группами в систему). В последнем случае обычно речь идет о системе обслуживания с параллельно-групповым обслуживанием.
- Дисциплина очереди - это важный компонент системы массового обслуживания, он определяет принцип, в соответствии с которым поступающие на вход обслуживающей системы требования подключаются из очереди к процедуре обслуживания. Чаще всего используются дисциплины очереди, определяемые следующими правилами:
- первым пришел - первый обслуживаешься;
- пришел последним -- обслуживаешься первым;
- случайный отбор заявок;
- отбор заявок по критерию приоритетности;
- ограничение времени ожидания момента наступления обслуживания (имеет место очередь с ограниченным временем ожидания обслуживания, что ассоциируется с понятием «допустимая дли на очереди»).
- Механизм обслуживания - определяется характеристиками самой процедуры обслуживания и структурой обслуживающей системы. К характеристикам процедуры обслуживания относятся: продолжительность процедуры обслуживания и количество требований, удовлетворяемых в результате выполнения каждой такой процедуры. Для аналитического описания характеристик процедуры обслуживания оперируют понятием «вероятностное распределение времени обслуживания требований».
Следует отметить, что время обслуживания заявки зависит от характера самой заявки или требований клиента и от состояния и возможностей обслуживающей системы. В ряде случаев приходится также учитывать вероятность выхода обслуживающего прибора по истечении некоторого ограниченного интервала времени.
Структура обслуживающей системы определяется количеством и взаимным расположением каналов обслуживания (механизмов, приборов и т. п.). Прежде всего следует подчеркнуть, что система обслуживания может иметь не один канал обслуживания, а несколько; система такого рода способна обслуживать одновременно несколько требований. В этом случае все каналы обслуживания предлагают одни и те же услуги, и, следовательно, можно утверждать, что имеет место параллельное обслуживание.
Система обслуживания может состоять из нескольких разнотипных каналов обслуживания, через которые должно пройти каждое обслуживаемое требование, т. е. в обслуживающей системе процедуры обслуживания требований реализуются последовательно. Механизм обслуживания определяет характеристики выходящего (обслуженного) потока требований.
Рассмотрев основные компоненты систем обслуживания, можно констатировать, что функциональные возможности любой системы массового обслуживания определяются следующими основными факторами:
1. вероятностным распределением моментов поступлений заявок на обслуживание (единичных или групповых);
2. вероятностным распределением времени продолжительности обслуживания;
3. конфигурацией обслуживающей системы (параллельное, последовательное или параллельно-последовательное обслуживание);
4. количеством и производительностью обслуживающих каналов;
5. дисциплиной очереди;
6. мощностью источника требований.
В качестве основных критериев эффективности функционирования систем массового обслуживания в зависимости от характера решаемой задачи могут выступать:
1. вероятность немедленного обслуживания поступившей заявки;
2. вероятность отказа в обслуживании поступившей заявки;
3. относительная и абсолютная пропускная способность системы;
4. средний процент заявок, получивших отказ в обслуживании;
5. среднее время ожидания в очереди;
6. средняя длина очереди;
7. средний доход от функционирования системы в единицу времени и т.п.
Предметом теории массового обслуживания является установление зависимости между факторами, определяющими функциональные возможности системы массового обслуживания, и эффективностью ее функционирования. В большинстве случаев все параметры, описывающие системы массового обслуживания, являются случайными величинами или функциями, поэтому эти системы относятся к стохастическим системам.
1.1.2 Классификация СМО
Независимо от характера процесса, протекающего в системе массового обслуживания, различают два основных вида СМО:
- системы с отказами, в которых заявка, поступившая в систему в момент, когда все каналы заняты, получает отказ и сразу же покидает очередь;
- системы с ожиданием (очередью), в которых заявка, поступившая в момент, когда все каналы обслуживания заняты, становится в очередь и ждет, пока не освободится один из каналов.
СМО с ожиданием делятся на:
- системы с ограниченным ожиданием,
- системы с неограниченным ожиданием.
В системах с ограниченным ожиданием может ограничиваться:
- длина очереди;
- время пребывания в очереди.
В системах с неограниченным ожиданием заявка, стоящая в очереди, ждет обслуживание неограниченно долго, т.е. пока не подойдет очередь.
Все системы массового обслуживания различают по числу каналов обслуживания:
- одноканальные системы;
- многоканальные системы.
Приведенная классификация СМО является условной. На практике чаще всего системы массового обслуживания выступают в качестве смешанных систем. Например, заявки ожидают начала обслуживания до определенного момента, после чего система начинает работать как система с отказами.
1.2 Характеристики СМО
1.2.1 Одноканальная СМО с отказами
Простейшей одноканальной моделью с вероятностными входным потоком и процедурой обслуживания является модель, характеризуемая показательным распределением как длительностей интервалов между поступлениями требований, так и длительностей обслуживания. При этом плотность распределения длительностей интервалов между поступлениями требований имеет вид массовый обслуживание программа многоканальный
где л -- интенсивность поступления заявок в систему (среднее число заявок, поступающих в систему за единицу времени).
Плотность распределения длительностей обслуживания:
где - интенсивность обслуживания, tоб - среднее время обслуживания одного клиента.
Пусть система работает с отказами. Можно определить абсолютную и относительную пропускную способность системы.
Относительная пропускная способность равна доли обслуженных заявок относительно всех поступающих и вычисляется по формуле: . Эта величина равна вероятности Р0 того, что канал обслуживания свободен.
Абсолютная пропускная способность (А) -- среднее число заявок, которое может обслужить система массового обслуживания в единицу времени:
A .
Вероятность отказа в обслуживании заявки будет равна вероятности состояния «канал обслуживания занят»:
Данная величина Ротк может быть интерпретирована как средняя доля необслуженных заявок среди поданных.
1.2.2 Одноканальная СМО с ожиданием и ограниченной очередью
Система массового обслуживания имеет один канал. Входящий поток заявок на обслуживание поток имеет интенсивность л. Интенсивность потока обслуживания равна м (т. е. в среднем непрерывно занятый канал будет выдавать м обслуженных заявок). Длительность обслуживания -- случайная величина, подчиненная показательному закону распределения. Заявка, поступившая в момент, когда канал занят, становится в очередь и ожидает обслуживания.
Рассмотрим систему с ограниченной очередью. Предположим, что независимо оттого, сколько требований поступает на вход обслуживающей системы, данная система (очередь + обслуживаемые клиенты) не может вместить более N-требований (заявок), из которых одна обслуживается, а (N-1) ожидают, Клиенты, не попавшие в ожидание, вынуждены обслуживаться в другом месте и такие заявки теряются. Наконец, источник, порождающий заявки на обслуживание, имеет неограниченную (бесконечно большую) емкость.
Обозначим - вероятность того, что в системе находится n заявок. Эта величина вычисляется по формуле:
Здесь с= - приведенная интенсивность потока. Тогда вероятность того, что канал обслуживания свободен и в системе нет ни одного клиента, равна:
С учетом этого можно обозначить
Определим характеристики одноканальной СМО с ожиданием и ограниченной длиной очереди, равной (N-1):
вероятность отказа в обслуживании заявки:
Pотк=РN=
относительная пропускная способность системы:
абсолютная пропускная способность:
А=q•л;
среднее число находящихся в системе заявок:
среднее время пребывания заявки в системе:
средняя продолжительность пребывания клиента (заявки) в очереди:
среднее число заявок (клиентов) в очереди (длина очереди):
1.2.3 Одноканальная СМО с ожиданием и неограниченной очередью
Перейдем теперь к рассмотрению одноканальной СМО с ожиданием без ограничения на вместимость блока ожидания (т.е. Н > ?). Остальные условия функционирования СМО остаются без изменений.
Устойчивое решение в такой системе существует только тогда, когда л<м, то есть заявки должны обслуживаться с большей скоростью, чем поступают, в противном случае очередь может разрастись до бесконечности.
Вероятность того, что в системе находится n заявок, вычисляется по формуле
где r = <1.
Характеристики одноканальной СМО с ожиданием, без ограничения на длину очереди, следующие:
среднее число находящихся в системе клиентов (заявок) на обслуживание:
;
средняя продолжительность пребывания клиента в системе:
;
среднее число клиентов в очереди на обслуживание:
средняя продолжительность пребывания клиента в очереди:
;
1.2.4 Многоканальная СМО с отказами
В подавляющем большинстве случаев на практике системы массового обслуживания являются многоканальными, то есть параллельно могут обслуживаться несколько заявок, и, следовательно, модели с обслуживающими каналами (где число каналов обслуживания n>1) представляют несомненный интерес.
Процесс массового обслуживания, описываемый данной моделью, характеризуется интенсивностью входного потока л, при этом параллельно может обслуживаться не более n клиентов (заявок). Средняя продолжительность обслуживания одной заявки равняется . Режим функционирования того или иного обслуживающего канала не влияет на режим функционирования других обслуживающих каналов системы, при чем длительность процедуры обслуживания каждым из каналов является случайной величиной, починенной экспоненциальному закону распределения. Конечная цель использования параллельно включенных обслуживающих каналов заключается в повышение (по сравнению с одноканальной системой) скорости обслуживания требований за счет обслуживания одновременно n клиентов.
Формулы для вычисления вероятностей называются формулами Эрланга.
Определим вероятностные характеристики функционирования многоканальной СМО с отказами в стационарном режиме:
вероятность отказа:
так как заявка получает отказ, если приходит в момент, когда все каналов заняты. Величина Ротк характеризует полноту обслуживания входящего потока;
вероятность того, что заявка будет принята к обслуживанию (она же - относительная пропускная способность системы) дополняет Ротк до единицы:
абсолютная пропускная способность:
среднее число каналов, занятых обслуживанием (k) следующее:
Величина k характеризует степень загрузки СМО.
1.2.5 Многоканальная СМО с ожиданием
Рассмотрим многоканальную систему массового обслуживания с ожиданием. Процесс массового обслуживания при этом характеризуется следующим: входной и выходной потоки имеют интенсивности л и м соответственно, параллельно обслуживаться могут не более С клиентов, то есть система имеет С каналов обслуживания. Средняя продолжительность обслуживания одного клиента равна .
Вероятности того, что в системе находятся n заявок (С обслуживаются, остальные ожидают в очереди) равна:
Где
Решение будет действительным, если выполняется следующее условие:
Остальные вероятностные характеристики функционирования в стационарном режиме многоканальной СМО с ожиданием и неограниченной очередью определяется по следующим формулам:
среднее число клиентов в очереди на обслуживание:
;
среднее число находящихся в системе клиентов (заявок на обслуживание и в очереди):
LS=Lq+с;
средняя продолжительность пребывания клиента (заявки на обслуживание) в очереди:
;
средняя продолжительность пребывания клиента в системе:
;
2 Практическое задание
2.1 Задание
Информационно-поисковая система построена на базе двух ЭВМ и имеет один терминал для ввода и вывода информации. Первая ЭВМ обеспечивает поиск признаков заболеваний, а вторая - по тактике лечения. Пользователи обращаются к услугам системы каждые 5±2 мин. Если в очереди к терминалу ожидают 10 пользователей, то вновь прибывшие пользователи получают отказ в обслуживании. Поиск информации на первой ЭВМ продолжается 6±4 мин., а на второй 3±2 мин. Для установления связи с нужной ЭВМ и передачи текста запроса пользователи тратят 2±1 мин. Вывод результатов поиска происходит за 1 мин.
Смоделировать процесс работы системы за 8 час. Определить среднюю и максимальную длину очереди к терминалу, а также коэффициенты загрузки технических средств системы. Как изменятся параметры очереди к терминалу, если будет установлен еще один терминал?
2.2 Концептуализация задачи
В создаваемой экспертной системе будет реализована СМО, описанная в задании. Для решения поставленной задачи была составлена модель диагностики, представляющая собой сеть Петри, рис. 1.
Рисунок 1 - Сеть Петри
Сеть Петри - математический аппарат для моделирования динамических дискретных систем или асинхронных параллельных процессов. Опишем полученную схему:
Позиции схемы представлены в таблице 1.
Таблица 1
b1 |
Заявка с потока вошла в накопитель |
|
b2 |
Установка терминалом связи с ЭВМ |
|
b3 |
ЭВМ1 послала сигнал, что свободна |
|
b4 |
Поиск информации ЭВМ1 |
|
b5 |
Поиск информации ЭВМ2 |
|
b6 |
ЭВМ2 послала сигнал, что свободна |
|
b7 |
Вывод результатов поиска |
Переходы представлены в таблице 2.
Таблица 2
d1 |
Прибывает заявка из потока |
|
d2 |
Заявка из накопителя переходит в терминал |
|
d3 |
Данные запроса передаются в ЭВМ1, 2±1 мин |
|
d4 |
Данные запроса передаются в ЭВМ2, 2±1 мин |
|
d5 |
Передача обработанной ЭВМ1 информации терминалом, 1 мин |
|
d6 |
Передача обработанной ЭВМ2 информации терминалом, 1 мин |
Сеть Петри можно описать:
N = <B, D, I, O, M>
1)
M0={0,0,1,0,0,1,0}
M0+d1 M1
M1={1,0,1,0,0,1,0}
M1+d2 M2
M2={0,1,1,0,0,1,0}
1.1)
M2+d3 M3
M3={0,0,0,1,0,1,0}
M 3+d5 M4
M4={0,0,0,0,0,1,1}
1.2)
M2+d3 M3
M3={0,0,1,0,1,0,0}
M 3+d5 M4
M4={0,0,1,0,0,0,1}
2.2.1 Q-схема модели СМО
Наша система представляет собой одноканальную СМО с ожиданием и ограниченной очередью, поэтому для формализации задачи используем символику Q-схем. В соответствии с построенной концептуальной моделью и символикой Q-схем структурную схему данной СМО можно представить в виде, показанном на рисунке 2, где И - источник, К - канал, Н - накопитель, Т - терминал.
Рисунок 2 - Q-схема модели СМО
Источник И имитирует процесс поступления заданий, которые поступают через 5±2 минут. Канал К1 - работа первой ЭВМ в течении 6±4 минут, канал К2 - второй ЭВМ в течении 3±2 минуты. Накопитель Н имеет емкость 10. Клапан регулирует процесс поступления заявок в накопитель. Если накопитель Н заполнен, то заявки отправляются в отказ. На выходе получаем обслуженные заявки.
2.2.2 Граф состояний системы СМО
Моделируемая система является многофазной одноканальной. Поток заявок, поступающий в систему - простейший. Заявка, поступившая в момент, когда канал занят, становится в очередь и ожидает обслуживания.
Рисунок 3 - Граф состояний системы
S0 - система свободна;
S1 - накопитель занят, канал занят;
S2 - канал занят, одна заявка в очереди;
Sm - канал занят, m-заявок в очереди;
Sm+1 - очередь заполнена, одна заявка под обслуживанием.
2.2.3 Логическая схема модели СМО
В начале процесса моделирования происходит запуск и ввод исходных данных (блоки «Пуск» и «Заявка с потока вошла в накопитель»). Затем проверяется условие (блок «Терминал свободен»): если терминал полон, то происходит проверка количества заявок в очереди: при наличии свободных мест заявка ставится в очередь, если свободных мест нет - заявка отклоняется (блоки «Очередь заполнена», «Постановка в очередь», «Отказ в обслуживании»). Иначе заявка поступает в терминал ввода и вывода информации и затем в одну из ЭВМ и там обслуживается (блок выбора «Нужны признаки заболеваний» и блоки «Обращение к ЭВМ1» и «Обращение к ЭВМ2»). Если закончился интервал моделирования, то происходит обработка результатов моделирования (блок «Обработка результатов моделирования. После этого происходит вывод результатов моделирования на экран (блок «Вывод результатов моделирования») и окончание данной итерации (блок «Конец итерации»).
Рисунок 4 - Логическая схема модели СМО
2.2.4 Блок-схема алгоритма работы программы
Прежде, чем приступить к разработке прототипа системы, необходимо составить блок-схему алгоритма работы программы.
Рисунок 5 - Блок-схема алгоритма программы
2.2.5 Выполнение задачи
В среде Delphi на языке Object Pascal мной была написана программа, реализующая моделируемую систему. Далее приведен скриншот окна программы.
Рисунок 6 - Скриншот окна программы
2.2.6 Тестирование программы
Далее будут приведены скриншоты, демонстрирующие результаты моделирования СМО заданной конфигурации программой.
Рисунок 7 - Моделирование с заданными параметрами №1
Рисунок 8 - Моделирование с заданными параметрами №2
Заключение
Таким образом, поставленная задача о создании программы, позволяющей смоделировать многоканальную систему массового обслуживания с ожиданием, решена. Созданная программа позволяет произвести расчет таких параметров системы как:
· коэффициенты загрузки ЭВМ1 и ЭВМ2,
· средняя длина очереди,
· максимальная длина очереди,
при заданных начальных условиях:
число каналов обслуживания 2;
число мест в очереди 10;
интенсивность поступления заявок 1 в 5±2 мин;
время, затраченное на обслуживания ЭВМ1- 6±4, ЭВМ2 -3±2.
визуально проследить работу системы.
Программа может подлежать дальнейшей доработке, например можно задать больше каналов или больше время работы - по сути, это универсальная многоканальная система с ожиданием и накопителем.
Список литературы
1. Хомоненко А. Delphi 7 - СПб:БХВ-Петербург, 2003. - 495 с.
2. Фленов М. Библия Delphi - СПб:БХВ-Петербург, 2005. - 342 с.
3. Тюкачев Н. Программирование в Delphi для начинающих - СПб:БХВ-Петербург, 2007. - 672 с.
4. Культин Н. Delphi в задачах и примерах- СПб:БХВ-Петербург, 2012. - 288 с.
5. Белов В. Программирование в Delphi. Процедурное, объектно-ориентированное, визуальное. Учебное пособие - М:Горячая Линия - Телеком, 2014. - 240 с.
Приложение А. Листинг программы
KursUnit.pas
unit KursUnit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Math, ComCtrls, Buttons, ExtCtrls, Menus, Grids;
type
Vec = array[0..100] of real;
TMainForm = class(TForm)
MainMenu: TMainMenu;
ProcessInitial: TMenuItem;
RunInitial: TMenuItem;
FileInitial: TMenuItem;
ExitInitial: TMenuItem;
Panel1: TPanel;
RunSB: TSpeedButton;
ExitSB: TSpeedButton;
ResetSpeedButton: TSpeedButton;
N3: TMenuItem;
ResetInitial: TMenuItem;
TauEd: TEdit;
Label6: TLabel;
CurTimeEd: TEdit;
Label20: TLabel;
NZayavEd: TEdit;
Label22: TLabel;
OtkEdit: TEdit;
KanalPBar: TProgressBar;
Label10: TLabel;
OcheredPBar: TProgressBar;
Label11: TLabel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
KoefZagr1: TEdit;
KoefZagr2: TEdit;
SrDlinOch: TEdit;
MaxDlOch: TEdit;
Bevel1: TBevel;
Label7: TLabel;
Label8: TLabel;
VrMezhObr: TEdit;
VrObr1: TEdit;
VrObr2: TEdit;
Label5: TLabel;
Label9: TLabel;
procedure FormCreate(Sender: TObject);
procedure ExitInitialClick(Sender: TObject);
procedure ExitSBClick(Sender: TObject);
procedure ResetSpeedButtonClick(Sender: TObject);
procedure RunSBClick(Sender: TObject);
procedure ResetInitialClick(Sender: TObject);
procedure RunInitialClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
procedure Ver_P0;
{ Private declarations }
public
L:real; //Интервал между приходом заявок
M:real; //Интенсивность обслуживания
nKanal:integer; //Количество каналов
DlinOch:integer; //Длина очереди
NZayav:integer; //Количество заявок
Psi:real;
NoCh:real; //Среднее число заявок в очереди
N_Sv:integer; //Номер свободного места в очереди
N_Sv_Chanel:integer; //Номер свободного канала
Num_Zan_Chanel:Integer; //Количество занятых каналов
P:Vec; //Массив теоретических вероятностей
P_Pract:vec; //Массив практических вероятностей
Chanel:Vec; //Массив каналов
Ochered:Vec; //Массив очереди
Time:Vec; //Массив времени обработки событий
OtkFlag:boolean ; //Флаг отказа
MaxTime:real; //Предел времени обслуживанея
tau:real; // lambda
TempTime:real; //Текущее время
Kz1, Kz2: real; // Коэффициенты загрузки
function Step(arg:real;st:integer):real; //Возведение в степень
function Factorial(Arg:integer):integer; //Расчет факториала
procedure Ver; //Подсчет теоретических вероятностей
procedure SrDlinOcheredi; //Подсчет среднего числа заявок
procedure SysModal; //Моделирование СМО
procedure Rotate; //Сдвиг очеркди
procedure Reset; //Сброс расчетов
procedure Zan_Kanal(tau:real); //Подсчет занятых каналов
{ Public declarations }
end;
var
MainForm: TMainForm;
implementation
{$R *.DFM}
//----------------------------------------------------------------------------//
function TMainForm.Factorial;
var
i:integer;
Temp:integer;
begin
Temp:=1;
for i:=1 to Arg do
Temp:=Temp*i;
Factorial:=Temp;
end;
//----------------------------------------------------------------------------//
function TMainForm.Step;
var
i:integer;
Temp:real;
begin
Temp:= 1;
for i:=1 to st do
Temp:=Temp*arg;
// Step:=exp(st*Ln(arg));
Step:=Temp;
end;
//----------------------------------------------------------------------------//
procedure TMainForm.Ver_P0;
var
i,k:integer;
begin
k:=1;
p[0]:=0;
for i:=0 to nKanal+DlinOch do
begin
if i<= nKanal then
P[0]:=P[0]+(Step(psi,i)/Factorial(i))
else
begin
P[0]:=P[0]+Step(psi,i)/(Factorial(nKanal)*Step(nKanal,k));
k:=k+1;
end;
end;
P[0]:=1/P[0];
end;
//----------------------------------------------------------------------------//
procedure TMainForm.Ver;
var
i,k:integer;
BEGIN
Ver_P0;
k:=1;
for i:=1 to nKanal+DlinOch do
begin
if i<= nKanal then
P[i]:=(Step(psi,i)/Factorial(i))*P[0]
else
begin
P[i]:=(Step(psi,i)/(Factorial(nKanal)*Step(nKanal,k)))*P[0];
k:=k+1;
end;
end;
END;
//----------------------------------------------------------------------------//
procedure TMainForm.Rotate; //Сдвиг очереди
var
i:integer;
begin
for i:=0 to N_Sv-1 do
Ochered [i]:=Ochered [i+1];
Ochered [N_Sv]:=0;
N_Sv:=N_Sv-1;
end;
//----------------------------------------------------------------------------//
procedure TMainForm.SysModal;
var
i:integer;
flag :boolean;
Dtau:real;
TempTau:real;
MaxOch:integer;
begin
MaxOch:=0;
tau:= 1/StrToFloat(VrMezhObr.Text);
M:=1/((StrToFloat(VrObr1.Text)+(StrToFloat(VrObr2.Text)+2+1)));
flag:=true;
L:=tau;
Dtau:=0.1*1/M;
if 0.1*tau < Dtau then
Dtau:=0.05*tau;
TempTau:=0;
if Time[0]=0 then Time[0]:= tau;
TempTime:=TempTime+tau;
TauEd.Text:= FloatToStrF(tau,ffFixed,10,6);//tau
TauEd.Repaint;
CurTimeEd.Text:=FloatToStrF(TempTime,ffFixed,10,6);//TempTime
CurTimeEd.Repaint;
while TempTau <= tau do
begin
for i:=0 to N_Sv_Chanel-1 do //Проверка занятых каналов
begin
Chanel[i]:=Chanel[i] - Dtau;
if(Chanel[i] <=0) then //Канал Свободен?
begin
if (N_Sv > 0 ) then //Есть очередь?
begin
Chanel[i]:= 1/M;
Rotate; //сдвиг очереди
if (N_Sv < DlinOch) and flag then //есть место в очереди?
begin
Ochered [N_Sv]:=L;
N_Sv:=N_Sv+1;
flag:=false;
end;
end
else
if flag then
begin
Chanel[i]:= 1/M;
flag:=false;
end;
end;
end;
if (N_Sv_Chanel < nKanal) and flag then
begin
Chanel[N_Sv_Chanel]:= 1/M;
N_Sv_Chanel:=N_Sv_Chanel+1;
flag:=false;
end;
if (N_Sv < DlinOch) and flag then //есть место в очереди?
begin
Ochered [N_Sv]:=L;
N_Sv:=N_Sv+1;
if MaxOch <= N_Sv then MaxOch:=N_Sv;
MaxDlOch.Text:=FloatToStrF(MaxOch,ffFixed,10,6);
MaxDlOch.Repaint;
flag:=false;
end;
OtkFlag:= flag;
Num_Zan_Chanel:=0;
TempTau:=TempTau+Dtau;
Zan_Kanal(Dtau);
KanalPBar.Position:=0;
KanalPBar.Step:= Num_Zan_Chanel;
KanalPBar.Stepit;
OcheredPBar.Position:=0;
OcheredPBar.Step:= N_Sv;
OcheredPBar.Stepit;
end;
if OtkFlag then
begin
OtkEdit.Text:=IntToStr(StrToInt(OtkEdit.Text)+1);
OtkEdit.Repaint;
end;
NZayavEd.Text:=IntToStr(StrToInt(NZayavEd.Text)+1);
NZayavEd.Repaint;
end;
//----------------------------------------------------------------------------//
procedure TMainForm.Zan_Kanal;
var
i:integer;
begin
Num_Zan_Chanel:=0;
for i:=0 to nKanal do //N_SV_Chanel-1
if Chanel[i] >0 then
Num_Zan_Chanel:=Num_Zan_Chanel+1;
if (N_Sv = 0) //and (Num_Zan_Chanel > 0)
then
Time[Num_Zan_Chanel]:=Time[Num_Zan_Chanel]+tau
else
Time[Num_Zan_Chanel+N_Sv]:=Time[Num_Zan_Chanel+N_Sv]+tau;
end;
//----------------------------------------------------------------------------//
procedure TMainForm.FormCreate(Sender: TObject);
begin
//Параметры системы
nKanal:=2;
DlinOch:=10;
NZayav:=DlinOch+nKanal;
TempTime:=0; // Текущее время
MaxTime:= 480; //Предел времени обслуживания
end;
//----------------------------------------------------------------------------//
procedure TMainForm.ExitInitialClick(Sender: TObject);
begin
Close;
end;
//----------------------------------------------------------------------------//
procedure TMainForm.ExitSBClick(Sender: TObject);
begin
Close;
end;
//----------------------------------------------------------------------------//
procedure TMainForm.ResetSpeedButtonClick(Sender: TObject);
begin
Reset;
end;
//----------------------------------------------------------------------------//
procedure TMainForm.Reset;
var
i:integer;
begin
RunSb.Enabled:=true;
RunInitial.Enabled:=true;
N_Sv_Chanel:=0;
N_Sv:=0;
TempTime:=0;
for i:=0 to 100 do
begin
Chanel[i]:=0;
Ochered[i]:=0;
Time[i]:=0;
P_Pract[i]:=0;
end;
NZayavEd.Text:='0';
CurTimeEd.Text:='0';
TauEd.Text:='0';
OtkEdit.Text:='0';
KanalPBar.Position:=0;
KanalPBar.Step:= 0;
KanalPBar.Stepit;
OcheredPBar.Position:=0;
OcheredPBar.Step:= 0;
OcheredPBar.Stepit;
end;
//----------------------------------------------------------------------------//
procedure TMainForm.SrDlinOcheredi;
var
rho:real;
begin
rho:=tau/M;
NoCh:= (Power(rho,2)*(1-(nKanal+1-(nKanal*rho)))*Power(rho,nKanal))/((1-rho)*(1-Power(rho,nKanal+2)));
SrDlinOch.Text:=FloatToStrF(NoCh,ffFixed,10,6);
SrDlinOch.Repaint;
Kz1:=(tau*0.5)/(1/(StrToFloat(VrObr1.Text)));
KoefZagr1.Text:=FloatToStrF(Kz1,ffFixed,10,6);
KoefZagr1.Repaint;
Kz2:=(tau*0.5)/(1/(StrToFloat(VrObr2.Text)));
KoefZagr2.Text:=FloatToStrF(Kz2,ffFixed,10,6);
KoefZagr2.Repaint;
end;
//----------------------------------------------------------------------------//
procedure TMainForm.RunSBClick(Sender: TObject);
begin
while (TempTime <=MaxTime) do
begin
SysModal;
end;
SrDlinOcheredi;
RunSb.Enabled:=false;
RunInitial.Enabled:=false;
end;
//----------------------------------------------------------------------------//
procedure TMainForm.ResetInitialClick(Sender: TObject);
begin
Reset;
end;
procedure TMainForm.RunInitialClick(Sender: TObject);
begin
RunSBClick(Sender);
end;
procedure TMainForm.Button1Click(Sender: TObject);
begin
while (TempTime <=MaxTime) do
begin
SysModal;
end;
RunSb.Enabled:=false;
RunInitial.Enabled:=false;
end;
end.
Листинг Kursovoy.dpr:
uses
Forms,
KursUnit in 'KURSUNIT.PAS' {MainForm};
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(TMainForm, MainForm);
Application.Run;
end.
Размещено на Allbest.ru
...Подобные документы
Построение модели одноканальной системы массового обслуживания с отказами с использованием блоков библиотеки SimEvents. Проведение экспериментов, определение статистических и вероятностных характеристик системы в стационарном режиме; листинг моделей.
лабораторная работа [384,4 K], добавлен 20.05.2013Определение характеристик системы массового обслуживания – вероятность обслуживания заявки, занятости любого канала системы, среднее число занятых каналов. Описание блок-схемы алгоритма. Разработка имитационной и аналитической моделей и их сравнение.
курсовая работа [860,4 K], добавлен 24.12.2013Определение назначения и описание функций имитационных моделей стохастических процессов систем массового обслуживания. Разработка модели описанной системы в виде Q-схемы и программы на языке GPSS и C#. Основные показатели работы имитационной модели.
курсовая работа [487,4 K], добавлен 18.12.2014Система массового обслуживания как одна из основных моделей, используемых инженерами-системотехниками, примеры: телефонные станции, ремонтные мастерские, билетные кассы. Характеристика и особенности многоканальной системы массового обслуживания.
контрольная работа [404,2 K], добавлен 19.11.2012Характеристика системы массового обслуживания, куда поступают заявки обслуживания. Особенности моделирования системы массового обслуживания. Имитация работы системы массового обслуживания с относительными приоритетами. Отчеты полного факторного плана.
курсовая работа [1,1 M], добавлен 14.07.2012Системы, описывающие массовое обслуживание. Разработка системы массового обслуживания для магазинов. Постановка в очередь, порядок обслуживания, выбывание из очереди, периодичность попадания в нее. Описание программного модуля, листинг программы.
курсовая работа [171,8 K], добавлен 20.01.2010Served Time Generator как генератор интервалов времени обслуживания, общая характеристика. Способы построения модели многоканальной сети массового обслуживания с отказами с использованием блоков библиотеки SimEvents, рассмотрение особенностей сетей.
лабораторная работа [176,8 K], добавлен 20.05.2013Общая характеристика системы массового обслуживания, исходные данные для ее создания. Особенности построения алгоритма имитационной модели задачи о поступлении заявок (клиентов) в канал (парикмахерскую). Описание функционирования математической модели.
курсовая работа [154,1 K], добавлен 19.05.2011Компоненты и классификация систем массового обслуживания. Разработка СМО для лечебно-профилактического центра. Графическое представление СМО регистратуры ЛПЦ. Исследование режима функционирования обслуживающей системы. Алгоритм работы поликлиники.
курсовая работа [715,3 K], добавлен 28.01.2016Проектирование системы массового обслуживания, состоящей из двух генераторов псевдослучайных величин и электронной вычислительной машины, обрабатывающей поступающие заявки. Разработка структурной схемы и алгоритмической модели проектируемой системы.
курсовая работа [194,5 K], добавлен 30.10.2013Построение имитационной модели системы массового обслуживания, список и содержание ее активностей. Блок-схема алгоритма моделирования и текст процедуры. Моделирование случайных независимых величин и процессов. Оптимизация системы массового обслуживания.
курсовая работа [4,0 M], добавлен 28.05.2013Методика системного исследования реальной динамической сложной системы посредством разработки ее имитационной модели. Разработка программы реализации алгоритма имитационного моделирования системы массового обслуживания "Интернет-провайдерская фирма".
курсовая работа [2,0 M], добавлен 20.01.2010Система GPSS World как мощная универсальная среда моделирования как дискретных, так и непрерывных процессов, предназначенная для профессионального моделирования самых разнообразных процессов и систем. Системы массового обслуживания. Листинг программы.
курсовая работа [499,6 K], добавлен 25.12.2013Программа, моделирующая систему массового обслуживания (СМО). Моделирование программы имитации работы турникетов на стадионе (многоканальная СМО) в визуальной среде Delphi 7. Описание программного модуля, листинг программы и руководство пользователя.
курсовая работа [3,8 M], добавлен 20.08.2009Понятие, назначение и классы систем массового обслуживания. Создание имитационной модели вычислительного центра коллективного пользования в среде Matlab Simulink. Построение многоканальных СМО с отказами каналами; расчет показателей их эффективности.
курсовая работа [864,6 K], добавлен 26.06.2014Моделирование дневного стационара - многоканальной системы массового обслуживания с ожиданием. Определение оптимального числа койко-мест для данного количества клиентов. Практическое решение задачи с помощью программы, реализованной в среде Delphi 7.
курсовая работа [1,9 M], добавлен 15.01.2010Практические навыки системного исследования реальной динамической сложной системы на основе построения ее имитационной модели. Автоматизация работы по расчету эффективности системы массового обслуживания с понятным интерфейсом. Выбор алгоритма решения.
курсовая работа [1,0 M], добавлен 18.08.2009Определение функциональных характеристик систем массового обслуживания (СМО) на основе имитационного моделирования; синтез СМО с заданными характеристиками. Разработка программы на языке SIMNET II; расчет процесса работы СМО; подбор требуемого параметра.
лабораторная работа [623,8 K], добавлен 11.03.2011Основные элементы системы массового обслуживания, ее модель, принципы и задачи работы. Выбор входных распределений. Построение генераторов случайных чисел. Логика работы программы, планирование эксперимента. Результаты моделирования и рекомендации.
курсовая работа [2,5 M], добавлен 05.11.2009Торговый центр как однофазная многоканальная система с одной очередью конечной длины Структура и элементы моделей системы массового обслуживания. Очередь и дисциплины ее обслуживания. Принципы и этапы моделирования средств массового обслуживания на ЭВМ.
лабораторная работа [93,2 K], добавлен 04.06.2009