TẠP CHÍ KHOA HỌC − SỐ 18/2017 15 ỨNG DỤNG GIẢI THUẬT TỐI ƯU BẦY Đ N V O B I TỐN CỰC TIỂU HĨA ĐỘ TRỄ Lê Chí Chung Trường Đại học Thủ Hà Nội Tóm tắ tắt: Bài tốn cực tiểu hóa độ trễ (Minimum Latency Problem – MLP) toán tối ưu tổ hợp có nhiều ứng dụng thực tế Trong trường hợp tổng quát, MLP ñã ñược chứng minh NP-khó Hiện có nhiều cơng trình giải tốn theo hướng tiếp cận gần ñúng theo hướng sinh học Lời giải thu từ cơng trình có triển vọng Với mục đích kiểm chứng hiệu thuật toán theo hướng tiếp cận này, báo trình bày thuật tốn giải tốn MLP giải thuật tối ưu bầy đàn (Particle Swarm Optimize - PSO) với mong muốn thu ñược lời giải tốt cơng trình trước Từ khóa: khóa Cực tiểu hóa độ trễ, Minimum Latency Problem, MLP, Giải thuật di truyền, Tối ưu bầy ñàn, PSO Nhận ngày 18.8.2017; gửi phản biện, chỉnh sửa duyệt ñăng ngày 10.9.2017 Liên hệ tác giả: Lê Chí Chung; Email: lcchung@daihocthudo.edu.vn ĐẶT VẤN ĐỀ Bài tốn cực tiểu hóa ñộ trễ (MLP – Minimum Latency Problem) ñược phát biểu dạng ñồ thị sau: Cho trước ñồ thị ñầy ñủ G = (V,E) với trọng số không âm cạnh e∈E Giả sử P ñường ñi qua tất ñỉnh thuộc V, ñỉnh ñi qua ñúng lần Độ trễ ñường ñi ñược ñịnh nghĩa sau: Cho trước ñỉnh xuất phát s, ñộ trễ ñỉnh v ñường ñi P tổng ñộ dài cạnh từ s tới v P Độ trễ đường T tổng ñộ trễ ñỉnh nằm đường P Bài tốn cực tiểu hóa độ trễ ñặt ra: Cho trước ñỉnh xuất phát s, tìm ñường ñi ñơn ñi qua tất ñỉnh cho ñộ trễ ñường ñi nhỏ Bài tốn cực tiểu hóa độ trễ tốn có nhiều ứng dụng thực tiễn ñã ñược chứng minh trường hợp tổng quát toán NP- khó nghĩa ngoại trừ P = NP TRƯỜNG ĐẠI HỌC THỦ ĐƠ H 16 NỘI khơng có thuật tốn giải với thời gian đa thức Có nhiều cách tiếp cận để giải tốn Hiện có hướng tiếp cận để giải tốn: − Phát triển thuật tốn tìm lời giải tối ưu quy hoạch ñộng [8], Branchcut, Branchprice Branchcutprice [9, 10] − Thuật tốn cận tỉ lệ α (α – approximation algoirthm) [11] − Phát triển thuật tốn meta heuristic với độ phức tạp khơng q lớn thực nghiệm liệu chuẩn thuật toán di truyền [1], luyện kim [13], tìm kiếm TABU [14] Bài báo đề cập tới việc sử dụng thuật tốn tối ưu bầy đàn để giải tốn cực tiểu hóa độ trễ với mục đích tăng chất lượng lời giải GIẢI THUẬT TỐI ƯU HÓA BẦY ĐÀN Particle Swarm Optimization (PSO) kĩ thuật tối ưu hóa dựa việc chọn ngẫu nhiên quần thể sau tiến hóa cá thể qua nhiều hệ để đạt ñược nghiệm tối ưu PSO ñược ñề xuất James Kennedy Russell Eberhart [5] vào năm 1995 Từ đó, PSO ngày phổ biến ñối với nhà nghiên cứu học viên, trở thành kỹ thuật mạnh mẽ hiệu ñể giải vấn đề tối ưu khó khăn Ý tưởng PSO xuất phát từ tình tự nhiên Giả sử có đàn chim tìm kiếm thức ăn vùng Ban đầu tất chim khơng biết thức ăn đâu Tuy nhiên chúng dần biết thức ăn cách chúng bao xa sau lần bay ñi bay lại Bởi lẽ, muốn tìm thấy thức ăn nhanh tốt theo sau chim gần thức ăn Nghĩa sau biết ñược thức ăn gần chim bầy xích lại gần chim PSO theo kịch sử dụng để giải tốn tối ưu Trong PSO giải pháp tốn chim ý tưởng trên, ñược gọi particle Mỗi particle có giá trị thích nghi (fitness value), ñánh giá hàm ño ñộ thích nghi (fitness function), vận tốc ñể ñịnh hướng việc di chuyển (bay-flying) để tìm kiếm Các particle duyệt khơng gian tìm kiếm (khơng gian nghiệm tốn) cách xích lại gần particle có điều kiện tốt thời (current optimum particles) Trong tập cá thể chọn ngẫu nhiên (cịn gọi bầy đàn), cá thể cách di chuyển tới vị trí khác khơng gian tìm kiếm tìm vị trí tốt Khái niệm thay đổi vị trí khái qt hình sau: TẠP CHÍ KHOA HỌC − SỐ 18/2017 17 Trong đó: − X iK : Vị trí cá thể thứ i hệ thứ K − X iK +1 : Vị trí cá thể thứ i hệ thứ K+1 − Vi K : Vận tốc cá thể thứ i hệ thứ K − Vi K +1 : Vận tốc cá thể thứ i hệ thứ K +1 − Vi Pbest : Vận tốc theo Pbest − Vi Gbest : Vận tốc theo Gbest − Pbesti : Vị trí tốt cá thể thứ i hệ − Gbesti : Vị trí tốt cá thể quần thể Như PSO khởi tạo nhóm ngẫu nhiên cá thể tìm kiếm giải pháp tối ưu việc thay đổi vị trí cá thể để chúng tiến lại gần cá thể tối ưu Q trình lặp lặp lại cho ñến thay ñổi cá thể khơng đáng kể Trong vịng lặp (một hệ), cá thể particle ñược cập nhật hai giá trị: − Giá trị thứ nhất: Pbest cá thể tốt ñạt ñược tới thời ñiểm cá thể có fitness value tốt hệ − Giá trị thứ hai: Gbest cá thể tốt ñạt ñược cá thể tối ưu lần lặp Đây coi cá thể có độ thích nghi cao tồn khơng gian tìm kiếm − Khi cá thể có độ thích nghi tốt so với cá thể lân cận coi tối ưu cục gọi Lbest Trong nguyên Eberhart Kennedy ñưa ra, phần tử PSO duyệt khơng gian tốn cách theo sau phần tử có điều kiện tốt thời (độ thích nghi lớn nhất) Cụ thể sau khoảng thời gian rời rạc, vận tốc vị trí phần tử cập nhật theo cơng thức: V[] = v[] + c1 * rand()*(pbest[] – present[]) + C2 * ran()*(gbest[] – present[]) (1) Present[] = present[] + v[] (2) TRƯỜNG ĐẠI HỌC THỦ ĐÔ H 18 NỘI Trong đó: − V[] : vecto mơ tả vận tốc dịch chuyển cá thể − Present[]: vecto mô tả cá thể − Rand() trả kết Nghĩa cá thể chọn ngẫu nhiên dịch chuyển theo Pbest hay Gbest − C1 C2 tham số gia tốc tham số học Nó có ý nghĩa để tăng nhanh trình dịch chuyển Việc lựa chọn giá trị cho tham số cần cẩn trọng ñể tránh gia tốc nhanh làm trình lựa chọn cá thể tốt bị rơi vào best cục Giả mã thuật tốn PSO mơ tả ñây: 10 11 12 13 14 15 Khởi tạo particle; //Khởi tạo quần thể Do ForEach particle Tính FitnessValue() If Particle.FitnessValue < Pbest.FitnessValue then Pbest = Particle; EndIf If Pbest