Визуализация графов, весна 2014: Тестирование графов на...

53
Визуализация графов Computer Science клуб, март 2014 Александр Дайняк, ФИВТ МФТИ www.dainiak.com

Upload: cs-center

Post on 13-Apr-2017

263 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Визуализация графов, весна 2014: Тестирование графов на планарность

Визуализация графовComputer Science клуб, март 2014

Александр Дайняк, ФИВТ МФТИ

www.dainiak.com

Page 2: Визуализация графов, весна 2014: Тестирование графов на планарность

DFS-дерево и обратные рёбра

При поиске в глубину рёбра графа разбиваются на два типа:

• рёбра DFS-дерева (в «новые» вершины),

• обратные рёбра (в пройденные вершины).

Page 3: Визуализация графов, весна 2014: Тестирование графов на планарность

DFS-дерево и обратные рёбра

При поиске в глубину рёбра графа разбиваются на два типа:

• рёбра DFS-дерева (в «новые» вершины),

• обратные рёбра (в пройденные вершины).

Page 4: Визуализация графов, весна 2014: Тестирование графов на планарность

DFS-дерево и обратные рёбра

При поиске в глубину рёбра графа разбиваются на два типа:

• рёбра DFS-дерева (в «новые» вершины),

• обратные рёбра (в пройденные вершины).

Page 5: Визуализация графов, весна 2014: Тестирование графов на планарность

DFS-дерево и обратные рёбра

При поиске в глубину рёбра графа разбиваются на два типа:

• рёбра DFS-дерева (в «новые» вершины),

• обратные рёбра (в пройденные вершины).

Page 6: Визуализация графов, весна 2014: Тестирование графов на планарность

DFS-дерево и обратные рёбра

При поиске в глубину рёбра графа разбиваются на два типа:

• рёбра DFS-дерева (в «новые» вершины),

• обратные рёбра (в пройденные вершины).

Page 7: Визуализация графов, весна 2014: Тестирование графов на планарность

DFS-дерево и обратные рёбра

При поиске в глубину рёбра графа разбиваются на два типа:

• рёбра DFS-дерева (в «новые» вершины),

• обратные рёбра (в пройденные вершины).

Page 8: Визуализация графов, весна 2014: Тестирование графов на планарность

DFS-дерево и обратные рёбра

При поиске в глубину рёбра графа разбиваются на два типа:

• рёбра DFS-дерева (в «новые» вершины),

• обратные рёбра (в пройденные вершины).

Page 9: Визуализация графов, весна 2014: Тестирование графов на планарность

DFS-дерево и обратные рёбра

При поиске в глубину рёбра графа разбиваются на два типа:

• рёбра DFS-дерева (в «новые» вершины),

• обратные рёбра (в пройденные вершины).

Page 10: Визуализация графов, весна 2014: Тестирование графов на планарность

DFS-дерево и обратные рёбра

При поиске в глубину рёбра графа разбиваются на два типа:

• рёбра DFS-дерева (в «новые» вершины),

• обратные рёбра (в пройденные вершины).

Page 11: Визуализация графов, весна 2014: Тестирование графов на планарность

DFS-дерево и обратные рёбра

При поиске в глубину рёбра графа разбиваются на два типа:

• рёбра DFS-дерева (в «новые» вершины),

• обратные рёбра (в пройденные вершины).

Page 12: Визуализация графов, весна 2014: Тестирование графов на планарность

DFS-дерево и обратные рёбра

При поиске в глубину рёбра графа разбиваются на два типа:

• рёбра DFS-дерева (в «новые» вершины),

• обратные рёбра (в пройденные вершины).

Page 13: Визуализация графов, весна 2014: Тестирование графов на планарность

DFS-дерево и обратные рёбра

При поиске в глубину рёбра графа разбиваются на два типа:

• рёбра DFS-дерева (в «новые» вершины),

• обратные рёбра (в пройденные вершины).

Page 14: Визуализация графов, весна 2014: Тестирование графов на планарность

DFS-дерево и обратные рёбра

