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();

}


 

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

11809. Процесс каландрования резиновых смесей 384.5 KB
  Лабораторная работа № Процесс каландрования резиновых смесей Цели работы Определение влияния типа наполнителя и размера калибрующего зазора на усадку. Теоретическая часть Каландрование это процесс непрерывного формовании разогретой резиновой смеси
11810. ВИЗНАЧЕННЯ ТИПУ ГЛИНИСТОГО ГРУНТУ 236 KB
  ВИЗНАЧЕННЯ ТИПУ ГЛИНИСТОГО ГРУНТУ Глинисті ґрунти складаються з дуже маленьких часточок менше 0005 мм які зазвичай мають лускоподібну форму. На відміну від піщаних ґрунтів глини мають велику поверхню часточок які вбирають вологу. Глинисті ґрунти мають властивість
11811. ИССЛЕДОВАНИЕ КВАНТОВОЙ ПРИРОДЫ СВЕТА 142.5 KB
  Лабораторная работа 1 по курсу КСЕ ИССЛЕДОВАНИЕ КВАНТОВОЙ ПРИРОДЫ СВЕТА Цель работы: Исследовать квантовые свойства света и построить график зависимости фототока от напряжения. Приборы и принадлежности: источник питания ИПС106 стенд с объектами исследования С3...
11812. Определение параметров солнечного ветра и его влияния на магнитосферу Земли 973.5 KB
  Лабораторная работа № 2 по курсу КСЕ Определение параметров солнечного ветра и его влияния на магнитосферу Земли Цель работы: ознакомиться со структурой межпланетного магнитного поля и геомагнитосферы; определить радиальную скорость распространения выб
11813. ВИЗНАЧЕННЯ КУТА ПРИРОДНЬОГО УХИЛУ ГРУНТУ 58 KB
  ВИЗНАЧЕННЯ КУТА ПРИРОДНЬОГО УХИЛУ ГРУНТУ Кутом природного ухилу α називають такий максимальний кут між горизонтом і поверхнею вільного ґрунту при якому ґрунт ще зберігає рівновагу. Зчеплення α для сухих ґрунтів в рихлому стані майже співпадає з кутом внутрішнього ...
11814. Определение пластичности каучука и резиновых смесей на пластомере 153.5 KB
  Лабораторная работа № Определение пластичности каучука и резиновых смесей на пластомере Суть метода Приложение постоянного груза к образцу и измерение высот до нагрузки после нагрузки и после отдыха. Краткая теория Пластичность способность мате
11815. Учебное-методическое пособие по выполнению лабораторных работ По курсу Проектирование на ПЛИС 1.25 MB
  Учебно-еметодическое пособие по выполнению лабораторных работ По курсу Проектирование на ПЛИС Аннотация Данное пособие содержит краткое описание базовых процедур по выполнению лабораторных робот по курсу Проектирование на ПЛИС. В пособии рассмотрена САПР MAX...
11816. Шприцевание резиновых смесей 109 KB
  Лабораторная работа № Шприцевание резиновых смесей Цель работы Получение заготовок определенного профиля путем продавливания разогретой резиновой смеси с помощью червяка через профилирующее отверстие и определение усадки. Теоретическая часть Шприцев
11817. Визначення вологості ґрунту 353.5 KB
  ЛАБОРАТОРНА РОБОТА Визначення вологості ґрунту Вологістю називається відношення маси води яка знаходиться в грунті до маси абсолютно сухого ґрунту в даному обємі. Кількість води яка міститься в порах ґрунту в природніх умовах залягання називається природною воло...