Uploaded by Margarita Dolmatova

MathematicalOptimization (1)

advertisement
Санкт-Петербургский политехнический университет Петра Великого
Институт Информационных Технологий и Управления
Кафедра компьютерных систем и программных технологий
Курсовая работа
Дисциплина: Методы оптимизации
Тема: Формулировка и решение задачи выбора оптимального решения с
использованием различных математических моделей
Выполнил студент гр. 53501/3
С.А. Мартынов
Руководитель, к.т.н.,доц.
А.Г. Сиднев
Санкт-Петербург
2015
Содержание
1 Варианты формализации многокритериальной задачи и их решение с
использованием Optimization Toolbox системы Matlab.
3
1.1
Постановка задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.2
Выделение главного критерия . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.2.1
Максимизация выручки . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.2.2
Максимизация прибыли . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
1.3
Свертка критериев . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
1.4
Максимин или минимакс . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
1.5
Метод последовательных уступок . . . . . . . . . . . . . . . . . . . . . . . . .
10
1.6
Fgoalattain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
1.7
Задача стохастического программирования . . . . . . . . . . . . . . . . . . .
14
2 Решение задачи оценки показателей эффективности стохастической сети
с использованием методики GERT. Выбор и использование математического пакета Matlab для решения сформулированной задачи.
17
2.1
Постановка задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
2.2
Ход работы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
2.3
Результат . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
3 Поиск оптимальной стратегии принятия решений с использованием марковских моделей.
25
3.1
Постановка задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
3.2
Марковская модель принятия решений . . . . . . . . . . . . . . . . . . . . . .
25
3.3
Метод итерации по стратегиям . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
3.4
Метод линейного программирования . . . . . . . . . . . . . . . . . . . . . . .
28
4 Поиск оптимальных параметров сети систем массового обслуживания.
32
4.1
Постановка задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
4.2
Алгоритм решения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
4.3
Решение по алгоритму . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
4.4
Решение дискретным линейным методом программирования . . . . . . . . .
38
Список используемой литературы
39
2
1
Варианты формализации многокритериальной задачи и их решение с использованием Optimization Toolbox
системы Matlab.
1.1
Постановка задачи
Мебельная фабрика выпускает столы, стулья, бюро и книжные шкафы. При изготовлении
используются два типа досок, причем фабрика имеет в наличии 1500 м досок первого типа и
1000 м досок второго типа. Кроме того, заданы трудовые ресурсы в количестве 800 чел/час.
В таблице приводятся нормативы затрат каждого из видов ресурсов на изготовление 1 ед
изделия и прибыль от реализации 1 ед изделия.
Затраты на 1 ед изделия
Ресурсы
столы
стулья
бюро
Книжные шкафы
Доски первого типа, м
5
1
9
12
Доски второго типа, м
2
3
4
1
Трудовые ресурсы, чел/час
3
2
5
10
Прибыль, руб/шт
12
5
15
10
Таблица 1: Нормативы затрат ресурсов на единицу изделия
По этим исходным данным решить задачу определения оптимальный ассортимент, максимизирующий прибыль (разность между выручкой и расходами.) и выручку при следующих
ценах изготавливаемую мебель:
∙ стол – 32 руб;
∙ стул – 15 руб;
∙ бюро – 12 руб;
∙ книжный шкаф – 80 руб.
В отчёте необходимо описать:
1. Осуществление перехода от многокритериальной задачи к однокритериальной с
использованием различных подходов.
2. Решение задачи стохастического программирования для одной из однокритериальных задач, превратив детерминированное ограничение в вероятностное по схеме:
𝑛
∑︀
𝑃 ( 𝑎𝑖𝑗 𝑘𝑗 − 𝑏𝑗 ≤ 0) ≥ 𝛼𝑖
𝑗=1
3
Менять 𝛼𝑖 в следующем диапазоне 0.1 ≤ 𝛼𝑖 ≤ 0.9.
Считать случайной величиной 𝑏𝑖 или элементы {𝑎𝑖𝑗 } 𝑖-й строки матрицы 𝐴 {𝑎𝑖𝑗 } (по
выбору).
1.2
Выделение главного критерия
Выбирается один из критериев, например 𝐶𝑖 , который наиболее полно отражает цель
принятия решений. Остальные критерии учитываются только с точки зрения возможного
указания их нижних границ 𝐶𝑗 (𝑎) ≥ 𝛾𝑖 , 𝑗 ̸= 𝑖. Таким образом, исходная задача многокритериального принятия решений заменяется однокритериальной задачей с критерием 𝐶𝑖 , т.е.
𝑎* = arg max 𝐶𝑖 (𝑎), при ограничениях 𝐶𝑘 (𝑎) ≥ 𝛾𝑖 , 𝑘 ̸= 𝑖.
Критерии:
∙ 𝑚𝑎𝑥(12𝑥1 + 5𝑥2 + 15𝑥3 + 10𝑥4 ) (прибыль)
∙ 𝑚𝑎𝑥(32𝑥1 + 15𝑥2 + 12𝑥3 + 80𝑥4 ) (выручка)
Ограничения:
∙ 5𝑥1 + 𝑥2 + 9𝑥3 + 12𝑥4 ≤ 1500 (доски первого типа)
∙ 2𝑥1 + 3𝑥2 + 4𝑥3 + 1𝑥4 ≤ 1000 (доски второго типа)
∙ 3𝑥1 + 2𝑥2 + 5𝑥3 + 1𝑥4 ≤ 800 (трудовые ресурсы)
1.2.1
Максимизация выручки
Целевая функция:
𝑓 = 𝑚𝑖𝑛(−32𝑥1 − 15𝑥2 − 12𝑥3 − 80𝑥4 )
Начальные условия:
⎛ ⎞
0
⎜ ⎟
⎜0⎟
⎟
𝑥0 = ⎜
⎜0⎟
⎝ ⎠
0
Ограничения:
4
⎛
5
1
9
12
⎞
⎟
⎜
⎜2
3
4
1⎟
⎟
⎜
⎟
⎜
2
5
1⎟
⎜3
⎟
⎜
𝐴=⎜
0
0⎟
⎟
⎜−1 0
⎟
⎜
⎜ 0 −1 0
0⎟
⎟
⎜
⎟
⎜0
0
−1
0
⎠
⎝
0
0
0 −1
⎛
⎞
1500
⎜
⎟
⎜1000⎟
⎜
⎟
⎜
⎟
⎜ 800 ⎟
⎜
⎟
⎟
𝑏=⎜
⎜ 0 ⎟
⎜
⎟
⎜ 0 ⎟
⎜
⎟
⎜ 0 ⎟
⎝
⎠
0
Листинг 1: Поиск оптимального решения для максимизация выручки
1
x0 = [ 0 ;
2
0;
3
0;
4
0];
5
6
A=[5 1 9 1 2 ;
7
2 3 4 1;
8
3 2 5 1;
9
−1 0 0 0 ;
10
0 −1 0 0 ;
11
0 0 −1 0 ;
12
0 0 0 −1];
13
14
b = [1500 , 1000 , 800 , 0 , 0 , 0 , 0 ] ;
15
16
[ x2 , f 2 ] = fmincon ( i n l i n e ( ’ −32*x ( 1 ) − 15* x ( 2 ) − 12* x ( 3 ) − 80* x ( 4 ) ’ ) ,
x0 , A, b )
17
f 1 = −12*x2 ( 1 ) − 5* x2 ( 2 ) − 15* x2 ( 3 ) − 10* x2 ( 4 )
Результат:
∙ 𝑥1 = −0, 0000
5
∙ 𝑥2 = 300, 0000
∙ 𝑥3 = 0
∙ 𝑥4 = 100, 0000
∙ 𝑓 1 = −2500
∙ 𝑓 2 = −12500
1.2.2
Максимизация прибыли
Целевая функция:
𝑓 = 𝑚𝑖𝑛(−12𝑥1 − 5𝑥2 − 15𝑥3 − 10𝑥4 )
Начальные условия:
⎛ ⎞
0
⎜ ⎟
⎜0⎟
⎟
𝑥0 = ⎜
⎜0⎟
⎝ ⎠
0
Ограничения:
⎞
⎛
5
1
9
12
⎟
⎜
⎜ 2
3
4
1 ⎟
⎟
⎜
⎟
⎜
⎜ 3
2
5
1 ⎟
⎟
⎜
⎜ −1
0
0
0 ⎟
⎟
⎜
𝐴=⎜
⎟
⎟
⎜ 0
−1
0
0
⎟
⎜
⎟
⎜
0
−1
0 ⎟
⎜ 0
⎟
⎜
⎟
⎜ 0
0
0
−1
⎠
⎝
−32 −15 −12 −80
⎛
⎞
1500
⎜
⎟
⎜ 1000 ⎟
⎜
⎟
⎜
⎟
⎜ 800 ⎟
⎜
⎟
⎜ 0 ⎟
⎜
⎟
𝑏=⎜
⎟
⎜ 0 ⎟
⎜
⎟
⎜
⎟
⎜ 0 ⎟
⎜
⎟
⎜ 0 ⎟
⎝
⎠
−12500
6
Листинг 2: Поиск оптимального решения для максимизация прибыли
1
x0 = [ 0 ;
2
0;
3
0;
4
0];
5
6
A=[5 1 9 1 2 ;
7
2 3 4 1;
8
3 2 5 1;
9
−1 0 0 0 ;
10
0 −1 0 0 ;
11
0 0 −1 0 ;
12
0 0 0 −1];
13
14
b = [1500 , 1000 , 800 , 0 , 0 , 0 , 0 ] ;
15
16
[ x1 , f 1 ] = fmincon ( i n l i n e ( ’ −12*x ( 1 ) − 5*x ( 2 ) − 15* x ( 3 ) − 10* x ( 4 ) ’ ) ,
x0 , A, b )
17
f 2 = −32*x1 ( 1 ) − 15* x1 ( 2 ) − 12* x1 ( 3 ) − 80* x1 ( 4 )
Результат:
∙ 𝑥1 = 261, 2903
∙ 𝑥2 = 0
∙ 𝑥3 = 0, 0000
∙ 𝑥4 = 16, 1290
∙ 𝑓 1 = −3296, 8
∙ 𝑓 2 = −9651, 6
1.3
Свертка критериев
Максимизируется критерий объединенной операции, получающийся в результате суммирования всех частных критериев:
𝑚
∑︀
𝐶(𝑎) =
𝑤𝑖 𝐶𝑖𝑛 (𝑎)
𝑖=1
7
𝐶𝑖𝑛 (𝑎) =
𝐶𝑖 (𝑎)
𝐶𝑖*
𝐶𝑖* - оптимальное решение задачи по каждому критерию в отдельности, 𝑤1 +𝑤2 +· · ·+𝑤𝑚 = 1.
Листинг 3: Свертка критериев
1
x0 = [ 0 ;
2
0;
3
0;
4
0];
5
6
A=[5 1 9 1 2 ;
7
2 3 4 1;
8
3 2 5 1;
9
−1 0 0 0 ;
10
0 −1 0 0 ;
11
0 0 −1 0 ;
12
0 0 0 −1];
13
14
b = [1500 , 1000 , 800 , 0 , 0 , 0 , 0 ] ;
15
16
[ x1 , f 1 ] = fmincon ( i n l i n e ( ’ −12*x ( 1 ) − 5*x ( 2 ) − 15* x ( 3 ) − 10* x ( 4 ) ’ ) ,
x0 , A, b )
17
f 2 = −32*x1 ( 1 ) − 15* x1 ( 2 ) − 12* x1 ( 3 ) − 80* x1 ( 4 )
18
19
[ x2 , f 2 ] = fmincon ( i n l i n e ( ’ −32*x ( 1 ) − 15* x ( 2 ) − 12* x ( 3 ) − 80* x ( 4 ) ’ ) ,
x0 , A, b )
20
f 1 = −12*x2 ( 1 ) − 5* x2 ( 2 ) − 15* x2 ( 3 ) − 10* x2 ( 4 )
21
22
23
% Суммирование
[ x3 , F ] = fmincon ( i n l i n e ( ’ −0.5*((12* x ( 1 ) + 5*x ( 2 ) + 15* x ( 3 ) + 10* x
( 4 ) ) / 3296) − 0 . 5 * ( ( 3 2 * x ( 1 ) + 15* x ( 2 )
+12*x ( 3 ) + 80* x ( 4 ) ) /
12 50 0) ’ ) , x0 ,A , b )
В fmincon передается сумма нормированных значений (первый критерий делится на f1,
второй на f2), каждое из которых умножено на определенный весовой коэффициент.
Результат:
∙ 𝑥1 = 166, 4573
∙ 𝑥2 = 127, 8185
8
∙ 𝑥3 = −0, 0000
∙ 𝑥4 = 44, 9913
∙ 𝑓 = −0, 9019 (суммарное)
1.4
Максимин или минимакс
Максиминную свертку представим в следующем виде: 𝐶𝑖 (𝑎) = min 𝑤𝑖 𝐶𝑖 (𝑎)
Решение 𝑎* является наилучшим, если для всех 𝑎 выполняется условие 𝐶(𝑎* ) ≥ 𝐶(𝑎), или
𝑎* = arg max 𝐶(𝑎) = arg max min 𝑤𝑖 𝐶𝑖 (𝑎).
Решение задачи представлено как программа в среде Matlab, с использованием функции
fminimax:
𝑓1 = ((12𝑥1 + 5𝑥2 + 15𝑥3 + 10𝑥4 )/3214)−1 ;
𝑓2 = ((32𝑥1 + 15𝑥2 + 12𝑥3 + 80𝑥4 )2 /12500)−1 ;
Листинг 4: Содержание файла maxmin.m
1
x0 = [ 1 ;
2
1;
3
1;
4
1];
5
6
A=[5 1 9 1 2 ;
7
2 3 4 1;
8
3 2 5 1;
9
−1 0 0 0 ;
10
0 −1 0 0 ;
11
0 0 −1 0 ;
12
0 0 0 −1];
13
14
15
16
b = [1500 , 1000 , 800 , 0 , 0 , 0 , 0 ] ;
17
18
[ x , f ] = fminimax ( @funminmax , x0 , A, b )
9
Листинг 5: Содержание файла funminmax.m
1
2
f u n c t i o n f = funminmax ( x )
%Крит ерии
3
f ( 1 ) = 1/ ( ( 12* x ( 1 ) + 5*x ( 2 ) + 15* x ( 3 ) + 10* x ( 4 ) ) / 3214) ;
4
f ( 2 ) = 1 / ( ( 3 2 * x ( 1 ) + 15* x ( 2 ) + 12* x ( 3 ) + 80* x ( 4 ) ) / 12500) ;
Так как в среде Matlab реализована только функция fminimax, которая минимизирует
наихудшие значения системы функций нескольких переменных, начиная со стартовой
оценки (𝑥0 ), то для реализации максиминной свертки необходимо в fminimax передавать
функции, возведенные в степень 1"(функция funminmax).
Результат:
∙ 𝑥1 = 111, 6707
∙ 𝑥2 = 201, 6612
∙ 𝑥3 = −0, 0000
∙ 𝑥4 = 61, 6654
∙ 𝑓 1 = 1, 0840
∙ 𝑓 2 = 1, 0840
1.5
Метод последовательных уступок
Для решения данной задачи была выбрана уступка = 10%. Решение задачи представлено
как программа в среде Matlab, с использованием функции fmincon.
Целевые функции:
∙ 𝑓1 = −(12𝑥1 + 5𝑥2 + 15𝑥3 + 10𝑥4 )
∙ 𝑓2 = −(32𝑥1 + 15𝑥2 + 12𝑥3 + 80𝑥4 )
Для первого критерия:
10
⎛
5
1
9
12
⎞
⎟
⎜
⎜2
3
4
1⎟
⎟
⎜
⎟
⎜
2
5
1⎟
⎜3
⎟
⎜
𝐴=⎜
0
0⎟
⎟
⎜−1 0
⎟
⎜
⎜ 0 −1 0
0⎟
⎟
⎜
⎟
⎜0
0
−1
0
⎠
⎝
0
0
0 −1
⎛
⎞
1500
⎜
⎟
⎜1000⎟
⎜
⎟
⎜
⎟
⎜ 800 ⎟
⎜
⎟
⎟
𝑏=⎜
⎜ 0 ⎟
⎜
⎟
⎜ 0 ⎟
⎜
⎟
⎜ 0 ⎟
⎝
⎠
0
Результат:
∙ 𝑥1 = 261, 29
∙ 𝑥2 = 0
∙ 𝑥3 = 0
∙ 𝑥4 = 16, 13
∙ 𝑓 1 = 3297
∙ 𝑓 2 = 9651
3297 – 329,7 = 2967,3 (10%)
Для второго критерия:
⎛
⎞
5
1
9
12
⎜
⎟
⎜2
⎟
3
4
1
⎜
⎟
⎜
⎟
⎜3
2
5
1 ⎟
⎜
⎟
⎜−1 0
⎟
0
0
⎜
⎟
𝐴=⎜
⎟
⎜ 0 −1 0
⎟
0
⎜
⎟
⎜
⎟
0 −1 0 ⎟
⎜0
⎜
⎟
⎜0
⎟
0
0
−1
⎝
⎠
−5 −1 −9 −12
11
⎞
⎛
1500
⎟
⎜
⎜ 1000 ⎟
⎟
⎜
⎟
⎜
⎜ 800 ⎟
⎟
⎜
⎟
⎜
0
⎟
⎜
𝑏=⎜
⎟
⎟
⎜
0
⎟
⎜
⎟
⎜
0
⎟
⎜
⎟
⎜
⎟
⎜
0
⎠
⎝
−2967, 3
Результат:
∙ 𝑥1 = 112, 7
∙ 𝑥2 = 200, 3
∙ 𝑥3 = 0
∙ 𝑥4 = 61, 4
∙ 𝑓 1 = 2967
∙ 𝑓 2 = 11519
1.6
Fgoalattain
fgoalattain решает задачу достижения цели, которая является одной из формулировок
задач для векторной оптимизации.
x = fgoalattain(fun, 𝑥0 , goal, weight):
∙ fun – целевая функция,
∙
0
– начальные значения,
∙ goal – целевые значения,
∙ weight – веса.
Решение задачи представлено как программа в среде Matlab, с использованием функций
fminicon и fgoalattain.
Целевые значения:
Goal =(15855000 10240038400036 68000000 38080000 4900000)
12
Веса:
weight=abs(goal) – для того, чтобы приближение к критериям было одинаково
Листинг 6: Содержание файла fgoalattain.m
1
x0 = [ 1 ;
2
1;
3
1;
4
1];
5
6
A=[5 1 9 1 2 ;
7
2 3 4 1;
8
3 2 5 1;
9
−1 0 0 0 ;
10
0 −1 0 0 ;
11
0 0 −1 0 ;
12
0 0 0 −1];
13
14
b = [1500 , 1000 , 800 , 0 , 0 , 0 , 0 ] ;
15
16
%Первый крит ерий
17
clc
18
clear
19
20
% Ис ходные данные
21
x0 = [ 0 ;
22
0;
23
0;
24
0];
25
26
A=[5 1 9 1 2 ;
27
2 3 4 1;
28
3 2 5 1;
29
−1 0 0 0 ;
30
0 −1 0 0 ;
31
0 0 −1 0 ;
32
0 0 0 −1];
33
13
34
b = [1500 , 1000 , 800 , 0 , 0 , 0 , 0 ] ;
35
36
[ x1 , f 1 ] = fmincon ( i n l i n e ( ’ −12*x ( 1 ) −5*x ( 2 ) −15*x ( 3 ) −10*x ( 4 ) ’ ) , x0 , A,
b)
37
38
[ x2 , f 2 ] = fmincon ( i n l i n e ( ’ −32*x ( 1 ) −15*x ( 2 ) −12*x ( 3 ) −80*x ( 4 ) ’ ) , x0 , A
, b)
39
40
goal = [0 0 ] ;
41
goal (1) = f1 ;
42
goal (2) = f2 ;
43
44
we ig ht = abs ( g o a l ) ;
45
46
[ x , f3 , a t t a i n f a c t o r ] = f g o a l a t t a i n ( @myfun , x0 , g o a l , weight , A, b )
Результат:
∙ 𝑥1 = 207, 81
∙ 𝑥2 = 72, 08
∙ 𝑥3 = 0
∙ 𝑥4 = 32, 4
∙ 𝑓 1 = 3178
∙ 𝑓 2 = 10324
∙ 𝐴𝑡𝑡. = 0, 1741
1.7
Задача стохастического программирования
Требуется найти такие 𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 для которых выполняться следующие ограничения:
∙ 5𝑥1 + 𝑥2 + 9𝑥3 + 12𝑥4 ≤ 1500
∙ 2𝑥1 + 3𝑥2 + 4𝑥3 + 1𝑥4 ≤ 1000
∙ 3𝑥1 + 2𝑥2 + 5𝑥3 + 1𝑥4 ≤ 800
Перейдем от последнего ограничения к вероятностному по схеме: 𝑃 (
𝑛
∑︀
𝑗=1
14
𝑎𝑖𝑗 𝑘𝑗 − 𝑏𝑗 ≤ 0) ≥ 𝛼𝑖
И будем менять 𝛼𝑖 в диапазоне 0.1 ≤ 𝛼𝑖 ≤ 0.9, и возьмём коэффициенты 𝑎𝑖 за случайные
величины.
𝑃 (0, 6𝑥1 + 0, 8𝑥2 + 1, 0𝑥3 + 1, 2𝑥4 ≤ 100) ≥ 𝛼𝑖
Пользуясь формулой:
3
∑︀
𝑎𝑖𝑗 𝑥𝑗 − 𝑏 + 𝐾𝛼 𝜎𝐴 ≤ 0
𝑗=1
получим вероятностное ограничение для задачи, где a = 0,6, 0,8, 1,0, 1,2, b = 100 – взяты
√︀
из первоначального вида ограничения, 𝜎𝐴 = 𝑥 cov(a) 𝑥𝑇 .
По таблице функции распределения стандартного нормального закона находим коэффициенты 𝐾𝛼 (0, 5 ≤ 𝛼 ≤ 0, 9):
∙ 𝐾0,5 = 0
∙ 𝐾0,6 = 0, 253
∙ 𝐾0,7 = 0, 520
∙ 𝐾0,8 = 0, 841
∙ 𝐾0,9 = 1, 282
1
lb = [0 0 0 0 ] ;
2
ub = [ 1 0 0 100 100 1 0 0 ] ;
3
x0 =[0 0 0 0 ] ;
4
5
6
7
o p t i o n s = o p t i m s e t ( ’ Algorithm ’ , ’ i n t e r i o r −p o i n t ’ ) ;
% для каждо г о крит ерия по отдельно с ти :
[ x , f v a l ] = fmincon ( i n l i n e ( ’ −12*x ( 1 ) −5*x ( 2 ) −15*x ( 3 ) −10*x ( 4 ) ’ ) , x0 ,
[ ] , [ ] , [ ] , [ ] , lb , ub , @constrStoh , o p t i o n s )
1
f u n c t i o n [ sigma ] = p r o b a b i l i t y C o n s t r ( x )
2
covH=x * [ 0 . 6 ; 0 . 8 ; 1 . 0 ; 1 . 2 ] * t r a n s p o s e ( x ) ;
3
sigma = s q r t ( covH ) ;
4
end
1
f u n c t i o n [ c , ceq ] = c o n s t r S t o h ( x )
2
ceq = 0 ;
3
4
5
6
7
sigma = p r o b a b i l i t y C o n s t r ( x ) ;
K= 1 . 2 8 2 ;
c = [
% вв еденно е в ероятно с тно е о граничение
15
0 . 6 * x ( 1 ) + 0 . 8 * x ( 2 ) + 1 * x ( 3 ) + 1 . 2 * x ( 4 ) − 100 + K* sigma ;
8
9
10
−0.2*x ( 1 ) − 0 . 3 * x ( 2 ) − 0 . 4 * x ( 3 ) − 0 . 5 * x ( 4 ) + 3 5 ;
11
−0.6*x ( 1 ) − 0 . 4 * x ( 2 ) − 0 . 3 * x ( 3 ) − 0 . 2 * x ( 4 ) + 4 2 ;
% у словия из "бывших" крит ерие в
12
−12*x ( 1 ) − 5*x ( 2 ) − 15* x ( 3 ) − 10* x ( 4 ) ] ;
13
14
end
K
0
0,253
0,52
0,841
1,282
𝑥1
100
29,2780
27,7214
30,0887
25,4234
𝑥2
0
28,7760
25,8883
26,9406
22,6038
𝑥3
40
28,4840
24,8369
25,4863
21,2327
𝑥4
0
15,4300
12,8728
0,5164
1,1430
𝑓
1800
1076,8
963,4
883,2
748
Таблица 2: Результаты
Видно, что задача чувствительна к выбранному ограничению, т.к. для различных K получились разные результаты. Так же следует отметить, что значения функций соответствуют
нормальному закону распределения, что соответствует теории.
16
2
Решение задачи оценки показателей эффективности
стохастической сети с использованием методики GERT.
Выбор и использование математического пакета Matlab
для решения сформулированной задачи.
2.1
Постановка задачи
Дано:
1. Граф GERT-сети (рисунок 1).
2
0,5
0,1
1
5
0,5
0,2
4
0,6
0,3
0,4
3
6
0,4
Рис. 1: Граф GERT-сети.
2. Каждой дуге-работе (𝑖, 𝑗) поставлены в соответствие следующие данные:
(a) Закон распределения времени выполнения работы. Будем считать его нормальным.
(b) Параметры закона распределения (математическое ожидание 𝑀 и дисперсия
𝐷).
(c) Вероятность 𝑃𝑖𝑗 выполнения работы, показанная на графе.
Найти:
1. Вероятность выхода в завершающий узел графа (для всех вариантов узел 6).
17
Начальная вершина
Конечная вершина
𝑀
𝐷
1
2
12
9
1
4
28
16
2
5
14
9
3
1
11
4
3
3
33
16
4
2
11
4
4
3
33
25
4
5
45
25
4
6
23
16
5
6
43
25
Таблица 3: Параметры закона распределения для дуг графа
2. Математическое ожидание.
3. Дисперсию времени выхода процесса в завершающий узел графа.
Перечислить все петли всех порядков, обнаруженные на графе, выписать уравнение Мейсона, получить решение для 𝑊𝐸 (𝑠) и найти требуемые параметры. Примерно так, как это
сделано в примере на стр. 403 – 409 книги Филипса и Гарсиа «Методы анализа сетей»
2.2
Ход работы
Решение:
Замкнём граф дугой из вершины 6 в вершину 1 (рисунок 2).
Петли первого порядка:
∙ 𝑊12 𝑊25 𝑊56 𝑊1𝐸
∙ 𝑊14 𝑊42 𝑊25 𝑊56 𝑊1𝐸
∙ 𝑊14 𝑊43 𝑊31
∙ 𝑊14 𝑊45 𝑊56 𝑊1𝐸
∙ 𝑊14 𝑊46 𝑊1𝐸
∙ 𝑊33
Петли второго порядка:
18
2
0,5
0,1
1
5
0,5
0,2
4
0,6
0,3
0,4
1
𝑊𝐸
3
6
0,4
Рис. 2: Замкнутый граф GERT-сети.
∙ 𝑊33 и 𝑊12 𝑊25 𝑊56 𝑊1𝐸
∙ 𝑊33 и 𝑊14 𝑊42 𝑊25 𝑊56 𝑊1𝐸
∙ 𝑊33 и 𝑊14 𝑊45 𝑊56 𝑊1𝐸
∙ 𝑊33 и 𝑊14 𝑊46 𝑊1𝐸
Петель третьего порядка нет.
19
Выпишем уравнение Мейсона:
𝐻 = 1 − 𝑊12 𝑊25 𝑊56
1
𝑊𝐸
− 𝑊14 𝑊42 𝑊25 𝑊56
1
𝑊𝐸
− 𝑊14 𝑊43 𝑊31
− 𝑊14 𝑊45 𝑊56
− 𝑊14 𝑊46
1
𝑊𝐸
1
𝑊𝐸
− 𝑊33
+ 𝑊33 𝑊12 𝑊25 𝑊56
1
𝑊𝐸
+ 𝑊33 𝑊14 𝑊42 𝑊25 𝑊56
+ 𝑊33 𝑊14 𝑊45 𝑊56
+ 𝑊33 𝑊14 𝑊46
1
𝑊𝐸
1
𝑊𝐸
1
=0
𝑊𝐸
Отсюда выведем 𝑊𝐸 (𝑆):
1 − 𝑊14 𝑊43 𝑊31 − 𝑊33 =
(𝑊12 𝑊25 𝑊56 + 𝑊14 𝑊42 𝑊25 𝑊56 +
𝑊14 𝑊45 𝑊56 + 𝑊14 𝑊46 − 𝑊33 𝑊12 𝑊25 𝑊56 −
𝑊33 𝑊14 𝑊42 𝑊25 𝑊56 − 𝑊33 𝑊14 𝑊45 𝑊56 − 𝑊33 𝑊14 𝑊46 )
𝑊𝐸 (𝑆) =
1
𝑊𝐸
(𝑊12 𝑊25 𝑊56 + 𝑊14 𝑊42 𝑊25 𝑊56 + 𝑊14 𝑊45 𝑊56 + 𝑊14 𝑊46 −
𝑊33 𝑊12 𝑊25 𝑊56 − 𝑊33 𝑊14 𝑊42 𝑊25 𝑊56 − 𝑊33 𝑊14 𝑊45 𝑊56 − 𝑊33 𝑊14 𝑊46 )/
(1 − 𝑊14 𝑊43 𝑊31 − 𝑊33 )
Далее рассчитаем W-функции дуг.
Далее вычислим математическое ожидание и дисперсию: 𝑀𝐸 (𝑠) = 1 при 𝑠 = 0
Поскольку 𝑊𝐸 (𝑠) = 𝑝𝐸 𝑀𝐸 (𝑠), то 𝑝𝐸 = 𝑊𝐸 (0), откуда следует, что 𝑀𝐸 (𝑠) =
𝑊𝐸 (𝑠)
𝑝𝐸
=
𝑊𝐸 (𝑠)
𝑊𝐸 (0)
Вычисляя первую и вторую производные по 𝑠 функции 𝑀𝐸 (𝑠), и полагая 𝑠 = 0, находим
математическое ожидание: 𝜇1𝐸 =
𝜕𝑀𝐸 (𝑠)
|𝑠
𝜕𝑠
=0
и дисперсию:
𝜎 2 = 𝜇2𝐸 − [𝜇1𝐸 ]2 .
20
Начальная вершина
Конечная вершина
Вес ребра (𝑝𝑖𝑗 )
𝑀
𝐷
W-функция
1
2
0,5
12
9
0, 5 * 𝑒𝑥𝑝(12𝑠 + 92 𝑠2 )
1
4
0,5
28
16
0, 5 * 𝑒𝑥𝑝(28𝑠 +
2
5
1
14
9
3
1
0,6
11
4
3
3
0,4
33
16
4
2
0,1
11
4
4
3
0,3
33
25
4
5
0,2
45
25
4
6
0,4
23
16
5
6
1
43
25
16 2
𝑠)
2
𝑒𝑥𝑝(14𝑠 + 29 𝑠2 )
0, 6 * 𝑒𝑥𝑝(11𝑠 + 42 𝑠2 )
0, 4 * 𝑒𝑥𝑝(33𝑠 + 16
𝑠2 )
2
0, 1 * 𝑒𝑥𝑝(11𝑠 + 42 𝑠2 )
0, 3 * 𝑒𝑥𝑝(33𝑠 + 25
𝑠2 )
2
0, 2 * 𝑒𝑥𝑝(45𝑠 + 25
𝑠2 )
2
𝑠2 )
0, 4 * 𝑒𝑥𝑝(23𝑠 + 16
2
𝑒𝑥𝑝(43𝑠 + 25
𝑠2 )
2
Таблица 4: Производящие функции моментов
Вероятность выхода в завершающий узел графа:
𝑝𝐸 = 𝑊𝐸 (0).
Для моделирования работы был написан скрипт, представленный в листинге 7.
Листинг 7: Код для вычисления заданных выражений
1
%Ис ходные данные :
2
%М − мат ематиче ско е ожидание
3
%D − дисперсия
4
%P − в ероятно с ть
5
M12 = 1 2 ; D12 = 9 ; P12 = 0 . 5 ;
6
M14 = 2 8 ; D14 = 1 6 ; P14 = 0 . 5 ;
7
M25 = 1 4 ; D25 = 9 ; P25 = 1
8
M31 = 1 1 ; D31 = 4 ; P31 = 0 . 6 ;
9
M33 = 3 3 ; D33 = 1 6 ; P33 = 0 . 4 ;
10
M42 = 1 1 ; D42 = 4 ; P42 = 0 . 1 ;
11
M43 = 3 3 ; D43 = 2 5 ; P43 = 0 . 3 ;
12
M45 = 4 5 ; D45 = 2 5 ; P45 = 0 . 2 ;
13
M46 = 2 3 ; D46 = 1 6 ; P46 = 0 . 4 ;
14
M56 = 4 3 ; D56 = 2 5 ; P56 = 1
;
;
15
16
syms s ;
17
%W − функции
18
W12 = P12 * exp (M12 * s + D12/2 * s ^2) ;
21
19
W14 = P14 * exp (M14 * s + D14/2 * s ^2) ;
20
W25 = P25 * exp (M25 * s + D25/2 * s ^2) ;
21
W31 = P31 * exp (M31 * s + D31/2 * s ^2) ;
22
W33 = P33 * exp (M33 * s + D33/2 * s ^2) ;
23
W42 = P42 * exp (M42 * s + D42/2 * s ^2) ;
24
W43 = P43 * exp (M43 * s + D43/2 * s ^2) ;
25
W45 = P45 * exp (M45 * s + D45/2 * s ^2) ;
26
W46 = P46 * exp (M46 * s + D46/2 * s ^2) ;
27
W56 = P56 * exp (M56 * s + D56/2 * s ^2) ;
28
29
WE = (W12*W25*W56 + W14*W42*W25*W56 + W14*W45*W56 + W14*W46 − W33*
W12*W25*W56 − W33*W14*W42*W25*W56 − W33*W14*W45*W56 − W33*W14*W46
) / ( 1 − W14*W43*W31 − W33)
30
31
We = s i m p l i f y (WE)
32
We0 = subs (We, ’ s ’ , 0 )
% We( 0 )
33
34
% Нахождение мат . ожидания и дисперсии
35
Me = We / We0 ;
36
37
% Нахождение произ водной 1−г о порядка при s = 0
38
m1 = d i f f (Me, ’ s ’ ) ;
39
% Замена символа s на 0 в выражении m1
40
m1 = subs (m1, ’ s ’ , 0 )
41
42
% Нахождение произ водной 2−г о порядка при s = 0
43
m2 = d i f f (Me, ’ s ’ , 2 ) ;
44
% Замена символа s на 0 в выражении m2
45
m2=subs (m2, ’ s ’ , 0 )
46
47
% Нахождение дисперсии времени выхода проце с с а в з ав ершающий у з ел гр
афа
48
D = m2 − (m1) ^2
22
Результаты работы представлены в листинге 8.
Листинг 8: Результат работы скрипта
1
>> main
2
3
WE =
4
5
−(( exp (8* s ^2 + 23* s ) * exp (8* s ^2 + 28* s ) ) /5 − (2* exp (8* s ^2 + 23* s ) * exp
(8* s ^2 + 28* s ) * exp (8* s ^2 + 33* s ) ) /25 + ( exp ( ( 9 * s ^2) /2 + 12* s ) * exp
( ( 9 * s ^2) /2 + 14* s ) * exp ( ( 2 5 * s ^2) /2 + 43* s ) ) /2 + ( exp (8* s ^2 + 28* s )
* exp ( ( 2 5 * s ^2) /2 + 43* s ) * exp ( ( 2 5 * s ^2) /2 + 45* s ) ) /10 + ( exp (2* s ^2 +
11* s ) * exp ( ( 9 * s ^2) /2 + 14* s ) * exp (8* s ^2 + 28* s ) * exp ( ( 2 5 * s ^2) /2 +
43* s ) ) /20 − ( exp ( ( 9 * s ^2) /2 + 12* s ) * exp ( ( 9 * s ^2) /2 + 14* s ) * exp (8* s
^2 + 33* s ) * exp ( ( 2 5 * s ^2) /2 + 43* s ) ) /5 − ( exp (8* s ^2 + 28* s ) * exp (8* s
^2 + 33* s ) * exp ( ( 2 5 * s ^2) /2 + 43* s ) * exp ( ( 2 5 * s ^2) /2 + 45* s ) ) /25 − (
exp (2* s ^2 + 11* s ) * exp ( ( 9 * s ^2) /2 + 14* s ) * exp (8* s ^2 + 28* s ) * exp (8* s
^2 + 33* s ) * exp ( ( 2 5 * s ^2) /2 + 43* s ) ) /50) / ( ( 2 * exp (8* s ^2 + 33* s ) ) /5 +
(9* exp (2* s ^2 + 11* s ) * exp (8* s ^2 + 28* s ) * exp ( ( 2 5 * s ^2) /2 + 33* s ) )
/100 − 1 )
6
7
8
We =
9
10
−(exp (16* s ^2 + 51* s ) *(50* exp ( ( 1 1 * s ^2) /2 + 18* s ) − 8* exp (8* s ^2 + 33* s
) + 5* exp (11* s ^2 + 45* s ) − 20* exp ( ( 2 7 * s ^2) /2 + 51* s ) + 10* exp (17*
s ^2 + 65* s ) − 2* exp (19* s ^2 + 78* s ) − 4* exp (25* s ^2 + 98* s ) + 20 ) )
/(40* exp (8* s ^2 + 33* s ) + 9* exp ( ( 4 5 * s ^2) /2 + 72* s ) − 100)
11
12
13
We0 =
14
1
15
16
17
18
m1 =
19
20
88.4706
21
23
22
23
m2 =
24
1 . 0 2 9 9 e+04
25
26
27
28
D =
29
2 . 4 7 2 3 e+03
30
31
32
>>
2.3
Результат
По итогам проведённых расчётов были получены следующие результаты:
1. Вероятность выхода в завершающий узел графа равна 100% (𝑝 = 𝑊𝐸 = 1).
2. Математическое ожидание 88,46.
3. Дисперсия времени выхода процесса в завершающий узел графа 2472,3.
24
3
Поиск оптимальной стратегии принятия решений с использованием марковских моделей.
3.1
Постановка задачи
Пусть имеется машина (станок), которая обслуживается периодически один раз в час. В
каждый момент она может находиться в одном из двух состояний: рабочем (состояние 1) и
нерабочем (состояние 2).
Если машина на некотором шаге проработала непрерывно 1 час, то доход равен 3 рублям.
При этом вероятность остаться на следующем шаге в состоянии 1 равна 0,7, а вероятность
перейти в состояние 2 равна 0,3. Если машина отказала на некотором шаге, то её можно
отремонтировать двумя способами. Первый является ускоренным, требует затрат в 2
рубля (доход равен -2 рубля) и обеспечивает переход в состояние 1 с вероятностью в 0,6.
Второй, обычный способ требует затрат в 1 рубль и обеспечивает переход в состояние 1 с
вероятностью 0,4.
Найти оптимальную стратегию для 𝑁 = ∞ методом итераций по стратегиям, и перечислить
все стационарные стратегии; построить марковскую модель принятия решений.
3.2
Марковская модель принятия решений
Матрицы переходных вероятностей (𝑃1 и 𝑃2 ) и матрицы доходов (𝑟1 и 𝑟2 ) имеют следующий
вид:
(︃
𝑃1 =
0, 7 0, 3
(︃
𝑃2 =
0, 6 0, 4
(︃
𝑟1 =
)︃
3 0
)︃
0, 4 0, 6
(︃
𝑟2 =
−2 0
Модель представлена на рисунке 3.
После работы, машина можем:
∙ Остаться в исправном состоянии 𝑓 1 = ⟨1; 1⟩
∙ Перейти в неисправное состояние 𝑓 2 = ⟨1; 2⟩
25
0, 7 0, 3
3 0
−1 0
)︃
)︃
0,7
𝑆1
0,6
0,4
𝐷1
𝐷2
0,3
0,4
0,6
2
1
𝑆2
Рис. 3: 𝑆1 и 𝑆2 состояния системы; 𝐷1 и 𝐷2 принимаемые решения; красные рёбра - траты,
чёрные - вероятность перехода
Таким образом, возможны следующие стационарные стратегии:
𝜋1𝑁 = (𝑓 1 , 𝑓 1 )
𝜋2𝑁 = (𝑓 1 , 𝑓 2 )
𝜋3𝑁 = (𝑓 2 , 𝑓 1 )
𝜋4𝑁 = (𝑓 2 , 𝑓 2 )
3.3
Метод итерации по стратегиям
Этап оценивания параметров. Выбираем произвольную стратегию 𝜏 = (𝑋𝑗1 , 𝑋𝑗2 , . . . ,𝑗𝑚 )𝑇 .
Используя соответствующие стратегии 𝜏 , матрицу переходных вероятностей 𝑃 (𝜏 ) = (𝑝𝑖𝑘 (𝜏 ))
и матрицу доходов 𝑅(𝜏 ) = (𝑟𝑗𝑘 (𝜏 )) и полагая 𝐹𝜏 (𝑚) = 0, решаем систему линейных
𝑚
∑︀
алгебраических уравнений 𝐸𝜏 + 𝐹𝜏 (𝑗) −
𝑝𝑗𝑘 (𝜏 )𝐹𝜏 (𝑘) = 𝑣𝑗 (𝜏 ), 𝑗 = 1, 𝑚, относительно
𝑘=1
𝐸𝜏 , 𝐹𝜏 (1), . . . , 𝐹𝜏 (𝑚 − 1).
Этап улучшения стратегии. Для каждого состояния 𝑆𝑗 , находим допустимое решение
𝑚
∑︀
𝑋*𝑗 , на котором достигается max(𝑋𝑖 ∈𝐺) (𝑣𝑗 (𝑋𝑖 ) +
𝑝𝑗𝑘 (𝑋𝑖 )𝐹𝜏 (𝑘))
𝑘=1
Эти оптимальные решения образуют новую стратегию 𝑡 = (𝑋*1 , 𝑋*2 , . . . 𝑋*𝑚 )𝑇 . Если 𝑡 = 𝜏 ,
то стратегия 𝜏 и является оптимальной. В противном случае нужно обозначить стратегию
t через 𝜏 и вернуться к первому этапу.
26
Воспользовавшись матрицами 𝑃1 , 𝑃2 , 𝑟1 , 𝑟2 и их независимостью от номера этапа, вычислим
ожидаемые доходы, при различных вариантах допустимых решений:
𝑣1 (𝑋1 ) = 0, 7 * 3 + 0, 3 * 0 = 2, 1
𝑣2 (𝑋1 ) = 0, 6 * (−2) + 0, 4 * 0 = −1, 2
𝑣1 (𝑋2 ) = 0, 7 * 3 + 0, 3 * 0 = 2, 1
𝑣2 (𝑋2 ) = 0, 4 * (−1) + 0, 6 * 0 = −0, 4
В качестве произвольной стратегии 𝜏 используем стратегию номер два. В этом случае
на этапе оценивания параметров, учитывая, что 𝐹𝜏 (2) = 0, получаем систему линейных
алгебраических уравнений
⎧
⎨ 𝐸𝜏 + (1 − 0, 7)𝐹𝜏 (1) =
2, 1
⎩
𝐸𝜏 − 0, 6 = −1, 2
которая имеет единственное решение: 𝐸𝜏 = 0, 78, 𝐹𝜏 (1) = 3, 3.
Результаты соответствующих вычислений приведены в табл. 5.
𝑆𝑗
𝜙(𝑋𝑖 ) = 𝑣𝑗 (𝑋𝑘 ) + 𝑝𝑗 1(𝑋𝑖 ) * 𝐹𝑖 (1)
max 𝜙𝑗
𝑋*𝑗
2,1+0,7*3,3=4,41
4,41
𝑋2
-0,4+0,4*3,3=0,92
0,78
𝑋2
i=1
i=2
1
2,1+0,7*3,3=4,41
2
-1,2+0,6*3,3=0,78
Таблица 5: Решение с оценочными параметрами
Новая стратегия 𝑡 = (𝑋2 , 𝑋2 )𝑇 отличается от стратегии 𝜏 , поэтому нужно на этап оценивания параметров, полагая 𝜏 = (𝑋2 , 𝑋1 )𝑇 .
Новой стратегии t соответствует следующая система линейных алгебраических уравнений:
⎧
⎨ 𝐸𝜏 + (1 − 0, 7)𝐹𝜏 (1) =
2, 1
⎩
𝐸𝜏 − 0, 4 = −0, 4
которая имеет единственное решение: 𝐸𝜏 = 0, 85, 𝐹𝜏 (1) = 3, 125.
Результаты соответствующих вычислений приведены в табл. 6.
Новая стратегия совпала с предыдущей, таким образом оптимальная стратегия определена: оптимальное использовать более дешевый ремонт с меньшей гарантией успешного
завершения.
27
𝑆𝑗
𝜙(𝑋𝑖 ) = 𝑣𝑗 (𝑋𝑘 ) + 𝑝𝑗 1(𝑋𝑖 ) * 𝐹𝑖 (1)
i=1
i=2
1
2,1+0,7*3,125=4,2875
2,1+0,7*3,125=4,2875
2
-1,2+0,6*3,125=0,675
-0,4+0,4*3,125=0,85
max 𝜙𝑗
𝑋*𝑗
4,2875
𝑋2
0,85
𝑋2
Таблица 6: Проверочное решение
3.4
Метод линейного программирования
Все параметры посчитаны, мы можем сформулировать задачу в виде задачи линейного
программирования, для проверки ранее полученных результатов.
⎧
⎪
2, 1𝑤11 + 2, 1𝑤12 − 1, 2𝑤21 − 0, 4𝑤22 − > max
⎪
⎪
⎪
⎪
⎪
⎪
0, 3𝑤11 + 0, 3𝑤12 − 0, 6𝑤21 − 0, 4𝑤22 =
0
⎪
⎨
−0, 3𝑤11 − 0.3𝑤12 + 0, 6𝑤21 + 0, 4𝑤22 =
0
⎪
⎪
⎪
2 ∑︁
2
⎪
∑︁
⎪
⎪
⎪
𝑤𝑖𝑗 = 1,
𝑤𝑖𝑗 ≥ 0
⎪
⎩
𝑗=1 𝑖=1
Код скрипта представлен в листинге 9.
Листинг 9: Код для вычисления задачи линейного программирования
1
x0 = [ 0 ; 0 ; 0 ; 0 ]
2
A=[−1 0 0 0 ; 0 −1 0 0 ; 0 0 −1 0 ; 0 0 0 −1]
3
b=[0; 0; 0; 0]
4
Aeq = [ 0 . 3 0 . 3 −0.6 −0.4;
5
−0.3 −0.3 0 . 6 0 . 4 ;
6
1 1 1 1];
7
8
9
beq = [ 0 ; 0 ; 1 ] ;
%Максимизирование функции
[ x , f v a l ] = fmincon ( i n l i n e ( ’ −(2.1* x ( 1 ) +2.1* x ( 2 ) −1.2*x ( 3 ) −0.4*x ( 4 ) ) ’ )
, x0 , A, b , Aeq , beq )
10
11
q11 = x ( 1 ) / ( x ( 1 )+x ( 2 ) )
12
q21 = x ( 2 ) / ( x ( 1 )+x ( 2 ) )
13
q12 = x ( 3 ) / ( x ( 3 )+x ( 4 ) )
14
q22 = x ( 4 ) / ( x ( 3 )+x ( 4 ) )
28
Результат выполнения в листинге 10.
Листинг 10: Результат работы скрипта линейного программирования
1
>> l i n e a r
2
3
x0 =
4
5
0
6
0
7
0
8
0
9
10
11
A =
12
13
−1
0
0
0
14
0
−1
0
0
15
0
0
−1
0
16
0
0
0
−1
17
18
19
b =
20
21
0
22
0
23
0
24
0
25
26
L o c a l minimum found t h a t s a t i s f i e s t he c o n s t r a i n t s .
27
28
O p t i m i z a t i o n completed b e c a u s e t h e o b j e c t i v e f u n c t i o n i s non−
decreasing in
29
f e a s i b l e d i r e c t i o n s , t o w i t h i n t h e d e f a u l t v a l u e o f th e f u n c t i o n
tolerance ,
30
and c o n s t r a i n t s a r e s a t i s f i e d t o w i t h i n t he d e f a u l t v a l u e o f t h e
constraint tolerance .
31
32
<s t o p p i n g c r i t e r i a d e t a i l s >
29
33
34
35
A c t i v e i n e q u a l i t i e s ( t o w i t h i n o p t i o n s . TolCon = 1e −06) :
lower
upper
ineqlin
ineqnonlin
3
36
37
38
x =
39
40
0.2857
41
0.2857
42
0
43
0.4286
44
45
46
fval =
47
48
−1.0286
49
50
51
q11 =
52
53
0.5000
54
55
56
q21 =
57
58
0.5000
59
60
61
q12 =
62
63
0
64
65
66
q22 =
67
68
1
69
30
70
>>
Таким образом, оптимальной стратегии снова стало использование дешевого ремонта, как
и в предыдущем случае с итерации по стратегиям.
31
4
Поиск оптимальных параметров сети систем массового обслуживания.
4.1
Постановка задачи
Минимизировать стоимость ССМО при ограничении на среднее число заявок в сети
𝑚𝑖𝑛{𝐹 (𝑢) =
𝑛𝑗
𝑛 ∑︁
∑︁
𝑓𝑗𝑘 𝑢𝑗𝑘 =
𝑗=1 𝑘=1
𝐿(𝑢) =
𝑛
∑︀
𝑛𝑗
𝑛 ∑︁
∑︁
(𝑚𝑗𝑘 * 𝜇𝑗𝑘 ) * 𝑢𝑗𝑘 }
𝑗=1 𝑘=1
𝐿𝑗𝑘 𝑢𝑗𝑘 ,
𝑗=1
𝑢𝑗𝑘 =
⎧
⎨0,
,
⎩1
Дано многоканальная сеть Джексона:
{𝜆0 , {𝑗𝑘} − набор альтернатив, 𝑄 = {𝑞𝑖𝑗 }𝑖=0,𝑛,𝑗=0,𝑛 , 𝐿(𝑢)}
𝐿(𝑢) = 4, (предельное число заявок в сети)
𝜆0 = 6,
0
0,2
0,7
0
0,1
0,1
0
0,1
0,2
0,6
0,1
0
0,2
0,2 .
0
0,2
0,8
0
0
0,3
0,2
0,2
0,3
0
𝑄 = {𝑞𝑖𝑗 }𝑖=0,𝑛,𝑗=0,𝑛 = 0,5
Самостоятельно сформировать набор альтернатив (по 2 альтернативы на каждый узел,
обеспечивающих установивший режим в узле).
Решить задачу 5 двумя способами:
∙ В соответствии с алгоритмом 5
∙ Как задачу дискретного линейного программирования (например, с использованием
Матлабовской команды Linprog).
32
4.2
Алгоритм решения
1. Найти 𝜆𝑖 , 𝑗 = 1. . . . , 𝑚 – скорость прихода задач в узел 𝑗.
𝑛
∑︀
𝜆𝑖𝑗 = 𝜆𝑖 𝑞𝑖𝑗 𝜆𝑗 = 𝜆0𝑗 +
𝑞𝑖𝑗 𝜆𝑖 , при 𝑗 = 1, . . . , 𝑛
𝑖=1
2. Возьмем произвольный набор альтернатив для каждого узла.
[(𝑚1𝑗 , 𝜇1𝑗 ), (𝑚1𝑗 , 𝜇1𝑗 ), . . . , (𝑚𝑘𝑗 , 𝜇𝑘𝑗 )]
3. 𝑝𝑗 рассчитывается по следующей формуле
𝑝𝑗 =
𝜆𝑗
𝜇𝑗 𝑚 𝑗
4. Вычислим 𝐸(𝑊𝑞𝑗 ):
𝐸(𝑊𝑞𝑗 ) =
(𝑚𝑗 𝑝𝑗 )𝑚𝑗 𝜋(0)
,
𝜇𝑗 𝑚𝑗 (1−𝑝𝑗 )2 𝑚𝑗 !
где 𝜋(0) = {
𝑚∑︀
𝑗 −1
𝑡=0
(𝑚𝑗 𝑝𝑗 )𝑡
𝑡!
+
(𝑚𝑗 𝑝𝑗 )𝑚
𝑗
}−1
(1−𝑝𝑗 )𝑚𝑗 !
5. Найдем 𝐿𝑗 – число заявок в j-ом узле по формуле:
𝐿𝑗 = [𝐸(𝑊𝑞𝑗 + 𝐸(𝑆𝑗 )]𝜆𝑖 , где 𝐸(𝑆𝑗 ) =
4.3
1
𝜇
Решение по алгоритму
Первый шаг алгоритма
По первой формуле из первого шага алгоритма найдем вектор 𝜆0𝑗 .
𝜆0𝑗 = (1, 2
4, 2
0
0, 6)
Используя вектор 𝜆0𝑗 , составим систему уравнений по второй формуле из шага 1.
⎧
⎪
𝜆0
⎪
⎪
⎪
⎪
⎪
⎪
𝜆
⎪
⎪
⎨ 1
𝜆2
⎪
⎪
⎪
⎪
⎪
𝜆3
⎪
⎪
⎪
⎪
⎩𝜆
4
=
6
= 1, 2 + 0, 2 * 𝜆0 + 0, 1 * 𝜆2 + 0, 2 * 𝜆3 + 0, 2 * 𝜆4
= 4, 2 + 0, 7 * 𝜆0 + 0, 1 * 𝜆1 + 0, 8 * 𝜆3 + 0, 2 * 𝜆4
=
0, 2 * 𝜆1 + 0, 2 * 𝜆2 + 0, 3 * 𝜆4
=
0, 6 + 0, 1 * 𝜆0 + 0, 6 * 𝜆1 + 0, 2 * 𝜆2
В результате решения системы методом Гаусса был получен следующий результат:
∙ 𝜆0 = 6;
∙ 𝜆1 = 7, 44;
∙ 𝜆2 = 17, 06;
∙ 𝜆3 = 7, 63;
33
∙ 𝜆4 = 37, 65.
Теперь вычислим остальные 𝜆𝑖𝑗 , используя следующий скрипт. Здесь и в дальнейшем
используется странное ограничение на предельное число заявок в сети – 4 шт. вместе с
нулевой.
% Исходные данные
Q = [0 0.2 0.7 0 0.1;
0.1 0 0.1 0.2 0.6;
0.5 0.1 0 0.2 0.2;
0 0.2 0.8 0 0;
0.3 0.2 0.2 0.3 0];
% Значение лямбды каждого узла
lambdaj=[6;7.44;17.06;7.63;37.65];
N=4; % Число узлов вместе с нулевой.
% Вычисление лямбда ij
lambdaij=[];
for i = 1:N
for j = 1:N
lambdaij(i,j) = lambdaj(i)*Q(i, j);
end
end
lambdaij
Результаты вычисления представлены в таблице 7.
i\j
1
2
3
4
1
0
1.2000
4.2000
0
2
0.7440
0
0.7440
1.4880
3
8.5300
1.7060
0
3.4120
4
0
1.5260
6.1040
0
Таблица 7: Результат вычисления всех значений 𝜆𝑖𝑗
Второй шаг алгоритма
Далее сформируем набор альтернатив (по 2 альтернативы на каждый узел, обеспечивающих
установивший режим в узле):
∙ 𝑚1𝑗 =(4 8 3 4);
∙ 𝜇1𝑗 =(2 3 7 9);
34
∙ 𝑚2𝑗 =(5 8 3 6);
∙ 𝜇2𝑗 =(9 13 10 4);
Третий шаг алгоритма
Для расчета вероятности 𝑝𝑗 воспользуемся следующим скриптом:
K=2; % Задаем альтернативы
muj = [4 8 3 4;
2 3 7 9];
mj = [5 8 3 6;
9 13 10 4];
% Расчёт вероятностей
pj = [];
for i = 1:N-1
for k = 1:K
pj(k,i) = lambdaj(i+1)/(muj(k,i)*mj(k,i));
end
end
pj
Результаты занесены в таблицу 8.
k\j
1
2
3
1
0.3720
0.2666
0.8478
2
0.4133
0.4374
0.1090
Таблица 8: Результат расчёта вероятностей
Четвертый шаг алгоритма
Расчет вектора 𝜋𝑗 (0).
% Расчет начальной вероятности для каждого узла.
pij0 = [];
for i = 1:N-1
for k=1:K
sum = 0;
for t = 0:mj(k,i)-1
35
sum = sum + ((mj(k,i)*pj(k,i))^t)/factorial(t);
end
sum = sum + ((mj(k,i)*pj(k,i))^mj(k,i))/
((1-pj(k,i))*factorial(mj(k,i)));
pij0(k,i)=sum^(-1);
end
end
pij0
Результаты расчета начальной вероятности узлов занесены в таблицу 9.
k\j
1
2
3
1
0.1549
0.1185
0.0403
2
0.0242
0.0034
0.3362
Таблица 9: Расчет начальной вероятности узлов
Пятый шаг алгоритма
Рассчитаем 𝐸(𝑊𝑞𝑗 ).
% E(Wqj) для каждого узла.
EWqj = [];
for i = 1:N-1
for k=1:K
EWqj(k,i) = (((mj(k,i)*pj(k,i))^mj(k,i))*pij0(k,i))/
(muj(k,i)*mj(k,i)*((1-pj(k,i))^2)*factorial(mj(k,i)));
end
end
EWqj
Результаты занесены в таблицу 10.
k\j
1
2
3
1
0.0036
0.0000
0.5304
2
0.0015
0.0003
0.0000
Таблица 10: Расчет вектора 𝐸(𝑊𝑞𝑗 ) для k=1 и k=2
Теперь найдем 𝐸(𝑆𝑗 ) для каждого узла.
36
% Найдем E(sj) для каждого узла.
Esj = [];
for i = 1:N-1
for k=1:K
Esj(k,i) = 1/muj(k,i);
end
end
Esj
Результаты занесены в таблицу 11.
k\j
1
2
3
1
0.2500
0.1250
0.3333
2
0.5000
0.3333
0.1429
Таблица 11: Расчет 𝐸(𝑆𝑗 ) для каждого узла.
Теперь не составит труда посчитать 𝐿𝑗 – число заявок в j-ом узле, для каждой альтернативы.
% Найдем Lj
Lj = [];
for i = 1:N-1
for k=1:K
Lj(k,i) = lambdaj(i+1)*(EWqj(k,i)+Esj(k,i));
end
end
Lj
Результаты занесены в таблицу 12.
k\j
1
2
3
1
1.8871
2.1331
6.5900
2
3.7309
5.6916
1.0900
Таблица 12: Расчет числа заявок в каждом узле.
Таким образом, сеть не загружена и простаивает.
37
4.4
Решение дискретным линейным методом программирования
Для решения задачи воспользуемся функцией bintprog.
%Зададим входные параметры
A = [1 0 0 1 0 0;
0 1 0 0 1 0;
0 0 1 0 0 1];
f = [4 4 5 5 2 31];
b = [1 1 1];
Aeq = A;
beq = [1;1;1];
[x, fval] = bintprog(f,A,b,Aeq,beq)
%параметры A,b,Aeq,beq будут как для прошлой задачи
%дополнительно введем ограничения на значение lb и ub
lb=zeros(1,(N-1)*2);
ub=ones(1,(N-1)*2);
%решаем задачу
[x,fval] = linprog(f,A,b,Aeq,beq,lb,ub)
Результаты представлены в таблице 13.
k
𝑢1𝑘
𝑢2𝑘
𝑢3𝑘
1
1
1
1
2
0
0
0
Таблица 13: Результат использования linprog.
Получаем следующий выбор альтернатив: (𝑢11 , 𝑢21 , 𝑢31 ).
38
Список используемой литературы
1. Колесников Д.Н., Бендерская Е.Н., Лупин А.В., Пахомова В.И., Сиднев А.Г., Цыган
В.Н. «Системный анализ и принятие решений». СПб.: Издательство Политехнический
университет, 2008. - 468с.
2. Макаров И.М., и др. Теория выбора и принятия решений. М. Наука. 1982. — 328 с.
3. Вишневский В.М. «Теоретические основы проектирования компьютерных сетей». — М. :
Техносфера, 2003. - 512 с
39
Download