Kết hợp thuật giải Large Neighborhood Search và Simulated Annealing cho một biến thể thực tế của bài toán Vehicle Routing

20 2,136 17
  • Loading ...
1/20 trang

Thông tin tài liệu

Ngày đăng: 07/11/2014, 00:59

Kết hợp thuật giải Large Neighborhood Search và Simulated Annealing cho một biến thể thực tế của bài toán Vehicle RoutingBài toán Vehicle Routing Problem gọi tắt là VRP là bài toán mà trong đó ta có sẵn một tập các xe và một tập các khách hàng, mỗi khách hàng yêu cầu một số lượng hàng nhất định, yêu cầu của bài toán là phải phân phối hàng và tìm đường đi cho các xe dựa trên một số mục tiêu cho trước sao cho tất cả các khách hàng đều phải được giao hàng, một trong những mục tiêu phổ biến nhất là cực tiểu hóa tổng thời gian vận chuyển của tất cả các xe. ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN Họ tên học viên cao học: Đặng Thị Thanh Nguyên Tên đề tài: Kết hợp thuật giải Large Neighborhood Search và Simulated Annealing cho một biến thể thực tế của bài toán Vehicle Routing Chuyên ngành: Khoa Học Máy Tính Cán bộ hướng dẫn : TS. Đinh Bá Tiến ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN Họ tên HVCH: Đặng Thị Thanh Nguyên ĐỀ CƯƠNG NGHIÊN CỨU ĐỀ TÀI LUẬN VĂN THẠC SĨ Tên đề tài: Thuật giải Large Neighborhood Search và Simulated Annealing cho một biến thể thực tế của bài toán Vehicle Routing Chuyên ngành: Khoa Học Máy Tính Mã số: 02 4801 31 Cán bộ hướng dẫn: TS. Đinh Bá Tiến Tp. HCM, tháng 8 năm 2010 1. Giới thiệu tổng quan 1.1. Giới thiệu bài toán Vehicle Routing (Vehicle Routing Problem – VRP) Bài toán Vehicle Routing Problem - gọi tắt là VRP là bài toán mà trong đó ta có sẵn một tập các xe và một tập các khách hàng, mỗi khách hàng yêu cầu một số lượng hàng nhất định, yêu cầu của bài toán là phải phân phối hàng và tìm đường đi cho các xe dựa trên một số mục tiêu cho trước sao cho tất cả các khách hàng đều phải được giao hàng, một trong những mục tiêu phổ biến nhất là cực tiểu hóa tổng thời gian vận chuyển của tất cả các xe. Bài toán quen thuộc người đưa thư (Travelling Salesman Problem - gọi tắt là TSP) chính là một trường hợp đặc biệt của bài toán VRP với một xe giao hàng duy nhất (chính là người đưa thư). Bài toán VRP và các biến thể của nó đều thuộc lớp các bài toán NP khó. Đây là một trong những bài toán có ứng dụng thực tế rất rộng lớn và đã nhận được sự quan tâm, nghiên cứu của rất nhiều nhà khoa học trên thế giới trong suốt 50 năm qua. Trong bài toán này, các xe (vehicle) xuất phát từ các kho hàng (depot) và đi giao hàng cho các khách hàng (customer), sau đó quay trở về lại kho hàng. Một số khái niệm chính của bài toán gồm: - Xe (vehicle): các phương tiện dùng để chuyên chở hàng, có thể có nhiều loại xe khác nhau, chẳng hạn như xe tải nhỏ, xe tải lớn, xe gắn máy, Các khái niệm gắn liền với loại xe bao gồm: sức chứa của xe (capacity), chi phí vận chuyển (gồm hai loại thông dụng: chi phí cố định - fixed cost - là chi phí cần thiết để xe có thể khởi hành, nó không phụ thuộc vào độ dài quãng đường mà xe phải đi; chi phí động - variable cost là chi phí tiêu tốn trên từng đơn vị quãng đường mà xe phải đi), quãng đường tối đa mà xe có thể đi trong một ngày (route length), loại mặt hàng (commodit type) mà xe có thể chở, … - Kho hàng (depot): là nơi chứa hàng hóa, các xe sẽ lấy hàng tại kho để đi giao hàng cho các khách hàng, sau khi giao xong, xe sẽ quay trở về lại kho hàng - Khách hàng (customer): khách hàng có thể chỉ nhận hàng do xe giao tới, nhưng cũng có thể vừa nhận hàng (linehaul customer), vừa lấy hàng (backhaul customer). Các khái niệm đi kèm với khách hàng gồm: số lượng hàng mà khách yêu cầu (demand), loại mặt hàng mà khách yêu cầu (commodity type), khoảng thời gian (time window) mà khách hàng cho phép xe đến giao hàng (ví dụ: khoảng thời gian của khách hàng A là [2p.m, 4p.m] nghĩa là khách hàng A chỉ cho phép xe đến giao hàng (hoặc lấy hàng) trong khoảng thời gian từ 2p.m đếm 4p.m, thời gian thực hiện việc giao (nhận) hàng (service time), - Tuyến đường (route): tuyến đường của một xe là một chu trình, với điểm xuất phát và điểm kết thúc là kho hàng của xe, các điểm thành phần của chu trình tương ứng với các khách hàng mà xe ghé qua để giao (lấy) hàng. 1.2. Các biến thể của bài toán VRP Bài toán VRP có rất nhiều biến thể khác nhau dựa trên yêu cầu cụ thể của các bài toán thực tế. Các biến thể này đã tạo thành các nhánh nghiên cứu khác nhau, tất nhiên các phương pháp giải quyết các biến thể cũng có thể được chỉnh sửa để áp dụng qua lại lẫn nhau. Một số biến thể quan trọng của bài toán VRP bao gồm: - Bài toán VRP với khoảng cách bất đối xứng (Asymmetric VRP, gọi tắt là AVRP): bài toán VRP mà trong đó, đồ thị biểu diễn đường đi là một đồ thị có hướng. Hầu hết các bài toán VRP trong thực tế đều thuộc dạng này. - Bài toán VRP với nhiều kho hàng (Multi-Depot VRP, gọi tắt là MDVRP): bài toán với nhiều kho hàng khác nhau, mỗi xe sẽ phụ thuộc vào một kho hàng duy nhất, được gọi là kho hàng chủ (home depot) của xe. - Bài toán VRP với ràng buộc sức chứa (Capacitated Vehicle Routing Problem, gọi tắt là CVRP): trong bài toán này, mỗi loại xe có một sức chứa (capacity) khác nhau, yêu cầu bài toán là phải tìm đường đi cho các xe sao cho tổng lượng hàng mà xe phải chở trong một tuyến đường không được vượt quá sức chứa của xe. Nếu thay ràng buộc sức chứa bằng ràng buộc về độ dài tối đa của quãng đường mà mỗi xe đi, ta có một biến thể khác, đó là bài toán DVRP (Distance-Constrained VRP): gắn với mỗi loại xe là một tham số thể hiện độ dài quãng đường tối đa mà mỗi xe có thể đi. Yêu cầu bài toán là phải tìm đường đi cho các xe sao cho tổng quãng đường mà mỗi xe phải đi không được vượt quá tham số này. - Bài toán VRP với ràng buộc khoảng thời gian (VRP with Time Windows, gọi tắt là VRPTW): trong bài toán này, mỗi khách hàng sẽ chỉ cho phép xe đến giao hàng trong một khoảng thời gian cho phép (time windows) nhất định, khoảng thời gian này được biểu diễn bởi đoạn [a i , b i ] (tương ứng với khách hàng thứ i), nếu xe đến giao hàng cho khách hàng thứ i vào trước thời điểm a i , xe sẽ phải đứng chờ cho đến thời điểm a i mới được giao hàng, đồng thời việc giao hàng của xe cho khách hàng thứ i cần kết thúc trước thời điểm b i . - Bài toán VRP với yêu cầu giao và nhận hàng (VRP Pickup and Delivery, gọi tắt là VRPPD): bài toán này cho phép xe thực hiện cả hai chức năng - lấy hàng (pickup) từ một số khách hàng và đem đi giao (delivery) cho khách hàng khác, bài toán này thường áp dụng cho các dịch vụ vận chuyển hàng, trong đó, khách hàng sẽ yêu cầu xe đến chỗ mình để nhận hàng và giao đến cho người nhận (một khách hàng khác). Khi đó, tất nhiên xe phải đến gặp khách hàng thứ nhất để lấy hàng trước, rồi mới có hàng để giao đến cho người nhận. Như vậy, trong bài toán này sẽ có thêm một loại ràng buộc mới: ràng buộc thứ tự đến gặp khách hàng (precedence constraint). Các xe phải tuân thủ thứ tự này, nghĩa là phải gặp khách hàng đặt giao hàng trước, rồi mới được đến gặp khách hàng cần nhận hàng. - Bài toán VRP với yêu cầu giao hàng trước (VRP with Backhauls, gọi tắt là VRPB): tương tự như bài toán VRPPD, bài toán này cũng cho phép xe giao hàng và nhận hàng, nhưng có một chút khác biệt: xe không đến gặp khách hàng để lấy hàng rồi giao cho khách hàng khác nữa mà ràng buộc thứ tự gặp khách hàng ở đây sẽ là: xe phải đi giao hàng cho tất cả các khách hàng cần nhận (Linehaul customers) trước, rồi sau đó mới đến gặp các khách hàng cần giao (Backhaul customers) để lấy hàng đem về kho. Wade và Salhi [10]. đã đề nghị một biến thế khác của bài toán VRPB, trong đó, xe không cần phải giao hết hàng rồi mới được nhận hàng, mà có thể nhận hàng sớm hơn (tại một thời điểm nào đó trong lúc giao hàng, thời điểm này được xác định dựa trên kinh nghiệm của tài xế, trạng thái hàng của xe tại thời điểm đó,…). - Bài toán VRP cho phép một xe đi nhiều chuyến (bài toán này có rất nhiều tên gọi khác nhau, bao gồm: VRP with multiple use of vehicles, VRP with multi-trips, VRP with multiple trips, VRP with multiple vehicle trips, gọi tắt chung là VRPM): trong bài toán này, mỗi xe có thể chạy nhiều hơn một tuyến đường, nghĩa là một chiếc xe có thể xuất phát từ kho hàng, đi giao hàng, quay trở về kho hàng và lại lấy hàng đi giao tiếp cho đến khi tổng thời gian giao hàng của xe chạm mức cho phép. - Bài toán VRP cho phép chia nhỏ đơn hàng (VRP with split delivery) [13].: trong bài toán này, mỗi đơn đặt hàng của khách hàng được phép phân nhỏ ra thành các đơn đặt hàng với số lượng nhỏ hơn, khi đó, một khách hàng có thể được giao hàng bởi nhiều hơn một xe. Khi các đơn đặt hàng của các khách hàng có kích thước quá lớn, việc chia nhỏ các đơn đặt hàng này ra sẽ giúp tận dụng được tối đa sức chứa của xe. - Bài toán VRP với nhiều loại xe khác nhau [11].: là bài toán với tập các loại xe có sức chứa và chi phí vận chuyển khác nhau. Bài toán này có hai biến thể con, gồm: + Bài toán VRP với đội xe cố định (Heterogeneous VRP, hoặc VRP with Heterogeneous fleet of vehicles): Số lượng xe của mỗi loại là một hằng số. + Bài toán VRP với đội xe biến động (Mixed fleet and size VRP, Fleet Size and Mix VRP): Số lượng xe của mỗi loại cũng là một biến số, nghĩa là ngoài việc định tuyến, ta còn cần phải xác định được số lượng xe mỗi loại cần dùng sao cho tốt nhất. - Bài toán VRP với yêu cầu loại xe phù hợp (VRP with site-dependence, gọi tắt là SDVRP): trong bài toán này, mỗi khách hàng chỉ chấp nhận một số loại xe nhất định, đây cũng là một yêu cầu rất thực tế, chẳng hạn như với các khách hàng nằm trong hẻm nhỏ hoặc nằm ở đường cấm xe tải lớn thì chỉ có các xe tải nhỏ hoặc xe máy mới có thể giao hàng đến được. - Bài toán VRP với khách hàng được biểu diễn bởi các cung (Arc Routing Problems )[12].: đây là một bài toán đặc biệt, khác với các bài toán VRP thông thường, trong đó, các khách hàng thay vì được biểu diễn bằng các điểm trong đồ thị, thì sẽ được biểu diễn bằng các cung. Bài toán này xuất phát từ yêu cầu của các bài toán thực tế, chẳng hạn như bài toán tìm đường đi cho các xe dọn tuyết trong mùa đông, rải muối, rải cát lên mặt đường băng để hạn chế trơn trượt, khi đó, các vị trí cần rải muối, cát hoặc lấy tuyết không còn là các điểm nữa, mà là các đoạn đường. - Bài toán VRP với đơn đặt hàng theo chu kì (Periodic VRP): trong bài toán này, các xe giao hàng cho mỗi khách hàng trong nhiều ngày (gọi là một chu kì), mỗi xe có thể gặp một khách hàng nhiều hơn một lần trong suốt chu kì. Mỗi khách hàng sẽ có một tham số đi kèm, quy định số lần mà xe phải đến giao hàng cho khách trong suốt chu kì. Một ứng dụng thực tế của bài toán này là bài toán thu gom rác với khách hàng là các siêu thị, các cửa hàng tạp hóa,…, trong đó, các siêu thị lớn thường cần gom rác ngày một lần, trong khi các cửa hàng tạp hóa nhỏ thì chỉ cần một tuần hai lần là đủ. - Bài toán VRP đa mục tiêu (Multi Objective VRP): đây là hướng bài toán mới được phát triển trong những năm gần đây do nhu cầu xuất phát từ thực tế. Trong bài toán này, ngoài mục tiêu cực tiểu hóa tổng chi phí (thời gian) vận chuyển, còn có các mục tiêu khác, chẳng hạn như: cực tiểu hóa số lượng xe cần dùng để phục vụ hết nhu cầu khách hàng, cân bằng về tổng quãng đường, tổng thời gian phải đi giữa các tuyến đường nhằm đảm bảo độ công bằng giữa các tài xế (bằng cách giảm thiểu độ chênh lệch độ dài, thời gian di chuyển giữa tuyến đường dài nhất và tuyến đường ngắn nhất), giảm thiểu rủi ro khi chuyên chở các hàng hóa nguy hiểm, tạo mối quan hệ thân quen giữa tài xế và khách hàng. Tất nhiên, các biến thể trên của bài toán VRP có thể kết hợp lại với nhau để tạo nên các biến thể mới cho phù hợp với bài toán thực tế cụ thể. Chẳng hạn như: kết hợp bài toán CVRP (bài toán VRP với ràng buộc sức chứa của xe) và bài toán AVRP (bài toán VRP với đồ thị biểu diễn đường đi là đồ thì có hướng), ta có bài toán ACVRP (bài toán bài toán VRP với đồ thị biểu diễn đường đi là đồ thị có hướng và có ràng buộc sức chứa của xe). Bài toán mà luận văn này giải quyết là một bài toán VRP thực tế và cũng là một dạng biến thể kết hợp của các biến thể đã nêu trên và được bổ sung thêm một số yêu cầu đặc trưng khác. 1.3. Các hướng tiếp cận Các hướng tiếp cận cho bài toán VRP và các biến thể của nó có thể được chia làm 4 nhóm chính [4]. [35].: nhóm các thuật toán chính xác, nhóm các thuật giải xấp xỉ, nhóm các thuật giải heuristics cổ điển và nhóm các thuật giải metaheuristic. Hình 1 trình bày sơ đồ tóm tắt các hướng tiếp cận cho bài toán VRP. - Nhóm các thuật toán chính xác (exact algorithms): là các thuật toán mà lời giải thu được luôn đảm bảo là lời giải tối ưu, các thuật toán chính xác cho bài VRP phần lớn được phát triển lên từ các thuật toán chính xác cho bài toán TSP và các biến thể của nó, gồm: các thuật toán branch and bound, quy hoạch động (dynamic programming), các thuật toán dựa trên mạng phân luồng (network flow algorithms), các thuật toán set partitioning. Do hạn chế về mặt thời gian tìm kiếm, các thuật toán chính xác chủ yếu được sử dụng để giải quyết các bài toán VRP với kích thước nhỏ và số lượng ràng buộc hạn chế. Với bài toán CVRP, các thuật toán chính xác hiện nay chỉ khả thi cho các bộ dữ liệu với số khách hàng nhỏ hơn hoặc bằng 135 [4] - Nhóm các thuật giải xấp xỉ (approximate algorithms): là các thuật giải mà tỉ lệ giữa chất lượng lời giải thu được so với lời giải tối ưu luôn được đảm bảo ở một mức nhất định cho trước. Tương tự như các thuật toán chính xác, các thuật giải xấp xỉ cho bài toán TSP cũng được mở rộng để áp dụng cho bài toán VRP và các biến thể của nó [2] Các thuật toán được đề nghị trong [33].[34]. là một trong các thuật toán tiêu biểu của nhóm này. - Nhóm các thuật giải heuristic cổ điển: các thuật giải này phát triển mạnh vào khoảng các năm 1960 đến 1990, hiện nay, các thuật giải này thường được dùng kèm trong các metaheuristic và đảm nhận nhiệm vụ khởi tạo lời giải ban đầu hoặc cải thiện chất lượng của lời giải sẵn có. Sau đây là một số thuật giải heuristic cổ điển tiêu biểu [4]. [35].: + Nhóm các thuật giải khởi tạo (constructive heuristics): • Các thuật giải Savings: được đề nghị lần đầu bởi Clarke và Wright [1]. vào năm 1964, thuật giải này xây dựng một lời giải theo phương pháp sau: ban đầu, khởi tạo n routes tương ứng với n khách hàng, sau đó, các route này sẽ được ghép lại với nhau cho đến khi không thể ghép được nữa (do giới hạn sức chứa của xe), việc chọn các route để ghép lại với nhau dựa trên một hàm saving. Nhiều tác giả đã phát triển thêm các hàm saving khác nhau dựa trên phiên bản gốc của Clarke và Wright. • Các thuật giải Insertion: các thuật giải thuộc nhóm này sẽ xây dựng các route của lời giải bằng cách lần lượt chèn mỗi khách hàng vào một route, các route có thể được xây dựng đồng thời hoặc tuần tự. Tiêu chí để chèn khách hàng vào các route thường dựa trên nguyên lý của thuật giải tham lam, một trong những tiêu chí đơn giản nhất là chèn khách hàng vào route sao cho tổng quãng đường mà xe phải đi thêm là nhỏ nhất. • Các thuật giải gom nhóm khách hàng trước, tìm đường đi sau (cluster-first, route- second): quá trình tạo lập một lời giải được chia làm 2 bước – bước thứ nhất: chia tập các khách hàng thành các tập con, mỗi tập con tương ứng với một route, bước thứ 2: xác định đường đi cụ thể cho từng route. Hai thuật giải tiêu biểu nhất của nhóm này là thuật giải seed-based của Fisher và Jaikumar giới thiệu vào năm 1981[30]. và thuật giải sweep-based của Gillet và Miller giới thiệu vào năm 1974 [36]. + Nhóm các thuật giải cải tiến chất lượng lời giải sẵn có (improvement heuristics): các thuật giải thuộc nhóm này sẽ tìm cách cải tiến chất lượng của lời giải hiện tại thông qua các bước chỉnh sửa lời giải hiện tại. Các bước chỉnh sửa này được gọi là các phép move. Có hai loại phép move cho bài toán VRP: phép move tác động lên một route duy nhất (intra-route moves) phép move tác động lên nhiều route cùng một lúc (inter-route move) [37] - Nhóm các thuật giải metaheuristic: bắt đầu phát triển từ năm 1990, đây là nhóm các hướng tiếp cận có nhiều triển vọng nhất hiện nay và thu hút được sự quan tâm của một lượng lớn các nhà nghiên cứu. Tác giả M.Gendreau và các cộng sự đã công bố một bài khảo sát chi tiết và khá đầy đủ về các thuật giải metaheuristic hiện nay cho bài toán VRP [41] Sở dĩ metaheuristícc phát triển mạnh mẽ trong những năm gần đây là do trong nhiều trường hợp, các thuật giải metaheuristic cho phép tìm được các lời giải tương đối tốt trong khoảng thời gian hợp lý cho các bài toán với không gian tìm kiếm quá lớn (đặc biệt là các bài toán ứng dụng thực tế) mà các thuật toán chính xác hoặc các thuật toán xấp xỉ không thể khả thi. Tuy nhiên, điểm bất lợi của các metaheuristic là vấn đề lựa chọn giá trị phù hợp cho các tham số, cách làm thông dụng nhất hiện nay là dựa vào kinh nghiệm. Các metaheuristic có thể chia làm hai nhóm chính: + Nhóm các thuật giải tìm kiếm cục bộ (local search metaheuristics): Bắt nguồn từ một lời giải ban đầu (lời giải này gọi là lời giải khởi tạo, có thể được tạo thành từ nhiều phương pháp khác nhau, chẳng hạn như các constructive heursitics đã đề cập ở phần trên), các thuật giải Local Search sẽ thực hiện lặp đi lặp lại việc tìm kiếm trong miền không gian tìm kiếm của bài toán nhằm mục đích tìm ra lời giải tối ưu, tại mỗi bước lặp của mình, thuật giải sẽ tìm kiếm và chỉ lựa ra một lời giải duy nhất để làm cơ sở cho bước lặp tiếp theo, đây chính là điểm khác biệt cơ bản nhất giữa nhóm thuật giải Local Search so với nhóm các thuật giải dựa trên quần thể, ở nhóm các thuật giải dựa trên quần thể, sau mỗi bước lặp, kết quả thu được là cả một tập các lời giải, trong khi nhóm Local Search chỉ chọn một lời giải duy nhất. Tại mỗi bước lặp, thuật giải sẽ lấy lời giải duy nhất thu được từ bước lặp trước làm lời giải hiện tại, thuật giải sẽ duyệt trong miền không gian láng giềng của lời giải hiện tại để chọn ra lời giải thay thế cho lời giải hiện tại ở bước lặp kế sau. Mỗi lời giải trong không gian láng giềng của lời giải hiện tại được gọi là một láng giềng của lời giải hiện tại. Sự tác động lên lời giải hiện tại để biến nó thành một lời giải láng giềng của nó gọi là một bước chuyển (move). Trong các local search, hai vấn đề quan trọng nhất cần quan tâm là tính tăng cường (intensification) và tính đa dạng (diversification) của quá trình tìm kiếm, tính tăng cường là khả năng tập trung tìm kiếm sâu ở những vùng không gian mà ta dự đoán là sẽ chứa lời giải tối ưu, tính đa dạng là khả năng tìm đến những vùng không gian lời giải mới nhằm thoát ra khỏi các vùng chứa điểm tối ưu cục bộ. Các local search khác nhau sẽ đưa ra các chiến lược khác nhau để đảm bảo sự tồn tại và cân bằng giữa hai yếu tố này. Một số metaheuristic tiêu biểu của nhóm này đã được áp dụng khá hiệu quả cho bài toán VRP gồm: • Thuật giải Tabu Search: được đề nghị lần đầu tiên bởi Fred Glover vào năm 1989 [40]., thành phần chính quan trọng nhất của thuật giải Tabu Search là Tabu list, đây là một danh sách chứa một số phép move đã được áp dụng trong quá khứ, một phép move sẽ không được phép áp dụng lên lời giải hiện tại chừng nào phép move này còn nằm trong Tabu list. Nhiệm vụ của Tabu list là để tránh quay trở lại những lời giải đã tìm trước đó, nhằm tăng tính đa dạng của quá trình tìm kiếm. Tuy nhiên, nếu một phép move đang nằm trong Tabu list nhưng nó lại có thể giúp cải thiện chất lượng của lời giải tốt nhất hiện tại thì phép move này vẫn được chấp nhận sử dụng (aspiration criteria). Các thuật giải Tabu Search tiêu biểu cho bài toán VRP gồm [5][6][7][15]. • Thuật giải tôi luyện thép (Simulated Annealing): bắt nguồn từ thuật giải Metropolis- Hasting [22]., thuật giải tôi luyện thép mô phỏng quá trình luyện thép trong tự nhiên vào lý thuyết đề giải các bài toán tối ưu tổ hợp khó. Chi tiết của thuật giải sẽ được giới thiệu ở phần 3.2. Ứng dụng tiêu biểu của thuật giải tôi luyện thép cho bài toán VRP có thể kể đến bài báo [42]. • Các phiên bản deterministic của thuật giải tôi luyện thép: trong các phiên bản này, việc quyết định xem có chấp nhận một lời giải xấu hơn lời giải hiện tại hay không sẽ không dựa vào xác suất, mà được quyết định dựa vào kết quả của quá trình tìm kiếm trước đó. Các thuật giải tiêu biểu thuộc nhóm này gồm: thuật giải Threshold accepting, Record-to- record travel [43]. và Great Deluge. • Thuật giải Variable Neighborhood Search (VNS): thuật giải VNS đặc biệt ở chỗ cho phép tìm kiếm trên nhiều tập láng giềng khác nhau, nhờ đó tăng tính đa dạng của quá trình tìm kiếm. Các tập láng giềng sẽ được định nghĩa sẵn theo một độ ưu tiên cho trước, và tại mỗi bước lặp, các tập láng giềng sẽ được duyệt lần lượt, nếu lời giải láng giềng phát sinh ngẫu nhiên tập láng giềng có độ ưu tiên cao hơn không thể cải thiện chất lượng lời giải hiện tại, tập láng giềng kế tiếp sẽ được chọn. Để nâng cao chất lượng tìm kiếm, thuật giải VNS có thể kết hợp với các local search khác từ đơn giản (thuật giải leo đồi) đến phức tạp (các metaheuristics khác thuộc nhóm local search). Các thuật giải VNS cho hiệu quả cao đối với các bài toán VRP được đề cập đến trong các bài báo [44]. và [45]. • Thuật giải Large Neighborhood Search [14]. và Adaptive Large Neighborhood Search [21].: các miền láng giềng được xét tại mỗi bước lặp của các thuật giải thuộc nhóm này thường có kích thước rất lớn, điều này sẽ giúp quá trình tìm kiếm có thể vượt ra khỏi những điểm tối ưu cục bộ. Chi tiết của các thuật giải thuộc nhóm này sẽ được trình bày ở phần 3.3 + Nhóm các thuật giải dựa trên quần thể (population-based metaheuristics) gồm: các thuật giải tiến hóa (Evolutionary Algorithms, gồm thuật giải di truyền [26]. – Genetic Algorithm, và thuật giải Memetic [46].), những năm gần đây còn có một số thuật giải khác dựa trên quy luật sống bầy đàn của các loại động vật trong tự nhiên như thuật giải bầy kiến (Ant Colony Algorithm) [9]., thuật giải Particle Swarm Optimization [47] Hình 1Hin (*): Hướng tiếp cận kết hợp giữa Simulated Annealing và Large Neighborhood Search, đây là hướng tiếp cận mà đề tài sẽ áp dụng Hình 1. Các hướng tiếp cận cho bài toán VRP (*) 2. Mục đích nghiên cứu của đề tài Bài toán VRP là bài toán được ứng dụng rất rộng rãi trong nhiều lĩnh vực của đời sống, chẳng hạn: bài toán giao hàng của các công ty thực phẩm, bài toán chuyên chở hàng của các công ty vận tải,… Mỗi bài toán thường có các ràng buộc đặc trưng riêng, ứng với yêu cầu cụ thể của thực tế. Đề tài này tập trung nghiên cứu và giải quyết một bài toán VRP thực tế: bài toán giao hàng lạnh trong thành phố của công ty Cổ phần sữa Việt Nam (Vinamilk), cơ sở TP.HCM. Hiện nay, Vinamilk thực hiện việc điều phối xe giao hàng bằng tay với quy trình như sau: mỗi ngày, công ty sẽ nhận các đơn đặt hàng của khách hàng (số lượng đơn hàng từ vài trăm đến dưới hai ngàn), đến cuối ngày, nhân viên điều phối sẽ tổng hợp lại toàn bộ các đơn đặt hàng đã nhận trong ngày, và bộ phận điều phối thường phải mất khoảng 6 đến 8 tiếng (đôi khi phải thức cả đêm) để thực hiện việc phân bổ đơn hàng lên xe và xác định đường đi cho các xe vào ngày hôm sau. Cách làm này tốn rất nhiều thời gian và công sức mà đôi khi lời giải thu được lại chưa hẳn tốt. Do đó, vấn đề tự động hóa trong khâu điều phối xe là một nhu cầu rất cần thiết. Mục đích của đề tài là áp dụng biến thể kết hợp của thuật giải Large Neighborhood Search và thuật giải Simulated Annealing – một trong những hướng tiếp cận được đánh giá cao đối với các bài toán VRP hiện nay [25]. – vào bài toán giao hàng của Vinamilk. 3. Đối tượng nghiên cứu 3.1. Bài toán giao hàng lạnh trong thành phố của công ty Cổ phần sữa Việt Nam Vinamilk, cơ sở TP.HCM Bài toán giao hàng của công ty Cổ phần sữa Việt Nam Vinamilk là một biến thể thực tế (kết hợp của nhiều biến thể) của bài toán VRP. Ngoài các ràng buộc thường thấy trong các bài toán VRP lý thuyết, bài toán này còn có một số ràng buộc rất đặc trưng, xuất phát từ yêu cầu của thực tế. Một số khái niệm và đặc trưng của bài toán: Trạm xuất phát (home depot) và các kho hàng(depot) : Vào đầu ngày, tất cả các xe của công ty đều khởi hành từ một trạm xuất phát duy nhất (Xí Nghiệp Kho Vận Vinamilk – TP.HCM) và quay trở lại trạm xuất phát này sau khi đã giao hết số hàng được phân. Trong quá trình đi, xe sẽ đến các kho hàng để lấy hàng đem đi giao cho các khách hàng. Hiện nay, Vinamilk TP.HCM có 2 kho hàng: - Kho thứ nhất: Kho Trường Thọ (TRF) và kho Thống Nhất (TNF) – Quận Thủ Đức (2 kho này có vị trí rất gần nhau nên có thể xem như 1 kho duy nhất) - Kho thứ hai: Kho Sài Gòn (SGF) – Quận 12 Các kho hàng này chỉ mở cửa cho xe lấy hàng trong khoảng thời gian từ 6:30 đến 15:00. Do ràng buộc về kích thước mặt bằng của kho, tại cùng một thời điểm, chỉ có tối đa 3 xe một kho cùng một lúc. Các loại mặt hàng: Các loại mặt hàng lạnh của Vinamilk bao gồm hai nhóm: - Nhóm kem – gồm các sản phẩm kem các loại. - Nhóm sữa chua - gồm các sản phẩm: sữa chua các loại, fromage, provi. Các xe chở hàng lạnh đều yêu cầu phải có máy lạnh, nhưng nhóm kem yêu cầu nhiệt độ thấp hơn nhóm sữa chua và mặt hàng khác. Do đó, xe chở được kem thì cũng có thể chở được các mặt hàng thuộc nhóm sữa chua, nhưng điều ngược lại thì không đúng. Đội xe: Đội xe lạnh của Vinamilk TP.HCM hiện nay gồm 23 chiếc (thuộc tổ xe Lạnh Phố), với sức chứa và khả năng chở khác nhau. Trong đó, có 11 xe có thể chở được cả kem và sữa chua. Các xe còn lại chỉ có thể chở sữa chua. Tại một thời điểm, mỗi xe chỉ có thể chở một nhóm mặt hàng. Ở đây, chi phí vận chuyển của các xe được xem là như nhau (mặc dù sức chứa khác nhau). [...]... kết hợp giữa thuật giải Simulated Annealing và thuật giải Variable Neighborhood Search cho bài toán VRP và áp dụng vào bài toán VRP của công ty sữa Việt Nam Vinamilk Do bài toán của Vinamilk là một bài toán thực tế, với một số ràng buộc đặc trưng mà các bài toán lý thuyết ít hoặc chưa đề cập đến, nên các thuật giải khảo sát được cần được thiết kế lại sao cho phù hợp với yêu cầu của thực tế Một số hướng... lượng của quá trình tìm kiếm 3.3 Thuật giải Large Neighborhood Search Ý tưởng của thuật giải Large Neighborhood Search (gọi tắt là LNS) được đề nghị lần đầu tiên bởi Shaw [14] vào năm 1998 Thuật giải LNS là một thuật giải Local Search thuộc nhóm các thuật giải Very Large Scale Neighborhood Search (gọi tắt là VLSN – các thuật giải Local Search với các miền láng giềng có kích thước rất lớn và biến động)... của các xe [25].[28] 4 Các phương pháp nghiên cứu Thực hiện: - Khảo sát một số thuật giải heuristic cổ điển cho bài toán VRP (nhóm các thuật giải heursitic khởi tạo – constructive heuristic) để thực hiện khởi tạo lời giải ban đầu - Khảo sát các thuật giải dựa trên Simulated Annealing và Variable Neighborhood Search cho bài toán VRP và các biến thể của nó - Khảo sát các hướng tiếp cận đơn giản cho bài. .. tuyến cho các xe, một yêu cầu khác của bài toán này là phải xếp lịch vào kho cho các xe sao cho tận dụng được không gian của các kho một cách tốt nhất Bài toán xếp lịch vào kho cho các xe có thể xem như một bài toán Flexible Job Shop Scheduling – một lớp bài toán con của nhóm bài toán Machine Scheduling, và cũng thuộc lớp bài toán NP khó - với hàm mục tiêu là cực tiểu hóa tổng số thời gian về kho trễ của. .. khảo sát của tác giả thì cho đến nay, bài toán VRP kết hợp với bài toán xếp lịch vào kho lấy hàng như vậy chỉ mới được đề cập đến trong một bài báo duy nhất [39]., và trong bài báo này, chỉ có một kho hàng và tại mỗi thời điểm chỉ có 1 xe được phép vào kho lấy hàng 3.2 Thuật giải Simulated Annealing Thuật giải Simulated Annealing (gọi tắt là SA), tạm dịch là “tôi luyện thép” là một Local Search mang... bài toán Flexible Job Shop Scheduling (gồm 2 phần: hướng tiếp cận khởi tạo lời giải và hướng tiếp cận cho phép cải thiện chất lượng lời giải sẵn có) - Thu thập dữ liệu từ xí nghiệp kho vận – công ty Cổ phần sữa Việt Nam Vinamilk - Thiết kế và cài đặt các thuật giải biến thể khác nhau dựa trên sự kết hợp giữa thuật giải Simulated Annealing và thuật giải Variable Neighborhood Search cho bài toán của. .. lời giải tốt nhất được công bố, ngoài ra, LNS còn tìm ra thêm được 7 (/18 bộ dữ liệu) lời giải tốt nhất mới đối với bài toán CVRP, và 3 (/29 bộ dữ liệu) đối với bài toán VRPTW Tiếp nối kết quả của Shaw, một số nhóm tác giả đã tiếp tục cải tiến việc áp dụng thuật giải LNS vào các biến thể khác của bài toán VRP và đều thu được kết quả tốt, tiêu biểu nhất có thể kể đến công trình của các tác giả R Bent và. .. việc giải quyết một bài toán tối ưu tổ hợp để phát triển thuật giải SA Cũng giống nhau các Local Search khác, tại mỗi bước lặp, SA chỉ xét một lời giải hiện tại duy nhất Các lời giải thuộc miền láng giềng của lời giải hiện tại sẽ được duyệt, và nếu được chọn, một lời giải láng giềng sẽ thay thế lời giải hiện tại để trở thành lời giải hiện tại mới và chuyển sang bước lặp kế Hình 2 Mã giả của một thuật giải. .. chiều - Bài toán VRP cho phép một xe đi nhiều chuyến (VRPM): các xe được phép đi nhiều chuyến trong một ngày Sự khác biệt của bài toán so với các bài toán VRP đã được công bố: - Bài toán của Vinamilk khác với các bài toán CVRP cơ bản vì có đến hai loại mặt hàng, và sức chứa của các xe cũng tùy thuộc vào từng loại mặt hàng - Bài toán của Vinamilk tuy có nhiều kho hàng, nhưng lại khác với bài toán Multi-depot... 21 18 20 11 16 12 10 12 17 18 20 19 Hình 3 Mình họa một bước lặp của thuật giải LNS cho bài toán CVRP với 21 khách hàng [21] Hình 4 Mã giả của thuật giải LNS [21] Hình 4 minh họa mã giả của thuật giải LNS, trong đó, đầu vào của thuật giải là một lời giải hợp lệ (feasible solution)x, nghĩa là một lời giải thỏa tất cả các ràng buộc cứng, xb là lời giải tốt nhất hiện tại, d(.) là hàm phá hủy, r(.) là . Challenges, Springer-Verlag, Heidelberg, Germany, pp 3-29 [12]. Wøhlk, S., A decade of capacitated arc routing (2007), in B.Golden, S.Ragavan and E.Wasil (editors), The Vehicle Routing Problem: Latest Advances and. Vigo, D., Golden, B., Raghavan, S. and Wasil, E. (2007), Routing a heterogeneous fleet of vehicles, in B.Golden, S.Ragavan and E.Wasil (editors), The Vehicle Routing Problem: Latest Advances and. New Challenges, Springer-Verlag, Heidelberg, Germany, pp 29-48 [13]. C. Archetti, M.G. Speranza (2008), The split delivery vehicle routing problem: a survey, in B.Golden, S.Ragavan and E.Wasil (editors),
- Xem thêm -

Xem thêm: Kết hợp thuật giải Large Neighborhood Search và Simulated Annealing cho một biến thể thực tế của bài toán Vehicle Routing, Kết hợp thuật giải Large Neighborhood Search và Simulated Annealing cho một biến thể thực tế của bài toán Vehicle Routing, Kết hợp thuật giải Large Neighborhood Search và Simulated Annealing cho một biến thể thực tế của bài toán Vehicle Routing, Giới thiệu tổng quan, Đối tượng nghiên cứu

Từ khóa liên quan

Gợi ý tài liệu liên quan cho bạn

Nhận lời giải ngay chưa đến 10 phút Đăng bài tập ngay