Thuật toán di truyền giải bài toán VRPTW

Một phần của tài liệu (Luận văn thạc sĩ) Tìm hiểu giải thuật định tuyến xe, ứng dụng trong tối ưu lộ trình thu gom rác thải trong khu công nghiệp (Trang 39 - 45)

2.3.1 Biểu diễn nhiễm sắc thể

Thuật toán di truyền là phương pháp tìm kiếm heuristic có tính thích nghi và dựa trên một quần thể gồm các cá thể (các lời giải). Các đặc tính quan trọng của mỗi cá thể được mã hóa thành nhiễm sắc thể. Theo Sinh học, một nhiễm sắc thể được hình thành từ một chuỗi các gene. Như vậy, mỗi gene sẽ nắm giữ một đặc tính của một lời giải. Một nhiễm sắc thể thường được biểu diễn như một chuỗi nhị phân hoặc chuỗi số nguyên có chiều dài cố định. Cho bài toán VRPTW, lời giải (nhiễm sắc thể) thường được biểu diễn thành chuỗi các số nguyên (chỉ duy nhất một phương

33

pháp của Thanghiah[35] sử dụng biểu diễn chuỗi nhị phân). Mỗi số (mỗi gene) trong chuỗi là một số nguyên được gán cho một khách hàng. Thứ tự các gene trong nhiễm sắc thể chính là thứ tự viếng thăm các khách hàng. Ví dụ một lời giải gồm có 3 lộ trình

• Lộ trình thứ nhất: 0 -> 3 -> 5 -> 10 -> 0

• Lộ trình thứ hai: 0 -> 2 ->11 -> 12 -> 1 -> 6 -> 0 • Lộ trình thứ ba: 0 -> 4 -> 9 -> 8 -> 7 -> 0

Chuỗi số biểu diễn cho một nhiễm sắc thể tương ứng như sau: 3 -> 5 -> 10 -> 2 ->11 -> 12 -> 1 -> 6 -> 4 -> 9 -> 8 -> 7

Ở đây, khách hàng cuối cùng được viếng thăm của lộ trình i được liên kết với khách hàng được viếng thăm đầu tiên trong lộ trình i+1 để hình thành một chuỗi các lộ trình có liên quan. Cần lưu ý rằng không có bất kỳ ký hiệu phân tách nào được đặt vào trong chuỗi để phân biệt các lộ trình, bởi vì điều này sẽ gây cản trở đến việc áp dụng các toán tử di truyền về sau. Để giải mã các nhiễm sắc thể thành các lộ trình, phương pháp tương tự như phương pháp PFIH được sử dụng, tức là chèn các gene vào các lộ trình mới.

2.3.2 Tạo quần thể ban đầu

Quần thể khởi tạo ban đầu có ảnh hưởng rất lớn đến thời gian tìm lời giải cũng như chất lượng lời giải kết xuất bởi thuật toán di truyền. Một quần thể được khởi tạo ngẫu nhiên sẽ có thể rất chậm hội tụ về lời giải tối ưu khi áp dụng thuật toán di truyền. Quần thể ban đầu tốt giúp cho thuật toán hội tụ nhanh về lời giải tối ưu. Để có các lời giải tốt, các heuristic xây dựng lộ trình thường được sử dụng trong quá trình khởi tạo quần thể. Tuy nhiên, tính đa dạng của các cá thể trong quần thể cũng phải được đảm bảo để khi áp dụng thuật toán di truyền sẽ không bỏ sót các vùng tiềm năng có thể cho lời giải tốt. Chính vì vậy, Tan và các cộng sự[38] đã kết hợp cả heuristic xây dựng lộ trình và phương pháp khởi tạo ngẫu nhiên trong quá trình khởi tạo quần thể ban đầu. Theo đó, quần thể được khởi tạo làm hai phần, một phần được tạo bởi heuristic và một phần được tạo ngẫu nhiên; tỷ lệ cá thể trong các phần được điều khiển bởi một tỷ số cho trước.

34

