解锁点集匹配与动态服务选择定价的优势
1. 点集模式匹配算法
在几何模式匹配领域,存在多种匹配问题,包括点集、线段和多边形匹配。下面将详细介绍相关的算法和数据结构。
1.1 点集匹配的预处理
对于点集匹配问题,使用的数据结构T是一个AVL树,它包含样本集P中线段的长度,且T中的成员都是不同的。如果有多个线段长度相同为δ,它们会存储在与T中相应节点关联的χδ结构中。χδ的每个条目对应于样本集P中的一个线段ℓ = pipm,包含一个四元组{pi, pm, ptr1, ptr2},其中ptr1和ptr2分别指向对应于点pi和pm的两个AVL树Si和Sm。
对于样本集P中每个线段的端点pi,需要维护一个AVL树Si,它包含n - 1个节点,对应于P \ {ℓ}中的线段。Si中的每个节点对应一个线段ℓ′ = pjpk,包含一个四元组{(θ, d), (θ∗, d∗)},其中θ = ∠pjpipm,θ∗ = ∠pkpipm,d和d∗分别是pj和pk到点pi的距离。
预处理的时间和空间复杂度主要由为P中所有线段的端点构建Si所需的时间和空间决定,分别为O(n²logn)和O(n²)。
1.2 点集匹配的查询操作
在查询操作中,从查询集Q中选择一个线段ℓ1 = q1q2。设δ(q1q2) = d,如果在T中成功搜索到d(即l1的长度),则对于χd中的每个线段,都需要检查是否匹配。
将q1q2与χd中的每个成员pipj进行锚定(如果匹配失败,则将q1q2与pjpi进行锚定),并检查Q \ {ℓ1}中的线段与P中的线段是否存在匹配。对于Q \ {ℓ1}中的每个线段ℓ = qq′,计算一个四元组
超级会员免费看
订阅专栏 解锁全文
28

被折叠的 条评论
为什么被折叠?



