12151

Форма расчёта равномерного и гиперекспоненциального распределения

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

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

Отчет по лабораторной работе № 12 Равномерное распределение распределение характеризующееся тем что вероятность любого интервала зависит только от его длины. Равномерное распределение выбирается когда предполагается что все варианты прогнозируемого показ

Русский

2013-04-24

474 KB

10 чел.

Отчет

по лабораторной работе № 1,2

Равномерное распределение - распределение, характеризующееся тем, что вероятность любого интервала зависит только от его длины. Равномерное распределение выбирается, когда предполагается, что все варианты прогнозируемого показателя имеют одинаковую вероятность реализации.

Говорят, что случайная величина имеет непрерывное равномерное распределение на отрезке [a,b], где , если её плотность fX(x) имеет вид:

Интегрируя определённую выше плотность, получаем функцию распределения вероятности:

Линейный конгруэнтный метод — один из алгоритмов генерации псевдослучайных чисел. Этот алгоритм заключается в итеративном применении следующей формулы:

,

где a > 0, c > 0, m > 0 — некоторые целочисленные константы. Получаемая последовательность зависит от выбора стартового числа X0 и при разных его значениях получаются различные последовательности случайных чисел.

Нормальное распределение зависит от двух параметров — смещения и масштаба.

Плотность вероятности случайной величины, распределённой по нормальному закону, выражается следующим соотношением:

,

где μ - коэффициент сдвига (вещественное число), σ - коэффициент масштаба (вещественный, строго положительный).

Функция распределения имеет следующий вид:

Для нормированного нормального распределения, график выглядит так

Треугольное распределение (распределение Симпсона)

Треугольное распределение представляет собой суррогат нормального и предполагает линейно нарастающее по мере приближения к моде распределение.

Cлучайная величина ξ имеет треугольное распределение (распределение Симпсона) на отрезке [a,b] (a < b), если

Экспоненциальное или показательное распределение

Экспоненциальное распределение с плотностью вероятности f(x)=λe-λx, где x≥0, λ – параметр распределения, связанный с математическим ожиданием и дисперсией выражениями   ,  

Экспоненциальное или показательное распределение — абсолютно непрерывное распределение, моделирующее время между двумя последовательными свершениями одного и того же события.

Случайная величина X имеет экспоненциальное распределение с параметром λ > 0, если её плотность имеет вид

.

Иногда семейство экспоненциальных распределений параметризуют обратным параметром 1 / λ:

.

Оба способа одинаково естественны, и необходима лишь договорённость, какой из них используется.

Интегрируя плотность, получаем функцию экспоненциального распределения:

Особенностью экспоненциального распределения является то, что коэффициент вариации для этого распределения равен 1. Графики плотности f(x) и функции F(x) для экспоненциального закона, имеют вид:

Распределение Эрланга k-го порядка

где x≥0, k≥1 – целое число и λ связан с матожиданием выражением При k=1 распределение Эрланга преобразуется к экспоненциальному. Можно показать, что случайная величина, имеющая Эрланговское распределение, может рассматриваться как сумма k-случайных величин, имеющих экспоненциальное распределение с параметром λ. Эрланговское распределение при k>1 имеет  . Графики плотности и функции распределения для k=2, λ=1, представлены на рис.


Cлучайная величина ξ имеет треугольное распределение (распределение Симпсона) на отрезке [a,b] (a < b), если

Cлучайная величина ξ имеет гиперэкспоненциальное распределение с параметрами

(смесь экспоненциальных распределений), если

Форма выбора распределения, форма построения равномерного распределения при помощи стандартного генератора случайных чисел, форма графика функции равномерного распределения.

Форма расчёта гиперекспоненциального распределения.

Имеется r-малое предприятий каждое, из которых выпускает продукцию отличную друг от друга. Есть потребители, их m, они торгуют в розницу, ежедневно закупая товары с оптового склада. Потребитель может закупать несколько видов товара но не все, и они могут отказаться от покупок на какой то день. Задан спрос каждого потребителя. На складе к концу дня остается Сj единиц товара. Пусть l j это минимальный остаток j ого товара на конец дня. Если  то оптовый склад делает заказ предприятиям на производство Rj единиц товара, который к утру следующего дня будет изготовлен и доставлен на склад. Если , то заказа на производство не будет. И склад будет реализовывать не проданный товар. Таким образом, к следующему дню на оптовом складе находится некоторое кол-во bj товара и если, мы будем рассматривать процесс в нулевой точке, то . Необходимо построить модель данной системы и провести вычислительный эксперимент. Определить такие Rj и lj, которые обеспечивают 95% заявок потребителей

