Моделирование систем массового обслуживания (СМО) с ограниченным временем ожидания очереди
Построение модели кол-центра с ограниченным временем ожидания очереди в терминах точечных процессов. Методами имитационного компьютерного моделирования получены оценки численности операторов, необходимых для работы кол-центра при различных режимах.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 22.05.2023 |
Размер файла | 1,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Федеральное государственное бюджетное
образовательное учреждение высшего образования
Ульяновский Государственный Университет
Факультет Математики информационных и авиационных технологий
Кафедра Прикладной математики
КУРСОВАЯ РАБОТА
Моделирование СМО с ограниченным временем ожидания очереди
Прикладная математика и информатика 01.04.02
Выполнил студент ПММ-О-22/1 Лазарева В.А.
Ульяновск 2023 г.
Содержание
Введение
1. Постановка задачи
2. Математическая модель
3. Формулы для компьютерного моделирования
4. Результаты компьютерного моделирования
Список литературы
Приложение
Введение
Математические модели систем массового обслуживания (СМО), необходимые для описания работы кол-центров известны давно, в том числе и модели, учитывающие возможное ограничение на время ожидания или пребывания заявок в системе. В конце 1950-х Баррером в работе [1] была исследована первая модель СМО с ограниченным временем ожидания. В начале 1970-х Юркевичем в работах [2-3] были исследованы более общие модели, с произвольным распределением времени ожидания. В дальнейшем интерес к СМО с «нетерпением» не прекращался (см., например, работы [4-15] и ссылки в них). Что связано, несомненно, с большим практическим интересом к таким моделям.
Несмотря на широкую область потенциальных приложений, есть существенные трудности для широкого применения таких моделей. Во-первых, популярные среды имитационного моделирования (GPSS, AnyLogiс) не поддерживают данный класс систем с «нетерпением» [6], поэтому типичные модели кол-центров (см. например, [16-17]), реализованные в этих средах, это модели без «нетерпеливых» клиентов. Во-вторых, аналитические методы анализа подобных немарковских СМО (см., например, [7-11]) требуют использования продвинутого математического аппарата, а результаты в виде суммы бесконечных рядов, полученные этими методами, не подходят для компьютерного моделирования. Использование аппроксимаций непоказательных распределений [18-20] также ограничено, поскольку сложность подобных аппроксимаций быстро увеличивается с ростом числа операторов (обслуживающих приборов).
Таким образом, для оценки качества работы современных кол-центров необходимы имитационные модели, позволяющие делать расчеты различных параметров.
В настоящей работе построена модель кол-центра с ограниченным временем ожидания (абоненты в очереди завершают вызов в среднем после 5 минут ожидания, и звонок считается потерянным) в терминах точечных процессов. Методами имитационного моделирования получены оценки количества операторов, необходимых для работы кол-центра при различных условиях. Оценки, полученные с помощью имитационного моделирования, в целом оказались близки с оценками, полученными ООО «АйПиМатика» по данным работы кол-центра на платформе 3CX и опубликованными в [21].
1. Постановка задачи
Рассмотрим работу кол-центра в течение 9 часов, который принимает в среднем 3000 звонков за рабочую смену [21]. Предположения и допущения модели [21]:
1) среднее количество звонков за смену: 3000;
2) среднее время разговора: 2 минуты;
3) требуемое время для ответа на звонок: не более 20 секунд (Service level - SL);
4) абоненты в очереди завершают вызов в среднем после 5 минут ожидания, и звонок считается потерянным;
5) входящий поток простейший.
Требуется оценить необходимое число операторов , обеспечивающих работу кол-центра в трех следующих режимах.
Режим 1
Условие: не допустить ни одного потерянного звонка.
SL: 99,9% -- столько абонентов получит ответ в пределах 20 секунд.
Режим 2
Условие: количество потерянных звонков -- не более 1% (или 30 потерянных за смену).
SL: 95% -- столько абонентов получит ответ в пределах 20 секунд.
Режим 3
Условие: соблюсти SL 80/20 (80% абонентов должны получить ответ оператора за 20 секунд), при этом за смену будет потеряно около 60 звонков (2%).
SL: 80% -- столько абонентов получит ответ в пределах 20 секунд.
Для всех трех режимов необходимо рассчитать необходимое для выполнения условия количество операторов, а также занятость операторов (occupancy). Поскольку операторы не могут эффективно работать без перерывов, то, как показывает практика, занятость операторов не должна превышать 85%.
2. Математическая модель
В данной работе, получены формулы для моделирования СМО с произвольным распределением времени ожидания (см. рис. 1). Отличие от работы [13] в модифицированных формулах, больше подходящих для компьютерного моделирования (требую меньше памяти) и получении формул для расчета качества работы кол-центра (service level, occupancy).
Рис.1. Схема многоканальной СМО с ограниченным временем ожидания.
По предположению модели поступающие заявки образуют простейший поток с интенсивностью . Оценим из предположений и допущений модели параметр (звонков в минуту). Аналогично интенсивность обслуживания заявок одним оператором распределена экспоненциально с параметром Оценим из предположений и допущений модели параметр (звонков в минуту). Далее, для - числа заявок в кол-центре в момент времени можно написать следующее соотношение:
, (1)
где - число заявок, поступивших в СМО за время , , - число обслуженных заявок в СМО за время , - число заявок, которые «нетерпеливо» покинули СМО за время ,. Точечные процессы A и D определяются своими компенсаторами и [13]:
(2)
Компенсатор для процесса определяется следующим соотношением:
(3)
Введем момент поступленияj-ой заявки в кол-центр (он равен моменту j-ого скачка процесса А):
. (4)
Пусть - это время ожидания j-ой заявки (заявки считаются по мере поступления в СМО). Формулы, полученные в данной статье, подходят для моделирования произвольного распределения (в отличие от часто рассматриваемых случаев или показательно распределенных).
Размер очереди в момент определяется по следующей формуле :
. (5)
Условие, что j-ая заявка встала в очередь (а не стала сразу обслуживаться) можно представить в виде , то есть в момент поступления j-ой заявки, в СМО уже находится не менее заявок [13].
Пусть - число «нетерпеливых» заявок, ушедших за время от момента поступления j-ой заявки до и стоящих перед j-ой заявки в очереди.
Условие, что j-ая заявка в момент «нетерпеливо» уйдет из системы определяется следующим образом:
, (6)
где
То есть j-ая заявка встала в очередь: , а число обслуженных плюс число «нетерпеливо» ушедших из впереди стоящих к моменту не превысило размера очереди, который был перед j-ой заявкой в момент её поступления. Таким образом, очередь до j-ой заявки так и не дошла.
Обозначим число заявок в очереди в момент прихода j-ой заявки за. Также пронумеруем заявки в этой очереди числами от до в порядке поступления ( - первая заявка в очереди). Заявки пришли раньше j-ой заявки: , .
Тогда
, (7)
где
Для первой заявки в очереди :
. (8)
То есть заявка встала в очередь: , а число обслуженных к моменту равно нулю, значит, заявка так и начала обслуживаться и покинет СМО «нетерпеливо».
Для второй заявки в очереди :
. (9)
То есть заявка встала в очередь: , а число обслуженных плюс «нетерпеливо» ушедших к моменту (это может быть первая заявка в очереди) меньше 2, значит, заявка так и начала обслуживаться и покинет СМО «нетерпеливо».
Аналогично для -ой заявки в очереди ():
. (10)
То есть заявка встала в очередь: , а число обслуженных плюс «нетерпеливо» перед ней ушедших к моменту меньше очереди перед ней, значит, заявка так и начала обслуживаться и покинет СМО «нетерпеливо».
Тогда общее число «нетерпеливых» заявок за время от 0 до t можно, очевидно, определить следующей формулой:
. (11)
3. Формулы для компьютерного моделирования
Итерационные формулы
Из формул (1)-(11) можно получить следующие инфинитезимальные соотношения [22-23]:
(12)
. (13)
Введя дискретизацию (шаг по времени) из условия , получим следующие итерационные формулы:
(14)
(15)
где
Далее на каждом итерационном шаге от t к по формулам (1)-(11), в которых t надо заменить на , а определяются (10)-(11), пересчитываются последовательно
, (16)
(17)
После этого пересчитывается число заявок в СМО в момент : . И происходит переход к следующей итерации (шаг от к ).
Расчетные формулы
Формулы для расчета service level (SL): Чтобы посчитать SL за время работы кол-центра от 0 до , необходимо посчитать долю заявок, которые находились в очереди не более 20 секунд (то есть 1/3 минуты). По аналогии с (6) запишем:
, (18)
где
То есть, j-ая заявка будет находиться в очереди через 20 секунд после поступления, если в момент прихода в систему заявка встаёт в очередь (все приборы заняты) и в течение 20 секунд обслуживание не началось - очередь до неё так и не дошла.
Тогда общее число таких заявок за время от 0 до можно, очевидно, определить следующей формулой:
, (19)
Соответственно, доля заявок, которые начали обслуживать не позже, чем через 20 секунд после звонка равна (при ):
(20)
Итоговая формула для SL (при ):
(21)
Формулы для расчета занятости операторов (occupancy): Чтобы посчитать occupancy за время работы кол-центра от 0 до , необходимо посчитать среднюю долю времени на одного оператора, занятого непосредственно работой (не простаивающего). Для этого заметим, что интеграл равен суммарному времени работы всех операторов за время . Тогда формула для occupancy будет следующей:
(22)
Поскольку траектории процесса , как следует из (1) являются кусочно-постоянными функциями с единичными скачками вверх и вниз, то интеграл можно точно посчитать по формулам левых прямоугольников:
(23)
где - время моделирования (9 часов или 540 минут), дискретизация (шаг по времени 1 секунда или 1/60 минуты). Итоговая формула для занятости операторов:
(24)
Далее оценки, полученные по формулам (21) и (24) усредняются по результатам имитационных экспериментов (запусков работы модели раз).
4. Результаты компьютерного моделирования
Практическая реализация СМО осуществлена с помощью языка программирования высокого уровня С# в среде разработки Visual Studio 2019.
Для всех случаев будем использовать следующие параметры моделирования: и количество траекторий
Рассмотрим, как будет вести себя модель при различных значениях n.
При выборе количества оператор n = 23 в системе наблюдается следующая картина (см. рис. 2). SL при данном выборе обслуживающих каналов равен 99,99% при средних потерях равных 0. Можно сделать вывод, что количество операторов n = 23 является необходимым и достаточным для того, чтобы кол-центр работал в режиме 1. Отметим, что средняя загруженность операторов в этом случае будет равна 48,43%.
При уменьшении количества операторов до n = 16 происходит следующие изменения (см. рис.3). В данном варианте SL равен 95,83% при средних потерях около 0,71%. При этом средняя загруженность операторов составляет 68,98%. Опираясь на данные результаты можно сказать, что количества операторов n = 16 будет достаточно, чтобы кол-центр работал в режиме 2.
Уменьшаем количество операторов до n = 14 и получаем следующее значения (см. рис.4). При выборе такого количества операторов SL падает до 86,31% при росте потерь до 2,49%. Уровень загруженности операторов при этом поднимается до 77,79%. Можно считать, что при выборе количества обслуживающих каналов n = 14 кол-центр будет работать в режиме 3.
Рис.2. Результат моделирования при n = 23.
Рис.3. Результат моделирования при n = 16.
Рис.4. Результат моделирования при n = 14.
Таким образом, можно сделать вывод, что при небольшой потере показателей эффективности можно существенно сократить траты за счет уменьшения численности операторов кол-центра, при этом персональная эффективность и загруженность каждого сотрудника повысятся.
имитационный моделирование оператор очередь
Список литературы
1. Barrer D.Y. Queuing with Impatient Customers and Indifferent Clerks // Operation Research. 1957, V. 5, № 5, P. 294-400.
2. Юркевич О.М., К исследованию СМО с ограниченным временем ожидания, Изв. АН СССР, Техническая кибернетика, 1970, № 5.
3. Юркевич О.М., О многолинейных системах со случайным ограничением на время ожидания, Изв. АН СССР, техническая кибернетика, 1971, № 4.
4. Hoshi K., Iijima S., Takahashi Y., Komatsu N. Traffic Performance for a Time-Out Scheme Communication System // Proc. of International Conference ICUMT 2009. St. Petersburg, 2009, P. 1-6.
5. Дудин С.А., Дудина О.С. Модель функционирования колл-центра как система MAP/PH/N/R-N с нетерпеливыми запросами // Проблемы передачи информации. 2011, № 47, С. 68-83.
6. Рыжиков Ю.И., Уланов А.В. Имитационное моделирование систем с «нетерпеливыми» заявками // Имитационное моделирование. Теория и практика: тр. VI Всерос. конф. Казань, 2013, С. 339-342.
7. Кирпичников А.П., Флакс Д.Б., Валеева Л.Р. Системы массового обслуживания с ограниченным временем пребывания заявки в системе // Актуальные проблемы гуманитарных и естественных наук. 2015, №1, с. 68 - 73 .
8. Кирпичников А.П., Бусарев М.И., Флакс Д.Б. Одноканальная система массового обслуживания с ограниченным временем пребывания заявки в системе в целом // Вестник технологического университета. 2011, в.22, с.155-161.
9. Кирпичников А.П., Флакс Д.Б., Вероятностные характеристики открытой многоканальной системы массового обслуживания с ограниченным средним временем пребывание заявки в системе // Вестник технологического университета. 2014, т.17, в.24, с.422-425.
10. Кирпичников А.П., Флакс Д.Б., Галямова К.Н., Вероятность ожидания начала обслуживания в системе массового обслуживания с ограниченным средним временем пребывания заявки в системе // Вестник технологического университета. 2016, т.19, в.11, с.122-125.
11. Кирпичников А.П., Флакс Д.Б., Галямова К.Н. , Общее число требований в системе массового обслуживания с ограниченным средним временем пребывания заявки в системе // Вестник технологического университета. 2017, т.20, в.5, с.95-97.
12. Столяров И.А. Семимартингальная модель многоканальной СМО с ограниченным временем ожидания / И.А. Столяров, Е.Д. Табакова, Ю.Г. Савинов // Прикладная математика и информатика: современные исследования в области естественных и технических наук: материалы IV научно-практической всероссийской конференции (школы-семинара) молодых ученых: 23-25 апреля 2018 г. В двух частях. - Тольятти: Издатель Качалин Александр Васильевич, 2018, Часть 1, С. 502-506.
13. Савинов Ю.Г., Тихоненко А.А., Пронин В.И., Щукин А.Н. Семимартингальная модель СМО с произвольным временем ожидания "нетерпеливых" заявок // Ученые записки УлГУ. Серия: Математика и информационные технологии. 2019. № 2. С. 81-88.
14. Савинов Ю. Г., Табакова Е.Д., Сафиуллов И.Д. Оптимизация в СМО с нетерпеливыми заявками // Ученые записки УлГУ. Сер. Математика и информационные технологии. УлГУ. Электрон. журн. 2019, № 1, С. 92-98.
15. Zeltyn, S. & Mandelbaum, A. Call centers with impatient customers: many-server asymptotics of the M/M/n+G queue // Queueing Systems, 2005, 51: 361-402.
16. Мазитов А.И., Зинатуллин Н.Р. Оптимизация работы центра поддержки клиентов сотового оператора за счет оптимизации количества операторов для обработки входящих звонков клиентов в среде имитационного моделирования ANYLOGIC.
17. Котелова В.А., Коровкина А.О., Мокшин В.В. Оптимизация работы центра поддержки клиентов за счет увеличения или уменьшения количества сотрудников центра поддержки для обработки входящих звонков клиентов в среде имитационного моделирования ANYLOGIC / В.А. Котелова, А.О. Коровкина, В.В. Мокшин // Перспективные информационные технологии (ПИТ 2019): труды Международной научно-технической конференции / [редкол.: Прохоров С. А. (гл. ред.) и др.]. - Самара: Издательство Самарского научного центра РАН. - 2019. - С. 568-572
18. Roubos A. Call Centers with Hyperexponential Patience Modeling / A. Roubos, O. Jouini // International Journal of Production Economics. 2013, V.141, P. 307-315.
19. Рыжиков Ю.И., Уланов А.В. Расчет гиперэкспоненциальной системы M/H2/n-H2 с заявками, нетерпеливыми в очереди // Вестник Томского государственного университета. Управление, вычислительная техника и информатика. 2014. № 2(27). C. 47-53.
20. Ю.И. Рыжиков, А.В. Уланов Применение гиперэкспоненциальной аппроксимации в задачах расчета немарковских систем массового обслуживания // Вестник Томского государственного университета. Управление, вычислительная техника и информатика. 2016. № 3(36). C. 60-65.
21. Иванов И. Расчет количества операторов и оптимизация работы колл-центра.
22. Бутов А.А., Раводин К.О. Теория случайных процессов: учебно-методическое пособие. - Ульяновск: УлГУ, 2009.
23. Бутов А.А., Савинов Ю.Г. Теория массового обслуживания: учебно-методическое пособие. - Ульяновск: УлГУ, 2007.
Приложение 1
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ProstoyPotok
{
public partial class Form1 : Form
{
//рандомизация
Random rand = new Random();
private int N, Y_max, T;
private double lambda, mu, SL, Z, kanaly;
private void textBox4_TextChanged(object sender, EventArgs e)
{
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
char number = e.KeyChar;
if(!Char.IsDigit(number)&& number != 8)
{
e.Handled = true;
}
}
private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
{
char number = e.KeyChar;
if (!Char.IsDigit(number) && number != 8)
{
e.Handled = true;
}
}
private void textBox4_KeyPress(object sender, KeyPressEventArgs e)
{
char number = e.KeyChar;
if (!Char.IsDigit(number) && number != 8)
{
e.Handled = true;
}
}
private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
{
char number = e.KeyChar;
}
private void Clear_Click(object sender, EventArgs e)
{
for (int j = 1; j <= m; j++)
{
chart1.Series["График" + Convert.ToString(j)].Points.Clear();
chart2.Series["График" + Convert.ToString(j)].Points.Clear();
chart3.Series["График" + Convert.ToString(j)].Points.Clear();
chart7.Series["График" + Convert.ToString(j)].Points.Clear();
chart7.Series["Среднее" + Convert.ToString(j)].Points.Clear();
}
}
private void textBox5_KeyPress(object sender, KeyPressEventArgs e)
{
char number = e.KeyChar;
if (!Char.IsDigit(number) && number != 8 && number != 44)
{
e.Handled = true;
}
}
private double delta;
//функция скачка
private bool skachok(double k, double kan)
{
double teta = rand.NextDouble();
if(teta > 0.5 && teta < 0.5+ k * kan * delta)
{
return true;
}
else
{
return false;
}
}
private void tableLayoutPanel3_Paint(object sender, PaintEventArgs e)
{
}
private void chart4_Click(object sender, EventArgs e)
{
}
private void textBox6_TextChanged(object sender, EventArgs e)
{
}
private void chart2_Click(object sender, EventArgs e)
{
}
private void textBox3_TextChanged(object sender, EventArgs e)
{
}
public Form1()
{
//включение
InitializeComponent();
}
int m = 0;
public void start_Click(object sender, EventArgs e)
{
if ((textBox1.Text != "") && (textBox2.Text != "") &&
(textBox3.Text != "") && (textBox4.Text != "") &&
(textBox5.Text != "") && (textBox6.Text != ""))
{
T = Convert.ToInt32(textBox1.Text);
Y_max = Convert.ToInt32(textBox2.Text);
lambda = Convert.ToDouble(textBox3.Text);
mu= Convert.ToDouble(textBox6.Text);
N = Convert.ToInt32(textBox4.Text);
delta = Convert.ToDouble(textBox5.Text);
kanaly = Convert.ToDouble(textBox7.Text);
if ((T != 0) && (Y_max != 0) &&
(lambda != 0) && (N != 0) &&
(delta != 0) &&(kanaly != 0))
{
int shagi = Convert.ToInt32(T / delta);
chart1.ChartAreas[0].AxisX.Minimum = 0;
chart1.ChartAreas[0].AxisX.Maximum = T;
chart1.ChartAreas[0].AxisX.Interval = T/10;
chart1.ChartAreas[0].AxisY.Minimum = 0;
chart1.ChartAreas[0].AxisY.Maximum = Y_max;
chart1.ChartAreas[0].AxisY.Interval = Y_max / 10;
chart2.ChartAreas[0].AxisX.Minimum = 0;
chart2.ChartAreas[0].AxisX.Maximum = T;
chart2.ChartAreas[0].AxisX.Interval = T / 10;
chart2.ChartAreas[0].AxisY.Minimum = 0;
chart2.ChartAreas[0].AxisY.Maximum = Convert.ToInt32(lambda * T);
chart2.ChartAreas[0].AxisY.Interval = Convert.ToInt32(lambda * T) / 5;
chart3.ChartAreas[0].AxisX.Minimum = 0;
chart3.ChartAreas[0].AxisX.Maximum = T;
chart3.ChartAreas[0].AxisX.Interval = T / 10;
chart3.ChartAreas[0].AxisY.Minimum = 0;
chart3.ChartAreas[0].AxisY.Maximum = Convert.ToInt32(lambda * T);
chart3.ChartAreas[0].AxisY.Interval = Convert.ToInt32(lambda * T) / 5;
chart7.ChartAreas[0].AxisX.Minimum = 0;
chart7.ChartAreas[0].AxisX.Maximum = T;
chart7.ChartAreas[0].AxisX.Interval = T / 10;
chart7.ChartAreas[0].AxisY.Minimum = 0;
chart7.ChartAreas[0].AxisY.Maximum = Y_max;
chart7.ChartAreas[0].AxisY.Interval = Y_max / 5;
var mat3 = new List<double>();
var sigma = new List<double>();
var sigmaS = new List<double>();
for (int i = 0; i <= shagi; i++)
{
mat3.Add(0);
}
int k = 0;
int p1 = 0;
int p2 = 0;
int ind = 0;
int otkazy = 0;
int tempSL = 0;
double dSL = 0;
SL = 0;
double tempZ = 0;
Z = 0;
int ochered = 0;
double poteri = 0;
double tSl = 0.333;
double tpoteri = 5;
m++;
//int r1 = rand.Next(0, 255);
//int r2= rand.Next(0, 255);
//int r3 = rand.Next(0, 255);
chart1.Series.Add("График"+Convert.ToString(m));
chart1.Series["График" + Convert.ToString(m)].Color = Color.Red;
chart1.Series["График" + Convert.ToString(m)].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
chart1.Legends.Clear();
chart2.Series.Add("График" + Convert.ToString(m));
chart2.Series["График" + Convert.ToString(m)].Color = Color.Red;
chart2.Series["График" + Convert.ToString(m)].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
chart2.Legends.Clear();
chart3.Series.Add("График" + Convert.ToString(m));
chart3.Series["График" + Convert.ToString(m)].Color = Color.Red;
chart3.Series["График" + Convert.ToString(m)].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
chart3.Legends.Clear();
chart7.Series.Add("График" + Convert.ToString(m));
chart7.Series["График" + Convert.ToString(m)].Color = Color.Red;
chart7.Series["График" + Convert.ToString(m)].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
chart7.Legends.Clear();
for (int j = 0; j < N; j++)
{
for (double i = 0; i <= T; i = i + delta)
{
if (skachok(lambda,1))
{
if ( k < kanaly)
{
chart2.Series["График" + Convert.ToString(m)].Points.AddXY(i, p1);
p1++;
chart2.Series["График" + Convert.ToString(m)].Points.AddXY(i, p1);
chart1.Series["График" + Convert.ToString(m)].Points.AddXY(i, k);
k++;
chart1.Series["График" + Convert.ToString(m)].Points.AddXY(i, k);
tempSL++;
}
else
{
chart2.Series["График" + Convert.ToString(m)].Points.AddXY(i, p1);
p1++;
chart2.Series["График" + Convert.ToString(m)].Points.AddXY(i, p1);
chart1.Series["График" + Convert.ToString(m)].Points.AddXY(i, k);
k++;
chart1.Series["График" + Convert.ToString(m)].Points.AddXY(i, k);
ochered++;
sigma.Add(i + tpoteri);
sigmaS.Add(i);
}
}
if(ochered > 0)
if (i > (Convert.ToDouble(sigma[0])))
{
chart7.Series["График" + Convert.ToString(m)].Points.AddXY(i, otkazy);
otkazy++;
chart7.Series["График" + Convert.ToString(m)].Points.AddXY(i, otkazy);
sigma.RemoveAt(0);
sigmaS.RemoveAt(0);
chart1.Series["График" + Convert.ToString(m)].Points.AddXY(i, k);
k--;
chart1.Series["График" + Convert.ToString(m)].Points.AddXY(i, k);
ochered--;
}
if (k > 0 && skachok(mu,Math.Min(k,kanaly)))
{
if(ochered > 0)
{
if(i < (sigmaS[0] + tSl))
{
chart3.Series["График" + Convert.ToString(m)].Points.AddXY(i, p2);
p2++;
chart3.Series["График" + Convert.ToString(m)].Points.AddXY(i, p2);
chart1.Series["График" + Convert.ToString(m)].Points.AddXY(i, k);
k--;
chart1.Series["График" + Convert.ToString(m)].Points.AddXY(i, k);
tempSL++;
ochered--;
sigma.RemoveAt(0);
sigmaS.RemoveAt(0);
}
else
{
chart3.Series["График" + Convert.ToString(m)].Points.AddXY(i, p2);
p2++;
chart3.Series["График" + Convert.ToString(m)].Points.AddXY(i, p2);
chart1.Series["График" + Convert.ToString(m)].Points.AddXY(i, k);
k--;
chart1.Series["График" + Convert.ToString(m)].Points.AddXY(i, k);
ochered--;
sigma.RemoveAt(0);
sigmaS.RemoveAt(0);
}
}
else
{
chart3.Series["График" + Convert.ToString(m)].Points.AddXY(i, p2);
p2++;
chart3.Series["График" + Convert.ToString(m)].Points.AddXY(i, p2);
chart1.Series["График" + Convert.ToString(m)].Points.AddXY(i, k);
k--;
chart1.Series["График" + Convert.ToString(m)].Points.AddXY(i, k);
}
}
mat3[ind] = (j * mat3[ind] + otkazy) / (j + 1);
tempZ = (ind * tempZ + (Math.Min(k, kanaly))) / (ind + 1);
ind++;
}
chart1.Series["График" + Convert.ToString(m)].Points.AddXY(T*10, k);
chart1.Series["График" + Convert.ToString(m)].Points.AddXY(T*10, 0);
chart1.Series["График" + Convert.ToString(m)].Points.AddXY(0, 0);
chart2.Series["График" + Convert.ToString(m)].Points.AddXY(T * 10, p1);
chart2.Series["График" + Convert.ToString(m)].Points.AddXY(T * 10, 0);
chart2.Series["График" + Convert.ToString(m)].Points.AddXY(0, 0);
chart3.Series["График" + Convert.ToString(m)].Points.AddXY(T * 10, p2);
chart3.Series["График" + Convert.ToString(m)].Points.AddXY(T * 10, 0);
chart3.Series["График" + Convert.ToString(m)].Points.AddXY(0, 0);
chart7.Series["График" + Convert.ToString(m)].Points.AddXY(T * 10, otkazy);
chart7.Series["График" + Convert.ToString(m)].Points.AddXY(T * 10, 0);
chart7.Series["График" + Convert.ToString(m)].Points.AddXY(0, 0);
dSL = tempSL / Convert.ToDouble(p1);
SL = (j * SL + dSL) / (j + 1);
tempZ = tempZ / kanaly;
Z = (j * Z + tempZ) / (j + 1);
poteri = (j * poteri + (Convert.ToDouble(otkazy)/Convert.ToDouble(p2 + otkazy))) / (j + 1);
p1 = 0;
p2 = 0;
k = 0;
ind = 0;
otkazy = 0;
ochered = 0;
tempSL = 0;
tempZ = 0;
sigma.Clear();
sigmaS.Clear();
}
chart7.Series.Add("Среднее" + Convert.ToString(m));
chart7.Series["Среднее" + Convert.ToString(m)].Color = Color.Black;
chart7.Series["Среднее" + Convert.ToString(m)].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
chart7.Legends.Clear();
for (double i = 0; i <= T; i = i + delta)
{
chart7.Series["Среднее" + Convert.ToString(m)].Points.AddXY(i, mat3[ind]);
ind++;
}
SL = Math.Round(SL,4);
Z = Math.Round(Z,4);
poteri = Math.Round(poteri, 4);
label8.Text = Convert.ToString(SL);
label9.Text = Convert.ToString(Z);
label10.Text = Convert.ToString(poteri);
mat3.Clear();
}
}
}
}
}
Размещено на Allbest.ru
Подобные документы
Структурная схема процесса функционирования вычислительного центра. Моделирование процесса обслуживания ста пользователей. Оценка числа пользователей в очереди, коэффициента загрузки ЭВМ, вероятности отказа по причине отсутствия свободных мест в очереди.
курсовая работа [54,9 K], добавлен 25.06.2011Основные принципы моделирования систем массового обслуживания (СМО) на ЭВМ. Разработка моделирующего алгоритма и составление блок-схемы имитации торгового центра на ПЭВМ. Программа моделирования торгового центра на одном из языков программирования.
лабораторная работа [77,4 K], добавлен 15.06.2010Моделирование работы компьютерного зала в течении 60 ч. Определение загрузки устройства подготовки данных (УПД), ЭВМ и вероятности отказа в обслуживании вследствие переполнения очереди. Определение соотношения желающих работать на ЭВМ и на УПД в очереди.
контрольная работа [275,7 K], добавлен 05.07.2014Построение модели системы массового обслуживания с помощью ЭВМ с использованием методов имитационного моделирования. Моделирование проводилось с помощью GPSS World Student version, позволяющего достоверно воссоздать систему массового обслуживания.
курсовая работа [555,7 K], добавлен 29.06.2011Разработка решения задачи имитационного моделирования системы массового обслуживания (СМО), на примере склада продукции. Построение концептуальной модели системы. Сравнение результатов имитационного моделирования и аналитического расчета характеристик.
курсовая работа [75,5 K], добавлен 26.06.2011Особенности систем массового обслуживания и сущность имитационного моделирования с использованием GPSS. Структурная схема модели системы и временная диаграмма. Сравнение результатов имитационного моделирования и аналитического расчета характеристик.
курсовая работа [214,2 K], добавлен 23.06.2011Оптимальное время для обслуживания пользователей как основная цель работы компьютерного зала библиотеки. Построение модели деятельности подписного отдела с помощью средства имитационного моделирования AnyLogic. Описание процессов и построение сценария.
курсовая работа [1,9 M], добавлен 19.06.2015Характеристика функций имитационного моделирования. Знакомство с особенностями имитационного моделирования агрегированной системы массового обслуживания. Анализ программы GPSSWorld: рассмотрение возможностей, способы составления имитационной модели.
курсовая работа [1,6 M], добавлен 27.05.2013Определение функциональных характеристик систем массового обслуживания (СМО) на основе имитационного моделирования; синтез СМО с заданными характеристиками. Разработка программы на языке SIMNET II; расчет процесса работы СМО; подбор требуемого параметра.
лабораторная работа [623,8 K], добавлен 11.03.2011Система массового обслуживания модели функционирования мастерской. Структурная и Q-схемы, построение временной диаграммы, варианты по оптимизации модели. Составление программы на языке имитационного моделирования GPSS и разбор результатов моделирования.
курсовая работа [74,2 K], добавлен 23.06.2011