Разработка системы массового обслуживания для информационно-поисковой системы на базе двух электронно-вычислительных машин

Характеристика компонентов и классификация моделей массового обслуживания. Анализ одноканальной и многоканальной систем массового обслуживания с отказами и ожиданиями. Разработка логической схемы и алгоритма работы программы, ее тестирование и листинг.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 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.2010

  • Served 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.