Das 0-1-Prinzip besagt, dass, wenn ein Sortiernetzwerk für alle 0-1-Sequenzen funktioniert, es für einen beliebigen Satz von Zahlen funktioniert. Gibt es ein so dass, wenn ein Netzwerk jede 0-1-Sequenz von S sortiert, es jede 0-1-Sequenz sortiert und die Größe von S in n polynomial ist ?
Wenn beispielsweise aus allen Sequenzen besteht, in denen höchstens zwei Läufe (Intervalle) von Einsen vorhanden sind, gibt es ein Sortiernetzwerk N und eine Sequenz, die nicht nach N geordnet ist, wenn alle Mitglieder von S nach N geordnet sind?
Antwort: Wie aus der Antwort und den Kommentaren zu sehen ist, gibt es für jede unsortierte Zeichenfolge ein Sortiernetzwerk, das jede andere Zeichenfolge sortiert. Ein einfacher Beweis dafür ist der folgende. Sei der String so, dass s i = 0 für immer i < k und s k = 1 ist . Da s unsortiert ist, sollte s k nach dem Sortieren 0 sein . Vergleiche k mit jedem i, für das s i = . Dann vergleiche jedes Paar ( i , j ) so, dass i ≠ k und j ≠ k oft sind. Dies lässt die ganze Zeichenfolge sortiert, außer vielleicht für s k , die für unsortiert ist s , und für bestimmte andere Zeichenfolgendie mehr 1 ‚s als s . Vergleichen Sie nun s k für i = n downto 1 mit Ausnahme der Stelle, an der s k in s stehen soll . Dies wird alles außer s sortieren.
Update: Ich frage mich, was passiert, wenn wir die Tiefe des Netzwerks auf .
quelle
Antworten:
Es scheint nicht. Ian Parberry nimmt Bezug auf einen Artikel von Chung und Ravikumar, wo sie angeblich eine rekursive Konstruktion eines Sortiernetz geben , die jeden bitstring aber ein, und weiter ableiten , dass das Problem der Überprüfung eines Sortiernetz ist sortiert - N P abgeschlossen. Ich kann das Originalpapier nicht sofort finden, aber es entspricht mit Sicherheit (meiner) Intuition.co NP
Bearbeiten zum Hinzufügen: Es ist tatsächlich sehr einfach, ein solches Netzwerk zu finden, in dem genau eine Zeichenfolge fehlt. Die zu übersehende Zeichenfolge ist . Jetzt wollen Sie nur eine Schaltung, die die letzten n - 1 Bits sortiert, und dann die ersten n - 1 Bits. Diese Schaltung wird alles mit mindestens zwei sortiert 1 s, wird offensichtlich Art des All-Null - String, und wird jede Zeichenfolge beginnend mit sortieren 0 .(1,0,…,0) n−1 n−1 1 0
quelle