Thuật toán lập lịch ngủ

Một phần của tài liệu (LUẬN án TIẾN sĩ) nghiên cứu giao thức định tuyến tiết kiệm năng lượng cho mạng sensor luận án TS truyền dữ liệu và mạng máy tính 62 48 15 01 (Trang 129 - 133)

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ố.

Một phần của tài liệu (LUẬN án TIẾN sĩ) nghiên cứu giao thức định tuyến tiết kiệm năng lượng cho mạng sensor luận án TS truyền dữ liệu và mạng máy tính 62 48 15 01 (Trang 129 - 133)