Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Оптимізаційны методи та моделі.doc
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
5.7 Mб
Скачать

7.3. Імітація випадкових впливів на пк

При моделюванні на ЕОМ імовірнісних процесів необхідно мати механізм імітації випадкових впливів.

Випадкові впливи можна:

— вводити в модель у вигляді таблиць експериментальних результатів, отриманих в процесі натурних випробувань елементів, що замінюються;

— штучно відтворювати програми або фізичні деталі, які включали в загальну схему моделювання.

Перший спосіб зустрічається з програмними труднощами, пов’язаними з організацією послідовного вводу в оперативну пам’ять ЕОМ великих масивів інформації, попередньо записаних у зовнішній пам’яті.

Другий спосіб більш гнучкий: статистичні характеристики програмно-імітуємих впливів легко змінити в відповідності з змінною параметрів системи, що моделюється. Тому програмний спосіб імітації знайшов більше поширення.

Традиційний спосіб програмної імітації випадкових функцій будь-якої складності зводиться до генерування деяких стандартних процесів, які назвемо БАЗОВИМИ ВПЛИВАМИ.

На основі базових впливів в результаті їх послідуючого функціонального перетворення можуть бути отримані будь-які інші, що називаються ПОХІДНИМИ ВПЛИВАМИ.

Найбільш поширеним базовим впливом є послідовність незалежних рівномірно розподілених в інтервалі випадкових величин.

Це пояснюється тим, що такий розподіл легше отримати за допомогою ЕОМ.

Основним елементом, з сукупності яких складається статистична (монте-карловська) модель, є одна випадкова реалізація явища, що моделюється, наприклад: один «обстріл» цілі, один «виявлення» цілі, одна «відмова» елемента системи і т.і.

Реалізація являє собою неначе один випадок здійснення випадкового явища (процесу), що моделюється, з усіма притаманними його випадковостями. Вона розігрується за допомогою спеціально розробленої процедури або алгоритму, в якому важливу роль відіграє імітація випадкових коливань; іноді її називають «розіграшем» або «метанням жеребка». Кожного разу, коли в хід процесу, що моделюється, втручається випадковість, її вплив ураховується не розрахунком, а імітацією на ЕОМ випадкових процесів.

При цьому імітацією на ЕОМ випадкових впливів можна розіграти або імовірність появи події, або значення випадкової величини, або сукупність значень кількох випадкових величин. Основою для розіграшу жеребка є базові впливи — послідовність рівномірно розподілених чисел в інтервалі .

В процесі реалізації імовірних моделей виникає необхідність в імітації випадкових подій, випадкових величин, випадкових векторів і випадкових процесів. При цьому виникає ряд задач (рис. 7.2).

Рис. 7.2

ІМІТАЦІЯ ВИПАДКОВИХ ПОДІЙ

Тут виникає три задачі:

  1. імітація окремої події з заданою імовірністю р;

  2. імітація системи n незалежних подій;

  3. імітація залежних подій.

1. Розглянемо першу задачу.

Нехай імовірність події А дорівнює р:

Виконуючи механізм одержання базових впливів, оберемо випадкове число ξ і будемо вважати, що якщо ξ р, то подія А відбувається, якщо ξ > р — не відбулась. Дійсно, якщо візьмемо інтервал і на ньому відкладемо у відповідному масштабі точку р, то випадкові числа ξ1, ξ2, ..., ξі, … (базові впливи) з імовірністю р будуть вилучать в інтервалі і з імовірністю (1 – ) — в інтервал (рис.7. 3).

. . . . .

0 Р 1 0 1

0 1 0 1

Рис. 7.3. Рис. 7.4.

2. Розглянемо другу задачу.

Нехай є повинна група несумісних подій А1, А2, …, Аn з ймовірностями p1, p2, …, pn. Оскільки події несумісні і становлять повну групу подій, то:

.

Поділимо весь інтервал від 0 до 1 на n частин довжиною p1, p2, …, pn (рис. 7.4). Якщо випадкове число , видане стандартним механізмом базових впливів, потрапило, наприклад, на інтервал p3, то це означає, що з’явилась подія А3.

3. Розглянемо імітацію залежних подій.

Залежні події А і В задаються безумовною імовірністю P(A) події А і умовною імовірністю Р(В/А) події В. Подія А імітується відомим методом (перша задача). В залежності від результату (А або А) подія В імітується (тим же способом) по ймовірностям Р(В/А) або Р(В/А).

