Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_Мат.методы_Мардамшина.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.32 Mб
Скачать

Раздел 3. Сетевое программирование.

Тема 3.1 алгоритмы на сетях.

Основные понятия теории графов

Основным объектом этой теории является граф. Наглядно граф можно представить как некоторое множество точек плоскости или пространства и множество отрезков кривых или прямых линий, соединяющих все или некоторые из этих точек. Формально граф G определяется заданием двух множеств X и U и обозначается G=(XU). Элементы xB1B, xB2B, …, xBn B множества X называются вершинами и изображаются точками. Элементами uB1B, uB2B, …, uBm множества U являются пары связанных между собой элементов множества X и изображаются отрезками. Взаимное расположение, форма и длины отрезков значения не имеют. Если в паре вершин xBi Bи B BxBj указано направление связи, то есть указано, какая вершина является первой, то отрезок UB1 называется дугой, а если ориентация не указана, - ребром.

Если в графе G все элементы множества U изображаются дугами, то граф называется ориентированным (орграф), если ребрами, - неориентированным.

На практике используются графы, в которых множества X и U состоят из конечного числа элементов, то есть конечные графы. На рисунке располагать вершины графа можно произвольно. Также произвольно выбирается и форма соединяющих их линий. Поэтому один и тот же граф (граф с одной и той же информацией) может быть представлен в различных видах. Такие графы называются изоморфными.

Смежными называют вершины графа, если они различны и существует дуга (ребро), которая соединяет эти вершины. Если две дуги (ребра) имеют общую концевую вершину, то такие дуги (ребра) смежные.

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

Граф называется связным, если для любых двух его вершин существует путь, их соединяющий; в противном случае граф называется несвязным.

В экономике чаще всего используются два вида графов: дерево и сеть.

Дерево представляет собой связный граф без циклов, имеющий исходную вершину (корень) и крайние вершины; пути от исходной вершины к крайним вершинам называются ветвями.

Если граф, вообще говоря, не связный, не содержит циклов, то каждая связная его часть будет деревом. Такой граф называется лесом.

В приложении теории графов к практическим задачам дугам (ребрам) графа сопоставляют какие-то числовые характеристики. Например, пропускная способность транспортной магистрали, запас какого-либо ресурса, продолжительность выполнения какой-либо работы и т.д. Таким образом, дугам графа приписаны определенные веса и граф G называется взвешенным.

Минимизация сети

Задача минимизации сети состоит в нахождении ребер, соеди­няющих все узлы сети (т. е. каждая пара узлов соединена цепью) и имеющих минимальную суммарную длину. Очевидно, что решение задачи не должно содержась циклов. Рис. 6.1 иллюстрирует рассмат­риваемую ситуацию. На ребрах, соединяющих узлы 1, 2 и 3, указаны их длины.

Рис. 6.1.

Ясно, что в минимальной сети узел 3 соединен с узлами 1 и 2, что дает суммарную минимальную длину последо­вательности ребер 44-6=10. Если соединить узлы 1 и 2, возникнет цикл, и получающаяся сеть, конечно, не может быть мини­мальной.

Отсутствие циклов в минимальной сети естественным образом привело к ее названию — минимальное дерево-остов. В любой сети минимальное дерево-остов можно определить следующим итератив­ным процессом. Начать с любого узла и соединить его с ближайшим /злом сети. Соединенные два узла образуют теперь связное множест­ву, а остальные узлы — несвязное множество. Далее в несвязном множестве выбрать узел, который расположен ближе других (на кратчайшем расстоянии) к любому из узлов связного множества, корректировать соответствующим образом связное и несвязное множества и повторять процесс до тех пор, пока в связное множе­но не попадут все узлы сети. В случае одинаково удаленных узлов выбирать любой из них, что указывает на неоднозначность минимального дерева-остова.

Пример. Телевизионная фирма планирует создание кабельной сети (рис. 6.2) для обслуживания пяти районов-новостроек, числа на ребрах указывают длину кабеля, соединяющего соответст­вующие узлы. Узел 1 представляет телевизионный центр, а остальные узлы (2—6) соответствуют пяти новостройкам. Отсутствие

ребра между двумя узлами означает, что соединение соответствующих новостроек либо связано со слишком большими затратами, либо практически невозможно. Нужно найти такие ребра, которые потребуют минимальной длины для связи (прямой или через другие пункты) всех районов с телевизионным центром. Рис. 6.3 иллюстрирует итерационный процесс решения этой задачи. При любом выборе начального узла получается одно и то же решение. В данном примере логично начинать вычисления с узла 1, т. е. в начальный момент он соответствует множеству связных узлов». Множество «несвязных узлов» представлено узлами 2, 3, 4, 5 и 6. Символически это можно записать как

Задача о кратчайшем пути

Задача о кратчайшем пути состоит в нахождении связанных между собой дорог на транспортной сети, которые в совокупности имеют минимальную длину от исходного пункта до пункта назначе­ния. В данном разделе рассматриваются различные случаи, которые можно промоделировать и решить как задачу о кратчайшем пути. Приложения сопровождаются описанием алгоритмов решения.

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

Сначала рассмотрим алгоритм на численном примере.

Прежде чем описать процедуру решения, введем следующие обо­значения:

dij — расстояние на сети между смежными узлами i и j, Uj ~ кратчайшее расстояние между узлами 1 и j, U1=0. Процедура завершается, когда получено значение U7. Общая фор­мула для вычисления Ui имеет вид