Лабораторна робота №1. Аналіз задач стохастичного програмування.
Короткі теоретичні відомості
Варіанти постановки задачі стохастичного програмування
Математична модель задачі оптимізації включає в себе три елементи:
-функцію мети;
-обмеження;
-граничні умови.
Якщо коефіцієнти сj в функції мети – випадкові величини, то можливі дві постановки задачі оптимізації:
-максимізація (мінімізація) середнього значення функції мети, яка називається М-постановкою:
M[F]→max(min); (1)
-максимізація ймовірності отримання максимального (мінімального) значення, яка називається Р-постановкою:
Р[F]→max(min). (2)
Якщо випадковими є величини аij i bi, які входять до обмежень, то і-е обмеження
записується так:
, (3)
де і – задана ймовірність, з якою повинно виконуватись і-е обмеження.
Запис граничних умов може бути виконаний в двох варіантах. Якщо в обмеженні
dj≤xj≤Dj (4)
dj, Dj – детерміновані величини, то обмеження залишаються в такому вигляді. Якщо dj, Dj – випадкові величини, то обмеження розглядаються як два:
(5)
при цьому кожне з них записується аналогічно (3). Так, xj≤Dj буде мати вигляд
P[xj≤Dj]≤i.
Потрібно сказати, що в практичних задачах граничні умови dj, Dj випадковими величинами є вкрай рідко, тому їхній запис будемо зберігати у вигляді (4). Об’єднуючи функцію мети, обмеження та граничні умови, можна сформулювати дві постановки задачі стохастичного програмування.
М-постановка
(6)
Р-постановка
(7)
Обидві постановки представляють собою задачі нелінійного програмування.
Розв’язок та аналіз задач в М-постановці
Детермінований еквівалент
Задача стохастичного програмування в М-постановці (6) безпосередньо розв’язана бути не може. Для розв’язку (6) потрібно перейти до її детермінованого еквіваленту. В цьому випадку функція мети записується так:
(8)
Детермінований еквівалент обмежень має наступний вигляд:
(9)
де і – заданий рівень ймовірності, з якою повинно виконуватися і-е обмеження;
t(і) – обчислюється за допомогою функції НОРМСТОБР(аі).
Введемо позначення
(10)
Ця величина залежить від розбігу значень аij,bi.
У випадку детермінованих вихідних даних Wi=0 та (9) буде мати вигляд детермінованої задачі:
(11)
З (9) видно, що в задачі розподілу ресурсів член t(i)Wi – це величина додаткового ресурсу, який потрібен внаслідок ймовірнісних вихідних даних. Таким чином, при розв’язку задачі будемо користуватись детермінованим еквівалентом:
(12)
Виконання роботи
Підготовка даних
Розв’язок задачі стохастичного програмування (12) будемо розглядати для задачі розподілу ресурсів, яку розв’язували при вивченні лінійного програмування.
Підприємство випускає продукцію за наступними потребами і прибутком:
|
Продукт 1 |
Продукт 2 |
Продукт 3 |
Продукт 4 |
Запас |
Трудові |
1 |
1 |
1 |
1 |
4.00 |
Сировина |
6 |
5 |
4 |
3 |
18.00 |
фінанси |
4 |
6 |
10 |
13 |
33.00 |
Прибуток |
60 |
70 |
120 |
130 |
|
Необхідно скласти програму випуску продукції з метою максимізації прибутку.
При вводі вихідних даних достатньо часто значення σ[aij], σ[bi] бувають невідомими. В цьому випадку можна задати коефіцієнт варіабільності v(x)=σ[x]/M[x] та, знаючи який, визначити
σ[x]=v(x) M[x] (13)
Підготовка даних проводиться по наступному алгоритму.
Алгоритм 1. Введення вихідних даних для детермінованого еквівалента.
|
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
Ім’я |
Прод.1 |
Прод.2 |
Прод.3 |
Прод.4 |
|
|
|
|
|
|
|
|
3 |
значення |
1.00 |
1.00 |
1.00 |
1.00 |
|
|
|
|
|
|
|
|
4 |
нижн.гр. |
|
|
|
|
|
|
|
|
|
|
|
|
5 |
верхн.гр. |
|
|
|
|
|
|
|
|
|
|
|
|
6 |
|
M[c] |
ФМ |
напр |
|
|
|
|
|
|
|||
7 |
коеф.в ФМ |
60 |
70 |
120 |
130 |
380 |
Макс |
|
|
|
|
|
|
8 |
|
M[a] |
|
|
|
|
|
|
|
|
|||
9 |
|
|
|
|
Детер.лів.частина |
M[b] |
|
|
|
|
|
||
10 |
Трудові |
1 |
1 |
1 |
1 |
4.00 |
|
16.00 |
|
|
|
|
|
11 |
Сировина |
6 |
5 |
4 |
3 |
18.00 |
|
110.00 |
|
|
|
|
|
12 |
фінанси |
4 |
6 |
10 |
13 |
33.00 |
|
100.00 |
|
|
|
|
|
13 |
|
|
V=0.20 |
|
|
|
|
|
В К15 введено =НОРМСТОБР(К14) |
||||
14 |
|
σ[a] |
|
|
σ[b] |
|
=0.80 |
|
|
||||
15 |
Трудові |
0.2 |
0.2 |
0.2 |
0.2 |
|
|
3.2 |
|
t()= |
0.84 |
|
|
16 |
Сировина |
1.2 |
1 |
0.8 |
0.6 |
|
|
22 |
|
|
|
|
|
17 |
Фінанси |
0.8 |
1.2 |
2 |
2.6 |
|
|
20 |
|
|
|
|
|
18 |
|
σ2[a]*x2 |
|
|
σ2[b] |
v |
t()*v |
лів.част. |
знак |
M[b] |
|||
19 |
Трудові |
0.04 |
0.04 |
0.04 |
0.04 |
0.16 |
|
10.24 |
3.22 |
2.71 |
6.71 |
≤ |
16 |
20 |
Сировина |
1.44 |
1 |
0.64 |
0.36 |
3.44 |
|
484 |
22.08 |
18.58 |
36.58 |
≤ |
110 |
21 |
Фінанси |
0.64 |
1.44 |
4 |
6.76 |
12.84 |
|
400 |
20.32 |
17.10 |
50.10 |
≤ |
100 |
22 |
|
ή |
|
|
|
|
|
|
|
|
|
|
|
23 |
Трудові |
0.40 |
|
|
|
|
|
|
|
|
|
|
|
24 |
Сировина |
0.51 |
|
|
|
|
|
|
|
|
|
|
|
25 |
Фінанси |
0.34 |
|
|
|
|
|
|
|
|
|
|
|
Рис.1
|
A |
B |
C |
D |
E |
1 |
|
|
|
|
|
2 |
Ім’я |
Прод.1 |
Прод.2 |
Прод.3 |
Прод.4 |
3 |
Значення |
1 |
1 |
1 |
1 |
4 |
Нижн.гр. |
|
|
|
|
5 |
Верхн.гр. |
|
|
|
|
6 |
|
|
M |
[cj] |
|
7 |
Коеф.в ФМ |
60 |
70 |
120 |
130 |
8 |
|
|
M |
[a] |
|
9 |
|
|
|
|
|
10 |
Трудові |
1 |
1 |
1 |
1 |
11 |
Сировина |
6 |
5 |
4 |
3 |
12 |
Фінанси |
4 |
6 |
10 |
13 |
13 |
|
|
V= |
0.2 |
|
14 |
|
|
σ |
[a] |
|
15 |
Трудові |
=(B10:E12)*D13 |
=(B10:E12)*D13 |
=(B10:E12)*D13 |
=(B10:E12)*D13 |
16 |
Сировина |
=(B10:E12)*D13 |
=(B10:E12)*D13 |
=(B10:E12)*D13 |
=(B10:E12)*D13 |
17 |
Фінанси |
=(B10:E12)*D13 |
=(B10:E12)*D13 |
=(B10:E12)*D13 |
=(B10:E12)*D13 |
18 |
|
|
σ2[a |
]*x2 |
|
19 |
Трудові |
=(B15^2)*(B$3^2) |
=(C15^2)*(B$3^2) |
=(D15^2)*(B$3^2) |
=(E15^2)*(B$3^2) |
20 |
Сировина |
=(B16^2)*(B$3^2) |
=(C16^2)*(B$3^2) |
=(D16^2)*(B$3^2) |
=(E16^2)*(B$3^2) |
21 |
Фінанси |
=(B17^2)*(B$3^2) |
=(C17^2)*(B$3^2) |
=(D17^2)*(B$3^2) |
=(E17^2)*(B$3^2) |
|
F |
G |
H |
I |
J |
K |
L |
1 |
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
5 |
|
|
|
|
|
|
|
6 |
ФМ |
Напр |
|
|
|
|
|
7 |
=СУММПРОИЗВ(B$3:E$3;B7:E7) |
Макс |
|
|
|
|
|
8 |
|
|
|
|
|
|
|
9 |
Детерм.лыв.частина |
M[b] |
|
|
|
|
|
10 |
=СУММПРОИЗВ(B$3:E$3;B10:E10) |
16 |
|
|
|
|
|
11 |
=СУММПРОИЗВ(B$3:E$3;B11:E11) |
110 |
|
|
|
|
|
12 |
=СУММПРОИЗВ(B$3:E$3;B12:E12) |
100 |
|
|
|
|
|
13 |
|
|
|
|
|
|
|
14 |
|
σ[b] |
|
= |
0.8 |
|
|
15 |
|
=(G10:G12)*D13 |
|
t() |
=НОРМСТОБР(J14) |
|
|
16 |
|
=(G10:G12)*D13 |
|
|
|
|
|
17 |
|
=(G10:G12)*D13 |
|
|
|
|
|
18 |
|
σ2[b] |
W |
t()*W |
Ліва частина |
знак |
M[b] |
19 |
=СУММ(В19:Е19) |
=G15^2 |
=КОРЕНЬ(СУММ(F19;G19)) |
=H19*J$15 |
=F10+I19 |
≤ |
16 |
20 |
=СУММ(В20:Е20) |
=G16^2 |
=КОРЕНЬ(СУММ(F20;G20)) |
=H20*J$15 |
=F11+I20 |
≤ |
110 |
21 |
=СУММ(В121:Е21) |
=G17^2 |
=КОРЕНЬ(СУММ(F21;G21)) |
=H21*J$15 |
=F12+I21 |
≤ |
100 |
Рис.2.
1.Ввести:
M[cj] в В7:Е7,
M[aij] в В10:Е12,
M[bi] в Н10:Н12,
скопіювавши їх з детермінованої задачі.
2.Задатись значенням v, яке введене в D13.
3.Визначити значення σ[aij]:
Курсор в В15.
Виділити В15:Е17.
Ввести =(В10:Е12)*D13.
<Shift>+<Ctrl>+<Enter>.
На екрані: в В15:Е17 введені значення σ[aij].
4.Визначити значення σ[bi]:
Курсор в Н15.
Виділити Н15:Н17.
Ввести =(H10:H12)*D13.
<Shift>+<Ctrl>+<Enter>.
На екрані: в Н15:Н17 введені значення σ[bi].
Очевидно, що якщо конкретні значення σ[aij], σ[bi] відомі, то їх можна вводити безпосередньо. Після того, як вихідні дані зформовані, потрібно перейти до формування детермінованого еквівалента.
Алгоритм 2. Формування детермінованого еквівалента.
1.Ввести функцію мети:
Курсор в F7.
Мастер функций, Математические, СУММПРОИЗВ.
Ввести аргументи функції СУММПРОИЗВ: В3:Е3; В7:Е7.
2.Ввести , для цього зкопіювати F7 в F10:F12.
3.Ввести значення σ2[aij]xi2:
Курсор в В19.
Ввести В19=(B15^2)*(B$3^2).
Зкопіювати В19 в В19:Е21.
4.Ввести значення σ2[bi]:
Курсор в Н19.
Ввести Н19=Н15^2.
Зкопіювати Н19 в Н20:Н21.
5.Ввести :
В F19 ввести СУММ(В19:Е19).
Зкопіювати F19 в F20:F21.
Курсор в І19.
Ввести =КОРЕНЬ(СУММ(F19;H19)).
Зкопіювати І19 в І20:І21.
6.Прийняти значення і.
Приймаємо для всіх обмежень однакові =0.8 та вводимо їх в К14.
При цьому в К15 ввести НОРМСТОБР(К14).
7.Обчислити стохастичну складову t()Wi:
Курсор в J19.
Ввести J19=I19*K15.
Зкопіювати J19 в J20:J21.
8.В І19:J21 призначити точність представлення результатів 2 знаки після коми.
9.Ввести ліві частини обмежень:
Курсор в К19.
Ввести K19=F10+J19.
Зкопіювати К19 в К20:К21.
10.Для зручності роботи зкопіювати Н19:Н21 в М18:М21.