Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Имитационное моделирование процесса обслуживания

Тип Курсовая
Предмет Информатика

ID (номер) заказа
3337409

500 руб.

Просмотров
813
Размер файла
329.95 Кб
Поделиться

Ознакомительный фрагмент работы:


Содержание
Введение. TOC \o "1-3" \h \z \u HYPERLINK \l "_Toc533117320" 3
1. Постановка задачи.4
2.Цель работы5
3. Расчет характеристик системы массового обслуживания аналитическими методами6
4.Результаты расчётов PAGEREF _Toc533117327 \h 25. Алгоритм программы PAGEREF _Toc533117328 \h 26. Разработка программы имитационного моделирования.16
Заключение21
Список используемой литературы22
Приложение23
ВВЕДЕНИЕЗа последнее время в самых разных областях практики возникла необходимость в решении различных вероятностных задач, связанных с работой так называемых систем массового обслуживания (СМО). Примерами таких систем могут служить: перевозка пассажиров, ремонтные мастерские, билетные кассы, стоянки такси, железнодорожные станции и т.п.
В теории массового обслуживания изучаются системы, на вход которых поступает случайный поток заявок (требований), приходящихся в общем случае на случайные моменты времени. Поступившая заявка обслуживается в системе путем предоставления ей некоторых ресурсов на какое-то время и, будучи в той или иной мере обслуженной, покидает систему. Наиболее характерный момент функционирования систем массового обслуживания – это наличие очередей, в которых заявки ждут момента освобождения ресурсов, занятых обслуживанием других заявок. В простейшем случае система массового обслуживания определяется потоком заявок, длиной очереди и дисциплиной обслуживания (порядком выбора заявок из очереди), числом каналов (аппаратов) обслуживания, распределением длительности обслуживания. В более сложных случаях рассматривается надежность аппаратов обслуживания. Объектом исследования является сортировочная горка железнодорожной грузовой станции.

Постановка задачиЖелезнодорожная сортирующая горка предназначена для рассортировки ж/д составов. Входной поток образован составами двух типов – со скоропортящимися грузами (интенсивность потока 1) и грузами обычного типа (интенсивность 2). Обслуживающим аппаратом является сортирующая горка, интенсивность обслуживания .
Прибывающие составы поступают в накопители соответственно Н1, Н2, емкость которых – ограничена. Поезда первого типа (со скоропортящимися грузами) имеют приоритет в обслуживании. Их время ожидания в очереди – ограничено значением Тож.Если фактическое время ожидания превысит значения Тож, то в системе происходит отказ.

Цель работыПровести имитационное моделирование процесса обслуживания.
Определить характеристики качества обслуживания:
длину очередей;
времени ожидания в очереди, вероятность отказа в обслуживании.
При каком соотношении потоков 1/2 поток поездов со скоропортящимся грузов «запирает» обработку составов с обычным грузом?
Таблица 1
Исходные данные
Параметр Обозначение Единица измерения № варианта
1 2 3 4 5
Интенсивность потока ж/д составов со скоропортящимся грузов 1 Состав/сут10 20 5 10 10
Интенсивность потока ж/д составов с обычным грузом 2 Состав/сут20 10 30 30 40
Интенсивность обслуживания на горке Состав/час 5 4 3 6 4
Максимально допустимое время ожидания в очереди на обслуживание Тожчас 2 3 2 3 4
Продолжительность работы Т час 8 16 8 16 8
3.Расчет характеристик системы массового обслуживания аналитическими методамиПроцесс расформирования-формирования составов поездов на сортировочных горках состоит из операций, выполняемых горочными локомотивами (рис. 1). Для каждого состава поезда порядок выполнения этих операций следующий:
— заезд горочного локомотива от вершины горки в хвост состава, находящегося в парк приема (ПП);
— надвиг состава до вершины горки;
— роспуск состава с горки;
— осаживание вагонов на путях сортировочного парка (СП) для устранения промежуточных «окон» между вагонами и формирование состава (на отдельных станциях эти операции выполняются специальными локомотивами).

