Algorithm 涉及时间间隔及其重叠的问题

Algorithm 涉及时间间隔及其重叠的问题,algorithm,data-structures,Algorithm,Data Structures,我最近遇到了很多问题,涉及时间间隔作为输入。有些时间间隔是重叠的。这取决于您必须对输入执行优化、最大化或最小化操作。我不能解决这样的问题。事实上,我甚至无法开始思考这些问题 以下是一个例子: 比如说,你是一个资源持有者。这种资源的供应是无限的 有些人在特定的时间间隔内需要该资源。换班时间:下午四时至八时 可能存在重叠间隔。例:下午五时至七时,下午三时至六时 等等 根据这些时间间隔及其重叠性质,您必须计算出需要多少不同的这些资源实例 例如输入: 8 am - 9 am 8:30

我最近遇到了很多问题,涉及时间间隔作为输入。有些时间间隔是重叠的。这取决于您必须对输入执行优化、最大化或最小化操作。我不能解决这样的问题。事实上,我甚至无法开始思考这些问题

以下是一个例子:

  • 比如说,你是一个资源持有者。这种资源的供应是无限的

  • 有些人在特定的时间间隔内需要该资源。换班时间:下午四时至八时

  • 可能存在重叠间隔。例:下午五时至七时,下午三时至六时 等等

  • 根据这些时间间隔及其重叠性质,您必须计算出需要多少不同的这些资源实例

    例如输入:

         8 am - 9 am
         8:30 am to 9:15 am
         9.30 am to 1040 am
    
         In this case, the first two intervals overlap. So two instances of resources will be required. The third interval is not overlapping, so the person with that interval can reuse the resource returned by any of the earlier ones.
    
    因此,在这种情况下,所需的最低资源为2


    我不需要解决办法。我需要一些关于如何解决问题的建议。有解决这些问题的算法吗?我应该读什么/学习什么。是否有任何数据结构可能会有所帮助

    解决这类问题需要使用的数据结构是。区间图的每个区间都有一个顶点,每对顶点之间都有一条边,对应于相交的区间

    以下间隔图对应于示例中的三个间隔集:

    A: 8:00-9:00
    B: 8:30-9:15
    C: 9:30-10:40
    

    此数据结构捕获了大多数涉及时间间隔的问题的相关方面,因此有助于高效地解决这些问题。此外,给定一组区间(由2元组列表表示),可以在多项式时间内构造区间图

    对于区间图,可以有效地解决一般图中的许多NP难问题,如查找或查找


    要解决您指定的特定问题,首先构造区间图
    G
    ,同时为每个顶点存储其相应区间的完成时间。还要初始化一组资源
    R={1}
    ,这些资源最初只包含一个资源:资源编号1。根据其完成时间按排序顺序考虑每个代码<代码> >代码< >代码> >代码>。分配给
    v
    资源编号
    i
    ,其中
    i
    R
    v
    的邻居未使用的最小资源。如果不存在这样的资源(因为
    v
    的邻居使用
    R
    中的所有资源),请将新资源
    i=max{R}+1
    插入
    R
    并将其分配给
    v
    。资源的最佳数量(也称为问题的解决方案)是集合的大小
    R

    任何时刻重叠的间隔数瞬间T是小于T的间隔开始时间数减去小于或等于T的间隔结束时间数。 许多问题,如上面的具体问题,可以通过将开始时间和结束时间分别放入一个排序列表或树中来解决,这样您就可以了解这些计数是如何随时间变化的

    例如,要解决此问题,请在单个列表中对开始和结束时间进行排序:

    800S, 900E, 830S, 915E, 930S, 1040E
    
    然后对它们进行排序:

    800S, 830S, 900E, 915E, 930S, 1040E
    
    运行列表并计数,每个开始时间加1,每个结束时间减1:

         1     2     1     0      1     0
    

    重叠间隔的最大数量为2。

    这是一个很好的答案。以前从未听说过区间图。你能推荐一个资源(维基百科页面以外的资源)来进一步了解这个数据结构吗?是的helpful@neerajdorle,佐治亚理工学院的一系列短片讲座很好地解释了以下主题:。他们甚至用你遇到的问题的变体来演示这个概念。谢谢你的回答。简单易用!