Phương pháp PFIH của Solomon được sử dụng trong nhiều nghiên cứu về VRPTW để tìm lời giải ban đầu (hạt giống di truyền). PFIH đảm bảo một lời giải khả thi nếu bài toán có lời giải. Với giả định PFIH cho lời giải nằm trong vùng lân cận của lời giải tốt nhất toàn cục, một phần quần thể ban đầu được tạo ra dựa trên các lân cận của lời giải này. Đặt lời giải thu được từ PFIH là S = {R1, ...., Rp, ..., Rq, ..., Rk}, với Rp là tập các khách hàng được phục vụ bởi xe vận chuyển p. Một thao tác λ-trao đổi giữa hai cặp lộ trình Rp và Rq là quá trình thay thế tập con S1 ⊆Rp với kích thước |S1| ≤ λ bằng một tập con khác S2 ⊆ Rq cũng với kích thước λ ≤ S2. Phép trao đổi này giúp sinh ra các lộ trình mới Rp = ( Rp - S1 ) ∪ S2 , Rq = ( Rq - S2 ) ∪S1 và một lời giải lân cận mới S = {R1, ...., Rp, ..., Rq, ..., Rk}. Vùng lân cận Nλ(S) của lời giải S là tập tất cả các lời giải lân cận {S’} được tạo ra bởi thao tác λ-trao đổi với λ cho trước. Như vậy, một phần quần thể ban đầu được tạo bởi thao tác λ- trao đổi. Phần còn lại của quần thể này được tạo ngẫu nhiên, không liên quan đến lời giải của PFIH. Nhận xét thấy rằng phần quần thể xuất phát từ vùng lân cận sẽ không đi xa điểm khởi tạo ban đầu, do đó có thể bỏ đi cơ hội khám phá các vùng khác. Đây là lý do cần thêm một phần quần thể được khởi tạo ngẫu nhiên. Sự cân đối giữa các nhiễm sắc thể có liên quan và các nhiễm sắc thể ngẫu nhiên được điều khiển bởi một tham số RANDOM_RATIO. Giá trị tham số này càng cao, quần thể ban đầu càng trở nên đa dạng. Tham số này cũng phản ánh mức độ tin cậy của người sử dụng đối với lời giải của PFIH. Nếu mức độ tin cậy này cao, tức là tối ưu toàn cục được định vị trong vùng lân cận của lời giải ban đầu, thì RANDOM_RATIO phải nhỏ để quần thể nhanh hội tụ đến tối ưu.

2.3.3 Đánh giá tính thích nghi

Giá trị thể hiện tính thích nghi của một nhiễm sắc thể phản ánh chất lượng của một lời giải. Cách đánh giá tính thích nghi được sử dụng tương tự như đề xuất của Zhu[39] bao gồm cả số lộ trình và tổng khoảng cách di chuyển của tất cả các xe vận chuyển:

35

Trong đó:

fi: là độ thích nghi của nhiễm sắc thể thứ i trong quần thể.

Ri: là số lộ trình của một lời giải được biểu diễn bởi nhiễm sắc thể thứ i.

Di: là tổng khoảng cách của một lời giải được biểu diễn bởi nhiễm sắc thể thứ i. Dmax: là tổng khoảng cách di chuyển lớn nhất.

Dmax thể hiện tổng khoảng cách trong trường hợp lập lộ trình xấu nhất, tức là số khách hàng cũng là số lộ trình. Doi là khoảng cách Euclide giữa kho và khách hàng thứ i. Như vậy, lời giải S1 tốt hơn lời giải S2 nếu S1 có ít lộ trình hơn. Trong trường hợp cả hai lời giải đều có số lộ trình giống nhau thì lời giải nào có tổng khoảng cách di chuyển nhỏ hơn sẽ là lời giải tốt hơn. Nói cách khác, lời giải càng tốt, giá trị hàm thích nghi càng nhỏ.

2.3.4 Các thao tác di truyền

Sau khi quần thể ban đầu được khởi tạo, thuật toán bắt đầu lặp qua các thế hệ, thường lặp qua 500 đến 1000 thế hệ. Về mặt lý thuyết, nếu càng nhiều thế hệ được lặp thì lời giải thu được càng tốt trong hầu hết trường hợp, trừ phi lời giải tối ưu đã đến rồi. Để tạo ra một quần thể con, các phép toán di truyền như chọn lọc, lai và đột biến được áp dụng lên các cá thể của quần thể trước (quần thể cha/mẹ). ● Chọn lọc:

Phép chọn nhằm tìm ra các cá thể cha mẹ tốt để thực hiện lai ghép. Cho mục đích này, cơ chế chọn theo vòng thi đấu được áp dụng. Mỗi thế hệ có hai bản sao 1P, 2P của quần thể Pgồm N cá thể . Sau đó, 1P và 2P được sắp xếp tùy ý. Ứng với hai nhiễm sắc thể liền kề nhau (vị trí i và i + 1, 20 ≤≤ Ni) trong quần thể, chọn ra nhiễm sắc thể có giá trị thích nghi nhỏ hơn làm nhiễm sắc thể cha/mẹ tiềm năng. Như vậy, sau khi duyệt qua hết tất cả các cặp nhiễm sắc thể liền kề trong quần thể

(2.24)

36

1P và các cặp nhiễm sắc thể liền kề trong quần thể 2P sẽ lần lượt thu được tập các cá thể cha f0 f1, f2…….. và tập các cá thể mẹ m0, m1, m2……..

Hình 2.2 Chọn cá thể theo vòng thi đấu

Với cơ chế chọn theo vòng thi đấu, cá thể có tính thích nghi cao hơn sẽ có nhiều cơ hội hơn tham gia vào quá trình tái tổ hợp để sinh ra các cá thể con ở thế hệ tiếp theo. ● Tái tổ hợp:

Quá trình tái tổ hợp là một trong các chức năng quan trọng nhất trong chuỗi tiến hóa sinh học. Tương tự trong thuật toán GA, một cơ chế tái tổ hợp thông minh và hiệu quả sẽ nâng cao hiệu năng của thuật toán. Tái tổ hợp trong GA bao gồm hai loại thao tác là lai và đột biến.

