GIỚI THIỆU
Đặt vấn đề
Trong ngành vận tải, có những vấn đề tuy đã xuất hiện từ lâu nhưng vẫn chưa hề biến mất vì một vài lý do nào đó COVID-19 và các tác động để lại của đối với chuỗi cung ứng đã buộc các nhà khai thác đội xe vận tải phải suy nghĩ lại về cách thức kinh doanh của họ Theo Báo cáo Logistics Việt Nam 2022, tuy gặp phải ảnh hưởng từ dịch bệnh, ngành logistics vẫn có nhiều tiềm năng để phát triển Trong đó các phân khúc giao nhận, chuyển phát được đánh giá là có cơ hội lớn khi thương mại điện tử phát triển nhanh và người tiêu dùng mua sắm trực tuyến nhiều hơn trong năm 2022 1 Dưới tác động của đại dịch, người tiêu dùng bắt đầu chuyển sang mua sắm trực tuyến thay cho việc mua sắm truyền thống với số lượng lớn Cụ thể, trong 9 tháng đầu năm 2022 là tổng khối lượng vận chuyển hàng hóa tăng 24.4%, luân chuyển hàng hóa tăng 31% so với cùng kỳ năm 2021 Trong đó, phương thức vận tải đường bộ, phương thức chuyển phát hàng đến trực tiếp tay người tiêu dùng, chiếm đến 72.93% tổng lượng hàng được vận chuyển 2
Một sự biến đổi khác đến thương mại điện tử chính là yêu cầu về chất lượng của dịch vụ vận chuyển Trên lĩnh vực này, khách hàng quan tâm hơn cả ở 3 yếu tố: chi phí, thời gian và đóng gói Chi phí thường là yếu tố đầu tiên mà người tiêu dùng truyền thống nghĩ đến khi sử dụng một dịch vụ nào đó Nhóm khách hàng này phần lớn là thuộc thế hệ trước Họ thường đi đến nơi bán và mua trực tiếp nhằm kiểm tra chất lượng thực tế của sản phẩm cũng như để tránh chi tiêu cho vận chuyển Khác với nhóm khách hàng này, giới trẻ hiện tại - phân khúc lớn nhất trong thị trường thương mại điện tử - lại quan tâm hơn về những dịch vụ, tiện ích mà doanh nghiệp cung cấp Cán cân mà những khách hàng này sử dụng để lựa chọn nơi mua của mình là chi phí và chất lượng dịch vụ Vận chuyển hàng hóa là một điểm khác biệt nổi bật chính giữa những gã khổng lồ trong ngành bán lẻ trực tuyến đang đấu tranh để giành lợi thế trong thị trường thương mại điện tử đầy cạnh tranh Theo một khảo sát của Clutch 3 , gần một nửa số người tiêu dùng (45%) nói rằng việc giao hàng trễ sẽ để lại ấn tượng xấu và họ sẽ không tiếp tục mua hàng ở doanh nghiệp đã từng giao hàng trễ Giao hàng trễ có thể làm cho doanh nghiệp bị mất khách hàng, chịu ảnh hưởng về chi phí phát sinh và mất đi khả năng cạnh tranh của mình Người mua hàng thường không nắm được hoạt động vận chuyển hàng hóa từ nhà bán đến mình Họ chỉ được trải nghiệm duy nhất ở khâu giao hàng chặng
1 Bộ Công Thương, Báo cáo Logistics Việt Nam 2022, NXB Công Thương
2 Bộ Công Thương, Báo cáo Logistics Việt Nam 2022, NXB Công Thương
3 Logistics, Clutch Report, How Consumer Hunger for Two-Day Delivery Impacts Businesses, 1/4/2022
2 cuối khi mà gói hàng đến tay của mình Và đây cũng là đối tượng chính của nghiên cứu này - giao hàng chặng cuối
Một bài toán nổi bật liên quan đến hoạt động này là bài toán hoạch định tuyến đường trong các doanh nghiệp vận tải Bài toán được đề ra nhằm đáp ứng yêu cầu giao nhận của khách hàng trong khi tối ưu việc sử dụng nguồn lực của doanh nghiệp Bắt đầu với bài toán sơ khai nhất là là nghiên cứu The Traveling Salesman Problem (TSP) của David L Applegate, Robert E Bixby, Vasek Chvátal & William J Cook [1] Đây là một nghiên cứu về các mô hình giải thuật tìm đường đi tốt nhất dựa trên các ràng buộc và mục tiêu được đặt ra bằng cách liệt kê tất cả phương án khả dĩ cho bài toán TSP Mô hình Vehicle Routing Problem (VRP) do George Dantzig & John Ramser đề ra năm 1959 đã tổng quát hóa TSP để giải quyết bài toán có quy mô lớn hơn khi chỉ một chuyến đi không thể đáp ứng mọi ràng buộc của hoạt động [2]
Trong số các ràng buộc đa dạng của bài toán VRP, gần đây, nhiều nghiên cứu xây dựng, ứng dụng mô hình được thực hiện nhằm đáp ứng nhu cầu về thời điểm phục vụ các khách hàng Nghiên cứu Vehicle Routing Problem with Time Windows của Brian Kallehauge, Jesper Larsen, Oli B.G Madsen & Marius M Solomon [3] đề ra mô hình cần thiết để xác định tổ hợp các tuyến đường đi tốt nhất thỏa mãn các ràng buộc về thời gian Thêm vào đó, các doanh nghiệp thương mại điện tử và các doanh nghiệp cung cấp hàng tươi sống ngày nay thường sở hữu một mạng lưới phân phối phủ rộng trên thị trường của họ Với mô hình này, doanh nghiệp có thể đáp ứng tốt hơn yêu cầu về mặt thời gian cho các khách hàng ở xa vùng trung tâm, đảm bảo chất lượng hàng hóa và cũng để giải quyết vấn đề về mở rộng năng lực nhằm đáp ứng lương nhu cầu lớn dần theo thời gian Để xác định khách hàng nên được đưa về kho nào cho tối ưu hoạt động của doanh nghiệp, VRPTW cho nhiều kho hay MDVRPTW là một mô hình toán thích hợp dể sử dụng [3]
Tuy nhiên, với mô hình toán với biến đa chiều như MDVRPTW thì việc tính toán chính xác ra lời giải tối ưu là vô cùng khó và đòi hỏi nguồn lực lớn Điều này không thực sự tương thích với việc vận hành của nhiều doanh nghiệp và chỉ cần tìm được một lời giải đủ tốt đã đáp ứng yêu cầu của họ Đối tượng nghiên cứu của luận văn này là một công ty giao hàng chặng cuối yêu cầu việc giao hàng được thực hiện trong 6 giờ kể từ lúc nhận được nhu cầu Hiện tại, công ty có mong muốn cải thiện chất lượng dịch vụ giao hàng đúng thời điểm nhưng vẫn đảm bảo được tính tối ưu trong chi phí vận chuyển Cân nhắc về đặc trưng trong vận hành của doanh nghiệp, luận văn hình thành đề tài: “Nghiên cứu ứng dụng giải thuật
3 Simulated Annealing vào tối ưu hóa hoạch định tuyến đường của một công ty giao hàng chặng cuối”.
Mục tiêu nghiên cứu
Mục tiêu chính của đề tài luận văn này là nghiên cứu xây dựng mô hình toán tối ưu phù hợp cho hoạt động ghép chuyến với mong muốn cải thiện chất lượng dịch vụ và cho được lời giải tối ưu Thêm vào đó, luận văn sẽ thực hiện việc phân tích đánh giá kết quả của mô hình giải pháp qua hai yếu tố chính: chất lượng lời giải và độ chính xác của giá trị hàm mục tiêu.
Phạm vi nghiên cứu
Phạm vi đối tượng: Công ty giao hàng chặng cuối quy mô nội thành TP.HCM Do đề tài xét đến chi phí vận chuyển nên đối tượng chính của luận văn này là bộ phận vận hành của công ty Bài toán tập trung vào quá trình xây dựng mô hình và tìm lời giải, bỏ qua một số yếu tố bất định ảnh hưởng đến quá trình vận chuyển như thời tiết, giao thông…
Phạm vi nội dung: Nghiên cứu ứng dụng giải thuật SA vào việc giải mô hình MDVRPTW và chỉ xem xét trong quá trình hoạch định tuyến đường, chưa xét đến hoạt động vận chuyển thực tế
Phạm vi bộ dữ liệu thử nghiệm mô hình: Các đơn hàng thuộc một khung giờ trong ngày của công ty Các bộ dữ liệu dùng cho việc đánh giá và kiểm nghiệm mô hình sẽ được trích từ bộ dữ liệu trên.
Cấu trúc luận văn
Nối tiếp chương này, Chương 2 sẽ trình bày sơ lược về các cơ sở lý thuyết liên quan và phương pháp luận của luận văn Chương 3 giới thiệu khái quát về đối tượng nghiên cứu và tìm hiểu hiện trạng vận hành của đối tượng, từ đó xác định vấn đề công ty đang gặp phải và đề xuất giải pháp phù hợp Chương 4 tiến hành xây dựng chi tiết mô hình giải pháp Chương
5 thực hiện đánh giá tính đúng và chất lượng của giải pháp Cuối cùng là chương 6 ghi nhận lại kết quả đạt được của luận văn cũng như những điểm cần cải thiện và bàn luận về những hướng cải tiến, nghiên cứu trong tương lai
CƠ SỞ LÝ THUYẾT - PHƯƠNG PHÁP LUẬN
Cơ sở lý thuyết
2.1.1 Bài toán hoạch định tuyến đường MDVRPTW
Trong hơn hai thập kỷ qua, có rất nhiều nghiên cứu liên quan đến việc hoạch định đường đi trên một mạng lưới “one – to – all” cho các bài toán vận chuyển Mạng lưới này là mô hình mà hàng hóa được vận chuyển từ một nhà kho đến tất cả địa điểm khách hàng bằng phương tiện vận tải và phương tiện sẽ quay trở về kho sau khi kết thúc chuyến đi của nó Hình 2.1 bên dưới là ví dụ đơn giản của sơ đồ mạng lưới one-to-all
Hình 2.1 Mạng lưới phân phối one-to-all
Một mô hình phổ biến và được sử dụng nhiều nhất là Vehicle Routing Problem Đây là mô hình toán tối ưu hóa tổ hợp cơ bản được nghiên cứu với mục đích ban đầu là hoạch định ra tuyến đường đi qua tất cả các điểm cần đến mà quãng đường di chuyển là ngắn nhất Với khái niệm đơn giản như vậy nhưng VRP là một bài toán NP-hard, tức nó là một bài toán đúng có thể tìm được lời giải nhưng vẫn rất khó để giải kể cả bằng máy tính
VRP thường xuất hiện trong các hệ thống điều phối, hoạch định tuyến đường trong một không gian ràng buộc Mô tả một cách cơ bản [3], bài toán VRP xác định một tập hợp G gồm các cung đường A , đi qua tất cả khách hàng trong tập khách hàng C và quay lại điểm xuất phát - thường là một kho bãi Mỗi khách hàng có một nhu cầu tải hàng q i nhất định Chi phí và khoảng cách di chuyển từ khách hàng i đến j lần lượt là c ij (thường quy về khoảng cách) và d ij Hệ thống có k xe với mỗi xe chở hàng được gán các cung đường A và có giới hạn về năng lực tải Q Mục tiêu của mô hình này là cực tiểu tổng quãng đường di chuyển của đội xe Dựa
5 trên bài toán cơ bản này, các doanh nghiệp và nhà nghiên cứu đã phát triển nó lên các biến thể phù hợp với thực tế hơn
VRPTW là bài toán VRP mở rộng có thêm ràng buộc về thời gian ở mỗi điểm đến Tại mỗi khách hàng, ngoài ràng buộc về nhu cầu (thường là lượng hàng hóa) còn có hai giới hạn dưới e i và trên l i của thời gian mong muốn được phục vụ Mỗi khách hàng phải được phục vụ bởi một xe trong thời gian trước l i , nếu đến sớm hơn e i thì xe phải chờ một khoảng thời gian w i nhưng không vượt quá một mức quy định (nếu có) Ràng buộc thời gian này được gọi là
“cứng” nếu như vi phạm nó thì bị phạt và thường không được để vi phạm, ngược lại được gọi là ràng buộc “mềm” Đối với bài toán có ràng buộc cứng, khi đưa vào mô hình toán, người ta thường đặt nó trong phần ràng buộc bắt buộc phải thỏa mãn Một cách làm khác và cũng là cách được áp dụng cho ràng buộc “mềm” là thêm một chi phí phạt vào hàm mục tiêu Và do chi phí này thường khá lớn nên với bài toán có mục tiêu cực tiểu chi phí vận chuyển người ta sẽ tránh vi phạm đến mức tối đa VRPTW phù hợp cho việc ứng dụng trong hoạt động đòi hỏi tính đúng giờ như hoạt động chuyển phát nhanh, xe buýt đưa đón học sinh/nhân viên, tuần tra, cứu hộ và tiếp tế trong thiên tai…
MDVRP là bài toán VRP mở rộng với nhiều điểm xuất phát hơn Tại đây bài toán có tập hơp gồm d điểm xuất phát (kho), mỗi điểm xuất phát có K d xe Với mục tiêu của MDVRP thường là cực tiểu tổng quãng đường di chuyển như bài toán VRP cơ bản hoặc thời gian cung cấp dịch vụ đến cho mọi khách hàng [4]
MDVRPTW là sự kết hợp giữa VRPTW và MDVRP Đồng thời, nó cũng là bài toán NP-hard phức tạp hơn hai biến thể gốc của nó bởi càng ràng buộc thực tế bao nhiêu thì bài toán càng khó giải bấy nhiêu Bài toán đặt ra có nhiều điểm xuất phát, một đội xe, một tập khách hàng với ràng buộc về khung thời gian cần phục vụ
2.1.2 Hướng tiếp cận bài toán
Như những bài toán NP-hard khác, tìm lời giải tối ưu toàn cục bằng phương pháp liệt kê tất cả lời giải đòi hỏi nhiều thời gian và nguồn lực tính toán Chính vì vậy, các phương pháp tìm kiếm lời giải đủ tốt sẽ được ưu tiên lựa chọn nhằm giải bài toán này
Trong nghiên cứu A Hierarchical Hybrid Meta-Heuristic Approach to Coping with Large Practical Multi-Depot VRP của Shimizu & Sakaguchi [5], nhằm cực tiểu tổng chi phí logistics cho bài toán mở nhiều kho, tác giả đề xuất mô hình thứ bậc biến bài toán MDVRP thành các bài toán VRP trên từng kho Nghiên cứu này giải bài toán bằng cách kết hợp saving method, giải thuật Tabu search và Minimum-cost flow, một tổ hợp các giải thuật heuristic thay
6 vì giải thuật chính xác Theo như kết quả của nghiên cứu, dữ liệu với kích thước (10 kho -
1000 khách hàng) có thời gian tính toán là 4,28 giờ và cho lời giải cải thiện lên đến 32.79% so với hiện trạng Điều này cho thấy, tuy bài toán được biến đổi và vùng không gian lời giải bị thu hẹp lại, kết quả cho ra vẫn rất khả quan
Như đã trình bày, MDVRPTW là bài toán MDVRP mở rộng nên tương tự với nghiên cứu trên, thay vì giải trực tiếp bài toán MDVRPTW, luận văn đề xuất thực hiện giải qua hai bước được thể hiện như trong Hình 2.2 Đầu tiên bài toán sẽ phân bố cụm các kho - khách hàng; sau đó áp dụng mô hình tối ưu VRPTW cho từng cụm kho - khách hàng
Hình 2.2 Hướng tiếp cận phân cụm trước, định tuyến sau
Tuy mô hình đã được đơn giản hóa, nhưng việc giải bài toán VRPTW vẫn được nhận xét là khó giải bằng giải thuật chính xác, đặc biệt là khi số lượng khách hàng tại mỗi kho lớn Gần đây, các nghiên cứu sử dụng giải thuật heuristics và metaheuristics nhằm giải bài toán trên xuất hiện khá nhiều Trong nghiên cứu so sánh 3 giải thuật Simulated Annealing, Genetic Algorithm và Ant Colony Optimization ứng dụng vào giải bài toán định tuyến của Sharad N Kumbharana & Gopal M Pandey [6] và Anna Maria Sri Asih, Bertha Maya Sopha & Gilang Kriptaniadewa [7] Bằng các bộ dữ liệu với kích thước khác nhau, hai nghiên cứu so sánh các giải thuật qua giá trị hàm mục tiêu, khả năng hội tụ kết quả và thời gian tính toán Ưu điểm và nhược điểm của các giải thuật khi so sánh với nhau được trình bày tóm tắt trong Bảng 2.1 Trong nghiên cứu của Anna Maria Sri Asih, PSO cũng được đưa vào để so sánh đánh giá
7 nhưng giải thuật này không thật sự nổi bật sao với 3 giải thuật còn lại Thêm vào đó, qua tính toán trong một ví dụ thực tế với 2 kho - 142 khách hàng trong bài báo của Anna, số liệu cho thấy rằng giải thuật SA cho kết quả cải thiện cao nhất giảm hơn 30% quãng đường di chuyển [7] Tuy nhiên, khi đánh giá qua độ hữu dụng của phương tiện giao hàng, ACO cho kết quả cao với độ hữu dụng xe hơn 90% và SA xếp thứ nhì với độ hữu dụng gần bằng 90% Dựa trên
2 tiêu chí này, SA và ACO thể hiện sự vượt trội hơn hẳn so với PSO và GA
Bảng 2.1 So sánh giải thuật tìm kiếm tối ưu
Giải thuật Ưu điểm Nhược điểm
- Là giải thuật tìm kiếm lân cận đầu tiên có khả năng thoát ly khỏi vùng tối ưu cục bộ
- Tính toán đơn giản nên có thể quét vùng lời giải lớn nhanh chóng
- Về mặt lý thuyết, SA chắc chắn tìm được lời giải tối ưu (với điều kiện đủ nguồn lực tìm kiếm)
- Với bài toán quy mô nhỏ và khi số lần lặp chưa đủ lớn, SA cho ra kết quả khá ngẫu nhiên
- Không lưu lại lời giải tốt nhất trong suốt quá trình tìm kiếm tối ưu
- Hội tụ lời giải đòi hỏi phải trải qua nhiều lần lặp nhất so với giải thuật khác
- Phụ thuộc vào chất lượng lời giải ban đầu rất nhiều
- Tính nhớ lời giải/đặc tính tốt của lời giải thông qua việc sử dụng pheromone mà mỗi con kiến để lại mỗi lần đi tìm nguồn thức ăn
- Thời gian giải bài toán và chất lượng lời giải nằm giữa 2 giải thuật SA và
- Có khả năng thích nghi với sự thay đổi lớn của mạng phân phối
- Dễ dàng kết hợp với các giải thuật khác
- Tính nhớ cũng là điểm yếu khiến cho lời giải bị cục bộ nếu pheromone trên một đường đi quá dày từ những lần lặp đầu tiên
- Cho lời giải tốt hơn theo thời gian và lời giải cuối cùng tốt hơn các giải thuật được so sánh
- Phù hợp với các bài toán đa mục tiêu, vùng lời giải lớn
- Nhiều thông số điều khiển giúp cho giải thuật có thể tìm kiếm được nhiều không gian lời giải hơn
- Đòi hỏi hàm mục tiêu được định nghĩa rõ ràng nhằm tránh tối ưu cục bộ
- Yêu cầu quần thể ban đầu đủ lớn, đủ đa dạng nhằm tránh tối ưu cục bộ Vì thế, để có lời giải tốt cho bài toán quy mô lớn (trên 50 điểm), giải thuật đòi hỏi thời gian rất dài để hội tụ đến lời giải tối ưu
- Tính toán phức tạp, không phù hợp cho bài toán có tính chất hay thay đổi
- Có thể đánh mất gen tốt nếu điều khiển các thông số không tốt
- Ở các bài toán nhỏ, PSO cho kết quả tối ưu tốt hơn và thời gian tính toán khá tương đồng với ACO
- Thời gian tính toán nhanh, chỉ sau
- Khi quy mô bài toán tăng lên, PSO cho kết quả kết quả không tốt bằng cả
3 giải thuật được so sánh do hội tụ sớm
Giải thuật Simulated Annealing là một giải thuật heuristics được sử dụng nhiều trong các bài toán tối ưu, là phương pháp tối ưu hoá có thể áp dụng để tìm kiếm lời giải tối ưu toàn cục và tránh tối ưu hoá cục bộ bằng việc chấp nhận một lời giải tệ hơn [8]
Phương pháp luận
Đề tài này được thực hiện thông qua 6 bước như sau:
Bước 1: Tìm hiểu về đối tượng nghiên cứu
Trước hết, cần phải quan sát và tìm hiểu công ty về sản phẩm/dịch vụ, đối tượng khách hàng và hoạt động chung Từ đó đi đến từng bộ phận và nắm được quy trình, tình trạng của công ty
Bước 2: Xác định bài toán
Khi nắm được hiện trạng của công ty, đề tài sẽ đi sâu hơn vào các phân tích, xác định vấn đề cốt lỗi và tìm hiểu nguyên nhân Sau đó đề xuất giải pháp cho vấn đề đặt ra Đặt mục tiêu nghiên cứu, các ràng buộc, giới hạn tồn tại của đề tài và tiêu chí đánh giá mô hình
Bước 3: Xây dựng mô hình giải pháp
Dựa trên các thông tin thu thập từ hai bước trên xây dựng hàm mục tiêu, các thông số và ràng buộc một cách định lượng cho phù hợp với bài toán cần giải quyết
Bước 4: Thu thập số liệu
Công việc cần thực hiện tiếp theo là thu thập các số liệu mà mô hình cần có để chuẩn bị cho việc chạy thử mô hình và đánh giá kết quả
Bước 5: Kiểm định mô hình
Vận hành thử mô hình trên bộ dữ liệu mẫu và so sánh kết quả lời giải với kết quả trước khi áp dụng mô hình theo các tiêu chí đặt ra
Bước 6: Đánh giá kết quả và kết luận
Cuối cùng là đánh giá hiệu quả của mô hình, sự đáp ứng của đề tài trên mục tiêu đề ra và có những kết luận cụ thể về đề tài nghiên cứu này
Hình 2.3 Phương pháp luận của đề tài
XÂY DỰNG MÔ HÌNH GIẢI PHÁP
Xác định giải pháp
Mô hình giải pháp được xây dựng dựa trên những đặc điểm của vấn đề và mục tiêu nghiên cứu Sau phân tích trong chương trước, các đặc tính của hệ thống phân phối của công ty được tổng hợp như sau:
- Phân phối theo 2 bước phân cụm trước định tuyến sau
- Mạng phân phối tại từng kho theo kiểu one-to-all
- Nhu cầu ngẫu nhiên về địa điểm, số lượng theo khung giờ yêu cầu của đối tác
- Mỗi khách hàng có nhu cầu về khung thời gian giao hàng riêng Mong muốn đáp ứng nhu cầu này đem lại lợi ích cho cả đối tác và tài xế
- Mỗi cung đường từ kho đến khách hàng và giữa các khách hàng có một thông số về khoảng cách và một thông số về thời gian di chuyển và phục vụ
- Công ty có đội xe máy xem như giống nhau về chức năng, năng lực Số lượng xe rất nhiều do công ty có tập vài trăm tài xế tự do sẵn sàng
- Giao hàng trong 6 giờ kể từ lúc đơn được tạo và nhận
- Chi phí được xét đến chỉ gồm chi phí di chuyển mà đối tác trả cho công ty
- Độ hiệu quả trong việc giảm chi phí vận chuyển
Bảng 4.1 Yêu cầu được đặt ra cho giải pháp Đặc điểm của hệ thống định tuyến Yêu cầu đặt ra cho giải pháp
Phân cụm trước định tuyến sau
Xác định cách phân bố điểm giao hàng về kho và tuyến đường giao hàng cho từng xe hướng đến cực tiểu tổng chi phí di chuyển Mạng phân phối tại từng cụm kiểu one-to-all
Chi phí được xét đến trong mô hình chỉ gồm chi phí di chuyển
Mỗi khách hàng có nhu cầu về khung thời gian giao hàng cần được đáp ứng
Giao hàng trong 6 tiếng từ lúc tạo đơn Đội xe tự do, số lượng lớn, tải trọng như nhau Độ hiệu quả trong việc giảm chi phí di chuyển
Nhu cầu ngẫu nhiên về địa điểm, số lượng theo từng khung giờ nhưng được quy đổi tải trọng bằng nhau Áp dụng hàng ngày, nhiều lần trong ngày và trong thời gian cho phép Cho kết quả cải thiện so với hiện trạng
Từ những đặc điểm và tình hình thực tế của đối tượng nghiên cứu, mục tiêu bài toán là xây dựng được một giải pháp hoạch định tuyến đường phân phối hiệu quả bao gồm việc xác định cách phân bố điểm giao hàng về kho và tuyến đường giao hàng cho từng xe hướng đến cực tiểu tổng chi phí di chuyển bỏ ra Mô hình này sẽ được đánh giá mức hiệu quả bằng cách áp dụng và so sánh với bộ dữ liệu trong quá khứ Những yêu cầu được đặt ra cho giải pháp được trình bày cụ thể như trong Bảng 4.1
Thông qua việc tìm hiểu các nghiên cứu liên quan đã đề cập trước mô hình giải pháp với công cụ hỗ trợ phù hợp nhất được đưa ra như sau:
- Phân bố các điểm giao hàng về các kho theo tiêu chí phù hợp với việc tối ưu mục tiêu định tuyến thay cho cách vận hành hiện tại
- Xây dựng mô hình toán định tuyến VRPTW phù hợp với đối tượng nghiên cứu
- Kết hợp giải thuật SA vào tìm kiếm lời giải tối ưu
- Lập trình chương trình bằng ngôn ngữ Python
Xây dựng mô hình
4.2.1 Giới thiệu môi trường lập trình Google Colaboratory
Google Colaboratory, gọi tắt là Colab, là một trong nhiều sản phẩm miễn phí hoặc trả phí của Google Colab cho phép người dùng lập trình và chạy và thực hiện lệnh Python trong môi trường notebook trên trình duyệt web Các ưu điểm nổi bật phải nhắc đến khi sử dụng Colab là:
- Không quá chú trọng vào cấu hình của máy tính được dùng
- Chương trình chạy trên CPU, GPU khá lớn của Google Mặc dù, phiên bản miễn phí có giới hạn về dung lượng phần cứng nhưng vẫn có hiệu suất khá tốt Người dùng có thể trả phí để nâng cấp năng lực phần cứng và các tính năng khác
- Dễ dàng thao tác và chia sẻ tệp Nhưng trong môi trường doanh nghiệp thì đây là một vấn đề cần chú ý do liên quan đến bảo mật thông tin
Chương trình lập trình cho bài toán được tóm tắt như trong Hình 4.1 Sau khi các gói chức năng tích hợp được dùng trong lập trình được cài đặt và khai báo, chương trình sẽ đọc dữ liệu đầu vào từ các tệp dữ liệu excel đã qua xử lý cho phù hợp để thao tác trên Colab Bài
24 toán sẽ trải qua 2 phần nội dung chính như đã trình bày: Phâm cụm khách hàng và tối ưu hóa cho từng cụm Trong chương này, luận văn sẽ trình bày ý tưởng và nội dung các bước tính toán của giải pháp Các đoạn mã lập trình cụ thể được trình bày đầy đủ trong Phụ lục A
Hình 4.1 Lưu đồ tóm tắt thuật toán lập trình 4.2.3 Phân cụm điểm giao hàng
Hiện tại các kho được sử dụng riêng cho việc tập kết, phân phối hàng theo các quận được giao Như trình bày, cách làm này tuy dễ dàng thực hiện và quản lý hơn nhưng có phần không tối ưu trong việc tạo ra các chuyến đi tối ưu về mặt khoảng cách Để giải quyết vấn đề này, luận văn đề xuất một cách quản lý khác nhằm giảm khoảng cách di chuyển Với đầu vào là tọa độ của các kho và khách hàng, luận văn sử dụng khoảng cách địa lý mặt cầu tính bằng gói chức năng vincenty trong lập trình Python nhằm xác định khoảng cách từ các kho đến tất
25 cả khách hàng Khoảng cách này được đánh giá là có độ chính xác gần như tuyệt đối do sử dụng phương pháp Vincenty và dữ liệu từ hệ thống trắc địa thế giới 4 Bằng khoảng cách tương đối trên, ta phân bố các điểm khách hàng về kho gần nhất
Mô hình bài toán được tham khảo chính từ chương 3 của Brian Kallehauge, Jesper Larsen, Oli B.G Madsen & Marius M Solomon[3] Xét một mạng phân phối cung cấp hàng hóa từ mỗi kho đến tập khách hàng của kho đó Lời giải của bài toán VRPTW được xác định bằng một hàm đồ thị G = (V, A) Trong đó:
Các thông số đầu vào
- C = {1, 2,…, n} là tập khách hàng mà công ty phải phục vụ
- V = {0, 1, 2,…, n, n+1} là tập tất cả các điểm trong mạng phân phối, trong đó, kho được đại diện bởi 0 (điểm bắt đầu) và n+1 (điểm kết thúc)
- A = {( i, j ) | ( i, j ) ∊ V, i ≠ n+1, j ≠ 0} là tập hợp các cung đường di chuyển từ i sang j
- Nhu cầu tại khách hàng thứ i là q i với khung thời gian quy định [ e i , l i ], ∀i ∊ C
- Tham số khoảng cách di chuyển từ i đến j được tính theo khoảng cách trên mặt cầu d ij ,
- Tham số thời gian t ij , ∀ (i, j) ∊ A và i ≠ j là thời gian cần thiết để di chuyển từ i đến j đã bao gồm thời gian phục vụ tại khách hàng j Thời gian di chuyển được tính một cách tương đối bằng khoảng cách di chuyển chia cho tốc độ di chuyển Thời gian phục vụ gồm liên lạc và giao nhận hàng được ước lượng khoảng 15 phút theo các khảo sát từ trước của công ty
- Chi phí vận chuyển đơn vị M
- Kho có đội xe K với năng lực như nhau và bằng Q
- Thời gian hoạt động của kho là [ e 0 , l 0 ]
Bài toán có 2 tập hợp quyết định x ijk và s ik
- Với mỗi cung đường (i , j) ∊ V , i ≠ j và xe k ∊ K(d) :
𝑥 𝑖𝑗𝑘 = {1, xe k di chuyển trực tiếp từ i đến j
1 Nguồn: https://pypi.org/project/vincenty/
- Với mỗi khách hàng i và xe k , s ik là thời điểm xe thứ k bắt đầu phục vụ khách hàng i
Nếu e 0 = 0 thì s 0k = 0 Nếu xe k không phục vụ khách hàng i thì gái trị s ik không mang ý nghĩa
Hàm mục tiêu bài toán:
- Hàm mục tiêu (4.1) cực tiểu tổng chi phí của mạng phân phối
- Ràng buộc (4.2) thể hiện mỗi khách hàng được đi qua đúng bởi một xe duy nhất
- Ràng buộc (4.3) được đặt ra nhằm đảm bảo năng lực tải của xe trong suốt chuyến đi
- Ràng buộc (4.4), (4.6) thể hiện mỗi xe đều phải xuất phát từ kho và kết thúc tại kho
- Ràng buộc (4.5) buộc xe đi đến khách hàng nào thì phải rời khỏi khách hàng đó
- Ràng buộc (4.7), (4.8) buộc thời gian phục vụ khách hàng theo thứ tự trước sau và phải trong khung thời gian của các khách hàng
- Ràng buộc (4.9) quy định biến quyết định x ijk là biến nhị phân
4.2.5 Giải thuật tìm kiếm SA
Dựa trên những thông tin tìm hiểu về mô tả giải thuật SA trong phần cơ sở lý thuyết, để giải quyết một vài nhược điểm của giải thuật này (xem Bảng 2.1), luận văn tham khảo một số tài liệu và đưa ra một số phương án, hiệu chỉnh như sau:
4.2.5.1 Sự phụ thuộc vào chất lượng lời giải ban đầu
Quy trình tìm kiếm lời giải tối ưu của giải thuật SA bắt đầu từ việc tìm kiếm lời giải lân cận của lời giải ban đầu Nếu lời giải ban đầu được tạo một cách ngẫu nhiên sẽ không đảm bảo khả năng tìm đến lời giải tối ưu (ít nhất là trong điều kiện giới hạn về nguồn lực) Bên cạnh đó, việc xác định bộ thông số đầu vào cho giải thuật cũng trở nên không chính xác và khó kiểm soát Trường hợp lời giải ban đầu chưa đủ tốt, ta có thể bù đắp bằng việc hiệu chỉnh mô hình sao cho nó tìm kiếm nhanh hơn và tạo cơ hội thoát khỏi vùng tối ưu cục bộ Đối với doanh nghiệp mong muốn ứng dụng giải thuật vào vận hành, họ không bắt buộc giải thuật phải tìm được lời giải tối ưu mà cần một kết quả đủ tốt trong giới hạn nguồn lực cho phép Chính vì vậy, luận văn hướng đến tạo lời giải ban đầu có chất lượng phù hợp với hàm mục tiêu chính cực tiểu tổng quãng đường di chuyển
4.2.5.2 Hội tụ kết quả lời giải đòi hỏi phải trải qua nhiều lần lặp so với giải thuật khác
Trong mỗi vòng lặp, giải thuật SA truyền thống chỉ xác định một lời giải lân cận một cách ngẫu nhiên để so sánh với lời giải hiện tại nên giải thuật yêu cầu thời gian quét lớn Cách làm này có thể khiến cho việc tìm kiếm di chuyển sang một vùng lời giải khác trong khi vẫn chưa xác định hết khả năng tồn tại lời giải tốt hơn trong vùng hiện tại Thay vì mỗi vòng lặp chỉ quét và tìm một lời giải duy nhất, luận văn đề xuất quá trình tìm kiếm lân cận được mở rộng ra nhiều lời giải trong một vòng lặp và chọn ra lời giải tốt nhất trong đó để đánh giá với lời giải hiện tại với mong muốn nâng cao khả năng hội tụ lời giải
4.2.5.3 Không lưu lại lời giải tốt nhất trong suốt quá trình tìm kiếm tối ưu
Về mặt lý thuyết giải thuật SA có khả năng tìm được tối ưu toàn cục nhưng nó không có khả năng đánh giá lời giải có phải là tối ưu toàn cục hay không Nên việc không lưu lại kết quả tốt nhất là một nhược điểm chí mạng của giải thuật này
Lấy hình 4.2 làm ví dụ, giải thuật đã xác định được E là lời giải tốt nhất cho đến hiện tại Với đặc trưng sử dụng xác suất chấp nhận lời giải tệ hơn, giải thuật di chuyển đến B
28 nhưng không lưu vết lại lời giải E Sau khi đạt điều kiện dừng, giải thuật hoàn toàn có thể dừng lại tại lời giải F, A hoặc một vị trí nào đó gần với nhưng không phải E
Ví dụ tính toán minh hoạ
Để thuận lợi trong việc mô tả giải pháp, một bộ dữ liệu được khởi tạo ngẫu nhiên với mục đích làm ví dụ minh họa cho các bước tính toán Bộ dữ liệu gồm 2 kho và 20 khách hàng, trong đó tọa độ các khách hàng và các kho lần lượt nằm trong vùng hình chữ nhật không gian 2 chiều (1, 1)-(100, 100) và (25, 25)-(75, 75) Bảng 4.2 - 4.3 là thông tin các điểm dữ liệu được khởi tạo một cách ngẫu nhiên trong Excel bao gồm trên tọa độ và khung thời gian phục vụ Hình 4.3 biểu diễn vị trí các kho và khách hàng của bộ dữ liệu trên mặt phẳng hai chiều
Bảng 4.2 Thông tin khách hàng của bộ dữ liệu mẫu
S0 ← Initial solution generated with Greedy algorithm
Tk = ɣ(k) ← Temperature function n ← Maximum loop at each temperature level stop ← Stop criteria
# Process best = S now = S0 current_loop = 0 k = 0
Generate and select best neighbor candidate Sk ΔE = E(Sk) - E(now)
If E(Sk) < E(best): best = Sk now = Sk
Else if E(Sk) < E(now): now = Sk
Else if e -ΔE/T > r: now = Sk # r ∊ U(0,1) current_loop = current_loop + 1 k = k+1
Bảng 4.3 Tọa độ các kho của bộ dữ liệu mẫu
Hình 4.3 Vị trí các kho và khách hàng của bộ dữ liệu mẫu 4.3.1 Phân cụm khách hàng - Tạo dữ liệu đầu vào cho giải thuật SA
Với bộ dữ liệu mẫu, luận văn sử dụng công thức tính khoảng cách Euclid được đề cập nhằm phân cụm khách hàng Sau phân cụm, có 11 khách hàng được phân bổ về kho số 1, có
9 khách hàng được phân bổ về kho số 2 như trong Bảng 4.4 và Hình 4.4
Bảng 4.4 Kết quả phân cụm của bộ dữ liệu mẫu
PHÂN CỤM KHO 1 PHÂN CỤM KHO 2 Điểm x y e i l i Điểm x y e i l i
LOCATION OF CUSTOMERS AND DEPOTS
Hình 4.4 Kết quả phân cụm của bộ dữ liệu mẫu
4.3.2 Khởi tạo lời giải ban đầu
Luận văn sẽ sử dụng nhóm khách hàng của kho thứ 2 để tính toán minh họa cho phần này Đoạn mã giả sau mô tả quá trình áp dụng giải thuật Greedy vào bài toán
32 Theo đó, chương trình khởi tạo lời giải ban đầu theo giải thuật giải thuật Greedy với hàm mục tiêu là cực tiểu quãng đường di chuyển của mỗi chuyến trong khi đánh giá tính khả thi về khung thời gian của điểm giao được thêm vào Giải thuật được thực hiện như sau:
- Với mỗi xe k, đầu tiên ta xác định tập khách hàng F mà xe phải chờ hoặc có thể phục vụ họ ngay khi di chuyển từ vị trí hiện tại đến đó
- Nếu tồn tại tập khách hàng F’ từ F có thể phục vụ ngay, ta chọn điểm có vị trí gần nhất với vị trí hiện tại Trường hợp không có khách hàng sẵn sàng nhận phục vụ, ta sẽ gán khách hàng có khung thời gian gần nhất với thời điểm hiện tại cho xe (nếu có) Sau mỗi lần chọn được khách hàng để gán cho xe, ta kiểm tra ràng buộc năng lực tải C để xác định ngừng hay tiếp tục định tuyến cho xe hiện tại
- Trường hợp không có khách hàng nào thỏa ràng buộc khung thời gian, ta dừng định tuyến cho xe hiện tại và tiếp tục định tuyến cho xe kế đến khi không còn khách hàng nào để phục vụ
- Một số thông số sau được đặt ra để giải bài toán mẫu:
- Các điểm giao có tải trọng như nhau và bằng 1
- Kho có 5 xe sẵn sàng với năng lực vận chuyển được tối đa 3 đơn hàng
- Luận văn sử dụng công thức Euclid để tính khoảng cách d ij giữa các điểm
Set route P k = [ ] Capacity C k = 0 Current node i = 0 Timer T i = 0
If C k = Max capacity, go to Step 4 Else determine all traversable nodes: F = { j ∉ D | T i + tij ≤ lj & T i + tij + tj0 ≤ l0 }
If F = ỉ, go to Step 4 Otherwise, continue to Step 2 STEP 2:
Determine if any nodes from F are ready on arrival: F’ = { j ∈ F | T + tij ≥ ej }
If F’ ≠ ỉ, select the one closet to current node i
T i ← T i + tij P k ← j D ← j C k ← C k + 1 and Back to Step 1 Else go to Step 3
Choose the earliest nodes in F
T i ← ej P k ← j D ← j C k ← C k + 1 and Back to Step 1
- Giả sử thời gian tốc độ di chuyển là 5 đơn vị khoảng cách (đvkc) trên 1 đơn vị thời gian (đvtg) và thời gian phục vụ tại mỗi khách hàng là 5 đvtg Thời gian di chuyển từ i đến j là t ij = d ij / 5 (đvtg)
Với thông tin trên, ma trận khoảng cách và ma trận thời gian giữa các điểm dữ liệu được tính và cho kết quả như Bảng 4.5 - 4.6
Bảng 4.5 Ma trận khoảng cách của phân cụm 2 Điểm Ma trận khoảng cách (đvkc)
Bảng 4.6 Ma trận thời gian của phân cụm 2 Điểm Ma trận thời gian (đvtg)
Tập khách hàng đã được bố trí xe D = {} Tập các chuyến xe S = [ ]
Bắt đầu với xe k = 1, ta có:
Hành trình P1 = [0] Tải hiện tại C1 = 0
Vị trí hiện tại i = 0 (kho) Đồng hồ Ti = 0
Bước 1: C1 < 3, xe chưa đạt giới hạn về năng lực tải nên ta xác định tập khách hàng nằm trong khả năng phục vụ F Với mỗi khách hàng cần kiểm tra 2 điều kiện Điều kiện cần là thời điểm Tj sau khi di chuyển từ i đến j phải bé hơn thời điểm đóng khung thời gian lj Điều kiện đủ là sau khi di chuyển từ khách hàng j về kho phải trước thời điểm đóng kho l0 Kết quả tớnh toỏn được trỡnh bày như bảng 4.7 Do F ≠ ỉ, nờn ta đến bước 2 i = 0 T i = 0 l 0 =
Bước 2: Xác định các điểm trong tập F mà khi di chuyển đến đó thì Tj > ej Từ Bảng 4.7, xác định được F = {3} không là tập rỗng nên ta chọn điểm gần nhất với i thêm vào hành trình của xe 1 và cập nhật các biến Ti = 11.82, P1 = [0, 3], C1 = 1, D = {0, 3} và về bước 1
Bước 1, 2 (lần 2): C1 < 3 i = 3 T i = 11.82 l 0 = 45 Điểm e j l j T j = T i + t ij T 0 = T i + t ij + t j0 F F'
F’ = {10, 14} Do di,14 < di,10 (35.61 < 70.34) nên chọn điểm số 14
Bước 1, 2 (lần 3): C1 < 3 i = 14 T i = 23.94 l 0 = 45 Điểm e j l j T j = T i + t ij T 0 = T i + t ij + t j0 F F'
F = ỉ nờn ta kết thỳc định tuyến cho xe 1 và cập nhật lời giải S = [P1 = [0, 3,14, 0]] Do vẫn chưa định tuyến cho tất cả các khách hàng nên ta chuyển sang định tuyến tiếp cho xe số
Hành trình P2 = [0] Tải hiện tại C2 = 0
Vị trí hiện tại i = 0 (kho) Đồng hồ Ti = 0
Bước 1, 2 (lần 1): C2 < 3 i = 0 T i = 0 l 0 = 45 Điểm e j l j T j = T i + t ij T 0 = T i + t ij + t j0 F F'
F = {8, 9, 10, 12, 15, 18, 20}, F’ = ỉ nờn ta chọn điểm cú ei nhỏ nhất Tuy nhiờn, điểm số 9 và 12 có ei như nhau nên ta chọn ngẫu nhiên Giả sử chọn điểm số 12
Bước 1, 2 (lần 2): C2 < 3 i = 12 T i = 9 l 0 = 45 Điểm e j l j T j = T i + t ij T 0 = T i + t ij + t j0 F F'
F’ = {9, 15, 18, 20} nên ta chọn điểm số 20 do có khoảng cách nhỏ nhất
Bước 1, 2 (lần 3): C2 < 3 i = 20 T i = 18.80 l 0 = 45 Điểm e j l j T j = T i + t ij T 0 = T i + t ij + t j0 F F'
F’ = {10} nên ta chọn điểm số 10 duy nhất
Do xe 2 đã đạt giới hạn năng lực tải nên ta kết thúc định tuyến cho xe số 2 và cập nhật lời giải S = [ [P1 = [0, 3,14, 0] , P2 = [0, 12, 20, 10, 0] ];
Tương tự cho các xe và khách hàng còn lại, ta được lời giải ban đầu cho phân cụm 2 như sau: S = [ P1 = [0, 3,14, 0] , P2 = [0, 12, 20, 10, 0] , P3 = [0, 9, 15, 0], P4 = [0, 18, 0] ]
4.3.3 Cải thiện lời giải qua giải thuật SA Đây là phần quan trọng nhất của giải thuật SA với 2 nội dung chính: cách thức khởi tạo lân cận, xác định điều kiện dừng và thông số đầu vào chính của giải thuật
4.3.3.1 Khởi tạo lời giải lân cận để so sánh với lời giải hiện tại
Trong quá trình tìm kiếm, giải thuật liên tục thay lời giải hiện tại bằng lời giải mới Và từ lời giải đó lại tìm kiếm sang những lời giải khác để so sánh với giá trị hàm mục tiêu hiện tại, từ đó mong muốn tìm được lời giải tối ưu cho bài toán Luận văn sử dụng cách khởi tạo lời giải lân cận cơ bản nhất là hoán đổi cặp Tuy nhiên, cách hoán đổi ngẫu nhiên thông thường và hoán đổi cập liền kề sẽ không phù hợp với bài toán VRPTW do nó sẽ hình thành
37 nhiều lời giải không khả thi dẫn đến hiệu suất tìm kiếm thấp Luận văn sẽ đề xuất cách thức hoán đổi như sau Xét tuần tự từng cặp 2 tuyến i và j trong lời giải S:
- Chọn ngẫu nhiên một khách hàng x từ tuyến j và tính khoảng trùng khung thời gian r(x,y) của x đến từng khách hàng y trong tuyến i
- Chọn ra khách hàng y có khoảng trùng lớn nhất
- Nếu r(x,y) > 0, thực hiện hoán đổi vị trí của x và y
Với cách làm này, quá trình tìm kiếm lân cận sẽ tăng số lượng lời giải tìm kiếm đồng thời chỉ cho hoán đổi những cặp điểm có khung thời gian tương đồng nhau giúp nâng cao tỷ lệ khả thi của lời giải lân cận Tuy nhiên, phương pháp này vẫn chưa xét đến trường hợp khoảng trùng r(x,y) = 0 Do sẽ tồn tại trường hợp tuy không có khoảng trùng nào, nhưng x có thể được chèn vào chuyến i Tuy không đảm bảo việc giảm khoảng cách di chuyển nhưng đó vẫn là một lời giải khả thi và là cơ hội chuyển vùng tìm kiếm Tham khảo nghiên cứu của Setareh Majidi [22], có thể thấy phương pháp xóa và chèn (remove and insert) phù hợp cho giải quyết trường hợp này nên luận văn đề xuất cách thực hiện như sau Nếu tuyến i có thể tải thêm đơn của khách hàng x, xóa khách hàng x ra khỏi tuyến j và xét 3 trường hợp:
- Nếu đơn hàng x có khung thời gian đóng sớm hơn giờ khởi hành của tuyến i thì ta chèn x vào đầu lịch trình của tuyến i
- Nếu đơn hàng x có khung thời gian mở trễ hơn giờ kết thúc đơn hàng cuối của tuyến i thì ta chèn x vào cuối lịch trình của tuyến i
- Trường hợp còn lại, ta chèn x vào vị trí sau khách hàng k có thời gian kết thúc gần với thời gian mở khung phục vụ của x
ĐÁNH GIÁ GIẢI PHÁP
Bộ dữ liệu và kế hoạch kiểm nghiệm
Bộ số liệu thu thập gồm 5 kho và 1262 điểm giao hàng (gọi là bộ dữ liệu D5) là nhu cầu trước khi ghép đơn lúc 9h ngày 04/05/2020 với các thông tin như trong Bảng 5.1-5.2 Thông tin khung thời gian của các khách hàng đã được biến đổi quy về số phút tính từ thời điểm đơn hàng được tạo bởi hệ thống của công ty Bên cạnh đó, để có cái nhìn trực quan về vị trí tương đối của các kho, trong Hình 5.1, các dấu vị trí màu vàng là vị trí của các kho được thể hiện qua bản đồ trên ứng dụng Google Earth
Sử dụng bộ dữ liệu này, luận văn sẽ đánh giá giải pháp qua tính đúng của chương trình qua việc thỏa các ràng buộc, các đề xuất của giải pháp và cuối cùng là chất lượng của lời giải
Bộ dữ liệu được sử dụng kiểm nghiệm được trình bày trong Bảng 5.3, trong đó 3 bộ S10, S20 và S50 được lấy ngẫu nhiên trong chính bộ dữ liệu gốc D5
Hình 5.1 Vị trí các kho trên bản đồ Google Earth
Bảng 5.1 Tọa độ và địa chỉ các kho
STT Vĩ độ Kinh độ Địa chỉ
1 10.739162 106.646194 301C Bến Bình Đông, Phường 14, Quận 8
2 10.749768 106.709767 37 Bế Văn Cấm, Phường Tân Kiểng, Quận 7
3 10.77491181 106.6713326 16A Lê Hồng Phong, Phường 12, Quận 10 (Kho Quận 3)
4 10.8051824 106.6175027 20/80-82-84 Bờ Bao Tân Thắng, P.Sơn Kỳ, Q.Tân Phú
5 10.7742305 106.6685752 16A Lê Hồng Phong, P.12, Q.10 (Kho Quận Phú Nhuận)
Bảng 5.2 Tọa độ và khung thời gian các khách hàng
STT Vĩ độ Kinh độ Khung thời gian bắt đầu Khung thời gian kết thúc
Bảng 5.3 Các bộ dữ liệu kiểm nghiệm mô hình
Bộ dữ liệu Thông số bài toán
S10: 1 kho - 10 điểm giao qi = 1, ∀i; Q = 3; thời gian phục vụ 5 phút; [ e 0 , l 0 ] = [0, 90] S20: 1 kho - 20 điểm giao qi = 1, ∀i; Q = 5; thời gian phục vụ 7 phút; [ e 0 , l 0 ] = [0, 120] S50: 1 kho - 50 điểm giao qi = 1, ∀i; Q = 8; thời gian phục vụ 10 phút; [ e 0 , l 0 ] = [0, 150] D5: 5 kho - 1262 điểm giao qi = 1, ∀i; Q = 8; thời gian phục vụ 15 phút; [ e 0 , l 0 ] = [0, 360]
Kiểm định tính đúng của chương trình lập trình
Để kiểm tra chương trình lập trình đúng và thực hiện được các tính toán mong muốn, luận văn sử dụng bộ dữ liệu S10, để kiểm chứng Qua dữ liệu đầu vào, ma trận khoảng cách, ma trận thời gian của S10 được đọc và tính toán bằng chương trình được trình bày trong các Bảng 5.4 - 5.5 - 5.6
Bảng 5.4 Dữ liệu kho và điểm giao của bộ dữ liệu S10 lat lng start end
Bảng 5.5 Ma trận khoảng cách của bộ dữ liệu S10 (Đơn vị: km)
Bảng 5.6 Ma trận thời gian của bộ dữ liệu S10 (Đơn vị: phút)
Sau khi đưa vào chương trình, kết quả định tuyến ban đầu bằng giải thuật Greedy và lời giải sau giải thuật của bộ dữ liệu S10 là:
Giá trị hàm mục tiêu: 79.424
Giá trị hàm mục tiêu: 70.643 Dựa vào kết quả trên, có thể nhận xét rằng giải thuật Greedy có thể khởi tạo các tuyến đường thỏa mãn ràng buộc về năng lực tải Q = 3 đơn hàng/tuyến và ràng buộc về khung thời gian Thêm vào đó, giải thuật SA được nhận định là có hiệu quả trong việc cải thiện lời giải ban đầu Trong ví dụ này, SA cải thiện được khoảng 8.781 km hay 11.06% so với lời giải ban
44 đầu Đồng thời, thông qua các thông số của bài toán có thể đối sánh được rằng tổng quãng đường di chuyển mà chương trình xuất ra là chính xác và thời điểm các khách hàng được phục vụ đều nằm trong khung thời gian của chúng
Qua đó, có thể kết luận được rằng chương trình đáp ứng được việc tính toán và cho ra lời giải khả thi Dựa trên cơ sở này, luận văn sẽ triển khai đánh giá chất lượng lời giải mà chương trình đưa ra.
Kiểm nghiệm hiệu quả giải pháp
Như kế hoạch đề ra, chương trình sẽ nhận 4 bộ dữ liệu và thực hiện tối ưu hóa bài toán định tuyến, mỗi bộ chạy 15 lần, mỗi lần 10 phút Trong đó, bộ số liệu thứ 4 sau khi chạy sẽ tạo thành 5 bộ dữ liệu đầu vào cho VRPTW
Bảng 5.7 Thống kê kết quả chạy kiểm nghiệm chương trình giải pháp
Lần chạy Kích thước đầu vào cho VRPTW
Tỷ lệ cải thiện 12.49% 15.75% 14.51% 17.77% 19.35% 15.02% 22.07% 14.97% Sai số 1.8281 4.9464 4.3868 0.3778 3.3347 1.8845 11.3673 3.4492
Số lời giải lân cận
45 Nhằm phân tích chất lượng lời giải cũng như hiệu quả tìm kiếm của giải thuật SA, các thông tin được thu thập, tính toán và trình bày trong Bảng 5.7 bao gồm:
- Giá trị hàm mục tiêu của lời giải ban đầu và 60 lần chạy chương trình (tổng cộng hơn 20 giờ chạy)
- Số lời giải lân cận được khởi tạo trong quá trình tìm kiếm trong 1 lần chạy
- Tỷ lệ cải thiện lời giải của giải thuật SA so với lời giải ban đầu
- Độ lệch chuẩn giá trị hàm mục tiêu của lời giải
Thống kê trong Bảng 5.7 cho thấy:
- Giá trị hàm mục tiêu không phụ thuộc vào số lượng điểm giao hàng mà phụ thuộc tính chất của bộ dữ liệu Lấy ví dụ hai trường hợp ở hai bộ dữ liệu S10 và S67 Qua Hình 5.2, có thể thấy các khách hàng của S10 (màu đỏ) phân bố rải rác và ở khoảng cách xa nhau, trong khi các khách hàng của S67 (màu xanh lá) tập trung ở một vùng Tuy bộ S67 có số khách hàng nhiều hơn nhưng giá trị hàm mục tiêu lại bé hơn Hơn thế nữa, thời gian di chuyển giữa các điểm phụ thuộc vào khoảng cách nên sẽ ảnh hưởng đến việc xác định hành trình mỗi tuyến đường Việc áp dụng cách phân cụm trong việc chia các khách hàng góp phần tạo bộ dữ liệu có tính tập trung hỗ trợ cải thiện tổng quãng đường di chuyển và giúp bố trí các tuyến đường thỏa ràng buộc thời gian dễ hơn
- Ứng dụng giải thuật Greedy vào khởi tạo lời giải ban đầu, chương trình và giải thuật tìm kiếm được lời giải có giá trị hàm mục tiêu có độ cải thiện thấp nhất là 12.49% với bộ dữ liệu S10, cao nhất là 22.07% với bộ dữ liệu S335 khách hàng Trung bình, giải thuật cải thiện được khoảng 16.5% so với lời giải đầu vào
- Trong 15 kết quả của bộ dữ liệu S10, hàm mục tiêu 70.64 km xuất hiện 7 lần, giá trị 68.27 km xuất hiện 3 lần, giá trị 65.72 km xuất hiện 2 lần Trong khi đó, các bộ dữ liệu khác không xảy ra tình trạng này Nguyên nhân có thể do số mẫu thu thập chưa đủ lớn để có thể thấy được toàn cảnh Tuy nhiên với dữ kiện hiện có, điều này có thể được giải thích bằng một giả thuyết mà nhiều nghiên cứu khác đặt ra cho SA là bộ dữ liệu càng nhỏ càng dễ gặp tối ưu cục bộ và phụ thuộc mạnh vào lời giải ban đầu Với số liệu quan sát được, giải pháp tránh tối ưu cục bộ từ sớm luận văn đề ra có hiệu quả đến mức độ nhất
46 định Cụ thể là từ 20 khách hàng trở lên, chương trình không hội tụ vào lời giải cục bộ
- Trong khoảng thời gian 10 phút, số lời giải lân cận khởi tạo được từ giải thuật cho các bộ số liệu là không ít và đều ở hàng triệu Trong cùng một khoảng thời gian chạy chương trình, quy mô bài toán càng lớn thì số lời giải được khởi tạo càng ít và có xu hướng giảm theo hàm mũ Kết hợp với nhận xét trước đó, có thể rút ra rằng số lượng lời giải lớn không chắc sẽ cho lời giải tốt (trường hợp bộ dữ liệu S10) Do số điểm dữ liệu càng ít thì vùng không gian lời giải cũng càng nhỏ, nên việc có số lượng lời giải lân cận lớn như thu thập được là do nhiều lời giải được khởi tạo trùng lặp
Hình 5.2 Các điểm dữ liệu S10 và S67 trên Google Earth Pro
Tóm lại, các giải pháp đề ra có ưu điểm cũng tồn tại những nhược điểm chưa thể đáp ứng được Với phạm vi nghiên cứu tập trung vào kết quả mà giải pháp được đặt ra từ đầu, việc phân tích sâu hơn mối quan hệ của độ cải thiện lời giải với các đề xuất của giải pháp sẽ không được thực hiện và trình bày trong cuốn luận văn này Tuy nhiên, nhiều định hướng nghiên cứu nhằm cải tiến giải thuật có thể thực hiện nhằm tối ưu hóa vận hành của công ty sẽ được trình bày chi tiết hơn trong định hướng mở rộng nghiên cứu
Chất lượng lời giải
5.4.1.1 Tính tối ưu của giá trị hàm mục tiêu
Trong quyển Practical Python AI Projects: Mathematical Models of Optimization Problems with Google OR-Tools, Serge Kruk [9] viết về việc ứng dụng OR-tools vào giải quyết nhiều mô hình toán tối ưu như VRP, điều độ, lập kế hoạch, gán ghép, nhóm…bằng hướng tiếp cận Machine Learning, trí tuệ nhân tạo thay vì các mô hình lý thuyết Thực tiễn chứng minh nhiều mô hình trí tuệ nhân tạo đem lại hiệu quả cao hơn so với những gì mà lý thuyết và các mô hình đòi hỏi điều kiện lý tưởng đem lại Qua các bộ dữ liệu chạy thực nghiệm cho bài toán CVRP trong nghiên cứu của Ibrahim [10], OR-tools có thể tìm ra lời giải tối ưu (giá trị tốt nhất hiện có) có cho các bài toán nhỏ dưới 16 điểm dữ liệu Với bài toán có
101 dữ liệu, OR-tools cho ra kết quả cách lời giải tối ưu chỉ khoảng 8.81% Vì lẽ đó, để kiểm tra chất lượng của chương trình giải pháp, luận văn thực hiện kiểm chứng trên cùng mẫu dữ liệu bằng cách so sánh với gói tính năng tối ưu OR-tools của Google
Bảng 5.8 So sánh kết quả tối ưu hóa bài toán VRPTW giữa giải pháp và OR-tools
Giải pháp (SA) 69.50 88.20 141.33 47.34 168.50 179.64 385.05 272.45 OR-tools (OR) 109.64 108.16 218.78 50.42 150.05 157.45 332.53 294.83
Sử dụng đoạn lập trình sẵn của Google cho bài toán VRPTW, thực hiện chạy tối ưu hóa trên 8 bộ dữ liệu (3 bộ S10, S20, S50 và 5 bộ dữ liệu sau phân cụm của bộ dữ liệu D5) được kết quả như trong bảng 5.8 Khi so sánh với mô hình OR-tools, mô hình của luận văn cho ra kết quả tốt hơn ở bộ dữ liệu S10, S20, S50, S67, song lại cho kết quả không tốt bằng ở bài toán lớn hơn (OR cho kết quả tốt hơn 12,3% ở 3 bộ dữ liệu S145, S276 và S355) Trên thực tế vận hành, số lượng đơn hàng giao mỗi lần thường từ vài trăm tại mỗi kho nên có thể nói rằng, mô hình OR-tools trội so với giải pháp mô hình đề ra Tuy nhiên, kết quả của bộ dữ liệu với 419 khách hàng cho thấy giải pháp của luận văn cho kết quả tốt hơn 8% so với OR-tools Xét riêng trên bộ dữ liệu D5, OR-tools cho tổng quãng đường di chuyển 985.28km thấp hơn 6.43% so với giải pháp luận văn đề ra Tuy chưa có minh chứng chắc chắn nhưng có thể, nếu cho thêm thời gian hoặc nguồn lực tìm kiếm hoặc cải thiện các đầu vào của giải thuật SA thì kết quả sẽ được cải thiện và tiến gần đến lời giải của OR-tools và lời giải tối ưu toàn cục Với kết quả nhận được như trên, một câu hỏi được đặt ra là “Tại sao không dùng OR- tools thay cho giải pháp luận văn đề ra?” Trong quá trình chạy OR-tools bằng các bộ dữ liệu
48 trên, OR-tools đã gặp vấn đề với việc chạy bộ 50 khách hàng và cụm 276 khách Vấn đề đó là chương trình chạy liên tục và không dừng lại để xuất ra kết quả sau hơn 30 phút Kết quả trên bảng nhận được là do có sự can thiệp, buộc chương trình dừng lại và xuất kết quả tốt nhất mà OR-tools đã tìm được Mặc cho kết quả của OR-tools tốt hơn, nhưng đây là một gói chức năng không do một bên khác xây dựng và quản lý Giải pháp luận văn đề ra tuy kết quả chưa hiệu quả bằng OR-tools trong nhiều trường hợp, nhưng bù lại có thể ta có thể kiểm soát, hiệu chỉnh và cải thiện cho giải pháp được tốt hơn
5.4.1.2 Độ chính xác của hàm mục tiêu
Thông qua số liệu tính được trong Bảng 5.7, có thể nhận xét như sau:
- Kết quả của các lần chạy khác nhau trên từng bộ dữ liệu có độ lệch khá nhỏ với trung bình tỷ lệ độ lệch chuẩn khoảng 2.42% so với giá trị trung bình của hàm mục tiêu
- Nhìn chung, tỷ lệ này có giá trị lớn hơn ở các bộ dữ liệu có kích thước nhỏ Lý do là các bài toán có quy mô nhỏ thường có ít lời giải tối ưu cục bộ hơn nên trong quá trình tìm kiếm, giải thuật khó thoát ly khỏi vị trí hiện tại hơn các bài toán quy mô lớn Tuy nhiên cũng không thể kết luận được độ chính xác tỷ lệ nghịch với quy mô bài toán Dễ thấy trong bộ dữ liệu thứ 4, ở cụm 145 và 355 khách hàng, tỷ lệ của hai nhóm này lại lớn hơn so với cụm 67 khách hàng Nhiều giả thuyết có thể đưa ra như "Chưa đủ thời gian tìm kiếm", "Lời giải tối ưu phụ thuộc nặng vào lời giải ban đầu và tính chất bộ dữ liệu", "Số mẫu quan sát chưa đủ lớn"… Độ chính xác trong việc cho lời giải của giải pháp là khá cao và có thể ứng dụng vào thực tiễn cho doanh nghiệp Tuy nhiên, để thực sự có thể kiểm soát được kết quả của giải pháp, cần thực hiện nghiên cứu sâu hơn các yếu tố tác động đến việc vận hành chương trình tối ưu