Es ist bekannt, dass dieser "naive" Algorithmus zum Mischen eines Arrays durch Tauschen jedes Elements mit einem zufällig ausgewählten nicht richtig funktioniert:
for (i=0..n-1)
swap(A[i], A[random(n)]);
Insbesondere gibt es, da bei jeder von Iterationen eine von Entscheidungen getroffen wird (mit einheitlicher Wahrscheinlichkeit), mögliche "Pfade" durch die Berechnung; weil die Anzahl der möglichen Permutationenteilt sich nicht gleichmäßig in die Anzahl der Pfade , es ist für diesen Algorithmus unmöglich, jedes der zu erzeugenPermutationen mit gleicher Wahrscheinlichkeit. (Stattdessen sollte man den sogenannten Fischer-Yates- Shuffle verwenden, der im Wesentlichen den Aufruf zur Auswahl einer Zufallszahl aus [0..n] und den Aufruf zur Auswahl einer Zufallszahl aus [i..n] ändert.) Das ist jedoch nicht meine Frage.)
Was ich mich frage, ist, wie "schlecht" kann das naive Mischen sein? Insbesondere sei die Menge aller Permutationen und die Anzahl der Pfade durch den naiven Algorithmus, die die resultierende Permutation erzeugen , was ist das asymptotische Verhalten von funktionen
und
?
Der Hauptfaktor ist, diese Werte zu "normalisieren": Wenn das naive Mischen "asymptotisch gut" ist, dann
.
Ich vermute (basierend auf einigen Computersimulationen, die ich gesehen habe), dass die tatsächlichen Werte von 1 abgegrenzt sind, aber ist es sogar bekannt, ob endlich ist oder ob abgegrenzt ist 0? Was ist über das Verhalten dieser Größen bekannt?
quelle
Antworten:
Wir werden durch Induktion zeigen, dass die Permutation ein Beispiel mit . Wenn dies der schlimmste Fall ist, wie es bei den ersten der Fall ist (siehe die Hinweise zur OEIS-Sequenz A192053 ), dann ist . Das normalisierte Minimum ist also wie das normalisierte Maximum "exponentiell schlecht".C ( ρ n ) = 2 n - 1 n mρn=(2,3,4,…,n,1) C(ρn)=2n−1 n m(n)≈(2/e)n
Der Grundfall ist einfach. Für den Induktionsschritt brauchen wir ein Lemma:
Lemma: In jedem Pfad von zu werden die Positionen und des ersten Zuges oder des letzten Zuges getauscht und .(2,3,4,…,n,1) (1,2,3,…,n) 1 n 1 n
Beweisskizze: Angenommen, nicht. Betrachten Sie den ersten Zug, bei dem es um die -te Position geht. Angenommen, es ist der -te Zug, und . Dieser Zug muss den Gegenstand an die -te Stelle setzen. Betrachten Sie nun den nächsten Zug, der den Gegenstand berührt . Angenommen, dieser Zug ist der -te Zug. Dieser Zug muss und tauschen und den Gegenstand an die -te Stelle verschieben, mit . Ein ähnliches Argument besagt, dass der Punkt erst nachträglich nach rechts verschoben werden kann. Aber der Punkti i ≤ 1 i ≤ n 1n i i≠1 i≠n 1 1 j i j 1 j i < j 1 1 ◻i 1 j i j 1 j i<j 1 1 Muss in erster Linie ein Widerspruch enden. □
Wenn der erste Zug die Positionen und vertauscht, müssen die verbleibenden Züge die Permutation bis annehmen . Wenn die verbleibenden Züge die erste Position nicht berühren, ist dies die Permutation in Position , und wir wissen durch Induktion, dass es Pfade, die dies tun. Ein Argument, das dem Beweis des Lemma ähnlich ist, besagt, dass es keinen Pfad gibt, der die erste Position berührt, da der Punkt dann in der falschen Position enden muss.n ( 1 , 3 , 4 , 5 , … , n , 2 ) ( 1 , 2 , 3 , 4 , … , n ) ρ n - 1 2 … n C ( ρ n - 1 ) = 2 n - 2 11 n (1,3,4,5,…,n,2) (1,2,3,4,…,n) ρn−1 2…n C(ρn−1)=2n−2 1
Wenn der letzte Zug die Positionen und vertauscht , müssen die ersten Züge die Permutation zur Permutation . Wiederum, wenn diese Bewegungen die letzte Position nicht berühren, dann ist dies die Permutation , und durch Induktion gibt es Pfade das macht es. Und wieder, wenn einer der ersten Züge hier die letzte Position berührt, kann der Gegenstand niemals an der richtigen Stelle landen.n n - 1 ( 2 , 3 , 4 , … , n , 1 ) ( n , 2 , 3 , 4 , … , n - 1 , 1 ) ρ n - 1 C ( ρ n - 1 ) = 2 n - 2 n - 1 11 n n−1 (2,3,4,…,n,1) (n,2,3,4,…,n−1,1) ρn−1 C(ρn−1)=2n−2 n−1 1
Somit ist .C(ρn)=2C(ρn−1)=2n−1
quelle
Nach einigem Stöbern dank Mhums Zeiger auf OEIS habe ich endlich eine exzellente Analyse und ein nettes (relativ) elementares Argument gefunden (soweit ich das beurteilen kann, an Goldstein und Moews [1]), dass wächst superexponentiell schnell in :nM(n) n
Jede Involution von entspricht einem Durchlauf des 'naiven' Mischalgorithmus, der die Identitätspermutation als Ergebnis erzeugt, da der Algorithmus mit und anschließend mit , beide unverändert bleibt. Dies bedeutet, dass die Anzahl der Läufe des Algorithmus, die die Identitätspermutation ergeben, mindestens die Anzahl der Involutionen (in der Tat zeigt eine kleine Überlegung, dass die Entsprechung 1-1 ist und es genau ). und so wird das Maximum in von unten durch .{ 1 ... n } k ι ( k ) ι ( k ) k Q ( n ) Q ( n ) M ( n ) Q ( n )ι {1…n} k ι(k) ι(k) k Q(n) Q(n) M(n) Q(n)
Q ( n ) ≤ C ( nQ(n) anscheinend eine Reihe von Namen, einschließlich der Telefonnummern : siehe http://oeis.org/A000085 und http://en.wikipedia.org/wiki/Telephone_number_%28mathematics%29 . Die Asymptoten sind wohlbekannt, und es stellt sich heraus, dass ; Aus der Wiederholungsrelation kann induktiv gezeigt werden, dass das Verhältnis erfüllt und von dort erhält die Basisanalyse den führenden Term in der Asymptotik, obwohl der andere Begriffe erfordern eine vorsichtigere Anstrengung. Da der "Skalierungsfaktor" Q(n)=Q(n-1)+(n-1)Q(n-2)R(n)=Q(n)Q(n)≈C(ne)n/2en√ Q(n)=Q(n−1)+(n−1)Q(n−2) √R(n)=Q(n)Q(n−1) n n / 2 n !n−−√<R(n)<n+1−−−−−√ nn/2 M(n)C√n!nn in der Definition von handelt es sich nur um , der führende Term von dominiert und ergibt (asymptotisch) .M(n) Q(n)M(n)≥Cn ( n + 1 ) / 2 e - 3 n / 2 + √Cn−−√e−n Q(n) M(n)≥Cn(n+1)/2e−3n/2+n√
Tatsächlich zeigen Goldstein und Moews in [1], dass die Identitätspermutation für große am wahrscheinlichsten ist , daher ist in der Tat a und das Verhalten von ist vollständig festgelegt. Damit bleibt die Frage nach dem Verhalten von offen; Es würde mich nicht überraschen, wenn dies auch der Analyse in ihrem Artikel entspräche, aber ich hatte noch keine Gelegenheit, sie genau genug zu lesen, um ihre Methoden wirklich in den Griff zu bekommen, nur genug, um das grundlegende Ergebnis herauszufinden.≥ ≈ M ( n ) m ( n )n ≥ ≈ M(n) m(n)
[1] Goldstein, D. und Moews, D .: "Die Identität ist die wahrscheinlichste Austauschmischung für großes n", http://arxiv.org/abs/math/0010066
quelle