Динамическое программирование. Оптимальное распределение ресурсов. Задача коммивояжера
Курсовая работа, 22 Ноября 2012, автор: пользователь скрыл имя
Описание работы
Совет директоров фирмы рассматривает предложения по наращиванию производственных мощностей для увеличения выпуска однородной продукции на четырёх предприятиях, принадлежащих фирме. Для модернизации предприятия совет директоров инвестировал средства в объёме 250 млн. р. с дискретностью 50 млн. р.
Файлы: 1 файл
Курсовая работа Моя.doc
— 521.50 Кб (Скачать файл)После вычитания минимальных элементов получаем полностью редуцированную матрицу, где величины di и dj называются константами приведения.
i j |
1 |
2 |
3 |
4 |
5 |
6 |
1 |
M |
0 |
20 |
19 |
2 |
25 |
2 |
44 |
M |
24 |
0 |
7 |
8 |
3 |
33 |
11 |
M |
0 |
14 |
16 |
4 |
21 |
41 |
29 |
M |
0 |
10 |
5 |
0 |
24 |
0 |
13 |
M |
0 |
6 |
0 |
37 |
24 |
18 |
31 |
M |
2. Сумма констант приведения (сумма всех вычитаемых на предыдущем шаге минимумов) определяет нижнюю границу дерева решений H:
H = ∑di + ∑dj
H = 14+4+24+9+18+1+0+0+6+0+0+12 = 88
3. Оценим штраф за отклонение от каждого нуля приведенной матрицы:
i j |
1 |
2 |
3 |
4 |
5 |
6 |
di |
|
1 |
M |
0(13) |
20 |
19 |
2 |
25 |
2 |
2 |
44 |
M |
24 |
0(7) |
7 |
8 |
7 |
3 |
33 |
11 |
M |
0(11) |
14 |
16 |
11 |
4 |
21 |
41 |
29 |
M |
0(12) |
10 |
10 |
5 |
0(0) |
24 |
0(20) |
13 |
M |
0(8) |
0 |
6 |
0(18) |
37 |
24 |
18 |
31 |
M |
18 |
dj |
0 |
11 |
20 |
0 |
2 |
8 |
0 |
d(1,2) = 2 + 11 = 13; d(2,4) = 7 + 0 = 7; d(3,4) = 11 + 0 = 11; d(4,5) = 10 + 2 = 12; d(5,1) = 0 + 0 = 0; d(5,3) = 0 + 20 = 20; d(5,6) = 0 + 8 = 8; d(6,1) = 18 + 0 = 18;
Максимальное значение штрафа равно 20 за отклонение от узла (5,3). Следовательно, первым включаем в маршрут движения коммивояжера участок (5"3).
Если не включать этот участок в путь коммивояжера, то значение нижней границы увеличится на 20 и будет равным 88 + 20 = 108.
4. Оценим нижнюю границу при выборе узла (5,3). Для этого вычеркиваем из последней матрицы 5-ю строку и 3-ий столбец, при этом запретим возврат из 3-го пункта в 5-ый. Получим матрицу:
i j |
1 |
2 |
4 |
5 |
6 |
di |
|
1 |
M |
0 |
19 |
2 |
25 |
0 |
2 |
44 |
M |
0 |
7 |
8 |
0 |
3 |
33 |
11 |
0 |
M |
16 |
0 |
4 |
21 |
41 |
M |
0 |
10 |
0 |
6 |
0 |
37 |
18 |
31 |
M |
0 |
dj |
0 |
0 |
0 |
0 |
8 |
8 |
Сумма констант приведения сокращенной матрицы (сумма всех вычитаемых на предыдущем шаге минимумов):
∑di + ∑dj = 8
Нижняя граница (5,3) равна:
H1(5,3) = 88 + 8 = 96 < 108
Корень дерева решений будет выглядеть
следующим образом:
5. Оценим штрафы для нулевых
элементов последней
i j |
1 |
2 |
4 |
5 |
6 |
di |
|
1 |
M |
0(13) |
19 |
2 |
17 |
2 |
2 |
44 |
M |
0(0) |
7 |
0(2) |
0 |
3 |
33 |
11 |
0(8) |
M |
8 |
8 |
4 |
21 |
41 |
M |
0(4) |
2 |
2 |
6 |
0(39) |
37 |
18 |
31 |
M |
18 |
dj |
21 |
11 |
0 |
2 |
2 |
0 |
d(1,2) = 2 + 11 = 13; d(2,4) = 0 + 0 = 0; d(2,6) = 0 + 2 = 2; d(3,4) = 8 + 0 = 8; d(4,5) = 2 + 2 = 4; d(6,1) = 18 + 21 = 39;
Максимальное значение 39 дает отказ от узла (6,1). Следовательно, включаем в маршрут движения участок 6"1. При этом отказ от участка приводит к увеличению стоимости проезда, таким образом Н + d(6,1) = 96 + 39 = 135.
6. Оценим нижнюю границу при выборе узла (6,1). Вычеркиваем из матрицы стоимостей строку, соответствующую 6-му пункту, и 1-ый столбец, при этом запретим возврат из 1-го пункта в 6-ый. Получим матрицу:
i j |
2 |
4 |
5 |
6 |
di |
|
1 |
0 |
19 |
2 |
M |
0 |
2 |
M |
0 |
7 |
0 |
0 |
3 |
11 |
0 |
M |
8 |
0 |
4 |
41 |
M |
0 |
2 |
0 |
dj |
0 |
0 |
0 |
0 |
0 |
Сумма констант приведения сокращенной матрицы (сумма всех вычитаемых на предыдущем шаге минимумов):
∑di + ∑dj = 0
Нижняя граница (6,1) равна:
H1(6,1) = 96 + 0 = 96 < 135
7. Оценим штрафы для нулевых элементов последней приведенной матрицы:
i j |
2 |
4 |
5 |
6 |
di |
|
1 |
0(13) |
19 |
2 |
M |
2 |
2 |
M |
0(0) |
7 |
0(2) |
0 |
3 |
11 |
0(8) |
M |
8 |
8 |
4 |
41 |
M |
0(4) |
2 |
2 |
dj |
11 |
0 |
2 |
2 |
0 |
d(1,2) = 2 + 11 = 13; d(2,4) = 0 + 0 = 0; d(2,6) = 0 + 2 = 2; d(3,4) = 8 + 0 = 8; d(4,5) = 2 + 2 = 4;
Максимальное значение 13 дает отказ от узла (1,2). Следовательно, включаем в маршрут движения участок 1"2. При этом отказ от участка приводит к увеличению стоимости проезда, таким образом Н + d(1,2) = 96 + 13 = 109.
8. После выбора узла (1,2) вычеркиваем 1-ую строку и 2-ой столбец, при этом запретим возврат из 2-го пункта в 1-ый. Получим матрицу:
i j |
4 |
5 |
6 |
di |
|
2 |
0 |
7 |
0 |
0 |
3 |
0 |
M |
8 |
0 |
4 |
M |
0 |
2 |
0 |
dj |
0 |
0 |
0 |
0 |
Сумма констант приведения сокращенной матрицы (сумма всех вычитаемых на предыдущем шаге минимумов):
∑di + ∑dj = 0
Нижняя граница (1,2) равна:
H1(1,2) = 96 + 0 = 96 < 109
9. Оценим штрафы для нулевых элементов последней приведенной матрицы:
i j |
4 |
5 |
6 |
di |
|
2 |
0(7) |
7 |
M |
7 |
3 |
0(6) |
M |
6 |
6 |
4 |
M |
0(7) |
0(6) |
0 |
dj |
0 |
7 |
6 |
0 |
d(2,4) = 7 + 0 = 7; d(3,4) = 6 + 0 = 6; d(4,5) = 0 + 7 = 7; d(4,6) = 0 + 6 = 6;
Максимальное значение 7 дает отказ от узла (2,4). Следовательно, включаем в маршрут движения участок 2"4. При этом отказ от участка приводит к увеличению стоимости проезда, таким образом Н + d(2,4) = 96 + 7 = 103.
10.После выбора узла (2,4) вычеркиваем 2-ую строку и 4-ый столбец, при этом запретим возврат 4-го пункта во 2-ой. Получим матрицу:
i j |
5 |
6 |
di |
|
3 |
M |
6 |
6 |
4 |
0 |
0 |
0 |
dj |
0 |
0 |
6 |
Сумма констант приведения сокращенной матрицы:
∑di + ∑dj = 6
Нижняя граница (2,4) равна:
H1 (2,4) = 96 + 6 = 102 < 103
В соответствии с этой матрицей включаем в маршрут (3,6) и (4,5).
В результате по дереву ветвлений цикл образуют узлы:
(5,3), (3,6), (6,1), (1,2), (2,4), (4,5).
Последовательность объезда городов:
5"3"6"1"2"4"5
Стоимость проезда по этому пути равна 102.
Длина маршрута равна = (5,3) + (3,6) +
(6,1) + (1,2) + (2,4) + (4,5) = 24 + 52 + 1 + 14 + 4 + 9 = 104
д) Выводы:
Оптимальным маршрутом коммивояжера будет маршрут E"C"F"A"B"D"E
е) Анализ решения
Для того чтобы провести анализ решим эту задачу, изменив некоторые показатели затрат на перемещение между городами.
Получим следующую матрицу:
A |
B |
C |
D |
E |
F | |
A |
M |
40 |
33 |
16 |
14 |
51 |
B |
34 |
M |
48 |
4 |
11 |
24 |
C |
57 |
35 |
M |
24 |
38 |
52 |
D |
50 |
31 |
44 |
M |
9 |
30 |
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 |
40 |
33 |
16 |
14 |
51 |
2 |
34 |
M |
48 |
4 |
11 |
24 |
3 |
57 |
35 |
M |
24 |
38 |
52 |
4 |
50 |
31 |
44 |
M |
9 |
30 |
5 |
18 |
42 |
24 |
31 |
M |
30 |
6 |
1 |
38 |
31 |
19 |
32 |
M |