如图8-12所示,如果用户ul发起k=2的匿名查询,间隔匿名算法将首先搜索到象限区间[(0,0),(1,1)],其中包含的用户数少于2个,不满足匿名要求。然后,该算法继续向根的方向上升一级搜索象限区间[(0,O),(2,2)],该象限区间包含3个用户,大于要求的2个,算法停止搜索,并将区间[(0,O),(2,2)]作为用户u1的匿名区。值得注意的是,该算法所得的匿名区所包含的用户数量可能远远大于k,因此会加大位置服务提供商的查询处理负担和网络流量的负荷。
为了解决间隔匿名算法对位置服务提供商负载较高的问题,还有一种Casper匿名(Casper cloak)算法。该算法与间隔匿名算法类似,也采用了四叉树数据结构来表示二维空间,不同点有两个:①在识别和访问四叉树的叶子节点时,Casper匿名算法直接通过hash表来完成;②在对节点进行搜索时,当所搜索的节点不满足匿名度k的要求,那么该算法不像间隔匿名算法那样直接搜索其父节点,而是依次检查它的两个相邻的兄弟节点和它所组合起来的区间中所包含的用户数量是否大于等于k,如果满足则直接将组合区间作为用户的匿名区,否则再对其父节点进行搜索。另外,Casper匿名算法允许每个移动用户自由地决定k值的大小和最小的匿名区面积。如图8-12所示,如果用户ul发起k=2昀匿名查询,Casper匿名算法将首先搜索到象限区间[(o,O),(1,1)],其中包含少于2个用户;然后,先检查它的两个相邻兄弟区间[(0,1),(1,2)】和[(1,O),(2,1)],如果它们中的一个与自己组合起来的区间中包含的用户数量大于等于k,则直接把组合起来的矩形区间作为匿名区。在这个例子中矩形[(0,0),(1,2)]将被作为匿名区。与间隔匿名算法相比,Casper匿名算法所生成的匿名区平均要更小,从而提高了位置服务器的查询效率并减少了对网络流量的负荷。
各省软考办 | ||||||||||