ỨNG DỤNG GIẢI THUẬT DI TRUYỀN vào bài TOÁN vận tải TUYẾN TÍNH

4 618 10
ỨNG DỤNG GIẢI THUẬT DI TRUYỀN vào bài TOÁN vận tải TUYẾN TÍNH

Đang tải... (xem toàn văn)

Thông tin tài liệu

Nguyễn Thu Huyền và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 106(06): 81 - 84 81 ỨNG DỤNG GIẢI THUẬT DI TRUYỀN VÀO BÀI TOÁN VẬN TẢI TUYẾN TÍNH Nguyễn Thu Huyền 1* , Vũ Mạnh Xuân 2 , Lương Sỹ Ước 3 1 Trường Đại học Công nghệ Thông tin và Truyền thông- ĐH Thái Nguyên 2 Trường Đại học Sư phạm- ĐH Thái Nguyên 3 Trường Cao đẳng Kinh tế- Kĩ thuật- ĐH Thái Nguyên TÓM TẮT Bài toán vận tải là một trong những bài toán điển hình và có nhiều ứng dụng của quy hoạch tuyến tính. Bài toán này không có gì phức tạp nếu mạng lưới giao thông tương đối đơn giản và số địa điểm cung cấp, tiêu thụ không nhiều lắm. Tuy nhiên, với những mạng lưới giao thông phức tạp thì bằng kinh nghiệm và trực giác khó có thể tìm ra được phương án tối ưu. Bài báo này nghiên cứu ứng dụng Giải thuật di truyền giải bài toán vận tải tuyến tính, kết quả thử nghiệm được so sánh với một số phương pháp đã có. Từ khóa: Giải thuật di truyền, bài toán vận tải tuyến tính. ĐẶT VẤN ĐỀ * Giải thuật di truyền (GAs-Genetic Algorithms) là giải thuật tìm kiếm, chọn lựa các giải pháp tối ưu để giải quyết các bài toán thực tế khác nhau, dựa trên cơ chế chọn lọc của tự nhiên: từ tập lời giải ban đầu, thông qua nhiều bước tiến hoá, hình thành tập lời giải mới phù hợp hơn, và cuối cùng dẫn đến lời giải tối ưu toàn cục. GAs là một công cụ hữu ích giúp giải quyết các bài toán tối ưu, đặc biệt là bài toán tối ưu có không gian tìm kiếm lớn [2]. Bài toán vận tải tuyến tính là một trong những bài toán điển hình và có nhiều ứng dụng trong quy hoạch tuyến tính. Khi mạng lưới giao thông phức tạp, số địa điểm cung cấp và nhận lớn thì việc tìm ra được phương án tối ưu là rất khó khăn. Vì vậy, GAs có thể là một thuật giải phù hợp để giải quyết bài toán này. Bài báo này tập trung nghiên cứu ứng dụng Gas vào giải bài toán vận tải tuyến tính. Kết quả thử nghiệm được so sánh, đối chiếu với các phương pháp khác như phương pháp tìm phương án cực biên ban đầu, phương pháp Vôghen để thấy được hiệu quả của đề xuất. Bài báo có cấu trúc như sau: Sau phần đặt vấn đề là phần giới thiệu về nội dung và mô hình toán học bài toán vận tải tuyến tính. Phần kế * Tel: 0904.012.478; Email: h2m174@gmail.com tiếp trình bày về GAs và cách chọn các tham số trong ứng dụng của GAs vào bài toán vận tải tuyến tính. Cuối cùng là kết quả thử nghiệm và thảo luận. BÀI TOÁN VẬN TẢI TUYẾN TÍNH [1] Nội dung bài toán Giả sử cần vận chuyển một loại hàng thuần nhất (vật tư, lương thực…) từ m địa điểm cung cấp (điểm phát) A 1 , A 2 …A m đến n địa điểm tiêu thụ (điểm thu) B 1 , B 2 …B n biết rằng: - Số lượng hàng có ở A i là a i (i=1 m) - Số lượng hàng cần ở B j là b j (j=1 n) - Chi phí vận chuyển một đơn vị hàng từ A i đến B j là c ij (i=1 m, j=1 n). Vấn đề đặt ra: Lập kế hoạch vận chuyển hàng từ các địa điểm cung cấp đến các địa điểm tiêu thụ sao cho tổng chi phí vận chuyển là nhỏ nhất và thỏa mãn nhu cầu thu phát. Bài toán vận tải là tuyến tính nếu chi phí tỉ lệ với số lượng hàng vận tải. Mô hình toán học của bài toán Gọi x ij là số lượng hàng cần vận chuyển từ A i đến B j . Ta có: ∑ i=1 m ∑ j=1 n c ij x ij : tổng chi phí vận chuyển ∑ j=1 n x ij : số lượng hàng chở đi từ A i . i = 1 m. ∑ i=1 m x ij : số lượng hàng chở tới từ B j . j = 1 n. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Nguyễn Thu Huyền và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 106(06): 81 - 84 82 Vậy mô hình toán học của bài toán là: f(x) = ∑ i=1 m ∑ j=1 n c ij. x ij → min (cực tiểu tổng chi phí) với các điều kiện: - ∑ j=1 n x ij = a i - ∑ i=1 m x ij = b j - x ij > 0, i = i m, j = 1 n. ÁP DỤNG GIẢI THUẬT DI TRUYỀN VÀO GIẢI BÀI TOÁN VẬN TẢI TUYẾN TÍNH Chúng tôi tiến hành giải bải toán bằng cách sử dụng giải thuật di truyền như sau: - Mã hóa: Mỗi cá thể là một ma trận (m x n) chiều thể hiện số lượng hàng từ m địa điểm cung cấp đến n địa điểm tiêu thụ. Giá trị mỗi phần tử trong ma trận là một số nguyên không âm ngẫu nhiên thể hiện số lượng vận chuyển cụ thể giữa các địa điểm cung cấp và tiêu thụ.[2] - Khởi tạo quần thể ban đầu gồm 100 cá thể. Vì mỗi cá thể là một ma trận cỡ (m x n) nên để khởi tạo được 100 cá thể ban đầu, chúng tôi phải lưu trữ 100 cá thể này vào mảng 3 chiều trong đó 2 chiều đầu thể hiện vận chuyển giữa các địa điểm cung cấp và tiêu thụ, chiều thứ 3 thể hiện thứ tự của cá thể trong 100 cá thể của quần thể.[5] - Tính độ thích nghi cho từng cá thể trong quần thể ban đầu: Vì mỗi cá thể là một lời giải của bài toán nên chúng tôi tính độ thích nghi cho mỗi cá thể chính bằng tổng chi phí vận chuyển của cá thể đó [4]. - Quá trình tiến hóa như sau [3]: Hai cá thể cha mẹ được chọn (ngẫu nhiên) để tiến hành lai ghép tạo ra hai cá thể mới. Chúng tôi tiến hành lai ghép bằng cách chọn một cột ngẫu nhiên từ cha mẹ, sau đó con 1 nhận giá trị của cột tương ứng từ cha, con 2 nhận giá trị cột tương ứng từ me, sau đó các giá trị còn lại trong ma trận của hai con được sinh ngẫu nhiên thỏa mãn các điều kiện ràng buộc của bài toán. Sau khi sinh ra được 2 con rồi, chúng tôi tiếp tục tính độ thích nghi cho mỗi con bằng cách tính tổng chi phí vận chuyển. Xác xuất lai ở đây được xác định là 0.1 có nghĩa là quần thể gồm 100 cá thể thì ở mỗi thế hệ chúng tôi lấy ngẫu nhiên ra 10 cá thể để tiến hành lai ghép. Cá thể mới sinh ra cạnh tranh với cha mẹ chúng. Nếu các con sinh ra mà có độ thích nghi tốt hơn độ thích nghi của cha mẹ chúng tức là có chi phí vận chuyển nhỏ hơn thì các con (hoặc một con) sẽ được chọn vào thế hệ tiếp theo,còn không thì bị loại bỏ. Tương tự như vậy, nếu bố mẹ (hoặc một trong hai bố mẹ) có độ thích nghi tốt hơn độ thích nghi của các con thì sẽ được giữ lại ở thế hệ tiếp theo, ngược lại thì bị đào thải. Như vậy, tại mỗi thế hệ số lượng cá thể luôn là 100. - Số lần tạo sinh là 500 lần, tức là sau 500 thế hệ cho ra kết quả và so sánh kết quả của GAs với hai giải thuật khác từ đó rút ra kết luận. KẾT QUẢ THỬ NGHIỆM Chúng tôi đã lập trình và chạy thử nghiệm hai giải thuật trên bằng ngôn ngữ Matlab phiên bản 7.13.0.564. Trong đó, chúng tôi chạy 100 lần chương trình và chọn ra các kết quả tốt nhất để so sánh với hai phương pháp là tìm phương án cực biên ban đầu và phương pháp Vôghen. Chúng tôi nhập dữ liệu đầu vào là số địa điểm cung cấp m=3, số địa điểm tiêu thụ là n=4, số lượng cung cấp của địa điểm 1 là 170, số lượng cung cấp của địa điểm 2 là 200, của địa điểm 3 là 180. Trong khi đó, số lượng tiêu thụ của địa điểm 1 là 130, của địa điểm 2 là 160, của địa điểm 3 là 120 và địa điểm 4 là 140. Ma trận chi phí c ij được cho bởi bảng sau: Bảng 1: Ma trận chi phí c ij 20 18 22 25 15 25 30 15 45 30 40 35 Sau 100 lần chạy chương trình chúng tôi tìm ra kết quả tốt nhất là 12596. Nó có nghĩa là với đầu vào như trên thì việc vận chuyển giữa các địa điểm được thể hiện trong bảng 2, trong đó tổng chi phí nhỏ nhất bằng GAs là 12596. Bảng 2: Kết quả vận chuyển giữa các địa điểm của GAs 62 20 83 2 59 0 6 13 9 140 31 7 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Nguyễn Thu Huyền và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 106(06): 81 - 84 83 Trong khi đó, với cùng một bộ dữ liệu đầu vào phương pháp tìm phương án cực biên ban đầu cho ra kết quả tốt nhất là 12950, tức là chi phí vận chuyển giữa các địa điểm là 12950. Còn phương pháp Vôghen cho kết quả là 12200. Chi tiết của việc vận chuyển giữa các địa điểm của hai phương pháp trên được thể hiện trong bảng 3 và bảng 4. Bảng 3: Kết quả bằng phương pháp Vôghen 70 0 100 0 60 0 0 140 0 160 20 0 Bảng 4: Kết quả bằng phương pháp tìm phương án cực biên ban đầu 0 160 10 0 130 0 0 70 0 0 110 70 Nhận xét: Chúng tôi tiến hành chạy thử nghiệm áp dụng GAs vào bài toán vận tải với bộ dữ liệu trên vì để so sánh kết quả (cùng dữ liệu đầu vào) với hai phương pháp đã có. Kết quả từ bảng 2,3,4 cho chúng ta thấy rằng, sau 100 lần chạy chương trình khác nhau của GAs thì cho kết quả tốt hơn so với phương pháp tìm cực biên ban đầu nhưng còn chưa tối ưu bằng phương pháp Vôghen. Chúng tôi cũng tiến hành chạy thử nghiệm GAs với những bộ dữ liệu khác lớn hơn, đặc biệt là số địa điểm cung cấp và địa điểm tiêu thụ lớn hơn 8 và cũng cho kết quả khả quan. Đây là một tín hiệu tốt cho thấy rằng bài toán vận tải tuyến tính có thể được giải quyết bằng Giảỉ thuật di truyền và đạt kết quả khả quan. Từ đó cũng cho thấy GAs có thể áp dụng vào các dạng bài toán tối ưu khác nhau và cho kết quả khả quan. Mặc dù đây mới chỉ là một bài toán thử nghiệm, song chúng tôi thấy triển vọng phát triển là rất khả quan. THẢO LUẬN Trên cơ sở các kết quả nghiên cứu về giải thuật di truyền và áp dụng giải thuật này vào bài toán vận tải tuyến tính, chúng tôi có thể kết luận rằng Giải thuật di truyền là một công cụ hữu ích giúp giải quyết các bài toán tối ưu, đặc biệt là bài toán tối ưu có không gian tìm kiếm lớn và cho ra kết quả khả quan . Tuy nhiên, bài báo mới chỉ dừng lại ở áp dụng bài toán cụ thể chưa thể khẳng định được điều này với những lớp bài toán khác. Vì vậy, để có thể kết luận một cách tổng quát thì cần có nhiều thời gian và thử nghiệm trên nhiều bài toán khác. Hơn nữa có thể kết hợp với việc dùng kích thước quần thể thay đổi, hoặc xác định “tuổi” của các cá thể tham gia tiến hóa để quyết định việc tăng hay giảm kích cỡ quần thể cũng là hướng phát triển tự nhiên. TÀI LIỆU THAM KHẢO [1]. Võ Văn Tấn Dũng (2007), Giáo trình quy hoạch tuyến tính, Nxb Thống kê. [2]. Vũ Vinh Quang, (2009), “Giáo trình Giải thuật di truyền và ứng dụng”, Bộ môn Khoa học máy tính, ĐH Công nghệ thông tin và truyền thông, ĐH Thái Nguyên. [3]. Bodenhofer (2004), “Genetic Algorithms: Theory and Applications”, Journal of Genetic Algorithms, Springer. [4]. Bäck et al., (2000 a,b),” Evolutionary Computation 2: Advanced Algorithms and Operators” Institute of Physics Publishing, Bristol, UK. [5]. Thomas Weise (2009), “Genetic Algorithms”, University of Kassel, Gemarny. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Nguyễn Thu Huyền và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 106(06): 81 - 84 84 SUMMARY APPLY GENETIC ALGORITHMS TO SOLVE LINEAR TRANSPORTATION PROBLEM Nguyen Thu Huyen 1* , Vu Manh Xuan 2 , Luong Sy Uoc 3 1 College of Information Technology and Communication - TNU 2 College of Education -TNU 3 College of Economics and Technology – TNU Transportation Problem is one of the typical problems and it has many practical applications of Linear Programming. It isn’t complex if network traffic is relatively simple with number of provides and receives isn’t large. However, if network traffic is complex we can’t find optimal solution by experience and intuition. This paper proposes a algorithm to solve a particular Linear Transportation Problem using GA that has solved by some researchers. The test results are compared with some old methods to confirm the effective of GA. Key words: Genetic Algorithms, Linear Transportation Problem. Ngày nhận bài: 10/4/2013; Ngày phản biện: 02/5/2013; Ngày duyệt đăng: 26/7/2013 * Tel: 0904.012.478; Email: h2m174@gmail.com Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Ngày đăng: 27/08/2015, 20:07

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan