Евклідове мінімальне кістякове дерево

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
ЕМКД 25 випадкових точок на площині

Евклі́дове мініма́льне кістяко́ве де́рево (ЕМКД; англ. Euclidean minimum spanning tree, EMST) — це мінімальне кістякове дерево набору з n точок на площині (або загальніше, ), де вага ребра між будь-якою парою точок є евклідовою відстанню між двома точками. Простими термінами ЕМКД пов'язує набір точок за допомогою відрізків так, що загальна довжина всіх відрізків мінімальна і будь-яку точку можна досягти з іншої точки за цими відрізками.

На площині ЕМКД для даного набору точок можна знайти за час з використанням простору при обчисленні моделі алгебричного дерева розв'язків. У сильніших моделях обчислення, які точніше моделюють можливості реальних комп'ютерів, відомі швидші ймовірнісні алгоритми зі складністю [1].

У вищих розмірностях () пошук оптимального алгоритму залишається відкритою проблемою.

Нижня межа[ред. | ред. код]

Асимптотичну нижню межу для часової складності задачі ЕМКД можна встановити в обмежених моделях обчислення, таких як алгебричне дерево розв'язків і моделі алгебричного дерева розв'язків, у яких алгоритм має доступ до вхідних точок тільки через певні обмежені примітиви, які здійснюють прості алгебричні обчислення над координатами. У цих моделях задача про пару найближчих точок потребує часу , але найближча пара обов'язково буде ребром ЕМКД, так що ЕМКД також вимагає такого часу[2]. Однак, якщо вхідні точки мають цілі координати і доступні бітові операції та індексація таблиці над координатами, то можливі швидші алгоритми[1].

Алгоритми обчислення ЕМКД на площині[ред. | ред. код]

Найпростіший алгоритм пошуку ЕМКД у двовимірному просторі, якщо дано n точок, полягає в побудові повного графа з n вершинами, який має n(n -1)/2 ребер, обчислення ваги кожного ребра, тобто, відстаней між кожною парою точок, а потім виконання стандартного алгоритму пошуку мінімального кістякового дерева (такого як версія алгоритму Прима або алгоритму Крускала) на цьому графі. Оскільки цей граф має Θ(n2) ребер для n різних точок, побудова графа вимагає часу Ω(n2). Розв'язання задачі вимагає також простору розміру для зберігання всіх ребер.

Для досконалішого підходу до пошуку ЕМКД на площині зауважимо, що воно є підграфом будь-якої тріангуляції Делоне n точок, що істотно скорочує кількість ребер:

  1. Будуємо тріангуляцію Делоне за час O(n log n) з використанням пам'яті O(n). Оскільки тріангуляція Делоне є планарним графом і число ребер у будь-якому планарному графі не більше ніж утричі перевищує число вершин, ця побудова утворює лише O(n) ребер.
  2. Помічаємо кожне ребро його довжиною.
  3. Запускаємо алгоритм пошуку мінімального кістякового дерева на цьому графі. Оскільки є O(n) ребер, цей алгоритм зажадає часу O(n log n), якщо використовувати будь-які стандартні алгоритми мінімального кістякового дерева, такі як алгоритм Борувки, алгоритм Прима або алгоритм Крускала.

Врешті-решт, алгоритм вимагає O(n log n) часу та обсяг O(n).

Якщо вхідні координати є цілими числами і можуть використовуватися як масив індексів, можливі швидші алгоритми — тріангуляцію Делоне можна побудувати за допомогою ймовірнісного алгоритму за час із математичним очікуванням [1]. Крім того, оскільки тріангуляція Делоне є планарним графом, її мінімальне кістякове дерево можна знайти за лінійний час за допомогою варіанта алгоритму Борувки, який видаляє всі, крім найдешевших, ребра між кожною парою компонент після кожного етапу алгоритму[3][4]. Отже, повний очікуваний час роботи цього алгоритму дорівнює [1].

Вищі розмірності[ред. | ред. код]

Задачу можна узагальнити на n точок d-вимірного простору ℝd. У вищих розмірностях зв'язність, визначена тріангуляцією Делоне (яка розбиває опуклу оболонку на d-вимірні симплекси) містить мінімальне кістякове дерево. Проте тріангуляція може містити повний граф[5]. Тому пошук евклідового мінімального кістякового дерева як кістякового дерева повного графа або як кістякового дерева тріангуляцій Делоне вимагатимуть часу . У тривимірному просторі можна знайти мінімальне кістякове дерево за час , а в будь-якому просторі більшої розмірності можна розв'язати задачу швидше, ніж межа з квадратичним часом для повного графа та алгоритмів тріангуляції Делоне[5]. Для рівномірно розподілених випадкових точок можна обчислити мінімальні кістяки з тією ж швидкістю, що й сортування[6]. Використовуючи цілком розділену декомпозицію пар[en] можна отримати -апроксимацію за час [7].

