Hình bình hành bao hố

Một phần của tài liệu Thuật toán và phần mềm mô phỏng cho định tuyến không dây trong địa hình phức tạp (Trang 81 - 84)

5 Kết luận

3.5Hình bình hành bao hố

ăn hay là chuyển sang modesử dụng thông tin hố. Nếu chuyên sang modesử dụng thông

tin hốthì gói tin sẽ được truyền men theo biên của hình bình hành đối với hố tại điểmP.

Cụ thể là, tùy thuộc vào vị trí của nút đích (ký hiệu làD) đối với hình hình hành bao hố tại

P (ký hiệu làP ABC(figure 3.5), chúng tôi sẽ chọn đỉnhAhoặc đỉnhC làm điểm neo và truyền gói tin hướng tới điểm neo này, khi gói tin được truyền tới một nút thích hợp, mode truyền tin sẽ được chuyển trở về mode tham ăn và gói tin sẽ được truyền theo kiểu tham ăn về nút đíchD. Khi nútP nằm trong vùng1, có nghĩa là nó nằm quá gần hố, và vì vậy chúng tôi chỉ đơn giản dùng mode tham ăn để truyền gói tin về đích.

Sau đây là mô tả chi tiết về thuật toán. Trước hết để điều khiển mode truyền tin chúng tôi thêm một số trường đặc biệt vào header của gói tin. Trước hết là trường forwarding mode, trường này chỉ ra mode truyền tin mà gói tin đang sử dung và nó trường này có giá trị làgreedy(tương ứng với mode truyền tin tham ăn) hoặchole aware(tương ứng với mode truyền tin sử dụng thông tin hố). Tiếp theo là trườnganchor location, trường này lưu trữ tọa độ của điểm neo khi mode truyền tin đang làhole aware. Khi một gói tin đang được truyền theo mode sử dụng thông tin hố, nếu nó được truyền tới một điểmP sao choP có thểnhìn thấyD( nghĩa làgóc nhìn đối với hốcủaP không chứaD), thì gói tin sẽ được chuyển về mode tham ăn và được truyền thẳng tớiD. Chú ý rằng khiP ở trong vùng2, nếu nút đích

Dnằm ngoài góc∠xP y hoặc nằm trong hình bình hànhP ABC thìP vẫn tiếp tục truyền gói tin theo mode tham ăn. Nếu không, nó sẽ quyết định sẽ tiếp tục duy trì mode tham ăn hay chuyển sang mode sử dụng thông tin hố nhờ vào hàmxác suất truyền tránh hốf(α) trong đóαlà độ lớn của góc nhìn đối với hốtại nútP. Modetránh hốđược chọn với xác suấtf(α)và modetham ănđược chọn với xác suất1−f(α). Điểm neo được xác định như sau:

Algorithm 6:Xác định hình bình hành bao hố

Require: Đa giác xấp xỉA1A2...Anvà góc nhìn đối với hố tạiP,AiP Aj

Ensure: Hình bình hành bao hố tạiP,P ABC

1: Vi ←A1;Vj ←A1;hi 0;hj 0 2: forkfrom1tondo 3: h←khoảng cách từAkđếnP Ai 4: ifh > hi then 5: hi ←h;Vi ←Ak 6: end if 7: h←khoảng cách tưAkđếnP Aj 8: ifh > hj then 9: hj ←h;Vj ←Ak 10: end if 11: end for

12: Giả sửli(tương tựlj) là đường thẳng đi quaVi(tương tựVj) và song song vớiP Ai

(tương tựP Aj)

13: Q←giao điểm củalilj

Nếu D nằm trong góc∠yCB thế thìCD chắc chắn không cắt hố vì vậyC sẽ được chọn làm điểm neo.

Nếu không,ADchắc chắn không cắt hố vì vậyAsẽ được chọn làm điểm neo Thuật toán định tuyến của chúng tôi được trình bày đầy đủ và chi tiết trong thuật toán 7 dưới dạng pseudo code. Hình 3.6 minh họa quá trình truyền một gói tin từ nút nguồn S

đến nút đíchD. Bởi vì S ở xa hố ( trong vùng 3) vì vậy nó không có thông tin về hố, do đó gói tin sẽ được truyền theo dạng tham ăn hướng tớiD (forwarding mode=greedyand

anchor location=void) cho đến khi được truyền tới một nút nằm trong vùng2, trong hình

vẽ chính là nútS2. Để ý rằng, việc gói tin được truyền đến nút nằm trong vùng 2 không đồng nghĩa với việc mode truyền tin được chuyển sangsử dụng thông tin hốmà chỉ làcó cơ hộiđể chuyển sang mode này. Trong ví dụ ở hình 3.6, nútS2 quyết định giữ mode truyền tin là tham ăn. Tuy nhiên, nút tiếp theoS3 lại quyết định chuyển mode truyền tin sanghole

aware, và update các trường cần thiết trong gói tin (mode= hole aware, anchor = A) và

truyền gói tin hướng tới điểm neoA. Trước khi tới điểm neoA, gói tin gặp nútSn, nút này có thểnhìn thấyD(góc nhìn đối với hố tạiSnkhông chứaD).Snchuyển mode truyền tin của gói tin trở vềgreedyvà truyền gói tin theo phương thức tham ăn về nút đíchD.

Algorithm 7:Thuật toán định tuyến tránh hố

Require: Tọa độ của nút hiện tạiP; gói tin,p

Ensure: Nút tiếp theo để truyền gói tin tới,N D←nút đích của gói tinp;

α←góc nhìn đối với hố tạiP;

L←điểm neo củap;

M mode truyền tin củap

ifP=Dthen

nhân gói tin (p) Return

end if

ifM =hole avoidthen

ifαkhông chứaDthen (adsbygoogle = window.adsbygoogle || []).push({});

M ←straightf orward; N nút láng giềng gầnDnhất else N nút láng giềng gầnLnhất end if else

ifα!=nullandDnằm trong gócαthen

Xác định mode truyền gói tin theo hàm xác suất

ifkết quả của hàm xác suất = modesdngthngtinhthen

Xác định hình bình hành bao hố tạiP, ký hiệu làP ABC

Giả sửP C ≤P A

ifDnằm trong góc∠yCB then

L←C else L←A end if M ←sử dụng thông tin hố N nút láng giếng gầnLnhất else N nút láng giếng gầnDnhất end if else N nút láng giếng gầnDnhất end if end if

Một phần của tài liệu Thuật toán và phần mềm mô phỏng cho định tuyến không dây trong địa hình phức tạp (Trang 81 - 84)