Lƣu đồ luồng dữ liệu của DF-SWin (xem Hình 4.1).
Hình 4.1. Lƣu đồ luồng ữ liệu giải pháp F-SWin
Thiết lập cụm
Đúng Sai
(I)
(II) Đúng
Đúng Sai
Sai
Chờ time slot Nút
là CH
Nút g i dữ liệu đến CH t <Tround
Yêu cầu và nhận dữ liệu từ nút
Tổng hợp dữ liệu và g i đến BS
Xây dựng bảng dữ liệu
Dữ liệu để tổng hợp Thiết lập c a sổ trƣợt
β Hsw Wsw
Nút thuộc c a sổ
Giá trị tham số đo lƣờng
t <Tround
-104-
Sau khi cụm đƣợc thiết lập, nếu nút là CH và chƣa hết vòng (Tround) thì sẽ chờ nhận thông tin header của các nút trong cụm để tách và xác định dữ liệu cho bảng dữ liệu thuộc tính của cụm. Các nút trong cụm truyền dữ liệu đến CH theo vòng (round) và khung tin (frame) với cơ chế CDMA (Code Division Multiple Access) và TDMA (Time Division Multiple Access). Mỗi nút trong cụm chỉ đƣợc truyền dữ liệu vào khe thời gian (time slot) tƣơng ứng o CH quy định. Nút trong cụm chờ (Tschedule) nếu đến khe thời gian (time slot) của nó (trong hung) và chƣa hết vòng thì truyền dữ liệu cảm nhận tới CH cho đến lúc hết khoảng thời gian của h , sau đó tiếp tục chờ lƣợt (khung) tiếp theo. Việc truyền nhận dữ liệu giữa nút trong cụm với CH đƣợc thực hiện cho đến khi hết các khung tin và kết thúc vòng.
Sau mỗi vòng hoạt động, mạng cảm biến có khả năng tự tổ chức lại, phân chia lại nhóm, bầu nút CH cho mỗi nhóm. Giải thuật DF-SWin gồm 2 pha. Pha 1, từ bảng dữ liệu thuộc tính chứa các thông tin header về nút cảm biến nhƣ: hoảng cách giữa nút và CH, năng lƣợng còn lại (residual energy) của nút, gói tin còn lại (residual package) cần phải truyền đến đ ch của nút.
Dựa vào các giá trị đó để xác định c a sổ trƣợt bao gồm β, Hsw, Wsw. Pha 2, từ c a sổ để xác định các nút và giá trị các tham số đo phục vụ tổng hợp dữ liệu.
Giải pháp này chƣa đề cập đến việc t nh toán để có kết quả tổng hợp dữ liệu cuối cùng trƣớc khi g i S. Nhƣ vậy, kết quả của giải thuật là bộ dữ liệu đo lƣờng từ một số nút trong cụm phục vụ tổng hợp dữ liệu tại nút CH.
Một số ký hiệu đƣợc quy ƣớc ở Bảng 4.3 s dụng trong thuật toán.
ảng 4.3. Quy ƣớc hiệu s ụng trong thuật toán Ký hiệu Ý nghĩa
Ns Số nút c m biến của cụm không bao gồm CH Si Nút c m biến thứ i của cụm (1 i n)
QA Số thuộc t nh iều kiện
-105-
4.1.3.2. Cài ặt thu t toán
Thuật toán này s dụng một số thủ tục nhƣ: Sort_cond_pro (important, left-right) để sắp xếp mức độ quan trọng của thuộc t nh điều kiện theo chiều giảm dần từ trái sang phải; CH_read_and_write_header_value (Si, cond_proj) để nút CH đọc và ghi giá trị header; Return table_full_data (n, m) để trả về bảng dữ liệu đầy đủ với n hàng, m cột; Sort_table (dist.Si_AtoZ, res.ESi_ZtoA, res.PkSi_AtoZ) để sắp xếp bảng dữ liệu theo thứ tự ƣu tiên hoảng cách từ gần đến xa, năng lƣợng còn lại từ lớn đến nhỏ, số gói tin còn lại từ nhỏ đến lớn);
Count(res.ESi ≥ Avg res.ESi, n)) để đếm th o điều kiện; Select_Si(res.ESi ≥ Avg (res.ESi, n)) để chọn th o điều kiện; Select_Si_of_Set1(dist.Si ≤ Avg dist.Si , n1)) to Set2 để chọn nút Si trong tập Set1 thỏa mãn điều kiện đƣa vào tập Set2; Return_sliding_window (β, m) để trả về giá trị c a sổ trƣợt với c a sổ có hệ số trƣợt β và độ rộng m; Select (Si, β) để chọn nút Si theo hệ số trƣợt β.
Thuật toán DF-SWin
1. Thiết lập: n = NS , m = QA , SetSwin = Ø, Set1 = Ø, Set2 = Ø 2. Sort_cond_pro (important, left-right)
3. For i = 1 to n do For j = 1 to m do
β Hệ số cửa sổ trư t
Wsw Độ rộng của cửa sổ trư t Hsw Chiều cao của cửa sổ trư t
SetSwin T p các nút c m biến ư c chọn bởi cửa sổ trư t Set1, Set2 T p các nút c m biến ư c chọn
Pm es Số lư ng tham số o lường dist.Si Kho ng cách giữa Si và CH
res.ESi Năng lư ng còn lại của nút c m biến Si res.PkSi Gói tin còn lại của nút c m biến Si
AtoZ Sắp xếp theo chiều tăng dần từ nhỏ ến lớn ZtoA Sắp xếp theo chiều gi m dần từ lớn về nhỏ
-106-
4. CH_read_and_write_header_value (Si, cond_proj) 5. Return table_full_data (n, m)
6. Sort_table (dist.Si_AtoZ, res.ESi_ZtoA, res.PkSi_AtoZ) 7. Set n1 = Count (res.ESi ≥ Avg (r s.ESi, n))
8. If {n1 ≥ (n/2 nếu n chẵn)} hoặc {n1 ≥ ((n+1)/2 nếu n lẻ)} Then 9. β = n/2 (nếu n chẵn) hoặc β = (n+1)/2 (nếu n lẻ)
10. If {n1 < (n/2 nếu n chẵn)} hoặc {n1 < ((n+1)/2 nếu n lẻ)} Then 11. Select_Si (res.ESi ≥ Avg (r s.ESi, n) to Set1
12. Select_Si_of_Set1 (dist.Si ≤Avg( ist.Si , n1) to Set2 13. Set β = number_of_sensor_node_of_Set2
14. Return_sliding_window (β, m) 15. SetSwin = Select (Si, β)
16. End.
Giải thích thuật toán
Dòng 1, Thiết lập giá trị khởi tạo n = số lƣợng nút của cụm (không tính CH), m là số thuộc t nh điều kiện (m ≥2), SetSwin , Set1, Set2 là tập các nút đƣợc lựa chọn an đầu là các tập rỗng. Dòng 2, sắp xếp thuộc t nh điều kiện theo mức độ quan trọng giảm dần từ trái sang phải. Dòng 3, lặp đối với mỗi nút và mỗi thuộc t nh điều kiện, Dòng 4, đọc và ghi vào bảng dữ liệu các giá trị header từ các nút trong cụm làm thuộc t nh điều kiện vì g i nhận giá trị header ( ung lƣợng nhỏ chỉ 25 Byte) nên hạn chế tiêu hao năng lƣợng. Dòng 5, trả về bảng n hàng, m cột đã điền hết dữ liệu. Dòng 6, sắp xếp bảng theo thứ tự ƣu tiên: Khoảng cách giữa nút với CH càng gần càng tốt; năng lƣợng còn lại của nút càng nhiều càng tốt; số gói tin còn lại mà nút cần phải truyền đến CH để hoàn tất dữ liệu cảm nhận càng ít càng tốt. Dòng 7, đếm các nút có năng lƣợng hông é hơn năng lƣợng trung bình của cụm, gán cho biến n1 . Dòng 8, khi có một n a số nút trở lên có năng lƣợng lớn hơn năng lƣợng trung bình của nhóm thì hệ số trƣợt β = n/2 nếu n chẵn hoặc β = (n+1)/2 nếu n lẻ (Dòng 9). Dòng 10, nếu có ƣới 1/2 nút của cụm có năng lƣợng ƣới mức
-107-
trung bình thì chọn và đƣa tất cả các nút thỏa mãn vào tập Set1 (Dòng 11).
Dòng 12, trong tập Set1, chọn các nút có khoảng cách không lớn hơn hoảng cách trung ình để đƣa vào Set2. Dòng 13, gán Hệ số trƣợt β là số nút của Set2. Dòng 14 trả về ch thƣớc c a sổ trƣợt, dòng 15, từ c a sổ trƣợt (β, m) để lựa chọn β nút cảm biến thỏa mãn điều kiện và lấy dữ liệu đo. Kết thúc thuật toán.