ІМІТАЦІЯ ВИПАДКОВИХ ВЕЛИЧИН

В даному випадку також виникає ряд задач:

1) імітація дискретних випадкових величин;

2) імітація неперервних випадкових величин;

3) імітація сукупності випадкових величин;

1. Розглянемо імітацію дискретної випадкової величини.

Нехай є дискретна випадкова величина X з відомим законом розподілу, тобто вона приймає значення X1, X2, …, Xn з ймовірностями p1, p2, …, pn. Цей випадок аналогічний імітації незалежних подій, якщо позначити через Ai подію, яка полягає в тому, що величина X прийняла значення Xi. Точно так же розділимо весь інтервал від 0 до 1 на n частин довжиною p1, p2, …, pn (рис. 7.5). Вилучення випадкового числа на інтервал означає, що величина Х прийняла значення .

2. Розглянемо імітацію, при якій випадкова величина Х неперервна і має задану неперервну функцію розподілу F(x).

Дійсно, візьмемо випадкову величину Х і знайдемо її функцію розподілу, тобто імовірність Р(Х<x). З рис. 7. 6 видно, що для того, щоб виконувалась нерівність Х<х, величина повинна прийняти значення менше від F(x):

.

F(x)

…. 1

0 1 F(x)

0 1

DSR( ) 0 X x x

Рис. 7.5. Рис. 7.6

Але випадкове число має сталу щільність розподілу , рівну 1 на відрізку [0,1]; отже,

,

що й потрібно було довести.

Таким чином, імітація випадкової величини Х з заданою функцією розподілу F(x) вводиться до наступної процедури.

Отримати випадкове число від 0 до 1 і як значення Х взяти:

X=F-1 (),

де F-1 функція,обернена до F.

Якщо випадкова величина задається щільністю розподілу f(x), то імітація цієї величини зводиться до наступного алгоритму:

  1. отримати інтегральну функцію

F(x) = ;

  1. отримати випадкове число і прирівняти його до F(x)

= F(x);

  1. знайти обернену функцію:

X= F-1 ().

Даний спосіб імітації отримав назву МЕТОДУ ОБЕРНЕНОЇ ФУНКЦІЇ.

Крім того, існують інші способи функціонального перетворення бавових впливів і отримання похідних впливів. До них відносяться метод Неймана, метод апроксимації,метод ісходів і інші.

3. Розглянемо суть імітації сукупності випадкових величин.

Нехай маємо систему випадкових величин x1,x2,…,xn з сумісною щільністю розподілу f (x1,x2,…,xn).

Якщо випадкові величини незалежні, то

f (x1,x2,…,xn) = f1 (x1) f2 (x2)…fn (xn),

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

Якщо випадкові величини залежні, то

f (x1,x2,…,xn) = f (x1) f (x2/x1) f (x3/x1x2),…,

де кожна наступна щільність розподілу обчислюється за умови, що попередні випадкові величини прийняли певні значення. Процедура імітації полягає в наступному: спочатку отримується значення x1 випадкової величини X1; це значення береться як аргумент в умовній щільності f (x2/x1); розігрується значення x2 випадкової величини X2; обидва значення x1, x2 беруться як аргумент в умовній щільності

f (x3/x1x2) і т.д.

ІМІТАЦІЯ ВИПАДКОВИХ ВЕКТОРІВ

Імітація n-вимірного випадкового вектора

n={ n1,n2,…,nn},

заданого щільністю ймовірностей

ώ(n1,n2,…,nn) = ώ(n1) ώ(n2/n1) ώ(n3/n1n2)… ώn(nn/n1,…,nn-1)

зводиться до послідовної імітації скалярних незалежних величин з використанням базових впливів. При цьому n1 формується одним із способів, які були описані раніше, у відповідності з щільністю ймовірностей ώ1 (n1). Імітація n2 отримується тими ж способами по щільності ώ2 (n2/n1), яка залежить від тільки що отриманого значення n1; при цьому використовуються інші базові впливи, незалежні від тих, які використовувались для імітації n1 і т. і.

Практичні складності виникають тут при отриманні зручних для обчислення записів умовних щільностей

ώ2 (n2/n1), ώ3(n3/n1n2),…

Якщо область визначення n-вимірної функції щільності обмежена паралелепіпедом

ai ni bi (i=1,2,…,n),

а її максимальне значення дорівнює ώm,то процедура полягає в імітації (n+1)чисел 1, 2,…, n+1,розподілених за законом рівномірної щільності, і перевірці нерівності

