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

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

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

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

Файлы: 1 файл

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

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

Решим задачу по аналогии:

1.Определим нижнюю границу (в каждой строке матрицы D найдем минимальный элемент).

 di = min(j) dij

i  j

1

2

3

4

5

6

di

1

M

40

33

16

14

51

14

2

34

M

48

4

11

24

4

3

57

35

M

24

38

52

24

4

50

31

44

M

9

30

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

26

19

2

0

37

2

30

M

44

0

7

20

3

33

11

M

0

14

28

4

41

22

35

M

0

21

5

0

24

6

13

M

12

6

0

37

30

18

31

M


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

 dj = min(i) dij

i  j

M

26

19

2

0

6

1

M

26

19

2

0

37

2

30

M

44

0

7

20

3

33

11

M

0

14

28

4

41

22

35

M

0

21

5

0

24

6

13

M

12

6

0

37

30

18

31

M

dj

0

11

6

0

0

12


 После вычитания минимальных  элементов получаем полностью  редуцированную матрицу, где величины  di и dj называются константами приведения.

i  j

1

2

3

4

5

6

1

M

15

13

2

0

25

2

30

M

38

0

7

8

3

33

0

M

0

14

16

4

41

11

29

M

0

9

5

0

13

0

13

M

0

6

0

26

24

18

31

M


 

2. Сумма констант приведения (сумма всех вычитаемых на предыдущем шаге минимумов) определяет нижнюю границу дерева решений H:

 H = ∑di + ∑dj

 H = 0+11+6+0+0+12+14+4+24+9+18+1 = 99

3. Оценим штраф за отклонение  от каждого нуля приведенной  матрицы: 

i  j

1

2

3

4

5

6

di

1

M

15

13

2

0(2)

25

2

2

30

M

38

0(7)

7

8

7

3

33

0(11)

M

0(0)

14

16

0

4

41

11

29

M

0(9)

9

9

5

0(0)

13

0(13)

13

M

0(8)

0

6

0(18)

26

24

18

31

M

18

dj

0

11

13

0

0

8

0


 

d(1,5) = 2 + 0 = 2; d(2,4) = 7 + 0 = 7; d(3,2) = 0 + 11 = 11; d(3,4) = 0 + 0 =0; d(4,5) = 9 + 0 = 9; d(5,1) = 0 + 0 = 0; d(5,3) = 0 + 13 = 13; d(5,6) = 0 + 8 = 8; d(6,1) = 18 + 0 = 18;

 Максимальное значение штрафа равно 18 за отклонение от узла (6,1). Следовательно, первым включаем в маршрут движения коммивояжера участок (6"1).

Если не включать этот участок в  путь коммивояжера, то значение нижней границы увеличится на 18 и будет равным 99 + 18 = 117.

4. Оценим нижнюю границу  при выборе узла (6,1). Для этого вычеркиваем из последней матрицы 6-ю строку и 1-ий столбец, при этом запретим возврат из 1-го пункта в 6-ый. Получим матрицу:

i  j

2

3

4

5

6

di

1

15

13

2

0

M

0

2

M

38

0

7

8

0

3

0

M

0

14

16

0

4

11

29

M

0

9

0

5

13

0

13

M

0

0

dj

0

0

0

0

0

0


Сумма констант приведения сокращенной  матрицы (сумма всех вычитаемых на предыдущем шаге минимумов):

 ∑di + ∑dj = 0

Нижняя граница (6,1) равна:

 H1(6,1) = 99 + 0 = 99  <  117

Корень дерева решений будет  выглядеть следующим образом: 


 

 

 

 

 

 

 

5. Оценим штрафы для нулевых  элементов последней приведенной  матрицы: 

i  j

2

3

4

5

6

di

1

15

13

2

0(2)

M

2

2

M

38

0(7)

7

8

7

3

0(11)

M

0(0)

14

16

0

4

11

29

M

0(9)

9

9

5

13

0(13)

13

M

0(8)

0

dj

11

13

0

0

8

0


 Максимальное значение 13 дает отказ от узла (5,3). Следовательно, включаем в маршрут движения участок 5"3. При этом отказ от участка приводит к увеличению стоимости проезда, таким образом Н + d(5,3) = 99 + 13 = 112.

6. Оценим нижнюю границу при выборе узла (5,3). Вычеркиваем из матрицы стоимостей строку, соответствующую 3-му пункту, и 5-ый столбец, при этом запретим возврат из 3-го пункта в 5-ый. Получим матрицу:

i  j

2

4

5

6

di

1

15

2

0

M

0

2

M

0

7

8

0

3

0

0

M

16

0

4

11

M

0

9

0

dj

0

0

0

8

8


 

Сумма констант приведения сокращенной  матрицы (сумма всех вычитаемых на предыдущем шаге минимумов):

 ∑di + ∑dj = 8

 

 Нижняя граница (5,3) равна:

 H1(5,3) = 99 + 8 = 107  <  112

7. Оценим штрафы для нулевых элементов последней приведенной матрицы:

i  j

2

4

5

6

di

1

15

2

0(2)

M

2

2

M

0(0)

7

0(1)

0

3

0(11)

0(0)

M

8

0

4

11

M

0(1)

1

1

dj

11

0

0

1

0


Максимальное значение 11 дает отказ от узла (3,2). Следовательно, включаем в маршрут движения участок 31"2. При этом отказ от участка приводит к увеличению стоимости проезда, таким образом Н + d(3,2) = 99 + 11 = 110.

8. После выбора узла (3,2) вычеркиваем 3-ю строку и 2-ой столбец, при этом запретим возврат из 2-го пункта в 3-ий. Получим матрицу:

i  j

4

5

6

di

1

2

0

M

0

2

0

7

0

0

4

M

0

1

0

dj

0

0

0

0


Сумма констант приведения сокращенной  матрицы (сумма всех вычитаемых на предыдущем шаге минимумов):

 ∑di + ∑dj = 0

 

 Нижняя граница (3,2) равна:

 H1(3,2) = 107 + 0 = 107  <  110

9. Оценим штрафы для нулевых элементов последней приведенной матрицы:

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