12151

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

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

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

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

Русский

2013-04-24

474 KB

9 чел.

Отчет

по лабораторной работе № 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 ?

Да

Нет

Да

Нет


 

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

54067. Интегрированное занятие для детей старшей логопедической группы « А мы идем, шагаем по Земле» 51 KB
  Дерево трава цветок и птица Не всегда умеют защититься Если будут уничтожены они На планете мы останемся одни Приглашаю всех вас в гости Спит девочка. Лучик танцует и нежно будит девочку ДЕВОЧКА: просыпаясь и потягиваясь Доброе утро Какое оно прекрасное Лучику Ой Кто ты ЛУЧИК: Я – Лучик Солнца золотой Пришел к тебе с небес...
54068. Дидактичні матеріали до логопедичних занять з теми «Диференціація свистячих і шиплячих». Розрізнення дж-дз 125 KB
  Насупилось небо, плаче хмаринка. А поле сміється щасливо і дзвінко, бо сльози хмаринки несуть урожай. Як сльози ці звуться? Ану відгадай.
54069. Дифференциация звуков с – з. Развитие речи по лексической теме «Зима» 63 KB
  Картинки с изображениями Дети катаются на лыжах Дети катаются на санках Дети катаются на коньках Дети лепят снеговика. Дети повторяют движения за логопедом. Дети по очереди прикасаются к большому пальцу остальными пальчиками в ритме стихотворения. Дети лепят снеговика.
54070. Подолання вад звуковимови й звукосприймання 23.89 MB
  Виправлення недоліків звуковимови проводиться у певній послідовності за прийнятою методикою. Під час цих вправ звертається увага на положення язика: корінь спокійний а кінчик язика біля нижніх різців. Вправи для язика: рухи язиком вперед і назад відкритим ротом як котик...
54071. Здоровым и грамотным должен быть каждый! Логопедическая спартакиада 63.5 KB
  Скачет лягушонок Дети хлопают в ладоши Квакваква прыгают на месте Плавает утёнок хлопают в ладоши Крякрякря Ставят руки к груди и разводят в стороны. Прыгает козлёнок Хлопают в ладоши Ме – ме ме Ставят руки на пояс наклоняются вперёд А за ним ягнёнок Хлопают Бе – бе – бе приседают Вот мы на зарядке Хлопают Раз дватри Прыгают на месте Все вокруг стараются Хлопают Спортом занимаются Шагают на месте Эстафета Собери букву По команде: Марш первый учащийся с мячом в руках бежит к обручу. Звуковая разминка...
54072. Логопедичне заняття. Осіння лісова галявина 210.5 KB
  Логопедичне заняття Вид. Виховувати вміння слухати вказівки логопеда. Логопед. Діти а зараз давайте пограємо в гру З якого дерева листочок Логопед показує дітям листочок а діти називають.
54073. Звук "ш". Лісова школа (Старша логопедична група) 1.38 MB
  Формувати в малят уявлення про навчання в школі ознайомити із звуком ш акустичною характеристикою; закріпити вміння ділити слова на склади визначати звук який найчастіше звучить у вірші аналізувати слово з допомогою звукових фішок пригадувати слова зі звуком ш ; узгоджувати числівники з іменниками в орудному відмінку; розвивати фонематичні процеси слуховий контроль. Обладнання: фішки для звукового аналізу шишкикартинки картинки з предметами у множині іграшка Лунтик...
54074. Логопедичні міні-заняття як дієва форма корекційно-розвивальної роботи з дітьми дошкільного віку 196 KB
  Наприклад вправа Хто летить хто не летить Учительлогопед промовляє вірш а діти пантомімою зображують: Хто летить хто не летить. Так швиденько покажіть Хто летить хто не летить. Летить летить воронаЛетить летить корова Летить летить шпак Летить летить грак. Летить летить горобчик.
54075. ЛОГОПЕДИЧНА РОЗВАГА «СВЯТО БЕРЕЖЛИВОСТІ» 140 KB
  Закріпити словник споріднених слів гончар гончарство гончарський гончарний гончарня; уточнити та розширити словник антонімів чистий брудний святковий буденний повсякденний натуральна природна штучна однотонна різнокольорова теплий холодний літній зимовий новий старий рвати штопати бруднити ...