Рис. 1. Технологическая схема расформирования состава на горке
В процессе роспуска вагоны скатываются на специализированные пути СП для каждого назначения. Последовательность скатывания вагонов на сортировочном пути определяет и последовательность расположения их в новом накапливающемся составе.
После завершения накопления вагонов на состав требуется их соединить и выставить в парк отправления. В некоторых составах необходимы маневровые передвижения для перестановки вагонов при устранении несовпадения «центров»осей автосцепок, постановки прикрытия для вагонов, требующих особых условий постановки в поезд и др.
Таким образом, на горочных станциях основной процесс расформирования-формирования совершается на главном сортировочном устройстве — горке — посредством однократной переработки вагонов.
В данном варианте на сортировочную горку поступают ж/д составы двух типов: со скоропортящимся грузом и с обычным грузом. Из-за условий перевозки составам со скоропортящимся грузом предоставляется приоритет в обработке, для сокращения времени ожидания в очереди.
У нас представлена система массового обслуживания (далее везде по работе — СМО). Рассмотрим ее как СМО без накопителя, чтобы рассчитать среднюю длину очереди и определить емкость накопителя. В аналитических расчетах рассмотрим как СМО без приоритеиа.
Емкость накопителя m определяется как максимальное количество заявок, которое может быть в нем размещено.
Вероятность того, что в момент времени t в системе (т.е. в накопителе или в обслуживающих аппаратах) находится ровно К заявок равна
(1)
где =/μ; q = ρ /n, Pо - вероятность того, что СМО свободна (т.е. заявки отсутствуют, как в очереди, так и в обслуживающем аппарате), вычисляемая по формулам:
. (2)
Здесь S – сумма геометрической прогрессии
S= q + q2 + q3 +…+ qm ,(3)
При m = ∞ (бесконечная емкость накопителя), определяемая формулой
S =q / (1 – q )(4)
Вероятность отказа в обслуживании равна
.(5)
Отсюда определяется вероятность обслуживания
.(6)
Пропускная способность СМО и интенсивность потока отказов находится по формулам:
А = *Робсл, Аотк = *Ротк . (7)
Здесь пропускная способность А определяется как среднее число заявок, получивших обслуживание за единицу времени, а интенсивность потока отказов – как среднее число заявок, получивших отказ в обслуживании за единицу времени.
Средняя длина очереди является математическим ожиданием закона распределения табл. 2. Вычислить ее значение можно по формуле:
= 1*Pn+1 +2* Pn+2 +3* Pn+3 +… + m*Pn+m(8)
или по формуле:
. (9)
Таблица 2
Число заявок в очереди 0 1 2 … m
Вероятности …
Вычислив значение средней длины очереди, определяем значения среднего времени ожидания обслуживания заявок в очереди и среднее время пребывания в СМО
, (10)
, (11)
Условие того, что СМО справляется с обслуживанием потока.Это условие имеет вид неравенства:
<n* , (12)
где -интенсивность входного потока заявок, n – число обслуживающих аппаратов, - интенсивность обслуживания.Здесь произведение n характеризует суммарную производительность обслуживающих аппаратов - среднее количество заявок, которое могут обслужить все n обслуживающих аппаратов. Условие означает, что суммарная производительность ОА должна быть выше среднего числа заявок, поступающих в единицу времени на обслуживание. В данном случае, используется один обслуживающий аппарат – сортировочная горка.Выражение называется также условием конечности очереди. Если это условие не выполняется, в СМО наблюдается неограниченный рост очереди.
OA свободен
Накопитель
ОА-1
Выходной поток
Входной поток
Нет
Да
=1,25 сост/час
OA свободен
Накопитель
ОА-1
Выходной поток
Входной поток
Нет
Да
=1,25 сост/час
Схема 1. Движение заявок в СМО (условия аналит. части)
5101590114935Выходной поток
00Выходной поток
3075940324485If k1>0, обсл. k1, else обсл.k2, еслиk2>0
00If k1>0, обсл. k1, else обсл.k2, еслиk2>0
858520245110Н1, очередь k1
00Н1, очередь k1
-133350154940λ1=10 сост/сут00λ1=10 сост/сут
515239038036400206311538290500207264077470002734945351789004265295380999004592320225425ОА-1
00ОА-1
-153035704850λ2=20 сост/сут00λ2=20 сост/сут862965467995Н2, очередь k2
00Н2, очередь k2
343535607695003397256286500-22225102870Входной поток
00Входной поток
6800851571625Схема 2. Движение заявок в СМО (условия имитац. части)
00Схема 2. Движение заявок в СМО (условия имитац. части)
Результаты расчётовИнтенсивность входного потока(λ1+λ2) = 30 сост/сут = 1.25 сост/час.
Интенсивность обслуживания μ = 5 сост/час.
Относительная интенсивность =/μ=1.25/5= 0.25.
Параметр процесса обслуживания: q =/n = 0.25/1 = 0.25≤1, - СМО справляется с обслуживанием .Вероятности состояний (Р≈0.999):
P[0] = 0.75;P[1] = 0.1875;
P[2] = 0.046879;P[3] = 0.0117;P[4] = 0.003921.
Вероятность отказа в обслуживании: Р =0.39%
Вероятность обслуживания: Р = 99.61%
Средние характеристики очереди:
Средняя длина очереди:L= 0.08сост/час = 1.92 сост/сут.
Допустим, емкость накопителя равна 3 ж/д составам. Накопитель – подъездные пути.
Вероятность отсутствия очереди: Р = 93.75%
Вероятностьналичия очереди: Р = 6.25%
Среднее время ожидания в очереди:= 0.064 ч = 3.84 мин = 230.4 с.
Время пребывания заявки в СМО: 0.263 ч = 15.8 мин = 948 с.Для 8-часовой смены:
Пропускная способность СМО: Аобсл=9,961 ≈ 10 сост/см.
Интенсивность потока отказов: Аотк= 0,039 ≈ 0 сост/см.
Для ответа на вопрос: «При каком соотношении потоков 1/2 поток поездов со скоропортящимся грузов «запирает» обработку составов с обычным грузом?» разработаем программу имитационного моделирования.

