рейтинговая работа. Рейтинговая работа. Кафедра Математика и информатика
Скачать 0.56 Mb.
|
11 14 9 Остаются только две непостоянные вершины: 4 и 7. Очевидно, что метки для них обновить нельзя, ребро направлено от 4 к 7 вершине, а метка для 4 вершины имеет большее значение. Так что эти две вершины также можно считать постоянными. Минимальные пути из вершины во все другие вершины в ориентированном нагруженном графе (длины путей равны значениям меток): 4. Комбинаторика. Применение графовых моделей. Задание 1. Задана исходная матрица расстояний:
Решить задачу коммивояжёра. Решение. Решение задачи происходит методом Литтла (частный случай метода ветвей и границ). Матрица стоимости для графа, элементами которой являются веса соответствующих дуг (все элементы по диагонали матрицы приравниваем к бесконечности):
Найдем минимальные элементы в каждой строке и затем вычтем его из остальных элементов строки (минимальные элементы записаны напротив соответствующих строк). Получим матрицу представленную ниже.
То же проделаем и со столбцами, не содержащими нуля. Получим матрицу, содержащую нули в каждой строке и каждом столбце.
Для каждого нулевого элемента рассчитаем значение Гij, равное сумме наименьшего элемента i строки (исключая элемент Сij=0) и наименьшего элемента j столбца. Г1,2=0, Г1,3=0, Г1,4=1, Г2,5=1, Г3,1=0, Г3,2=0, Г4,2=0, Г4,5=0, Г5,1=0, Г5,2=0, Г5,3=0 В результате сравнения мы получили 2 одинаковых максимальных Г=1. Это означает что алгоритм разветвляется, и мы должны рассмотреть все получившиеся варианты поочередно. Рассмотрим вариант Г1,4=1. Удалим из матрицы стоимости строку 1 и столбец 4. Внесем в текущий ориентированный граф дугу (1,4).
В строке 4 и столбце 1 отсутствует элемент равный ∞. Присвоим элементу (4,1) значение бесконечности, чтобы избежать преждевременного замыкания контура. Текущая нижняя граница = 12. Нижняя граница равна сумме всех вычтенных элементов в строках и столбцах. Итоговое значение нижней границы должно совпасть с длиной результирующего контура. Найдем минимальные элементы в каждой строке и затем вычтем его из остальных элементов строки (минимальные элементы записаны напротив соответствующих строк). Получим матрицу представленную ниже.
То же проделаем и со столбцами, не содержащими нуля. Получим матрицу, содержащую нули в каждой строке и каждом столбце.
|