Tải bản đầy đủ (.doc) (34 trang)

Xây dựng công cụ mô phỏng các thuật toán định tuyến mạng không dây ứng dụng nghiên cứu khắc phục hố mạng trong môi trường địa hình phức tạp

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.02 MB, 34 trang )

B

TR N G

GIÁO D C VÀ À O T O

I

H C BÁCH KHOA HÀ N I

______________________________

BÁO CÁO CHUYÊN
Tên

tài:

Xây d n g công c mô ph n g các thu t toán
n h tuy n m n g không dây n g d n g nghiên c u
kh c ph c h m ng trong môi tr g a hình ph c
tp
S N PH M : Báo cáo k thu t cung c p gi i pháp
và kh o sát th c nghi m trên c s cài t gi l p .
-----------------------------------------N i dung 6: n g d n g m n g c m bi n
kh o sát
xác n h vùng b thiên tai n n g thông qua vi c nhanh
chóng xác n h h m n g: nghiên c u
xu t thu t toán
xác n h nhanh h kích th c l n trong i u ki n a
hình liên t c bi n n g ; á nh giá qua th c nghi m mô
ph n g .


2.
xu t thu t toán và cài t mô ph ng, ánh giá th c
nghi m cho thu t toán xác n h nhanh chóng và c p nh t liên t c
biên h m ng có kích th c l n, trong quá trình bi n i liên t c.
Ch nhi m
tài:
Ng i th c hi n:
TS. Nguy n Khanh V n
Nguy n Phi Lê

Nguy n Khanh V n

C quan ch trì
HÀ N I ,

Ngô H n g S n


MC LC

DANH SÁCH HÌNH ẢNH....................................................................................................3
DANH SÁCH BẢNG BIỂU..................................................................................................4
CHƯƠNG I. THỰC TRẠNG VÀ TÍNH CẤP THIẾT CỦA ĐỀ TÀI..................................5
1.1. Tổng quan về mạng cảm biến và vấn đề hố mạng......................................................5
1.2. Tính cấp thiết của bài toán xác định biên hố...............................................................6
CHƯƠNG II. MỘT SỐ NGHIÊN CỨU LIÊN QUAN.........................................................8
2.1. Xấp xỉ hố dựa trên lưới ô vuông..................................................................................8
2.3. Xấp xỉ biên hố bằng đa giác lồi động........................................................................14
CHƯƠNG II. ĐỀ XUẤT THUẬT TOÁN XÁC ĐỊNH VÀ CẬP NHẬT BIÊN HỐ..........21
2.1. Tổng quan thuật toán.................................................................................................21

2.2. Biểu diễn bitmap.......................................................................................................21
2.3. Thuật toán phát hiện biên hố (HBD).........................................................................22
2.4. Thuật toán cập nhập biên hố......................................................................................24
2.4. Tổng hợp thông tin biên hố.......................................................................................26
CHƯƠNG III. ĐÁNH GIÁ HIỆU NĂNG...........................................................................28
KẾT LUẬN..........................................................................................................................33
TÀI LIỆU THAM KHẢO....................................................................................................33

2


DANH SÁCH HÌNH ẢNH
Hình 1: Đa giác xấp xỉ bằng lưới ô vuông Hình 2: A-vertex................................................9
Hình 1: Đa giác xấp xỉ bằng lưới ô vuông Hình 2: A-vertex................................................9
Hình 3: Minh họa cho bổ đề 3..............................................................................................13
Hình 4: bao phủ - β...............................................................................................................15
Hình 5:Thuật toán tinh giản biên hố xấp xỉ.......................................................................17
Hình 6: Minh họa thuật toán.................................................................................................20
Hình 7: Minh họa về biểu diễn bitmap.................................................................................22
Hình 8: Minh họa thuật toán xác định biên hố.....................................................................23
Hình 9: Ví dụ về cập nhật thông tin biên hố........................................................................25
Hình 10: Vị trí tương đối của I-square.................................................................................26
Hình 11: Minh họa bổ đề 1...................................................................................................27
Hình 12: so sánh độ chênh lệch giữa số lượng nút chết thực sự và số lượng nút chết được
phát hiện bởi thuật toán........................................................................................................31
Hình 13: So sánh tỉ lệ diện tích hình xấp xỉ hố / diện tích hố thực sự..................................32

3



DANH SÁCH BẢNG BIỂU

4


CHƯƠNG I. THỰC TRẠNG VÀ TÍNH CẤP THIẾT CỦA ĐỀ TÀI
1.1. Tổng quan về mạng cảm biến và vấn đề hố mạng
1.1.1. Mạng cảm biến không dây
Mạng cảm biến không dây là mạng bao gồm nhiều thiết bị cảm
biến, giao tiếp, trao đổi dữ liệu với nhau bằng phương pháp truyền tin
không dây. Với sự phát triển của kỹ thuật vi xử lý, mạng cảm biến không
dây ngày càng được sử dụng rỗng r.i và có nhiều ứng dụng quan trọng
trong khắp các lĩnh vực. Từ các ứng dụng trong công nghiệp như: các hệ
thống giám sát máy móc, phát hiện lỗi trong các nhà máy, đến các ứng
dụng trong nông nghiệp như các mạng theo dõi nhiệt độ, độ ẩm, ánh
sáng; từ các ứng dụng trong dân sự như: theo dõi bệnh nhân, ngôi nhà
thông minh, đến các ứng dụng trong quân sự như các hệ thống giám sát
chiến địa. Ngoài ra, có một lớp ứng dụng quan trọng không thể không kể
đến của mạng cảm biến không dây chính là theo d.i môi trường, dự báo
thiên tai như các hệ thống dự báo lũ lụt, núi lửa, động đất, cháy rừng.
Khác với các loại mạng khác như wifi, wimax, Ethernet, mạng cảm biến
không dây có những đặc trưng riêng biệt như sau: Thứ nhất, các thiết bị
mạng cảm biến không dây bị hạn chế rất nhiều về khả năng tính toán và
năng lượng. Hơn thế nữa, các nút mạng cảm biến không dây hầu hết là
không có khả năng tái tạo năng lượng, nghĩa là một khi hết năng lượng,
các nút mạng cảm biến không dây sẽ trở thành các nút mạng chết. Thứ
hai, mạng cảm biến không dây thường có quy mô rất lớn, ví dụ một hệ
thống cảnh báo cháy rừng có thể lên đến hàng ngh.n nút mạng. Trong
mạng cảm biến không dây, các nút mạng truyền tin cho nhau bằng
phương pháp truyền tin không dây và vì vậy, một nút mạng chỉ có thể

