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

Маршрут, в котором все рёбра различны, называется цепью. Цепь, также как и маршрут, может быть задана последовательностью вершин. Пусть задана последовательность вершин и требуется определить, является ли она цепью в заданном графе. Для этого будем использовать множество E' (в исходном состоянии оно пустое) рёбер. Последовательно перебирая пары соседних вершин в заданной последовательности, проверяем условие, являются ли эти вершины смежными и принадлежит ли ребро, образованное этими вершинами множеству E, и, если вершины смежны и ребро, образованное ими, не принадлежит множеству E, то ребро включаем в множество E и переходим к следующей паре вершин. Если же на некотором шаге обнаруживаем, что вершины не смежны или ребро, образованное ими, принадлежит множеству E, то заданная последовательность вершин не является цепью в заданном графе.

Получить все цепи W длины l в графе G, начинающиеся вершиной v можно, используя метод поиска с возвращением. Сначала на первое место цепи W поставим вершину v. Множество рёбер E', включенных в цепь, пусто. Затем, начиная со второго элемента, последовательно формируем элементы цепи. Формирование i-го элемента цепи опишем рекурсивным алгоритмом 4.2, блок-схема которого представлена на рис.4.12. В цикле перебираются вершины, смежные вершине, стоящей на i-1-м месте в цепи W и не образующие с ней ребро, принадлежащее множеству E, т.е. элементы множества Г(Wi-1)-{y|{Wi-1,y}E’}, которые можно поставить на i-е место. Если заполнено последнее, l+1-е место, то цепь получена и выводим её, иначе заполняем следующее i+1-е место по алгоритму 4.2 с учётом последнего включённого в цепь ребра.

Алгоритм 4.2 получения всех цепей W длины l в графе G, начинающихся вершиной v.

Вход: i – заполняемое место в цепи W;

E – множество рёбер, включенных в цепь.

Выход: последовательность всех цепей W в графе G, начинающихся вершиной v.

Глобальные параметры: W – формируемая цепь;

l – длина цепи.

Маршрут, в котором все вершины (а значит, и рёбра) различны, называется простой цепью. Пусть задана последовательность вершин и требуется определить, является ли она простой цепью в заданном графе. Для этого будем использовать множество V' вершин (в исходном состоянии оно содержит только первую вершину заданной последовательности). Последовательно перебирая пары соседних вершин в заданной последовательности, проверяем условие, являются ли эти вершины смежными и принадлежит ли вторая вершина пары множеству V, и, если вершины смежны и вторая вершина пары не принадлежит множеству V, то вторую вершина пары включаем в множество V и переходим к следующей паре вершин. Если же на некотором шаге обнаруживаем,

Цепи(i,E’)

x Г(Wi-1)-{y|{Wi-1,y}E’}

Wi := x

+

i=l+1

Цепи(i+1, E’ {Wi-1,x})

W

Конец

Рис.4.12. Рекурсивный алгоритм получения всех цепей W длины l в графе G, начинающихся вершиной v

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

Получить все простые цепи W длины l в графе G, начинающиеся вершиной v можно, используя метод поиска с возвращением. Сначала на первое место цепи W поставим вершину v и запомним её в множестве V’. Затем, начиная со второго элемента, последовательно формируем элементы цепи. Формирование i-го элемента цепи опишем рекурсивным алгоритмом 4.3, блок-схема которого представлена на рис.4.13. В цикле перебираются вершины, смежные вершине, стоящей на i-1-м месте в цепи W за исключением тех, которые уже включены в цепь, т.е. элементы множества Г(Wi-1)-V, которые можно поставить на i-е место. Если заполнено последнее, l+1-е место, то простая цепь длины l получена и выводим её, иначе заполняем следующее i+1-е место по алгоритму 4.3 с учётом последней включённой в цепь вершины.

Алгоритм 4.3 получения всех простых цепей W длины l в графе G, начинающихся вершиной v.

Вход: i – заполняемое место в цепи W;

V – множество вершин, включенных в цепь.

Выход: последовательность всех простых цепей W длины l в графе G, начинающихся вершиной v.

Глобальные параметры: W – формируемая простая цепь;

l – длина цепи.

Цепи(i,V’)

Wi := x

xГ(Wi-1)-V’

i=l+1

+

W

Цепи(i+1, V’{x})

Конец

Рис.4.13. Рекурсивный алгоритм получения всех простых цепей W длины l в графе G, начинающихся вершиной v

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

Получить все максимальные простые цепи W в графе G, начинающиеся вершиной v можно, используя метод поиска с возвращением. Сначала на первое место цепи W поставим вершину v и запомним её в множестве V’. Затем, начиная со второго элемента, последовательно формируем элементы цепи. Формирование i-го элемента цепи опишем рекурсивным алгоритмом 4.4, блок-схема которого представлена на

рис.4.14. В цикле перебираются вершины, смежные вершине, стоящей на i-1-м месте в цепи W за исключением тех, которые уже включены в цепь, т.е. элементы множества Г(Wi-1)-V, которые можно поставить на i-е место. Если все вершины, смежные вершине, установленной на i-е место уже находятся в цепи, то максимальная простая цепь получена и выводим её, иначе заполняем следующее i+1-е место по алгоритму 4.4 с учётом последней включённой в цепь вершины.

Алгоритм 4.4 получения всех максимальных простых цепей W в графе G, начинающихся вершиной v.

Вход: i – заполняемое место в цепи W;

V – множество вершин, включенных в цепь.

Выход: последовательность всех максимальных простых цепей W в графе G, начинающихся вершиной v.

Глобальные параметры: W – формируемая максимальная простая цепь, начинающаяся вершиной v.

Цепи(i,V’)

Wi := x

xГ(Wi-1)-V’

Г(x)V’

+

W

Цепи(i+1, V’{x})

Конец

Рис.4.14. Рекурсивный алгоритм получения всех максимальных простых

цепей W в графе G, начинающихся вершиной v