СМО с ожиданием
Курсовая работа, 09 Января 2012, автор: пользователь скрыл имя
Краткое описание
Теория массового обслуживания впервые применялась в телефонии, а затем и в других областях хозяйственной деятельности, где и сейчас занимает важное место. Примерами СМО могут служить телефонные станции, ремонтные мастерские (заводы, базы, бригады), погрузочно-разгрузочные комплексы (порты, товарные станции), транспортные системы, автозаправочные станции, больницы, торговые точки, предприятия бытового обслуживания и т. д..
Содержание работы
Введение: СМО и их актуальность.
Обзор типов СМО.
СМО с ожиданием: математическая модель и алгоритм работы.
3. Постановка задачи, математическая модель задания, алгоритм выполнения задания.
4. Программная реализация.
Заключение.
Приложения
6. 1. Листинг программы
7. Список используемых источников.
Содержимое работы - 1 файл
да.doc
— 308.00 Кб (Скачать файл)(10)
Здесь использованы соотношения (7), (8) (производная геометрической прогрессии), а также из (4). Если сравнить это выражение с (8), можно заметить, что среднее время ожидания равно среднему числу заявок в очереди, поделенному на интенсивность потока заявок.
(11)
Среднее время пребывания заявки в системе. Обозначим — время пребывания заявки в СМО, которое складывается из среднего времени ожидания в очереди и среднего времени обслуживания . Если загрузка системы составляет 100 %, то очевидно, , в противном же случае
(12)
Отсюда
3. Постановка задачи, математическая модель задания, алгоритм выполнения задания.
Формулировка задачи:
Построить модель СМО с ожиданием «клиент – очередь - сервер», исследовать её характеристики и поведение.
Описание системы:
Имеется
одноканальная СМО с ожиданием,
содержащая один однородный поток заявок.
То есть поступившая на обслуживание заявка
становится в очередь: если очередь свободна,
то заявка отправляется на обработку,
если очередь уже занята другими заявками,
то она становится в очередь на соответствующее
место в данном потоке обслуживания.
Исходные данные:
1. Интенсивность поступления заявок (λ = 110);
2. Интенсивность обработки заявок (µ = 40);
3. Количество мест в очереди (m = 80);
Требуется найти:
1. Среднее количество заявок в очереди;
2. Вероятность отказа;
3. Среднее время ожидания обработки запроса;
4. Относительную и абсолютную пропускную способность;
5.
Среднее время ожидания и
Реализация математического аппарата.
Исходя из формулы (1):
где ;
Т. е.
Предельные
вероятности будут иметь
.
.
.
справедливо только если p < 1, а если эти значения равны между собой, то мы получим неопределенность: 0/0 . Поэтому, вспомнив, что сумма геометрической прогрессии со знаменателем = 1 равна m + 2, будем иметь формулу:
; т. е.
Вероятность отказа. Очевидно, что заявка получает отказ только в случае, когда канал занят и все m мест в очереди тоже:
, имеем:
Исходя из формулы (6), относительная пропускная способность:
Q = 1 - Pотк = 0.3636
Абсолютная пропускная способность:
A = λ*Q = 110 * 0.3636 = 39.996 = 40;
Далее
сопоставляя уже имеющиеся
Время ожидания заявки - 5,18897759396253E-36
Время обслуживания заявки - 0,00909090909090909
Время
нахождения заявки в
СМО - 0,00909090909090909
Ниже приведена блок-схема алгоритма работы СМО:
Нет
Да
Рис 2. Блок-схема
алгоритма программы
- Программная реализация.
Модель СМО с ожиданием в данной курсовой работе описывается в программе, выполненной на языке программирования C#.
Составлена программа, в которой имеются три основных блока: блок ввода исходных данных(textbox 1, 2, 3), блок вывода вычисленных данных(richTextbox 1, 2), блок вывода графика параметров (Console ZedGraph1).
Программа высчитывает такие данные СМО, как число заявок, обработанных в единицу времени, вероятность отказа, относительная пропускная способность, абсолютная пропускная способность, средняя длина очереди, среднее число заявок, находящихся на обслуживании, число заявок, связанных с системой, время ожидания заявки, время обслуживания заявки, время нахождения заявки в СМО. Эти расчеты производятся относительно исходных данных: число поступивших заявок в единицу времени (интенсивность поступления заявок), число обработанных заявок в единицу времени (интенсивность обработки), длина очереди.
Листинг и программы представлен в приложении.
Алгоритм работы программы:
1.Ввод данных: число поступивших заявок в единицу времени, число обработанных заявок в единицу времени, длина очереди.
2. По исходным данным программа высчитывает: число заявок, обработанных в единицу времени, вероятность отказа, относительную пропускную способность, абсолютную пропускную способность, среднюю длину очереди, среднее число заявок, находящихся на обслуживании, число заявок, связанных с системой, время ожидания заявки, время обслуживания заявки, время нахождения заявки в СМО
4. Программа выводит результаты на экран.
5.
Программа строит графики, по данным,
полученным выше.
Рис. 3.
Графики программы.
Рис.
4. Работа программы СМО
5. Заключение
В ходе проделанной курсовой работы, был проведен анализ СМО с ожиданием. По исходным данным (число поступления заявок в единицу времени, число обработки заявок в единицу времени, длина очереди) произведены расчеты параметров СМО, таких как абсолютная и относительна пропускная способности СМО, вероятность отказа, среднее число заявок в очереди, среднее время обработки заявок, ожидания заявки, нахождения заявки в СМО.
По исходным и полученным данным построены графики показателей системы: зависимость вероятности отказа и относительной пропускной способности от числа заявок в очереди.
Наряду
с этим, рассматривается весь математический
аппарат одноканальной СМО, и подробно
описывается актуальность СМО, их применение
в хозяйственной деятельности человека.
6. Приложения.
Приложение 1. Листинг программы:
using System;//определение пространства имен
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ZedGraph;//подключение библиотеки zedgraph
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();//
}
public void button1_Click(object sender, EventArgs e)
{
double
la = Convert.ToDouble(textBox1.
double
mu = Convert.ToDouble(textBox2.
double
m = Convert.ToDouble(textBox3.
double p = la / mu;//число заявок, обработанных в единицу времени
double step = Math.Pow(p, m);
double step1 = Math.Pow(p, m + 1);
double step2 = Math.Pow(p, m + 2);
double p0 = (1 - p) / (1 - step2);//предельная вероятность p0
double Potk = (step1 * (1 - p)) / (1 - step2);//вероятность отказа
double q = 1 - Potk;//относительная пропускная способность
double A = q * la;//абсолютная пропускная способность
double r1 = p * p * (1 - (m + 1 - m * p));