truyền nhận tin trực tiếp từ các nút mạng nằm trong vùng phủ sóng của
nó. Trong trường hợp hai nút mạng nằm ngoài vùng phủ sóng của nhau
mà muốn truyền nhận tin cho nhau thì gói tin sẽ phải được truyền qua
các nút trung gian. Đường truyền của các gói tin được quyết định bởi
các thuật toán định tuyến.
1.1.2. Vấn đề hố mạng
Hố mạng là các vùng trống, không chứa nút mạng, hoặc nút mạng
ở đó không còn khả năng hoạt động. Hố mạng có thể được sinh ra do sự
5


xuất hiện của các chướng ngại vật như sông, núi, ao, hồ; Hoặc do sự
xuất hiện của các phá hủy vật lý như núi lửa, động đất hoặc có thể do
bản thân các nút mạng cạn kiệt năng lượng và trở thành các nút chết.
Chính vì thế, hố mạng thường hay xuất hiện đối với các mạng cảm biến
không dây được triển khai trong địa hình phức tạp. Sự xuất hiện của hố
mạng thường là dấu hiệu của sự có mặt của một chướng ngại vật nào đó
hoặc là sự xuất hiện của một sự kiện nào đó. Ví dụ, sự có mặt của một
con sông hay sự xuất hiện của một đám cháy rừng sẽ sinh ra một hố
mạng. Chính vì vậy, việc xác định biên hố sẽ giúp ta xác định được vị trí
của các hiện tượng đi kèm với sự xuất hiện của hố mạng.
1.2. Tính cấp thiết của bài toán xác định biên hố
Hãy tưởng tượng một kịch bản như sau: Có một khu rừng nhiệt đới rất thường hay
xảy ra cháy rừng vào mùa hè. Bởi vì khu rừng này rất rộng và địa hình hiểm trở nên con
người gần như không thể thâm nhập và theo dõi, dự báo cháy rừng một cách trực tiếp
được. Để dự báo cháy rừng, người ta dùng một máy bay rải xuống khắp rừng một lượng
lớn các cảm biến. Các cảm biến này chỉ gồm 3 module cơ bản: cảm biến nhiệt độ, cảm
biến độ ẩm, truyền tín hiệu. Một trong những mục tiêu đầu tiên là phải làm sao để các gói
tin giữa các nút mạng được truyền đi thông suốt và dữ liệu được thu thập một cách hiệu
quả.

Tuy nhiên, để đạt được mục tiêu này không phải là điều dễ dàng nếu không muốn
nói là khá thách thức bởi vì mỗi nút mạng chỉ có thể truyền nhận tin được với các nút mạng
nằm trong vùng phủ sóng của nó. Thật không may, không phải tất cả các cảm biến đều tiếp
cận được mặt đất và hoạt động được bình thường. Một số nút mạng có thể rơi xuống hồ,
một số nút khác có thể vướng trên cây, một số nút mạng khác có thể bị hỏng, ... Chính vì
thế, toàn bộ mặt đất không thể bao phủ được bởi các nút mạng và điều đó có nghĩa là
không phải nút mạng nào cũng có thể truyền tin được cho một nút mạng khác bất kỳ. Khi
hỏa hoạn xảy ra, các nút mạng ở trong vùng hỏa hoạn hoặc ngay sát vùng hỏa hoạn có thể
bị chết, không hoạt động được. Và như thế nghĩa là chúng không thể nào truyền đi thông
tin về vùng hỏa hoạn. Nghịch lý là, thông tin của các nút mạng này lại chính là thông tin
mà chúng ta đang cần để xác định vị trí của đám cháy. Để giải quyết vấn đề này, một trong
những phương pháp được đặt ra đó là: xác định tập hợp của các nút mạng còn sống nằm
gần đám cháy nhất. Hay nói cách khác, nếu đám cháy được gọi là hố mạng (vì các nút
mạng bên trong nó đều chết hết), thì tập hợp các nút mạng còn sống nằm gần đám cháy
nhất chính là biên của hố mạng.
6


Có rất nhiều nghiên cứu đã đề xuất các thuật toán xác định biên hố. Trong [1] nhóm
tác giả Q.Fang đã đề xuất thuật toán xác định biên hố với giả thiết rằng mỗi nút mạng đều
biết tọa độ của mình và của các nút lân cận. Trong [2], nhóm tác giả Fekete đề xuất một
thuật toán xác định biên hố mà không cần đến vị trí địa lý của các nút mạng. Tuy nhiên,
thuật toán này phải sử dụng một giả thiết rằng, phân bố của các nút mạng ở những vùng
không có hố là một phân bố đều. Trong một kết quả nghiên cứu gần đây hơn [3], cũng là
nhóm tác giả Fekete đã đề xuất một thuật toán xác định biên hố mới không cần sử dụng
đến giả thiết phân bố đều của các nút mạng. Bài báo này cũng đề cập một phương pháp
khá thú vi trong việc thu thập thông tin về biên hố để vẽ ra một bản phác thảo của mạng.
Mặc dù cho đến này có rất nhiều nghiên cứu đã đề xuất các thuật toán xác định biên
hố nhưng chưa một nghiên cứu nào đề xuất thuật toán cập nhật nhanh chóng thông tin biên
hố khi thay đổi. Trong nghiên cứu này chúng tôi sẽ đề xuất một thuật toán xác định biên hố

và thuật toán cập nhật biên hố nhanh chóng.

7


CHƯƠNG II. MỘT SỐ NGHIÊN CỨU LIÊN QUAN
2.1. Xấp xỉ hố dựa trên lưới ô vuông
2.2.1. Giới thiệu
Trong bài báo [21] chúng tôi đã đề xuất thuật toán xấp xỉ biên hố dựa trên lưới ô
vuông. Tư tưởng của thuật toán này là làm sao để xấp xỉ hố bằng một đa giác
đơn giản, bao ngoài hố sao cho sai số xấp xỉ cũng như số đỉnh của đa
giac là nhỏ nhất có thể dựa trên lưới ô vuông. Đa giác xấp xỉ của chúng
tôi là một đa giác thỏa m.n các thuộc tính sau:


