G là tập các node chưa trở thành cluster-head sở 1/P vòng trước đó.
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.
34 4 5 6 7 8 2 1
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.