Le principe 0-1 dit que si un réseau de tri fonctionne pour toutes les séquences 0-1, alors il fonctionne pour n'importe quel ensemble de nombres. Existe-t-il un tel que si un réseau trie chaque séquence 0-1 de S, alors il trie chaque séquence 0-1 et la taille de est polynomiale en ?
Par exemple, si compose de toutes les séquences où il y a au plus exécutions (intervalles) de 1, alors y a-t-il un réseau de tri N et une séquence qui n'est pas ordonnée par N si tous les membres de sont ordonnés par N?
Réponse: Comme on peut le voir dans la réponse et les commentaires, la réponse est que pour chaque chaîne non triée, il existe un réseau de tri qui trie toutes les autres chaînes. Une simple preuve en est la suivante. Soit la chaîne telle que pour toujours et . Puisque n'est pas trié, après le tri, doit être à . Comparez avec chaque pour lequel . Comparez ensuite chaque paire telle sorte ques s k 0 k i s i = 1 ( i , j ) i ≠ k j ≠ k et plusieurs fois. Cela laisse la chaîne entière triée, sauf peut-être pour , qui n'est pas trié pour s , et pour certaines autres chaînes qui ont plus de 1 que s . Maintenantcomparez de k pour i = n downto 1 sauf pour le lieu où de k devrait aller s . Cela triera tout sauf l' art .
Mise à jour: je me demande ce qui se passe si nous limitons la profondeur du réseau à .
la source
Réponses:
Il semble que non. Ian Parberry fait référence à un article de Chung et Ravikumar, où ils supposent une construction récursive d'un réseau de tri qui trie toutes les chaînes de bits sauf une, et déduisent en outre que le problème de la vérification d'un réseau de tri est - N P complet. Je ne trouve pas le papier original tout de suite, mais il correspond certainement à (mon) intuition.co NP
Modifier pour ajouter: Il est en fait très facile de trouver un tel réseau qui manque exactement une chaîne. La chaîne à manquer sera . Maintenant, vous voulez juste un circuit qui trie les n - 1 derniers bits, puis trie les n - 1 premiers bits. Ce circuit triera n'importe quoi avec au moins deux 1 s, triera évidemment la chaîne entièrement nulle et triera toute chaîne commençant par 0 .(1,0,…,0) n−1 n−1 1 0
la source