Powszechnie wiadomo, że ten „naiwny” algorytm tasowania tablicy poprzez zamianę każdego elementu na inny losowo wybrany nie działa poprawnie:
for (i=0..n-1)
swap(A[i], A[random(n)]);
W szczególności, ponieważ w każdym z powtórzeń, jeden z wyboru jest (z jednolitego prawdopodobieństwa) jest możliwych ścieżek „” do obliczeń; ponieważ liczba możliwych permutacji nie dzieli się równomiernie na liczbę ścieżek , algorytm nie jest w stanie wygenerować każdego z permutacje z jednakowym prawdopodobieństwem. (Zamiast tego należy użyć tak zwanego losowania Fischera-Yatesa , który zasadniczo zmienia połączenie, aby wybrać losową liczbę z [0..n) z połączeniem, aby wybrać losową liczbę z [i..n); jest to jednak kwestia mojego pytania).
Zastanawiam się, jak „zły” może być naiwny los. Mówiąc dokładniej, pozwalając być zbiorem wszystkich permutacji, a być liczbą ścieżek przez naiwny algorytm, który wytwarza wynikową permutację , jakie jest asymptotyczne zachowanie funkcji
i
?
Najważniejszym czynnikiem jest „normalizacja” tych wartości: jeśli naiwny los jest „asymptotycznie dobry”, to znaczy
.
Podejrzewam (na podstawie niektórych symulacjach komputerowych widziałem), że rzeczywiste wartości są ograniczone od 1, ale jest jeszcze wiadomo, czy jest skończony, czy lim m ( n ) jest ograniczony od 0? Co wiadomo o zachowaniu tych ilości?
źródło
Odpowiedzi:
Pokażemy przez indukcję, że permutacja jest przykładem z C ( ρ n ) = 2 n - 1 . Jeśli jest to najgorszy przypadek, tak jak w przypadku pierwszych kilku n (patrz uwagi do sekwencji OEIS A192053 ), to m ( n ) ≈ ( 2 / e ) nρn=(2,3,4,…,n,1) C(ρn)=2n−1 n m(n)≈(2/e)n . Znormalizowana wartość minimalna, podobnie jak znormalizowana wartość maksymalna, jest „wykładniczo zła”.
Podstawa jest łatwa. Na etapie wprowadzenia potrzebujemy lematu:
Lemat: W każdej ścieżce od do ( 1 , 2 , 3 , ... , n ) , albo pierwszy ruch swap pozycji 1 i n , lub ostatni ruch swap pozycji 1 i n .(2,3,4,…,n,1) (1,2,3,…,n) 1 n 1 n
Szkic próbny: Załóżmy, że nie. Rozważ pierwszy ruch, który obejmuje -tą pozycję. Załóżmy, że jest i -tym ruch, i ≠ 1 i I ≠ n . Ten ruch musi umieścić przedmiot 1 na i miejscu. Teraz rozważ następny ruch, który dotknie przedmiotu 1 . Załóżmy, że ten ruch jest j -ty. Ten ruch musi zamienić i i j , przesuwając element 1 na j -te miejsce, z i < j . Podobny argument mówi, że pozycja 1n i i≠1 i≠n 1 i 1 j i j 1 j i<j 1 can only subsequently be moved to the right. But the item 1 needs to end up in the first place, a contradiction. □
Teraz, jeżeli pierwsze swapy ruch z pozycji i n , pozostałe przemieszcza musi mieć permutacji ( 1 , 3 , 4 , 5 , ... , n , 2 ) do ( 1 , 2 , 3 , 4 , ... , n ) . Jeśli pozostałe ruchy nie dotykają pierwszej pozycji, to jest to permutacja ρ n - 1 na pozycjach 2 … n , a dzięki indukcji wiemy, że są1 n (1,3,4,5,…,n,2) (1,2,3,4,…,n) ρn−1 2…n C(ρn−1)=2n−2 paths that do this. An argument similar to the proof of the Lemma says that there is no path that touches the first position, as the item 1 must then end up in the incorrect position.
źródło
After some digging around thanks to mhum's pointer to OEIS, I've finally found an excellent analysis and a nice (relatively) elementary argument (due, as far as I can tell, to Goldstein and Moews [1]) thatM(n) grows superexponentially fast in n :
Any involutionι of {1…n} corresponds to a run of the 'naive' shuffling algorithm that produces the identity permutation as its result, since the algorithm will swap k with ι(k) and subsequently swap ι(k) with k , leaving both unchanged. This means that the number of runs of the algorithm that yield the identity permutation is at least the number of involutions Q(n) (in fact, a little thinking shows that the correspondence is 1-1 and so it's exactly Q(n) ), and so the maximum in M(n) is bounded from below by Q(n) .
Goldstein and Moews in fact go on to show in [1] that the identity permutation is the most likely for largen , so the ≥ is in fact a ≈ and the behavior of M(n) is fully settled. This still leaves the question of the behavior of m(n) open; I wouldn't be too surprised if that also yielded to the analysis in their paper, but I haven't had opportunity to read it closely enough yet to really get a grip on their methods, only enough to grok the basic result.
[1] Goldstein, D. and Moews, D.: "The identity is the most likely exchange shuffle for large n", http://arxiv.org/abs/math/0010066
źródło