私のコンピューター サイエンス研究のコースでは、頻繁にアイテムセット マイニングを行うためのタイルを見つけるために、一連の制約とスコア定義を考え出す必要があります。データを含む行列は、1 と 0 で構成されます。
私の仕事は、タイリング (一定量のタイルを持つ) の一連の制約と、最大化する必要があるスコア関数を考え出すことです。タイルを重ねることができる解決策を考え始めたので、すべてのタイルの合計「面積」を計算するためのスコア関数を見つけようとしました。スコア関数は考えられるすべてのソリューションに対して評価する必要があることに注意してください。そのため、合計マトリックス (約 10 万個の要素を含む) を単純に調べて、それがタイルの一部であるかどうかを確認することはできません。ただし、2 つのタイル間のオーバーラップのみを考慮して、次のように考えました。
TotalArea = Sum_a_in_Tiles(Area(a)) - Sum_a/b_in_tiles(Overlap(a,b))
愚かなことに、3 つのタイルが重なり合う可能性を考慮していませんでした。私の質問は次のとおりです。タイルごとの面積と2つ(またはそれ以上)のタイル間のオーバーラップごとの面積のみを考慮して、n個のタイルの一般的なスコア関数を考え出すことは可能ですか?
いくつかのコードを提供することはできますが、その場合も、Comet と呼ばれるあいまいな言語でプログラムする必要があります :(