Алгоритм программыБлок-схема программы
-2895601219204. Счетчик времени
time:= time + dtБлок 7
1. Ввод исходных данных:ljamda1, ljamda2, n, mju, h1, h2,timeWait
2. НУ датчика случайных чисел
U1:=3.14159265; U2:=0.542101887;
3. НУсортировочной горки ж/д станции
time:=0; dt:=1; a:=0; b:=0; q:=0; p:=0; o:=0; coun1RefuStar:=0; counRefu2Star:=0; coun1RefTime:=0; veref:=0;coun1:=0; coun2:=0; done:=0;Задаеммассивы:SetLength(timeArr1, a+1); SetLength(timeArr2, b + 1); SetLength(timeQu1, h1); SetLength(timeQu2, h2); SetLength(timeQu1T, h1); SetLength(timeQu2T, h2); SetLength(ServArr, n); SetLength(ServArrT, n); SetLength(timeServSrt, q + 1); SetLength(timeSErvFin, q +1 );SetLength(timeWait1, p + 1); SetLength(timeWait2, o + 1);
Блок 9
004. Счетчик времени
time:= time + dtБлок 7
1. Ввод исходных данных:ljamda1, ljamda2, n, mju, h1, h2,timeWait
2. НУ датчика случайных чисел
U1:=3.14159265; U2:=0.542101887;
3. НУсортировочной горки ж/д станции
time:=0; dt:=1; a:=0; b:=0; q:=0; p:=0; o:=0; coun1RefuStar:=0; counRefu2Star:=0; coun1RefTime:=0; veref:=0;coun1:=0; coun2:=0; done:=0;Задаеммассивы:SetLength(timeArr1, a+1); SetLength(timeArr2, b + 1); SetLength(timeQu1, h1); SetLength(timeQu2, h2); SetLength(timeQu1T, h1); SetLength(timeQu2T, h2); SetLength(ServArr, n); SetLength(ServArrT, n); SetLength(timeServSrt, q + 1); SetLength(timeSErvFin, q +1 );SetLength(timeWait1, p + 1); SetLength(timeWait2, o + 1);
Блок 9

4051935966914500
265366528892500
342901670055. Прибытие заявки. Формирование очереди на обслуживание
if (time >= timeArr1[a]) then begina:=a+1;RAV;tvh:=ln(gamma)/(-ljamda1); timeArr1[a]:=tvh + timeArr1[a]; Inc(coun1);if (time>= timeArr2[b]) thenbeginb:=b+1;RAV; tvh:=ln(gamma)/(-ljamda2); timeArr2[b]:=tvh+ timeArr2[b] ; Inc(coun2);
005. Прибытие заявки. Формирование очереди на обслуживание
if (time >= timeArr1[a]) then begina:=a+1;RAV;tvh:=ln(gamma)/(-ljamda1); timeArr1[a]:=tvh + timeArr1[a]; Inc(coun1);if (time>= timeArr2[b]) thenbeginb:=b+1;RAV; tvh:=ln(gamma)/(-ljamda2); timeArr2[b]:=tvh+ timeArr2[b] ; Inc(coun2);

259143515621000
2682239698500
215709521590на стр. 14
00на стр. 14

2922269297180002817495-44386500250126547625на стр. 13
00на стр. 13

3676652476506. ПроверкасвободногоОАfor i := 0 to Length(timeQu1)-1 do if (timeQu1[i] = 0 ) then beginisFir:= true; Break; end;for i := 0 to Length(timeQu2)-1 do if (timeQu2[i] = 0 ) then beginisSec:= true; Break; end;
006. ПроверкасвободногоОАfor i := 0 to Length(timeQu1)-1 do if (timeQu1[i] = 0 ) then beginisFir:= true; Break; end;for i := 0 to Length(timeQu2)-1 do if (timeQu2[i] = 0 ) then beginisSec:= true; Break; end;

289306034480500
6819902209807. Обслуживание
if (isFree) and (isReq1) thenbeginRAV; servTime:=ln(gamma)/(-mju); timeServSrt[q]:=time;timeSErvFin[q]:=servTime + time; if (ServArr[i] = 0) then beginServArr[i]:=q+1; ServArrT[i]:=timeSErvFin[q];end;
007. Обслуживание
if (isFree) and (isReq1) thenbeginRAV; servTime:=ln(gamma)/(-mju); timeServSrt[q]:=time;timeSErvFin[q]:=servTime + time; if (ServArr[i] = 0) then beginServArr[i]:=q+1; ServArrT[i]:=timeSErvFin[q];end;

