Giới thiệu

Một phần của tài liệu Xây dựng hệ thống quản lý thông tin về khí hậu dùng vào mạng cảm biến (Trang 37)

Yêu cầu quan trọng nhất để xử lý truy vấn trong mạng cảm biến là tăng tuổi thọ của thiết bị cảm biến chạy bằng năng lượng pin thấp bằng một số chiến lược xử lý truy vấn tăng hiệu quả năng lượng [Deli 2005]. Trong môi trường mạng cảm biến luôn luôn có sự cân bằng giữa độ chính xác của thông tin và hiệu quả tiêu thụ năng lượng. Nếu cảm biến truyền tải tất cả các dữ liệu thu thập được từ hệ thống ứng dụng, truy vấn của người dùng có thể được xử lý hiệu quả, nhanh chóng và các kết quả truy vấn đảm bảo độ tin cậy cao. Nếu như vậy, các nút cảm biến cần phải tiêu hao tất cả năng lượng mà nó có để truyền tải một số lượng lớn các dữ liệu vào hệ thống ứng dụng. Các nút cảm biến có bộ nhớ lưu trữ riêng và có thể duy trì dữ liệu tính toán ngay tại vị trí mỗi cảm biến. Các nút mạng có thể xử lý các truy vấn do người dùng cần và truyền tải phản hồi duy nhất tới hệ thống ứng dụng, vì vậy hiệu quả tiêu thụ năng lượng cao hơn so với việc gửi tất cả dữ liệu hệ thống và xử lý truy vấn. Tuy nhiên, bộ nhớ của các nút cảm biến không phải là rất dồi dào như những hệ thống cơ sở dữ liệu truyền thống, bộ nhớ sẽ tràn nếu dữ liệu được thu và duy trì liên tục theo thời gian. Trong trường hợp này, các nút cảm biến sẽ phải loại bỏ dữ liệu cũ hoặc tổng hợp dữ liệu bằng phương pháp cụ thể nào đó để số lượng dữ liệu trong lưu trữ được cắt giảm.

Để duy trì sự bộ nhớ một cách tối ưu, trong nghiên cứu này sẽ giới thiệu phương pháp giảm dữ liệu cảm biến ba pha để lưu trữ dữ liệu cảm biến lịch sử dựa trên việc kiểm tra tín hiệu nhận trong thời gian lấy mẫu cụ thể. Dữ liệu sẽ giảm dần theo từng pha xử lý như sau:

Pha thứ 1 xử lý khá đơn giản được gọi là Naïve: Loại bỏ các giá trị trùng lặp xảy ra liên tiếp trong một thời gian nhất định.

Pha thứ 2 được gọi là Level1: Kết quả của pha đầu tiên là dữ liệu đầu vào của pha này, tại đây các giá trị được kết hợp bằng cách sử dụng ngưỡng giá trị khoảng cách tối thiểu.

Pha 3 được gọi là Level2: Nếu việc tràn bộ nhớ vẫn xảy ra với dữ liệu sau

khi đã qua xử lý ở pha 2, thì việc giảm dữ liệu sẽ thực hiện tiếp bởi pha 3 và quy trình xử lý diễn ra tương tự như pha 2 sẽ là dữ liệu đầu vào của pha 3 và sau đó các giá trị được kết hợp bằng cách sử dụng ngưỡng giá trị khoảng cách tối thiểu.

Hình 4.1 Tổng quan lược đồ giảm dữ liệu ba pha

Hình 4.1 mô tả ví dụ minh họa toàn bộ quá trình thu thập dữ liệu trong khoảng thời gian và dữ liệu tổng hợp. Từng pha trong quá trình tổng hợp dữ liệu sẽ được trình bày như sau:

Naïve: Trong một khoảng thời gian nhất định, mỗi mẫu mới được gửi tới thì pha này sẽ được kiểm tra xem giá trị của mẫu có khác với một trong những mẫu trước đó thì mẫu mới sẽ được lưu trữ tại bộ nhớ cục bộ của cảm biến, ngược lại nếu trùng thì mẫu mới này sẽ bị xóa.