Bao phủ: Đa giác xấp xỉ bao phủ toàn bộ hố



Dựa trên lưới ô vuông: Các đỉnh của đa giác xấp xỉ là mắt lưới và
các cạnh của đa giác xấp xỉ nằm trên cạnh của lưới ô vuông. Tính
chất này giúp cho việc biểu diễn thông tin của biên hố trở nên dễ
dàng, đỡ tốn chi phí.



Có thể khống chế được sai số xấp xỉ: Số đỉnh của đa giác xấp xỉ
được khống chế bởi cận trên N. Cận trên này là một hằng số được
quy định trước. Cận trên này sẽ quyết định sai số xấp xỉ theo
nghĩa, N càng lớn thì sai số xấp xỉ càng nhỏ và ngược lại.


Hình 1 minh họa đa giác xấp xỉ bằng lưới ô vuông của chúng tôi. Trong
hình này, vùng gạch chéo biểu diễn hố, đường màu đỏ biểu diễn đa giác
xấp xỉ bằng lưới ô vuông. Tư tưởng chính của chúng tôi là dùng một gói
tin đặc biệt truyền đi men theo biên hố để thu thập thông tin tọa độ của
các nút mạng trên biên hố. Từ thông tin tọa độ của các nút mạng trên
biên hố chúng tôi sẽ tính ra đa giác xấp xỉ. Về cơ bản, thuật toán của
chúng tôi gồm ba pha: pha thu thập thông tin, pha xấp xỉ và pha pha rút
gọn. Pha thu thập thông tin là pha xác định và thu thập thông tin của
các nút trên biên hố. Pha xấp xỉ là quá tr.nh xấp xỉ các cạnh trên biên hố
8


bằng các cạnh của đa giác xấp xỉ và pha rút gọn là pha rút gọn các đỉnh
của đa giác xấp xỉ nhằm đảm bảo số đỉnh của đa giác xấp xỉ không vượt
quá giới hạn cho trước.
2.2.2. Các khái niệm và định nghĩa

Hình 1: Đa giác xấp xỉ bằng lưới ô vuông

Hình 2: A-vertex

Định nghĩa 1 Giả sử H là một hố với biên hố được ký hiệu là δH và G là
một lưới ô vuông cho trước với kich thước cạnh là w. Đa giác xấp xỉ, bao
hố H (gọi tắt là A-polygon) là một đa giác nhận được bằng cách nối các
cạnh của h.nh vuông đơn vị nằm bên ngoài H và giao với H (Hình 1 ).
Để ý rằng, do các cạnh của đa giác xấp xỉ nằm trên các cạnh của
lưới ô vuông, để biểu diễn đa giác xấp xỉ chúng ta không cần lưu toàn bộ
tọa độ của tất cả các đỉnh của đa giác mà chỉ
cần lưu tọa độ của một nửa số đỉnh của đa giác, cụ thể là những đỉnh có

tính chất như sau:
Định nghĩa 2 Xét đa giác xấp xỉ G với các đỉnh là G0,G1, ..., Gm được sắp
xếp theo chiều kim đồng hồ. Một đỉnh của G được gọi là đỉnh xác định
đa giác (A-vertex) nếu và chỉ nếu nó thỏa mãn ít nhất mổt trong các
tính chất sau:


Là đỉnh đầu tiên của một cạnh song song với trục x



Tọa độ x và y khác với tọa độ của A-vertex liền trước nó
9


Hình 2 biểu diễn một ví dụ về A-polygon và A-vertex. Trong ví dụ này, G1
được chọn là A-vertex đầu tiên và nó là đỉnh của cạnh đầu tiên song
song với trục x. Vì vậy, G3 là A-vertex tiếp theo bởi vì cả 2 tọa độ x,y của
nó đều khác G1. Tương tự, G5, G7, ...,G2k+1 cũng là A-vertex trong khi G0,
G2, ..., G2k thì không phải là A-vertex. Rõ ràng là tọa độ
của G0, G2, ..., G2k có thể suy ra từ tọa độ của các A-vertex theo công
thức sau:

Trong đó, Gix , Giy tương ứng là ký hiệu tọa độ x,y của Gi .
2.2.3. Mô tả chung về thuật toán
Mục đích của chúng tôi là xây dựng đa giác xấp xỉ G của hố H, giả
sử rằng hố H có các nút trên biên là δH = H0, H1, ..., Hn. Như đã nói ở trên,
trong thuật toán online này cả ba pha thu thập thông tin, xấp xỉ và rút
gọn được thực hiện đồng thời cùng một lúc tại tất cả các nút. Chúng tôi
sử dụng thuật toán xác định hố Boundhole [9] để xác định δH (tức là để

xác định tọa độ các đỉnh của δH). Hơn thế, chúng tôi mở rộng thuật toán
Boundhole để có thể xác định đa giác xấp xỉ trong quá tr.nh xác định
biên hố. Sai số xấp xỉ được điều khiển bằng 2 tham số w (độ dài cạnh
của lưới ô vuông) và N (số đỉnh tối đa của đa giác xấp xỉ).
Sử dụng thuật toán boundhole các nút có thể phát hiện được m.nh có
nằm trên một biên hố nào đó hay không. Nút đầu tiên phát hiện ra m.nh
nằm trên biên hố sẽ tạo ra gói tin HBA (Hole Boundary Approximation)
và truyền gói tin này theo quy tắc bàn tay phải. Bằng cách truyền gói tin
theo quy tắc bàn tay phải, gói tin sẽ được truyền qua tất cả các nút trên
biên hố. Gói tinHBA có các trường như sau:
_ gridSize: là kích thước cạnh của h.nh vuông đơn vị của lưới ô vuông
_ MaxCount: là số đỉnh tối đa của đa giác xấp xỉ
_ vCoordinates: Tọa độ các A-vetex xác định được đến thời điểm hiện tại
Không mất tính tổng quát chúng tôi giả sử H0, H1, ..., Hn là các nút
được truyền gói
tinHBA qua theo chiều kim đồng hồ. Như vậy H0 là nút tạo ra gói tin HBA
với các giá trị khởi tạo là vCoordinates=NULL, gridSize=r, MaxCount=N.
10


