Визуализация графов, весна 2014: Визуализация деревьев
TRANSCRIPT
Визуализация графовComputer Science клуб, март 2014
Александр Дайняк, ФИВТ МФТИ
www.dainiak.com
Правила укладки корневых деревьев
• Отсутствие скрещиваний рёбер (planar)
• Прямолинейность (straight-line)
• Строгая вертикальная монотонность (strictly upward) —𝑦-координаты вершин строго больше чем у их потомков
• Сильное соблюдение порядка потомков (strongly order-preserving):𝑥левого ребёнка ≤ 𝑥вершины ≤ 𝑥правого ребёнка
Деревья с площадью Ω 𝑛 log 𝑛
h-v-укладка и её смещение
Склейка h-v-дерева из поддеревьев
Задача: минимизация площади
𝑥левого ребёнка < 𝑥вершины < 𝑥правого ребёнка
Площадь в общем случае может быть Ω 𝑛2
𝑥левого ребёнка ≤ 𝑥вершины ≤ 𝑥правого ребёнка
Задача: минимизация площади
T. M. Chan ’2002. Достаточно площади 𝑂 𝑛 ⋅ log 𝑛 ⋅ 2 2 log 𝑛 .
A. Garg, A. Rusu ’2003. Площадь Θ 𝑛 log 𝑛 .
Обе теоремы используют path-based approach.
Жадный путь 𝑣0, 𝑣1, …
Полагаем 𝑇0 ≔ 𝑇 (исходное дерево).
Пусть 𝑣𝑖 , 𝐿𝑖 , 𝑅𝑖 — корень и левое/правое поддеревья 𝑇𝑖.
Тогда 𝑇𝑖+1 ≔ максимальное из 𝐿𝑖 , 𝑅𝑖.
Поддеревья пути — это поддеревья,корни которых суть сёстры вершин пути.
Выбор хорошего «направляющего пути»
Пусть 𝑚 — параметр (выберем позже).
Пусть 𝑣𝑘 — сама нижняя из вершин жадного пути, для которой 𝑇𝑘 ≥ 𝑛 −𝑚.
Пусть 𝑣𝑘 — левый потомок 𝑣𝑘−1.
𝜋′ — часть жадного пути до 𝑣𝑘.
𝜋′′ — самый левый путь в дереве от 𝑣𝑘 до листа.
Получение рекуррентной оценки
Пусть уже построены поддеревья для всех
вершин из пути 𝜋′ ∪ 𝜋′′.
Пусть 𝛼 и 𝛽 — самые широкие укладки для
левых и правых поддеревьев для вершин 𝜋′.
Пусть 𝛾 — самая широкая укладка для вершин
из 𝜋′′.
Имеем
𝑊 𝑇 ≤ max 𝑊 𝛼 +𝑊 𝛽 + 2, 1 +𝑊 𝛾 .
Т.к. 𝛼 ≤ 𝑚, 𝛽 ≤ 𝑚 и 𝛾 ≤ 𝑛 −𝑚, то
𝑊 𝑛 ≤ max 2 ⋅ 𝑊 𝑚 + 2, 1 +𝑊 𝑛 −𝑚 .
𝛾
𝛼
𝛽
≥ 𝑛 −𝑚 вершин
Избавление от max
Получили неравенство 𝑊 𝑛 ≤ max 2 ⋅ 𝑊 𝑚 + 2, 1 +𝑊 𝑛 −𝑚 .
Рекурсивно применяя это неравенство, получим𝑊 𝑛 ≤ 1 + 1 +⋯+ 1
𝑘 раз
+𝑊 𝑛 − 𝑘𝑚 ,
где 𝑘 наибольшее такое, что 𝑊 𝑛 − 𝑘𝑚 ≥ 2 ⋅ 𝑊 𝑚 + 1.
Тогда 𝑊 𝑛 ≤ 𝑘 + 2 ⋅ 𝑊 𝑚 + 2 ≤ 2 ⋅ 𝑊 𝑚 + 𝑂 𝑛 𝑚 .
Немного матана…
Получается, что для любых 𝑛 и 𝑚, где 𝑚 ≤ 𝑛, выполнено𝑊 𝑛 ≤ 2 ⋅ 𝑊 𝑚 + 𝑂 𝑛 𝑚
Обозначим 𝑓 𝑥 ≔ 𝑊 2 log 𝑥 2 2 .
Положив 𝑚 ≔ 2 log 𝑥 2 2−log 𝑥, получаем
𝑓 𝑥 ≤ 2 ⋅ 𝑊 2 log 𝑥 2 2−log 𝑥 + 𝑂 𝑥 ≤ 2 ⋅ 𝑊 2 log 𝑥−1 2 2 + 𝑂 𝑥 =
= 2 ⋅ 𝑓 𝑥 2 + 𝑂 𝑥 .
Завершение доказательства
Обозначив 𝑓 𝑥 ≔ 𝑊 2 log 𝑥 2 2 , получили
𝑓 𝑥 ≤ 2 ⋅ 𝑓 𝑥 2 + 𝑂 𝑥 .
Отсюда 𝑓 𝑥 = 𝑂 𝑥 log 𝑥 .
Обозначив 𝑥 ≔ 2 2 log 𝑛, получаем
𝑊 𝑛 = 𝑂 2 2 log 𝑛 ⋅ log 𝑛 .
Общая площадь укладки не больше, чем
𝑊 𝑛 ⋅ 𝑛 = 𝑂 𝑛 ⋅ log 𝑛 ⋅ 2 2 log 𝑛 .