Moje wcześniejsze roszczenie z nie uwzględnia cięcia wielkościn2/4już w wykresie. Wydaje się, że następująca konstrukcja (imperialnie - stworzyłem pytanie na stronie math.stackexchange.com w celu uzyskania dokładnego dowodu) wO(12c+6n2/4ułamek.O(1logc)
Algorytm źle działa na połączeniach kilku odłączonych, różnej wielkości kompletnych wykresów. Cały wykres na wierzchołkach oznaczamy jako K n . Rozważ zachowanie algorytmu na K n : wielokrotnie dodaje dowolny wierzchołek jeszcze w S do S - wszystkie takie wierzchołki są identyczne, więc kolejność nie ma znaczenia. Ustawienie liczby wierzchołków jeszcze nie dodanych do S przez algorytm | ˉ S | = k , wielkość nacięcia w tym momencie wynosi k ( n - k ) .nKnKnSSS|S¯|=kk(n−k)
Zastanów się, co się stanie, jeśli uruchomimy algorytm na kilku odłączonych grafach ze stałymi x i między 0 a 1. Jeśli k i jest liczbą elementów, które nie są jeszcze w S na i- tym kompletnym grafie, algorytm będzie wielokrotnie dodawał wierzchołkiem do S z pełnego wykresu z najwyżej k I , łamiąc związki dowolnie. Będzie to wywoływać `okrągłe” uzupełnień opartych wierzchołków do S : algorytm dodaje wierzchołek ze wszystkich graf pełny o najwyższym k = k I , a następnie ze wszystkich graf pełny z kKxinxikiSiSkiSk=ki (zaktualizacją k i po poprzedniej rundzie) i tak dalej. Gdy pełny wykres ma dodany wierzchołek do S w rundzie, będzie to robił dla każdej rundy od tego momentu.ki=k−1kiS
Niech będzie liczbą kompletnych wykresów. Niech 0 < x i ≤ 1 z 0 ≤ i ≤ c - 1 będzie modyfikatorem wielkości dla i-tego pełnego wykresu. Zamawiamy te modyfikatory wielkości od dużych do małych i ustawiamy x 0 = 1 . Mamy teraz, że jeśli istnieją wykresy c ′ z dokładnie k elementami, które nie zostały jeszcze dodane do S , wówczas wielkość nacięcia w tym czasie wynosi ∑ c ′ - 1 i = 0 k (c0<xi≤10≤i≤c−1ix0=1c′kS . Całkowita liczba krawędzi wynosi | E | = ∑ c - 1 i = 0 x i n ( x i n - 1 )∑c′−1i=0k(xin−k)=kn∑c′−1i=0(xi)−c′k2 .|E|=∑c−1i=0xin(xin−1)2≈n22∑c−1i=0x2i
Zauważ, że jest funkcją kwadratową w k, a zatem ma maksimum. Dlatego będziemy mieli kilka lokalnych maksymalnych cięć. Na przykład, jeśli c = 1, nasze maksymalne cięcie wynosi k = nkn∑c′−1i=0xi−c′k2kc=1 wielkościn2k=n2 . Mamy zamiar odebraćx1tak, żex1=1/2-ε, co oznacza drugi graf pełny nie będzie zmieniać rozmiar tego lokalnie maksymalnego cięcia przyk=nn24x1x1=1/2−ε . Następnie dostać nowy lokalnie maksymalne cięcie przyk=3/8nk=n2 i tak możemy odebrać x 2 = 3 / 8 n - ε " (z ε , ε ' , ε " małych stałych). Będziemy ignorować ε s na chwilę i po prostu założyć możemy odebrać x 1 = 1 / 2 - powinniśmy zapewnić x 1 n = nk=3/8n−ε′x2=3/8n−ε′′ε,ε′,ε′′εx1=1/2, ale nie wpłynie to na końcowe wyniki, jeślinjest wystarczająco duże.x1n=n2−1n
Chcemy znaleźć lokalne maksima naszych cięć. Rozróżniamy do k , uzyskując n ∑ c ′ - 1 i = 0 ( x i ) - 2 c ′ k . Równanie 0 daje k = nkn∑c′−1i=0(xi)−c′k2kn∑c′−1i=0(xi)−2c′k0, co daje cięcie o rozmiarzen2k=n2c′∑c′−1i=0xi.n24c′(∑c′−1i=0xi)2
Pozwolić być k określona w poprzednim ustępie, jeżeli c ' = I . Zapewniamy, że formuła posiada żądając, że X i n < k I - wszystkie graf pełny i ' z I ' > i są wtedy mniejsze niż k í tego lokalnie maksymalnego cięcia, a tym samym nie zwiększają rozmiar cięcia. Oznacza to, że mamy c cięcia w tych k i, które są większe niż wszystkie inne cięcia znalezione przez algorytm.kikc′=ixin<kii′i′>ikicki
Wypełniając , otrzymujemy rekurencję x i = 1xin<ki (plus niektóre małe ε ) przy x 0 = 1 . Rozwiązanie tego daje x i = ( 2 ixi=12c′∑c′−1i=0xiεx0=1 :patrz moje pytanie na stronie math.stackexchange.comdotyczące pochodnej autorstwa @Daniela Fishera. Podłączając to don2xi=(2ii)4ii wykorzystanie naszego wglądu w nawrót daje nam cięcia o rozmiarzen2n24c′(∑c′−1i=0xi)2. Korzystając zwłaściwości tego centralnego współczynnika dwumianowego, mamylimc′→∞c′( ( 2 c ′n24c′(2c′(2c′c′)4c′)2=n2c′((2c′c′)4c′)2 (zobacz takżemoje pytanie na stronie math.stackexchange.com).limc′→∞c′((2c′c′)4c′)2=1π
Liczba krawędzi wynosi około . Według znanych właściwościmamy1n22∑c−1i=0x2i=n22∑c−1i=0((2ii)4i)2 . Wpisanie daje co najmniejn214i√≤(2ii)4i który jest asymptotycznien2n22∑c−1i=0(14i√)2=n28∑c−1i=01ijakocidzie do nieskończoności.n28logcc
Mamy zatem jest asymptotycznie równy8δ(S,S¯)|E| jakocprzechodzi w nieskończoność, pokazując, że algorytm może zwracać cięcia, które są dowolnie małymi ułamkami| E| .8πlogcc|E|