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

1.Анализ структуры системы на основе топологических описаний (теории графов). Выявление циклов и цепей. Алгоритмы поиска цепей. Построение остового дерева. Построение наименьшего остового дерева.

Анализ структуры системы на основе  топологических описаний (теории графов). Выявление циклов и цепей. Алгоритмы поиска цепей. Построение остового дерева. Построение наименьшего остового дерева.

Граф – это множество элементов V с заданным на них множеством бинарных отношений U.

 

U – это множество отношений, поэтому одинаковых отношений в нем быть не может.

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

Вершины

Множество элементов,  на которых задан граф, обычно называется множеством вершин графа.

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

В зависимости от ориентированности отношений графы делятся на ориентированные и неориентированные.

Ребро называется инцендентным вершине и вершина называется инцендентной ребру, если ребро заканчивается на этой вершине.

Вершины называются смежными, если они связаны одним ребром. Ребра называются смежными, если они инцендентны одной вершине.

Степенью вершины называется количество ребер инцендентных с ней.

 

Для ориентированных графов для вершин существуют понятия «полустепень захода» и «полустепень исхода».

Полустепень захода – количество дуг входящих в вершину.

Полустепень исхода – количество дуг исходящих из вершины.

 Вершиной стоком в ориентированном графе называется вершина, у которой полустепень исхода равна нулю, а полустепень захода не равна нулю.

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

 

Особые типы графов.

1.     Нуль граф – это граф, который не содержит дуг.

Полный граф – это граф, который содержит все возможные дуги.

Полный ориентированный граф содержит в два раза больше дуг, чем полный неориентированный.

 

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

 

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

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

Дано:

G <V, U> - взвешенный неориентированный граф.

D (N, N) – взвешенная матрица смежности для заданного графа.

А лгоритмы построения наименьшего остового дерева.

 

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

   Взять любую вершину графа, и поместить ее в остовое дерево, т.е. принять в качестве вершины Vk. Вычеркнуть вершину Vk из вершин графа.

 

 Пересчитать расстояния от вершин графа до остового дерева, т.е. значения элементов матрицы R по схеме.

 

Если расстояние до остового дерева для какой либо вершины Vj больше чем вес дуги между данной вершиной и вершиной Vk , т.е. вершиной включенной в остовое дерево, то в качестве значения расстояния до остового дерева от этой вершины принимается данный вес дуги между вершиной Vj и Vk.

В качестве вершины остового дерева у которой найдено расстояние, т.е. вершины остового дерева ближайшей вершины Vk – принимается вершина Vk.

В качестве вершины Vk, т.е. вершины включенной в остовое дерево принимается вершина с наименьшим значением матрицы R, т.е. вершины ближайшей к остовому дереву. Вершина Vk вычеркивается из множества вершин.

 Если не все вершины графа вычеркнуты, то переход к этапу 2.

Найденная ближайшая вершина включается в остовое дерево и удаляется из оставшихся вершин графа.

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

Из этих двух значений выбирается минимальное.

Задача построения наименьшего остового дерева решается как в качестве отдельной задачи анализа структуры системы так и в качестве промежуточной вспомогательной задачи при решении задачи поиска кратчайшего пути обхода всех вершин графа (задача коммивояжера).

В качестве начальных значений заносится ∞, элементы матрицы соответствуют вершинам графа.

Задача поиска цепи на невзвешенных графах.

Дано:  - невзвешенный граф

            N1 – начальная вершина цепи

            N2 – конечная вершина цепи.

Найти: цепь, соединяющую вершины N1 и N2.

 

Существует два алгоритма решения данной задачи:

·        Поиск в глубину

·        Поиск в ширину

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

 

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

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

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]