Upgrade to Pro — share decks privately, control downloads, hide ads and more …

САКОД – 2 курс весна 2021 – 6.1 занятие

САКОД – 2 курс весна 2021 – 6.1 занятие

ТиМПИ

March 30, 2021
Tweet

More Decks by ТиМПИ

Other Decks in Programming

Transcript

  1. 2/15 2/15 • Две вершины u и v называются связанными,

    если в графе G существует путь из u в v (обозначение: u➝v)*. • Компонента связности — часть подграфа (графа) являющаяся связной. Связный граф * Здесь и далее https://neerc.ifmo.ru/
  2. 3/15 3/15 Связность = отношение эквивалентности • Рефлексивность ∀a ∈

    Va➝a • Симметричность a➝b ⇒ b➝a • Транзитивность a➝b ∧ b➝c ⇒ a➝c
  3. 4/15 4/15 • Очень легко — BFS и DFS Как

    найти компоненты связности?
  4. 5/15 5/15 • Точка сочленения — вершина графа, при удаления

    которой и всех её инцидентных ребер в графе увеличивается количество компонент связности. • Двусвязный граф — граф, который не содержит точек сочленения. • Всякий максимальный двусвязный подграф графа — двусвязная компонента Двусвязные компоненты
  5. 7/15 7/15 Двусвязные компоненты. Теорема Пусть D — остовное дерево

    неориентированного связного графа G, построенный методом поиска в глубину от вершины r. Вершина v является точкой сочленения графа G тогда и только тогда, когда: • либо v=r и r имеет по крайней мере двух сыновей в дереве D, • либо v не равно r и у вершины v существует в дереве D такой сын w, что ни w, ни какой-либо из его потомков в дереве D не связаны ребром ни с одним предком вершины v в D.
  6. 8/15 8/15 Ориентированные граф • В общем случае для ориентированного

    графа существование пути — не симметричное отношение, поэтому вместо понятия связности различают понятие слабой и сильной связности. • Отношение R(v,u) называется отношением слабой связности, если вершины u и v связаны в неориентированном графе G′, полученном из графа G удалением ориентации с рёбер.
  7. 9/15 9/15 Сильная связность • Отношение R(v,u)=v➝u∧u➝v на вершинах графа

    называется отношением сильной связности • Пусть G=(V,E) — ориентированный граф. Компонентой сильной связности называется класс эквивалентности множества вершин этого графа относительно сильной связности.
  8. 10/15 10/15 • Компоненты сильной связности в графе G можно

    найти с помощью поиска в глубину в 3 этапа: 1. Построить граф H с обратными (инвертированными) рёбрами 2. Выполнить в H поиск в глубину и найти f[u] — время окончания обработки вершины u 3. Выполнить поиск в глубину в G, перебирая вершины во внешнем цикле в порядке убывания f[u] • Полученные на 3-ем этапе деревья поиска в глубину будут являться компонентами сильной связности графа G. • Так как компоненты сильной связности G и H графа совпадают, то первый поиск в глубину для нахождения f[u] можно выполнить на графе G, а второй — на H. Поиск компонента сильной связности
  9. 11/15 11/15 Поиск компонента сильной связности. Задание • Для графа

    представленного на слайде найти компоненту сильной связности
  10. 12/15 12/15 Викторина 1. Что такое двусвязные компоненты? (дайте определение)

    2. В чем разница между слабой и сильной связностью в орграфе? 3. Могут ли быть компоненты слабой и сильной связности одновременно в одном графе? 4. Как Вы думаете зачем это всё?