Gói tin HBA sau đó sẽ được truyền qua các nút H0, H1, ..., Hn, mỗi nút sau
khi nhận được gói tin HBA sẽ tiến hành các thao tác sau:
_ Xấp xỉ đoạn thằng Pi-1Pi bằng đường gấp khúc nối các cạnh của các ô
vuông đơn vị của lưới ô vuông sử dụng thuật toán trong 2.2.3.2 . Thuật
toán này sẽ xác định các đỉnh A-vertex và chèn vào trường vCoordinate
của gói tinHBA.
_ Rút gọn phần đ. xác định của A-polygon nếu số đỉnh A-vertex hiện tại
trong trường vCoordinate đ. vượt quá cận trên (giá trị được lưu trong
trường MaxCount).
Sau khi gói tinHBA đi một v.ng và quay lại H0, H0 sẽ thua thập được

tọa độ của toàn bộ
các đỉnh A-vertex và từ đó sẽ dựng nên đa giác xấp xỉ.
2.2.4. Xấp xỉ các cạnh của biên hố
Theo thuật toán trong [18], toàn bộ hố phải nằm bên phải của véc-tơ PiPi. Từ định nghĩa của A-polyon, đoạn Pi-1Pi sẽ được xấp xỉ bằng đường

1

gấp khúc nối các cạnh của các hình vuông đơn vị cắt đoạn Pi-1Pi nằm bên
trái của véc-tơ Pi-1Pi (hình 3). Bổ đề dưới đây miêu tả điều kiện để một
mắt lưới ô vuông nằm về bên trái của tia Pi-1Pi.
Bổ đề 1. Giả sử G là một đỉnh của h.nh vuông đơn vị cắt đoạn thằng Pi1Pi.

Thế thì G nằm về bên trái của véc-tơ Pi-1Pi nếu và chỉ nếu G là ảnh

của tâm của h.nh vuông đơn vị cắt doạn thằng Pi-1Pi qua phép tịnh tiến
 ∠xPi −1 Pi  π 3π
theo véc-tơ v = (r 2 cos β , r 2 sin β ) . Trong đó, β = 
* +
 π /2  2 4
Bổ đề 2. Giả sử O là tâm của một h.nh vuông đơn vị cắt đường thằng Pi1Pi

và giả sử rằng tọa độ x, y của O lần lượt là mr+r/2 và nr+r/2. Thế thì,

bất đẳng thức sau đây là điều kiện cần và đủ của m và n:

(

)(

)


x
y
x
y
Trong đó, αlà hệ số góc của đường thẳng Pi-1Pi và Pi −1 , Pi −1 , Pi , Pi tương

ứng là tọa độ của Pi-1, Pi.
Giả sử (mi-1r+r/2, ni-1r+r/2) và (mir+r/2, nir+r/2) lần lượt là tọa độ tâm của các
hình vuông đơn vị chứa Pi-1 và Pi. Từ bổ đề 1 và bổ đề 2, đoạn thẳng Pi-1Pi
được xấp xỉ bởi đường gấp khúc như thuật toán mô tả trong 3.1.
11


