Hình 1 .6 Minh họa ứng dụng hệ thống cảm biến trong giao thông
Hình 1.7 Minh họa ứng dụng hệ thống cảm biến trong dân dụng
CHƯƠNG 2: MỘT SỐ THUẬT TOÁN ĐỊNH TUYẾN TỐI ƯU NĂNG LƯỢNG CỦA MẠNG CẢM BIẾN KHÔNG DÂY
2.1. Giới thiệu
Vấn đề năng lượng tiêu thụ của nút cảm biến rất quan trọng bởi vì nhiều nút cảm biến bị hạn chế về nguồn năng lượng. Các nút cảm biến không dây có thể hoạt động bằng pin hoặc cũng có thể từ các nguồn năng lượng khác được tích trữ từ môi trường (năng lượng mặt trời). Trong cả hai trường hợp, năng lượng đều là một nguồn tài nguyên hạn chế. Để kéo dài thời gian sống của mạng thì phần mềm trên các nút cảm biến cần phải quản lý năng lượng tiêu thụ một cách hiệu quả.
Hạn chế về tài nguyên năng lượng đã ảnh hưởng nhiều đến việc thiết kế phần cứng, phần mềm, giao thức mạng và cả kiến trúc mạng. Các nhà thiết kế phần cứng bắt buộc phải lựa chọn các linh kiện phần cứng có công suất thấp cũng như hỗ trợ chế độ ngủ hiệu quả về mặt năng lượng. Phần mềm chạy trên các nút cảm biến không dây cần phải tắt các thành phần phần cứng không sử dụng và đặt các thành phần phần cứng ở chế độ ngủ càng nhiều càng tốt. Nhờ sự hỗ trợ của các nhà phát triển phần mềm, các nút mạng cảm biến có thể chạy hệ điều hành hỗ trợ các cơ chế hoạt động công suất thấp giúp tiết kiệm năng lượng.
Vấn đề hiệu quả năng lượng ảnh hưởng nhiều đến kiến trúc mạng cũng như việc thiết kế các giao thức mạng. Trong mạng, quá trình truyền thông tiêu tốn nhiều năng lượng, điều quan trọng là cần xây dựng được các giao thức truyền thông sao cho các nút cảm biến có thể sử dụng hiệu quả nguồn tài nguyên sẵn có. Do đó, phần cứng và phần mềm cần xác định được sự tiêu hao về năng lượng và cung cấp thông tin này đến tầng mạng để phục vụ cho việc định tuyến dữ liệu.
2.2. Thuật toán định tuyến SPIN-EC [4][5]
Thuật toán định tuyến SPIN-EC (Sensor Protocols for Information via Negotiation - Energy Consumption) là thuật toán cải tiến về xác định ngưỡng năng lượng của mỗi nút cảm biến trước khi thực hiện việc truyền thông.
Ý tưởng của thuật toán này như sau:
- Thuật toán này không gửi tất cả bản tin dữ liệu mà thực hiện việc dàn xếp với nhau thông qua các bản tin thông báo. Bởi vậy, nút sẽ quan sát được và chỉ gửi dữ liệu đến nơi mà có quan tâm đến dữ liệu.
- Mỗi nút sẽ có giám sát tài nguyên năng lượng của mình. Tài nguyên năng lượng này sẽ được sử dụng để thực hiện các quyết định xem có tham gia truyền thông hay không (khi ở dưới ngưỡng nào đó).
Quá trình định tuyến của giao thức SPIN-EC được thực hiện thông qua 3 bước cơ bản như minh họa dưới đây:
Hình 2.1. Các bước bắt tay của thuật toán SPIN-EC [5] Qua hình vẽ, chúng ta tóm tắt như sau:
Bước 1: ADV gửi một mô tả về dữ liệu cần gửi tới các node trong mạng. Bước 2: Một nút sau khi nhận được gói tin ADV thì sẽ biết được thông tin về gói tin của mình cần hay là không. Nếu nó đang cần gói tin đó thì nó sẽ phát đi bản tin là REQ để thông báo rằng đó là dữ liệu mà nút đang cần.
Bước 3: Gói tin DATA sẽ được nút A gửi tới nút B, nút đang cần dữ liệu đó. Trong trường hợp có nhiều hơn một nút cần dữ liệu sau bản tin ADV, thì các nút tương ứng sẽ gửi bản tin REQ về cho nút có thông tin. Khi nhận được yêu cầu đó thì nó sẽ gửi bản tin DATA theo dạng quảng bá tới các nút cần dữ liệu. Hình 2.2 dưới đây minh họa đầy đủ quá trình thực hiện của thuật toán SPIN-EC.
Hình 2.2. Các bước của thuật toán SPIN-EC [4][5].
Thuật toán SPIN-EC được thực hiện thông qua ba loại bản tin là bản tin thông báo (ADV), bản tin yêu cầu (REQ), bản tin dữ liệu (DATA) như được minh họa ở hình 2.1. Trước khi gửi một bản tin dữ liệu thì một nút sẽ thông báo ý định của nó thông qua việc gửi quảng bá một bản tin ADV (Bước 1). Bản tin ADV chứa một mô tả về bản tin DATA được gửi và bản tin ADV có kích thước nhỏ hơn so với bản tin DATA. Sau đó, nếu một nút lân cận quan tâm đến bản tin ADV thì nó sẽ trả lời lại bằng một bản tin REQ (bước 2).
Cuối cùng, bản tin DATA sẽ được gửi tới nút yêu cầu nó (bước 3). Quá trình truyền bản tin dữ liệu trong mạng được thực hiện theo cơ chế này tại mỗi bước nhảy. Chúng ta có thể thấy ở các bước 4, 5 và 6 của hình trên, nhiều nút có thể gửi bản tin REQ tới cùng một nút và nút đó sẽ gửi lại bản tin DATA tới từng nút cho đến khi tất cả các nút gửi yêu cầu đều nhận được. Quá trình truyền thông này chỉ được áp dụng khi mà năng lượng của nút ở trên ngưỡng cho phép. Tức là trước khi thực hiện việc truyền thông, mức ngưỡng năng lượng sẽ được đặt trước. Khi mức năng lượng của nút cao hơn thì nút đó sẽ tham gia quá trình truyền thông. Ngược lại, nút đó sẽ không tham gia quá trình truyền thông.
Nhận xét thuật toán SPIN-EC
Thuật toán SPIN-EC là thuật toán thuộc nhóm định tuyến trung tâm dữ liệu mà ở đó các nút cảm biến phát tín hiệu quảng bá các thông báo có dữ liệu và chờ đợi phản hồi yêu cầu từ các nút gốc quan tâm đến dữ liệu đó. Bởi vậy, thuật toán này ưu điểm hơn so với thuật toán Gossiping. Điều này đã cho phép SPIN-EC tối ưu được năng lượng so với Gossiping tới 70% năng lượng.
Tuy nhiên, SPIN-EC có độ trễ lớn vì quá trình chờ thông tin phản hồi từ các nút có yêu cầu nhận dữ liệu. Điều này dẫn đến độ trễ trong quá trình định tuyến của thuật toán.
Ngoài ra, nếu nút trung gian không quan tâm đến dữ liệu sau bản tin ADV thì dữ liệu đó không thể truyền tới được nút đích.
2.3. Thuật toán định tuyến LEACH [4][5]
LEACH (Low-Energy Adaptive Clustering Hierarchy-Centralized) là thuật toán phân cấp theo cụm thích ứng năng lượng thấp, dựa trên thuật toán phân nhóm [1][5], trong đó, các nút có thể phân bố ngẫu nhiên, và tự hình thành cụm (sefl configuring cluster formation). Nút chủ cụm có chức năng
điều khiển các nút trong cụm gửi dữ liệu đến nó theo một chu kỳ nhất định. Tại nút chủ, dữ liệu sẽ được thu thập và xử lý ở nhiều mức độ khác nhau, tùy thuộc vào từng ứng dụng, trước khi gửi tới trạm gốc. Thuật toán LEACH có khả năng tự tổ chức thành cụm, thực hiện xử lý cục bộ, rồi truyền tới nút chủ (sink). Do đó, nút chủ sẽ tốn nhiều năng lượng hơn so với nút thông thường. Cho nên, thuật toán LEACH thực hiện ngẫu nhiên quay vòng vai trò nút chủ trong tất cả các nút mạng để tránh tiêu hao năng lượng trên một số nút cố định.
Quá trình hoạt động của thuật toán LEACH như sau:
Thuật toán LEACH được chia thành các vòng, mỗi vòng được bắt đầu với pha thiết lập và pha ổn định [1]. Để giảm lượng bản tin mào đầu trong mạng thì pha ổn định phải dài hơn so với pha thiết lập. Hình 2.3 minh họa trạng thái các pha của thuật toán LEACH.
Hình 2.3. Các bước của thuật toán LEACH [5]
Pha thiết lập
Mỗi vòng hoạt động trong LEACH được bắt đầu bằng pha thiết lập, trong pha thiết lập, bước đầu tiên là lựa chọn nút chủ của từng cụm. Đây là quá trình lựa chọn nút chủ. Ban đầu nút cảm biến tự quyết định có hay không trở thành nút chủ trong vòng hoạt động đó hay không. Việc đưa ra quyết định
này là căn cứ vào tỷ lệ phần trăm mong muốn trở thành nút chủ trong mạng (P) và số lần nút đó đã trở thành nút chủ tính cho đến thời điểm hiện tại. Mỗi nút trong mạng lựa chọn một giá trị ngẫu nhiên (S) trong khoảng 0 và 1.
Nếu giá trị này thấp hơn giá trị ngưỡng T(n), nút trở thành nút chủ của vòng hiện tại, ngược lại, nếu S lớn hơn P thì nút đó là nút thông thường. Giá trị ngưỡng T(n) được xác định bởi công thức [4][5]:
(2.1)
Trong đó:
P = tỉ lệ phần trăm mong muốn trở thành nút chủ của mạng. R là vòng hiện tại.
G là tập các nút chưa trở thành nút chủ trong (1/P) vòng trước đó.
Sử dụng ngưỡng này, mỗi nút sẽ trở thành nút chủ một lần duy nhất trong một chu kỳ 1/P vòng. Cứ hết một chu kỳ 1/P vòng, tất cả nút thiết lập lại giá trị ngẫu nhiên S để bắt đầu một chu kỳ mới. Sau một vòng, giá trị T(n) tăng lên một lượng bằng P và sau 1/P -1 vòng thì T(n)=1, vậy các nút chưa trở thành nút chủ trong 1/P vòng gần nhất chắc chắn sẽ phải đảm nhận vai trò nút chủ tại vòng này. Như vậy, sau 1/P vòng, tất cả nút mạng đủ điều kiện để trở thành nút chủ duy nhất một lần.
Tiếp theo là quá trình thực hiện việc thiết lập cụm. Tức là, sau khi quyết định trở thành nút chủ cho vòng hiện tại, nút chủ phát quảng bá một bản tin Advertisement (ADV) cho nút lân cận. Bản tin này là một bản tin nhỏ chứa ID của nút chủ và một tiêu đề để phân biệt bản tin này là một bản tin thông báo. Nút không phải là nút chủ sẽ phải giữ bộ thu trong suốt thời gian diễn ra pha thiết lập để lắng nghe bản tin Advertisements của nút chủ. Những nút không phải là nút chủ sẽ quyết định nó sẽ nằm trong cụm nào bằng việc
chọn xem nút chủ nào yêu cầu chi phí năng lượng giao tiếp thấp nhất dựa trên cường độ của tín hiệu nhận được từ bản tin quảng bá. Giả sử các kênh truyền là đối xứng, nút chủ có bản tin Advertisement được lắng nghe với cường độ tín hiệu lớn nhất chính là nút cần ít năng lượng nhất cho việc truyền thông.