Étant donné entrées , nous construisons un réseau de tri aléatoire avec portes en choisissant itérativement deux variables avec et en ajoutant une porte de comparaison qui les échange si .
Question 1 : Pour fixe , quelle taille doit être pour que le réseau trie correctement avec une probabilité ?
Nous avons au moins la limite inférieure depuis une entrée qui est triée correctement sauf que chaque paire consécutive est échangé aura de temps pour chaque paire d'être choisi comme un comparateur . Est-ce aussi la limite supérieure, éventuellement avec plus de facteurs ?
Question 2 : Y a-t-il une distribution de portes de comparaison qui atteint , peut-être en choisissant des comparateurs proches avec une probabilité plus élevée?
sorting-network
Geoffrey Irving
la source
la source
Réponses:
Here's some empirical data for question 2, based on D.W.'s idea applied to bitonic sort. Forn variables, choose j−i=2k with probability proportional to lgn−k , then select i uniformly at random to get a comparator (i,j) . This matches the distribution of comparators in bitonic sort if n is a power of 2, and approximates it otherwise.
For a given infinite sequence of gates pulled from this distribution, we can approximate the number of gates required to get a sorting network by sorting many random bit sequences. Here's that estimate forn<200 taking the mean over 100 gate sequences with 6400 bit sequences used to approximate the count:
It appears to match Θ(nlog2n) , the same complexity as bitonic sort. If so, we don't eat an extra logn factor due to the coupon collector problem of coming across each gate.
To emphasize: I'm using only6400 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.
la source