Піддерева тріангуляції Делоне[ред. | ред. код]

Всі ребра ЕМКД є ребрами графа відносних околів[8][9][10], які, у свою чергу, є ребрами графа Габріеля, які є ребрами в тріангуляції Делоне точок[11][12], що можна довести через контрапозитивний еквівалент твердження: будь-яке ребро, що не входить до тріангуляції Делоне, не міститься в жодному ЕМКД. Доведення ґрунтується на двох властивостях мінімальних кістяків і тріангуляції Делоне:

  1. (властивість циклів мінімальних кістякових дерев): Для будь-якого циклу C у графі, якщо вага ребра e графа C більша від ваги іншого ребра C, це ребро не може належати мінімальному кістяковому дереву.
  2. (властивість тріангуляцій Делоне): Якщо є цикл із двома вхідними точками на його межі, який не містить інших вхідних точок, відрізок між цими двома точками є ребром будь-якої тріангуляції Делоне.

Розглянемо ребро e між двома вхідними точками p і q, яке є ребром тріангуляції Делоне. Зі властивості 2 випливає, що цикл C з e як діаметром має містити всередині деяку іншу точку r. Але тоді r розташована ближче як до p, так і до q, ніж вони одна відносно одної, а тому ребро з p в q є найдовшим у циклі точок і, за властивістю 1, e не належить жодному ЕМКД.

Очікуваний розмір[ред. | ред. код]

Очікуваний розмір ЕМКД для великих наборів точок визначив Дж. Міхаель Стіл[13]. Якщо є густиною функції ймовірності для вибору точок, то для великих і розмір ЕМКД приблизно дорівнює

де  — стала, яка залежить тільки від розмірності . Точне значення сталої невідоме, але можна оцінити її емпірично.

Застосування[ред. | ред. код]

Очевидне застосування евклідових мінімальних кістякових дерев — пошук найдешевшої мережі проводів або труб для з'єднання набору місць за припущення, що ціна залежить тільки від довжини одиниці з'єднувального продукту. Однак, оскільки це дає абсолютну нижню межу на кількість необхідного продукту, більшість таких мереж надають перевагу k-реберно-зв'язному графу замість дерева, так що втрата будь-якого окремого зв'язку не розбиває мережу на частини.

Іншим застосуванням ЕМКД є апроксимувальний алгоритм зі сталим множником для наближеного розв'язання евклідової задачі комівояжера, версії задачі комівояжера на множині точок площини з ребрами, ціни яких дорівнюють їх довжині. Цей реалістичний варіант задачі можна розв'язати апроксимаційно зі множником 2, обчисливши ЕМКД, пройшовши вздовж його межі, яка окреслює все дерево, а потім видаливши всі вершини, що зустрілися кратно (залишивши тільки одну).

Планарна реалізація[ред. | ред. код]

Задача реалізації для евклідових мінімальних кістякових дерев ставиться так: якщо дано дерево , знайти положення D(u) кожної вершини , так що T є мінімальним кістяковим деревом або визначити, що таких положень не існує. Перевірка існування реалізації на площині є NP-повною задачею[14].

Див. також[ред. | ред. код]

Примітки[ред. | ред. код]

  1. а б в г Buchin, Mulzer, 2009, с. 139–148.
  2. Yao, 1989, с. 308–313.
  3. Eppstein, 1999, с. 425–461.
  4. Mareš, 2004, с. 315–320.
  5. а б Agarwal, Edelsbrunner, Schwarzkopf, Welzl, 1991, с. 407–422.
  6. Chatterjee, Connor, Kumar, 2010, с. 486–500.
  7. Smid, 2005.
  8. Jaromczyk, Toussaint, 1992, с. 1502–1517.
  9. Toussaint, 1981, с. 860–861.
  10. Toussaint, 1980, с. 261–268.
  11. Pless, 2003.
  12. Sedgewick, Wayne, 2007.
  13. Steele, 1988, с. 1767–1787.
  14. Eades, Whitesides, 1994, с. 49–56.

Література[ред. | ред. код]