Знайдіть центральну точку в наборі точок метричного простору менше ніж


9

У мене є набір nточки, визначені в метричному просторі - я можу виміряти "відстань" між точками, але нічого іншого. Я хочу знайти найбільш центральну точку в цій множині, яку я визначаю як точку з мінімальною сумою відстаней до всіх інших точок. Обчислення метрики відбувається повільно, тому потрібно уникати, де це можливо.

Очевидний спосіб знайти цю точку використання n2 метричні обчислення відстані, оскільки він просто (а) обчислює для кожної точки суму відстаней до всіх інших точок і тоді (б) приймає мінімальну точку.

Чи є спосіб зробити це менше O(n2)порівняння відстаней? (Можливо, якимось чином використовую нерівність трикутника, що має відповідати моїй метриці.)

Хорошого наближення може бути достатньо, якщо точного методу не існує.


Без нерівності трикутника (або іншого способу отримання інформації про неміряні краї), O(n2)- єдине рішення; це можна побачити за допомогою аргументу антагоніста.
Кітціл

Припустимо, існує нерівність трикутника - це має бути для моєї метрики.
Логістика відкритих дверей

Це по суті обчислення радіографа графіка з рівністю трикутника.
Kaveh

@Kaveh Я думаю, ви маєте на увазі радіус ... якщо тільки графіка не має зламаного краю. Я переконуюсь, що занадто багато словникового запасу я не знаю. --- Але це тоді повний графік, а розмір вводу - це лише кількість вершин.
бабу

@OpenDoorLogistics Якщо у нього немає нерівності трикутника, це не метричний простір за дефініцією. Проясніть, будь ласка, питання: якщо ви знаєте, що це метричний простір, то ви знаєте, що він має нерівність трикутника; якщо ви не знаєте, що в ньому є нерівність трикутника, ви не можете стверджувати, що це метричний простір.
Девід Річербі

Відповіді:


6

Ні. Ви не можете зробити краще, ніж Θ(n2) в гіршому випадку.

Розглянемо розташування точок, де кожна пара точок знаходиться на відстані 1один від одного. (Це можлива конфігурація.) Тоді ви не можете зробити краще, ніж вивчити кожен край. Зокрема, якщо є будь-який край, який ви не оглядали, то противник може вибрати довжину цього краю, яка буде будь-якою0.9, 1.0, або 1.1; усі ці варіанти відповідають усім іншим спостереженням, які ви зробили, і вимогам метрики (наприклад, з нерівністю трикутника), тому всі три можливі; але вони вимагають різних результатів. Таким чином, якщо ваш алгоритм не вивчає цей край, а потім щось виводить, супротивник завжди може вибрати довжину для невивченого краю, що зробить неправильний вихід вашого алгоритму.


Однак, якщо ви знаєте, що всі пункти живуть Rd (навіть якщо вам не вказані їх координати), то проблему можна вирішити шляхом вимірювання O((d+1)n) відстані, не передбачаючи відроджень (без підмножини) d+1 точки співпланові).

Зокрема, підберіть d+1балів випадковим чином. Це будуть якірні точки. З огляду на їх парні відстані, ви можете обчислити координати для них, що відповідають їх попарним відстаням. Тепер для кожного іншого пунктуP, обчислити відстань від Pдо кожної точки прив’язки. Використовуючи тріангуляцію та ці відстані, можна обчислити розташуванняP відносно точки прив’язки і, отже, координат для P. Зробіть це для кожної точки без прив’язкиP. Тепер у вас є координати для кожної точки, і ви можете використовувати ці координати, щоб знайти центральну точку, не вимагаючи від оракула дати вам більше парних відстаней. Я не знаю, чи можна зробити цей останній крок швидше, ніжO(n2) час , але це можна зробити без вимірювання більше парних відстаней.


Ти маєш n бали в розмірності n1. Навіть дивлячись на всі координати введення потрібноΘ(n2)час.
Луї

@Louis Питання нічого не говорить про розміри, і не впевнений, що це показник. Все, що ми маємо, - це нерівність трикутника. Отже, правильний вигляд - коментар Каве: як повний графік. Це відповідає цій відповіді. Але я поняття не маю, чи відповідає це будь-якій фіксованій метриці, колиnросте без зв’язок.
бабу

@DW Спасибі - ми могли б зробити щось краще в середньому випадку? Це мотивовано реальною проблемою, тому дані, ймовірно, є "середніми" (що б це не означало).
Логістика відкритих дверей

@all - вибачення за плутанину re: metric (я мирянин у теоретичному КС). Моя функція відстані безумовно підкоряється 4 критеріїв для метричного простору, згідно з визначенням Вікіпедії метричного простору посилання .
Логістика відкритих дверей

@OpenDoorLogistics, я додав один особливий випадок, коли, здається, можна зробити краще.
DW

0

Перевірте роботу Петра Індика над швидкими алгоритмами для метричних просторів. ( Підлінійні алгоритми для метричних просторових задач , у працях STOC '99 , стор.428–434. ACM, 1999; PS ) Розділ 3 дає лінійний часовий приблизний 1-медіанний алгоритм.


1
Чи можете ви дати короткий підсумок алгоритму? Ми в ідеалі шукаємо повні відповіді, а не посилання на зовнішній вміст.
Девід Річербі

Вибачте за дуже повільну відповідь. Я, очевидно, не перевіряю StackExchange дуже часто. Я думаю, що мені знадобиться більше години, щоб написати напівпристойний підсумок, тоді як документ Петра прекрасно написаний, дуже чітко пояснює алгоритм і має всі точні визначення поруч. Тому я особисто настійно рекомендую використовувати цей високоякісний зовнішній контент, а не внутрішній вміст середньої якості, який я міг би створювати. Коротка відповідь: Якщо ви бажаєте просто знайти приблизну медіану, ви можете зробити це в лінійний час O (n).
user71641
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.