51124

Моделирование непрерывно-стохастической системы массового обслуживания

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

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

На вход n-канальной СМО с отказами поступает поток заявок с интенсивностью l = 6 заявок в час. Среднее время обслуживания одной заявки 0.8 часа. Каждая обслуженная заявка приносит доход 4у.е. Содержание одного канала обходится 2 у.е./час. Определить экономически целесообразное количество каналов.

Русский

2014-02-06

106.86 KB

3 чел.

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

Учреждение образования

«Белорусский государственный университет

информатики и радиоэлектроники»

Кафедра программного обеспечения

информационных технологий

ОТЧЕТ

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

“ Моделирование непрерывно-стохастической системы массового обслуживания ”

Выполнил:         Проверила:

студент гр. 750503       Костюк Елена

Макаревич Владимир

Минск 2009


Задание

7)  На  вход n-канальной  СМО  с  отказами  поступает  поток  заявок  с

интенсивностью l = 6  заявок  в  час.  Среднее  время  обслуживания  одной

заявки 0.8  часа.  Каждая  обслуженная  заявка  приносит  доход 4у.е.

Содержание одного канала обходится 2 у.е./час. Определить экономически

целесообразное количество каналов.

Теоретическое моделирование

#include <conio.h>

#include <stdio.h>

double fact(long n)

{

 if ( n==0 ) return 1.0;

 else return n * fact(n-1);

}

double extent(double x, int n)

{

 if ( n==0 ) return 1.0;

 return x * extent(x, n-1);

}

//--------------------------------

double S(int n, double w)

{

 if ( n==0 ) return 1.0;

 return S(n-1,w) + extent(w, n) / fact(n);

}

double P0(int n, double w)

{

 double s = S(n, w);

 return 1 / s;

}

int main()

{

 double w, h = 6.0, u = 1 / 0.8, c = 4.0, d = 2.0, Pk, p, profit, max_p = 0;

 int max_ch;

w = h/u;

printf("Chanels | Profit\n");

printf("========|========\n");

 for (int k=0; k<16; k++)

{

 p = P0(k, w);

 Pk = p * extent(w, k) / fact(k);

 profit = h * (1-Pk) * c - k * d;

 if ( max_p<profit ) max_p = profit, max_ch = k;

 printf(" %6d | %2.3f -> %f\n", k, profit, Pk);

}

printf(" ----------------\n");

printf(" %6d | %2.3f  <- Optimal\n", max_ch, max_p);

 return _getch();

}

Практическое моделирование

#include <conio.h>

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

double RandExp(double h)

{

 double R = (double)rand()/RAND_MAX;

 return -log(1-R) / h;

}

class Channel

{

private: bool busy;

public: Channel()

 { busy = false; }

public: bool Busy()

 { return busy; }

public: bool Empty()

 { return !busy; }

public: void Occupy()

 { busy = true; }

public: void Liberate()

 { busy = false; }

};

class System

{

private: Channel **channel;

private: int n, state;

private: System() {}

public: System(int N)

 {

  state = 0;

  n = N;

  channel = new Channel*[n];

  for(int i=0; i<n; i++)

   channel[i] = new Channel();

 }

public: int State()

 { return state; }

public: bool InRequest()

 {

  for(int i=0; i<n; i++)

  {

   if ( channel[i]->Empty() )

   {

    channel[i]->Occupy();

    state++;

    return true;

   }

  }

  return false;

 }

public: bool OutRequest()

 {

  for(int i=0; i<n; i++)

  {

   if ( channel[i]->Busy() )

   {

    state--;

    channel[i]->Liberate();

    return true;

   }

  }

  return false;

 }

};

int main()

{

 double w, h = 6.0, u = 1 / 0.8, c = 4.0, d = 2.0, profit;

 double t1 = RandExp(h), t2 = RandExp(u), eps = 0.1;

 long k, N = 6, TotalTime = 1000000;

System *sys = new System(N);

k = N+1;

 double *P = new double[k];

 for(int i=0; i<k; i++) P[i] = 0;

 for(int i=0; i<TotalTime; i++)

{

 if( t1<=0 )

 {

  t1 = RandExp(h);

  sys->InRequest();

 }

 if( t2<=0 )

 {

  t2 = RandExp(u);

  sys->OutRequest();

 }

 t1-=eps, t2-=eps;

 P[sys->State()]++;

}

 for(int i=0; i<k; i++) P[i] = P[i] / TotalTime;

 for(int i=0; i<k; i++)

{

 printf("P[%d] = %2.8f\n", i, P[i]);

}

profit = h * (1-P[N]) * c - N * d;

printf("\n %6d | %2.8f\n", N, profit);

 return _getch();

}


 

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