При поиске в глубину рёбра графа разбиваются на два типа:

• рёбра DFS-дерева (в «новые» вершины),

• обратные рёбра (в пройденные вершины).

Page 15: Визуализация графов, весна 2014: Тестирование графов на планарность

Фундаментальные циклы

Каждое обратное ребро вместе с путём по DFS-дереву образует фундаментальный цикл.

Page 16: Визуализация графов, весна 2014: Тестирование графов на планарность

Фундаментальные циклы

Каждое обратное ребро вместе с путём по DFS-дереву образует фундаментальный цикл.

Page 17: Визуализация графов, весна 2014: Тестирование графов на планарность

Фундаментальные циклы

Любая пара фундаментальных циклов либо не имеют общих рёбер, либо их пересечение — путь в DFS-дереве.

(Иначе противоречие с отсутствием циклов в дереве.)

Page 18: Визуализация графов, весна 2014: Тестирование графов на планарность

Фундаментальные циклы

Если DFS произвести в плоском графе, то каждый фундаментальный цикл будет сориентирован

• по часовой стрелке («вправо»)

Page 19: Визуализация графов, весна 2014: Тестирование графов на планарность

Фундаментальные циклы

Если DFS произвести в плоском графе, то каждый фундаментальный цикл будет сориентирован

• по часовой стрелке («вправо»)

• либо против часовой стрелки («влево»)

Page 20: Визуализация графов, весна 2014: Тестирование графов на планарность

Фундаментальные циклы и стороны рёбер

Если DFS произвести в плоском графе, то каждый фундаментальный цикл будет сориентирован

• по часовой стрелке («вправо»)

• либо против часовой стрелки («влево»)

Тогда каждому обратному ребру тоже можно приписать одну из сторон левая, правая .

Page 21: Визуализация графов, весна 2014: Тестирование графов на планарность

Точки возврата и нижние точки

Точки возврата ребра 𝑒 — это вершины дерева, в которые попадают обратные рёбра, лежащие на циклах, содержащих 𝑒.

𝑒

Page 22: Визуализация графов, весна 2014: Тестирование графов на планарность

Точки возврата и нижние точки

Точки возврата ребра 𝑒 — это вершины, в которые попадают обратные рёбра, лежащие на циклах, содержащих 𝑒.

Самая нижняя (ближайшая к корню дерева) точка возврата ребра 𝑒называется нижней точкой 𝑒 и обозначается ℓ 𝑒 .

𝑒

ℓ 𝑒

Page 23: Визуализация графов, весна 2014: Тестирование графов на планарность

Развилки фундаментальных циклов

Развилка двух циклов, пересекающихся по рёбрам, — это тройка рёбер

• последнее общее ребро,

• и следующие за ним два ребра, относящиеся к различным циклам.

Page 24: Визуализация графов, весна 2014: Тестирование графов на планарность

Фундаментальные циклы в укладке планарного графа• Два цикла, имеющие общие рёбра,

ориентированы одинаково т. и т.т., когда один цикл лежит внутри другого.

Page 25: Визуализация графов, весна 2014: Тестирование графов на планарность

Фундаментальные циклы в укладке планарного графа• Два цикла, имеющие общие рёбра,

ориентированы одинаково т. и т.т., когда один цикл лежит внутри другого.

Page 26: Визуализация графов, весна 2014: Тестирование графов на планарность

Фундаментальные циклы в укладке планарного графа• Два цикла, имеющие общие рёбра,

ориентированы одинаково т. и т.т., когда один цикл лежит внутри другого.

• Если циклы вложены друг в друга, то порядок вложения зависит от порядка, в котором на дереве расположены нижние точки обратных рёбер.

Page 27: Визуализация графов, весна 2014: Тестирование графов на планарность

Основное свойство сторон рёбер в планарном графеДля произвольной развилки 𝑒, 𝑒1, 𝑒2 в графе

• все обратные рёбра, заканчивающиеся строго выше ℓ 𝑒1 , у которых циклы содержат 𝑒 и 𝑒2, имеют одну сторону… 𝑒1 𝑒2

