Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Пример решения практической задачи




Задача коммивояжера: Коммивояжер должен посетить пять городов, заезжая в каждый город по одному разу. Расстояние между городами следующие: между первым городом и вторым – 12 км, между первым и третьим – 25 км, между первым и четвертым – 16 км, между первым и пятым – 31 км, между вторым и третьим – 28 км, между вторым и четвертым – 35 км, между вторым и пятым – 22 км, между третьим и четвертым – 36 км, между третьим и пятым – 20 км, между четвертым и пятым – 19 км. Его маршрут должен минимизировать суммарную длину пройденного пути.

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

.

Из каждого элемента столбца вычитаем соответствующий минимальный элемент. Получаем матрицу :

.

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

.

Вычисляем константу приведения :

.

Находим степени каждого нуля – сумму минимальных элементов строки и столбца, в которых стоит нуль (без учета самого нуля). К каждому нулю приписываем вверху его степень. Максимальной степенью является число 12. Нули с максимальной степенью определяют дуги, которые вероятнее всего войдут в гамильтонов цикл. В нашем случае наиболее вероятной дугой гамильтонова цикла является l (3; 5).

Выбираем дугу l (3; 5).

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

, .

Обе матрицы не являются приведенными. Для приведения матриц определяем минимальные элементы строк и столбцов.

Сначала работаем с матрицей . Определяем минимальные элементы строк. А потом эти элементы вычитаем из каждого элемента соответствующих строк.

Þ .

Теперь определяем минимальные элементы каждого столбца. А потом эти элементы вычитаем из каждого элемента соответствующего столбца.

Þ .

Аналогично преобразовываем матрицу .

Þ .

Таким образом, получаем две приведенные матрицы:

и .

Вычисляем константы приведения:

, ,

где и – суммы минимальных элементов строк и столбцов матриц и .

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

.

Максимальная степень – число 7. Наиболее вероятными дугами гамильтонова цикла являются дуги l (1; 2), l (4; 1) и l (5;4). Выбираем, например, дугу l (1; 2).

В связи с этим рассматриваем две матрицы: и . В матрице убираем первую строку и второй столбец, элемент заменяем , получаем матрицу . В матрице элемент заменяем . Имеем:

, .

Обе матрицы не являются приведенными. Преобразуем их по той же схеме, как это делали выше.

Þ

Þ .

Таким образом, получаем две приведенные матрицы и .

Вычисляем константы приведения:

, .

Так как , то далее рассматриваем матрицу . Определяем степени каждого нуля.

Максимальная степень – число 32. Наиболее вероятной дугой гамильтонова цикла является дуга l (5; 4).

В связи с этим рассматриваем две матрицы: и . В матрице убираем строку под номером 5 и столбец под номером 4, получаем матрицу . В матрице элемент заменяем . Имеем:

, .

Матрица не является приведенной. Преобразуем ее по той же схеме как делали выше.

Þ .

, .

Так как , то далее рассматриваем матрицу . Последние две дуги гамильтонова цикла определяем из матрицы : l (2; 3) и l (4; 1).

Таким образом, получаем решение, которое состоит из следующих дуг: (3; 5), (1;2), (5; 4), (2; 3), (4; 1). Гамильтонов цикл имеет вид 1®2®3®5®4®1, длина цикла равна 95 км.

Сравним константу приведения с константами приведения альтернативных вариантов ():

: ;

: ;

: .

Так как , то возвращаемся к приведенной матрице , и от нее начинаем строить гамильтонов цикл.

Определяем степени нулей этой матрицы:

.

Максимальная степень – число 8. Наиболее вероятной дугой гамильтонова цикла является дуга l (5; 3).

В связи с этим рассматриваем две матрицы: и . В матрице убираем пятую строку и третий столбец, элемент уже заменен . В матрице элемент заменяем . Получаем:

, .

Матрица - приведенная, а матрица не является приведенной. Сделаем ее приведенной, как это делали выше.

Þ .

Вычисляем константы приведения:

, ,

где и – суммы минимальных элементов строк и столбцов матриц и .

Так как , но далее рассматриваем матрицу . Определяем степени нулей этой матрицы:

.

Максимальная степень – число 7. Наиболее вероятными дугами гамильтонова цикла являются дуги l (1; 4), и l (4; 5). Выбираем, например, дугу l (4; 5).

В связи с этим рассматриваем две матрицы: и . В матрице убираем строку под номером 4 и столбец под номером 5, получаем матрицу . В матрице элемент заменяем . Имеем:

, .

Матрица - приведенная, а матрица не является приведенной. Сделаем ее приведенной, как это делали выше.

Þ .

Вычисляем константы приведения:

, .

Так как , то далее рассматриваем матрицу . Определяем степени каждого нуля.

.

Максимальная степень – число 19. Наиболее вероятной дугой гамильтонова цикла является дуга l (2; 1).

В связи с этим рассматриваем две матрицы: и . В матрице убираем строку под номером 2 и столбец под номером 1, элемент заменяем и получаем матрицу . В матрице элемент заменяем . Имеем:

, .

Обе матрицы не являются приведенными. Преобразуем их по той же схеме, как это делали выше.

Þ ,

Þ .

, .

Так как , то далее рассматриваем матрицу . Последние две дуги гамильтонова цикла определяем из матрицы : l (1; 4) и l (3; 2).

Таким образом, получаем решение, которое состоит из следующих дуг: (5; 3), (4;5), (2; 1), (1; 4), (3; 2). Гамильтонов цикл имеет вид 1®4®5®3®2®1, длина цикла тоже равна 95 км.

Сравним константу приведения с константами приведения альтернативных вариантов ():

: ;

: ;

: .

Это значит, что получили оптимальное решение.

Весь процесс отыскания оптимального плана можно изобразить в виде дерева ветвления:

 

Полученные гамильтоновы циклы 1®2®3®5®4®1 или 1®4®5®3®2®1 можно изобразить в виде орграфа.

 

 

Это означает следующее: коммивояжер сначала посещает город 1, потом – город 2, затем – город 3, после – город 5, и, наконец, город 4, а потом возвращается в город 1. При этом длина всего пути составит 95 км. Второе решение говорит о том, что коммивояжер может ехать в обратную сторону.

,

Практическое задание

3.1. Решить задачу: Коммивояжер должен посетить пять городов, заезжая в каждый город по одному разу. Расстояние между городами следующие: между первым городом и вторым – N км, между первым и третьим – N+5 км, между первым и четвертым – 2N км, между первым и пятым – 45-N км, между вторым и третьим – N-1 км, между вторым и четвертым – 5 км, между вторым и пятым – 12 км, между третьим и четвертым – 3N-15 км, между третьим и пятым – 20-2N км, между четвертым и пятым – 19 км. Его маршрут должен минимизировать суммарную длину пройденного пути. Укажите возможные маршруты и длину пути. Изобразите процесс отыскания оптимального плана в виде дерева ветвления.

3.2. Разработайте блок-схему алгоритма Литтла.

 





Поделиться с друзьями:


Дата добавления: 2017-01-21; Мы поможем в написании ваших работ!; просмотров: 275 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

80% успеха - это появиться в нужном месте в нужное время. © Вуди Аллен
==> читать все изречения...

2272 - | 2125 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.013 с.