Thuật toán di chuyển trong một vùng lân cận

Một phần của tài liệu một số thuật toán đảm bảo tính riêng tư trong hệ thống lbs (Trang 42)

Vị trí tiếp theo của các vật giả đƣợc quyết định trong một vùng lân cận của vị trí hiện tại của vật giả. Thiết bị giao tiếp của ngƣời dùng ghi nhớ vị trí

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

trƣớc đó của mỗi vật giả. Sau đó thiết bị sinh ra các vật giả xung quanh vùng nhớ này.

Algorithm: MN

Input:vị trí của các vật giả tại thời điểm t-1

Output:vị trí của các vật giả tại thời điểm t

Method:

1. RandomNumber(x,y): sinh ra một số ngẫu nhiên trong khoảng giữa x và y

2. struct dummy {

3. public double x; // tọa độ x 4. public double y; // tọa độ y 5. public double t; // thời gian 6. }

7. static int RandomNumber(int min, int max){ 8. Random random = new Random();

9. return random.Next(min, max); 10. }

11. static void MN(double m, int n){ 12. dummy[] prev = new dummy[100]; 13. dummy[] next = new dummy[100]; 14. //đọc prev[] đưa vào input 15. for (int i = 1; i < n; i++){

16. next[i].x = RandomNumber(prev[i].x - m, prev[i].x + m);

17. next[i].y = RandomNumber(prev[i].y - m, prev[i].y + m);

18. } 19. }

2.3.3.3Thuật toán di chuyển trong một vùng giới hạn lân cận

Giống với thuật toán MN, vị trí tiếp theo của vật giả cũng đƣợc quyết định trong vùng lân cận của vật giả. Tuy nhiên vị trí tiếp theo đƣợc giới hạn bởi mật độ của vùng này. Giải thuật này thích hợp trong các trƣờng hợp thiết bị giao tiếp

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

của ngƣời dùng có thể lấy dữ liệu của các ngƣời dùng khác. Đầu tiên, thiết bị sinh các vật giả xung quanh vùng nhớ giống nhƣ giải thuật MN. Nếu có nhiều ngƣời dùng trong vùng đƣợc sinh, thiết bị lại sinh vật giả. Quá trình đƣợc lặp lại vài lần.

Algorithm: MNL

Input:vị trí của các vật giả tại thời điểm t-1

Output:vị trí của các vật giả tại thời điểm t

Method:

1. RandomNumber(x,y): sinh ra một số ngẫu nhiên trong khoảng giữa x và y

2. position(x,y): trả về số dữ liệu vị trí thuộc (x,y,t-1) 3. struct dummy {

4. public double x; // tọa độ x 5. public double y; // tọa độ y 6. public double t; // thời gian 7. }

8. static void MLN (int aveP, double m, int n){ 9. dummy[] prev = new dummy[100];

10. dummy[] next = new dummy[100];

11. int k = 0; // đếm số lần lặp (mặc định là 3) 12. //đưa prev[] vào input

13. for (i=1;i<n;i++){ (adsbygoogle = window.adsbygoogle || []).push({});

14. next[i].x = random( prev[i].x-m, prev[i].x)+m); 15. next[i].y = random( prev[i].y-m, (prev[i].y+m); 16. next[i].t = (prev[i].t)++;

17. if (position(next[i].x, next[y].y) > aveP){ 18. if (k<=3){ k++; continue;} else k=0;} 19. }

20. //output các nội dung của next[] 21. }

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

Một phần của tài liệu một số thuật toán đảm bảo tính riêng tư trong hệ thống lbs (Trang 42)