Một số phương pháp giải quyết bài toán NP-khó

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

Mục đích của bài toán tối ưu tổ hợp là tìm lời giải tốt nhất trong các lời giải có thể và không gian tìm kiếm lời giải của bài toán là rời rạc. Nhiều bài toán tổ hợp có độ phức tạp tính toán lớn và được phân loại vào lớp bài toán NP-khó (không tìm được lời giải tối ưu trong thời gian đa thức). Việc tìm ra lời giải tối ưu cho loại bài toán này trong các hệ thống song song lớn nhất cũng không thể thực hiện trong giới hạn thời gian cho phép, vì vậy các giải thuật heuristic, meta-heuristic giải các bài toán tổ

hợp theo hướng xấp xỉ đã được phát triển để tìm ra lời giải gần tối ưu trong thời gian chấp nhận được.

Meta-heuristic là một cách gọi chung cho các giải thuật heuristic trong việc giải quyết các bài toán tổ hợp khó. Meta-heuristic bao gồm những chiến lược khác nhau trong việc khám phá không gian tìm kiếm bằng cách sử dụng những phương thức khác nhau và phải đạt được sự cân bằng giữa tính đa dạng và chuyên sâu của không gian tìm kiếm. Việc cài đặt thành công một giải thuật heuristic cho một bài toán tổ hợp đòi hỏi phải cần bằng giữa sự khai thác kinh nghiệm thu thập được trong quá trình tìm kiếm để xác định được những vùng với lời giải có chất lượng cao gần tối ưu. Các giải thuật heuristic và meta-heuristic nổi tiếng được biết đến như giải thuật mô phỏng luyện kim (SA- Simulated Annealing), giải thuật di truyền (GA - Genetic Algorithm), giải thuật tối ưu hóa đàn kiến (ACO – Ant Colony Optimization) …

Giải thuật tối ưu hóa đàn kiến (ACO) được đề xuất bởi Marco Dorigo

năm 1992 là meta-heuristic dùng chiến lược của đàn kiến trong thế giới thực để giải bài toán tối ưu.

Giải thuật di truyền (GA) do John Holland phát minh và được ông phát

triển cùng với các đồng nghiệp và sinh viên. Giải thuật xuất phát từ phương thức xác suất dựa trên ý tưởng từ cơ chế di truyền trong sinh học và tiến trình tiến hóa trong cộng đồng cá thể của một loài.

Giải thuật mô phỏng luyện kim (SA) là phương pháp xác suất được đề

xuất bởi Kirkpatrick, Gelett và Vecchi (1983) và Cerny (1985) lại sử dụng tính chất thu được trạng thái năng lượng nhỏ nhất nhờ nóng chảy và ngưng tụ của kim loại trong tự nhiên để tìm ra giải pháp tốt nhất cho các loại bài toán tối ưu này.

Hình 9: Các kỹ thuật tìm kiếm

6.1. Giải thuật heuristic

Heuristic là phương pháp giải quyết vấn đề bằng cách đánh giá kinh nghiệm và tìm giải pháp qua thử nghiệm và hạn chế khuyết điểm. Từ heuristic sử dụng trong thuật toán dùng để tìm giải pháp trong số những cái có thể, nhưng không đảm bảo rằng cái tốt nhất sẽ được tìm thấy, do đó họ có thể giả định đó là thuật toán xấp xỉ và không chính xác. Các thuật toán này thường tìm ra một giải pháp gần như tốt nhất và thường chúng tím thấy nhanh chóng và dễ dàng. Thỉnh thoảng các thuật toán này có thể chính xác và thực sự tìm và giải pháp tốt nhất, nhưng thuật toán vẫn được gọi là heuristic, cho đến khi giải pháp tốt nhất này được chứng minh là đưa ra được lời giải tối ưu.

Có nhiều phương pháp để xây dựng một giải thuật heuristic, trong đó người ta thường dựa vào một số nguyên lý cơ sở sau:

 Nguyên lý vét cạn thông minh:

Trong bài toán tìm kiếm nào đó, khi không gian tìm kiếm lớn, ta thường tìm cách giới hạn lại không gian tìm kiếm hoặc thực hiện một kiểu dò tìm đặc biệt dựa vào đặc thù của bài toán để nhanh chóng tìm ra mục tiêu.  Nguyên lý tham lam:

