Algorithm 在区间集合中查找区间模式
假设我注册了一组“开”间隔[tstart,tend]Algorithm 在区间集合中查找区间模式,algorithm,optimization,pattern-matching,intervals,Algorithm,Optimization,Pattern Matching,Intervals,假设我注册了一组“开”间隔[tstart,tend] a=[[0+t,3.9+t],[7.1+t,8.0+t],[9.02+t,10.2+t] 如何找到此模式与另一组间隔匹配的最佳匹配偏移量t: b=[[5,6]、[7,10]、[11,15]、[18,19]、[20,21]…] [ t ] ---- - - - --- ---- - - --- -- ---- - -- 平凡算法(不一定是最有效的):选择偏移量t的所有值,使每组的一个间隔在其起点或终点对齐。对于
a=[[0+t,3.9+t],[7.1+t,8.0+t],[9.02+t,10.2+t]
如何找到此模式与另一组间隔匹配的最佳匹配偏移量t:
b=[[5,6]、[7,10]、[11,15]、[18,19]、[20,21]…]
[ t ]
---- - -
- --- ---- - - --- -- ---- - --
平凡算法(不一定是最有效的):选择偏移量t的所有值,使每组的一个间隔在其起点或终点对齐。对于这些偏移值中的每一个,计算总重叠以找到最大复杂度为O(n^3),其中n是集合的大小(a和b的最大值)。给定偏移的重叠计算为O(n),可能的偏移值数量为O(n^2)
在您的示例中,偏移量为:将间隔a[0]的开始与b中所有间隔的开始相匹配: 5-0=5,7-0=7,11=0=11 将间隔a[0]的结尾与b中所有间隔的结尾相匹配: 6-3.9=2.1,10-3.9=6.1,15-3.9=11.1 我们继续对a中的所有间隔执行相同的操作,并收集所有生成的偏移值。然后,我们计算每个偏移量的重叠。普通算法(不一定是最有效的):选择偏移量t的所有值,使每组中的一个间隔在其起点或终点对齐。对于这些偏移值中的每一个,计算总重叠以找到最大复杂度为O(n^3),其中n是集合的大小(a和b的最大值)。给定偏移的重叠计算为O(n),可能的偏移值数量为O(n^2) 在您的示例中,偏移量为:
将间隔a[0]的开始与b中所有间隔的开始相匹配: 5-0=5,7-0=7,11=0=11 将间隔a[0]的结尾与b中所有间隔的结尾相匹配: 6-3.9=2.1,10-3.9=6.1,15-3.9=11.1 我们继续对a中的所有间隔执行相同的操作,并收集所有生成的偏移值。然后我们计算每个偏移的重叠。您可以定义:
也许你可以定义“最佳”?也许你可以定义“最佳”?这里有没有一种方便的方法来添加乳胶配方?什么??a和b在哪里?@gen-y-s由OP.mmh定义。。。我猜我是在错误的问答板上给出数学答案的:/有没有一种方便的方法把乳胶公式放在这里?什么??a和b在哪里?@gen-y-s由OP.mmh定义。。。我猜我在错误的问答板上给出了数学答案:/