Ý tƣởng chính của giải thuật: dựa vào tính chất tối ƣu hóa từng thành phần của bài toán tối ƣu.
Tính chất: Một đƣờng đi có độ dài n ngắn nhất thi đƣờng đi có độ dài n-1 cũng là đƣờng đi ngắn nhất.
Ý tƣởng chính của giải thuật:
Tính khoảng cách ngắn nhất của từng khách hàng Ci đến một đỉnh bất kỳ trong tập nút gốc (J): di (i =1,k với k là số lƣợng khách hàng ).
Sắp xếp các khách hàng theo chiều không tăng của di.
Thực hiện lần lƣợt cho từng khách hàng theo thứ tự này: Tìm đƣờng đi ngắn nhất từ tập nút gốc đến khách hàng Ci. Ký hiệu: Pathi. Thêm đƣờng đi này vào lời giải tìm đƣợc. Sau mỗi lần tìm đƣợc đƣờng đi cho khách hàng mới, thực hiện cập nhật lại khoảng cách trên đồ thị ban đầu nhƣ sau: với mỗi cạnh e trên đồ thị thuộc Pathi, cập nhật w(e) = 0.
Lƣu ý: Nếu Ci thuộc lớp khách hàng loại hai, chúng ta thực hiện tìm 2 đƣờng đi rời rạc không chung cạnh đến tập các nút gốc J. Ký hiệu Path1i và Path2i.
Đề tài: Ứng dụng các kỹ thuật Meta-heuristic để thiết kế mạng chịu lỗi.
Học viên thực hiện: Nguyễn Thị Minh - CB110185 - 11BCNTT.KH 49
Giải thuật OEC – Optimize Each Component.
1. G’ = (, )//Khởi tạo đồ thị con rỗng G’ chứa lời giải bài toán.
2. Gt (Vt, Et) = G (V, E) //Khởi tạo đồ thị trung gian thực hiện sửa xóa trên đồ thị này.
3. For i C do // i là các khách hàng
4. diĐường đi ngắn nhất từ Ci đến J trên đồ thị G.
5. end For
6. Sắp xếp Ci (i =1,k) theo chiều không tăng của di.
7. For j = 1 to k do
8. Tìm đường đi ngắn nhất Path1j từ Cj đến J trên đồ thị Gt
9. If Cjlớp khách hàng loại 2 then
10. Xóa tất cả e thuộc Path1j trên đồ thị Gt
11. Tìm đường đi ngắn nhất Path2j từ Cj đến J trên đồ thị Gt 12. End if
13. For all e thuộc Path1j Path2jdo
14. Cập nhật W(e) = 0
15. End for
16. Thêm Path1j và Path2j vào G’. 17.End For
18.Return G’ Lời giải cho bài toán
Đánh giá giải thuật: Giải thuật OEC tìm đƣờng đi ngắn nhất k lần (k: số lƣợng khách hàng) (Dòng 8), độ phức tạp của thủ tục xây dựng đƣờng đi ngắn nhất là O(|V|2). Suy ra, thủ tục xây dựng đƣờng đi ngắn nhất cho tất cả các khách hàng có độ phức tạp O(k.|V|2). Do đó, độ phức tạp của giải thuật OEC là O(|V|2
)