Thao tác lai sử dụng phương pháp heuristic trao đổi chéo liên quan đến khoảng cách giữa các gene. Theo đó, một điểm cắt ngẫu nhiên được thực hiện trên hai nhiễm sắc thể. Phương pháp sẽ bắt đầu so sánh các gene ngay sau vị trí cắt. Ví dụ:

NST1: K H E D G F E | B I J A L NST2: C E G A B D F | L K I J H

Giả sử gene B là gene đầu tiên trong nhiễm sắc thể con. Khi đó, gene L được hoán vị với gene B trong NST2 để tránh sự lặp lại sau đó. Kết quả sau hoán vị thu được:

NST 1: K H E D G F E | B I J A L NST 2: C E G A L D F | B K I J H

37

NST con: B _ _ _ _ _ _ _ __ _ _ _ _

Sau đó, so sánh khoảng cách giữa gene B với hai gene liền sau I và K và chọn gene nào có khoảng cách gần B hơn. Giả sử K là gene được chọn, tức d (B,K) < d (B,I)

Khi đó, gene I phải được hoán vị với gene K trong NST1 để tránh sự trùng lặp. Kết quả sau hoán vị thu được:

NST 1: I H E D G F E | B K J A L NST 2: C E G A L D F | B K I J H

NST con: B K _ _ _ _ _ _ _ __ _ _ _

Xử lý được lặp lại cho đến khi nhiễm sắc thể con có số gene bằng với số gene trong nhiễm sắc thể cha/mẹ.

Thao tác đột biến trong thuật toán di truyền có thể là thao tác chèn, xóa, hoán vị một gene hoặc đoạn gene. Cho bài toán VRPTW, bởi vì chiều dài của nhiễm sắc thể là cố định (tức là số khách hàng cố định ban đầu) nên các thao tác chèn, xóa hoàn toàn không thích hợp. Do đó, chỉ có thao tác hoán vị có thể được áp dụng và thường sử dụng hoán vị gene.

2.3.5 Tạo thế hệ mới

Ở mỗi thế hệ, các cá thể tốt được chọn lựa ra từ quần thể hiện tại. Sau đó, tùy theo các xác suất lai và đột biến, các thao tác di truyền có thể được áp dụng lên các cá thể này nhằm tạo ra các cá thể con mới và chúng sẽ thay thế cha mẹ trong thế hệ tiếp theo. Nếu thao tác di truyền không được áp dụng, cá thể được sao chép nguyên y đến thế hệ tiếp theo.

Sau khi thế hệ mới được hình thành, thuật toán đánh giá các cá thể trong quần thể của thế hệ mới và thực hiện thay thế cá thể xấu nhất bởi cá thể tốt nhất của quần thể ở thế hệ trước đó. Nhờ thế, cá thể tốt nhất trong quần thể ở thế hệ sau luôn đảm bảo tốt hơn hoặc bằng cá thể tốt nhất trong quần thể ở thế hệ trước đó.

Thuật toán di truyền giải bài toán VRPTW như sau:

38

tạo từ lời giải khả thi S của PFIH và các lân cận )(SNλ; một phần quần thể được khởi tạo ngẫu nhiên).

Bước 2: Đánh giá tính thích nghi của các cá thể trong quần thể ban đầu. Tính maxD và thiết lập một số thông số cần thiết cho thuật toán.

Bước 3: Lặp tuần tự từ bước 3.1 đến bước 3.5 cho đến khi số thế hệ vượt quá số thế hệ lớn nhất cho phép.

➢ Bước 3.1: Tìm cá thể tốt nhất trong quần thể hiện tại, cập nhật lời giải tốt nhất hiện tại.

➢ Bước 3.2: Tạo quần thể mới bằng cách lặp lại các bước sau cho đến khi quần thể mới có đủ N cá thể.

❖ Bước 3.2.1: Chọn lựa các cá thể cha mẹ bằng phương pháp chọn theo vòng thi đấu.

❖ Bước 3.2.2: Thực hiện trao đổi chéo trên từng cặp cá thể cha mẹ ứng với xác suất trao đổi chéo cho trước. Nếu thao tác trao đổi chéo không được thực hiện, cá thể con được sao chép nguyên y từ cá thể cha mẹ.

❖ Bước 3.2.3: Thực hiện đột biến các cá thể con mới ứng với xác suất đột biến cho trước.

➢ Bước 3.3: Đánh giá tính thích nghi của các cá thể trong quần thể mới. ➢ Bước 3.4: Tìm cá thể xấu nhất trong quần thể mới.

➢ Bước 3.5:Thực hiện thay thế cá thể xấu nhất bằng cá thể tốt nhất của quần thể trước.

Bước 4: Kết xuất lời giải tốt nhất và kết thúc thuật toán.

Một phần của tài liệu (Luận văn thạc sĩ) Tìm hiểu giải thuật định tuyến xe, ứng dụng trong tối ưu lộ trình thu gom rác thải trong khu công nghiệp (Trang 39 - 45)

Tải bản đầy đủ (PDF)

(72 trang)