n+1  ώ(а1 + (b1 – a1) ·  1,а2 + (b2 – a2)·  2,…, аn + (bn – an)· n).

Якщо нерівність виконується, то отримані значення

ai + (bi – ai)·  1 (i =1,2,…,n),

видаються як компоненти випадкового вектора. В протилежному випадку генерується нова сукупність n чисел.

Недолік цього способу полягає в збільшенні відносного числа відкидаємих чисел по мірі росту n.

Слід відмітити, що формування випадкових векторів великої вимірності при довільній щільності ймовірностей являє собою досить складну задачу.

Найпростіше сформувати випадкові вектори за нормальним законом:

(1, 2,… n)=2 exp

де — вектор-стовбець компонент 1, 2,… n;

а — вектор-стовбець математичних сподівань компонент а1, а2,…, аn;

В — кореляційна матриця (n*n);

— детермінант кореляційної матриці;

матриця, обернена до кореляційної;

— вектор-рядок, отриманий транспонуванням

В загальному випадку нормально розподілений випадковий вектор формується у вигляді

, (7.1)

де — вектор-стовбець з n початкових незалежних випадкових чисел, розподілених за нормальним законом з математичним сподіванням 0 і дисперсією ;

С — перетворююча матриця n n.

Матриця С знаходиться по заданій кореляційній матриці В. Найзручніше представити С у вигляді нижньої трикутної матриці.

C11 0 0 0

C21 C22 0 0

C = C31 C32 C33 0

……………….

Cn1 Cn2 Cn3 Cnn

Тоді у відповідності з (7. 1)компоненти випадкового вектора виразяться наступним чином:

= С11 + а1;

2= С21 2 + С22 2 + а2;

331 3+ С32 333 33;

..............................

n= Cn1 n+ Cn2 n + Cn3 3+…+an.

Компоненти Сi j можна визначити з системи рівнянь

bij = Ci1Cj1 + Ci2 + ……. CijCji ,

де bij — елемент заданої кореляційної матриці В.

Ця система розв’язується досить легко. Так, наприклад, C11 визначається з рівняння

b11=c112 ,

C11 і C22 з рівнянь

b12 = c11 c12 ;

b22= c122 + c222

і т.і.

ІМІТАЦІЯ ВИПАДКОВИХ ПРОЦЕСІВ

Випадковий R-вимірний векторний процес є функція, значення якої при фіксованому скалярному аргументі t R-вимірними випадковими векторами:

= .

При цифровому моделюванні завжди використовується випадкова послідовність значень процесу

i = 1,2,…

в дискретні моменти часу t1 < t2< t3

Розглядання процесу на невеликому інтервалі часу Тn, який включає скінчену (і практично невелику) кількість точок відліку t1, t2,…, tn, зводиться до оперування з сукупністю випадкових векторів ,…, , які утворюють один nR-вимірний вектор:

Імітація такої послідовності виконується методами, які були викладені раніше, і потребує значення nR-вимірної функції розподілу.

В деяких випадках випадкові процеси можуть формуватися по їх канонічним розкладам вигляду

X(t)=

де mx(t) — функція, яка описує зміни в часі математичного сподівання процесу;

незалежні випадкові величини;

ψі деякі координатні невипадкові функції.

Для нормальних випадкових процесів їх послідовні значення можна обчислювати за формулою (аналог лінійного фільтру)

X ,

де κj — сталі вісьові коефіціенти, які знаходяться за заданою автокореляційною функцією процесу;

υіj елементи послідовності незалежних випадкових чисел, що розподілені за нормальним законом υ1,υ2,……υn.

Розглянемо кілька прикладів по імітації випадкових впливів. Кожний приклад закінчується програмою, написаною на мові Бейсик, в якій описові частина не наводиться.

Крім того, будемо допускати, що існує процедура RND (R) отримання випадкових чисел {Rj}, (i-1,2….) з рівномірним законом розподілу.

Приклад 1. Модулюється процес настання події А. Імовірність настання події А дорівнює Р. Скласти програму моделювання випадкової події, яка полягає в настанні або ненастанні події А.

Нехай А =1 означає факт настання події, а А=0 — ненастання події

Програма:

RND (R);

if R  P then A=1 else A:= 0;

(RND (R) — генератор або датчик рівномірно розподілених випадкових чисел).

