数独パズルの解決策を見つけることと、その解決策が独自の解決策であることを証明することとの間に、どれほど複雑な違いがありますか?


14

したがって、通常、数独はですが、この質問はパズルに拡張されます。数独パズルの解決策を見つけるのを進めることができる多くの多項式時間演rules規則があります。ただし、セルの値またはセルの値の組み合わせを削除するには、値を推測して一連の結論に従うことが必要な場合があります。ただし、有効なソリューションが見つかると、ソリューションが一意であることを保証しません。有効な数独パズルには有効なソリューションが1つしかありませんが、ランダムパズルを生成する場合、検証に余分な計算が必要になる場合があります。9×9n2×n2n>3

したがって、私の質問は、特定の多項式時間演rules規則のセット(たとえば、数独戦略で説明されている最も一般的なセット)を許可し、値を推測し、結論に従うことである場合、それを決定するのがどれほど難しいかです与えられたパズルのユニークなソリューションと、ユニークではないソリューションの数という点で、たった1つのソリューションを見つけるのか?特定のクラスのパズルに漸近的な違いはありますか?

回答:


14

YatoとSetaは、すべての定数について、数独パズルの解が与えられると、別の解があるかどうかを判断するのはNP完全であることを示します。彼らは、同じ特性が他のパズルによっても満たされることを示しています。mm


おかげで、質問を十分に正確に定式化したかどうかはわかりませんでしたが、これは頭に釘を打ちます。したがって、1つの解決策を見つけたとしても、別の解決策があるかどうかを知ることはNP完全です。清潔できれい!ありがとう、+ 1
user2566092

1

私があなたを正しく理解していれば、あなたはあなたのソフトウェアが生成した数独パズルをチェックして、それらが有効かどうかを確認しようとしています。

「有効」であることだけに関心がある場合、ユヴァルフィルマスはすでにNP完全であることの証拠を指摘しています。

しかし、人が解決を楽しむ新しい数独パズルを見つけることを目的とする場合、問題はそれほど難しくありません。(「ロジック」を使用して解決できないパズルのため、多くの値を推測するのは楽しいことではありません!)したがって、個人的に推測の数を最大4に制限し、証明できないパズルは拒否しますあなたが考えるものの制限内でユニークなソリューションは合理的です。

上記を行うと、標準のバックトラッキングを使用して(可能な範囲内で)考えられるすべての推測にアクセスし、NPが完了するよりも1つのソリューションしかないことを示す方がはるかに簡単です。

さらに、必要な推論ルールの複雑さと必要な推測の数に基づいて、パズルの難易度をスコアリングできます。


0

パズルがユニークであることを証明するために、推測が必要なセルはすべて分岐しなければなりません。単純に答えを見つけるために検索を行う場合、これは一般にバックトラッキングで行われます。ソリューションは、完全なボードにつながる決定ツリーの最初のパスです。一意性を証明するために、有効なソリューションにつながるのは1つのパスのみであることを示す必要があります。これは、実行時間の観点から物事を定義することが非常に困難になる場所です。複雑さは、実際の問題に非常に関係しています。発生する可能性が極めて低い純粋な最悪のシナリオを検討している場合、それらは同じ複雑さであると考えることができます。

最悪のシナリオでは、解決を行うとき、解は検索可能なツリーの最終的な可能なブランチ内にあります。ツリーを検索するには、ツリー全体を検索する必要がありましたが、一意性を検索するには、まったく同じパスをたどって同じ検索が必要になります。

ただし、現実的にはそうではなく、ほとんどすべての場合、組み合わせ設計の検索が含まれるため、1つのソリューションの検索は、すべてのソリューションの検索よりも常に高速です。

一般に、これらの問題の両方は、悪化していなければ、指数関数的な実行時間にしっかりと定着しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.