𝑒

ℓ 𝑒1

Page 28: Визуализация графов, весна 2014: Тестирование графов на планарность

Основное свойство сторон рёбер в планарном графеДля произвольной развилки 𝑒, 𝑒1, 𝑒2 в графе

• все обратные рёбра, заканчивающиеся строго выше ℓ 𝑒1 , у которых циклы содержат 𝑒 и 𝑒2, имеют одну сторону,

• а обратные рёбра, заканчивающиеся строго выше ℓ 𝑒2 , у которых циклы содержат 𝑒 и 𝑒1, имеют другую сторону.

𝑒1 𝑒2

ℓ 𝑒1

𝑒

ℓ 𝑒2

Page 29: Визуализация графов, весна 2014: Тестирование графов на планарность

ЛП-разбиение

На множестве обратных рёбер графа задано ЛП-разбиение на «левые» и «правые» рёбра, если для каждой развилки 𝑒, 𝑒1, 𝑒2• все обратные рёбра, заканчивающиеся строго выше ℓ 𝑒1 ,

у которых циклы содержат 𝑒 и 𝑒2, имеют одну сторону,

• а обратные рёбра, заканчивающиеся строго выше ℓ 𝑒2 , у которых циклы содержат 𝑒 и 𝑒1, имеют другую сторону.

У любого планарного графа есть ЛП-разбиение: доказали выше.

Оказывается, если есть ЛП-разбиение, то граф планарен.

Page 30: Визуализация графов, весна 2014: Тестирование графов на планарность

ЛП-разбиение

На множестве обратных рёбер графа задано ЛП-разбиение на «левые» и «правые» рёбра, если для каждой развилки 𝑒, 𝑒1, 𝑒2• все обратные рёбра, заканчивающиеся строго выше ℓ 𝑒1 ,

у которых циклы содержат 𝑒 и 𝑒2, имеют одну сторону,

• а обратные рёбра, заканчивающиеся строго выше ℓ 𝑒2 , у которых циклы содержат 𝑒 и 𝑒1, имеют другую сторону.

Таким образом, в ЛП-разбиении на пары обратных рёбер накладываются ограничения «равносторонности» и «разносторонности».

Page 31: Визуализация графов, весна 2014: Тестирование графов на планарность

Приведённое ЛП-разбиение

ЛП-разбиение приведённое, если для любого ребра 𝑒все обратные рёбра, ведущие в ℓ 𝑒 , относятся к одной стороне.

𝑒

ℓ 𝑒

Page 32: Визуализация графов, весна 2014: Тестирование графов на планарность

Приведённое ЛП-разбиение

ЛП-разбиение приведённое, если для любого ребра 𝑒все обратные рёбра, ведущие в ℓ 𝑒 , циклы которых содержат 𝑒, относятся к одной стороне.

𝑒

ℓ 𝑒

Page 33: Визуализация графов, весна 2014: Тестирование графов на планарность

Приведённое ЛП-разбиение

ЛП-разбиение приведённое, если для любого ребра 𝑒все обратные рёбра, ведущие в ℓ 𝑒 , циклы которых содержат 𝑒, относятся к одной стороне.

Утверждение. Любое ЛП-разбиение можно преобразовать к приведённому виду.

Доказательство. Пусть 𝑏1, 𝑏2 — обратные рёбра, ведущие в ℓ 𝑒 .

𝑒

ℓ 𝑒

𝑏1 𝑏2

Page 34: Визуализация графов, весна 2014: Тестирование графов на планарность

Приведённое ЛП-разбиение

ЛП-разбиение приведённое, если для любого ребра 𝑒все обратные рёбра, ведущие в ℓ 𝑒 , циклы которых содержат 𝑒, относятся к одной стороне.

Утверждение. Любое ЛП-разбиение можно преобразовать к приведённому виду.

Доказательство. Пусть 𝑏1, 𝑏2 — обратные рёбра, ведущие в ℓ 𝑒 .

Если 𝑏1 и 𝑏2 не участвуют ни в каких ограничениях, то доказывать нечего.