Level1: Mỗi cảm biến sẽ so sánh bản ghi đọc được từ cảm biến khi nhận tại một số nhãn thời gian liên tục, tính toán sự khác biệt giữa các giá trị đọc được với một ngưỡng được xác định trước. Các bản ghi đọc được từ cảm biến thỏa mãn với một số điều kiện tổng hợp thì sẽ được kết hợp để có được giá trị tốt nhất gần đúng.

Level2: Pha này được thực hiện trong trường hợp kho lưu trữ tại nút cảm biến tràn mặc dù dữ liệu được nén bởi pha Level1, cơ chế thực hiện giảm tiếp

tục được xây dựng tương tự như pha Level1.

Mặc dù các kỹ thuật tạo dữ liệu xấp xỉ gây ra một số mất mát thông tin, nhưng không đáng kể nên kết quả của dữ liệu vẫn phù hợp sử dụng trong ứng dụng. Giá trị của dữ liệu xấp xỉ khá gần với giá trị của dữ liệu thô, do đó không có nhiều ảnh hưởng lớn đến kết quả truy vấn sau này. Quan trọng hơn, phương pháp này hứa hẹn tiết kiệm được rất nhiều không gian lưu trữ so với cách lưu trữ tất cả các bản ghi đọc từ cảm biến. Chi tiết của từng pha được trình bày trong các phần sau đây.

4.2 Loại bỏ các bản ghi trùng lặp

Dữ liệu đọc từ cảm biến trong một khoảng thời gian liên tục, có thể có giá trị không đổi. Lưu trữ tất cả các bản ghi này mà không có bất kỳ thủ tục tiền xử lý nào sẽ lưu một khối lượng dữ liệu khổng lồ. Đặc biệt, trong nhiều ứng dụng dữ liệu gửi đến thay đổi rất ít về giá trị trong một khoảng thời gian. Ví dụ, nhiệt độ có thể không thay đổi trong nhiều giờ hoặc thay đổi rất ít và không có sự khác biệt lớn so với các dự báo thời tiết trước đó, chính vì vậy việc sao chép dữ liệu và các tính toán không cần thiết có thể bỏ qua.

Trong pha Naïve, khi một mẫu dữ liệu mới được gửi tới có giá trị k, thì k được so sánh với giá trị lấy mẫu ngay trước khi đó là vbf.

- Nếu k # bbf, thì lưu dữ liệu mới vào lưu trữ cục bộ tại nút cảm biến bf. - Nếu k = bbf, thì loại bỏ giá trị mới và chờ lần đọc tiếp theo.

Hình 4.2 minh họa cách xử lý dữ liệu trước khi lưu vào lưu trữ cục bộ của mạng cảm biến ở pha Naïve:

- Tại mỗi thời điểm mẫu dữ liệu được đọc từ ba cảm biến s1, s2, s3. Tại nhãn thời gian t1 cả ba mẫu dữ liệu đọc được đều được lưu lại. Tại nhãn thời gian t2 giá trị đọc được bởi cảm biến s1 không thay đổi nên nó bị bỏ qua, tuy nhiên mẫu do s2 đọc được lại khác nên nó được lưu lại.

- Đối với cảm biến s3 giá trị mẫu dữ liệu đọc được không thay đổi trong suốt khoảng thời gian [t1, t3] nên nó chỉ được lưu trữ một lần duy nhất.

Hình 4.2 Ví dụ giảm dữ liệu của pha Naïve

Phương pháp này khá sơ khai, dữ liệu đơn giản được lưu trữ khi các giá trị liên tiếp khác nhau, nhưng chắc chắn đảm bảo không mất dữ liệu thu thập. Giả sử ta có:

Ntotal : Tổng số mẫu,

Sv(i) : Mẫu dữ liệu nhận được từ cảm biến tại nhãn thời gian i, Dcount : Đếm số lần trùng lặp,

Dtotal : Số các bản ghi trùng lặp, được xác định bởi biểu thức 4.1.

𝐷𝑡𝑜𝑡𝑎𝑙 = ∑ 𝐷𝑐𝑜𝑢𝑛𝑡 𝑁𝑡𝑜𝑡𝑎𝑙

𝑖=0

