2017-02-12 4 views
1

ソートネットワークは、2つの入力コンパレータの配列で、n個の要素の入力シーケンスをソートできます。 は、例えば、ここでソーティングネットワークは、9素子の入力のための:ソートネットワークの削減

enter image description here

縦線のそれぞれが、2入力比較器であり、入力シーケンスは、左側に入り、ソート順序が右側に表示されます。

私の質問は、有効なn入力ソートネットワークのトップラインまたはボトムラインを削除すると、(n-1)個の入力に対して有効なソートネットワークが完成することを証明する方法ですか?中間線の削除はどうですか?

これはソートネットワークのグラフ表示を使用して表示できると感じましたが、適切な表現が見つかりません。

+1

最後の行の要素が他の要素よりも常に大きいことを想像してください。そのような場合、その要素との比較は決して要素を移動することはありませんが、残りの入力を並べ替えます。最後の行との比較は決して何も変更しないので、それらを削除すると実際にn - 1要素をソートできることを意味します。 – Morwenn

答えて

1

本当にトップラインまたはボトムラインを削除できます。これを証明する1つの方法は、0と1のすべてのシーケンスが正しくソートされている場合にのみソートネットワークが正しいことを示すKnuthの0-1原則を使用することです。 Sをソートネットワークとし、S'Sとし、一番上の行を削除します。 xS'の0-1入力とします。 0xSに渡します。誘導によって、kステージ以降の値が一致することがわかります(削除されたトップラインを除いて)。トップラインを含むすべてのゲートがno-opsです。したがって、S'は正しいソートネットワークです。

一般に、中間行は削除できません。例えば、ネットワークを考えてみてください。

+0

あなたはこの声明を説明することができますか?「誘導によって、k段階後の値が一致することを示すことができますか?一番上の行にゼロ入力を渡すと、この値がその行にとどまり、最初の出力になるので、安全に削除できます。しかし、私はこの推論がトップラインに1を渡すことでどのように成立するのか、kステージ後に1xとxの値が一致することを示す方法を見ていませんか? – MichaelSB

+0

@MichaelSB私たちは 'S 'が正しくソートされていることを証明しているので、普遍的な量指定子はすべての入力' x'から 'S''に渡っています。 'S'が正しくソートされていると仮定しているので、' S'( '0x')への参照入力を選択できます。 –

+0

ああ、私はそれを持っていると思う、ありがとう! – MichaelSB