292036419050000
11487151066808. ЗавершениеобслуживанияServArrT[i]:=0; ServArr[i]:=0; Inc(done);end;
008. ЗавершениеобслуживанияServArrT[i]:=0; ServArr[i]:=0; Inc(done);end;

291655514922500
977265863609. Накоплениестатистикиif ( maxDl1 < AverDL1E[i]) then maxDl1:=AverDL1E[i]; if ( maxDl2 < AverDL2E[i]) then maxDl2:=AverDL2E[i]; if ( maxWaitTime1 < timeWait1[i]) then maxWaitTime1:=timeWait1[i];if ( maxWaitTime2 <timeWait2[i]) thenmaxWaitTime2:=timeWait2[i];
009. Накоплениестатистикиif ( maxDl1 < AverDL1E[i]) then maxDl1:=AverDL1E[i]; if ( maxDl2 < AverDL2E[i]) then maxDl2:=AverDL2E[i]; if ( maxWaitTime1 < timeWait1[i]) then maxWaitTime1:=timeWait1[i];if ( maxWaitTime2 <timeWait2[i]) thenmaxWaitTime2:=timeWait2[i];

293624021145500
110109014160510. Статистическаяобработка averWaitTIme1:= averWaitTIme1 + timeWait1[i]; averWaitTIme2:= averWaitTIme2 + timeWait2[i]; averWaitTIme1:= averWaitTIme1 / Length(timeWait1); averWaitTime2:=averWaitTime2 / Length(timeWait2);
0010. Статистическаяобработка averWaitTIme1:= averWaitTIme1 + timeWait1[i]; averWaitTIme2:= averWaitTIme2 + timeWait2[i]; averWaitTIme1:= averWaitTIme1 / Length(timeWait1); averWaitTime2:=averWaitTime2 / Length(timeWait2);

28765506159500
294640010668000
243840056515на стр. 15
00на стр. 15

2962274195580002590800-86360на стр. 14
00на стр. 14
2876550-56070500
146304020764511. Выводданныхa, b, o, p,coun1RefuStar, counRefu2Star, coun1RefTime, maxWaitTime1, maxWaitTime2, averWaitTIme1, averWaitTIme2, veref, maxDl1, maxDl2
0011. Выводданныхa, b, o, p,coun1RefuStar, counRefu2Star, coun1RefTime, maxWaitTime1, maxWaitTime2, averWaitTIme1, averWaitTIme2, veref, maxDl1, maxDl2

298132520129500
2224405123190Happy End!
00Happy End!

Рис 2.Блок-схема программы

Разработка программы имитационного моделирования
Данная программа создана для расчета таких основных характеристик как: максимальное и среднее время ожидания обслуживания, длина очереди, количество поступивших и обслуженных заявок, количество заявок, получивших отказ. Все эти характеристики рассчитываются для 2 типов ж/д составов, со скоропортящимся и обычным грузом.
Рассмотрим основные блоки программы.
Блок 1: Ввод исходных данных.
В данном блоке задаются переменные: интенсивность входного потока заявок (количество поступающих составов), интенсивность обслуживания, объем накопителей (для каждого типа составов), количество ОА (в нашем случае 1 – горка), максимальное время ожидания обслуживания составов 1 типа. Затем присваиваются компоненты Edit.
Блок 2: НУ датчика случайных чисел.
В следующем блоке присваиваются значения счетчика реализаций и константы u1 и u2.
Блок 3: НУ сортировочной горки.
В данном блоке присваиваются значения следующим переменным: счетчик реализаций, времени, заявок, обслуживания заявок, длина очереди, максимальная длина очереди, время ожидания обслуживания, максимальное время обслуживания, время прибытия, максимальное время прибытия; массивам: обслуживания и времени конца обслуживания. Рассчитывается время получения заявки.
Блок 4: Счетчик времени.
В этом блоке описывается счетчик времени.
Блок 5: Формирование очереди на обслуживание.
В данном блоке формируется счетчик заявок с условием времени.
Блок 6: Проверка свободного обслуживающего аппарата.
Блок 7: Обслуживание на станции.
В следующем блоке описывается массив обслуживания. Рассчитывается время ожидания обслуживания, прибытия состава.
Блок 8: Завершение обслуживания.
Расчет времени обслуживания и его запись в массив. Отметка о количестве обработанных заявок.
Блок 9: Накопление статистики.
В данном блоке из массивов счетчика заявок, ожидания заявок, длины очереди, времени ожидания, времени прибытия формируются результативные массивы. Выводятся значения основных подсчитанных характеристик.
Проверяется условие количества реализаций, при выполнении которого переходим к блоку 3.
Блок 10: Статическая обработка.
В данном блоке происходит вывод посчитанных значений на экран.
Результаты имитационного моделирования.
Вводим исходные данные λ1=10 сост/сут,λ2=20 сост/сут, μ=5 сост/час, n=1 шт, нажимаем кнопку «Запуск» и получаем вывод результатов имитационного моделирования (рис. 3).