, Nếu Sv(i) = Sv(i-1): Dcount = 1, Ngược lại: Dcount = 0

(4.1)

Từ đó, số lượng bản ghi Srec có thể dễ dàng được suy ra (biểu thức 4.2) và tỷ lệ dữ liệu bị loại bỏ R(%) được tính bởi công thức 4.3.

𝑆𝑟𝑒𝑐 = 𝑁𝑡𝑜𝑡𝑎𝑙− 𝐷𝑡𝑜𝑡𝑎𝑙 , (0 ≤ 𝐷𝑡𝑜𝑡𝑎𝑙 ≤ 𝑁𝑡𝑜𝑡𝑎𝑙) (4.2) R(%) = 𝐷𝑡𝑜𝑡𝑎𝑙 (adsbygoogle = window.adsbygoogle || []).push({});

𝑁𝑡𝑜𝑡𝑎𝑙𝑋100 (4.3)

Pha này có thể bị ảnh hưởng bởi các đặc điểm của ứng dụng, đặc biệt nếu tỷ lệ lấy mẫu là rất nhỏ và dữ liệu biến đổi thường xuyên thì dữ liệu tại mỗi nhãn thời gian sẽ khác nhau. Ngược lại, xác suất các bản ghi trùng lặp cao thì phương pháp tổng hợp dữ liệu Naïve đơn giảm mà rất hữu ích. Thuật toán DuplicateReadingComparison() cho

pha Naïve được trình bày dưới dạng pseudo code trong Thuật toán 4.1.

Thuật toán 4.1: Thủ tục so sánh các bản ghi nhân đôi

Algorithm: DuplicateReadingComparison() Input: kcurrent // Bản ghi cảm được truyền tới

Output: bf // Bộ đệm lưu trữ tạm thời để so sánh với các giá trị khác Begin

while (bộ nhớ hoặc nguồn pin vẫn còn) do

vbf kprevious // Giá trị của bản ghi được đọc trước từ bộ đệm bf

