Расстояния в графе
• Расстояние между парой вершин 𝑢, 𝑣 — это длина кратчайшей цепи, соединяющей эти вершины. Обозначение: 𝑑 𝑢, 𝑣
• Диаметр графа — это максимальное из расстояний между парами вершин. Обозначение:
diam 𝐺 = max𝑢,𝑣
𝑑 𝑢, 𝑣
• Диаметральная цепь — это цепь, соединяющая пару вершин, расстояние между которыми равно диаметру
𝑢
𝑣
𝑑 𝐺 = 𝑑 𝑢, 𝑣 = 3
Расстояния в графе
• Эксцентриситет вершины 𝑣 — это величинаmax𝑢
𝑑 𝑢, 𝑣
• Центр графа — это вершина, имеющая минимальный эксцентриситет (центров у графа может быть много)
• Радиус графа — это эксцентриситет центраОбозначение: 𝑟 𝐺
• Для любого связного графа 𝐺 выполнено:𝑟 𝐺 ≤ diam 𝐺 ≤ 2 ⋅ 𝑟 𝐺
Расстояния в деревьях
• В дереве любой конец диаметральной цепи является листом
• В дереве ровно один центр, если диаметр дерева кратен 2, и ровно два центра иначе. Причём, если центра два, то они соседи.
• В любом дереве 𝑇
𝑟 𝑇 =1
2⋅ diam 𝑇
Расстояния в деревьях
• Докажем, что в дереве один или два центра.
• Пусть дано произвольное 𝑇.
• «Обстрижём» 𝑇: удалим из 𝑇 все листья.
• Получим новое дерево 𝑇′, в котором центры останутся теми же, что и в 𝑇
Расстояния в деревьях
• Прямая задача о расстояниях: в заданном графе найти расстояние между некоторыми/всеми парами вершин.
• Обратная задача: по заданным расстояниям попытаться восстановить граф.
Расстояния в деревьях
Обратная задача о расстояниях в деревьях актуальна, например, при построении деревьев классификации
Расстояния в деревьях
Расстояния между вершинами могут быть заданы матрицей расстояний:
𝐷 =𝑑11 ⋯ 𝑑1𝑛⋮ ⋱ ⋮
𝑑𝑛1 ⋯ 𝑑𝑛𝑛
В матрице расстояний 𝑑𝑖𝑗 ≔ 𝑑 𝑣𝑖 , 𝑣𝑗 .
В общем случае расстояния могут быть заданы необязательно для всех пар вершин.
Расстояния в деревьях
Вопросы:
• При каких условиях на матрицу 𝐷 существует реализующее её дерево?
• Если дерево существует, является ли оно единственным?
• Как это дерево построить?
Расстояния в деревьях
Рассмотрим необходимые условия существования дерева:
1. Для любых 𝑖, 𝑗 выполнены соотношения𝑑𝑖𝑖 = 0, 𝑑𝑖𝑗 = 𝑑𝑗𝑖 > 0
Расстояния в деревьях
2. Для любых 𝑖, 𝑗, 𝑘 величина 𝑑𝑖𝑗 + 𝑑𝑗𝑘 − 𝑑𝑖𝑘 является чётным числом.
𝑣𝑗𝑣𝑖
𝑣𝑘
Расстояния в деревьях
3. Для любых 𝑖, 𝑗, 𝑘, 𝑙 из чисел 𝑑𝑖𝑗 + 𝑑𝑘𝑙, 𝑑𝑖𝑘 + 𝑑𝑗𝑙, 𝑑𝑖𝑙 + 𝑑𝑗𝑘 два числа равны между собой и не меньше третьего.
𝑣𝑗𝑣𝑖
𝑣𝑘 𝑣𝑙
𝑣𝑗𝑣𝑖
𝑣𝑘 𝑣𝑙
𝑣𝑗𝑣𝑖
𝑣𝑘 𝑣𝑙
𝑑𝑖𝑘 + 𝑑𝑗𝑙 = 𝑑𝑖𝑙 + 𝑑𝑗𝑘 >
> 𝑑𝑖𝑗 + 𝑑𝑘𝑙
𝑑𝑖𝑗 + 𝑑𝑘𝑙 = 𝑑𝑖𝑙 + 𝑑𝑗𝑘 >
> 𝑑𝑖𝑘 + 𝑑𝑗𝑙
𝑑𝑖𝑘 + 𝑑𝑗𝑙 = 𝑑𝑖𝑙 + 𝑑𝑗𝑘 =
= 𝑑𝑖𝑗 + 𝑑𝑘𝑙
Расстояния в деревьях
Теорема. Следующие три условия являются необходимыми и достаточными для существования дерева:
1. Для любых 𝑖, 𝑗 выполнены соотношения 𝑑𝑖𝑖 = 0, 𝑑𝑖𝑗 = 𝑑𝑗𝑖 > 0
2. Для любых 𝑖, 𝑗, 𝑘 величина 𝑑𝑖𝑗 + 𝑑𝑗𝑘 − 𝑑𝑖𝑘 является чётным неотрицательным числом
3. Для любых 𝑖, 𝑗, 𝑘, 𝑙 из чисел 𝑑𝑖𝑗 + 𝑑𝑘𝑙, 𝑑𝑖𝑘 + 𝑑𝑗𝑙, 𝑑𝑖𝑙 + 𝑑𝑗𝑘два числа равны между собой и не меньше третьего
При этом если в 𝐷 учтены все листья, то такое дерево будет единственным.
Расстояния в деревьях
План доказательства достаточности:
• Индукция по размеру матрицы
• По матрице 𝐷 строим некоторую матрицу 𝐷′ меньшей размерности
• Доказываем, что если для 𝐷 выполнены условия 1—3, то они выполнены и для 𝐷′
• Указываем способ построения по дереву 𝑇′, соответствующего матрице 𝐷′, дерева 𝑇, соответствующего матрице 𝐷
Расстояния в деревьях
Идея перехода к новой матрице:
Допустим, у нас уже есть дерево 𝑇, соответствующее матрице 𝐷, и все листья дерева участвуют в 𝐷.
Дерево 𝑇 можно «сильно остричь», удалив не листья, а сразу целые «висячие цепочки». Висячая цепочка — от листа дерева до вершины степени 3 или первой нелистовой вершины, участвующей в 𝐷.
Расстояния в деревьях
Надо понять, как меняются длины путей при переходе к «сильно обстриженному» дереву, и куда переходят вершины, по которым строилась исходная матрица 𝐷.
Для этого надо понять, как по матрице 𝐷 определить длины цепочек, которыми висячие вершины присоединены к дереву.
1
2
3
4 5
6
7
1
2,3
4,5
6,7
Расстояния в деревьях
Вспомним про величины 𝑑𝑖𝑗 + 𝑑𝑗𝑘 − 𝑑𝑖𝑘.
Длина цепочки, которой 𝑣𝑗 присоединяется к дереву, равна 1
2⋅ min𝑝,𝑞≠𝑗
𝑑𝑝𝑗 + 𝑑𝑗𝑞 − 𝑑𝑝𝑞
(Для невисячих вершин длина такой цепочки принимается равной нулю)
1
2
3
4 5
6
7
1
2,3
4,5
6,7
Расстояния в деревьях
Обозначим 𝑐𝑗 ≔1
2⋅ min𝑝,𝑞≠𝑗
𝑑𝑝𝑗 + 𝑑𝑗𝑞 − 𝑑𝑝𝑞
Если мы обстригаем одну из цепочек, оканчивающуюся на листе 𝑗, при этом переводя 𝑗 в другой конец этой цепочки, то расстояния от 𝑗𝑛𝑒𝑤 до остальных вершин сократятся на длину цепочки:
𝑑𝑖𝑗𝑛𝑒𝑤 = 𝑑𝑖𝑗
𝑜𝑙𝑑 − 𝑐𝑗
1
2
3
4 5
6
7
1𝑛𝑒𝑤
2
3
4 5
6
7
Расстояния в деревьях
Обозначим 𝑐𝑗 ≔1
2⋅ min𝑝,𝑞≠𝑗
𝑑𝑝𝑗 + 𝑑𝑗𝑞 − 𝑑𝑝𝑞
Если мы «сильно обстригаем» дерево, смещая листьясоответствующим образом, то расстояния в новом дереве вычисляются по формулам 𝑑𝑖𝑗
𝑛𝑒𝑤 = 𝑑𝑖𝑗𝑜𝑙𝑑 − 𝑐𝑖 − 𝑐𝑗
1
2
3
4 5
6
7
1
2,3
4,5
6,7
Расстояния в деревьях
Обратно, если у нас есть дерево 𝑇′, реализующее матрицу 𝐷𝑛𝑒𝑤, то дерево, реализующее матрицу 𝐷, можно построить, присоединив к соответствующим вершинам дерева 𝑇′, цепочки длины 𝑐𝑖
1
2
3
4 5
6
7
1
2,3
4,5
6,7
Расстояния в деревьях
Всё, сказанное до сих пор — идея доказательства. Для формального обоснования и индукции сделаем следующее:
• Рассмотрим матрицу 𝐷′ = 𝑑𝑖𝑗′ , в которой 𝑑𝑖𝑗
′ ≔ 𝑑𝑖𝑗 − 𝑐𝑖 − 𝑐𝑗при 𝑖 ≠ 𝑗, и 𝑑𝑖𝑖
′ ≔ 0
• Докажем, что если исходный набор чисел 𝑑𝑖𝑗 удовлетворяет условиям 1—3, то и набор чисел вида 𝑑𝑖𝑗
′ тоже удовлетворяет этим условиям, кроме условия положительности всех 𝑑𝑖𝑗
′ при 𝑖 ≠ 𝑗
• Докажем, что в матрице 𝐷′ есть совпадающие строки/столбцы, так что можно, отождествив их, получить матрицу 𝐷′ меньшей размерности, в которой уже все недиагональные элементы положительны
Расстояния в деревьях
Проверяем выполнение условия 3 для 𝑑𝑖𝑗′ :
𝑑𝑖𝑗′ + 𝑑𝑘𝑙
′ = 𝑑𝑖𝑗 − 𝑐𝑖 − 𝑐𝑗 + 𝑑𝑘𝑙 − 𝑐𝑘 − 𝑐𝑙 =
= 𝑑𝑖𝑗 + 𝑑𝑘𝑙 − 𝑐𝑖 + 𝑐𝑗 + 𝑐𝑘 + 𝑐𝑙
Аналогично𝑑𝑖𝑘′ + 𝑑𝑗𝑙
′ = 𝑑𝑖𝑘 + 𝑑𝑗𝑙 − 𝑐𝑖 + 𝑐𝑗 + 𝑐𝑘 + 𝑐𝑙
и𝑑𝑖𝑙′ + 𝑑𝑗𝑘
′ = 𝑑𝑖𝑙 + 𝑑𝑗𝑘 − 𝑐𝑖 + 𝑐𝑗 + 𝑐𝑘 + 𝑐𝑙 .
Отсюда следует, что и для 𝑑𝑖𝑗′ условие 3 выполняется, раз оно
выполнено для 𝑑𝑖𝑗.
Расстояния в деревьях
Проверяем выполнение условия 2 для 𝑑𝑖𝑗′ :
𝑑𝑖𝑗′ + 𝑑𝑗𝑘
′ − 𝑑𝑖𝑘′ = 𝑑𝑖𝑗 − 𝑐𝑖 − 𝑐𝑗 + 𝑑𝑗𝑘 − 𝑐𝑗 − 𝑐𝑘 −
−𝑑𝑖𝑘 + 𝑐𝑖 + 𝑐𝑘 = 𝑑𝑖𝑗 + 𝑑𝑗𝑘 − 𝑑𝑖𝑘 − 2𝑐𝑗 == 𝑑𝑖𝑗 + 𝑑𝑗𝑘 − 𝑑𝑖𝑘 − min
𝑝,𝑞≠𝑗𝑑𝑝𝑗 + 𝑑𝑗𝑞 − 𝑑𝑝𝑞 ≥ 0
Очевидно также, что числа 𝑑𝑖𝑗′ + 𝑑𝑗𝑘
′ − 𝑑𝑖𝑘′ чётны, так что условие
2 выполняется.
Расстояния в деревьях
Проверяем неотрицательность 𝑑𝑖𝑗′ :
𝑑𝑖𝑗′ = 𝑑𝑖𝑗 − 𝑐𝑖 − 𝑐𝑗 =
= 𝑑𝑖𝑗 −12min𝑝,𝑞≠𝑖
𝑑𝑝𝑖 + 𝑑𝑖𝑞 − 𝑑𝑝𝑞 − 12min𝑟,𝑠≠𝑗
𝑑𝑟𝑗 + 𝑑𝑗𝑠 − 𝑑𝑟𝑠 ≥
≥ 𝑑𝑖𝑗 −12 𝑑𝑗𝑖 + 𝑑𝑖𝑘 − 𝑑𝑗𝑘 − 1
2 𝑑𝑖𝑗 + 𝑑𝑗𝑘 − 𝑑𝑖𝑘 = 0
Расстояния в деревьях
Теперь покажем, что если 𝑑𝑖𝑗′ = 0, то для любого 𝑘 выполнено
𝑑𝑖𝑘′ = 𝑑𝑗𝑘
′ .
Это означает, что если в 𝐷′ есть нулевой недиагональный элемент, то соответствующие строки и столбцы совпадают, а значит в 𝐷′ уже не будет нулевых недиагональных элементов.
Расстояния в деревьях
Пусть 𝑑𝑖𝑗′ = 0. Тогда и 𝑑𝑗𝑖
′ = 0.
Для любого 𝑘 имеем 𝑑𝑖𝑗′ + 𝑑𝑗𝑘
′ − 𝑑𝑖𝑘′ ≥ 0 ⇒ 𝑑𝑗𝑘
′ ≥ 𝑑𝑖𝑘′
Аналогично𝑑𝑗𝑖′ + 𝑑𝑖𝑘
′ − 𝑑𝑗𝑘′ ≥ 0 ⇒ 𝑑𝑖𝑘
′ ≥ 𝑑𝑗𝑘′
Отсюда 𝑑𝑖𝑘′ = 𝑑𝑗𝑘
′ .
Расстояния в деревьях
Осталось доказать теперь, что найдутся 𝑖 ≠ 𝑗, такие, что 𝑑𝑖𝑗′ = 0.
Это будет означать, что у матрицы 𝐷′ размерность меньше, чем у 𝐷, а значит можно будет провести индукцию по размерности матрицы.
Расстояния в деревьях
Лемма. Для любых 𝑖 ≠ 𝑗 найдётся 𝑘 ∉ 𝑖, 𝑗 , такое, что
𝑐𝑗 =1
2𝑑𝑖𝑗 + 𝑑𝑗𝑘 − 𝑑𝑖𝑘 .
Доказательство.
По определению 𝑐𝑗, существуют 𝑘, 𝑙, для которых 2𝑐𝑗 = 𝑑𝑙𝑗 + 𝑑𝑗𝑘 −𝑑𝑙𝑘.
Так как 𝑐𝑗 =1
2min𝑝,𝑞≠𝑗
𝑑𝑝𝑗 + 𝑑𝑗𝑞 − 𝑑𝑝𝑞 , то 2𝑐𝑗 ≤ 𝑑𝑙𝑗 + 𝑑𝑗𝑖 − 𝑑𝑙𝑖,
отсюда𝑑𝑙𝑗 + 𝑑𝑗𝑘 − 𝑑𝑙𝑘 ≤ 𝑑𝑙𝑗 + 𝑑𝑗𝑖 − 𝑑𝑙𝑖
Расстояния в деревьях
Итак,𝑑𝑙𝑗 + 𝑑𝑗𝑘 − 𝑑𝑙𝑘 ≤ 𝑑𝑙𝑗 + 𝑑𝑗𝑖 − 𝑑𝑙𝑖 ,
поэтому 𝑑𝑗𝑘 + 𝑑𝑙𝑖 ≤ 𝑑𝑗𝑖 + 𝑑𝑙𝑘. Отсюда и из условия 3 получаем𝑑𝑗𝑖 + 𝑑𝑙𝑘 = 𝑑𝑗𝑙 + 𝑑𝑖𝑘.
Имеем 2𝑐𝑗 = 𝑑𝑙𝑗 + 𝑑𝑗𝑘 − 𝑑𝑙𝑘 = 𝑑𝑗𝑘 + 𝑑𝑙𝑗 − 𝑑𝑙𝑘 == 𝑑𝑗𝑘 + 𝑑𝑗𝑖 − 𝑑𝑖𝑘 = 𝑑𝑖𝑗 + 𝑑𝑗𝑘 − 𝑑𝑖𝑘 ,
что и требовалось.
Расстояния в деревьях
Теперь доказываем, что найдутся 𝑖 ≠ 𝑗, такие, что 𝑑𝑖𝑗′ = 0.
Возьмём произвольные 𝑖 ≠ 𝑗1. По лемме, найдётся 𝑗2 ≠ 𝑗1, такой, что 𝑐𝑗1 =
1
2𝑑𝑖𝑗1 + 𝑑𝑗1𝑗2 − 𝑑𝑖𝑗2
Аналогично, найдётся 𝑗3 ≠ 𝑗2, для которого𝑐𝑗2 =
12 𝑑𝑖𝑗2 + 𝑑𝑗2𝑗3 − 𝑑𝑖𝑗3
И так далее. Получаем последовательность 𝑗𝑚 .
Пусть 𝑗𝛼 = 𝑗𝛽 — первое повторение в этой последовательности(𝛽 ≥ 𝛼 + 2).
Расстояния в деревьях
Пусть 𝑗𝛼 = 𝑗𝛽, 𝛼 < 𝛽. Преобразуем ∑𝑐𝑗𝑚:
2 ⋅
𝑚=𝛼
𝛽−1
𝑐𝑗𝑚 =
𝑚=𝛼
𝛽−1
𝑑𝑖𝑗𝑚 + 𝑑𝑗𝑚𝑗𝑚+1− 𝑑𝑖𝑗𝑚+1
=
=
𝑚=𝛼
𝛽−1
𝑑𝑖𝑗𝑚 − 𝑑𝑖𝑗𝑚+1+
𝑚=𝛼
𝛽−1
𝑑𝑗𝑚𝑗𝑚+1=
= 𝑑𝑖𝑗𝛼 − 𝑑𝑖𝑗 𝛽−1 +1+
𝑚=𝛼
𝛽−1
𝑑𝑗𝑚𝑗𝑚+1=
𝑚=𝛼
𝛽−1
𝑑𝑗𝑚𝑗𝑚+1
Расстояния в деревьях
Ещё немного преобразований:
0 =
𝑚=𝛼
𝛽−1
𝑑𝑗𝑚𝑗𝑚+1− 2 ⋅
𝑚=𝛼
𝛽−1
𝑐𝑗𝑚 =
=
𝑚=𝛼
𝛽−1
𝑑𝑗𝑚𝑗𝑚+1−
𝑚=𝛼
𝛽−1
𝑐𝑗𝑚 −
𝑚=𝛼
𝛽−1
𝑐𝑗𝑚+1− 𝑐𝑗𝛼 + 𝑐𝑗𝛽 =
=
𝑚=𝛼
𝛽−1
𝑑𝑗𝑚𝑗𝑚+1− 𝑐𝑗𝑚 − 𝑐𝑗𝑚+1
=
𝑚=𝛼
𝛽−1
𝑑𝑗𝑚𝑗𝑚+1
′
Расстояния в деревьях
В итоге получаем:
𝑚=𝛼
𝛽−1
𝑑𝑗𝑚𝑗𝑚+1
′ = 0
Отсюда 𝑑𝑗𝑚𝑗𝑚+1
′ = 0 при всех 𝛼 ≤ 𝑚 < 𝛽.
Таким образом, в матрице 𝐷′ есть ненулевой недиагональный элемент (например, 𝑑𝑗𝛼𝑗𝛼+1).
Значит, размерность матрицы 𝐷′ строго меньше размерности 𝐷′, а значит, и размерности 𝐷.
Расстояния в деревьях
• Размерность матрицы 𝐷′ строго меньше размерности 𝐷′, а значит и размерности 𝐷.
• Условия 1—3 для 𝐷′ выполнены.
• Следовательно, можно доказать теорему индукцией по размерности матрицы.
• Базис индукции: 𝐷 ∈ ℝ1×1 или 𝐷 ∈ ℝ2×2. В случае 𝐷 ∈ ℝ1×1, дерево 𝑇 — одна вершина. В случае 𝐷 ∈ ℝ2×2 в качестве 𝑇 берётся цепь длины 𝑑12, концы этой цепи и будут вершинами, соответствующимистрокам/столбцам 𝐷.
Расстояния в деревьях
Индуктивный переход:
• Пусть дана 𝐷, и для матриц меньших размерностей соответствующие деревья существуют.
• Строим по 𝐷 матрицу 𝐷′, как описано ранее. При этом некоторые строки/столбцы 𝐷′ соответствуют группам строк/столбцов 𝐷.Для 𝐷′, по предположению, есть дерево 𝑇′.
Расстояния в деревьях
Индуктивный переход:
• Строим дерево 𝑇 для исходной матрицы 𝐷.Пусть группе строк 𝑗1, … , 𝑗𝑠 матрицы 𝐷 соответствует строка 𝑗матрицы 𝐷′, а этой строке соответствует вершина 𝑣𝑗 дерева 𝑇′. Тогда в дереве 𝑇 к вершине 𝑣𝑗 протягиваем цепочки длин 𝑐𝑗1 , … , 𝑐𝑗𝑠 , а концы этих цепочек объявляем вершинами 𝑣𝑗1 , … , 𝑣𝑗𝑠 .
1
2
3
4 5
6
7
1
2,3
4,5
6,7
Recommended