Tìm lời giải láng giềng

Một phần của tài liệu TRƯỜNG đại học BÁCH KHOA hà nội (Trang 42 - 45)

1. Giảithuật đề xuất

1.3.Tìm lời giải láng giềng

{1, 5} {1, 7} {2, 4} MHS = {1, 2} OR {1, 4}

WSN, lời giải được biểu diễn bằng một cây multicast T0 trên đồ thị G và lịch truyền tốt nhất B0 trên cây T0. Cụ thể như sau:

Đặt trọng số của tất cả các cạnh trên đồ thị G bằng 1. Tìm đường đi ngắn nhất từ đỉnh nguồn s đến tất cả các đỉnh u ∈ M (tập các nút terminal). Xây dựng cây T0 = (V0, T0) từ tập các đường đi ngắn nhất này: Lần lượt xét các đường đi ngắn nhất P từ s đến u ∈ M, nếu một đỉnh v trên đường đi P chưa thuộc tập V0 thì bổ sung v vào V0, nếu một cạnh e trên đường đi P chưa thuộc tập E0 và việc bổ sung e vào E0 không làm cho T0 có chu trình thì thêm cạnh e vào tập cạnh E0.

Mã giả phần khởi tạo: Khởi tạo

1. queue←

2. Push(s) // thêm đỉnh nguồn s vào hàng đợi 3. visit(s) ← true

4. while (queue ≠ ∅) do

5. u ←Pop(queue) // Lấy đỉnh u từ đầu hàng đợi 6. for (v ∈ 𝑉and (u, v) E)

7. If (not visit(v))then

8. trace(v) ← u

9. Push(queue, v) // thêm nút v vào queue 10. visit(v) ← true 11. endIf 12. endFor 13. endWhile 14. V0←∅ 15. E0←∅ 16. For (u M) do 17. f ← u 18. t ← f

19. While (f s) do

20. f ← trace(f)

21. If (f t) then

22. If (thêm cạnh (f, t) vào E0 không tạo ra chu trình trên đồ thị T0 = (V0, E0))then

23. AddEdge(E0, (f, t)) // thêm cạnh (f, t) vào E0 nếu (f, t) chưa có trong E0

24. AddVertex(V0, f) // thêm đỉnh f vào V0 nếu f chưa có trong V0 25. AddVertex(V0, t) 26. endIf 27. endIf 28. endWhile 29. endFor Đánh giá độ phức tạp:

Tất cả các cạnh trên đồ thị G đều có trọng số bằng 1, sử dụng giải thuật tìm kiếm theo chiều rộng từ đỉnh nguồn s đến tất cả các đỉnh terminal u. Đường đi từ s đến u theo giải thuật tìm kiếm chiều rộng là đường đi ngắn nhất từ s đến u. Độ phức tạp của giải thuật tìm kiếm theo chiều rộng là O(|V| + |E|)

Sử dụng cấu trúc dữ liệu Disjoint Sets để kiểm tra bổ sung e cạnh vào T0 có tạo ra chu trình hay không. Thời gian tính của thao tác kiểm tra là O(log |V|). Số đỉnh tối đa trên một đường đi là |V|, số nút terminal tối đa là |V|. Như vậy, độ phức tạp của phần giải thuật xây dựng cây multicast T0 từ tập các đường đi ngắn nhất từ đỉnh s đến tất cả các đỉnh terminal là O(|V|2.log |V|).

Tóm lại, độ phức tạp của giải thuật khởi tạo là O(|V| + |E| + |V|2.log |V|) = O(|V|2.log |V|).

1.3. Tìm lời giải láng giềng

Một trong những yếu tố quan trọng quyết định chất lượng của giải thuật tìm kiếm địa phương là tìm lời giải láng giềng của một lời giải cho trước. Tập các lời giải láng giềng phải đa dạng để có thể xét được nhiều trường hợp, nhưng cũng không

được quá lớn vì điều này sẽ làm ảnh hưởng đến tốc độ của giải thuật.

Mỗi lời giải S của bài toán MEM DC-WSN được biểu diễn bằng một cây multicast T và một lịch truyền B tốt nhất trên T. Ký hiệu S =(T, B). Một láng giềng S’ của lời giải S sinh ra từ phép biến đổi 𝑓: 𝑆 → 𝑆′. Sao cho: S’ = (T’, B’) trong đó T’ là một cây multicast trên G và B’ là một lịch truyền tốt nhất trên T’.

Tác giả xin đề xuất 4 phép biến đổi 𝑓: 𝑆 → 𝑆′ như sau:

Các phép biến đổi đều được thực hiện trên cây multicast T. Cây T sẽ được biến đổi thành cây T’, và lịch truyền tốt nhất B’ trên T’ tìm được bằng giải thuật tham lam đã trình bày ở mục 1.1 chương 3.

Một phần của tài liệu TRƯỜNG đại học BÁCH KHOA hà nội (Trang 42 - 45)