この質問はおそらくトピックとオフトピックの境界線にありますが、ここで同様の質問を見てきましたので、質問します。
私はユニークな -SATソルバーを実装しています。そのソルバーの入力は、最大1つの条件を満たす割り当てを持つ -CNF式です。その実用的な動作をテストするには、このような式のセットが必要です。Webでそれらを検索しましたが、何も見つかりませんでした(一方、通常のk -CNF式のスイートは非常に簡単に見つかります)。
Unique -SATインスタンスはどこにありますか?
または、一意に満たすことができるインスタンスを生成する手順を知って満足するでしょう。私が知っている唯一のアプローチは、植えられたSATインスタンス生成の名前の下に行きます:変数の割り当てをランダムに生成し、そのような割り当てに同意する句のみを生成します。このアプローチは、以下の理由により、私の目的には不十分です。
- 得られた式には、さらに望ましくない満足のいく割り当てがある場合があります。
- 希望する割り当てによって式が一意に満たされることを確認するには、それに一致するすべての可能な句を導入する必要があります。これにより、多すぎる節を含む数式が生成されますが、おそらく簡単に解決できるため、ソルバーの最悪の場合の動作を表すものではありません。節の数を合理的に保ちながら一意性を効率的に強制する方法は私には明らかではありません。
合理的な数の句を使用して一意に満たすことができる式を生成するにはどうすればよいですか?合理 I最大値から平均遠い。