- •Переключательные функции Основные понятия и определения
- •Переключательные функции одного и двух аргументов
- •1.2.1.Переключательные функции одного аргумента.
- •1.3. Представление переключательной функции в виде многочленов.
- •1.4. Пять классов переключательных функций. Теорема о функциональной полноте
- •1.5. Функционально полные системы логических функций.
- •Импликантная матрица
- •1. Основные понятия и определения теории графов
- •2. Типы графов
- •3. Матрицы графов
- •4.Операции на графах
- •Пересечение графов
- •Композиция графов
- •5. Связные графы. Компонента связности
- •6. Деревья и их свойства
- •Алгоритм построения минимального каркаса
- •Обоснование алгоритма
- •7. Эйлеровы цепи и циклы
- •Алгоритм построения эйлерова цикла
- •Обоснование алгоритма
- •8.Нахождение кратчайших путей в графе
- •Алгоритм Флойда
Алгоритм построения эйлерова цикла
Для начала отметим, что теорема 7.1 также дает метод построения эйлерова цикла. Здесь мы рассмотрим несколько иной алгоритм.
Пусть G(X,E) — связный неорентированный граф, не имеющий вершин нечетной степени. Назовем мостом такое ребро, удаление которого из связного графа разбивает этот граф на две компоненты связности, имеющие хотя бы по одному ребру.
1. Пустьa— произвольная вершина графаG. Возьмем любое реброe1=(a,x1) , инцидентное вершинеa, и положим= {e1}.
2. Рассмотрим подграфG1(X,E\1). Возьмем в качествеe2ребро, инцидентное вершинеx1и неинцидентное вершинеa, которое также не является мостом в подграфеG1(если такое реброe2существует!). Получим простую цепь2= {e1,e2}.
3.
Пустьe2 = (x1,x2),xa.
Рассмотрим подграфG2(X,E\2) и удалим
из него все изолированные вершины.
В полученном подграфе
выберем реброe3E\2,
инцидентное вершинеa,
которое не является мостом в подграфе
(если такое реброe3существует!). Получим простую цепь
3= {e1,e2,e3}.
Продолжая указанный процесс, мы через конечное число шагов получим эйлеров цикл = {e1,e2, …,en}, гдеn— число ребер графаG(X,E).
Обоснование алгоритма
Предположим,
что уже построена простая цепь k-1= {e1,e2,
…,ek-1}
дляk2
методом, указанным в алгоритме. Пустьek-1= (xk-2,xk-1) иxk-1a. Рассмотрим
подграф
,
который получается из подграфаGk-1(X,E\k-1)
удалением всех изолированных вершин.
Вершинаxk-1в этом
подграфе
имеет нечетную степень, поэтому
существует по крайней мере одно реброekE\k-1,
инцидентноеxk-1.
Если это ребро единственное, то оно не
является мостом в графе
.
В противном случае вершинаaбудет связана с некоторой вершиной
единственной цепью, содержащей реброek,
что противоречит существованию
эйлерова цикла в графеG.
Посколькуek- не мост, то процесс можно продолжать,
взяв
.
Если реброekне единственное инцидентное вершинеxk-1,
то среди этих ребер есть по крайней мере
одно, не являющееся мостом. В противном
случае один из этих мостов
можно выбросить так, что вершиныxk-1иaпопадут в разные
компоненты связности графа
.
Еслиxk-1принадлежит компонентеM,
то в этой компоненте все вершины
имеют четную степень, поэтому существует
эйлеров цикл вM,
проходящий черезxk-1.
Этот цикл содержит все ребра, инцидентныеxk-1и принадлежащие
,
являющиеся одновременно мостами.
Получено противоречие, так как ребра
из эйлерова цикла мостами быть не могут.
Итак, в рассмотренном случае существует
реброek,
инцидентное вершинеxk-1и не являющееся мостом. Значит, и в этом
случае процесс можно продолжать, взяв
.
Из предыдущего
следует, что процесс нельзя продолжать
тогда и только тогда, когда мы попадем
в вершину a, причем
степень вершиныaотносительно непройденных ребер равна
нулю. Докажем, что в этом случае
построенный цикл- простой цикл. Покажем, чтосодержит все ребра графаG.
Если не все ребра графаGпринадлежат, то не
принадлежащиеребра порождают компоненты связностиC1, …,Cm(m1)
в подграфе
.
Пусть компонентаCi, 1imсоединяется с цикломв вершинеyi.
Если существует реброe, такое, чтоe=(yi,a), то при построении
циклабыло нарушено
правило выбора ребраe,
что невозможно. Если часть цикла,
соединяющаяyiиa, состоит более чем
из одного ребра, то первое ребро этой
части
было мостом, и поэтому было нарушено
правило выбора
,
что невозможно. Итак, непройденных ребер
быть не может, поэтому- эйлеров цикл.
