Решение задач проектирования ГТС на базе СП SDH

курсовая работа

5.2 Разработка оптимальной структуры сети МСС

В качестве исходных данных при разработке оптимальной структуры сети используем план населенного пункта, на котором отмечено расположение телефонных станций. Кроме того известна структура ситуационных трасс (см. рис. 5.2.1), по которым возможна прокладка кабеля. Каждый участок ситуационных трасс характеризуется расстоянием (одно деление сетки улиц составляет 4 км). Требуется найти оптимальную кольцевую структуру трасс, соединяющих все станции.

Математическая постановка задачи. Задан граф G =(X, U), где X множество вершин, в которых заканчиваются ситуационные трассы; U - множество ребер, соответствующих участкам ситуационных трасс.

Х Х - подмножество вершин, в которых расположены телефонные станции. Lij длина участка трассы uij. Требуется найти цикл С в графе G, проходящий по всем вершинам множества Х и имеющий минимальную длину: .

Рис 5.2.1 Структура ситуационных трасс

Анализ алгоритмов

Рассмотрим задачу, когда Х = Х. В этом случае требуется построить кольцо, проходящее по всем вершинам, то есть, предполагаем, что во всех вершинах расположены станции. Эта задача известна в теории графов как «Задача коммивояжера». Она принадлежит классу NP - трудных задач, для которых не существует точных эффективных алгоритмов. Поэтому задачу решают приближенными, эвристическими алгоритмами с вычислением нижней и верхней оценок решения.

В случае Х Х наша задача еще более усложняется. Опишем метод, с помощью которого она может быть сведена к «Задаче коммивояжера».

Построение аппроксимирующего графа

Шаг 1. Вычислить по алгоритму Дейкстры кратчайшие пути между всеми парами вершин из множества Х. Алгоритм реализуется следующим образом:

- выбираем вершину (РАТС) и находим вершины, смежные с ней. Присваиваем каждой найденной вершине пару чисел, состоящую из номера корневой (выбранной) и длины соответствующего ребра. Для остальных вершин графа сопоставляют пару (0, );

- из множества неотмеченных вершин найдем вершину с минимальным весом, включаем ее в дерево кратчайших путей и отмечаем ее. Далее уже для вновь отмеченной вершины находим смежные с ней. Найденной вершине (смежной) присваиваем вес минимальный их двух возможных: либо уже существующий, либо вес, полученный из суммы длины ребра с весом предыдущей вершины; так необходимо повторять до тех пор, пока вершины не будут просмотрены и отмечены.

Шаг 2. Построить полный граф G = (X, U), у которого множество вершин совпадает с множеством вершин X. Множество ребер соединяет две пары вершин. Для каждого ребра uij положить его вес равным длине кратчайшего пути из Хi в Хj в исходном графе G, полученном на шаге 1.

Шаг 3. На полученном графе можно решать задачу коммивояжера, т. е. найти цикл минимального веса, проходящий по всем вершинам X.

Шаг 4. Получив структуру цикла в графе G, выделить кратчайшие пути в графе G, соответствующие ребрам полученного цикла.

Методы решения «Задачи коммивояжера».

Рассмотрим алгоритм получения верхней и нижней оценок для «Задачи Коммивояжера» (ЗК).

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

Верхняя оценка цикла в ЗК может быть получена с использованием стратегии «иди в ближайший». Опишем подробнее этот алгоритм.

Шаг 1. Выбрать исходную вершину и считать ее текущей вершиной строящегося нового цикла.

Шаг 2. Найти ближайшую вершину к текущей вершине относительно длины ребра и сделать ее текущей. Увеличить вес цикла на длину ребра.

Шаг 3. Если не все вершины включены в цикл, то шаг 2 повторяется. Если в цикл включены все вершины графа, то запомнить суммарный вес ребер, включенных в цикл. Если вес полученного цикла меньше предыдущего решения, считать его наилучшим.

Шаг 4. Если не все вершины графа просмотрены как исходные вершины циклов, то перейти на шаг 1, иначе цикл, имеющий минимальный вес является верхней оценкой для ЗК.

Шаг 5. Полученное кольцо минимальной длины вложить в структуру ситуационных трасс первичной сети. При этом ветви кольца не должны содержать элементы структуры ситуационных трасс более одного раза.

Используя данные задания на выполнение расчетно-графического задания и изложенную методику, необходимо определить длину оптимального кольца по структуре ситуационных трасс города.

Вычислим по алгоритму Дейкстры кратчайшие пути между всеми парами АТС.

Рисунок 5.2.2 - Кратчайшие пути от РАТС 1 и РАТС 2

Рисунок 5.2.3 - Кратчайшие пути от РАТС 3 и РАТС 4

Рисунок 5.2.4 - Кратчайшие пути от АМТС

Таблица 5.2.1. Длина кратчайших путей

РАТС 1

РАТС 2

РАТС 3

РАТС 4

АМТС

РАТС 1

-

12

12

12

16

РАТС 2

12

-

8

8

12

РАТС 3

12

8

-

8

4

РАТС 4

4

8

8

-

12

АМТС

16

12

4

12

-

Используя выбранные кратчайшие пути, построим граф и решим для него «Задачу Коммивояжера».

Рис 5.2.5 Решение «задачи коммивояжера»

Длина оптимального цикла равна 48 км.

Нанесем полученное кольцо на сетку улиц города (рисунок 5.2.1) в соответствии с выбранными кратчайшими путями (рисунок 5.2.2 - 5.2.4) получим рисунок 5.2.6.

Рис 5.2.6 Схема ситуационных трасс

Делись добром ;)