一种基于区域的多智能体互联网数据采集任务调度方法与流程

文档序号:12733246阅读:375来源:国知局
一种基于区域的多智能体互联网数据采集任务调度方法与流程

本发明涉及数据采集领域,尤其涉及一种分布式网络爬虫采集任务调度的方法。



背景技术:

为满足海量数据爬取的需求,现代爬虫系统一般采用大规模分布式架构。在这种架构中,如何高效配置多个数据采集节点的资源成为提升爬虫系统性能的关键问题。传统的分布式爬虫系统一般采用随机任务调度的机制或类似机制。这种机制的问题在于没有考虑爬取目标的地理位置差异,以及多个采集节点在采集、存储方面的带宽差异因素,更没有运用相应的带宽估算方法,因此无法做到资源的最优配置,从而影响了分布式爬虫系统的数据采集性能。



技术实现要素:

本发明为克服上述不足之处,设计了一种智能体节点与数据源所在区域的带宽级别估算方法,并在将多个采集任务分配给多个采集节点时,综合每个采集节点的状态信息、带宽估计以及待分配任务的信息进行算法处理,得出优化分配结果。

本发明的目的是通过以下技术方案来实现的:一种基于区域的多智能体互联网数据采集任务调度方法,具体为:假定在环境中存在L个目标任务T1,T2,…,TL和K个智能体节点A1,A2,…,AK,若K>L,则执行单任务分配算法;否则执行多任务分配算法;

所述的单任务分配算法步骤如下:

(1)针对每个智能体节点Ai与任务Tj,计算区域判决指标cij=(任务数+1)/(BC+BS),找出区域判决指标计算结果最小的节点。

BC表示任务的目标区域与智能体所在区域的匹配度,计算方法如下:任务的目标区域可分为国内、亚洲其他地区、欧洲、美洲,任务的目标区域与智能体在同一区域内的话BC=2,否则BC=1。

BS表示存储区域与智能体所在区域的匹配度,计算方法如下:存储区域分为国内、亚洲其它地区、欧洲、美洲,存储区域与智能体在同一区域内的话BS=1,否则BS=2。

(2)将待分配的任务分配给步骤(1)计算得到的节点。

所述的多任务分配算法步骤如下:

(1)在所有任务中每次分配K项,直到剩余任务数小于K。剩余任务可以在任务数增加后再行分配,也可以以单任务方式分配;

(2)已知智能体Ai(i=1,2,…,K)完成目标任务Tj(j=1,2,…,K)的代价矩阵为C=(cij)(i,j=1,2,…,K),其中cij的计算方法与单任务时相同;

