KHOA HỌC & CÔNG NGHỆ 36 TẠP CHÍ KHOA HỌC & CÔNG NGHỆ SỐ 32 2022 ỨNG DỤNG GIẢI THUẬT DI TRUYỀN TRONG XỬ LÝ BÀI TOÁN ĐỊNH TUYẾN XE APPLICATION GENERATION ALGORITHM FOR SOLVER VEHILCE ROUTING PROBLEM Cao[.]
KHOA HỌC & CÔNG NGHỆ ỨNG DỤNG GIẢI THUẬT DI TRUYỀN TRONG XỬ LÝ BÀI TOÁN ĐỊNH TUYẾN XE APPLICATION GENERATION ALGORITHM FOR SOLVER VEHILCE ROUTING PROBLEM Cao Ngọc Ánh, Trần Bích Thảo Khoa Cơng nghệ thơng tin, Trường Đại học Kinh tế - Kỹ thuật Cơng nghiệp Đến Tịa soạn ngày 19/04/2021, chấp nhận đăng ngày 17/05/2021 Tóm tắt: Mục tiêu nghiên cứu tìm giải pháp cho vấn đề định tuyến xe cách sử dụng thuật toán di truyền Bài toán định tuyến xe (Vehicle Routing Problem -VRP) toán tối ưu hóa tổ hợp phức tạp thuộc lớp NP - đầy đủ (nondeterministic polynomial - complete) Vehicle Routing Problem vấn đề toán học, đề gốc tốn gói gọn câu hỏi: “Làm để tạo lộ trình tối ưu cho đội xe giao hàng tới lượng khách hàng có sẵn?” Bài báo nghiên cứu thuật tốn di truyền kỹ thuật tìm kiếm để tìm giải pháp gần đến vấn đề tối ưu hóa tìm kiếm để giải tốn định tuyến xe Từ khóa: Vehicle Routing Problem (VRP), Genetic Algorithm Abstract: The main objective of this research is to find a solution to the Vehicle Routing Problem using genetic algorithms Vehicle Routing Problem (VRP) is a complex combinatorial optimization problem of class NP-complete The Vehicle Routing Problem is a math problem, and the original problem of this problem is encapsulated in the question: “How to create an optimal route for a fleet of vehicles to deliver to an existing customer? " The article studies genetic algorithms and search techniques to find the correct or approximate solutions to optimization and search problems to solve vehicle routing problems Keywords: Vehicle Routing Problem (VRP), Genetic Algorithm GIỚI THIỆU Có thể phát biểu toán VRP cách đơn giản sau: Có tập hợp 𝑀 xe giống xuất phát kho hàng làm nhiệm vụ giao hàng cho 𝑁 khách hàng, khách hàng đòi hỏi cung cấp lượng hàng định Yêu cầu đặt tốn tìm đường ngắn cho 𝑀 xe đáp ứng tất đòi hỏi khách hàng [1] Vehicle Routing Problem bắt nguồn từ năm 1959 George Dantzig John Ramser [2][3] thiết lập cơng thức tốn học phương 36 pháp tiếp cận thuật toán để giải vấn đề cung cấp xăng dầu cho trạm dịch vụ Năm 1964, Clarke Wright cải tiến cách giải Dantzig Ramser cách sử dụng cách tiếp cận khác, gọi thuật toán tiết kiệm Từ quan tâm đến VRP mở rộng từ nhóm nhà tốn học sang phạm vi rộng nhà nghiên cứu nhà thực hành, từ ngành khác nhau, nhiều lĩnh vực Các phương pháp giải xác đảm bảo lời giải tối ưu tìm thấy khoảng TẠP CHÍ KHOA HỌC & CƠNG NGHỆ SỐ 32 - 2022 KHOA HỌC & CÔNG NGHỆ thời gian hữu hạn Tuy nhiên, thời gian chạy trường hợp tồi lớn, lớp thuật tốn giải tốn có kích thước nhỏ vừa: thuật toán nhánh cận (brand and bound) [4], thuật toán sinh cột [5]… Các phương pháp gần gồm giải thuật cho chất lượng lời giải gần với lời giải tối ưu nhóm giải thuật heuristic cổ điển, nhóm giải thuật tìm kiếm cục nhóm giải thuật metaheuristic [6, 7] Một số chúng giải thuật di truyền (GA), phương pháp tìm kiếm tối ưu ngẫu nhiên cách mơ theo tiến hóa người hay sinh vật Tư tưởng giải thuật di truyền mô tượng tự nhiên, kế thừa đấu tranh sinh tồn Trong thuật toán này, cá thể quần thể biểu diễn lời giải cho toán cần giải Ban đầu, quần thể (tức tập hợp lời giải) khởi tạo cách ngẫu nhiên Quần thể ban đầu gọi hệ Sau đó, q trình tiến hóa quần thể thực nhiều lần, lần hệ hay quần thể sinh Thế hệ tạo thành cách sau: Đầu tiên trình chọn lọc (selection) Mỗi cá thể hệ cũ có xác suất “sống sót” để tiếp tục tồn hệ Lời giải tương ứng với cá thể có độ thích nghi cao, xác suất cá thể sống sót sang hệ lớn Tiếp đến trình lai ghép chéo (crossover) Với cá thể cần “sinh” cho hệ mới, cặp cá thể chọn ngẫu nhiên nhiên để làm “cha mẹ” Cặp cá thể “cha mẹ” kết hợp với nhau, theo quy tắc định nghĩa trước, để “sinh” cá thể Quy tắc “sinh” cho tốn khác khác Cách TẠP CHÍ KHOA HỌC & CƠNG NGHỆ SỐ 32 - 2022 “sinh con” lấy nửa thành phần cá thể “cha” nửa thành phần cá thể “mẹ” “trộn” lại với để tạo cá thể “con” Ở bước tiếp theo, cá thể quần thể bị đột biến gen (mutation) theo xác suất cho trước Cũng cách thức “sinh” con, cách thức đột biến tốn khác khác Cách đột biến thay đổi thành phần cá thể Sau đó, từ quần thể có, quần thể lại tạo theo q trình nói Q trình lặp lặp lại điều kiện dừng thỏa mãn, chi phí tổng tuyến đường nhỏ Lời giải tốn cá thể tốt tất quần thể tạo MƠ HÌNH TỐN HỌC Bài toán VRP biểu diễn tập V xe vận chuyển, tập C khách hàng đồ thị có hướng G Đồ thị G có |C|+2 đỉnh, khách hàng đỉnh từ 1, 2,…, n; đỉnh biểu thị kho xuất phát đỉnh n+1 biểu diễn cho kho kết thúc Tập A cung đồ thị biểu diễn kết nối kho với khách hàng khách hàng với Mỗi cung (i, j) có giá trị chi phí cij Mỗi khách hàng i có nhu cầu di Một lộ trình kho xuất phát, qua số khách hàng kết thúc kho hàng kết thúc, khách hàng xe phục vụ Mục tiêu tốn tìm phương án điều đội xe hợp lý để giao hàng tới tất khách hàng cho tổng chi phí nhỏ Mơ hình tốn học tốn sau, giả sử: n: Tổng số khách hàng cần phục vụ; K: Tổng số chuyến xe; N = {0, 1, …, n +1}: Tập đỉnh đồ thị; V = {0, 1, , K}: Tập xe vận chuyển; 37 KHOA HỌC & CÔNG NGHỆ C = {1, 2, …, n}: Tập khách hàng; cij: Chi phí từ i đến j; q: sức chứa xe; di: nhu cầu nút i THUẬT TOÁN DI TRUYỀN GIẢI BÀI TOÁN VRP 3.1 Biểu diễn lời giải Lời giải (nhiễm sắc thể) biểu diễn thành chuỗi số nguyên hốn vị Mỗi số ngun chuỗi số nguyên gán cho khách hàng Thứ tự gene nhiễm sắc thể thứ tự thăm xe Khi ta có biến mơ hình xijk: biểu diễn xem xe k có từ khách hàng i đến khách hàng j không với Ví dụ: Với kho, 10 kho kết thúc Lộ trình 1: 10 i, j N, k V Lộ trình 2: 10 yik: biểu diễn khách hàng i có xe k phục vụ khơng với Lộ trình 3: 10 Chuỗi số nhiễm sắc thể ứng với lời giải sau: (1) (2) 275 i N, k V Hàm mục tiêu toán: iN c x jN kV ij 3.2 Khởi tạo quần thể ban đầu ijk Phương thức khởi tạo quần thể mô tả sau: Các ràng buộc toán: x y j N, k K x 1j C x x 0j C, k K y *d q k K x k K x k K x k K x k K iN ijk iN kK jk (1) Thực thuật toán K-Means chia khách hàng thành k cụm (k = tổng số xe) ijk (2) Với xe, khởi tạo ngẫu nhiện lộ trình cụm khách hàng tương ứng iN (3) iN ijk iN jk jN 0jk (5) iN i0k (6) iN i(n+1)k (7) jN (n+1)jk (8) j ijk Tổng hợp lộ trình xe, ta có phương án tương ứng (4) Lặp lại hai bước đến có đủ quần thể 3.3 Lựa chọn hàm thích nghi Hàm thích nghi tốn VRP định nghĩa sau: đó: (1) biểu diễn mối liên hệ x y (2), (3): đảm bảo khách xe phục vụ (4) đảm bảo sức chứa xe (5), (6), (7), (8) đảm bảo lộ trình bắt đầu kết thúc kho Việc mơ hình hóa toán VRP nghiên cứu nhiều tác giả trình bày chi tiết báo [8-11] 38 fi d i ci đó: fi độ thích nghi cá thể thứ i, di tổng độ dài quãng đường đi, ci tổng chi phí sử dụng xe Như vậy, lời giải đánh giá tốt dựa vào hai yếu tố: tổng quãng đường đi, chi phí sử dụng xe nhỏ TẠP CHÍ KHOA HỌC & CÔNG NGHỆ SỐ 32 - 2022 KHOA HỌC & CÔNG NGHỆ 3.4 Các thao tác di truyền 3.4.1 Lựa chọn cá thể Bài viết dùng phương pháp lấy mẫu Stochastic universal sampling – SUS) để tìm cá thể cha mẹ tốt nhằm thực tái tổ hợp Quy trình thực SUS sau: Tính tổng giá trị thích nghi quần thể F Tính khoảng cách trỏ P = F/N, với N số cá thể giữ lại Tính giá trị trỏ Tính giá trị ngẫu nhiên Các cá thể quần thể xếp giảm dần theo độ thích nghi Quần thể xây dựng sau loại bỏ cá thể trùng lặp cá thể Như vậy, thuật toán di truyền giải toán VRP thể sau: Bước 1: Tiến hành phân cụm khách hàng thành k-cụm (k số xe chở hàng) Bước 2: Khởi tạo quần thể ban đầu gồm N cá thể từ trình phân cụm Bước 3: Đánh giá tính thích nghi cá thể quần thể ban đầu Bước 4: Lặp lại từ bước 4.1 đến bước 4.4 đến vượt số hệ cho phép: Với , i nhỏ mà tổng giá trị thích nghi từ đến i >= P cá thể i lựa chọn Bước 4.1: Chọn cá thể để tái tổ hợp phương pháp SUS; Bước 4.2: Thực trao đổi chéo thuật toán NWOX; 3.4.2 Trao đổi chéo Bước 4.3: Thực đột biến cá thể; Bài viết dùng biến thể phương pháp trao đổi chéo có thứ tự gọi trao đổi chéo khơng gói (Non-Wrapping Ordered Crossover – NWOX); Bước 4.4: Đánh giá tính thích nghi cá thể quần thể xây dựng quần thể Ví dụ: NST 1: HCBD | GFE | IJALK NST 2: CAGE | BDF | LKIJH Sử dụng NWOX ta thu là: NST 1: HCGE | BDF | IJALK NST 2: CABD | GFE | LKIJH 3.4.3 Đột biến Trong phạm vi báo này, phương pháp đột biến dạng đảo gene áp dụng Bước 5: Trả kết kết thúc thuật tốn CÀI ĐẶT THUẬT TỐN Dưới đây, thuật tốn GA cài đặt ngơn ngữ lập trình R Chương trình viết biên dịch Rstudio 1.4.1717 chạy máy tính cá nhân Core i7-E7440 4600U 2.7GHz 8G RAM Sau khởi động RStudio, chọn project CVRP_NCKH Để cài đặt thuật toán, ta xây dựng hàm sau: Hàm khởi tạo quần thể: 3.4.4 Tạo hệ giant_path