Яка часова складність побудови дерева kd?

побудова дерева k-d має O(N·logN) часова складність і O(K·N) просторова складність. пошук найближчого сусіда

пошук найближчого сусіда

Пошук найближчого сусіда (NNS), як форма пошуку наближення, є оптимізаційна задача знаходження точки в заданому наборі, яка є найближчою (або найбільш подібною) до даної точки. Близькість зазвичай виражається через функцію несхожості: чим менш схожі об’єкти, тим більші значення функції.

https://en.wikipedia.org › wiki › Nearest_neighbor_search

– близький до O(logN)

O(N log N) time 1. За який час можна побудувати 2-d дерево? Пояснення: можна побудувати ідеально збалансоване двовимірне дерево O(N log N) часу.

Дерева KD мають деякі обмеження, в тому числі зниження продуктивності зі збільшенням кількості вимірів, особливо коли точки даних розподілені нерівномірно. Це може призвести до незбалансованих дерев і неефективного часу пошуку.

Будівля KD-Tree

  1. Перша вставлена ​​точка стає коренем дерева.
  2. Виберіть вісь на основі глибини, щоб вісь проходила циклічно між усіма дійсними значеннями. …
  3. Відсортуйте список точок за віссю та виберіть медіану як опорний елемент. …
  4. Переходьте по дереву, доки вузол не буде порожнім, а потім призначте вузлу точку.
  5. Повторюйте кроки 2-4 рекурсивно, доки не буде оброблено всі точки.

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

Залежно від кількості вимірів K, побудова дерева k-d займала від 30 до 60 мс. Приблизна часова трудомісткість O(D·N·logN), тобто час побудови лінійний щодо кількості вимірів і лінійний щодо розміру набору даних.