Lấy tiêu chuẩn tối ưu (trên phạm vi toàn cục) của bài toán để làm tiêu chuẩn chọn lựa hành động cho phạm vi cục bộ từng bước trong quá trình tìm kiếm lời giải.

Thực hiện hành động dựa trên một cấu trúc thứ tự hợp lý của không gian khảo sát nhằm nhanh chóng đạt được một lời giải tốt nhất.

 Hàm heuristic:

Trong việc xây dựng các giải thuật heuristic, người ta thường dùng các hàm Heuristic. Đó là các hàm đánh giá thô, giá trị của hàm phụ thuộc vào trạng thái của bài toán tại mỗi bước giải. Nhờ giá trị này, ta có thể chọn được các di chuyển tương đối hợp lý trong từng bước giải của giải thuật. Mô hình giải thuật heuristic tổng quát như sau:

No No Yes Yes Select random starting solutions Have local transformations been exhausted? Is cost improved? Is this solution feasible?

Accept new solution No Is this solution feasible Yes Initialize counters to enumerate local transformations Yes Local optimum found No Examine next local

transformation

Yes

6.2. Giải thuật tìm kiếm địa phương

Tìm kiếm địa phương là một giải thuật thuộc lớp meta heuristic điển hình và đã được áp dụng với nhiều bài toán tối ưu tổ hợp. Ý tưởng của giải thuật này là xuất phát từ một lời giải chấp nhận được ban đầu (lời giải này thỏa mãn hết các rang buộc của bài toán, nhưng có thể chưa phải là lời giải tối ưu). Mỗi bước lặp sẽ di chuyển đến một lời giải láng giềng của lời giải hiện tại sao cho lời giải láng giềng tối ưu hơn lời giải hiện tại. Giải thuật kết thúc nếu như không tìm được lời giải láng giềng nào tối ưu hơn lời giải hiện tại. Điểm mấu chốt của giải thuật tìm kiếm địa phương là xây dựng tập các lời giải láng giềng. Kích thước và sự đa dạng của tập này phải hợp lý để đảm bảo có thể tìm ra được lời giải tối ưu hơn trong thời gian cho phép.

Giải thuật Local Search

1. S0 ← lời giải khởi tạo 2. Repeat

3. stop ← true

4. For Si  Neighbor_Solution(S0)do

5. If (Si tối ưu hơn S0) then

6. S0 ← Si 7. stop ← false 8. break 9. End If 10. End for 11. Until stop 12. Return S0

6.3. Giải thuật tabu search

Giải thuật tabu search được Fred W. Glover giới thiệu vào năm 1986 để khắc phục những nhược điểm của tìm kiếm địa phương.

Giải thuật tìm kiếm địa phương đưa ra một lời giải hợp lệ ban đầu cho bài toán và xét các lời giải láng giềng với hy vọng tìm kiếm mộtlời giải tốt hơn lời giải hiện tại.

Tìm kiếm địa phương có xu hướng tối ưu cục bộ hoặc lặp rất nhiều lần khicác lời giải láng giềng là như nhau.Tabu search nâng cao hiệusuất tìm kiếm địa phương bằng cách nới lỏng quy tắc cơ bản của nó. Đầu tiên, tabu search cho phép di chuyển đến một lời giải tồi hơn nếu như không thể tìm được một lời giải láng giềng tốt hơn lời giải hiện tại (trường hợp đạt đến tối ưu cục bộ). Thứ hai, nếu một lời giải tiềm năng đã được truy cập trước đó trong một khoảng thời gian ngắn nhấtđịnh thì lời giải này được đưa vào danh sách cấm, không được phép di chuyển từ lời giải hiện tại đến một lời giải nằm trong danh sách cấm.

Giải thuật Tabu Search

1. s ← s0 2. sBest ← s 3. tabuList ← []

4.While (not stoppingCondition()) 5. candidateList ← [] 6. bestCandidate ← null

7. For (sCandidate in sNeighborhood)

8. IF ( (not tabuList.contains(sCandidate)) and (fitness(sCandidate) > fitness(bestCandidate)) )

9. bestCandidate ← sCandidate

10. endIF

11. endFor

