51369

Двухфазная СМО с отказами

Лабораторная работа

Информатика, кибернетика и программирование

Для упрощения расчёта представим данную СМО как совокупность 2ух одноканальных. Т.к. в данной системе очередь не бесконечной длинны, то все расчёты будут не очень точны. Но главная цель проведения данных расчётов – это сравнение их результатов с результатами имитационной модели (программой). Для оценки соответствия результатов такой точности будет достаточно.

Русский

2014-02-10

95.5 KB

12 чел.

Министерство образования Республики Беларусь

Белорусский Государственный Университет Информатики и Радиоэлектроники

Институт Информационных Технологий

О Т Ч Е Т

по предмету: САиММ

по лабораторной работе №4

«СМО»

B-2а

Выполнил:

Липатов А.В.

Проверил:

Мельник Н.И.

Минск 2005

Задание.

Двухфазная СМО с отказами

                                                  

                                       n1                                         n2

                                                           1=5                                     2=5

Построить зависимости Ротк, Ротк1, Ротк2 при изменении от 1 до 6 с шагом 0.5.

Входной поток и потоки обслуживаний - простейшие, n1=2, n2=2.

Аналитический расчёт:

Для упрощения расчёта представим данную СМО как совокупность 2ух одноканальных. Т.к. в данной системе очередь не бесконечной длинны, то все расчёты будут не очень точны. Но  главная цель проведения данных расчётов – это сравнение их результатов с результатами имитационной модели (программой). Для оценки соответствия результатов такой точности будет достаточно.

Первая СМО (A – выделено овалом)

                                                  

                                         n1                                                   n2

                                                           1=5                                                2=5

Вторая СМО (B – выделено овалом)

                                                  

                                                      n2

                              A=?                                      2=5

Диаграмма интенсивностей переходов:

В приведённом ниже расчёте примем λ=6

СМО A:

 (в системе нет заявок)

   (в системе 0  заявок)

 (в системе 1  заявка)

 (в системе 2  заявки)

 (в системе 3  заявки - максимум)

Проверка  выполняется.

   (вероятность отказа)

 (относительная пропускная способность)

  (абсолютная пропускная способность)

СМО B: 

Интенсивность входного потока в данной системе принимается равной A (4.1).
Расчёт аналогичен вышеописанному, поэтому приведён лишь результат.

    (вероятность отказа №2)

Сопоставление результатов расчётов и программы:

Pотк1

Pотк2

Аналитический расчёт

0.321 %

0.15 %

Имитационная модель (программа)

0.31 %

0.10 %

Pотк1 определён с достаточно высокой точностью.

Иная ситуация с Pотк2 – различие в 1.5 раза. Это связано с неточностью аналитического расчёта, из-за того, что исходная СМО рассматривалась как совокупность двух простых.

Фрагмент из программы:

 srand( (unsigned)time( NULL ) );

 m_sOutInfo.Empty();

 double fLambda;

 int num=0;

 for (fLambda=1.0; fLambda<=6.0; fLambda+=0.5, num++)

{

 int Potk1(0), Potk2(0);

 Obrabotchik o1(fLambda), o2(5.), o3(5.);

 Ochered n1, n2;

 //o1.SaveToFile("o1.txt");

 int i,

  iEnd = (int) min(o1.GetAllTime(), o2.GetAllTime()) / 1.5;

 for (i=0; i<iEnd; i++)

 {

  o1.SetBusy(); // Для постоянного генерирования

  if (o1++)

   if (FALSE == n1++) // Очередь1 заполнена?

    Potk1++;  // если да, то "отказ"

  if (o2.IsBusy() == FALSE) // Если обработчик2 простаивает,

   if (n1--) o2.SetBusy(); // то дадим ему работу, если она есть

  if (o2++)

   if (FALSE == n2++) // Очередь2 заполнена?

    Potk2++;  // если да, то "отказ"

  if (o3.IsBusy() == FALSE) // Если обработчик3 простаивает,

   if (n2--) o3.SetBusy(); // то дадим ему работу, если она есть

  o3++;

 }

 int iGen = o1.GetObrabotal();

 int Potk1P = (int) ((double)Potk1/(double)iGen*100.);

 int Potk2P = (int) ((double)Potk2/(double)iGen*100.);

 int PexitP = (int) ((double)o3.GetObrabotal()/(double)iGen*100.);

 fPoints[0][num] = Potk1P; // Сохранение координат

 fPoints[1][num] = Potk2P;

 CString str;

 str.Format( "Лямбда: %.1f\r\n"

    "_Время: %d\r\n"

    "Сгенерированно: %d (100%%)\r\n"

    "Potk1: %d (%d%%)\r\n"

    "Potk2: %d (%d%%)\r\n"

    "Обработанно: %d (%d%%)\r\n\r\n\r\n",

    fLambda, iEnd, iGen,

    Potk1, Potk1P,

    Potk2, Potk2P,

    o3.GetObrabotal(), PexitP);

 m_sOutInfo += str;

} // End for [fLambda]

 UpdateData(FALSE);

 bIsCalc = TRUE;

 UpdateWindow();

 RECT rect;

 m_cGraphic.GetClientRect(&rect);

 m_cGraphic.InvalidateRect(&rect);

 m_cGraphic.RedrawWindow(&rect, NULL, RDW_ERASE);

 GetClientRect(&rect);

 InvalidateRect(&rect);

 m_cGraphic.UpdateWindow();

 UpdateWindow();

