To miłe pytanie i już o tym myślałem. Oto, co wymyśliliśmy:
Uruchomieniu algorytmu razy, aby dostać wyjścia i wiesz, co z dużym prawdopodobieństwem duża część s upadku na jakiegoś dobrego zestawu . Nie wiesz, co to jest , tylko to, że jest wypukłe. Dobrą wiadomością jest to, że istnieje sposób na uzyskanie punktu w bez dalszych informacji na ten temat. Nazwij ten punkt .nx1,⋯,xn∈RdxiGGGf(x1,⋯,xn)
Twierdzenie. Dla wszystkich liczb naturalnych i istnieje funkcja taka, że zachowane są następujące elementy. Niech i niech będzie wypukłym zestawem spełniającymNastępnie . Ponadto jest obliczalne w czasie wielomianu w .
ndf:(Rd)n→Rdx1...xn∈RdG⊂Rd1n|{i∈[n]:xi∈G}|>dd+1.
f(x1,...,xn)∈Gfnd
Zauważ, że dla możemy ustawić na medianę. To pokazuje, jak uogólnić medianę dla .d=1fd>1
Przed udowodnieniem tego wyniku, zwróć uwagę, że jest ciasny: Niech i niech będą standardowymi elementami podstawowymi, a . Każdy podzbiór punktów jest zawarty w afinicznej przestrzeni o wymiarze (który jest jednoznacznie określony przez te punkty). Ale nie ma sensu we wszystkich tych afinicznych przestrzeniach. Stąd jest wypukły który zawiera punktów, ale nie zawiera , bez względu na jaką wartość.n=d+1x1,⋯,xdxd+1=0dGd−1Gn⋅d/(d+1)=df(x1,⋯,xn)
Dowód. Używamy następującego wyniku.
Twierdzenie Helly. Niech będą wypukłymi podzbiorami . Załóżmy, że przecięcie dowolnego s jest niepuste. Zatem przecięcie wszystkich jest niepuste.K1...KmRdd+1 KiKi
Kliknij tutaj, aby uzyskać dowód twierdzenia Helly.
Teraz, aby udowodnić nasze twierdzenie:
Niech za górną granicę liczby punktów nie w . Rozważ wszystkie zamknięte półprzestrzenie zawierający co najmniej punktów, a ich granica zawiera zestaw punktów o maksymalnej wartości (jest to skończona liczba półprzestrzeni, ponieważ każde jest zdefiniowane przez punktów na granicy).k<n/(d+1)GK1...Km⊂Rdn−kKid+1
Uzupełnienie każdego zawiera najwyżej punktów. Przez granicę związkową przecięcie dowolnych zawiera co najmniej > 0 punktów. Zgodnie z twierdzeniem Helly (ponieważ półprzestrzenie jest wypukłe) istnieje punkt na przecięciu wszystkich . Pozwalamy być funkcją, która oblicza dowolny punkt na przecięciu .Kikd+1 Kin−k(d+1)KisfKi
Pozostaje to, aby pokazać, że przecięcie się y zawarty jest w .KiG
Bez utraty ogólności jest wypukłym kadłubem podzbioru punktów o pełnej randze. Oznacza to, że możemy zastąpić wypukłym kadłubem punktów w nim zawartych. Jeśli to nie ma pełnej rangi, możemy po prostu zastosować nasze twierdzenie w niższym wymiarze.GG
Każda ściana definiuje półprzestrzeń, gdzie jest przecięciem tych półprzestrzeni. Każda z tych półprzestrzeni zawiera a zatem zawiera co najmniej punktów. Granica jednego z tych półprzestrzeni zawiera twarz a zatem zawiera zestaw punktów o maksymalnej wartości. Zatem każda z tych półprzestrzeni jest . Zatem przecięcie wszystkich jest zawarte w , zgodnie z wymaganiami.GGGn−kGKiKiG
Aby obliczyć , skonfiguruj program liniowy, w którym ograniczenia liniowe odpowiadają s, a wykonalne rozwiązanie odpowiada punktowi przecięcia wszystkich s.
CO BYŁO DO OKAZANIAfKiKi
Niestety, ten wynik nie jest zbyt praktyczny w ustawieniach wysokowymiarowych. Dobrym pytaniem jest, czy możemy obliczać bardziej wydajnie:f
Otwarty problem. Udowodnić wyżej twierdzenia z dodatkowym wniosku, że może być obliczony czas wielomian i .
fnd
Poza tym: Możemy również zmienić problem, aby uzyskać wydajne rozwiązanie: jeśli mają właściwość, że ściśle ponad połowa z nich leży w kulce , możemy znaleźć punkt który znajduje się w w czasie wielomian i . W szczególności możemy ustawić dla dowolnego tak że dokładnie więcej niż połowa punktów znajduje się w .x1,⋯,xnB(y,ε)zB(y,3ε)ndz=xiiB(z,2ε)