Приклад 2. На СТО для ремонту очікується поява автомобілю або типу Мерседес з імовірністю P1, або LEXUS з імовірністю P2, або HONDA з імовірністю P3.

Скласти програму моделювання випадкової події, яка полягає у визначенні того, який тип автомобіля з’явиться на СТО. Поява автомобіля i-ого типу позначимо А=i.

Розділимо інтервал [0,1] на три ділянки довжиною P1,P2,P3. Якщо випадкове число R влучило в інтервал від P1 до P2, вважаємо, що на СТО прибув автомобіль 2-го типу, тобто LEXUS.

Програма:

RND(R);

S=0; i=1;

K:S=S+P[i];

if R S then begin A=і; goto fin end;

i=i+1; goto K;

fin;

Приклад 3. Скласти програму моделювання випадкової події, що полягає в технічному обслуговуванні автомобіля, якщо імовірність своєчасного прибуття авто на СТО дорівнює Р, а імовірність наявності необхідних деталей для ремонту дорівнює q.

Позначимо через А=1 факт технічного обслуговування авто, а через А=0 — видмови.

Програма:

RND(R); А=0;

if R > P then goto fin;

RND(R);

if R q then A=1;

fin;

Приклад 4. Потік заяв на обслуговування описується законом Пуассона:

де — імовірність появи k заяв за інтервал часу ,

— щільність потоку заяв.

Скласти програму імітації випадкової величини k, тобто за допомогою процедури одиничного жереба визначити, оскільки заяв з’явиться в інтервалі . В наступних записах опустимо залежність від .

Позначимо . Випадкова величина k приймає значення 0, 1, 2, … k, … з ймовірностями , , …, , …

, .

Для спрощення програми будемо обчислювати чергове значення за допомогою рекурентної формули:

, при

Програма:

;

then go to M

;

; go to K1

Запис Z = K означає, що в даному інтервалі з’явиться k заяв.

Приклад 5. Побудувати процедуру імітації випадкової величини Х, розподіленої за показниковим законом з щільністю .

> 0.

У відповідності з визначенням раніше алгоритмом зробимо наступні перетворення:

а) знаходимо функцію розподілу

б) отримуємо випадкове число R і прирівнюємо F(x);

;

в) знаходимо обернену функцію. Для цього розв`язуєм рівняння відносно х:

Таким чином, для отримання похідних впливів з цільністю необхідно використати базові впливи { } і здійснювати функціональне перетворення у відповідності з формулою

.

Припустимо, що необхідно отримати N чисел.

Програмa:

n = 1;

L: RND (R);

;

n = n + 1;

n < N then go to L;

Приклад 6. Маємо систему залежних випадкових величин і . Випадкова величина розподілена за зразком прямокутного трикутника на ділянці від 0 до 1 (рис. 7.7): f1(x1) = 2x1, при 0 х1 1.

Випадкова величина х2 розподілена зі сталою щільністю на ділянці довжиною 2 з центром в точці х1, де х1 — значення, яке прийняла випадкова величина х1 (рис. 7.8). Організувати процедуру імітації випадкових величин х1 і х2.

f1(x1)

f2(x2/x1)

2

1/2

0 1 x1 0 x1-1 x1 x1+1 x2

Рис. 7.7 Рис. 7.8

Розіграємо спочатку значення величини х1; для цього побудуємо її функцію розподілу (рис. 7.9).

0, при х1 < 0;

F1(x1) = х1, при 0 < х1 < 1,

1, при х1 > 1.

Величину х1 отримаємо як обернену функцію по відношенню до F1(x1) від випадкового числа R:

R = x12; x1=SQR(R).

Після того, як розіграно значення х1, воно вже не випадкове, позначимо його х1. При відомому значенні х1 будуємо умовну функцію розподілу F2(x2/x1) випадкової величини х2 (рис. 7.10).

F(x2/x1) = (x2 – x1+1) при x1 – 1 < x2 < x1+1.

F 1(x1) F2(x2/x1)

i

1

R R

0 x1 1 x1 0 x1-1 x1 x2 x1+1 x2

Рис. 7.9 Рис. 7.10

Візьмемо нове випадкове число R від 0 до 1 та знайдемо від нього функцію, обернену:

R = (x2 – x1 + 1); x2= 2R + x1 – 1.

Для складання програми нехай необхідно отримати N залежних величин.

Програма:

n=1

K: RND(R)

X1 [n] = sqrt (R)

RND(R)

X2 [n] = 2*R + X1[1] – 1

n =n+1

if n N then go to K