【问题标题】:Find interval pattern in set of intervals在一组区间中查找区间模式
【发布时间】:2015-12-17 08:15:45
【问题描述】:

假设我注册了一组“开启”间隔 [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  ]

      ----   - -

- --- ----   - - --- -- ----    - --

【问题讨论】:

  • 也许你可以定义“最佳”?

标签: algorithm optimization pattern-matching intervals


【解决方案1】:

简单的算法(不一定是最有效的):选择偏移量 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 中的所有区间做同样的事情,并收集所有得到的偏移值。然后我们计算每个偏移量的重叠。

【讨论】:

    【解决方案2】:

    你可以定义:

    并计算:

    【讨论】:

    • 有没有方便的方法把乳胶配方放在这里?
    • 什么?? a 和 b 在哪里?
    • @gen-y-s 由 OP 定义。
    • mmh ...我想我在错误的问答板上给出数学答案:/
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-01
    • 1970-01-01
    • 2022-01-26
    相关资源
    最近更新 更多