2D模式搜索算法

时间:2010-08-12 09:39:23

标签: javascript algorithm pattern-matching

我需要了解2D模式搜索算法。提示和链接非常感谢。

更重要的是:

给定M [m,n]的矩阵,其值为K
例子

000000000000
0000.01亿
010 1 00010010 = M,K = {0,1}
010 1 00010001
101 11 1010111

和矩阵L [i,j],其中K + {X}中的值表示“形状”
例如,字母“L”的形状

1 X
1 X = L
11

哪些算法可以回答以下问题:

  1. 可以在M?
  2. 中找到
  3. 在M中可以找到L的次数(析取的L's,没有常见的部分(1或0))
  4. 在M中可以找到L的次数(可以有常见的部分(1或0))
  5. 在M(不相交)中可以找到L和K(K的定义类似于L,K!= L)的次数 等。
  6. 实现的语言是JavaScript,但任何其他语言都可以。

    EDIT 还找到this PDF

1 个答案:

答案 0 :(得分:0)

看看这个presentation它应该给你一个基本的知识。

X符号可以像通配符一样处理,因此它总是会匹配。

不知道你究竟是什么意思

  

在M(不相交)等中可以找到L和K(K定义为L)的次数。

K代表字母或形状(如L)?

确定不相交匹配的最大数量的问题将更难。方法如下:

  • 找到所有可能的比赛
  • 创建图表,其中node表示匹配,edge表示两个匹配具有公共字段。
  • 现在你必须在这个图中找到最大的独立集(wiki) - 图中的顶点集,其中没有两个是相邻的,因此不会违反问题约束。

编辑:如果您的形状是L,则可以有效地计算匹配。为列和行创建表,并为每个单元格检查是否向上和向右匹配。