(3)将(cij)的每行元素都减去该行的最小元素,再将所得新系数矩阵的每列元素中减去该列的最小元素,获得等价代价矩阵C’=(c'ij);

(4)作最少的直线覆盖所有0元素,通过找0元素进行试分配。方法是:先找有没有可以覆盖K个元素的直线(行或列),若有则作该直线,若没有则再找有没有可以覆盖K-1个元素的直线并作该直线,依此方法进行下去,直到所有0元素被覆盖。若这样能找出不同行不同列的K个0元素,转步骤(6),否则转步骤(5);

(5)调整代价矩阵C’,在未被直线穿过的数集中,找出最小的数z,让该数集对应的所有行中的所有数减去z,而让所有被直线穿过的列中的数加上z,以保证系数矩阵中不出现负元素,得到新系数矩阵。新系数矩阵的最优解和原问题相同,此时去掉直线,用新系数矩阵代替C’,返回步骤(3);

(6)以这K个独立0元素对应解矩阵(c’ij)中的元素为1,其余为0,得到最优解矩阵(c”ij),即此时矩阵元素中c”ij=1所代表的结果是智能体i被分配了任务j(i,j=1,2,…,K)。

本发明的有益效果在于提供一种根据智能体节点和数据源所在区域的带宽级别估算机制,并基于带宽数据、任务信息及节点状态信息作出综合分配运算,在众多潜在的匹配方案中寻找一个总体(指采集效用和带宽消耗之综合)优化的任务分配方案,它在数学形式上表现为在离散的、有限的数据结构上,寻找一个满足给定约束条件并使目标代价最小的解,从而可以大幅提高分布式爬虫系统的爬取效率。

附图说明

图1是本发明的整体流程图;

图2是本发明的单任务分配算法流程图;

图3是本发明的多任务分配算法流程图。

图4是本发明的多任务分配算法案例。

具体实施方式

下面结合附图和具体实施例对本发明进行进一步描述,但本发明的保护范围并不仅限于此。

如图1所示,本发明提供的一种基于区域的多智能体互联网数据采集任务调度方法,具体为:假定在环境中存在L个目标任务T1,T2,…,TL和K个智能体节点A1,A2,…,AK,若K>L,则执行单任务分配算法;否则执行多任务分配算法;

所述的单任务分配算法步骤如下:

(1)针对每个智能体节点Ai与任务Tj,计算区域判决指标cij=(任务数+1)/(BC+BS),找出区域判决指标计算结果最小的节点。

BC表示任务的目标区域与智能体所在区域的匹配度,计算方法如下:任务的目标区域可分为国内、亚洲其他地区、欧洲、美洲,任务的目标区域与智能体在同一区域内的话BC=2,否则BC=1。

BS表示存储区域与智能体所在区域的匹配度,计算方法如下:存储区域分为国内、亚洲其它地区、欧洲、美洲,存储区域与智能体在同一区域内的话BS=1,否则BS=2。

(2)将待分配的任务分配给步骤(1)计算得到的节点。

所述的多任务分配算法步骤如下:

(1)在所有任务中每次分配K项,直到剩余任务数小于K。剩余任务可以在任务数增加后再行分配,也可以以单任务方式分配;

(2)已知智能体Ai(i=1,2,…,K)完成目标任务Tj(j=1,2,…,K)的代价矩阵为C=(cij)(i,j=1,2,…,K),其中cij的计算方法与单任务时相同;

(3)将(cij)的每行元素都减去该行的最小元素,再将所得新系数矩阵的每列元素中减去该列的最小元素,获得等价代价矩阵C’=(c’ij);

(4)作最少的直线覆盖所有0元素,通过找0元素进行试分配。方法是:先找有没有可以覆盖K个元素的直线(行或列),若有则作该直线,若没有则再找有没有可以覆盖K-1个元素的直线并作该直线,依此方法进行下去,直到所有0元素被覆盖。若这样能找出不同行不同列的K个0元素,转步骤(6),否则转步骤(5);

(5)调整代价矩阵C’,在未被直线穿过的数集中,找出最小的数z,让该数集对应的所有行中的所有数减去z,而让所有被直线穿过的列中的数加上z,以保证系数矩阵中不出现负元素,得到新系数矩阵。新系数矩阵的最优解和原问题相同,此时去掉直线,用新系数矩阵代替C’,返回步骤(3);

(6)以这K个独立0元素对应解矩阵(c’ij)中的元素为1,其余为0,得到最优解矩阵(c”ij),即此时矩阵元素中c”ij=1所代表的结果是智能体i被分配了任务j(i,j=1,2,…,K),最低总耗费是C’中使所有=1的位置上各元素之和。

实施例1:本实施例中,在环境中存在1个目标任务T1,和6个智能体节点A1,A2,…,A6;因为K=6>L=1,所以执行单任务分配算法;单任务分配算法步骤如下:

(1)针对每个节点,计算(节点上已有任务数+1)/(BC+BS)(单位:1/Mbps),找出计算结果最小的节点。例如六个节点对应的数值依次为:3,3,2,4,1,3,则结果最小的节点是第五个节点。

(2)将待分配的任务分配给步骤(1)计算得到的节点,也就是第五个节点。

实施例2:本实施例中,在环境中存在5个目标任务T1,T2,…,T5,4个智能体节点A1,A2,A3,A4;因为K=4<L=5,所以执行多任务分配算法;多任务分配算法步骤如下:

(1)在所有任务中每次分配4项,直到剩余任务数小于4。剩余任务可以在任务数增加后再行分配,也可以以单任务方式分配;

(2)已知智能体Ai(i=1,2,3,4)完成目标任务Tj(j=1,2,3,4)的代价矩阵为C=(cij)(i,j=1,2,3,4),其中cij的计算方法与单任务时相同;代价矩阵C如图4(a)所示。

(3)将(cij)的每行元素都减去该行的最小元素,见图4(b),第一行减2,第二行减4,第三行减1,第四行减2;再将所得新系数矩阵的每列元素中减去该列的最小元素,获得等价代价矩阵C’=(c’ij),如图4(c)所示;

(4)作最少的直线覆盖所有0元素,通过找0元素进行试分配,如。具体为:先找有没有可以覆盖4个元素的直线(行或列),没有找到,继续找有没有可以覆盖3个元素的直线,仍然没有,继续找有没有覆盖2个元素的直线,找到2条作直线,继续找有没有覆盖1个元素的直线,找到1条作直线。此时所有0元素被覆盖,如图4(d)所示。不同行不同列的0元素不足4个,则转步骤(5);

(5)调整代价矩阵C’,在未被直线穿过的数集中,找出最小的数z=2,让该数集对应的所有行中的所有数减去z,而让所有被直线穿过的列中的数加上z,以保证系数矩阵中不出现负元素,得到新系数矩阵,如图4(e)所示。新系数矩阵的最优解和原问题相同,此时去掉直线,用新系数矩阵代替C’;此时不同行不同列的0元素为4个,如图4(f),执行步骤(6);

(6)以这4个独立0元素对应解矩阵(c’ij)中的元素为1,其余为0,得到最优解矩阵(c”ij),如图4(g),即此时矩阵元素中c”ij=1所代表的结果是智能体i被分配了任务j(i,j=1,2,3,4),在本案例中,A1,A2,A3,A4分别被分配的任务是T4,T1,T2,T3,最低总耗费是C’中使所有=1的位置上各元素之和。

本发明的核心思想是优先为采集能力强的节点分配采集任务,同时兼顾采集能力弱的节点,从而使得分布式数据采集系统获得较高的采集性能。

以上所述乃是本发明的具体实施例及所运用的技术原理,若依本发明的构想所作的改变,其所产生的功能作用仍未超出说明书及附图所涵盖的精神时,仍应属本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1