Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

MathematicalOptimization

.pdf
Скачиваний:
312
Добавлен:
29.04.2015
Размер:
375 Кб
Скачать

5 1 9 12

2 3 4 1

3 2 5 1

= −1 0 0 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

 

 

 

 

 

 

 

 

 

−1

 

 

 

 

0

0

0

 

0 0 −1 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.6Fgoalattain

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;

21 ;

31 ;

41 ] ;

5

 

 

 

 

6

A=[5

1

9

12;

7

2

3

4

1 ;

8

3

2

5

1 ;

9−1 0 0 0 ;

100 −1 0 0 ;

110 0 −1 0 ;

12 0 0 0 −1];

13

 

14

b = [1500 , 1000 , 800 , 0 , 0 , 0 , 0 ] ;

15

16%Первый критерий

17c l c

18c l e a r

19

20% Исходные данные

21x0 =[0;

220 ;

230 ;

240 ] ;

25

 

 

 

 

26

A=[5

1

9

12;

27

2

3

4

1 ;

28

3

2

5

1 ;

29−1 0 0 0 ;

300 −1 0 0 ;

310 0 −1 0 ;

320 0 0 −1];

33

13

34

b =

[1500 , 1000 , 800 ,

0 , 0 , 0 , 0 ] ;

 

 

35

 

 

 

 

 

 

36

[ x1 ,

f1 ]

= 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 ,

f2 ]

= 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

weight =

abs ( goal ) ;

 

 

 

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 , goal , 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 − ≤ 0)

14

И будем менять в диапазоне 0.1 ≤ ≤ 0.9, и возьмём коэффициенты за случайные

величины.

(0, 6 1 + 0, 8 2 + 1, 0 3 + 1, 2 4 ≤ 100) ≥

 

3

Пользуясь формулой:

=1 + 0

получим вероятностное ограничение для задачи, где 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 = [100

100 100

1 0 0 ] ;

 

3

x0=[0

0

0

0 ] ;

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

5

options

=

optimset ( ’ Algorithm ’ , ’ i n t e r i o r −point ’ ) ;

6

% для каждого критерия по

отдельности :

7

[ 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 , options )

 

 

 

 

 

 

 

 

 

 

1

function

 

[ sigma ]

= probabilityConstr ( x )

2

 

covH=x * [ 0 . 6 ;

0 . 8 ; 1 . 0 ;

1 . 2 ] * transpose ( x ) ;

3

 

sigma

= s q r t ( covH ) ;

 

4

end

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

function

 

[ c , ceq ]

 

= constrStoh ( x )

2

ceq

=

0 ;

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

4

sigma

= probabilityConstr ( x ) ;

5

K=1.282;

 

 

 

 

 

 

 

6

c =

[

 

 

 

 

 

 

 

 

7

 

% введенное

вероятностное ограничение

 

 

 

 

 

 

 

 

 

 

 

15

8

0.6*x (1)

+ 0.8

*x (2)

+ 1 * x (3)

+ 1.2

*x (4)

− 100 + K*sigma ;

9

 

 

 

 

 

 

 

 

 

 

 

 

 

10

−0.2*x (1)

0.3

*x (2)

0.4*x (3)

0.5

*x (4)

+

35;

11

−0.6*x (1)

0.

4

*x (2)

0.3*x (3)

0.

2

*x (4)

+

42;

12% условия из "бывших" критериев

13−12*x (1) − 5*x (2) − 15*x (3) − 10*x (4) ] ;

14end

 

 

 

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

1

0,4

 

 

 

 

 

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

= 1 − 12 25 56

1

14 42 25 56 14 43 31

1

14 45 56

1

14 46 33

1

+ 33 12 25 56

1

+ 33 14 42 25 56

1

+ 33 14 45 56

1

+ 33 14 46 = 0

Отсюда выведем ( ):

1 14 43 31 33 = ( 12 25 56 + 14 42 25 56 +

14 45 56 + 14 46 33 12 25 56

1

33 14 42 25 56 33 14 45 56 33 14 46)

( ) = ( 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