𝑒

ℓ 𝑒

𝑏1 𝑏2

Page 35: Визуализация графов, весна 2014: Тестирование графов на планарность

Приведённое ЛП-разбиение

ЛП-разбиение приведённое, если для любого ребра 𝑒все обратные рёбра, ведущие в ℓ 𝑒 , циклы которых содержат 𝑒, относятся к одной стороне.

Утверждение. Любое ЛП-разбиение можно преобразовать к приведённому виду.

Доказательство. Пусть 𝑏1, 𝑏2 — обратные рёбра, ведущие в ℓ 𝑒 . Если, скажем, 𝑏2 вовлечено в ограничение, то это ограничение соответствует ребру 𝑒′, лежащему ниже 𝑒.

𝑒

ℓ 𝑒

𝑏2

𝑒′

Page 36: Визуализация графов, весна 2014: Тестирование графов на планарность

Приведённое ЛП-разбиение

ЛП-разбиение приведённое, если для любого ребра 𝑒все обратные рёбра, ведущие в ℓ 𝑒 , циклы которых содержат 𝑒, относятся к одной стороне.

Утверждение. Любое ЛП-разбиение можно преобразовать к приведённому виду.

Доказательство. Пусть 𝑏1, 𝑏2 — обратные рёбра, ведущие в ℓ 𝑒 . Если, скажем, 𝑏2 вовлечено в ограничение, то это ограничение соответствует ребру 𝑒′, лежащему ниже 𝑒.

Тогда 𝑏1 тоже вовлечено в это ограничение…

𝑒

ℓ 𝑒

𝑏1 𝑏2

𝑒′

Page 37: Визуализация графов, весна 2014: Тестирование графов на планарность

Приведённое ЛП-разбиение

ЛП-разбиение приведённое, если для любого ребра 𝑒все обратные рёбра, ведущие в ℓ 𝑒 , циклы которых содержат 𝑒, относятся к одной стороне.

Утверждение. Любое ЛП-разбиение можно преобразовать к приведённому виду.

Доказательство. Пусть 𝑏1, 𝑏2 — обратные рёбра, ведущие в ℓ 𝑒 . Если, скажем, 𝑏2 вовлечено в ограничение, то это ограничение соответствует ребру 𝑒′, лежащему ниже 𝑒.

Тогда 𝑏1 тоже вовлечено в это ограничение, и тогда 𝑏1 и 𝑏2 обязаны быть односторонними.

𝑒

ℓ 𝑒

𝑏1 𝑏2

𝑒′

Page 38: Визуализация графов, весна 2014: Тестирование графов на планарность

Продолжение ЛП-разбиения на рёбра дерева

Присвоим сторону не только обратным рёбрам, но и рёбрам дерева:

• сторона ребра дерева 𝑒 равна стороне обратного ребра, цикл которого содержит 𝑒и конец которого выше всего.

Page 39: Визуализация графов, весна 2014: Тестирование графов на планарность

Продолжение ЛП-разбиения на рёбра дерева

Присвоим сторону не только обратным рёбрам, но и рёбрам дерева:

• сторона ребра дерева 𝑒 равна стороне обратного ребра, цикл которого содержит 𝑒и конец которого выше всего,

• в случае ничьи сторона выбирается произвольно.

Page 40: Визуализация графов, весна 2014: Тестирование графов на планарность

Как по ЛП-разбиению строить укладку

Укладка = упорядочение рёбер в каждой вершине графа.

Два правых ребра в вершине упорядочиваем так:

• 𝑒′ ≺ 𝑒′′, если ℓ 𝑒′ ниже ℓ 𝑒′′ в дереве,𝑒′ 𝑒′′

Page 41: Визуализация графов, весна 2014: Тестирование графов на планарность

Как по ЛП-разбиению строить укладку

Укладка = упорядочение рёбер в каждой вершине графа.

Два правых ребра в вершине упорядочиваем так:

• 𝑒′ ≺ 𝑒′′, если ℓ 𝑒′ ниже ℓ 𝑒′′ в дереве,

