私は非常に大きなn*m
行列を持っていS
ます。F
の中に部分行列が存在するかどうかを効率的に判断したいS
。大きな行列S
のサイズは まで500*500
です。
明確にするために、次のことを考慮してください。
S = 1 2 3
4 5 6
7 8 9
F1 = 2 3
5 6
F2 = 1 2
4 6
このような場合には:
F1
内側にありますS
F2
中にありませんS
行列の各要素は32-bit
整数です。F
が の部分行列であるかどうかを見つけるために、ブルート フォース アプローチを使用することしか考えられませんS
。効果的なアルゴリズムを見つけるためにグーグルで検索しましたが、何も見つかりません。
それをより速く行うためのアルゴリズムまたは原則はありますか? (または、ブルート フォース アプローチを最適化する方法はあるのでしょうか?)
PS 統計データ
A total of 8 S
On average, each S will be matched against about 44 F.
The probability of success match (i.e. F appears in a S) is
19%.