2.2.5. Rút gọn biên hố xấp xỉ
Thuật toán rút gọn biên hố xấp xỉ được thực hiện tại nút Pi nếu số
lượng đỉnh A-vertex hiện đang lưu trong trường verticesCoordinates lớn
hơn giá trị giới hạn được lưu trong trường verticesNum. Giả sử G1, G2, ...,
Gk là tập các đỉnh của đa giác xấp xỉ, ta có bổ đề sau:
Bổ đề 3 Giả sử Gi-1GiGi+1 là một góc lõm (tức là góc có độ lớn lớn hơn π).
Thế thì,bằng cách thay Gi bởi ảnh của nó qua phép đối xứng tâm với tâm
đối xứng là trung điểm của đoạn thẳngGi-1Gi+1 (ký hiệu là Gi'), số lượng
đỉnh A-vertex sẽ giảm đi 1 nếu Gi' không
trùng với Gi-2 hoặc Gi+2, và 2 trong các trường hợp còn lại.

12


Hình 3: Minh họa cho bổ đề 3


Đoạn giả code sau đây mô tả chi tiết thuật toán rút gọn biên hố

13


2.3. Xấp xỉ biên hố bằng đa giác lồi động
Trong bài báo [22] chúng tôi đã đề xuất một thuật toán xấp xỉ biên hố bằng đa giác
lồi động, trong chương này chúng tôi sẽ trình bày thuật toán đó.
2.3.1. Mô hình lý thuyết
Chúng tôi giả sử rằng, mạng đang xét có mật độ nút tương đối dày
đặc (ngoại trừ vùng có hố), và với giả thiết này chúng tôi có thể mô hình
hóa đường đi ngắn nhất từ S đến D trong trường hợp S, D nằm về hai
phía của hố H bằng đường gấpkhúc nối S, D và các nút trên biên hố. Hố
H được biểu diễn bằng một đa giác với các đỉnh là các nút mạng trên
biên hố. Để ý rằng số đỉnh của hố H có thể rất lớn và vì vậy, mục đich
của chúng tôi là t.m ra một giải pháp để xấp xỉ hố H bởi một đa giác P
đơn giản hơn (có ít đỉnh hơn) sao cho hệ số đường đi Ơclit (xem định
nghĩa 2.4.1) của P đối với H đủ nhỏ, trong khi vẫn đảm bảo chi phí cho
việc quảng bá và lưu trữ thông tin của hố là không quá lớn.
Trước khi đi vào mô hình lý thuyết, chúng tôi thấy có một số điểm
lưu ý như sau. Trước hết, nếu lấy tiêu chí đảm bảo đường đi ngắn nhất
qua 1 hố H, chúng ta chỉ cần xem xét các đa giác xấp xỉ là đa giác lồi.
Thứ hai, Ngoài tiêu chí đảm bảo đường đi ngắn đa giác xấp xỉ cũng cần
đảm bảo chi phí phát tán và lưu trữ thông tin của nó là nhỏ nhất có thể.
Từ hai tiêu chí này, ta thấy rằng số đỉnh của đa giác xấp xỉ đối với các
nút nguồn ở gần hố nên lớn và số đỉnh của nút nguồn ở xa hố th. nên
nhỏ. Cụ thể hơn, để đảm bảo hệ số đường đi Ơclit không vượt quá một
hằng sốα > 1 cho trước, nút nguồn gần đích sẽ cần sử dụng   một đa
giác xấp xỉ chính xác hơn (sai số so với hố nhỏ ) trong khi nút xa đích
hơn th. chỉ cần một đa giác xấp xỉ không quá chính xác (sai số so với hố

là lớn). Vì vây, khoảng cách từ nút nguồn S đến hố sẽ là yếu tố chính để
quyết định mức độ chính xác của thông tin về hố mà S cần biết để đảm
bảo rằng hệ số đường đi của đường định tuyến vượt hố không vượt quá
hằng sốα.
Một câu hỏi tự nhiên là, đối với hố H được biểu diễn như là một đa
giác với n đỉnh thì trong số các đa giác có k đỉnh (k < n) bao ngoài H, đa
giác nào sẽ cho hệ số đường đi Ơclit nhỏ nhất (đối với một cặp S-D cho
trước). Mặc dù chúng tôi không t.m được câu trả

14


lời đầy đủ cho câu hỏi này nhưng như sẽ phân tích sau đây, chúng tôi
thấy rằng đa giác có
chu vi nhỏ hơn sẽ có xu hướng cho hệ số đường đi nhỏ hơn. Trước khi đi
vào mô hình lý thuyết chi tiết, chúng tôi đưa ra một số định nghĩa sau:
R. ràng, đối với một nút N bất kỳ nằm ngoài P chỉ có đúng hai đỉnh giới
hạn từ N đối với P.
Định nghĩa 2.3.1 (bao phủ-β) Giả sử P là một đa giác và β là một số
dương. Thế thì, bao phủ-β của P là một đa giác bao phủ P và có mỗi một
cạnh của nó song song với một cạnh của P sao cho khoảng cách giữa
các cặp cạnh song song đó đều bằng β (hình 4).
Định nghĩa 2.3.2 (Khoảng cách từ một đỉnh đến đa giác) Giả sử P
là một đa giác lồi, N là một điểm nằm ngoài P. d > 0 được định nghĩa là
khoảng cách từ N đến P nếu và chỉ nếu N nằm trên biên của bao phủ-d
của P.

Hình 4: bao phủ - β

2.3.2. Lược đồ xấp xỉ và phát tán cơ bản

Chúng tôi sử dụng các thuật toán [9] để xác định biên hố cũng
như xác định bao lồi của hố. Giả sử rằng, sau khi sử dụng hai thuật toán
trên hố và bao lồi của hố đã được xác định, trong đó bao lồi của hố là đa
giác lồi H với số đỉnh là n. Dựa trên kết quả này chúng tôi sẽ xây dựng
một lược đồ xấp xỉ và phát tán biên hố sao cho thông tin về hố mà mỗi
nút mạng nhận được là vừa đủ để đảm bảo hệ số đường đi Ơclit không
vượt quá hằng sốα định trước. Lược đồ của chúng tôi có thể đảm bảo
được hệ số đường đi Ơclit của tất cả các cặp nguồn-đích không vượt quá
α.Tư tưởng của chúng tôi là xây dựng một d.y các đa giác xấp xỉ của H
15


là P(0)=H, P(1), P(1),..., P(n-3), có số đỉnh lần lượt là n, n-1, ..., 2, 3, đồng thời,
tìm ra một dãy khoảng cách Ơclit g1 < g2 < : : : < gn-3 sao cho điều kiện
sau thỏa mãn: Đối
với một nút bất kỳ ở khoảng cách ít nhất là gi đối với P(i), th. E-stretch
của P(i) đối với H không vượt quá α. Nghĩa là, nếu nút có khoảng cách tới
hố không vượt quá gi thì sẽ sử dụng P(i) làm đa giác xấp xỉ trong định
tuyến, và E-stretch luôn luôn được đảm bảo không vượt quá α.
Tất nhiên là, để tiết kiêm tài nguyên mạng thì muốn gi càng nhỏ
càng tốt. Chúng tôi tin rằng việc tìm ra một dãy P(i)’s và gi tối ưu là một
vấn đề phức tạp và khó giải quyết. Như chúng tôi đã nói ở trên, khi cố
định số đỉnh, thì đa giác xấp xỉ tối ưu ( cho E-stretch nhỏ nhất) nên là đa
giác có chu vi nhỏ nhất. Xác định đa giác có chu vi nhỏ nhất trong số
các đa giác bao ngoài một đa giác cho trước lại cũng là một vấn đề rất
khó trong hình học tính toán và không thích hợp với các đặc tính của
mạng cảm biến không dây. Tuy không tìm được lời giả tối ưu, nhưng ở
đây chúng tôi sẽ đề xuất một giải pháp tương đối tốt, sử dụng kỹ thuật
heuristic đơn giản.
Trước hết, chúng tôi xem xét thuật toán để tinh giản đa giác P ( với

các đỉnh là
{P1; P2; :::; Pn} thành một đa giác có số đỉnh ít hơn 1 đỉnh, ta gọi đa giác
này là P-tinh
giản. Thuật toán này sẽ cố gắng t.m ra một đa giác P-tinh giản có chu vi
nhỏ nhất có thể.
Dưới đây là định nghĩa của đa giác P-tinh giản.
Thuật toán 2.3.1 (Tinh giản đa giác) Cho trước: đa giác lồi P = {P1;
P2;...:; Pn}.
Tính: đa giác P-tinh giản, một đa giác xấp xỉ của P.
1. Tìm i sao cho giá trị của Pi −1Qi + Pi +1Qi − Pi Pi +1 là nhỏ nhất, trong đó Qi
là giao điểm của Pi-1Pi và Pi+1Pi+2
2. Đa giác {P1 P2 ... Pi-1QiPi+2...Pn} là đa giác cần tìm.

16


Hình 5:Thuật toán tinh giản biên hố xấp xỉ

Hình 5 mô tả thuật toán tinh giản đa giác của chúng tôi. Một cách tự
nhiên, sử dụng thuật toán tinh giản này một cách đệ quy chúng ta sẽ
nhận được một chuỗi các đa giác xấp xỉ P(0)=H, P(1), P(1),..., P(n-3), trong đó
P(i+1)là đa giác tinh giản của P(i). Vì vậy, ta chỉ cần tìm gi càng nhỏ càng
tốt sao cho E-stretch của P(i) đối với H cho một nút bất kỳ có khoảng
cách đến P(i) lớn hơn hoặc bằng gi không vượt quá α. Giả sử chúng ta đã
có cách tính gi thỏa mãn các điều kiện nêu trên, dưới đây chúng tôi sẽ
trình bày lược đồ xấp xỉ và phát tán thông tin biên hố mà ở đó tất các
các nút S nằm ngoài hố H chỉ nhận thông tin vừa đủ để cho đường định
tuyến vượt qua H có hệ số đường đi Ơclit không vượt quá hằng số α > 1
định trước.
Thuật toán 2.3.2 (Lược đồ xấp xỉ và phát tán thông tin biên hố)

1. Các nút trên biên hố H xác định bao lồi của hố dùng thuật toán mô tả
trong [23].
2. Các nút trên biên hố tính g1 và bắt đầu phát tán thông tin P(0)=H, g0 =
0 và g1 cho các nút bên ngoài hố.
3. Với i=0 đến n-4 : Sau khi nhận được (P(i), gi, gi+1), nút ở khoảng cách
d ∈ [ g i , g i +1 ) từ hố sẽ lưu thông tin của P(i) vào bộ nhớ , trong khi nút ở
khoảng cách gi+1 tính P(i) và gi+2, bằng cách sử dụng thuật toán tinh giản
đa giác xấp xỉ, và tiếp tục phát tán thông tin ra phía xa hố hơn.
Quá trình trên đây sẽ kết thúc khi nút ở khoảng cách gn-3 nhận
được đa giác P(n-3) (là một đa giác). Kết quả phân tích của chúng tôi trong
chương tiếp theo sẽ chỉ ra cách tính gi. Dựa vào quá trình phát tán thông
17


tin đa giác xấp xỉ tr.nh bày trên đây, thuật toán định tuyến sẽ được tiến
hành theo hướng như sau: gói tin xuất phát từ nút nguồn có khoảng
cách đến hố nằm trong khoảng d ∈ [ g i , g i +1 ) , i ≤ n − 4 sẽ sử dụng thông tin
của P(i), trong khi các gói tin xuất phát từ khoảng cách lớn hơn gn-3 sẽ chỉ
đơn giản được truyền đi bằng thuật toán định tuyến tham ăn cho đến khi
nó đến được một nút có thông tin của P(n-3).
2.3.3. Thuật toán cụ thể
Bây giờ chúng tôi sẽ mô tả thuật toán cụ thể . Mục tiêu của chúng tôi là
xây dựng một thuật toán phân tán để xấp xỉ và phát tán thông tin hố
theo phương thức động theo một phương thức hiệu quả sao cho hệ số
của đường định tuyến không vượt quá một hằng sốα> 1 quy định trước.
Nhớ lại rằng, trong chương 2.3.2 chúng tôi đ. xây dựng một dãy các đa
giác P(0)=H, P(1), P(1),..., P(n-3)( số đỉnh của các đa giác này lần lượt là n, n1, ..., 2, 3) bằng cách lặp lại nhiều lần thuật toán tinh giản đa giác một
cách đệ quy với đa giác ban đầu là bao lồi của hố. Từ định l. 2.3.3 chúng
ta có thể thấy rằng, toàn bộ mạng sẽ bị chia thành cách vành đai bởi
các đa giác G ( i ) (1 ≤ i ≤ n − 3) , trong đó các nút mạng nằm trong vùng vành

đai giữa G(i) và G(i+1) sẽ nhận đa giác P(i) như là đa giác xấp xỉ của hố, với
G(i) là
bao-gi của P(i). Lược đồ cơ bản trong chương 2.3.2 giờ đây có thể cụ thể
hóa dựa vào công thức tính gi dưới đây:

Thuật toán chi tiết của chúng tôi bao gồm hai pha: xấp xỉ biên hố và
phát tán thông tin biên hố xấp xỉ. Pha xấp xỉ sẽ thực hiện việc xấp xỉ
biên hố bằng bao lồi của nó. Pha phát tán được thực hiện bằng một
chuỗi các thao tác cập nhật-chuyển tiêp gói tin có chứa bộ ba thông tin
DESCi=(P(i), gi, gi+1). Khi gói tin này được chuyển đến một nút nằm trên
biên của G(i+1), đa giác xấp xỉ P(i) sẽ được thay bằng đa giác tinh giản của
nó, P(i+1) ( đa giác tinh giản được xác định bằng thuật toán 2.3.1) trước
khi được truyền đi cho các nút láng giềng. Tuy nhiên, trong một số
trường hợp đặc biệt, một số nút ( ví dụ những nút nằm trên biên của
một hố nhỏ khác) gói tin chứa DESCi+1 có thể đến trước gói tin chứa
18


DESCi và vì vậy chúng ta cần có những xử lý ngoại lệ đối với những
trường hợp này. Toàn bộ xử lý cụ thể được mô tả trong thuật toán dưới
đây:

Hình 6 minh họa thuật toán.

19


Hình 6: Minh họa thuật toán

20



CHƯƠNG II. ĐỀ XUẤT THUẬT TOÁN XÁC ĐỊNH VÀ CẬP NHẬT BIÊN HỐ
2.1. Tổng quan thuật toán
Tiêu chí quan tr ng nh t c a chúng tôi khi thi t k thu t toán này là làm sao phát
hi n và update thông tin biên h càng nhanh, càng t t. Vì v y, thay vì xác n h chính xác
biên h , chúng tôi h n g t i vi c xác n h hình x p x c a biên h . Hình x p x này c
xác n h b ng m t t p các hình vuông n v c t h .
Chúng tôi cung c p hai thu t toán: thu t toán phát hi n biên h ( c ký hi u là
thu t toán HBD) và thu t toán c p nh t thông tin biên h ( c ký hi u là thu t toán
HBU). Thu t toán HBD c th c hi n b i các nút t c (các nút t c này c phát hi n
thông qua thu t toán TENT [9]).
ý r ng, khi s d ng thu t toán TENT, các nút t c phát
hi n c s luôn n m trên biên c a m t h nào ó nh ng không ph i t t c các nút trên
biên h u là nút t c. Vì v y, ch có m t s l n g nh các nút trên biên h s th c hi n
thu t toán HBD.
Các nút t c s t o ra gói tin HBA (vi t t t c a c m t Hole Boundary
Approximation) và truy n ti p gói tin HBA cho nút lân c n theo quy t c bàn tay ph i ([9])
cho n khi gói tin HBA n
c nút t c ti p theo. G i các nút t c t o ra gói tin HBA là
nút t c ngu n và nút t c mà t i ó gói tin HBA d ng l i là nút t c ích , nh v y m i gói tin
HBA s giúp xác n h o n biên h t nút t c ngu n n nút t c ích. Sau khi nh n c
gói tin HBA, nút t c ích s trích xu t ra thông tin c a o n biên h mà gói tin HBA ã i
qua và g i thông tin này v nút sink g n nh t (nút sink là m t nút m ng c bi t có n ng
l n g r t l n, làm nhi m v trung chuy n thông tin t các nút m ng c m bi n t i tr m i u
khi n trung tâm). Các nút sink s t ng h p thông tin nh n c t t t c các nút c m bi n
khác và g i v tr m i u khi n trung tâm.
Gi s r ng, t c
bi n i c a h di n ra r t nhanh. V y thì, n u chúng ta c p
nh t s thay i c a bi n h sau khi nó s di n ra thì nhi u kh n ng sau khi c p nh t xong,

biên h ã l i b thay i . Do ó, thay vì c p nh t thông tin biên h sau khi h ã thay i ,
chúng tôi s d oán s thay i và c p nh t tr c khi nó di n ra. C th , chúng tôi s theo
dõi tr ng thái c a các nút trong các hình vuông n v và khi t l các nút ch t trong m t
hình vuông n b v t quá m t ng n g cho tr c thì nút ô vuông ó s
c coi nh là
n m trong m t h nào ó. Vi c theo dõi tr ng thái c a các nút m ng c th c hi n b i
m t nút trong m ng, nút này c g i là pivot.
2.2. Biểu diễn bitmap
Gi s m,n là chi u r ng và chi u dài c a m ng, ta s dùng m t l i ô vuông kích th c
([m/a]+1)x([n/a]+1)
chia m t ph ng thành các ô vuông n v . Ta s d ng m t m ng 2
chi u ký hi u là bmp
bi u di n tr ng thái c a các ô vuông n v , trong ó, thành ph n
bmp[i][j] s bi u di n tr ng thái c a ô vuông v i to
tâm là (1/2+i)a, (a/2+j)a và b[i][j]
= 1 n u ô vuông t n g ng v i nó c suy oán là n m trong m t h m ng nào ó và b[i]
[j] = 0 trong tr n g h p ng c l i.
n h ngh a 1 (bi u di n bitmap)

21


i v i m i nút m ng N, bi u di n bitmap c a N c n h ngh a là m t m ng
bmp[i][j], trong ó b[i][j] = 1 n u và ch n u ô vuông v i to
tâm là (1/2+i)a, (a/2+j)a
là m t ô vuông ch a N, n g th i c suy oán là n m trong ít nh t m t h m ng.
i v i m i n g th ng l trên m t ph ng, bi u di n bitmap c a l c n h ngh a
là m t m ng bmp[i][j], trong ó b[i][j] = 1 n u và ch n u ô vuông v i to
tâm là
(1/2+i)a, (a/2+j)a c t l, n g th i c suy oán là n m trong ít nh t m t h m ng.

Bi u di n bitmap c a toàn m ng là m t m ng hai chi u bmp[i][j], trong ó b[i][j] =
1 n u và ch n u ô vuông v i to
tâm là (1/2+i)a, (a/2+j)a c t c suy oán là n m
trong ít nh t m t h m ng.

Hình 7: Minh họa về biểu diễn bitmap

Hình 1 bi u di n m t m ng v i m t h l n. Trong hình này, các ô vuông n v c t
h
c tô xám. i v i ví d này, bi u di n bitmap c a node N1 là ….., bi u di n bitmap
c a o n th ng N1N2 là …. Và bi u di n bitmap c a toàn m ng là …. Trong thu t toán xác
n h o n biên h t nút t c ngu n n nút t c ích c xác n h b i gói tin HBA và c
g i t i nút sink g n nh t b i nút t c ích. Trong thu t toán c p nh t thông tin biên h , khi t
l các nút ch t trong m t ô vuông n v v t quá m t ng n g cho tr c , ô vuông y s
c phán oán là n m trong h . Pivot c a ô vuông c phán oán n m trong h s tính
bi u di n bitmap c a nó và g i cho nút sink g n nh t. Các nút sink s t ng h p các bitmap
nh n c b ng phép XOR và g i cho nút trung tâm. Các nút sink th c hi n vi c g i thong
tin cho trung tâm m t cách n h k . Nút trung tâm s th c hi n t ng h p thong tin bi u
di n bitmap nh n c t t t c các nút sink b ng phép XOR
tìm ra b n
bitmap c a
toàn b m ng.
2.3. Thuật toán phát hiện biên hố (HBD)
T t c các nút s th c hi n quy t c TENT m t cách n h k
xác n h xem mình
có n m trên biên c a m t h nào ó hay không. Nh ng nút phát hi n ra mình là nút t c s
t o m t gói tin HBA và g i gói tin này cho nút lân c n k trái c a nó. Gói tin HBA sau y
s c các nút chuy n ti p cho nút lân c n theo quy t c bàn tay ph i cho n khi nào n
nút m t nút t c khác. Thu t toán chuy n ti p gói tin theo quy t c bàn tay ph i ã c mô
t r t rõ trong bài báo [9], tuy nhiên chúng tôi s m r ng thu t toán này

cho gói
22


tin HBA mang thêm thông tin bi u di n bitmap c a o n biên h gi a hai nút t c.
Ký hi u bi u di n bitmap này là bmp s. Khi nút t c ngu n kh i t o gói tin BHA, nó
cài t toàn b giá tr c a m ng bmp s là 1. Khi m t nút N trên biên h nh n c
gói tin HBA, nó s update m ng bmp s trong gói tin nh n c b ng cách XOR v i
bi u di n bitmap c a o n th ng n i nó và nút trên biên h ngay k tr c nó.
chu n b cho pha c p nh t thông tin biên h , thu t toán xác n h biên h
không ch xác n h ra các nút n m trên biên c a h mà còn xác n h ra các nút c a
m i ô vuông c t biên h . Thu t toán xác n h pivot c ti n hành nh sau: M i
m t nút sau khi nh n c gói tien HBA s ki m tra xem ô vuông ch a nó ã có
pivot hay ch a. N u ch a, nó s g i gói tin pivot election message b ng thu t toán
n h tuy n tham n v i a ch c a nút ích là tâm c a ô vuông n v ch a nó. Chú
ý r ng, do c tính c a thu t toán n h tuy n tham n, gói tin này s c g i n
ích cu i cùng là nút g n tâm ô vuông n v nh t và nút này s c ch n l a làm
pivot c a ô vuông ch a nó. Sau khi nút pivot c xác n h, nó s g i m t gói tin
pivot announcement message theo ki u broadcast. Gói tin này s c lan truy n
cho toàn b các nút n m trong cùng ô vuông n v v i nút pivot và nh ó các nút
này s bi t c thông tin v nút pivot c a mình.

Hình 8: Minh họa thuật toán xác định biên hố

Hình 2 mô t thu t toán xác n h biên h . Gi s có 4 nút sink là I 1, I2, I3, I4
và 1 trung tâm ch huy ký hi u là C. V trí c a các sink và trung tâm ch huy c
s p x p nh trong hình v . Trong ví d này, các nút S 1, S2, ..., S5 s d ng quy t c
TENT và phát hi n ra chúng là các nút t c. Các nút này s t o gói tin HBA và
chuy n ti p gói tin theo quy t c bàn tay ph i cho n khi g p nút t c ti p theo. Nh
v y, gói tin HBA c t o b i nút S i s

c chuy n ti p cho n khi n
c nút
Si+1 và gói tin này s ch a thông tin bi u di n bitmap c a o n S iSi+1. Ví d , thông
23


tin bi u di n bitmap ch a trong gói tin

c chuy n t nút S1 n nút S2 s là ...

Sau khi thu t toán k t thúc chúng ta s xác n h c hình x p x c a h (là hình t o
b i các ô vuông c t biên h ho c n m bên trong h ) và các pivot c a các ô vuông
ó. Trong hình này, các ô vuông c t h
c tô màu xám còn các pivot là các i m
màu .
D i ây là o n gi code c a thu t toán c p nh t thông tin bi u di n h trong gói
tin HBA.

2.4. Thuật toán cập nhập biên hố

G i các ô vuông thu c h (t c là các ô vuông c t biên h ho c n m trong
lòng h ) là ô vuông en . Nh v y, sau khi k t thúc thu t toán xác n h biên h , m i
ô vuông en s có m t pivot. Các nút m ng trong các ô vuông en s n h k g i
gói tin thông báo tr ng thái n cho pivot. Gói tin này s giúp cho pivot bi t c
nút m ng nào còn s ng, nút m ng nào ã ch t. Khi t l các nút m ng ch t trong m t
ô vuông en v t quá m t ng n g cho tr c (g i là ng n g T 1) thì pivot c a ô
vuông en này s g i m t gói tin c nh báo n cho các ô vuông lân c n c a nó. Gói
tin này có ý ngh a báo cho các ô vuông lân c n (ô vuông có chung m t c nh ) bi t
r ng h có kh n ng cao s m r ng t i v trí c a chúng. Các ô vuông lân c n nh n
c gói tin c nh báo này s

c g i là ô vuông xám. Chú ý r ng, có th có nh ng
ô vuông lân c n ã tr thành ô vuông en t tr c , i v i nh ng ô vuông này thì nó
v n c coi là ô vuông en ch không c coi là ô vuông xám. Chú ý r ng, gói
tin c nh báo s c g i b i thu t toán n h tuy n tham lam v i thông s nút ích là
tâm c a các ô vuông lân c n. Vì v y nút cu i cùng nh n c gói tin c nh báo s là
nút g n tâm c a các ô vuông lân c n nh t. Các nút này s c ch n làm pivot c a ô
vuông ch a nó. M i ô vuông màu xám s có m t nút pivot, nhi m v c a nút pivot
24


này c ng gi ng nh pivot c a ô vuông màu en, t c là theo dõi tr ng thái s ng/ch t
c a các nút m ng trong cùng ô vuông v i mình. Khi t l c a các nút ch t trong m t
ô vuông màu xám v t quá m t ng n g quy n h tr c (g i ng n g này là T 2) , ô
vuông màu xám s
c phán oán là ã thu c vào h và vì v y nó s b coi nh là
1 ô vuông màu en. Lúc này, pivot c a nó s tính bi u di n bitmap c a nó và g i
cho nút sink g n nh t. Chi ti t các x lý t i nút en và nút xám c trình bày trong
thu t toán 2 d i ây.

Hình 9: Ví dụ về cập nhật thông tin biên hố

Hình 3 mô t m t ví d v quá trình c p nh t thông tin biên h . Trong ví d
này, m ng c chia thành l i ô vuông 4x3. Các nút m ng c tô màu en là các
nút ch t, các nút c tô màu tr ng là các nút v n còn ho t n g. Sau khi th c hi n
xong thu t toán xác n h biên h , biên h
c xác n h và các ô vuông n v
thu c h s c tô màu en nh trong hình 3(a). Các nút màu
P1, P2, ..., P6 là các
pivot c a các ô vuông ch a chúng. Gi s r ng h
c m r ng d n v phía bên

ph i và sau m t th i gian m t s nút m ng trong ô vuông 6 b ch t. Khi s l n g
các nút ch t v t quá gi i h n cho phép T 1, nút pivot P6 s g i gói tin c nh báo cho
25


×