私は非常に大きな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内側にありますSF2中にありません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%.
中 を見つける


-