Ứ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
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
4 trang |
Chia sẻ: thucuc2301 | Lượt xem: 887 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Ứ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, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
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ền1*, Vũ Mạnh Xuân2, Lương Sỹ Ước3
1Trườ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) A1, A2Am đến n địa
điểm tiêu thụ (điểm thu) B1, B2Bn biết rằng:
- Số lượng hàng có ở Ai là ai (i=1..m)
- Số lượng hàng cần ở Bj là bj (j=1..n)
- Chi phí vận chuyển một đơn vị hàng từ Ai
đến Bj là cij (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 xij là số lượng hàng cần vận chuyển từ Ai
đến Bj. Ta có:
∑i=1
m∑j=1
n
cijxij : tổng chi phí vận chuyển
∑j=1
n
xij : số lượng hàng chở đi từ Ai. i = 1..m.
∑i=1
m
xij : số lượng hàng chở tới từ Bj. j = 1.. n.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
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=1m∑j=1n cij.xij → min (cực tiểu tổng
chi phí) với các điều kiện:
-
∑j=1
n
xij = ai
-
∑i=1
m
xij = bj
- xij > 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í cij được cho bởi bảng sau:
Bảng 1: Ma trận chi phí cij
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
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
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 Huyen1*, Vu Manh Xuan2, Luong Sy Uoc3
1College 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
Các file đính kèm theo tài liệu này:
- brief_39406_42946_2102013934381_2645_2051975.pdf