3.2.2.1. PEGASIS cơ bản
a. Xây dựng chuỗi
Tạo một chuỗi các node cảm biến - mỗi node có thể nhận và truyền dữ liệu tới node bên cạnh . Quá trình thêm các node vào chuỗi được thực hiên tuân theo thuật toán Greedy. Bắt đầu với node xa sink nhất để đảm bảo các node ở xa sink đều có node lân cận gần nó vì trong thuật toán Greedy khoảng cách giữa các node sẽ tăng dần và các node nằm trong chuỗi sẽ không được thăm lại, các node mạng được thêm dần vào chuỗi làm chuỗi lớn dần, kể từ node hàng xóm gần nhất.
Để xác định được node lân cận gần nhất mỗi node sẽ sử dụng cường độ tín hiệu để đo khoảng cách tới các node lân cận của nó. Sau khi xác định xong, các node sẽ điều chỉnh cường độ tín hiệu sao cho chỉ có node lân cận gần nhất nghe được.
Hình 3.6: Xây dựng chuỗi sử dụng thuật toán Greedy
b. Chọn node chủ
Sau khi chuỗi được thành lập, bước tiếp theo là chọn node chủ. Một node trong chuỗi sẽ được trọn làm node chủ, trách nhiệm của node chủ là truyền dữ liệu tập hợp được tới trạm cơ sở. Vai trò node chủ sẽ bị dịch chuyển vị trí trong chuỗi sau mỗi vòng chu kỳ. Việc quay vòng node chủ trong chuỗi nhằm đảm bảo công bằng trong tiêu thụ năng lượng giữa các node trong mạng. Tuy nhiên cũng cần chú ý rằng việc thay đổi có khi dẫn đến node chủ rời xa trạm cơ sở (sink), khi đó node này lại cần yêu cầu công suất cao để truyền đến trạm cơ sở.
Node chủ được chọn bằng cách sau: ở vòng thứ i thì node thứ i mod N (N là số
node trong mạng ) sẽ làm chủ.
c. Truyền dữ liệu
Việc tập trung dữ liệu trong mạng dọc theo chuỗi. Để tập hợp dữ liệu mỗi vòng, mỗi node sẽ nhận dữ liệu từ node hàng xóm và hợp nhất với dữ liệu nó thu nhận được và truyền đến node hàng xóm tiếp theo trong chuỗi.
Trong một vòng, chúng ta có thể sử dụng một cơ chế điều khiển token passing khởi tạo bởi node chủ để bắt đầu việc truyền tải dữ liệu từ 2 đầu của chuỗi. Chi phí là rất nhỏ vì kích thước thẻ bài là rất nhỏ. Đầu tiên node chủ sẽ gửi một thẻ bài tới node cuối cùng bên phải cuối chuỗi. Trong khi nhận được tín hiệu này node cuối sẽ gởi dữ liệu nó thu lượm được đến node lân cận theo chiều xuôi trong chuỗi, sau đó node này tập trung dữ liệu và lại tiếp tục gửi đến node lân cận gần nó nhất, cứ như vậy cho đến khi gửi đến node chủ. Sau đó node chủ sẽ lại tập trung dữ liệu và gửi đến sink.
Ví dụ: Trong hình, node c2 là node chủ, và nó sẽ chuyển
tiếp các thẻ bài trong chuỗi tới node c0, node c0 sẽ truyền dữ liệu của nó tới node c1, node c1 hợp nhất dữ liệu truyền đến nó và dữ liệu nó thu nhận được rồi tiếp tục truyền về
node chủ. Sau khi nhận dữ liệu từ c1, node chủ c2 sẽ chuyển tiếp các thẻ bài tới node c4 và mọi việc diễn ra tương tự, node c4 node truyền dữ liệu của nó tới node c3. Node c3 hợp nhất dữ liệu của node c4 với dữ liệu riêng của nó và sau đó truyền đến node chủ.Node c2 chờ nhận đủ dữ liệu từ cả hai hàng xóm và sau đó hợp nhất dữ liệu của nó với các dữ liệu của hàng xóm. Cuối cùng, node c2 truyền một bản tin đến BS.
d. Xử lý lỗi khi node chết
Khi một node bị chết, chuỗi sẽ được cập nhật lại bằng cách bỏ qua node đó trong chuỗi. Như trong hình 3 khi node 7 chết, node 8 sẽ cố gắng liên lạc với node 6.
Hình 3.7: Xử lý lỗi khi một node trong chuỗi chết.
3.2.2.2. PEGASIS cải tiến
a. Thay đổi phương pháp chọn node chủ
Trong giải thuật PEGASIS cơ bản, chúng ta thấy rằng mặc dù năng lượng đã được chia sẻ cho các node nhưng các node ở xa trạm BS sẽ bị tiêu thụ năng lượng nhiều hơn và do đó nhanh chóng chết đi. Như vậy sẽ ảnh hưởng đến thời gian sống của toàn mạng. Sau đây, ta đưa ra một cải tiến trong quá trình chọn node chủ để làm tăng thời gian sống của mạng. Chúng ta sẽ không cho các node ở xa trạm BS và có năng lượng thấp làm node chủ. 3 4 5 6 7 8 2 1 BS
Tất cả các node sẽ tính toán tỉ số Ri như sau:
Ri=Pai/PTxi
Trong đó: Pai : năng lượng của node i tại thời điểm hiện tại.
PTxi : năng lượng cần thiết để node i truyền đến trạm cơ sở.
Node cuối chuỗi sẽ bắt đầu gửi gói chứa giá trị Ri của nó về phía node hàng xóm trong chuỗi. Mỗi node nhận gói này sẽ so sánh giá trị hiện tại trong gói với giá trị R của nó. Nếu cao hơn, nó đơn giản sẽ chuyển tiếp gói, còn nếu nhỏ hơn, nó sẽ biến đổi gói với giá trị hiện tại của nó và chuyển tiếp đến node cạnh nó trong chuỗi. Node có giá trị R cao nhất sẽ là node chủ. Node chủ sẽ thông báo cho cách thành viên trong chuỗi biết. Việc bầu chọn node chủ được thực hiện theo một số vòng nào đó.
Số vòng để lựa chọn node chủ thay đổi thích ứng theo mức năng lượng hiện tại của mỗi node. Tại thời điểm bắt đầu, mức năng lượng của mỗi node khác nhau tương đối nhỏ và các node vẫn có mức năng lượng rất cao. Một khi được lựa chọn làm node chủ, node sẽ giữ vai trò này trong một số vòng. Sau đó nó khỏi tạo chu kỳ lựa chọn node chủ khác và do đó làm giảm số mào đầu liên kết với node chủ. Khi mức năng lượng của các node giảm thì số vòng để chọn lại node chủ cũng giảm và do đó tránh được một node tiêu thụ năng lượng quá nhiều khi làm node chủ. Khi mức năng lượng của node trở nên quá thấp, việc chọn node chủ sẽ diễn ra thường xuyên ở mỗi vòng. Kỹ thuật này đảm bảo các node có năng lượng cao và gần trạm BS sẽ có nhiều cơ hội làm node chủ hơn. Việc chọn node gần trạm BS làm node chủ sẽ giảm tổng chi phí truyền trong mạng.
Sau khi chọn node chủ. Node chủ sẽ truyền thẻ bài dọc theo chuỗi đến node cuối chuỗi. Node này bắt đầu cảm nhận dữ liệu và truyền đến node bên cạnh nó trong chuỗi. Node này sẽ tập hợp dữ liệu của nó và dữ liệu nhận được trong một gói và truyền đến node bên cạnh nó trong chuỗi. Cứ như thế, dữ liệu được truyền đến trạm cơ sở (BS).
b. Khắc phục trễ bằng chuỗi con
Mặc dù có những cải tiến đáng kể so với LEACH, nhưng PEGASIS vẫn tồn tại một số hạn chế, đáng kể nhất là trễ trong mạng khá lớn, đặc biệt là nếu kích thước mạng lớn thì chuỗi sẽ rất dài và số lượng bước nhảy rất cao khi truyền dữ liệu từ cuối chuỗi đến trạm cơ sở.
Để khắc phục trễ chúng ta có thể chia mạng ra thành nhiều khu vực con, mỗi khu vực con này sẽ thiết lập nên một chuỗi. Tương ứng với mỗi chuỗi con sẽ có một node chủ. Các node chủ này lại có thể liên kết với nhau tạo thành chuỗi cấp cao hơn và chuỗi này sẽ lại chọn node chủ để truyền đến trạm BS.
c. Tập trung dữ liệu song song
Mặc dù đơn giản nhưng mô hình tập trung dạng chuỗi dễ gây ra trễ trước khi dữ liệu tập trung được truyền đến sink. Một phương pháp để giảm độ trễ này là tập trung dữ liệu song song dọc theo chuỗi, và sẽ càng giảm nhiều hơn nếu các node được trang bị bộ thu phát sử dụng CDMA.
Dạng đơn giản nhất là các node ở 2 phía node chủ lần luợt truyền dữ liệu đến khi đến node chủ. Để có chất luợng cao hơn các node đuợc cấp các bộ thu phát dùng CDMA để tránh can nhiễu giữa các node lân cận. Hình 3.9 minh họa giải thuật tập hợp dữ liệu song song.
Hình 3.9: Cấu trúc mạng hình chuỗi
Giả sử tất cả các node đề biết đuợc các thông tin chung và được liên kết thành chuỗi. N là số node tham gia vào chuỗi. Xét node 3 ở vị trí số 3 là node chủ trong vòng đang xét, ở mức đầu tiên các node được đánh số chẵn sẽ phát dữ liệu tập hợp được cho node bên phải của mình. Mức kế tiếp, các node đang giữ các dữ liệu tập hợp đó được đánh số lại và các node đánh số chẵn sẽ phát dữ liệu cho node ngay bên phải của nó. Ở mức cuối cùng, node 7 đuợc đánh số 1 là nút chứa dữ liệu lân cận cuối cùng của node chủ node 3. Node 7 sẽ gửi toàn bộ dữ liệu tập hợp trước đó cho node chủ. Sau đó node chủ sẽ phát toàn bộ dữ liệu của chuỗi cho trạm gốc. Thuật toán chuỗi song song tiết kiệm đáng kể năng luợng tiêu thụ tại các node và độ trể gói.