• либо если ℓ 𝑒′ = ℓ 𝑒′′ , но у 𝑒′′ есть ещё другие обратные рёбра, ведущие выше ℓ 𝑒′′

— в этом случае 𝑒′′ называется хордальным.

Левые рёбра упорядочиваем наоборот.

𝑒′ 𝑒′′

Page 42: Визуализация графов, весна 2014: Тестирование графов на планарность

Как по ЛП-разбиению строить укладку

Полный порядок в вершине устроен так:

• сначала входящее ребро

• затем левые исходящие рёбра, окружённые своими левыми и правыми обратными рёбрами

• затем правые исходящие рёбра, окружённые своими левыми и правыми обратными рёбрами

Page 43: Визуализация графов, весна 2014: Тестирование графов на планарность

Конфликт двух правых рёбер

Если рёбра ведут в одну и ту же вершину, то противоречие с

ЛП-упорядочением правых входящих рёбер в вершине 𝑣.

𝑢1

𝑢2

𝑣

𝑒1 𝑒2

Page 44: Визуализация графов, весна 2014: Тестирование графов на планарность

Конфликт двух правых рёбер

Пусть у пересекающихся рёбер концы разные.

Пусть 𝑒1, 𝑒2 — развилка их циклов.

По свойству ЛП-разбиения, все обратные рёбра, относящиеся к 𝑒1и заканчивающиеся выше 𝑣2, являются правыми.

𝑢1

𝑢2

𝑣1

𝑒1 𝑒2

𝑣2

Page 45: Визуализация графов, весна 2014: Тестирование графов на планарность

Конфликт двух правых рёбер

Пусть у пересекающихся рёбер концы разные.

Пусть 𝑒1, 𝑒2 — развилка их циклов.

По свойству ЛП-разбиения, все обратные рёбра, относящиеся к 𝑒1и заканчивающиеся выше 𝑣2, являются правыми.

Значит, 𝑒1 само правое.

𝑢1

𝑢2

𝑣1

𝑒1 𝑒2

𝑣2

Page 46: Визуализация графов, весна 2014: Тестирование графов на планарность

Конфликт двух правых рёбер

Пусть у пересекающихся рёбер концы разные.

Пусть 𝑒1, 𝑒2 — развилка их циклов.

По свойству ЛП-разбиения, все обратные рёбра, относящиеся к 𝑒1и заканчивающиеся выше 𝑣2, являются правыми.

Значит, 𝑒1 само правое. Т.к. 𝑒2 идёт после 𝑒1, то и 𝑒2 правое.

𝑢1

𝑢2

𝑣1

𝑒1 𝑒2

𝑣2

Page 47: Визуализация графов, весна 2014: Тестирование графов на планарность

Конфликт двух правых рёбер

Пусть у пересекающихся рёбер концы разные.

Пусть 𝑒1, 𝑒2 — развилка их циклов.

По свойству ЛП-разбиения, все обратные рёбра, относящиеся к 𝑒1и заканчивающиеся выше 𝑣2, являются правыми.

Значит, 𝑒1 само правое. Т.к. 𝑒2 идёт после 𝑒1, то и 𝑒2 правое.

У нас 𝑒1 ≺ 𝑒2, поэтому

• либо ℓ 𝑒1 ниже ℓ 𝑒2 , но тогда 𝑢1𝑣1 и 𝑢2𝑣2 не могут быть оба правыми,

𝑢1

𝑢2

𝑣1

𝑒1 𝑒2

𝑣2

ℓ 𝑒1

ℓ 𝑒2

Page 48: Визуализация графов, весна 2014: Тестирование графов на планарность

Конфликт двух правых рёбер

Пусть у пересекающихся рёбер концы разные.

Пусть 𝑒1, 𝑒2 — развилка их циклов.

По свойству ЛП-разбиения, все обратные рёбра, относящиеся к 𝑒1и заканчивающиеся выше 𝑣2, являются правыми.