12. s ← bestCandidate

13. IF (fitness(bestCandidate) > fitness(sBest)) 14. sBest ← bestCandidate

15. endIF

16. tabuList.push(bestCandidate) 17. IF (tabuList.size > maxTabuSize)

19. endIF

20. endWhile

21. Return sBest

CHƯƠNG 2: BÀI TOÁN ĐỊNH TUYẾN ĐA ĐIỂM TỐI ƯU NĂNG LƯỢNG TRÊN MẠNG CẢM BIẾN KHÔNG DÂY NHIỆM VỤ TUẦN HOÀN 1. Mô hình mạng cảm biến không dây nhiệm vụ tuần hoàn

Một mạng cảm biến không dây được biểu diễn bởi một đơn đồ thị vô hướng, không trọng số 𝐺 = (𝑉, 𝐸). Các nút trong V phân bố trên mặt phẳng tọa độ không gian hai chiều. Tồn tại liên kết giữa hai nút bất kỳ nếu chúng nằm trong phạm vi truyền tin của nhau. Năng lượng ban đầu của các nút giả thiết là như nhau. Trong mạng DC- WSN các nút đều hoạt động tuần hoàn qua các chu kỳ, mỗi chu kỳ được chia thành K khe thời gian như nhau [3]. Để tiết kiệm năng lượng, trong từng chu kỳ mỗi nút

𝑢 ∈ 𝑉 chỉ hoạt động trong các khe thời gian thuộc tập Г(𝑢) ⊂ {1,2,3, … , 𝐾}(Г(𝑢) ≠ ∅, ∀𝑢 ∈ 𝑉). Giả thiết rằng mỗi nút u đều có thể thức giấc để truyền tin tại bất kỳ khe thời gian nào nhưng chỉ nhận được tin trong các khe thời gian thuộc Г(𝑢).

1. Multicast trên mạng cảm biến không dây nhiệm vụ tuần hoàn

Cho một tập các nút terminal 𝑀 ⊂ 𝑉, trong quá trình thực hiện multicast các gói dữ liệu được gửi từ nút nguồn 𝑠 ∈ 𝑀 đến tất cả các nút thuộc 𝑀\{𝑠}. Với T là một cây con bất kỳ của đồ thị 𝐺 = (𝑉, 𝐸), ta ký hiệu:

 𝑉(𝑇) và 𝐸(𝑇) lần lượt là tập đỉnh và tập các cạnh của T.

 𝑛𝑙(𝑇) là tập các nút không phải là lá của cây T.

1 2 3 4 5 6 7 {1, 2} {1, 3} {1, 2, 4} {2, 5} {2, 3} {2, 5} {4}

 𝑐ℎ𝑖𝑙𝑑(𝑢, 𝑇) là tập các nút con của nút u trên T.

Cây T được gọi là cây multicast của G nếu nó là cây con gốc s của G, đồng thời mọi nút terminal trong M đều thuộc T. Hình 12 mô tả một đồ thị mạng DC-WSN với tập các nút terminal {1,5,6,7} trong đó nút nguồn 𝑠 = 1. Tập các khe thời gian hoạt động Г(𝑢) được khi bên cạnh mỗi nút u. Một cây multicast với các cạnh được bôi đậm được chỉ ra trong hình.

Định nghĩa 1 (Hitting set [3], [7]): Cho họ tập 𝐶 = {𝐴1, 𝐴2, … , 𝐴𝑛} tập 𝐹 ⊂ 𝐴1∪ 𝐴2∪ … ∪ 𝐴𝑛 được gọi là hitting set của C nếu trong F chứa ít nhất một phần tử của mỗi tập con có trong C, nghĩa là 𝐹 ∩ 𝐴𝑖 ≠ ∅ ∀ 𝑖 = 1, 𝑛̅̅̅̅̅. Hitting set có số lượng phần tử nhỏ nhất gọi là minimum hitting set của C và được ký hiệu là MHS(C).

Định nghĩa 2 (Lịch truyền khả thi [3]): Với một cây multicast T của G, một hàm

𝐵: 𝑛𝑙(𝑇) → 2{1,2,…,𝐾} được gọi là lịch truyền khả thi (gọi tắt là lịch truyền) của T nếu