Рис. 3. Ввод данных при условиях 8-часовой смены, исходные данные 1 варианта
Проверим изменение характеристик при других условиях. Введем исходные данные λ1=5 сост/сут, λ2=30 сост/сут, μ=3 сост/час, n=1 шт, нажимаем кнопку «Запуск» и получаем вывод результатов (рис. 4).

Рис. 4. Ввод данных при условиях 8-часовой смены, исходные данные 3 варианта
Увеличим время рабочей смены в 2 раза и проследим за изменениями характеристик (рис.5).

Рис. 5. Ввод данных при условиях 16-часовой смены, исходные данные 2 варианта
Уменьшим емкость накопителей с 3 до 1 состава и заметим, что никаких изменений не произойдет, ведь максимальная длина очереди 1 состав (рис.6).

Рис. 6. Ввод данных при уменьшенной емкости накопителя, исходные данные 1 варианта
Попробуем найти такое соотношение входных потоков, при котором составы 1 типа будут «запирать» обработку составов 2 типа. Введем исходные данные λ1=40 сост/сут, λ2=10 сост/сут, μ=3 сост/час, n=1 шт, смена 16 часов (рис.7).

Рис. 7. Ввод данных при новых условиях
По результатам расчета программы увидим появление отказа в обслуживании составов обоих типов, однако отношение количества обслуженных заявок и заявок, получивших отказ в обслуживании, составов 1 типа, во много раз меньше, чем у составов 2 типа. Следовательно, обработка составов со скоропортящимся грузом «запирает» обработку составов обычным грузом.

Заключение
В ходе курсовой работы был проанализирован процесс обслуживания входного потока ж/д составов 2 типов (со скоропортящимся и с обычным грузом) на сортировочной горке. Расчёты были произведены на основании характеристик СМО с ограниченной ёмкостью накопителя. Во время работы для получения результатов использовались метод имитационного моделирования и аналитический метод, из которых можно сделать вывод об эффективности работы станции при различных вариантах исходных данных.
Таким образом, можно сделать следующие выводы:
1. Для успешного функционирования сортировочной станции с входным потоком до 50 сост/сут (в сумме) и интенсивностью обслуживания 3 сост/час СМО работает без отказов в обслуживании. Представлены результаты расчётов аналитического и метода имитационного моделирования.
2. Если увеличить интенсивность входного потока ж/д составов больше 50 сост/сут при интенсивности обслуживания 3 сост/час, то эффективность работы сортировочной станции уменьшается, появляются отказы в облуживании составов.
3. При соотношении потоков 1/2=4 и более поток поездов со скоропортящимся грузов «запирает» обработку составов с обычным грузом. Результаты моделирования представлены на рис. 7.
Из полученных данных можно сделать вывод, чтосортировочная станция работает эффективно при относительно невысоком входном потоке ж/д составов. При увеличении интенсивности входного потока составов система массового обслуживания начинает работать с отказами в обслуживании. В таком случае, разумно увеличить скорость обработки ж/д составов, от чего увеличится интенсивность обслуживания и система позволит принимать большее количество составов.
Список используемой литературы:
Авсиевич А.В., Авсиевич Е.Н. Теория массового обслуживания. Потоки требований, системы массового обслуживания. Самара: СамГАПС, 2015. 24 с.
Азгальдов Г.Г., Райхман Э.П. Экспертные методы в оценке качества товаров. М.: Экономика, 2018. 151 с.
Акопов В.С. Методические основы менеджмента: Учебное пособие для преподавателей и студентов технических и экономических ВУЗов. М.: Изд-во МГТУ им. Н.Э. Баумана, 2017. 78 с.
Волков И.К., Загоруйко Е.А. Исследование операций. М.: Изд-во МГТУ им. Н.Э. Баумана, 2015. 435 с.
Иванченко В. Информационные технологии и система управления // Экономист. 2012. № 4. С. 37-41.
Ивницкий В.Л. Теория массового обслуживания. М.: Физматлит, 2016.
772 с.
Информация и риск в маркетинге: пер. с англ. / Р.Д. Баззел [и др.]. М.: Финстатинформ, 2018. 566 с.
Калянов Г.Н. Моделирование, анализ, реорганизация и автоматизация бизнес-процессов. М.: Финансы и статистика, 2017. 240 с.
Кошуняева Н.В., Патронова Н.Н. Теория массового обслуживания.
Практикум по решению задач. Архангельск: Изд-во «КИРА», 2013. 108 с.

