一种基于社交关系的BitTorrent阻塞算法的制作方法

文档序号:12494265阅读:来源:国知局

技术特征:

1.一种基于社交关系的BitTorrent阻塞算法,其特征在于,包括以下步骤:

S1:Tracker服务器每隔10秒获取该下载集群内各个节点的最新朋友列表,并构造评分矩阵Mn*n

S2:对矩阵Mn*n做矩阵分解,用随机梯度下降法求出Mn*m矩阵,使得Mn*n=Wn*m*Qm*n成立,其中Mn*m是两个矩阵的乘积,其中m是隐因子的个数,Wn*m的每行表示节点对各个隐因子的喜欢程度,Qm*n的每一列表示节点在各个隐因子上的概率分布;

S3:对于某个上传节点,遍历其朋友列表和邻居节点,将对本节点所拥有资源块感兴趣的节点选出,组成候选列表;

S4:对于上传节点i和候选列表中的任意节点j,根据Wn*m计算出相似度S(i,j);

S5:根据j的活跃值、j与i的相似度以及j是否拥有i感兴趣的资源块,计算出i与j的亲密值;

S6:对候选列表中的节点按照计算出的亲密值从大到小排序,对前4个节点发送所需资源块,对其余候选节点阻塞。

2.根据权利要求1所述的基于社交关系的BitTorrent阻塞算法,其特征在于,所述Tracker服务器收集下载节点信息,并提供各节点信息给下载节点,当新节点加入下载时,会先与Tracker服务器连接注册;Tracker服务器将其邻居节点信息发给该节点,使其能与邻居节点连接起来,相互传输数据。

3.根据权利要求2所述的基于社交关系的BitTorrent阻塞算法,其特征在于,所述Tracker服务器获取各个节点的朋友列表、构造矩阵Mn*n及求出Wn*m并且每10秒计算一次。

4.根据权利要求3所述的基于社交关系的BitTorrent阻塞算法,其特征在于,所述步骤S1中构造评分矩阵Mn*n的过程如下:

矩阵An*n表示节点朋友关系矩阵,其中Aij表示节点i与j的亲近程度,值越高表示越亲近,其中i,j表示节点ID;SUMi表示i的朋友列表中的朋友个数,若j在i的朋友列表中,则Aij=1/SUMi,否则Aij=0;

矩阵Bn*n表示三度朋友关系的朋友矩阵,其中λ123=1且λ1≥λ2≥λ3≥0;

构造评分矩阵α为常量,且α+min(log(Bij))>0,即调整Mn*m中有值的各项,使之大于0,Mij表示节点i对节点j的评分,评分越高,表示节点间越亲密。

5.根据权利要求4所述的基于社交关系的BitTorrent阻塞算法,其特征在于,使用随机梯度下降法计算Mn*n=Wn*m*Qm*n中的Wn*m,具体操作如下:

其中表示矩阵Qm*n的第j列,是矩阵Wn*m第i行向量的转置,是一个列向量,对所有的Mij≠null,与Mij的值尽量接近,使得gap的值尽可能小;

引入加入权重函数有:

<mrow> <mover> <mrow> <mi>g</mi> <mi>a</mi> <mi>p</mi> </mrow> <mo>&OverBar;</mo> </mover> <mo>=</mo> <msub> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mi>f</mi> <mrow> <mo>(</mo> <msub> <mi>M</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>)</mo> </mrow> <mo>*</mo> <msup> <mrow> <mo>(</mo> <msubsup> <mi>w</mi> <mi>i</mi> <mi>T</mi> </msubsup> <msub> <mover> <mi>w</mi> <mo>~</mo> </mover> <mi>j</mi> </msub> <mo>-</mo> <msub> <mi>M</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>,</mo> </mrow>

其中权重函数

使用随机梯度下降法计算中的Wn*m

Wn*m=[w0,w1,w2,…,wn-1]T

6.根据权利要求5所述的基于社交关系的BitTorrent阻塞算法,其特征在于,计算节点i和节点j的相似度的公式如下:

S(i,j)=wi·wj

越相似的节点,其隐因子向量的夹角就越小,而根据向量夹角计算公式:

<mrow> <mi>c</mi> <mi>o</mi> <mi>s</mi> <mi>&theta;</mi> <mo>=</mo> <mfrac> <mrow> <msub> <mi>w</mi> <mi>i</mi> </msub> <mo>&CenterDot;</mo> <msub> <mi>w</mi> <mi>j</mi> </msub> </mrow> <mrow> <mrow> <mo>|</mo> <msub> <mi>w</mi> <mi>i</mi> </msub> <mo>|</mo> </mrow> <mo>*</mo> <mrow> <mo>|</mo> <msub> <mi>w</mi> <mi>j</mi> </msub> <mo>|</mo> </mrow> </mrow> </mfrac> </mrow>

其中因为wi·wj是单位向量,所以|wi|和|wj|的值都是1,而且夹角大小与夹角的余弦值成反比,wi·wj的结果越大,节点i和j就越相似,反之亦然。

7.根据权利要求6所述的基于社交关系的BitTorrent阻塞算法,其特征在于,节点间的亲密度计算公式如下:

f(i,j)=a*Active+b*S(i,j)+c*Interest,a+b+c=1

其中,Active表示候选列表中节点的活跃值,Interest表示是否拥有本节点感兴趣的资源的加权值,如果候选列表中的节点拥有上传节点感兴趣的资源则Interest=1,否则Interest=0,a、b、c为常数均大于0。

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