def computegap(self,cinfo,main_rdd,iStar,mingrad,lambdaMin):
d,V = cinfo
z=matrix(0.0,(d,1))
vSum=float(np.sum(V))
for j in range(d):
z[j]=-V[j]*self.C*self.r[j]/vSum
def CompGap(tpl,lambdaMin,mingrad,iStar):
p=[]
for ((tx,lam),index) in tpl:
if index!=iStar:
p.append((np.matrix(tx)*np.matrix(z))[0,0]*lam)
else:
p.append((lambdaMin-1)*mingrad)
return p
gap=main_rdd.flatMapValues(lambda tpl:CompGap(tpl,lambdaMin,mingrad,iStar)).map(lambda (key, value):value).reduce(lambda x,y:x+y)
return gap
评论列表
文章目录