ПРИЛОЖЕНИЕ
КодпрограммыunitUnit3;
interfaceusesWinapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type TForm3 = class(TForm)
edt1: TEdit;
edt2: TEdit;
edt3: TEdit;
edt4: TEdit;
lbl1: TLabel;
lbl2: TLabel;
lbl3: TLabel;
lbl4: TLabel;
lbl5: TLabel;
edt5: TEdit;
lbl6: TLabel;
edt6: TEdit;
mmo1: TMemo;
btn1: TButton;
edt7: TEdit;
lbl7: TLabel;
Button1: TButton;
procedure btn1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private{ Private declarations }
public{ Public declarations }
end;
var Form3: TForm3;
ljamda1, ljamda2,tvh1, tvh2, u, u1, u2, gamma: Real;
implementationprocedure RAV;
begin U:=U1+U2;
U1:=U2;
if U>4 then U:=U-4;
U2:=U;
gamma:=U/4;
end;
{$R *.dfm}
procedure TForm3.btn1Click(Sender: TObject);
vari: Integer;
a, b, q, p, o: Integer;
n: integer;
mju: Real;
timeMod, time, dt: real;
timeWait, servTime: Real;
coun1, coun2: integer;
k2, k1: integer;
Min, MinHelp:integer;
coun1RefuStar, counRefu2Star, coun1RefTime: integer;
isFir, isSec: Boolean;
isFree: Boolean;
isReq1, isReq2: Boolean;
h1, h2: integer;
timeArr1, timeArr2: array of real;
timeQu1, timeQu2: array of Integer;
timeQu1T, timeQu2T: array of real;
ServArr: array of integer;
ServArrT: array of Real;
timeServSrt, timeSErvFin: array of Real;
timeWait1: array of real;
timeWait2: array of real;
maxDl1, maxDL2: real;
averDL1, averDL2: real;
AverDL1E, AverDL2E: array of real;
averWaitTIme1, averWaitTime2:real;
maxWaitTime1, maxWaitTime2: real;
veref: real;
done: Integer;
begin U1:=3.14159265; U2:=0.542101887;
mmo1.Lines.Clear;
ljamda1:=StrToFloat(edt1.Text);
ljamda2:=StrToFloat(edt2.Text);
mju:=StrToFloat(edt3.Text) / 3600;
h1:=StrToInt(edt4.Text);
h2:=StrToInt(edt5.Text);
timeWait:=StrToFloat(edt6.Text);
timeWait:=timeWait * 3600;
n:=StrToInt(edt7.Text);
ljamda1:=ljamda1 / 86400;
ljamda2:=ljamda2 / 86400;
timeMod:=28800;
time:=0; dt:=1; a:=0; b:=0; q:=0; p:=0; o:=0;
coun1RefuStar:=0; counRefu2Star:=0;
coun1RefTime:=0; veref:=0;
coun1:=0; coun2:=0; done:=0;
SetLength(timeArr1, a+1);
SetLength(timeArr2, b + 1);
SetLength(timeQu1, h1);
SetLength(timeQu2, h2);
SetLength(timeQu1T, h1);
SetLength(timeQu2T, h2);
SetLength(ServArr, n);
SetLength(ServArrT, n);
SetLength(timeServSrt, q + 1);
SetLength(timeSErvFin, q +1 );
SetLength(timeWait1, p + 1);
SetLength(timeWait2, o + 1);
isFree:=False; isReq1:=False; isReq2:=False;
RAV;
tvh1:=ln(gamma)/(-ljamda1);
timeArr1[0]:=tvh1;
RAV;
tvh2:=ln(gamma)/(-ljamda2);
timeArr2[0]:=tvh2;
while (time <= timeMod)do
begintime:= time + dt;
if (time >= timeArr1[a]) then
begina:=a+1;
SetLength(timeArr1, a+1);
SetLength(AverDL1E, a+1);
RAV;
tvh1:=ln(gamma)/(-ljamda1);
timeArr1[a]:=tvh1 + time + timeArr1[a];
Inc(coun1);
fori := 0 to Length(timeQu1)-1 do
if (timeQu1[i] = 0 ) then
beginisFir:= true; Break;
end;
if (isFir) then
beginfor i:=0 to Length(timeQu1)-1 do
beginif (timeQu1[i] = 0) then begin
timeQu1[i]:=a; timeQu1T[i]:=timeArr1[a-1];
Break; end;
end;
end else
beginInc(coun1RefuStar);
end;
k1:=0;
for I := 0 to Length(timeQu1)-1 do
beginif (timeQu1[i] <> 0) then
k1:=k1 + 1;
end;
AverDL1E[a]:=k1;
isFir:=false;
end;
if (time >= timeArr2[b]) then
beginb:=b+1;
SetLength(timeArr2, b+1);
SetLength(AverDL2E, b+1);
RAV;
tvh2:=ln(gamma)/(-ljamda2);
timeArr2[b]:=tvh2 + time + timeArr2[b];
Inc(coun2);
fori := 0 to Length(timeQu2)-1 do
if (timeQu2[i] = 0 ) then
beginisSec:= true; Break;
end;
if (isSec) then
beginfor i:=0 to Length(timeQu2)-1 do
beginif (timeQu2[i] = 0) then begin
timeQu2[i]:=b; timeQu2T[i]:=timeArr2[b-1];
Break; end;
end;
end else
beginInc(counRefu2Star);
end;
k2:=0;
for I := 0 to Length(timeQu2)-1 do
beginif (timeQu2[i] <> 0) then
k2:=k2 + 1;
end;
AverDL2E[b]:=k2;
isSec:=false;
end;
fori := 0 to Length(ServArr)-1 do
if (ServArr[i] = 0 ) then
beginisFree:= true; Break;
end;
fori := 0 to Length(timeQu1)-1 do
if (timeQu1[i] <> 0 ) then
begin isReq1:= true; Break;
end;
fori := 0 to Length(timeQu2)-1 do
if (timeQu2[i] <> 0 ) then
begin isReq2:= true; Break;
end;
if k1>0 then
begin RAV;
servTime:=ln(gamma)/(-mju);
SetLength(timeServSrt, q + 1);
SetLength(timeSErvFin, q +1 );
SetLength(timeWait1, p + 1);
timeServSrt[q]:=time;
timeSErvFin[q]:=servTime + time;
for i:=0 to Length(ServArr)-1 do
beginif (ServArr[i] = 0) then begin
ServArr[i]:=q+1; ServArrT[i]:=timeSErvFin[q];
Break; end;
end;
for I := 0 to Length(timeQu1)-1 do
beginif (timeQu1[i] <> 0) then
beginmin:=timeQu1[i];
MinHelp:=i;
Break;
end;
end;
fori := 1 to Length(timeQu1)-1 do
if (Min > timeQu1[i]) and (timeQu1[i] <> 0) then
beginmin:=timeQu1[i];
MinHelp:=i;
end;
timeWait1[p]:= time - timeQu1T[MinHelp];
timeQu1[MinHelp]:=0;
timeQu1T[MinHelp]:=0;
p:=p+1;
q:=q+1;
end else
if k2>0 then
begin RAV;
servTime:=ln(gamma)/(-mju);
SetLength(timeServSrt, q + 1);
SetLength(timeSErvFin, q +1 );
SetLength(timeWait2, o + 1);
timeServSrt[q]:=time;
timeSErvFin[q]:=servTime + time;
for i:=0 to Length(ServArr)-1 do
beginif (ServArr[i] = 0) then begin
ServArr[i]:=q+1; ServArrT[i]:=timeSErvFin[q];
Break; end;
end;
for I := 0 to Length(timeQu2)-1 do
beginif (timeQu2[i] <> 0) then
beginmin:=timeQu2[i];
MinHelp:=i;
Break;
end;
end;
fori := 1 to Length(timeQu2)-1 do
if (Min > timeQu2[i]) and (timeQu2[i] <> 0) then
beginmin:=timeQu2[i];
MinHelp:=i;
end;
timeWait2[o]:= time - timeQu2T[MinHelp];
timeQu2[MinHelp]:=0;
timeQu2T[MinHelp]:=0;
o:=o + 1;
q:=q+1;
end;
for I := 0 to Length(timeQu1T)-1 do
beginif (time - timeQu1T[i] >timeWait) and (timeQu1T[i] <> 0) then
begintimeQu1[i]:=0;
timeQu1T[i]:=0;
coun1RefTime:=coun1RefTime+1;
end;
end;
fori := 0 to Length(ServArr)-1 do
beginif (time>=ServArrT[i]) and (ServArr[i] <> 0) then begin
ServArrT[i]:=0; ServArr[i]:=0;
Inc(done);
end;
end;
isReq1:=false;
isReq2:=false;
isFree:=false;
end;
for I := 0 to Length(timeWait1)-1 do
begin averWaitTIme1:= averWaitTIme1 + timeWait1[i];
end;
for I := 0 to Length(timeWait2)-1 do
begin averWaitTIme2:= averWaitTIme2 + timeWait2[i];
end;
averWaitTIme1:= averWaitTIme1 / Length(timeWait1);
averWaitTime2:=averWaitTime2 / Length(timeWait2);
maxWaitTime1:=timeWait1[0];
for I := 1 to Length(timeWait1)-1 do
if ( maxWaitTime1 < timeWait1[i]) then
maxWaitTime1:=timeWait1[i];
maxWaitTime2:=timeWait2[0];
for I := 1 to Length(timeWait2)-1 do
if ( maxWaitTime2 < timeWait2[i]) then
maxWaitTime2:=timeWait2[i];
maxDl1:=AverDL1E[0];
for I := 1 to Length(AverDL1E)-1 do
if ( maxDl1 < AverDL1E[i]) then
maxDl1:=AverDL1E[i];
maxDl2:=AverDL2E[0];
for I := 1 to Length(AverDL2E)-1 do
if ( maxDl2 < AverDL2E[i]) then
maxDl2:=AverDL2E[i];
veref:=coun1RefuStar + counRefu2Star + coun1RefTime;
veref:=veref / ((a + b) / 100);
mmo1.Lines.Add('Всегопоступилозаявок: ' + IntTOStr(a + b) + ' шт.');
mmo1.Lines.Add('Заявок 1-готипа: ' + IntTOStr(a) + ' шт.');
mmo1.Lines.Add('Заявок 2-готипа: ' + IntTOStr(b) + ' шт.');
mmo1.Lines.Add('Заявокобслужено: ' + IntTOStr(o + p) + ' шт.');
mmo1.Lines.Add('Заявокобслужено 1-готипа: ' + IntTOStr(p) + ' шт.');
mmo1.Lines.Add('Заявокобслужено 2-готипа: ' + IntTOStr(o) + ' шт.');
mmo1.Lines.Add('Отказоввсего: ' + IntTOStr(coun1RefuStar + counRefu2Star + coun1RefTime) + ' шт.');
mmo1.Lines.Add('Отказов по первому типу, по причине отсутствия мест: '+ IntTOStr(coun1RefuStar) + ' шт.'); mmo1.Lines.Add('Отказов по второму типу, по причине отсутствия мест: '+ IntTOStr(counRefu2Star) + ' шт.'); mmo1.Lines.Add('Отказов по первому типу, по причине превышения времени ожидания: '+ IntTOStr(coun1RefTime) + ' шт.'); mmo1.Lines.Add('Максимальное врем. ожид по 1 типу: ' + FloatToStr(Int(maxWaitTime1)) + ' сек.'); mmo1.Lines.Add('Максимальное врем. ожид по 2 типу: ' + FloatToStr(Int(maxWaitTime2)) + ' сек.'); mmo1.Lines.Add('Сред. врем. ожид по 1 типу: ' + FloatToStr(int(averWaitTIme1)) + ' сек.'); mmo1.Lines.Add('Сред. врем. ожид по 2 типу: ' + FloatToStr(int(averWaitTIme2)) + ' сек.'); mmo1.Lines.Add('Вероятность отказа: ' + FloatToStr(veref) + ' %'); mmo1.Lines.Add('Макс. длина очереди по 1-му типу: ' + FloatToStr(maxDl1)+' шт.' );
mmo1.Lines.Add('Макс. длина очереди по 2-му типу: ' + FloatToStr(maxDl2)+' шт.' );
end;
procedure TForm3.Button1Click(Sender: TObject);
beginClose;
end;
end.


