5.3. Kết hợp với lập lịch ngủ
5.3.3. Thuật toán lập lịch ngủ
Bước 1: Lập lịch ngủ: Trong hầu hết các trường hợp, các nút cảm biến không dây
thường được triển khai dày đặc (có thể lên đến 300 nút trên vùng 25 m2 [35]) bao
phủ toàn bộ vùng cảm biến và liên tục gửi thông tin thu thập được tương tự nhau về BS [70, 100]. Các nút cảm biến có thơng tin giống nhau nếu gửi sẽ là trùng lặp, dư thừa, gây lãng phí nhiều năng lượng vì hoạt động gửi dữ liệu là một trong các hoạt
động tiêu hao năng lượng nhiều nhất trong nút cảm biến [2, 9, 21]. Do đó, để hạn
chế việc gửi thông tin dư thừa trong mạng, chúng ta có thể giới hạn trong một vùng nhỏ chỉ cho một nút hoạt động còn các nút khác vào chế độ ngủ để tiết kiệm năng lượng mà vẫn đảm bảo thông tin về đối tượng cảm biến được liên tục truyền về BS. Cụ thể là, chúng ta sẽ chia toàn bộ vùng cảm biến thành 5 cụm khác nhau, mỗi cụm lại chia nhỏ thành các ô lưới ảo, chúng có kích thước nhỏ hơn hoặc bằng một giá trị gọi là giá trị ngưỡng. Giá trị ngưỡng càng lớn thì càng có ít nút ở chế độ hoạt động, mạng tiêu thụ năng lượng càng ít nhưng chất lượng thông tin cảm biến sẽ không tốt. Do đó, tùy từng ứng dụng mạng mà chúng ta có thể chọn giá trị ngưỡng sao cho phù hợp. Trong Hình 5.6, chúng tơi minh họa vùng cảm biến mạng được chia thành các ô lưới ảo nhỏ với kích thước nhỏ hơn hoặc bằng kích thước ngưỡng (20m x 20m). Sau đó, trong mỗi ơ thuộc một ô lưới ảo chúng ta sẽ chọn một nút có mức năng
lượng cịn lại lớn nhất trong tập nút cùng thuộc một ô lưới ảo ở chế độ hoạt động
còn các nút khác sẽ đi vào chế độ ngủ để tiết kiệm năng lượng. Sau mỗi vòng hoạt
động, nút ở chế độ hoạt động trong ô sẽ được chọn lại để đảm bảo cân bằng tiêu thụ
0 20 40 60 80 100 (20 nút) (20 nút) (20 nút) (20 nút) 0 2 0 40 60 80 1 0 0 Nút ngủ Nút hoạt động
Hình 5.6: Ví dụ về kích thước của các ô lưới ảo nhỏ hơn hoặc bằng 20m × 20m
Thuật tốn Lập lịch ngủ (Thuật tốn 5.4)
Input: Các nút mạng, biến k=5, biến khoảng cách ngưỡng Threshold=5.
Output: Các biến Cluster1, Cluster2, Cluster3, Cluster4, Cluster5 chứa các nút
mạng ở chế độ hoạt động.
1: for each {Tất cả các nút còn sống trong mạng} do
2: Gửi thông điệp HELLO, chúng chứa ID, năng lượng cịn lại và vị trí địa lý của nút, đến BS
end for
4: Chia vùng cảm biến mạng thành các ơ lưới ảo kích thước nhỏ hơn khoảng cách ngưỡng Threshold như trong Hình 5.6.
//Từ vịng thứ hai trở đi, thuật tốn khơng chia lại vùng mà chỉ đổi vai trị nút ở //chế độ hoạt động
5: for each {các nút cảm biến trong ô} do
7: Thiết lập các nút còn lại trong cùng lưới vào chế độ ngủ 8: end for
9: Chuyển sang Thuật toán Chọn nút CH (Thuật toán 5.5)
Bước 2: Chia vùng và chọn nút CH
BS sẽ chia vùng cảm biến thành k cụm khác nhau (k=5%), chúng bằng nhau về kích thước mạng con như được minh họa trên Hình 5.7, nơi mà toàn bộ vùng mạng được
đề xuất gồm 100 nút cảm biến triển khai trong vùng 100m × 100m. Trong mạng
này, các nút cảm biến ở chế độ hoạt động trong mỗi cụm được tổ chức thành một cây khung tối thiểu với nút gốc là CH.
Trong mỗi vòng của lược đồ SSTBC, BS sẽ chọn nút CH cho mỗi cụm, chúng có năng lượng còn lại lớn hơn mức năng lượng trung bình của các nút ở chế độ hoạt
động và có giá trị hàm cost() lớn nhất như (4.20) và (4.7) với các hằng số ec1
(=100/J) và dc2 (=5/m).
Thuật toán Chọn nút CH (Thuật toán 5.5)
Input: Các nút mạng trong biến Cluster1, Cluster2, ...Clusterk, biến k=5. Output: Nút lãnh đạo trong biến CH1, CH2, ...CHk tương ứng.
1: if (số vòng =1) then
Chia vùng cảm biến mạng thành k cụm như trong Hình 5.7. end if
4: for each (cụm trong mạng) do
5: Tính mức năng lượng trung bình như trong (4.20)
6: Chọn nút CH, chúng có giá trị hàm cost() lớn nhất như (4.7) 7: end for
0 20 40 60 80 100 Trạm cơ sở (20 nút) (20 nút) (20 nút) (20 nút) 0 2 0 4 0 6 0 8 0 1 0 0 (20 nút) (b) (a) Cụm 1 Cụm 2 Cụm 3 Cụm 4 Cụm 5 Nút ngủ Nút hoạt động Nút cụm trưởng
Hình 5.7: (a) Minh họa phân cụm mạng gồm 100 nút trong vùng 100m×100m với
kích thước lưới ơ ảo 5m ×5m, (b) một ví dụ về cây khung tối thiểu
Về độ phức tạp tính tốn của DFTBC và SSTBC, các Thuật toán 5.1, 5.2, 5.4 và 5.5 mỗi nút chỉ thực hiện truyền và nhận một thông điệp đến BS, do đó, độ phức tạp
thơng báo ở mỗi nút cảm biến là hằng số. Các thao tác tính tốn được thực hiện bởi BS, Thuật toán 5.1 thực hiện cơng việc tính mức năng lượng trung bình, hàm cost() theo (4.7) để chọn nút CH có độ phức tạp tính tốn là O(n). Thuật tốn 5.2 xây dựng cụm cây sử dụng thuật tốn Prim có độ phức tạp tính tốn là O[(n/k)log(n/k))]. Do
đó SSTBC có độ phức tạp tính tốn là O(nlog(n)) và độ phức tạp thơng báo là hằng
số. Thuật toán 5.3 tổng hợp dữ liệu từ ch nút cảm biến (nút con trên cây), mỗi nút quan sát mơi trường đích với v giá trị, có độ phức tạp là O(ch×v2). Do đó, DFTBC có độ phức tạp tính tốn là O(ch×v2) và độ phức tạp thông báo là hằng số.