0

目的

これらの制約に従う必要がある実験計画のために、ラテン方陣 (数独のようなシーケンス) を設計しています。

  • 値を続けて繰り返すことはできません
  • 列内で値を繰り返すことはできません
  • 2 つの行でペアごとに値を繰り返すことはできません

最初の 3 つの制約の例:

2     3    5    7    11   13
7     2    11   3    13   5
11    5    2    13   7    3
3     7    13   2    5    11
5     13   3    11   2    7
13    11   7    5    3    2 

ここでは、素数を選択しましたが、値は任意です (6 つの異なる値がある限り)。これは 6 x 6 グリッドの数独と同じですが、行全体で繰り返されるペア (バイグラム) がないという追加の制約があることに注意してください。つまり2 3、最初の行にのみ表示され、他の行には表示されず、他のすべてのペアについても同様です。

  • 値は、これらの制約に適合する別の 6 つの値とペアにする必要があります。
    • 2 番目の設定値を続けて繰り返すことはできません
    • 2 番目に設定された値を列で繰り返すことはできません
    • 第 1 セットの値と組み合わせると、第 2 セットの値を繰り返すことはできません。

つまり、最初の 6 つの値とペアになる別の 6 つの値 (これも任意です。「a、b、c、d、e、f」のいずれか) が必要です。最後の制約は、 ( 2, a)どこでも使用すると、再度使用できないことを意味します。

最後の 2 番目のセットの制約が問題です。n = 6 の nxn グリッドの解はありません。ラテン方陣の「ちょっとした」直交ペアを作成するために、繰り返しの数を最小限に抑えたいと考えています。

質問

以前にこの問題に遭遇したことがありますか? (解決策を生成するツールがあれば、それは素晴らしいことです。) この目的のために必要な例は 1 つだけです。すでにいくつかの異なる構築戦略を試しました。

そのためのソルバーを作成するというアイデアをいじっていますが、何かが既に存在する場合はそれを避けたいと考えています。

4

2 に答える 2

2

見てみましょう:ダンシング リンク

コンピューター サイエンスでは、DLX とも呼ばれる Dancing Links は、Donald Knuth がアルゴリズム X を効率的に実装するために提案した手法です。よく知られている正確なカバーの問題には、タイリング、N クイーン問題、数独などがあります。

于 2009-11-18T17:06:24.893 に答える