3

そのため、現在、変数の可能な値のドメインの作成に取り組んでいます。これは、私の場合は文字の配列です。私が扱うデータはそれほど小さくないため、たとえそうであったとしても、すべての char スロットで 2 つの値が許容される場合、11 スロットの配列には 2^11 の可能な値があり、実際には配列の量ではありません。持ってる。

このため、後で制約を使用してドメインを削減する代わりに、既に制約に基づいてドメインを生成しようとしています。

制約は基本的に、同じ文字のブロックとブロックの順序を示します。次のようになります。

#,2,G,1

これが私が持っている制限であり、配列のサイズが5であるとしましょう。空の配列は次のようになります

[_][_][_][_][_]

制約に従ってすべてを先頭に積み重ねるだけで、ドメインの 1 つの要素を作成できるようになりました。

[#][#][G][_][_]

ただし、これの他のすべての可能なバリアントを生成する必要があります。それらは次のとおりです。

[#][#][_][G][_]
[#][#][_][_][G]
[_][#][#][G][_]
[_][#][#][_][G]
[_][_][#][#][G]

このように、ドメインの要素を 2^5 から 6 に削減することに成功しました。

質問:誰かがこれを行う方法を提供できますか?コードである必要はありません。基本的なアイデアだけで十分でしょう

4

1 に答える 1

2

あなたが何を求めているのかまだよくわかりません。現時点では、Constraint Satisfaction Problemがあるようです。またはおそらく文法。いずれの場合も、解決策は、再帰アルゴリズムを使用して、各レベル (配列インデックス) で可能性を列挙することです。

于 2013-03-21T23:46:25.890 に答える