Переменные

  •  - минимальное число мест на складе под j  товар, при котором еще не требуется дополнительных закупок на предприятии

  •  - кол-во j ого товара на начало дня после произведения закупок всеми потребителями в предыдущий день и выполнения заказов на производство товаров предприятиям

  •  - заказ оптового склада предприятиям на следующий день

  •   остаток j ого товара после удовлетворения всех заявок покупателей на текущий день

  •   заявки i-ого потребителя на j-й товар

  •   суммарные заявки всех потребителей на j-товар на текущий день

  •  А- суммарная заявка потребителей на все товары на текущий день

  •  А1- суммарная заявка потребителей на все виды товара с первого дня моделирования по текущий день

  •  S- текущий день моделирования

  •  G- период моделирования

  •  - кол-во j ого товара, которого не хватило для удовлетворения заявок потребителей на j-ый товар, начиная с 1-ого дня моделирования на текущий день
  •   общее число заявок потребителей на j –ый товар с первого дня моделирования по текущий день

  •  -доля j-ого товара, не выданного потребителям к общему числу заявок за весь перед моделирования

  •  H- общее кол-во неудовлетворенных заявок потребителей за весь период моделирования

  •  L- доля всех не выполненных заявок потребителей к общему числу заявок за весь период моделирования.

Исходные данные:

r=10; m=5; G=20;

Заявки потребителей рассчитываются по формуле

q:=random(100)-50;

Минимальное число мест на складе под j  товар, при котором еще не требуется дополнительных закупок на предприятии  :40, 46, 60, 44, 52, 54, 65, 48, 51, 49.

Заказ оптового склада предприятиям на следующий день   рассчитывается по формуле:

for i:=0 to r-1 do

  begin

  if strtoint(stringgrid5.Cells[i,0])<strtoint(stringgrid8.Cells[i,0]) then stringgrid7.Cells[i,0]:=inttostr(strtoint(stringgrid8.Cells[i,0])-strtoint(stringgrid5.Cells[i,0])+random(30))

  else stringgrid7.Cells[i,0]:=inttostr(0);

  end;

Доля всех не выполненных заявок потребителей к общему числу заявок за весь период моделирования    L=0,15969

Код программы:

Генерация заявок на текущий день

procedure TForm1.Button1Click(Sender: TObject);

begin

for i:=1 to m do

for j:=1 to r do

Begin

q:=random(100)-50;

if q<0 then q:=0;

stringgrid1.Cells[j,i]:=inttostr(q);

end;

end;

Расчет текущего дня 

procedure TForm1.Button2Click(Sender: TObject);

begin

try

for i:=1 to r do

begin

q:=0;

  for j:=1 to m do

  q:=q+strtoint(stringgrid1.Cells[i,j]);

stringgrid2.Cells[i-1,0]:=inttostr(q);

end;

q:=0;

for i:=0 to r-1 do

q:=q+strtoint(stringgrid2.Cells[i,0]);

edit4.Text:=inttostr(q);

for i:=0 to r-1 do

stringgrid3.Cells[i,0]:=inttostr(strtoint(stringgrid3.Cells[i,0])+strtoint(stringgrid2.Cells[i,0]));

for i:=0 to r-1 do

stringgrid5.Cells[i,0]:=inttostr(strtoint(stringgrid4.Cells[i,0])-strtoint(stringgrid2.Cells[i,0]));

for i:=0 to r-1 do

if strtoint(stringgrid5.Cells[i,0])<0 then stringgrid6.Cells[i,0]:=inttostr(strtoint(stringgrid6.Cells[i,0])+abs(strtoint(stringgrid5.Cells[i,0])));

for i:=0 to r-1 do

  begin

  if strtoint(stringgrid5.Cells[i,0])<strtoint(stringgrid8.Cells[i,0]) then stringgrid7.Cells[i,0]:=inttostr(strtoint(stringgrid8.Cells[i,0])-strtoint(stringgrid5.Cells[i,0])+random(30))

  else stringgrid7.Cells[i,0]:=inttostr(0);

  end;

edit5.Text:=inttostr(strtoint(edit4.Text)+strtoint(edit5.Text));

for i:=0 to r-1 do

begin

if strtoint(stringgrid3.Cells[i,0])<>0 then w:=(strtoint(stringgrid6.Cells[i,0]))/(strtoint(stringgrid3.Cells[i,0]))

else w:=0;

stringgrid9.Cells[i,0]:=floattostrf(w,fffixed,2,4);

end;

q:=0;

for i:=0 to r-1 do

q:=q+strtoint(stringgrid6.Cells[i,0]);

edit6.Text:=inttostr(q);

