Декомпозиция на значительно удаленные пары для графа единичных дисков
Ключевые слова и синонимы
Кластеризация
Постановка задачи
Нотация
Пусть дано конечное множество точек A в пространстве [math]\displaystyle{ \mathbb{R}^d }[/math]. Назовем его ограничивающим прямоугольником R(A) d-мерный гиперпрямоугольник [math]\displaystyle{ [a_1, b_1] \times [a_2, b_2 ] \times ... \times [a_d, b_d] \; }[/math], содержащий A и имеющий минимальную протяженность по каждому измерению.
Два множества точек A и B называются значительно удаленными относительно коэффициента удаленности s > 0, если существуют вещественное число r > 0 и две d-мерных сферы [math]\displaystyle{ C_A \; }[/math] и [math]\displaystyle{ C_B \; }[/math] радиуса r каждая, такие, что выполняются следующие соотношения.
1. [math]\displaystyle{ C_A \cap C_B = \empty }[/math]
2. [math]\displaystyle{ C_A \; }[/math] содержит ограничивающий прямоугольник R(A) множества A
3. [math]\displaystyle{ C_B \; }[/math] содержит ограничивающий прямоугольник R(B) множества B
4. [math]\displaystyle{ |C_A C_B| \ge s \cdot r }[/math].
Здесь |CACB| обозначает наименьшее евклидово расстояние между двумя точками в [math]\displaystyle{ C_A \; }[/math] и [math]\displaystyle{ C_B \; }[/math], соответственно. Пример приведен на рис. 1. Пусть даны ограничивающие прямоугольники R(A)и R(B). Для проверки, являются ли множества A и B значительно удаленными относительно s, требуется всего O(d) времени.
Две точки одного и того же множества, A или B, находятся друг от друга на евклидовом расстоянии, не более чем в 2/s превышающем возможное расстояние между любой парой точек [math]\displaystyle{ (a, b) \in A \times B \; }[/math]. Кроме того, разница расстояний между любыми такими парами (a, b), (a', b'), а именно |a – b|, |a' – b'| не может превышать 1 + 4/s.
Пусть дано множество S из n точек в пространстве [math]\displaystyle{ \mathbb{R}^d }[/math]. Декомпозицией S на значительно удаленные пары относительно коэффициента удаленности s является последовательность пар [math]\displaystyle{ (A_1, B_1), (A_2, B_2), ..., (A_m, B_m) \; }[/math], такая, что
1. [math]\displaystyle{ A_i, B_i \subset S \; }[/math] для i = 1, ..., m
2. [math]\displaystyle{ A_i \; }[/math] и [math]\displaystyle{ B_i \; }[/math] являются значительно удаленными относительно s для i = l, ..., m
3. Для любых точек [math]\displaystyle{ a, b \in S, a \ne b \; }[/math], существует уникальный индекс i в интервале 1, ..., m, такой, что имеет место либо a 2 Ai и b 2 Bi, либо b 2 Ai и a 2 Bi.
Очевидно, что любое множество [math]\displaystyle{ S = \{ s_1, ..., s_n \} \; }[/math] содержит декомпозицию на значительно удаленные пары. Достаточно просто рассмотреть любые пары одноэлементных множеств [math]\displaystyle{ ( \{ s_i \}, \{ s_j \}) \; }[/math], где i < j. Вопрос заключается в том, существуют ли декомпозиции, состоящие из менее чем [math]\displaystyle{ O(n^2) \; }[/math] пар, и возможно ли их эффективно построить.
Основные результаты
Следующий результат представили Кэллахан и Косарайю [1, 2].
Теорема 1. Пусть дано множество S из n точек в пространстве [math]\displaystyle{ \mathbb{R}^d }[/math] и коэффициент удаленности s, такой, что существует декомпозиция S на значительно удаленные пары относительно s, состоящая из [math]\displaystyle{ O(s^d d^{d/2} n) \; }[/math] пар вида [math]\displaystyle{ (A_i, B_i) \; }[/math]. Она может быть построена за время [math]\displaystyle{ O(d \; n \; log \; n + s^d d^{d/2+1} n) }[/math].
Таким образом, если размерность d и коэффициент удаленности s фиксированы – что имеет место во многих случаях применения – то количество пар составляет O(n), а время вычисления декомпозиции – O(n log n).
Основным инструментом построения декомпозиции на значительно удаленные пары является split tree расщепляемое дерево T(S) множества S. Корень r дерева T(S) содержит ограничивающий прямоугольник R(S) для S. Две его вершины-потомка получаются посредством разделения посередине по наибольшему измерению R(S) при помощи ортогональной гиперплоскости. Она разделяет S на два подмножества Sa, Sb, ограничивающие прямоугольники которых R(Sa) и R(Sb) хранятся в двух вершинах-потомках a и b корня r. Процесс повторяется до тех пор, пока в каждом подмножестве не останется только одна точка S. Эти одноэлементные множества образуют листья дерева T(S). Очевидно, что расщепляемое дерево T(S) содержит O(n) вершин. Оно не обязательно должно быть сбалансированным и может быть построено за время O(dn log n).
Декомпозицию S на значительно удаленные пары относительно заданного коэффициента удаленности s теперь можно получить из T(S) следующим образом. Для каждой внутренней вершины T(S) с потомками v и w вызывается следующая рекурсивная процедура FindPairs(v, w). Если Sv и Sw являются значительно удаленными, то процедура выдает результат (Sv, Sw). В противном случае можно предположить, что наибольшее измерение R(Sv) превышает по длине наибольшее измерение R(Sw), и что vl, vr являются вершинами-потомками v в дереве T(S). Затем вызываются процедуры FindPairs(vl, w) и FindPairs(vr, w).
Декомпозиция на значительно удаленные пары для графа единичных дисков, рис. 1
Множества A и B являются значительно удаленными относительно s
Общее количество вызовов процедуры ограничено количеством найденных значительно удаленных пар, которое, согласно соображению об упаковке, составляет O(sd dd/2 n). Однако совокупный размер всех множеств Ai, Bi в декомпозиции в общем случае является квадратичным относительно n.