Nie. W najgorszym przypadku nie można zrobić lepiej niż .Θ(n2)
Rozważ rozmieszczenie punktów, w których każda para punktów znajduje się w odległości od siebie. (Jest to możliwa konfiguracja.) W takim razie nie możesz zrobić nic lepszego niż zbadanie każdej krawędzi. W szczególności, jeśli istnieje jakaś krawędź, której nie zbadałeś, przeciwnik może wybrać długość tej krawędzi jako , lub ; wszystkie te wybory są zgodne ze wszystkimi innymi dokonanymi przez ciebie obserwacjami i wymogami metryki (np. z nierównością trójkąta), więc wszystkie trzy są możliwe; ale wymagają różnych wyników. Tak więc, jeśli twój algorytm nie sprawdza tej krawędzi, a następnie coś wypisuje, przeciwnik może zawsze wybrać długość niewybadanego zbocza, co spowoduje nieprawidłowe wyjście twojego algorytmu.10.91.01.1
Jeśli jednak wiesz, że wszystkie punkty żyją w (nawet jeśli nie podano ich współrzędnych), problem można rozwiązać, mierząc odległości , zakładając, że nie zwyrodnienia (brak podzbioru punktów jest współpłaszczyznowy).RdO((d+1)n)d+1
W szczególności losowo wybierz punktów. Będą to punkty kontrolne. Biorąc pod uwagę odległości par, można obliczyć dla nich współrzędne, które są zgodne z ich odległościami par. Teraz dla każdego innego punktu oblicz odległość od do każdego z punktów kontrolnych. Korzystanie triangulacji i te odległości można obliczyć położenie w stosunku do punktów kontrolnych, a zatem współrzędne . Zrób to dla każdego nie-Anchor Point . Teraz masz współrzędne dla każdego punktu i możesz użyć tych współrzędnych, aby znaleźć punkt centralny, nie prosząc wyroczni o podanie dalszych odległości parami. Nie wiem, czy ten ostatni krok można zrobić szybciej niżd+1PPPPPO(n2) czasu , ale może być zrobione bez żadnych więcej parami pomiaru odległości.