∀𝑢 ∈ 𝑛𝑙(𝑇) thì B(u) là hitting set của họ tập {Г(𝑣)|𝑣 ∈ 𝑐ℎ𝑖𝑙𝑑(𝑢, 𝑇)}.

Gọi 𝑒𝑠 và 𝑒𝑟 lần lượt là năng lượng truyền và năng lượng nhận một gói tin của mỗi nút thuộc V (𝑒𝑠, 𝑒𝑟 > 0). Năng lượng tiêu tốn trong một phiên multicast gồm hai thành phần: năng lượng truyền tin và năng lượng nhận tin. Từ định nghĩa 2, tổng năng lượng truyền tin của một phiên multicast theo một lịch truyền B trên một cây multicast T bằng: ∑𝑢∈𝑛𝑙(𝑇)|𝐵(𝑢)|. 𝑒𝑠. Ngoài ra, mọi nút trên cây T ngoại trừ nút nguồn s đều được nhận tin, nên năng lượng truyền tin trong mỗi phiên multicast chỉ phụ thuộc vào số lượng nút trên cây và bằng: |𝑉(𝑇) − 1|. 𝑒𝑟. Bài toán định tuyến multicast tối ưu năng lượng trên mạng cảm biến không dây nhiệm vụ tuần hoàn được phát biểu trong phần sau.

2. Bài toán định tuyến multicast tối ưu năng lượng trên mạng cảm biến không dây nhiệm vụ tuần hoàn (MEM DC-WSN) không dây nhiệm vụ tuần hoàn (MEM DC-WSN)

Cho mạng cảm biến không dây nhiệm vụ tuần hoàn 𝐺 = (𝑉, 𝐸), tập các nút terminal 𝑀 ⊂ 𝑉 và nút nguồn 𝑠 ∈ 𝑀. Bài toán MEM DC-WSN yêu cầu tìm một bộ gồm một cây multicast 𝑇𝑜𝑝𝑡 của G và một lịch truyền 𝐵𝑜𝑝𝑡 trên cây này sao cho tổng năng lượng tiêu tốn trong mỗi phiên multicast:

П(𝑇𝑜𝑝𝑡, 𝐵𝑜𝑝𝑡) = ∑𝑢∈𝑛𝑙(𝑇𝑜𝑝𝑡)|𝐵𝑜𝑝𝑡(𝑢)|. 𝑒𝑠+ (|𝑉(𝑇𝑜𝑝𝑡)| − 1). 𝑒𝑟 là nhỏ nhất.

truyền 𝐵1: 𝐵1(1) = {2,3}, 𝐵1(2) = {3,5}, 𝐵1(3) = {4}. Với 𝑒𝑠 = 100, 𝑒𝑟 = 15, nếu sử dụng lịch truyền 𝐵1, tổng năng lượng tiêu tốn trong một phiên multicast sẽ là: 5.100 + 5.15 = 575. Cũng với cây T này, nếu áp dụng lịch truyền 𝐵2: 𝐵2(1) = {1}, 𝐵2(2) = {2}, 𝐵2(3) = {4} thì tổng năng lượng tiêu tốn trong mỗi phiên multicast là: 3.100 + 5.15 = 375. Cây multicast T và lịch truyền 𝐵2 này là lời giải tối ưu cho mỗi phiên multicast từ nút 1 đến các nút terminal khác.

3. Các nghiên cứu liên quan