If (k # vbf) then

bf  add kcurrent // Thêm kcurrent vào bộ đệm else

Delete kcurrent // Xóa kcurrent end while

End

4.3 Khoảng cách giá trị dựa trên dữ liệu giảm

Như ta biết, dữ liệu thu được có thể có cùng một giá trị hoặc tương đối giống nhau trong một khoảng thời gian cụ thể. Ở đây việc nén các bản ghi đọc được từ cảm biến chính là thực hiện kết hợp hai hoặc nhiều bản ghi tạo ra được giá trị trung bình. Bằng cách này ta có thể đảm bảo dữ liệu không bị làm suy giảm và cũng không phải phân tán dữ liệu. Ngoài ra, khả năng mở rộng lưu trữ của hệ thống tăng lên mà không cần sử dụng phương pháp xấp xỉ dữ liệu. Tuy nhiên, chiến lược này phần nào làm giảm tính chính xác của dữ liệu. Sử dụng giá trị trung bình không còn được tin cậy vì sự khác biệt quá lớn giữa các mẫu dữ liệu. Do đó, cách tiếp cận này không thích hợp cho một số ứng dụng. Ta thấy có sự đánh đổi giữa độ chính xác của dữ liệu và hiệu quả trong việc sử dụng khả năng lưu trữ của các nút cảm biến.

Chính vì thế nghiên cứu giới thiệu một chiến lược tổng hợp dữ liệu dựa trên việc tính toán khoảng cách giữa các mẫu dữ liệu.

- Ngưỡng giá trị, khoảng giá trị δdist: Là sự khác biệt tối thiểu giữa hai bản ghi cảm biến trong một khoảng thời gian. Giá trị của ngưỡng được lựa chọn dựa trên sự

khác biệt của hai bản ghi dữ liệu đầu tiên được lấy mẫu tại mỗi đầu của thời gian lấy mẫu (xem biểu thức 4.4).

- Tham số giá trị tiêu chuẩn Sval: Khi bắt đầu của quá trình lấy mẫu thì được khởi tạo bằng không (Sval = 0). Tuy nhiên, trong một khoảng thời gian không xác định trước thì dữ liệu đọc được sẽ bị thu hồi để thực hiện tổng hợp. Các mẫu dữ liệu được tổng hợp có thể không đồng đều trong khoảng thời gian liên tiếp. Khoảng cách này phụ thuộc vào các thông số δdist và Sval.

- Sau khi xác định giá trị của các tham số trên, dữ liệu cảm biến được kiểm tra để quyết định xem nó có thuộc cùng bộ giá trị trước đó không. Nó sẽ được thêm vào cùng một tập nếu sự khác biệt giữa giá trị hiện tại và giá trị Sval đáp ứng được δdist hiện tại. Quá trình này được lặp đi lặp lại cho đến khi một nhãn thời gian mà tại đó mẫu dữ liệu vượt ra ngoài ranh giới khoảng cách cho phép. Tại một thời điểm, tất cả các mẫu dữ liệu cùng một bộ giá trị trong một khoảng thời gian cụ thể sẽ được kết hợp và cho giá trị xấp xỉ tốt nhất (biểu thức 4.5).

Xác định δdist thông qua biểu thức 4.4:

δdist = Rval(i) - Rval (i- 1), nếu δdist = 0 và sval = 0 (4.4) Mẫu dữ liệu nhận được từ cảm biến ā được lưu trữ trong bộ nhớ được xác định bởi biểu thức 4.5:

a = 1

𝑗 ∑ Rval(i), nếu 𝑗

𝑖=1

δdist > Rval(i) − Sval và Rval(i) − Sval > 0

ℎ𝑜ặ𝑐 δdist < Rval(i) − Sval và Rval(i) − Sval < 0 (4.5)

Tỉ lệ dữ liệu giảm Rrate được tính toán bằng biểu thức 4.6:

Rrate(%) = 1 − Rtotal

Ntotal𝑥 100 (4.6) Trong đó:

δdist : Ngưỡng khoảng cách Sval : Giá trị tiêu chuẩn (adsbygoogle = window.adsbygoogle || []).push({});

Rval(i): Giá trị của mẫu dữ liệu nhận được từ cảm biến theo nhãn thời gian thứ i j : Tổng số mẫu dữ liệu nhận được từ cảm biến trong nhóm δdist

Rtotal: Số bản ghi được kết hợp

Xét một ví dụ: Giả sử một tập dữ liệu được đọc liên tục là S = {3, 4, 3, 5, 4, 2, 4, 3, 5} như Hình 4.3.

- Lần đọc đầu tiên cho kết quả là 3 được chọn là giá trị tiêu chuẩn (sval = 3) - Tại nhãn thời gian thứ 2, giá trị là 4. Đặt ngưỡng khoảng cách δdist là 1 (là sự chênh lệch giá trị của lần đọc thứ 2 và lần đọc đầu tiên δdist = 4-3 = 1)

Áp dụng biểu thức 4.4 và 4.5 chúng ta xác định ba lần đọc đầu tiên {3, 4, 3} thuộc về cùng một bộ do sự khác nhau giữa chúng thỏa mãn 0<Sval<= 1.

- Với nhãn thời gian 4: Sự khác nhau giữa giá trị mẫu 5 > Sval (Sval = 3), quy tắc trên không còn đúng nữa. Vì vậy, với khoảng thời gian đầu tiên, bản ghi cảm biến được quyết định là 3.3 bằng cách lấy giá trị trung bình của bộ {3, 4, 3}.

Làm tương tự với phần còn lại của mẫu, kết quả là từ chín bản ghi cảm biến, nút cảm biến bây giờ chỉ phải phân bổ lưu trữ cho bốn giá trị dữ liệu và khoảng 56% không gian lưu trữ được giảm, tiết kiệm nhiều không gian hơn so với việc tối ưu dữ liệu ở pha Naïve.

Hình 4.3 Ví dụ về sơ đồ giảm dữ liệu dựa trên giá trị khoảng cách

Chiến lược này gây mất mát thông tin việc duy trì các giá trị xấp xỉ thay vì những bản gốc. Người dùng sẽ nhận được kết quả truy vấn xấp xỉ gần đúng theo đó. Tuy nhiên, việc sử dụng khoảng cách ngưỡng tối thiểu sẽ cho kết quả khá gần với dữ liệu thô ban đầu. Thuật toán 4.2 trình bày thủ tục ValueDistanceReduction() cho pha Level1.

Mặc dù công nghệ mạng cảm biến phát triển nhanh chóng hơn trước nhưng khả năng lưu trữ trong mạng cảm biến không tốt hơn so với cơ sở dữ liệu truyền thống. Vì vậy để lưu trữ các dữ liệu thu thập được trong một không gian với dung lượng lưu trữ bị giới hạn trong một thời gian dài vẫn là một vấn đề mở vào lúc này. Nói chung, nếu

tại mỗi nút cảm biến tiếp tục lưu trữ và duy trì dữ liệu cảm biến theo thời gian thực thì lưu trữ cục bộ tại mỗi nút sẽ bị tràn nhanh chóng. Để giải quyết vấn đề này, cảm biến có thể loại bỏ dữ liệu lịch sử lâu đời nhất, giúp tiết kiệm rất nhiều không gian lưu trữ. Dữ liệu cũ có thể được gửi đến các trạm cơ sở hoặc bị loại bỏ khỏi bộ nhớ của cảm biến mãi mãi. Nếu gửi dữ liệu cũ đến trạm cơ sở, chi phí lớn về truyền thông là bắt buộc, nhưng nếu loại bỏ chúng mà không thực hiện bất kỳ sao lưu gì thì truy vấn liên quan đến thông tin cũ sẽ không thể thực hiện được do dữ liệu cũ đã bị mất. Mặc dù dựa trên việc sao lưu trong hệ thống cơ sở dữ liệu truyền thống là dễ dàng, nhưng đó lại là khó khăn lớn đối với mạng cảm biến mà sự can thiệp của con người là rất khó.

Thuật toán 4.2 Ước khoảng giá trị trên một khoảng dữ liệu dựa vào các thông số về khoảng cách

Algorithm: ValueDistanceReduction

Input: k // Bản ghi yêu cầu cần lưu trữ từ nút

Ouput: avg // Giá trị trung bình sau pha giảm dữ liệu BEGIN

while (tập các mẫu nằm trong phạm vi của giá trị ước khoảng) do If (k được gửi đến yêu cầu để lưu trữ) then

If (Sval =null) then // Sval giá trị tiêu chuẩn để so sánh

Sval k

bfcurrent  add k // Giá trị hiện tại trong bộ đệm else if (vdist = null) then

vdist  k - bfprevious // Xác định giá trị khoảng cách tiêu chuẩn

bfcurrent add k

else if (vdist > 0 or k - Sval > 0) then // vdist nhận giá trị âm

if (vdisst >= k – Sval ) then bfcurrent  add k end if

else if (vdist < 0 or k - Sval < 0) then // vdist nhận giá trị dương

if (vdisst <= k – Sval ) then bfcurrent  add k end if

else

sumbf tổng các giá trị trong bf n  số bản ghi trong bf avg  sumbf/n endif endif end while return avg END

Cách tiếp cận không loại bỏ dữ liệu lịch sử và cũng không áp dụng dựa trên ổ đĩa sao lưu, nếu lưu trữ tràn xảy ra ngay cả với dữ liệu đã tổng hợp từ pha Level1 thì sẽ tiếp tục thực hiện chiến lược Level2 để nén dữ liệu trong lưu trữ một lần nữa bằng cách sử dụng các thông số đã giải thích ở trên. Phương pháp này là khá linh hoạt và luôn bảo đảm hoạt động tốt với các mẫu thay đổi liên tục, mặc dù tính chính xác của dữ liệu bị giảm.

Như minh họa trong Hình 4.4, dung lượng lưu trữ được tiết kiệm nhờ các thao tác xử lý tại pha Level1 và pha Level2, nên chi phí cho lưu trữ có thể được khắc phục. Ngoài ra, số lượng dữ liệu liên quan trong xử lý truy vấn sẽ nhỏ hơn so với thực hiện

(adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu Xây dựng hệ thống quản lý thông tin về khí hậu dùng vào mạng cảm biến (Trang 37)