Page 176 - 《软件学报》2020年第12期
P. 176

3842                                Journal of Software  软件学报 Vol.31, No.12, December 2020

             18.           End if
             19.        End for
             20.        将 u 从中 U 移除
             21.     End For
             22. End for
             例 4:如例 3 中的出现序列和坐标,假设每个用户的等待时间为 2 个时间段,算法 1 的执行过程和匹配结果
         如图 4 所示.首先,在 t 2 时刻,u 1 到达最长等待时间.此时可服务的工人为 w 1 和 w 2 ,算法执行的匹配元组是
         (w 1 ,u 1 ,p 6 ),如图 4(a)所示.在 t 4 时刻,u 2 到达最长等待时间,此时可服务的工人为 w 2 和 w 3 ,p 6 是被占用状态,算法执

         行的匹配元组是(w 2 ,u 2 ,p 1 ),如图 4(b)所示.在 t 6 时刻,u 3 到达最长等待时间,此时可服务的工人为 w 3 和 w 4 ,p 1 和 p 6
         是被占用状态,算法执行的匹配元组是(w 3 ,u 3 ,p 2 ),如图 4(c)所示.在 t 8 时刻,u 4 和 u 5 到达最长等待时间,此时可服务
         的工人为 w 4 和 w 5 , p 1 、p 2 和 p 6 是被占用状态.由于 p 1 和 p 2 都被占用,无论当前怎么组合,算法都无法找到稳定
         元组,如图 4(d)所示.在 t 11 时刻,u 6 到达最长等待时间,此时可服务的工人为 p,w 5 和 w 6 ,p 1 ,p 2 和 p 6 是被占用状态,
         算法执行的匹配元组是(w 6 ,u 4 ,p 5 ),如图 4(e)所示.图 4(f)描述了该算法最终的匹配结果,成功匹配 4 个稳定元组.
         任务匹配率为 66.67%.
               y                          y                           y
               9                          9                         9
               8              u 1         8                         8          p 6
               7          p 6             7          p 6            7                p 4
                 w 2  p 5       p 4        w 2  p 5       p 4             p 5
               6                   w 1    6                         6
                                                    w 3                        w 3
               5      p 3                 5 u 2  p 3                5      p 3
               4                          4             u 3         4              u 3
               3   u 2  p 1  p 2          3    p 1                  3    p 1   p 2
               2                          2          p 2            2      w 4         u 5
               1                          1                         1
                                                                        u 4
                  12 3 4 5 678 9 10 x        1 2 3 4 5 6 78 9 10 x        1 2 3 4 5 6 7 89 10 x
                 (a) t 2:u 1 到达最长等待时间             (b) t 4:u 2 到达最长等待时间            (c) t 6:u 3 到达最长等待时间
                y                           y                        y
              9                           9             w 6          9
              8                           8                          8      w 6     u 1
                          p 6                    u 6  p 6                p 5
              7                           7                          7          p 6
                    p 5         p 4            p 5         p 4         w 2
              6                           6                          6       u 6  w 3   w 1
              5                           5                          5                p 4
                      p 3                        p 3                         p 3
              4                           4                          4              u 3
              3                           3                          3  u 2
                    p 1   p 2                p 1     p 2                   p 1
              2                           2                          2
                      w 4        u 5             w 4     w 5                w 4         u 5
              1                           1                          1          p 2
                  u 4      w 5                                           u 4      w 5
                 12 3 4 5 67 89 10 x         1 2 34 56 7 8 9 10 x         1 2 3 4 5 67 89 10 x
               (d) t 8:u 4 和 u 5 到达最长等待时间            (e) t 11:w 5 到达最长等待时间                (f)  最终匹配结果
                               Fig.4    Execution process of the delay matching algorithm
                                        图 4   延迟匹配算法的执行过程

             算法复杂度分析:算法每个时刻需要执行一次,每次需要遍历用户集 U t 、工人集 W t 和工作点集 P,复杂度是
         O(|U t |×|W t |×|P t |),最差情况的复杂度为 O(|U|×|W|×|P|).综上,延迟匹配算法的复杂度 O(|U|×|W|×|P|) .算法需要记录
         3 种对象的信息,分别记录用户和工作点之间、工人和工作点之间的距离,空间复杂度为 O(|U|×|P|+|W|×|P|).

         4    改进算法

             在上一节中提出了延迟匹配算法.延迟匹配算法以距离为核心,优先查找相近的任务点和工人.虽然该算法
         可以求出一定数量的稳定匹配,但是由于它无法预知将来时刻工人和用户的分布,仅根据当前到达情况进行匹
   171   172   173   174   175   176   177   178   179   180   181