22226. Советская государственная система в 30х годах ХХ столетия 21.98 KB
  МИЛИЦИЯ УЖЕ ОФИЦИАЛЬНО ВХОДИТ в состав угпу до этого было секретное постановление. Постановление ЦИК СССР. 17 ноября снк СССР принимает постановление где констатируется что при упрошенном ведение дела в 1937 1938г. Этим постановление осуждалась практика массовых арестов.
22227. Государство диктатуры пролетариата 22.61 KB
  советские нпа б. дооктябрьские нпа в. Нпа советского государства основной источник Нормы дооктябрьского права Правосознание Именно нпа советского госва будет постоянно расширяться. Советы всех уровней принимали нпа.
22229. Создание советского государственного аппарата 20.28 KB
  В связи с этим большевики стали проводить национализацию. Но что теперь делать Большевики думали что учредительное собрание передаст власть Советам. Большевики знали. Большевики обещали демократизацию.
22230. Возникновение советского государства и права 18.27 KB
  Иогп Лекция 1 Возникновение советского госва и права 1. возникновение госва 3. Политика очень важна для госва.Конечно в условиях мирного времени регулятором обществ жизни был рынок но вместо ее надо образовать государственный контроль.
22231. Анализ требований к отбору S блоков разработчиков стандарта 291 KB
  Введение в дифференциальный криптанализ Анализ требований к отбору S блоков разработчиков стандарта. Построение произвольной двухблочной характеристики обозначает левый полублок в скобках приводится вариант активизации на промежуточном цикле S блоков S7 и S8. Для того чтобы уйти от однобитного перехода на втором цикле можно взять левый полублок с битами попадающими на те же входы S блоков S блоки S5 и S6 что и использованные ранее входы  18 и 23 биты должна сохраниться идея активизации на каждом цикле не более двух S блоков. Для...
22232. Дифференциальны криптоанализ полного 16-циклового DES 279 KB
  Любая пара плайнтекстов дающая повышение промежуточных характерных XOR значений названа правильной парой. Предполагаемое изменение XOR соответствующих значений в течении шифрования правильной пары плайнтекстов в новой версии 16цикловой атаки проиллюстрировано на Рис.2 которое включает 15цикловую атаку в циклах со 2 до 16 с предшествующим новым 1ым циклом Наша цель сгенерировать без потери вероятности пары плайнтекстов чьи XOR выходы после первого цикла являются требуемыми XOR входов в 13цикловой характеристике в циклах со 2го по...
22233. Дифференциальный криптоанализ DES Атака на полный 16-цикловый DES со сложностью 219 551.5 KB
  В таблице 1 представлен фрагмент таблицы разностей для второго S блока Таблица 1 Входной Выходной XOR XOR 0x 1x 2x 3x 4x 5x 6x 7x 8x 9x Ax Bx Cx Dx Ex Fx 4x 0 0 0 0 0 6 0 14 0 6 10 4 10 6 4 4 8x 0 0 0 4 0 4 0 8 0 10 16 6 6 0 6 4 Рассмотрим ситуацию когда на входе второго S блока одной 16цикловой характеристики имеется входная разность 4x а на входе второго S блока другой 16цикловой характеристики имеется входная разность 8x. Убедимся прежде всего что и в этом случае используя известные входные пары и выходные XORы для пары S блоков...
22234. Криптографическая система 256 KB
  Замыслом который стал определяющим при формировании настоящей программы Вашей подготовки стала задача ознакомления Вас с двумя наиболее сложными в теоретическом да и практическом отношении криптоаналитическими атаками позволившими в свое время найти слабости в широко известном и все еще применяемом до настоящего времени стандарте симметричного блочного шифрования США алгоритме DES. Поэтому хотя сегодня уже шифр DES можно считать уходящим со сцены представляется целесообразным изучение принципов выполнения указанных выше...