比較ネットワークが表示されます。比較ネットワークが並べ替えネットワークであるかどうかをどのように判断できますか?下の画像には、選択ソートおよび挿入ソートネットワークの例があります。その意図は、比較ネットワークを持ち、数値をソートすることです。この場合2 ^ nの値をテストすると、2 ^ 8になります。これは、それをテストするための多くの|非効率的な方法です。これが有効なソーティングネットワークであることを確認するための数学モデル/証明を探しています。
比較ネットワークが表示されます。比較ネットワークが並べ替えネットワークであるかどうかをどのように判断できますか?下の画像には、選択ソートおよび挿入ソートネットワークの例があります。その意図は、比較ネットワークを持ち、数値をソートすることです。この場合2 ^ nの値をテストすると、2 ^ 8になります。これは、それをテストするための多くの|非効率的な方法です。これが有効なソーティングネットワークであることを確認するための数学モデル/証明を探しています。
回答:
一般に、特定の比較ネットワークが本当に正しいソーティングネットワークであるかどうかを確認することは、Co-NPの完全な問題です。テストでチェックする場合は、指数関数的に多くのテストを試す必要があります。
特に、単一の値を除いてすべてを正しくソートするソートネットワークが存在するため、ネットワークにいくつかの入力を供給するだけでは、ネットワークが正しいかどうかをテストすることはできません。
1つの標準的な方法は、ゼロと1のみで構成される入力すべてを正しくソートするかどうかをテストすることです。その場合、すべての入力(0と1に限定されないものも含む)をソートすることがわかります。ただし、これには指数関数的に多くのテストが必要です。さらに、テストの数を大幅に減らすことはできません。0から1の入力の場合、少なくともテストが必要であることを証明して、ソーティングネットワークが正確であることを証明できます。2 n − n − 1
あるいは、入力が順列であるテストを使用できます。これにより、必要なテストの数が多少減りますが、それでも指数関数的に多くのテストが必要です。特に、テストは必要かつ十分です。C (N 、⌊ N / 2 ⌋ )- 1
これらの事実の証明については、次の論文を参照してください。
最適ソーティングネットワーク検証の計算複雑さについて。イアン・パーベリー。Parle'91 Parallel Architectures and Languages Europe、1991。
ソートおよび関連するネットワークのテストセットのサイズの制限。ムン・ジョンチョンとB.ラビクマー。離散数学、第81巻、pp.1--9、1990年4月。
あなたの質問を引用する:
これが有効なソーティングネットワークであることを確認するための数学モデル/証明を探しています。
一方でDWの(素晴らしい)回答一般的なケースを扱う、私はあなたの具体的な例を考えてみます。入力のこの形式のネットワークは、誘導によるソーティングネットワークであることが示されます(図については画像を参照してください)。
一般的なソーティングネットワークを見ると、値のすべてのシーケンス(ソーティングネットワークに適切な長さ)が正しくソートされていることを証明する方法がわからない場合があります。しかし、私はこの素晴らしいトリック、タスクを単純化する方法について学びました:
ソーティングネットワークが「0」と「1」のみで構成されるすべてのシーケンス(正しい長さ)を正しくソートすると、すべてのシーケンス(正しい長さ)が正しくソートされます。もちろん、「0」と「1」は、ソーティングネットワークのドメイン内の個別の要素のプレースホルダーです。
したがって、次のような証明を作成できます。
残念ながら、少なくともチューリングマシンを使用して証明を構築する場合は、徹底的なテストより安くはありません。もちろん、特定のソーティングネットワークを見ると、簡単な証明を作成する方法について独創的なアイデアがあるかもしれません。しかし、一般に、このような証明を構築するためのアルゴリズムは、すべてのバイナリ文字列をテストするのと同じくらい複雑です。これは、プルーフィングソーティングネットワークが、他の回答で概説されているNP完全複雑度クラスに関連しているためです。
哲学的な結果は次のとおりです。各分類ネットワークの正確さの創造的な証拠を見つけることができると信じるとき、あなたはまた、あなたの脳がチューリング機械ではない可能性が非常に高いと信じています。
「0-1原理」は、並列ソートアルゴリズムの正確性を証明するためにも使用されます。これについて(うまくいけば)素晴らしいプレゼンテーションをGithubで持っています。
文字列の1つが正しくソートされていない場合(ソーティングネットワークが間違っていることが判明している場合)、これを使用して、そのバグのないソーティングネットワークを構築できます。間違った結果文字列の「1-0ボーダー」の位置に追加の比較を追加するだけです。