Динамическое программирование. Оптимальное распределение ресурсов. Задача коммивояжера

Курсовая работа, 22 Ноября 2012, автор: пользователь скрыл имя

Описание работы


Совет директоров фирмы рассматривает предложения по наращиванию производственных мощностей для увеличения выпуска однородной продукции на четырёх предприятиях, принадлежащих фирме. Для модернизации предприятия совет директоров инвестировал средства в объёме 250 млн. р. с дискретностью 50 млн. р.

Файлы: 1 файл

Курсовая работа Моя.doc

— 521.50 Кб (Скачать файл)

Серой заливкой выделены оптимальные  значения величин Х1 + Х2, соответствующих в сумме возможному объему выделенных этим предприятиям средств.  
Шаг 2. Затем, рассматривая предприятия 1 и 2 как единый комплекс (1,2), выполним аналогичную процедуру распределения ресурса между ним и 3-им предприятием. Для вычисления значения общей прибыли при этом будем пользоваться уже найденным на предыдущем шаге оптимальным решением. Далее все три предприятия опять-таки рассматриваются как некий единый комплекс (1,2,3).

X123

Х12

Х*3

V*123

50

50

0

7

0

50

6

100

100

0

12

50

50

13

0

100

8

150

150

0

21

100

50

18

50

100

15

0

150

21

200

200

0

34

150

50

27

100

100

20

50

150

28

0

200

35

250

250

0

40

200

50

40

150

100

29

100

150

33

50

200

42

0

250

40


 

 Шаг 3. Выполним аналогичную предыдущему процедуру распределения ресурса между комплексом (1,2,3) и предприятием 4. Полученный результат и даст нам оптимальное решение поставленной задачи.

X1234

Х*123

Х*4

V*1234

50

50

0

7

0

50

4

100

100

0

13

50

50

11

0

100

11

150

150

0

21

100

50

17

50

100

18

0

150

19

200

200

0

35

150

50

25

100

100

24

50

150

26

0

200

33

250

250

0

40

200

50

39

150

100

32

100

150

32

50

200

40

0

250

41


Из таблицы 3-го шага имеем V* (250) = 41. То есть максимальный доход всей системы при количестве средств 250 равен 41

 

Согласно полученным данным оптимальным  будет следующее распределение  ресурсов:

i

1

2

3

4

Xi

0

0

0

250


 

Прирост выпуска продукции будет максимальным, если распределить инвестиции следующим образом: 250 млн. р. четвертому предприятию. Это обеспечит максимальный доход, равный 41 млн. р.

 

 

2. Задача коммивояжера

 

а) Содержательная история

Коммивояжер должен объездить 6 городов. Для того чтобы сократить расходы, он хочет построить такой маршрут, чтобы объездить все города точно по одному разу и вернуться в исходный с минимумом затрат. Исходный город A. Затраты на перемещение между городами заданы следующей матрицей: 

 

A

B

C

D

E

F

A

M

14

40

33

16

51

B

48

M

34

4

11

24

C

57

35

M

24

38

52

D

30

50

44

M

9

31

E

18

42

24

31

M

30

F

1

38

31

19

32

M


 

Для удобства изложения везде ниже в платежной матрице заменим  имена городов (A, B, …, F) номерами соответствующих  строк и столбцов (1, 2, …, 6).

i  j

1

2

3

4

5

6

1

M

14

40

33

16

51

2

48

M

34

4

11

24

3

57

35

M

24

38

52

4

30

50

44

M

9

31

5

18

42

24

31

M

30

6

1

38

31

19

32

M


 

б) Математическая модель задачи коммивояжера

    (1)

При ограничениях

 

 

Условия (2) – (4) в совокупности обеспечивают, что каждая переменная равна или нулю, или единице. При этом ограничения (2), (3) выражают условия, что коммивояжер побывает в каждом городе один раз в него прибыв (ограничение (2)), и один раз из него выехав (ограничение (3)).

 

в) Метод решения – метод ветвей и границ

 В задаче коммивояжера для  формирования оптимального маршрута  объезда n городов необходимо выбрать один лучший из (n-1)! вариантов по критерию времени, стоимости или длине маршрута. Эта задача связана с определением гамильтонова цикла минимальной длины. В таких случаях множество всех возможных решений следует представить в виде дерева - связного графа, не содержащего циклов и петель. Корень дерева объединяет все множество вариантов, а вершины дерева — это подмножества частично упорядоченных вариантов решений.  
Вершина (i,j) соответствует подмножеству всех маршрутов, содержащих ребро (i,j), а вершина (i*,j*) — подмножеству всех маршрутов, где это ребро отсутствует.  
Процесс разбиения на эти подмножества можно рассматривать как ветвление дерева. Поэтому метод называется методом поиска по дереву решений, или методом ветвей и границ.  
Метод ветвей и границ представляет собой алгоритм направленного перебора множества вариантов решения задачи. Сущность метода ветвей и границ состоит в том, что от корня дерева ветвятся не все вершины.

 

г) Решение задачи

1. Для определения нижней границы множества воспользуемся операцией редукции или приведения матрицы по строкам, для чего необходимо в каждой строке матрицы D найти минимальный элемент.

 di = min(j) dij

i  j

1

2

3

4

5

6

di

1

M

14

40

33

16

51

14

2

48

M

34

4

11

24

4

3

57

35

M

24

38

52

24

4

30

50

44

M

9

31

9

5

18

42

24

31

M

30

18

6

1

38

31

19

32

M

1


 Затем вычесть его из элементов  рассматриваемой строки. В связи с этим во вновь полученной матрице в каждой строке будет как минимум один ноль.

i  j

1

2

3

4

5

6

1

M

0

26

19

2

37

2

44

M

30

0

7

20

3

33

11

M

0

14

28

4

21

41

35

M

0

22

5

0

24

6

13

M

12

6

0

37

30

18

31

M


 Затем такую же операцию редукции проводим по столбцам, для чего в каждом столбце находим минимальный элемент:

 dj = min(i) dij

i  j

1

2

3

4

5

6

1

M

0

26

19

2

37

2

44

M

30

0

7

20

3

33

11

M

0

14

28

4

21

41

35

M

0

22

5

0

24

6

13

M

12

6

0

37

30

18

31

M

dj

0

0

6

0

0

12

Информация о работе Динамическое программирование. Оптимальное распределение ресурсов. Задача коммивояжера