1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Ứ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 620 10

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 4
Dung lượng 119,28 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ứ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ỹ Ước3 1 Trường Đại học Công nghệ Thông tin và Truyền thông- ĐH Thái Nguyên

Trang 1

Ứ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ỹ Ước3

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

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, A2…Am đến n địa

- 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

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

cijxij : tổng chi phí vận chuyển

xij : số lượng hàng chở đi từ Ai i = 1 m

xij : số lượng hàng chở tới từ Bj j = 1 n

Trang 2

Vậy mô hình toán học của bài toán là:

f(x) = ∑i=1

m∑j=1n

chi phí) với các điều kiện:

- ∑j=1n

xij = ai

- ∑i=1m

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í 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

9 140 31 7

Trang 3

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

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

Trang 4

SUMMARY

APPLY GENETIC ALGORITHMS TO SOLVE

LINEAR TRANSPORTATION PROBLEM

Nguyen Thu Huyen 1* , Vu Manh Xuan 2 , Luong Sy Uoc3

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

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

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w