Dado entradas , construímos uma rede de ordenação aleatória com portões por iterativamente colheita duas variáveis com e adicionando um portão comparador que eles se permutas .x 0 , … , x n - 1 m x i , x j i < j x i > x j
Pergunta 1 : Para fixo , qual deve ser o tamanho da rede para classificar corretamente com probabilidade ?m > 1
Temos pelo menos o limite inferior pois uma entrada que é classificada corretamente, exceto que cada par consecutivo é trocado, levará tempo para cada par a ser escolhido como comparador. Esse também é o limite superior, possivelmente com mais fatores?
Pergunta 2 : Existe uma distribuição de portas do comparador que atinge , talvez escolhendo comparadores próximos com maior probabilidade?
sorting-network
Geoffrey Irving
fonte
fonte
Respostas:
Aqui estão alguns dados empíricos para a pergunta 2, com base na ideia de DW aplicada à classificação bitônica. Para variáveis, escolha com probabilidade proporcional a , depois selecione uniformemente aleatoriamente para obter um comparador . Isso corresponde à distribuição dos comparadores em classificação bitônica se for uma potência de 2 e, caso contrário, será aproximada.j - i = 2 k lg n - k i ( i , j ) nn j−i=2k lgn−k i (i,j) n
Para uma determinada sequência infinita de portas extraídas dessa distribuição, podemos aproximar o número de portas necessárias para obter uma rede de classificação, classificando muitas seqüências aleatórias de bits. Aqui está a estimativa para tendo a média de mais de sequências de gate com sequências de bits usadas para aproximar a contagem: parece corresponder a , a mesma complexidade que a classificação bitônica. Nesse caso, não comemos um fator extra devido ao problema do coletor de cupons de encontrar cada porta.100 6400 Θ ( n log 2 n ) log nn<200 100 6400 Θ(nlog2n) logn
Para enfatizar: estou usando apenas seqüências de bits para aproximar o número esperado de portas, não . As portas médias necessárias aumentam com esse número: para se eu usar as seqüências , e , as estimativas são , e . Assim, é possível que as últimas seqüências aumentem a complexidade assintótica, embora, intuitivamente, pareça improvável.6400 2n n=199 6400 64000 640000 14270±1069 14353±1013 14539±965
Edit : Aqui está um gráfico semelhante até , mas usando o número exato de portas (calculado através de uma combinação de amostragem e Z3). Eu mudei da potência de dois para arbitrário com probabilidade proporcional a . ainda parece plausível.n=80 d=j−i d∈[1,n2] logn−logdd Θ(nlog2n)
fonte