Wahrscheinlichkeit, dass ein Netzwerk mit zufälliger Sortierung funktioniert


14

Mit Eingängen x 0 , , x n - 1 bauen wir ein zufälliges Sortiernetz mit m Gattern auf, indem wir iterativ zwei Variablen x i , x j mit i < j auswählen und ein Komparatorgatter hinzufügen, das sie vertauscht, wenn x i > x j .nx0,,xn1mxi,xji<jxi>xj

Frage 1 : Für feste , wie groß muss m für das Netzwerk mit Wahrscheinlichkeit richtig sortieren sein > 1nm ?>12

Wir haben mindestens die untere Schranke seit einer Eingabe , die korrekt mit Ausnahme sortiert ist , dass jedes aufeinanderfolgende Paar ausgelagert wird , nehmen Θ ( n 2 log n 2 ) Zeit für jedes Paar als Komparator gewählt werden , . Ist das auch die Obergrenze, möglicherweise mit mehr log n Faktoren?m=Ω(n2logn)Θ(n2logn2)logn

Frage 2 : Gibt es eine Verteilung von Komparatorgattern, die ergibt, möglicherweise durch Auswahl enger Komparatoren mit höherer Wahrscheinlichkeit?m=O~(n)


1
Ich denke, man kann eine -Obergrenze erhalten, indem man sich jeweils einen Eingang und dann eine Vereinigungsgrenze ansieht, aber das klingt alles andere als eng. O(n3logO(1))
Daniello

2
Idee zu Frage 2: Wählen Sie ein Sortiernetzwerk der Tiefe . Wählen Sie bei jedem Schritt zufällig eines der Tore des Sortiernetzwerks aus und führen Sie diesen Vergleich durch. Nach ˜ O ( n ) -Schritten wurden alle Gates in der ersten Schicht angewendet. Nach weiteren Schritten mit ˜ O ( n ) sind alle Gates in der zweiten Schicht angewendet worden. Wenn Sie zeigen können, dass dies monoton ist (das Einfügen zusätzlicher Vergleiche in der Mitte des Sortiernetzwerks kann nicht schaden), haben Sie eine Lösung mit ˜ O ( n ) erhalten.O(log2n)O~(n)O~(n)O~(n)Vergleicher insgesamt im Durchschnitt. Ich bin mir allerdings nicht sicher, ob Monotizität tatsächlich Bestand hat.
DW

2
@DW: Monotonie muss nicht unbedingt gelten. Betrachten Sie Sequenzen Sequencesworks; s'nicht (Eingabe (1, 0, 0) berücksichtigen). Die Idee ist, dass(x0,x2),(x0,x1)
s=(x1,x2),(x0,x2),(x0,x1);s=(x1,x2),(x0,x1),(x0,x2),(x0,x1).
ss(x0,x2),(x0,x1)sortiert alle empfangenen Eingaben mit Ausnahme von (siehe hier ). In s kann diese Eingabe ( x 0 , x 2 ) , ( x 0 , x 1 ) nicht erreichen . In s ' kann es. (0,1,0)s(x0,x2),(x0,x1)s
Neal Young

3
Betrachten Sie die Variante, in der das Netzwerk ausgewählt wird, indem Sie bei jedem Schritt zwei benachbarte Variablen zufällig auswählen. Jetzt gilt die Monotonie (da benachbarte Swaps keine Inversionen erzeugen). Wenden Sie die Idee von @ DW auf ein Netzwerk mit ungerader und gerader Sortierung an , das n Runden hat: In ungeraden Runden werden alle benachbarten Paare verglichen, bei denen i ungerade ist, und in geraden Runden werden alle benachbarten Paare verglichen, bei denen i gerade ist. Wobei das zufällige Netzwerk in O ( n 2 log n ) Vergleichen korrekt ist , da es dieses Netzwerk "einschließt". (Oder vermisse ich etwas?)xi,xi+1niiO(n2logn)
Neal Young

2
Monotonie benachbarter Netze: Wenn für j { 0 , 1 , , n } ist , dann ist s j ( a ) = j i = 1 a i . Sagen Sie a b, wenn s j ( a ) s j ( b ) ( ja,b{0,1}nj{0,1,,n}sj(a)=i=1jaiabsj(a)sj(b)j). Korrigieren Sie einen Vergleich " ". Lassen Sie a ' und b ' durch diesen Vergleich von a und b kommen . Anspruch 1. a 'a und b 'b . Anspruch 2: Wenn a b , dann a 'b ' . Dann zeigen Sie induktiv: wenn y das Ergebnis der Vergleichsfolge s am Eingang x istxi<xi+1abab aabb ababysxund ist das Ergebnis der Supersequenz s ' von s auf x , dann y 'y . Also, wenn y sortiert ist, ist auch y ' . yssxyyyy
Neal Young

Antworten:


3

Hier sind einige empirische Daten zu Frage 2, die auf der Idee der DW für die bitonische Sortierung basieren. Wählen Sie für Variablen j - i = 2 k mit einer Wahrscheinlichkeit proportional zu lg n - k und wählen Sie dann i gleichmäßig zufällig, um einen Komparator ( i , j ) zu erhalten . Dies stimmt mit der Verteilung von Komparatoren in bitonischer Sortierung überein, wenn n eine Potenz von 2 ist, und approximiert sie ansonsten.nji=2klgnki(i,j)n

n<2001006400Approximate number of gatesΘ(nlog2n)logn

To emphasize: I'm using only 6400 bit sequences to approximate the expected number of gates, not 2n. The mean required gates does rise with that number: for n=199 if I use 6400, 64000, and 640000 sequences the estimates are 14270±1069, 14353±1013, and 14539±965. Thus, it's possible getting the last few sequences increases the asymptotic complexity, though intuitively it feels unlikely.

Edit: Here's a similar plot up to n=80, but using the exact number of gates (computed via a combination of sampling and Z3). I've switched from power of two d=ji to arbitrary d[1,n2] with probability proportional to lognlogdd. Θ(nlog2n) still looks plausible.

Exact numbers of gates


2
Nice experiment! There's a different way the coupon collector issue could arise here, though: you're only sampling a small fraction of the 2n bit sequences needed to verify correctness on all inputs. It seems we can conclude (scientifically, not mathematically of course) from your experiment that a random network of this type and size sorts a random permutation whp. I'd also be curious to see exhaustive 2n testing on such random networks for all n up to which you're willing to go. (n=20 shouldn't be too bad, maybe even n=30 depending on what language & hardware you're using).
Joshua Grochow

1
It looks the same for exact up to n=27, but I don’t view that as conclusive.
Geoffrey Irving

1
@JoshuaGrochow: I've added exact values up to n=80.
Geoffrey Irving

1
Nice! There does appear to be a growing spread to the exact data though, which perhaps indicates an upper bound with an extra factor of logn? (That is, if the "spread" is growing at a rate of logn.)
Joshua Grochow

1
Yeah, we can't rule out an extra factor. I'd be surprised if it was logn, though, since up at 80 we have lgn6 and the constant is suspiciously close to 1 otherwise. At this point I think theory has to take over. :)
Geoffrey Irving
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.