Bài toán tối ưu năng lượng (MEM) trên mạng cảm biến không dây nói chung đã được nghiên cứu rất lâu và chứng minh thuộc lớp NP-khó [14-17]. Một số các giải thuật xấp xỉ cho bài toán MEM cũng đã được đưa ra trong [14-17]. Tuy nhiên, các phương pháp trên chỉ áp dụng cho các mạng mà các nút luôn hoạt động. Các nghiên cứu về bài toán MEM trong DC-WSN nói riêng được đưa ra trong [3, 6], và các bài toán này cũng thuộc lớp NP-khó. Năm 2009, L. Su và các cộng sự [6] đề xuất các giải thuật tối ưu oCast và BD-oCast để giải quyết bài toán MEM trong mô hình DC- WSN thu hẹp với các khe thời gian hoạt động của mỗi nút là liên tục. Tuy nhiên, độ phức tạp của các giải thuật này là hàm mũ theo số lượng các nút đích. Do đó, giải thuật chỉ giải quyết được bài toán trên các mạng có số lượng nút nhỏ. Năm 2013, Han [3] đã đưa ra bốn giải thuật SPT, AMST, MNT và TCS để giải bài toán MEM trên mô hình DC-WSN tổng quát. Các giải thuật SPT, AMST, và MNT đều thực hiện tìm lời giải qua hai bước: Bước 1, tìm một cây multicast dựa trên cấu trúc đồ thị của mạng cảm biến. Bước 2, tìm lịch truyền cho các nút trên cây multicast tìm được ở bước 1. Do quá trình tìm cây và tìm lịch truyền của các giải thuật được thực hiện riêng lẻ nên kết quả thu được chưa tốt. Giải thuật TCS xây dựng đồ thị mở rộng dựa vào đồ thị mạng ban đầu và lịch hoạt động của các nút, sau đó tìm cây Steiner nhỏ nhất trên đồ thị mở rộng và cuối cùng ánh xạ vào cây Steiner này sẽ được lời giải của bài toán. Chất lượng lời giải của giải thuật TCS khá tốt, nhưng vẫn phụ thuộc khá nhiều vào chất lượng của cây Steiner tìm được trên đồ thị mở rộng.Năm 2014,nhóm nghiên cứu của T. B. Huynh [20] đề xuất hai giải thuật R- TCS và GS-MEM dựa trên mô hình đồ thị mở rộng. Giải thuật R-TCS phát triển từ giải thuật TCS cho chất lượng cây multicast tốt hơn. Giảithuật GS-MEM đưa bài toán về dạng Group Steiner Tree và áp dụng các giải thuật heuristic tốt nhất được

biết đến để giải bài toán này [15-19]. Tuy nhiên các giải thuật này đòi hỏi thời gian tính toán lớn do số nút trên đồ thị mở rộng là rất lớn.

Luận văn này đề xuất một giải thuật tìm kiếm địa phương nhằm mang lại lời giải có mức năng lượng tốt hơn cho bài toán MEM trên DC-WSN so với các phương pháp trước đây. Giải thuật đề xuất được thử nghiệm trên bốn bộ dữ liệu tương tự trong [3] và được so sánh với giải thuật hai giải thuật R-TCS và GS-MEM. Kết quả thực nghiệm cho thấy giải thuật đề xuất cho kết quả tối ưu hơn về mặt năng lượng so với giải thuật hai giải thuật R-TCS và GS-MEM, đồng thời giải thuật đề xuất cũng có thời gian thực hiện nhanh hơn giải thuật GS-MEM.

4. Các ứng dụng của bài toán

Mạng cảm biến có thể bao gồm nhiều loại cảm biến khác nhau như cảm biến động đất, cảm biến từ trường tốc độ lấy mẫu thấp, cảm biến thị giác, cảm biến hồng ngoại, cảm biến âm thanh, radar…Mạng cảm biến còn có thể thu thập nhiều loại thông tin bao gồm:

 Nhiệt độ

 Độ ẩm

 Sự chuyển động của xe cộ

 Điều kiện ánh sang

 Áp suất

 Sự hình thành đất

 Mức nhiễu

 Sự có mặt hay vắng mặt của đối tượng nào đó

 Đăc tính hiện tại như tốc độ, chiều và kích thước của đối tượng

Các nút cảm biến có thể được sử dụng để cảm biến liên tục hoặc là sự phát hiện sự kiện, số nhận dạng sự kiện, cảm biến vị trí và điều khiển cục bộ bộ phận phát động. Khái niệm vi cảm biến và kết nối không dây của những nút này hứa hẹn nhiều vùng ứng dụng mới. Chúng ta phân loại các ứng dụng này trong quân đội, môi trường, sức khỏe, gia đình và các lĩnh vực thương mại khác.

Mạng cảm biến không dây có thể là một phần tích hợp trong hệ thống điều khiển quân đội, giám sát, giao tiếp, tính toán thông minh, trinh sát, theo dõi mục tiêu. Đặc tính triển khai nhanh, tự tổ chức và có thể bị lỗi của mạng cảm biến làm cho chúng

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