w:=strtoint(edit6.Text)/strtoint(edit5.Text);

edit7.Text:=floattostr(w);

button2.Enabled:=false;

button3.Enabled:=true;

except showmessage('Проверьте корректность введенных данных');

end;

end;

Переход на следующий день

procedure TForm1.Button3Click(Sender: TObject);

begin

for i:=0 to r-1 do

 begin

 if (strtoint(stringgrid5.Cells[i,0])<0) then stringgrid4.Cells[i,0]:=stringgrid7.Cells[i,0];

 if (strtoint(stringgrid5.Cells[i,0])>=0) and (strtoint(stringgrid5.Cells[i,0])>strtoint(stringgrid8.Cells[i,0])) then stringgrid4.Cells[i,0]:=stringgrid5.Cells[i,0];

 if (strtoint(stringgrid5.Cells[i,0])>=0) and (strtoint(stringgrid5.Cells[i,0])<strtoint(stringgrid8.Cells[i,0])) then stringgrid4.Cells[i,0]:=inttostr(strtoint(stringgrid5.Cells[i,0])+strtoint(stringgrid7.Cells[i,0]));

 end;

button2.Enabled:=true;

button3.Enabled:=false;

edit8.Text:=inttostr(1+strtoint(edit8.Text));

end;

Переход на G дней

procedure TForm1.Button4Click(Sender: TObject);

begin

for i:=1 to strtoint(edit1.Text) do

  begin

  button1.Click;

  button2.Click;

  button3.Click;

  end;

button1.Click;

end;



Код программы:

Memo2.Lines.Add('Начало моделирования');

while flag0 do

begin

Memo2.Lines.Add(inttostr(Time)+':');

  {Проверка процессора 1 на наличие задач и "решение" задач}

 If p0[0]<>-1 then

 Begin

 inc(p0[1]);

 If p0[1] = ZTO[p0[0]] then

  begin

  Memo2.Lines.Add('>>Задание '+inttostr(p0[0]+1)+' >> Обработанно процессором №1');

  p0[0]:=-1;

  end;

 end;

   {Проверка процессора 2 на наличие задач и "решение" задач}

 If p1[0]<>-1 then

 Begin

 inc(p1[1]);

 If p1[1] = ZTO[p1[0]] then

  begin

  Memo2.Lines.Add('>>Задание '+inttostr(p1[0]+1)+' >> Обработанно процессором №2');

  p1[0]:=-1;

  end;

 end;

  {Обработка очереди}

 If ochered[0]<>-1 then

 begin

  if p0[0]=-1 then

   begin

    p0[0]:=ochered[0];

    p0[1]:=0;

    Memo2.Lines.Add('>>Задание '+inttostr(ochered[0]+1)+' >> Начало обработки процессором №1 (из очереди)');

    ochered[0]:=-1;

   end

   else

  if p1[0]=-1 then

   begin

    p1[0]:=ochered[0];

    p1[1]:=0;

    Memo2.Lines.Add('>>Задание '+inttostr(ochered[0]+1)+' >> Начало обработки процессором №2 (из очереди)');

    ochered[0]:=-1;

   end;

 end;

 If ochered[0]=-1 then

  If ochered[1]<>-1 then

   begin

   ochered[0]:=ochered[1];

   ochered[1]:=-1;

    If ochered[2]<>-1 then

     begin

     ochered[1]:=ochered[2];

     ochered[2]:=-1;

     end;

   end;

  {Начало цикла просмотра Задач поступивших во время Time, с

   целью распределения по процессорам или местам в очереди}

 For i:=0 to N-1 do

 begin

 if ZTP[i]=Time then

  Begin

  if p0[0]=-1 then

   begin

    p0[0]:=i;

    p0[1]:=0;

    Memo2.Lines.Add('>>Задание '+inttostr(i+1)+' >> Начало обработки процессором №1');

   end

   else

  if p1[0]=-1 then

   begin

    p1[0]:=i;

    p1[1]:=0;

    Memo2.Lines.Add('>>Задание '+inttostr(i+1)+' >> Начало обработки процессором №2');

   end

   else

  if ochered[0]=-1 then

   begin

    ochered[0]:=i;

    Memo2.Lines.Add('>>Задание '+inttostr(i+1)+' >> В очереди (место 1)');

   end

   else

  if ochered[1]=-1 then

   begin

    ochered[1]:=i;

    Memo2.Lines.Add('>>Задание '+inttostr(i+1)+' >> В очереди (место 2)');

   end

   else

  if ochered[2]=-1 then

   begin

    ochered[2]:=i;

    Memo2.Lines.Add('>>Задание '+inttostr(i+1)+' >> В очереди (место 3)');

   end

   else

   Memo2.Lines.Add('>>Задание '+inttostr(i+1)+' >> Не может быть обработанно!');

  end;

 end;

   {Конец цикла просмотра Задач поступивших во время Time, с

    целью распределения по процессорам и местам в очереди}

 inc(Time);