Нет нужной работы в каталоге?

Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

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

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156450
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
54 132 оценки star star star star star
среднее 4.9 из 5
МФПУ «Синергия»
Работа была выполнена ранее положенного срока, Марина очень хорошо и умело дала понять всю...
star star star star star
РЭУ им.Плеханова
Благодарю Евгению за выполнение работы,оценка-отлично.Сделано -все как положено,грамотно и...
star star star star star
ТУСУР
Спасибо автору, всё выполнено быстро и хорошо. На любые вопросы автор отвечает быстро и по...
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

Подогнать готовую курсовую под СТО

Курсовая, не знаю

Срок сдачи к 7 дек.

только что
только что

Выполнить задания

Другое, Товароведение

Срок сдачи к 6 дек.

1 минуту назад

Архитектура и организация конфигурации памяти вычислительной системы

Лабораторная, Архитектура средств вычислительной техники

Срок сдачи к 12 дек.

1 минуту назад

Организации профилактики травматизма в спортивных секциях в общеобразовательной школе

Курсовая, профилактики травматизма, медицина

Срок сдачи к 5 дек.

2 минуты назад

краткая характеристика сбербанка анализ тарифов РКО

Отчет по практике, дистанционное банковское обслуживание

Срок сдачи к 5 дек.

2 минуты назад

