Algorithm 3.
Require: Original dataset D, privacy parameter k, weights wICD and wAge | |
Return: Anonymized dataset D̃, ILM(D̃) and ALM(D̃) | |
1: | D̃ ← Ø; ĩ ← 0; ã ← 0; p ← ∑T∈D |T| |
2: | while |D| ≥ 3* k do |
3: | F ← the most frequent trajectory in D ▷Find the most distant trajectory to F |
4: | X ← argmaxT∈D{(i + a)|i, a ∈ A-GS(F, 0, 0, T)} |
5: | {C, i′, a′} ← formCluster(X, k) |
6: | D̃ ← D̃ ∪ C; ĩ ← ĩ + i′; ã ← ã + a′ |
7: | Y ← argmaxT∈D{(i + a)|i, a ∈ A-GS(X, 0, 0, T)} |
8: | {C, i′, a′} ← formCluster(Y, k) |
9: | D̃ ← D̃ ∪ C; ĩ ← ĩ + i′; ã ← ã + a′ |
10: | end while |
11: | while |D| ≥ 2 * k do |
12: | F ← the most frequent trajectory in D |
13: | X ← argmaxT∈D{(i + a)|i, a ∈ A-GS(F, 0,0, T)} |
14: | {C, i′, a′} ← formCluster(X, k) |
15: | D̃ ← D̃ ∪ C; ĩ ← ĩ + i′; ã ← ã + a′ |
16: | end while |
17: | R ← select a trajectory from D uniformly at random |
18: | {C, i′, a′} ← formCluster(R, |D|) |
19: | D̃ ← D̃ ∪ C; ĩ ← ĩ + i′; ã ← ã + a′ |
20: | return {D̃, ĩ/(p * wICD), ã/(p*wAge)} |