Результат: 

Лямбда: 1.0

_Время: 1330960

Сгенерированно: 1266 (100%)

Potk1: 6 (0%) Potk2: 5 (0%)

Обработанно: 1255 (99%)

Лямбда: 1.5

_Время: 1319008

Сгенерированно: 2012 (100%)

Potk1: 37 (1%) Potk2: 27 (1%)

Обработанно: 1946 (96%)

Лямбда: 2.0

_Время: 1357389

Сгенерированно: 2705 (100%)

Potk1: 95 (3%) Potk2: 74 (2%)

Обработанно: 2535 (93%)

Лямбда: 2.5

_Время: 1305090

Сгенерированно: 3387 (100%)

Potk1: 208 (6%) Potk2: 136 (4%)

Обработанно: 3042 (89%)

Лямбда: 3.0

_Время: 1319468

Сгенерированно: 3906 (100%)

Potk1: 366 (9%) Potk2: 213 (5%)

Обработанно: 3325 (85%)

Лямбда: 3.5

_Время: 1333850

Сгенерированно: 4674 (100%)

Potk1: 618 (13%) Potk2: 358 (7%)

Обработанно: 3695 (79%)

Лямбда: 4.0

_Время: 1315332

Сгенерированно: 5307 (100%)

Potk1: 910 (17%) Potk2: 453 (8%)

Обработанно: 3943 (74%)

Лямбда: 4.5

_Время: 1331621

Сгенерированно: 5784 (100%)

Potk1: 1132 (19%) Potk2: 516 (8%)

Обработанно: 4133 (71%)

Лямбда: 5.0

_Время: 1315974

Сгенерированно: 6562 (100%)

Potk1: 1670 (25%) Potk2: 634 (9%)

Обработанно: 4256 (64%)

Лямбда: 5.5

_Время: 1214389

Сгенерированно: 6674 (100%)

Potk1: 1952 (29%) Potk2: 648 (9%)

Обработанно: 4071 (60%)

Лямбда: 6.0

_Время: 1112481

Сгенерированно: 6661 (100%)

Potk1: 2046 (30%) Potk2: 708 (10%)

Обработанно: 3905 (58%)

A

B0

B1

B2

B3

A

A

μ2

μ2

μ2

μ1

μ1

μ1

λ

λ

λ

A3

A2

A1

A0

B

A

A


 

А также другие работы, которые могут Вас заинтересовать

63190. Громадянство України 26.18 KB
  Мета: розкрити зміст понять громадянин громадянство; ознайомити учнів з основними нормами Закону України Про громадянство України; навчити розрізняти статус громадянина іноземця особи без громадянства...
63191. Утворення Єгипетської держави 30.29 KB
  Мета: ознайомити учнів із природними умови та розташуванням Давнього Єгипту розглянути процес утворення держави в Давньому Єгипті; визначити функції держави в єгиптян; удосконалити навички роботи учнів у групах.
63192. Право на освіту 25.15 KB
  Мета: розкрити юридичний зміст права на освіту в Україні; ознайомити учнів із системою освіти; зясувати права та обовязки учасників навчального процесу; виховувати бажання поповнювати свої знання.
63193. Узагальнення знань за темою «Київська Русь наприкінці X — у першій половині XI ст.» 8 MB
  Мета: повторити та узагальнити матеріал, вивчений учнями з теми «Київська Русь наприкінці X - у першій половині XI ст.», підготуватися до тематичного оцінювання; розвивати в учнів уміння аналізувати та узагальнювати історичні факти...
63196. Київська Русь за наступників Ярослава 33.25 KB
  Мета: формувати в учнів уявлення про внутрішнє і зовнішньополітичне становище Київської Русі після смерті Ярослава Мудрого за правління Ярославичів; розвивати в учнів уміння працювати з джерелами інформації аналізувати...