Исследование методов получения случайных чисел с заданным законом распределения

Лабораторная, Моделирование, математика

Срок сдачи к 10 дек.

4 минуты назад

Проектирование заготовок, получаемых литьем в песчано-глинистые формы

Лабораторная, основы технологии машиностроения

Срок сдачи к 14 дек.

4 минуты назад

2504

Презентация, ММУ одна

Срок сдачи к 7 дек.

6 минут назад

выполнить 3 задачи

Контрольная, Сопротивление материалов

Срок сдачи к 11 дек.

6 минут назад

Вам необходимо выбрать модель медиастратегии

Другое, Медиапланирование, реклама, маркетинг

Срок сдачи к 7 дек.

7 минут назад

Ответить на задания

Решение задач, Цифровизация процессов управления, информатика, программирование

Срок сдачи к 20 дек.

7 минут назад
8 минут назад

Все на фото

Курсовая, Землеустройство

Срок сдачи к 12 дек.

9 минут назад

Разработка веб-информационной системы для автоматизации складских операций компании Hoff

Диплом, Логистические системы, логистика, информатика, программирование, теория автоматического управления

Срок сдачи к 1 мар.

10 минут назад
11 минут назад

перевод текста, выполнение упражнений

Перевод с ин. языка, Немецкий язык

Срок сдачи к 7 дек.

11 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно
    Введите ваш e-mail
    Файл с работой придёт вам на почту после оплаты заказа
    Успешно!
    Работа доступна для скачивания 🤗.