SelectPeer ( ) :通过此原语选择一个响应交易的节点。
Put ( IDu , IDv , Euv , m ) :节点U将V的评价写入节点V的
第m 个档案点(逻辑地址为hash ( IDv ‖m ) ) 。
Put( IDu , IDv , Euv , k, Crx ) :表示节点U将与V交易的历
史信任数据Euv写入本地数据库中,同时更新节点U与V交易
的次数k和节点U计算出的推荐节点X的推荐可信任度Crx。
Get ( IDv , Exv , m ) :表示从逻辑地址为hash ( IDv ‖m )的档
案点的数据结构中读取V的信任数据,并写入本地变量。
Get ( IDv , Euv , k) :表示节点从本地数据结构表中读取历
史交易的信任数据及交易次数。
Get_Cr ( x) :表示节点从本地数据结构表中读取所有存在的推荐节点的推荐可信度Crx。
Compute_Cr ( IDu , x) :表示节点U计算所有在本地数据结
构表中命中推荐节点的推荐可信度。
Compute_trust ( Tv ) :表示根据推荐值和推荐节点的可信度
计算节点V的信任值。
EvalTrans ( IDv , k) :节点交易后,通过该原语评估交易结
果。IDv 为交易对方的标志; k 表示U 与V 的第几次交易。
EvalTrans ( IDv )为true表示交易成功;否则表示交易失败。

由于每个节点既是普通的用户节点,又是其他节点的档案
点,任意节点作为一般用户节点的算法如下


IDv < = SelectPeer( ) ; / /选择一个节点作为交易节点
Get( IDv , Euv , k) ;
Lu→v < = Suv / Iuv; / /参考自己的交易历史
if (Lu→v - λ> 0)
 {进行交易;
 EvalTrans( IDv , k) / /如果为真则S加1,否则F加1
  Put( IDu , IDv , Euv , m) ;
  Put( IDu , IDv , Euv , k, Crx ) ; }
else
 {Get ( IDv , Exv , m) ;
 for(任意推荐节点j)
  {Crj < = Get_Cr( j) ; / /在本地数据库取推荐可信度
  if (Crj = - 1)
  Crj < = Compute_Cr( IDu , j) / /Cr计算中令S = 2
  }
 Compute_trust ( Tv ) ; / /令α = 0. 7,β = 2
 Gu→v < =wuLu→v + (1 - wu ) Tv; }
 if (Gu→v - λ> 0)
  {进行交易;
  EvalTrans( IDv , k) ;
  Put( IDU , IDv , Euv , m) ;
  Put( IDu , IDv , Euv , k, Crx ) ;
  }
 else
  重新选择一个交易节点;
}

请哪位高手能帮忙用JAVA实现一下上面的算法,不胜感激