Input: |
DSetloc (The personal request location set), k (The privacy level), T (The semantic tree), qreal (The historical query probability of the requested location), DSetloc (Historical query probability set), ∂ (Query probability threshold), RL (Real Location of request user); |
Output: |
Anonymity set, AS; |
1: Computing the query probability of each locations and establish DSetloc; |
STEP1: Choose the location that satisfies the constraints of query probability to built ACS |
2: Initialize the anonymous candidate set ACS=RL; |
3: while Len (ACS)<2k do |
4: for Each loc in DSetloc and Each q in DSetque do |
5: Compting the dque (q, qreal) by formula (6) |
6: if dque (q, qreal) < ∂then |
7: Put loc into ACS; |
8: end if |
9: end for |
10: end while |
STEP2: Choose the location that satisfies the constraints of minimum semantic difference and semantic diversity to built AS |
11: Initialize the anonymous set AS=RL; |
12: According to personal semantic tree T and formula (3), semantic distance matrix SDM is established; |
13: while Len (AS)<kdo |
14: if Len (ACS)==0 then |
15: Anonymity Failure; |
16: else |
17: Computing the SDE−(loc); |
18: for Each loc in ACS do |
19: Computing the SDE+(loc) and dsde (loc) by formulate (5); |
20: if SDM (index (loc), index (RL))>6 and dsde (loc) > qthen |
21: Put loc into AS; |
22: end if |
23: end for |
24: end if |
STEP3: Replace some locations to improve security |
25: Replace some anonymous locations in AS with similar semantic feature from other users; |
26: end while |
27: return AS; |