目的
これらの制約に従う必要がある実験計画のために、ラテン方陣 (数独のようなシーケンス) を設計しています。
- 値を続けて繰り返すことはできません
- 列内で値を繰り返すことはできません
- 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 つだけです。すでにいくつかの異なる構築戦略を試しました。
そのためのソルバーを作成するというアイデアをいじっていますが、何かが既に存在する場合はそれを避けたいと考えています。