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

MathematicalOptimization

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

Санкт-Петербургский политехнический университет Петра Великого Институт Информационных Технологий и Управления

Кафедра компьютерных систем и программных технологий

Курсовая работа

Дисциплина: Методы оптимизации

Тема: Формулировка и решение задачи выбора оптимального решения с использованием различных математических моделей

Выполнил студент гр. 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

⎜00 = 0

0

Ограничения:

4

5 1 9 12

2 3 4 1

3 2 5 1

= −1

0

0

0

 

 

−1

 

 

 

 

0

0

0

 

 

 

 

−1

 

 

 

0

0

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

12;

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 ,

 

f2 ]

=

fmincon ( i n l i n e ( ’−32*x (1) − 15*x (2) − 12*x (3) − 80*x (4) ’ ) ,

 

 

x0 ,

A,

b)

17

f1 = −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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ограничения:

 

 

 

 

 

 

 

 

 

2

3

4

1

 

 

5

1

9

12

 

 

3

2

5

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=

 

 

1

0

0

0

 

 

 

1

0

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

12;

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 ,

f1 ] =

fmincon ( i n l i n e ( ’−12*x (1) − 5*x (2) − 15*x (3) − 10*x (4) ’ ) ,

 

x0 ,

A,

b)

17

f2 = −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;

20 ;

30 ;

40 ] ;

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

[ x1 ,

f1 ]

= fmincon ( i n l i n e ( ’−12*x (1) − 5*x (2) − 15*x (3)

− 10*x (4) ’ ) ,

 

x0 , A,

b)

 

 

 

 

 

17

f2 = −32*x1 (1) − 15*x1 (2) − 12*x1 (3) − 80*x1 (4)

 

 

18

 

 

 

 

 

 

 

 

 

19

[ x2 ,

f2 ]

= fmincon ( i n l i n e ( ’−32*x (1) − 15*x (2) − 12*x (3)

− 80*x (4) ’ ) ,

 

 

x0 ,

A,

b)

 

 

 

 

 

20

f1 = −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*((32* x (1) + 15*x (2)

+12*x (3)

+ 80*x (4) ) /

 

12500) ’ ) , 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

12;

 

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

1

2

3

4

Листинг 5: Содержание файла funminmax.m

function f

= funminmax ( x )

 

 

 

 

%Критерии

 

 

 

 

 

 

f (1)

=

1/(

( 12*x (1)

+ 5*x (2)

+ 15*x (3) + 10*x (4) )

/

3214)

;

f (2)

=

1/((32*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