Wprowadzenie i notacje:
Oto nowa i prosta wersja mojego algorytmu, która wydaje się kończyć (zgodnie z moimi eksperymentami), a teraz chciałbym to udowodnić.
Niech notacja odnosi się do wymiarowego punktu danych (wektora). Mam trzy zestawy A, B i C, takie że ,xi∈Rp
Biorąc pod uwagę , niech oznacza średnią odległość euklidesową od do jej najbliższych punktów w ; i oznacza średnią odległość euklidesową z jego najbliższego punktów .k∈N∗
Algorytm:
Mam następujący algorytm, który iteracyjnie modyfikuje zestawy A i B, przenosząc niektóre wybrane elementy z A na B i odwrotnie, a C pozostaje zawsze takie samo (nie zmieniaj). Upraszczając: celem algorytmu jest lepsze rozdzielenie zbiorów i taki sposób, aby „punkty były bardziej podobne do punktów znanego ustalonego zestawu ” i „punkty są w końcu samopodobne i dalej od i końcowego zestawu ":A
- A′={xi∈A∣dAxi>dCxi}
A′={xi∈A∣dAxi>dCxi} ... (1) - A=A∖A′
A=A∖A′ ; ... (2)B=B∪A′B=B∪A′ - B′={xi∈B∣dAxi<dCxi
B′={xi∈B∣dAxi<dCxi } ... (3) - B=B∖B′
B=B∖B′ ; ... (4)A=A∪B′A=A∪B′ - Powtarzaj (1), (2), (3) i (4), dopóki: (żaden element nie przesunie się z na lub z na , czyli A 'i B' się opróżnią) lub ( lub )A
A BB BB AA |A|≤k|A|≤k |B|≤k|B|≤k
Algorytm kończy się w dwóch przypadkach:
- kiedylubstaje się mniejsza lub równa|A|
|A| |B||B| kk - lub najbardziej standardowy przypadek, gdy , co oznacza, że nie ma już więcej elementów między A i B.A′=B′=∅
A′=B′=∅
Pytanie:
Jak udowodnić, że ten algorytm ostatecznie się kończy? Nie znalazłem wygodnej potencjalnej funkcji, którą algorytm może ściśle zminimalizować lub zmaksymalizować. Próbowałem bezskutecznie niektórych funkcji: funkcja ale nie zwiększa się przy każdej iteracji. Funkcja ale nie zmniejsza się przy każdej iteracji. Funkcja wydaje się nie zmniejszać przy każdej iteracji. Funkcja∑x∈AdCx+∑x∈BdAx
Uwagi:
- najbliżej punktów w zbiorze , oznacza: punktów (inne niż ) w , mające najmniejszą euklidesową odległość
. Możesz po prostu wziąć aby uprościć analizę.k
k xx SS kk xx SS xx k=1k=1 - Nie wiem, czy to może pomóc, czy nie, ale mam następującą właściwość dla moich początkowych zestawów : początkowo , jeśli jest najbliższym punktem do i to najbliższy punkt do a następnie zawsze . Ten intuicyjnie oznacza, że punkty są bliżej niż punktach .A,B,C
A,B,C ∀xi∈B,xj∈A∀xi∈B,xj∈A xb∈Cxb∈C xixi xa∈Cxa∈C xjxj distance(xi,xb)<distance(xj,xa)distance(xi,xb)<distance(xj,xa) BB CC AA - Jeśli to ułatwi analizę: całkowicie możliwe jest rozważenie nieco innej wersji Algorytmu, w której punkt z punktu powinien zostać przeniesiony do punktu , zostaje on przeniesiony z punktu do punktu (bez omijania punktu ), a vis versa dla .A
A BB AA BB A′A′ BB