Значит, 𝑒1 само правое. Т.к. 𝑒2 идёт после 𝑒1, то и 𝑒2 правое.

У нас 𝑒1 ≺ 𝑒2, поэтому

• либо ℓ 𝑒1 ниже ℓ 𝑒2 , но тогда 𝑢1𝑣1 и 𝑢2𝑣2 не могут быть оба правыми,

• либо ℓ 𝑒1 = ℓ 𝑒2 и 𝑒2 хордально. Если ℓ 𝑒1 = ℓ 𝑒2 ниже 𝑣2, то противоречие аналогично предыдущему пункту.

𝑢1

𝑢2

𝑣1

𝑒1 𝑒2

𝑣2

ℓ 𝑒1 = ℓ 𝑒2

Page 49: Визуализация графов, весна 2014: Тестирование графов на планарность

Конфликт двух правых рёбер

Пусть у пересекающихся рёбер концы разные.

Пусть 𝑒1, 𝑒2 — развилка их циклов.

По свойству ЛП-разбиения, все обратные рёбра, относящиеся к 𝑒1и заканчивающиеся выше 𝑣2, являются правыми.

Значит, 𝑒1 само правое. Т.к. 𝑒2 идёт после 𝑒1, то и 𝑒2 правое.

У нас 𝑒1 ≺ 𝑒2, поэтому

• либо ℓ 𝑒1 ниже ℓ 𝑒2 , но тогда 𝑢1𝑣1 и 𝑢2𝑣2 не могут быть оба правыми,

• либо ℓ 𝑒1 = ℓ 𝑒2 и 𝑒2 хордально (𝑒′ — соотв. обратное ребро). Пусть ℓ 𝑒1 = ℓ 𝑒2 = 𝑣2. Тогда 𝑒′ правое, но тогда 𝑢1𝑣1 должно было быть левым по определению ЛП-разбиения.

𝑢1

𝑢2

𝑣1

𝑒1 𝑒2

𝑣2 = ℓ 𝑒1 = ℓ 𝑒2

𝑒′

Page 50: Визуализация графов, весна 2014: Тестирование графов на планарность

Конфликт разносторонних рёбер

Если конфликтующие ребра ведут в одну вершину 𝑣, то если 𝑣 = ℓ 𝑒1 = ℓ 𝑒2 , получаем противоречие с приведённостью ЛП-разбиения.

𝑢2

𝑒1 𝑒2

𝑢1

𝑒

𝑣

Page 51: Визуализация графов, весна 2014: Тестирование графов на планарность

Конфликт разносторонних рёбер

Пусть, например, ℓ 𝑒2 ниже 𝑣.

Тогда должны быть односторонними все обратные рёбра, оканчивающиеся не ниже 𝑣, циклы которых содержат 𝑒1. То есть 𝑒1 правое.

𝑢2

𝑒1 𝑒2

𝑢1

𝑣

Page 52: Визуализация графов, весна 2014: Тестирование графов на планарность

Конфликт разносторонних рёбер

Пусть, например, ℓ 𝑒2 ниже 𝑣.

Тогда должны быть односторонними все обратные рёбра, оканчивающиеся не ниже 𝑣, циклы которых содержат 𝑒1. То есть 𝑒1 правое.

Значит, 𝑒2 тоже правое.

𝑢2

𝑒1 𝑒2

𝑢1

𝑣

Page 53: Визуализация графов, весна 2014: Тестирование графов на планарность

Конфликт разносторонних рёбер

Пусть, например, ℓ 𝑒2 ниже 𝑣.

Тогда должны быть односторонними все обратные рёбра, оканчивающиеся не ниже 𝑣, циклы которых содержат 𝑒1. То есть 𝑒1 правое.

𝑒2 тоже правое. Тогда должно быть правое обратное ребро 𝑒′, цикл которого содержит 𝑒2 и которое оканчивается выше 𝑣.

Односторонность 𝑢1𝑣 и 𝑒′ противоречит определению ЛП-разбиения.

𝑢2

𝑒1 𝑒2

𝑢1

𝑣

𝑒′