if (Time>strtoint(Edit3.Text)) and (p0[0]=-1)

and (p1[0]=-1) {and (ochered[0]=-1) and (ochered[1]=-1)

and (ochered[2]=-1)}then flag0:=false;

end;

Memo2.Lines.Add('Моделирование завершенно...');


Прибытие заявки

ачало обслуживания

После завершения

Запись время завершения обработки

Записать время прибытия заявки

Заняты ли ЦПУ?

Перевести процессор в состояние «свободно»

Память =  Память -1

Узнать очередное событие

Перевести процессор в состояние «занято»

Память = Память +1

Память = 0 ?

Да

Нет

Да

Нет


 

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

2421. Поняття суб’єкта господарського права. Види суб’єктів господарського права 24.15 KB
  Метою вивчення цієї теми є досягнення студентами чіткого розуміння становища суб’єктів господарського права. Завданнями, відповідно, є вивчення студентами дефініцій, даних в теорії господарського права та у господарському законодавстві, набуття ними вмінь щодо коректного застосування засвоєних понять на теоретичному рівні.
2422. Аналіз та синтез лінійних САУ 7.62 MB
  Управління яким-небудь об'єктом (об'єкт керування позначатимемо ОК) є дія на нього в цілях досягнення необхідних станів або процесів. В якості ОК може служити літак, верстат, електродвигун і т. п. Керування об'єктом за допомогою технічних засобів без участі людини називається автоматичним керуванням.
2423. Научные основы современных сталеплавильных процессов 12.12 MB
  Книга посвящена изучению физико-химической природы процессов, протекающих в сталеплавильных агрегатах. Приведены результаты собственных лабораторных и полупромышленных исследований авторов, обобщены многочисленные данные, приводимые в периодической литературе и посвященные проблеме совершенствования рафинирования стали в процессах плавки и внеагрегатной обработки.
2424. Анализ особенностей конструкции, эксплуатации и испытаний двигателя РД-600В 4.86 MB
  В дипломном проекте рассмотрены особенности конструкции вертолётного двигателя Сатурн РД-600В. Выполнена оценка его надёжности и технологичности. Выявлены причины разрушения ведущей шестерни редуктора. Произведен анализ технологического процесса испытания двигателя Сатурн РД-600В. Даны рекомендации по совершенствованию технологического процесса испытания, путём внедрения оборудования позволяющего сократить трудоёмкость проведения специальных испытаний.
2425. Проектирование систем автоматизации 4.46 MB
  Жизненный цикл СА. Последовательность проектирования АСУ ТП, состав и содержание проектной документации. Разработка и выполнение схемы автоматизации. Выбор технических средств. Общие сведения о функциональных схемах автоматизации и принципах их выполнения. Пример обоснования выбора технических средств автоматизации для реализации АСР. Электропитание средств измерения и автоматизации. Разработка документации для выполнения внутрищитовой коммутации.
2426. Підйомно-транспортні машини 1.05 MB
  До підйомно-транспортних машин відносяться машини і механізми призначенням яких є підйом і переміщення вантажів на порівняно невеликі відстані, на відміну від так званого дальнього транспорту - залізничного, автомобільного, водного і повітряного,який служить для переміщення вантажів на великі відстані.
2427. Динамічні пружні навантаження при підйомі вантажу 223.91 KB
  У разі підйому вантажу з ваги всі зазори в механізмі і канатах вибрані, а пружна система відповідно деформувалася тобто всі пружні елементи механізму вже піддані дії ваги вантажу і всі маси пружної системи починають рух одночасно.
2428. Економіка і організація виробництва 165.38 KB
  Методологія вивчення дисципліни Економіка і організація виробництва. Основні фонди підприємств авіаційної промисловості і їх використання. Оборотні кошти і матеріально-технічне забезпечення підприємств в умовах ринкової економіки. Собівартість продукції підприємств. Основи ціноутворення. Комерційний розрахунок і фінанси підприємств. Виробничі процеси і принципи їх раціональної організації. Сутність і функції процесу управління виробництвом.
2429. Лексичні одиниці в програмуванні 121 KB
  Лексичний устрій тексту програм. Напередвизначені позначення. Класифікація напередвизначених типів. Алфавіт будь-якої мови програмування є підмножиною символів (літер), представлених у спеціальній таблиці ASCII.