Bài toán tối ưu lập lộ trình vận tải trong vận chuyển hàng hóa bằng container Bài toán tối ưu lập lộ trình vận tải trong vận chuyển hàng hóa bằng container Bài toán tối ưu lập lộ trình vận tải trong vận chuyển hàng hóa bằng container luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - ĐẶNG THÁI SƠN BÀI TOÁN TỐI ƯU LẬP LỘ TRÌNH VẬN TẢI TRONG VẬN CHUYỂN HÀNG HĨA BẰNG CONTAINER Chuyên ngành: CÔNG NGHỆ THÔNG TIN LUẬN VĂN THẠC SĨ KỸ THUẬT CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN TS PHẠM QUANG DŨNG Hà Nội - Năm 2019 LỜI CAM ĐOAN Tôi – Đặng Thái Sơn – xin cam đoan · Luận văn tốt nghiệp (LVTN) Thạc sĩ cơng trình nghiên cứu thân tơi hướng dẫn TS Phạm Quang Dũng · Các kết nêu Luận văn tốt nghiệp trung thực, khơng phải chép tồn văn cơng trình khác Hà Nội, ngày 15 tháng 11 năm 2019 Tác giả LVThS Đặng Thái Sơn LỜI CẢM ƠN Tôi xin gửi lời cảm ơn chân thành đến thầy cô công tác trường Đại Học Bách Khoa Hà Nội, thầy cô Viện Công Nghệ Thông Tin Truyền Thông đặc biệt thầy cô môn Khoa học máy tính tạo điều kiện cho tơi học tập nghiên cứu suốt trình học thạc sĩ trường Tôi xin gửi lời cảm ơn tri ân sâu sắc đến thầy TS Phạm Quang Dũng nhiệt tình hướng dẫn, dạy, tạo điều kiện cho tơi tìm hiểu, nghiên cứu hồn thành luận văn tốt nghiệp Với điều kiện thời gian kinh nghiệm hạn chế luận văn khơng thể tránh khỏi thiếu sót, tơi mong nhận sử bảo, đóng góp ý kiến thầy để tơi bổ sung nâng cao kiến thức mình, góp phần ứng dụng tốt kiến thức truyền dạy vào thực tế công việc Tôi xin chân thành cảm ơn! MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN MỤC LỤC DANH MỤC THUẬT NGỮ VÀ TỪ VIẾT TẮT DANH MỤC CÁC BẢNG DANH MỤC CÁC HÌNH VẼ MỞ ĐẦU CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 11 1.1 Bài toán tối ưu hóa tổ hợp 11 1.1.1 Hướng tiếp cận giải 12 1.1.2 Hướng tiếp cận giải gần 12 1.2 Thư viện Google OR Tools 14 1.2.1 Giới thiệu thư viện Google OR Tools 14 1.2.2 Tổng quan loại vấn đề tối ưu hóa tổ hợp Google OR Tools 17 CHƯƠNG 2: BÀI TỐN TỐI ƯU LẬP LỘ TRÌNH VẬN TẢI HÀNG HĨA BẰNG CONTAINER 26 2.1 Giới thiệu toán: 26 2.1.1 Giới thiệu toán 26 2.1.2 Vấn đề lập lộ trình vận tải hàng hóa container 27 2.2 Mơ hình tốn học: 29 2.4 Thuật toán đề xuất 38 2.4.1 Thuật toán heuristic 38 2.4.2 Thuật toán heuristic 39 2.4.3 Thuật toán heuristic 40 2.4.4 Thuật toán heuristic 40 2.4.5 Thuật toán heuristic 41 2.4.6 Thuật toán heuristic 42 2.4.7 Thuật toán heuristic 43 2.4.8 Thuật toán heuristic 44 CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ 45 3.1 Bộ liệu thử nghiệm 45 3.2 Kết thử nghiệm đánh giá: 45 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 53 TÀI LIỆU THAM KHẢO 54 DANH MỤC THUẬT NGỮ VÀ TỪ VIẾT TẮT CP Tên đầy đủ Traveling salesman problem Best first search Genetic Algorithms Ant colony optimization Mixed-Integer programming Constraint programming Port Port Warehouse Truck Trailer Deport container Export laden Warehouse Truck Trailer Deport container Export laden Export empty Export empty Import laden Import laden Import empty Import empty Time window Time service Time window Time service Chữ viết tắt TSP BFS GA ACO MIP Ý nghĩa Bài toán người du lịch Thuật toán best first search Thuật toán genetic algorithms Thuật tốn tối ưu hóa đàn kiến Bộ giải Mixed-Integer programming thư viện Google OR-Tools Bộ giải Constraint programming thư viện Google OR-Tools Cảng hàng hải nhà ga đường sắt nơi mà container vận chuyển đến để bốc dỡ đóng gói hàng hóa Kho chứa hàng hóa Đầu kéo container Romooc mang đầu kéo Kho bãi chứa container Là trình vận chuyển container đầy từ warehouse đến bến cảng nhà ga để xuất Là trình vận chuyển container rỗng đến warehouse để đóng gói hàng hóa Là trình vận chuyển container đầy từ bến cảng nhà ga đến warehouse để bốc dỡ hàng hóa Là q trình vận chuyển container rỗng từ warehouse đến bãi chứa container Khung thời gian Khoảng thời gian để hồn thành cơng việc (ví dụ thời gian để lấy container đặt lên romooc, thời gian để tháo dỡ container cất vào kho hàng… ) DANH MỤC CÁC BẢNG Bảng 1: Danh sách biến thuật toán giải 37 Bảng 2: Danh sách hàm thuật toán giải 37 Bảng 3: Mô tả liệu đầu vào 45 Bảng 4: Kết thử nghiệm thuật toán heuristic 46 Bảng 5: Kết thử nghiệm thuật toán heuristic 46 Bảng 6: Kết thử nghiệm thuật toán heuristic 47 Bảng 7: Kết thử nghiệm thuật toán heuristic 48 Bảng 8: Kết thử nghiệm thuật toán heuristic 48 Bảng 9: Kết thử nghiệm thuật toán heuristic 49 Bảng 10: Kết thử nghiệm thuật toán heuristic 50 Bảng 11: Kết thử nghiệm thuật toán heuristic 50 Bảng 12: Kết thử nghiệm thuật toán giải 51 DANH MỤC CÁC HÌNH VẼ Hình 1: Thuật tốn hill climbing – tối ưu hóa cục 13 Hình 2: Thuật tốn hill climbing – cao ngun 13 Hình 3: Tối ưu hóa tuyến tính – lời giải ví dụ 17 Hình 4: Lời giải tốn đóng gói 20 Hình 5: Ví dụ đồ thị tốn luồng mạng 21 Hình 6: Lời giải toán luồng mạng 22 Hình 7: Lời giải toán lập kế hoạch 25 Hình 8: Mơ tả hoạt động vận tải hàng hóa container 28 Hình 9: Ví dụ đồ thị mơ hình hóa tốn 30 MỞ ĐẦU Đặt vấn đề Tối ưu tổ hợp lĩnh vực nghiên cứu phát triển từ sớm Ngày nay, với phát triển vượt bậc khoa học kỹ thuật, đặc biệt công nghệ thông tin tối ưu tổ hợp nhiều người quan tâm nghiên cứu ứng dụng vào thực tiễn đời sống mang lại hiệu kinh tế cho Một số toán tối ưu tổ hợp điển tốn lập lịch sản xuất cho máy móc, đóng gói hàng hóa vào thùng chứa tốn tìm đường ngắn thành phố Trong vấn đề vận tải hàng hóa container, xe tải thường xuyên phải di chuyển kho bãi, nhà ga, hải cảng để đáp ứng yêu cầu vận tải khách hàng doanh nghiệp Việc lập lộ trình cho xe tải công việc thường xuyên doanh nghiệp phải đảm bảo lộ trình phương án tốt nhằm giảm thiểu chi phí xăng dầu phương tiện, tiết kiệm thời gian di chuyển tài xế, từ nâng cao hiệu kinh tế cho doanh nghiệp Chính lý nên chúng tơi chọn chủ đề nghiên cứu “Bài tốn tối ưu lập lộ trình vận tải vận chuyển hàng hóa container” với nội dung nghiên cứu kỹ thuật tối ưu hóa tổ hợp nhằm đề xuất số thuật tốn heurictis lập lộ trình cho xe tải với thời gian tính tốn nhanh chất lượng lời giải tốt Phương pháp đề xuất Hiện nay, có phương pháp để giải tốn ví dụ sử dụng thuật tốn tìm kiếm xác giải thuật quy hoạch tuyến tính, quy hoạch hỗn hợp Tuy nhiên tốn cỡ lớn thuật tốn tỏ khơng hiệu quả, tốn NP-Khó, việc tìm kiếm lời giải dẫn tới bùng nổ tổ hợp, đồng thời tiêu tốn nhiều tài nguyên máy tính, khó tìm lời giải thời gian nhanh chóng Vì vậy, luận văn chúng tơi tiếp cận giải tốn theo phương pháp heuristic Thuật tốn heurictic cho phép tìm kiếm nhanh chóng, cho lời giải đủ tốt để đưa lộ trình hợp lý tốn vận tải hàng hóa Mục tiêu nghiên cứu Tìm hiểu tốn tối ưu lập lộ trình vận tải vận chuyển hàng hóa container Tìm hiểu mơ hình quy hoạch hỗn hợp (mixed integer programing) cho toán đặt Đề xuất thuật toán heurictis với chất lượng lời giải tốt cho kết thời gian ngắn hơn, sau đánh giá kết nghiên cứu đưa định hướng phát triển đề tài Bố cục luận văn Bố cục luận văn bao gồm nội dung sau · Mở đầu: Đặt vấn đề đưa hướng nghiên cứu toán · Chương 1: Cơ sở lý thuyết Giới thiệu tốn tối ưu hóa tổ hợp, hướng tiếp cận giải tốn tối ưu hóa tổ hợp, giới thiệu thư viện Google OR Tool · Chương 2: Bài tốn tối lập lộ trình vận tải vận chuyển hàng hóa container Giới thiệu tốn lập lộ trình vận tải vận chuyển hàng hóa, đưa mơ hình tốn học đề xuất thuật toán heuristic · Chương 3: Thực nghiệm đánh giá Tiến hành trình thực nghiệm dựa thuật tốn heurictic đề xuất, sau đánh giá kết đạt · Kết luận: Đưa kết luận chung cho kết nghiên cứu luận văn định hướng phát triển đề tài 10 Thêm r vào truckMovei Chuyển trạng thái r sang phục vụ End If End For End While 2.4.3 Thuật toán heuristic Ý tưởng thuật toán: với truck i ta thực tìm kiếm request (tìm bốn loại request IL, IE, EL, EE) chưa phục vụ cho tất ràng buộc thỏa mãn tổng thời gian di chuyển truck đến sau hồn thành request nhỏ Quá trình tìm kiếm request truck k tiếp tục khơng tìm kiếm request thỏa mãn tất ràng buộc, ta chuyển sang truck để tìm kiếm Giả mã thuật toán Ký hiệu K: tập truck Ký hiệu i: truck i ∈ K Ký hiệu r: request tốn, thuộc loại request IE, IL, EE EL Ký hiệu truckMovei: mảng point mà truck i qua i=1 While (cịn u cầu chưa phục vụ) Tìm kiếm request r chưa phục vụ cho sau thêm điểm hoàn thành request r vào sau truckMovei ràng buộc thỏa mãn tổng thời gian di chuyển truck nhỏ If(r != null) If(truck i chưa có trailer) Thêm trailer t gần truck i vào truckMovei End If Thêm r vào truckMovei Chuyển trạng thái r sang phục vụ End If If (khơng tìm thấy request thỏa mãn i+1 ∈ K) i=i+1 Else break End If End While 2.4.4 Thuật toán heuristic Ý tưởng thuật toán: với truck i ta thực tìm kiếm request (tìm bốn loại request IL, IE, EL, EE) chưa phục vụ cho tất ràng buộc thỏa mãn tổng thời gian di chuyển truck đến điểm để thực request 40 nhỏ Quá trình tìm kiếm request truck k tiếp tục khơng tìm kiếm request thỏa mãn tất ràng buộc, ta chuyển sang truck để tìm kiếm Giả mã thuật toán Ký hiệu K: tập truck Ký hiệu i: truck i ∈ K Ký hiệu r: request tốn, thuộc loại request IE, IL, EE EL Ký hiệu truckMovei: mảng point mà truck i qua i=1 While (còn yêu cầu chưa phục vụ) Tìm kiếm request r chưa phục vụ cho sau thêm điểm để bắt đầu thực request r vào sau truckMovei ràng buộc thỏa mãn tổng thời gian di chuyển truck nhỏ If(r != null) If(truck i chưa có trailer) Thêm trailer t gần truck i vào truckMovei End If Thêm r vào truckMovei Chuyển trạng thái r sang phục vụ End If If (khơng tìm thấy request thỏa mãn i+1 ∈ K) i=i+1 Else break End If End While 2.4.5 Thuật toán heuristic Ý tưởng thuật tốn: tìm kiếm truck i request r (tìm bốn loại request IL, IE, EL, EE) chưa phục vụ cho tất ràng buộc thỏa mãn tổng thời gian di chuyển truck đến sau hoàn thành request nhỏ so với truck cịn lại thực request Quá trình tìm kiếm tiếp tục tất request phục vụ Giả mã thuật toán Ký hiệu K: tập truck Ký hiệu i: truck i ∈ K Ký hiệu r: request tốn, thuộc loại request IE, IL, EE EL Ký hiệu truckMovei: mảng point mà truck i qua Ký hiệu truckTempi: mảng lưu thông tin truck i thực request nhỏ nhất, phần tử mảng lưu thông tin truck i, request r thời gian di chuyển truck i để thực request r 41 For each i ∈ K Tìm kiếm request r chưa phục vụ cho sau thêm điểm hồn thành request r vào sau truckMovei ràng buộc thỏa mãn tổng thời gian di chuyển truck nhỏ If(r !=null) Lưu truck i, request r thời gian truck i thực request r vào truckTempi (truckTempi={0:i, 1:r, 2: thời gian di chuyển}) Else truckTempi=null End If End For While (cịn u cầu chưa phục vụ) Tìm kiếm truckTempi có thời gian thực nhỏ nhất, sau ta lấy truck i request r lưu truckTempi If(truck i chưa có trailer) Thêm trailer t gần truck i vào truckMovei End If Thêm r vào truckMovei Chuyển trạng thái r sang phục vụ End While 2.4.6 Thuật toán heuristic Ý tưởng thuật tốn: tìm kiếm truck i request r (tìm bốn loại request IL, IE, EL, EE) chưa phục vụ cho tất ràng buộc thỏa mãn tổng thời gian di chuyển truck đến điểm để thực request nhỏ so với truck lại thực request Q trình tìm kiếm tiếp tục tất request phục vụ Giả mã thuật toán Ký hiệu K: tập truck Ký hiệu i: truck i ∈ K Ký hiệu r: request tốn, thuộc loại request IE, IL, EE EL Ký hiệu truckMovei: mảng point mà truck i qua Ký hiệu truckTempi: mảng lưu thông tin truck i thực request nhỏ nhất, phần tử mảng lưu thông tin truck i, request r thời gian di chuyển truck i để thực request r For each i ∈ K Tìm kiếm request r chưa phục vụ cho sau thêm điểm để thực request r vào sau truckMovei ràng buộc thỏa mãn tổng thời gian di chuyển truck nhỏ If(r !=null) 42 Lưu truck i, request r thời gian truck i thực request r vào truckTempi (truckTempi={0:i, 1:r, 2: thời gian di chuyển}) Else truckTempi=null End If End For While (cịn u cầu chưa phục vụ) Tìm kiếm truckTempi có thời gian thực nhỏ nhất, sau ta lấy truck i request r lưu truckTempi If(truck i chưa có trailer) Thêm trailer t gần truck i vào truckMovei End If Thêm r vào truckMovei Chuyển trạng thái r sang phục vụ End While 2.4.7 Thuật tốn heuristic Ý tưởng thuật tốn: tìm kiếm truck i có tổng thời gian di chuyển so với truck cịn lại, sau ta thực tìm kiếm request (tìm bốn loại request IL, IE, EL, EE) chưa phục vụ cho tất ràng buộc thỏa mãn tổng thời gian di chuyển truck đến sau hồn thành request nhỏ Q trình tìm kiếm tiếp tục tất request phục vụ Giả mã thuật toán Ký hiệu K: tập truck Ký hiệu i: truck i ∈ K Ký hiệu r: request tốn, thuộc loại request IE, IL, EE EL Ký hiệu truckMovei: mảng point mà truck i qua Ký hiệu truckStatusi: mảng đánh dấu trạng thái truck (bằng False truck i tìm kiếm request thỏa mãn ràng buộc, True trường hợp lại) While (còn yêu cầu chưa phục vụ) Tìm kiếm truck i có thời gian di chuyển truckStatusi==True Tìm kiếm request r chưa phục vụ cho sau thêm điểm hoàn thành request r vào sau truckMovei ràng buộc thỏa mãn tổng quãng đường truck nhỏ If(r != null) If(truck i chưa có trailer) Thêm trailer t gần truck i vào truckMovei End If Thêm r vào truckMovei Chuyển trạng thái r sang phục vụ Else 43 truckStatusi=False End If End While 2.4.8 Thuật toán heuristic Ý tưởng thuật tốn: tìm kiếm truck i có tổng thời gian di chuyển so với truck cịn lại, sau ta thực tìm kiếm request (tìm bốn loại request IL, IE, EL, EE) chưa phục vụ cho tất ràng buộc thỏa mãn tổng thời gian di chuyển truck đến đến điểm để thực request nhỏ Q trình tìm kiếm tiếp tục tất request phục vụ Giả mã thuật toán Ký hiệu K: tập truck Ký hiệu i: truck i ∈ K Ký hiệu r: request tốn, thuộc loại request IE, IL, EE EL Ký hiệu truckMovei: mảng point mà truck i qua Ký hiệu truckStatusi: mảng đánh dấu trạng thái truck (bằng False truck i khơng thể tìm kiếm request thỏa mãn ràng buộc, True trường hợp lại) While (còn yêu cầu chưa phục vụ) Tìm kiếm truck i có thời gian di chuyển truckStatusi==True Tìm kiếm request r chưa phục vụ cho sau thêm điểm để bắt đầu thực request r vào sau truckMovei ràng buộc thỏa mãn tổng quãng đường truck nhỏ If(r != null) If(truck i chưa có trailer) Thêm trailer t gần truck i vào truckMovei End If Thêm r vào truckMovei Chuyển trạng thái r sang phục vụ Else truckStatusi=False End If End While 44 CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ 3.1 Bộ liệu thử nghiệm Chúng tiến hành thử nghiệm thuật toán đề xuất 21 liệu tạo ngẫu nhiên, liệu chia thành loại: · Loại gồm có liệu gồm có request · Loại gồm có liệu, có 20 request · Loại gồm có liệu, có 100 request · Loại gồm có liệu, có 150 request · Loại gồm có liệu, có 200 request · Loại gồm có liệu gồm có 800 request Bảng mô tả chi tiết liệu Bảng 3: Mô tả liệu đầu vào Loại Bộ liệu 1EE-1IL-1IE-1EL 5EE-5IL-5IE-5EL-1 5EE-5IL-5IE-5EL-2 5EE-5IL-5IE-5EL-3 5EE-5IL-5IE-5EL-4 5EE-5IL-5IE-5EL-5 25EE-25IL-25IE-25EL-1 25EE-25IL-25IE-25EL-2 25EE-25IL-25IE-25EL-3 25EE-25IL-25IE-25EL-4 25EE-25IL-25IE-25EL-5 35EE-40IL-40IE-35EL-1 35EE-40IL-40IE-35EL-2 35EE-40IL-40IE-35EL-3 35EE-40IL-40IE-35EL-4 35EE-40IL-40IE-35EL-5 50EE-50IL-50IE-50EL-1 50EE-50IL-50IE-50EL-2 50EE-50IL-50IE-50EL-3 50EE-50IL-50IE-50EL-4 50EE-50IL-50IE-50EL-5 200EE-200IL-200IE-200EL 3.2 EE 5 5 25 25 25 25 25 35 35 35 35 35 50 50 50 50 50 200 IL 5 5 25 25 25 25 25 40 40 40 40 40 50 50 50 50 50 200 IE 5 5 25 25 25 25 25 40 40 40 40 40 50 50 50 50 50 200 EL 5 5 25 25 25 25 25 35 35 35 35 35 50 50 50 50 50 200 Số truck 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 Kết thử nghiệm đánh giá: Môi trường thử nghiệm sử dụng máy tính Intel Core i5-8400 2.80GHz có nhớ Ram 16Gb, hệ điều hành Window 10 64-bit 45 Kếu thử nghiệm thuật toán đề xuất sau: Bảng 4: Kết thử nghiệm thuật toán heuristic Bộ liệu 1EE-1IL-1IE-1EL 5EE-5IL-5IE-5EL-1 5EE-5IL-5IE-5EL-2 5EE-5IL-5IE-5EL-3 5EE-5IL-5IE-5EL-4 5EE-5IL-5IE-5EL-5 25EE-25IL-25IE-25EL-1 25EE-25IL-25IE-25EL-2 25EE-25IL-25IE-25EL-3 25EE-25IL-25IE-25EL-4 25EE-25IL-25IE-25EL-5 35EE-40IL-40IE-35EL-1 35EE-40IL-40IE-35EL-2 35EE-40IL-40IE-35EL-3 35EE-40IL-40IE-35EL-4 35EE-40IL-40IE-35EL-5 50EE-50IL-50IE-50EL-1 50EE-50IL-50IE-50EL-2 50EE-50IL-50IE-50EL-3 50EE-50IL-50IE-50EL-4 50EE-50IL-50IE-50EL-5 200EE-200IL-200IE-200EL Thời gian thực thuật toán 0.0109s 0.0259s 0.0219s 0.0279s 0.0299s 0.0229s 0.4402s 0.4677s 0.4647s 0.4338s 0.4393s 1.0356s 0.9613s 1.0132s 0.9714s 1.0122s 1.9411s 1.8661s 1.8579s 2.0926s 1.8862s 31m 1s Thời gian truck di chuyển 1m 12s 197h 58m 13s 247h 19m 21s 192h 16m 55s 190h 23m 39s 224h 43m 56s 335h 55m 1s 340h 49m 47s 335h 59m 6s 311h 55m 13s 317h 30m 10s 334h 7m 18s 341h 15m 18s 334h 42m 17s 342h 12m 19s 331h 8m 6s 348h 41m 8s 348h 24m 29s 347h 56m 38s 351h 10m 37s 348h 1m 18s 3123h 57m 58s Số truck sử dụng Tổng số truck 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 200 Bảng 5: Kết thử nghiệm thuật toán heuristic Bộ liệu 1EE-1IL-1IE-1EL 5EE-5IL-5IE-5EL-1 5EE-5IL-5IE-5EL-2 5EE-5IL-5IE-5EL-3 5EE-5IL-5IE-5EL-4 5EE-5IL-5IE-5EL-5 25EE-25IL-25IE-25EL-1 25EE-25IL-25IE-25EL-2 25EE-25IL-25IE-25EL-3 25EE-25IL-25IE-25EL-4 Thời gian thực thuật toán 0.0019s 0.0389s 0.0338s 0.0299s 0.0388s 0.0369s 0.3640s 0.3191s 0.3894s 0.3590s Thời gian truck di chuyển 1m 12s 198h 1m 1s 247h 54m 15s 192h 53m 48s 190h 25m 57s 224h 34m 31s 334h 2m 38s 341h 14m 29s 336h 43m 23s 312h 12m 19s Số truck sử dụng Tổng số truck 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46 25EE-25IL-25IE-25EL-5 35EE-40IL-40IE-35EL-1 35EE-40IL-40IE-35EL-2 35EE-40IL-40IE-35EL-3 35EE-40IL-40IE-35EL-4 35EE-40IL-40IE-35EL-5 50EE-50IL-50IE-50EL-1 50EE-50IL-50IE-50EL-2 50EE-50IL-50IE-50EL-3 50EE-50IL-50IE-50EL-4 50EE-50IL-50IE-50EL-5 200EE-200IL-200IE-200EL 0.3081s 0.6227s 0.5983s 0.6174s 0.6632s 0.6134s 1.2554s 1.2003s 1.2467s 1.2445s 1.2361s 19m 1s 317h 53m 41s 333h 25m 37s 340h 6m 33s 334h 58m 21s 343h 13m 31s 329h 30m 55s 346h 56m 29s 347h 52m 6s 347h 40m 22s 350h 30m 17s 349h 5m 12s 3122h 36m 29s 20 20 20 20 20 20 20 20 20 20 20 200 20 20 20 20 20 20 20 20 20 20 20 200 Bảng 6: Kết thử nghiệm thuật toán heuristic Bộ liệu 1EE-1IL-1IE-1EL 5EE-5IL-5IE-5EL-1 5EE-5IL-5IE-5EL-2 5EE-5IL-5IE-5EL-3 5EE-5IL-5IE-5EL-4 5EE-5IL-5IE-5EL-5 25EE-25IL-25IE-25EL-1 25EE-25IL-25IE-25EL-2 25EE-25IL-25IE-25EL-3 25EE-25IL-25IE-25EL-4 25EE-25IL-25IE-25EL-5 35EE-40IL-40IE-35EL-1 35EE-40IL-40IE-35EL-2 35EE-40IL-40IE-35EL-3 35EE-40IL-40IE-35EL-4 35EE-40IL-40IE-35EL-5 50EE-50IL-50IE-50EL-1 50EE-50IL-50IE-50EL-2 50EE-50IL-50IE-50EL-3 50EE-50IL-50IE-50EL-4 50EE-50IL-50IE-50EL-5 200EE-200IL-200IE-200EL Thời gian thực thuật toán 0.0099s 0.0099s 0.0129s 0.0169s 0.0099s 0.0119s 0.1007s 0.0957s 0.1018s 0.1056s 0.1090s 0.2114s 0.2194s 0.2144s 0.2254s 0.2682s 0.4109s 0.4089s 0.5495s 0.4694s 0.4223s 47.227s Thời gian truck di chuyển 1m 12s 27h 35m 25s 43h 19m 15s 30h 27m 59s 30h 30m 30s 34h 24m 40s 96h 2m 6s 97h 41m 35s 106h 59m 49s 92h 51m 22s 89h 52m 52s 132h 25m 47s 145h 8m 22s 137h 11m 36s 131h 17m 31s 128h 37m 1s 179h 34m 14s 175h 7m 27s 178h 50m 29s 173h 0m 9s 171h 20m 49s 450h 36m 56s Số truck sử dụng Tổng số truck 2 2 6 8 7 10 10 10 10 28 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 200 47 Bảng 7: Kết thử nghiệm thuật toán heuristic Bộ liệu 1EE-1IL-1IE-1EL 5EE-5IL-5IE-5EL-1 5EE-5IL-5IE-5EL-2 5EE-5IL-5IE-5EL-3 5EE-5IL-5IE-5EL-4 5EE-5IL-5IE-5EL-5 25EE-25IL-25IE-25EL-1 25EE-25IL-25IE-25EL-2 25EE-25IL-25IE-25EL-3 25EE-25IL-25IE-25EL-4 25EE-25IL-25IE-25EL-5 35EE-40IL-40IE-35EL-1 35EE-40IL-40IE-35EL-2 35EE-40IL-40IE-35EL-3 35EE-40IL-40IE-35EL-4 35EE-40IL-40IE-35EL-5 50EE-50IL-50IE-50EL-1 50EE-50IL-50IE-50EL-2 50EE-50IL-50IE-50EL-3 50EE-50IL-50IE-50EL-4 50EE-50IL-50IE-50EL-5 200EE-200IL-200IE-200EL Thời gian thực thuật toán 0.0019s 0.0169s 0.0089s 0.0199s 0.0229s 0.0179s 0.0558s 0.0670s 0.0676s 0.0722s 0.0674s 0.0987s 0.1022s 0.0959s 09970s 0.1017s 0.1615s 0.1760s 0.1660s 0.1795s 0.1672s 9.3990s Thời gian truck di chuyển 1m 12s 32h 9m 41s 55h 33m 37s 44h 55m 36s 67h 32m 22s 58h 41m 49s 129h 31m 21s 144h 2m 44s 131h 11m 26s 129h 47m 51s 129h 24m 24s 171h 16m 57s 175h 55m 43s 172h 16m 55s 197h 22m 16s 187h 16m 55s 220h 5m 14s 220h 39m 12s 244h 53m 29s 240h 26m 18s 248h 32m 13s 683h 19m 36s Số truck sử dụng Tổng số truck 2 10 9 11 10 10 11 11 13 13 14 15 14 53 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 200 Số truck sử dụng Tổng số truck 4 12 11 11 13 10 14 20 20 20 20 20 20 20 20 20 20 20 Bảng 8: Kết thử nghiệm thuật toán heuristic Bộ liệu 1EE-1IL-1IE-1EL 5EE-5IL-5IE-5EL-1 5EE-5IL-5IE-5EL-2 5EE-5IL-5IE-5EL-3 5EE-5IL-5IE-5EL-4 5EE-5IL-5IE-5EL-5 25EE-25IL-25IE-25EL-1 25EE-25IL-25IE-25EL-2 25EE-25IL-25IE-25EL-3 25EE-25IL-25IE-25EL-4 25EE-25IL-25IE-25EL-5 35EE-40IL-40IE-35EL-1 Thời gian thực thuật toán 0.0099s 0.2453s 0.2682s 0.2842s 0.2502s 0.3041s 8.5892s 9.8545s 8.5516s 6.8509s 8.1082s 13.871s Thời gian truck di chuyển 1m 12s 61h 3m 49s 70h 6m 34s 43h 49m 25s 56h 7m 36s 52h 45m 30s 164h 21m 3s 191h 55m 29s 187h 48m 12s 157h 17m 26s 135h 17m 7s 211h 48m 47s 48 35EE-40IL-40IE-35EL-2 35EE-40IL-40IE-35EL-3 35EE-40IL-40IE-35EL-4 35EE-40IL-40IE-35EL-5 50EE-50IL-50IE-50EL-1 50EE-50IL-50IE-50EL-2 50EE-50IL-50IE-50EL-3 50EE-50IL-50IE-50EL-4 50EE-50IL-50IE-50EL-5 200EE-200IL-200IE-200EL 18.879s 16.397s 16.370s 12.773s 16.276s 23.344s 22.356s 18.670s 21.133s 2h 39m 17s 260h 57m 53s 16 212h 55m 17s 13 215h 22m 55s 13 265h 34m 18s 18 283h 50m 41s 18 287h 14m 31s 19 300h 2m 47s 20 299h 50m 4s 19 300h 45m 58s 18 685h 42m 13s 20 20 20 20 20 20 20 20 20 20 200 Bảng 9: Kết thử nghiệm thuật toán heuristic Bộ liệu 1EE-1IL-1IE-1EL 5EE-5IL-5IE-5EL-1 5EE-5IL-5IE-5EL-2 5EE-5IL-5IE-5EL-3 5EE-5IL-5IE-5EL-4 5EE-5IL-5IE-5EL-5 25EE-25IL-25IE-25EL-1 25EE-25IL-25IE-25EL-2 25EE-25IL-25IE-25EL-3 25EE-25IL-25IE-25EL-4 25EE-25IL-25IE-25EL-5 35EE-40IL-40IE-35EL-1 35EE-40IL-40IE-35EL-2 35EE-40IL-40IE-35EL-3 35EE-40IL-40IE-35EL-4 35EE-40IL-40IE-35EL-5 50EE-50IL-50IE-50EL-1 50EE-50IL-50IE-50EL-2 50EE-50IL-50IE-50EL-3 50EE-50IL-50IE-50EL-4 50EE-50IL-50IE-50EL-5 200EE-200IL-200IE-200EL Thời gian thực thuật toán 0.0019s 0.1476s 0.2293s 0.2283s 0.2263s 0.2443s 1.6266s 1.2895s 1.1948s 1.0122s 0.8856s 1.8149s 2.1283s 1.7423s 1.5917s 1.9478s 2.6190s 2.0335s 2.5025s 2.0145s 2.9121s 2h 14m 9s Thời gian truck di chuyển 1m 12s 60h 59m 37s 82h 53m 48s 68h 24m 44s 96h 59m 18s 75h 26m 32s 216h 26m 39s 248h 23m 16s 240h 49m 33s 228h 21m 58s 217h 24m 49s 275h 17m 29s 288h 50m 52s 263h 49m 50s 316h 43m 13s 303h 55m 2s 327h 36m 8s 311h 37m 44s 328h 11m 10s 344h 15m 21s 332h 4m 39s 700h 30m 9s Số truck sử dụng Tổng số truck 15 16 15 19 17 20 18 18 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 200 49 Bảng 10: Kết thử nghiệm thuật toán heuristic Bộ liệu 1EE-1IL-1IE-1EL 5EE-5IL-5IE-5EL-1 5EE-5IL-5IE-5EL-2 5EE-5IL-5IE-5EL-3 5EE-5IL-5IE-5EL-4 5EE-5IL-5IE-5EL-5 25EE-25IL-25IE-25EL-1 25EE-25IL-25IE-25EL-2 25EE-25IL-25IE-25EL-3 25EE-25IL-25IE-25EL-4 25EE-25IL-25IE-25EL-5 35EE-40IL-40IE-35EL-1 35EE-40IL-40IE-35EL-2 35EE-40IL-40IE-35EL-3 35EE-40IL-40IE-35EL-4 35EE-40IL-40IE-35EL-5 50EE-50IL-50IE-50EL-1 50EE-50IL-50IE-50EL-2 50EE-50IL-50IE-50EL-3 50EE-50IL-50IE-50EL-4 50EE-50IL-50IE-50EL-5 200EE-200IL-200IE-200EL Thời gian thực thuật toán 0.0119s 0.0538s 0.0558s 0.0518s 0.0757s 0.0608s 0.4457s 0.3300s 0.3520s 0.3301s 0.3271s 0.6472s 0.7011s 0.6791s 0.7450s 0.8088s 1.2027s 1.2077s 1.2286s 1.1977s 1.1479s 18m 14s Thời gian truck di chuyển 1m 12s 197h 58m 13s 247h 19m 21s 192h 16m 55s 190h 23m 39s 224h 43m 56s 250h 32m 13s 238h 21m 59s 225h 12m 4s 218h 23m 19s 211h 56m 13s 224h 13m 4s 258h 13m 57s 249h 7m 46s 249h 48m 35s 222h 25m 14s 242h 24m 3s 240h 25m 10s 267h 45m 14s 246h 4m 23s 260h 12m 3s 2038h 48m 14s Số truck sử dụng Tổng số truck 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 200 Bảng 11: Kết thử nghiệm thuật toán heuristic Bộ liệu 1EE-1IL-1IE-1EL 5EE-5IL-5IE-5EL-1 5EE-5IL-5IE-5EL-2 5EE-5IL-5IE-5EL-3 5EE-5IL-5IE-5EL-4 5EE-5IL-5IE-5EL-5 25EE-25IL-25IE-25EL-1 25EE-25IL-25IE-25EL-2 25EE-25IL-25IE-25EL-3 25EE-25IL-25IE-25EL-4 25EE-25IL-25IE-25EL-5 35EE-40IL-40IE-35EL-1 Thời gian thực thuật toán 0.0109s 0.0398s 0.0438s 0.0438s 0.0438s 0.0488s 0.2722s 0.1196s 0.1256s 0.0937s 0.0927s 0.2234s Thời gian truck di chuyển 1m 12s 198h 32m 36s 246h 50m 43s 193h 12m 21s 190h 32m 56s 225h 14m 20s 276h 19m 25s 275h 40m 29s 268h 31m 30s 256h 58m 2s 255h 32m 9s 287h 1m 2s Số truck sử dụng Tổng số truck 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 35EE-40IL-40IE-35EL-2 35EE-40IL-40IE-35EL-3 35EE-40IL-40IE-35EL-4 35EE-40IL-40IE-35EL-5 50EE-50IL-50IE-50EL-1 50EE-50IL-50IE-50EL-2 50EE-50IL-50IE-50EL-3 50EE-50IL-50IE-50EL-4 50EE-50IL-50IE-50EL-5 200EE-200IL-200IE-200EL 0.1415s 0.1296s 0.1505s 0.1376s 0.2393s 0.2373s 0.1874s 0.2642s 0.2632s 24.969s 309h 37m 35s 289h 5m 24s 310h 22m 39s 292h 34m 26s 316h 58m 1s 319h 8m 3s 321h 11m 19s 329h 23m 43s 328h 38m 0s 2209h 31m 45s 20 20 20 20 20 20 20 20 20 200 20 20 20 20 20 20 20 20 20 200 Kết thử nghiệm thuật toán giải sử dụng thư viện Google OR Tool Sau thử nghiệm thuật toán giải sử dụng thư viện Google OR Tool nhận thấy liệu 2, 3, 4, thuật toán chưa đưa lời giải thời gian khoảng tiếng Đối với liệu có kết sau Bảng 12: Kết thử nghiệm thuật toán giải Bộ liệu 1EE-1IL-1IE-1EL Thời gian thực thuật toán 31m 23s Thời gian truck di chuyển 1m 11s Số truck sử dụng Tổng số truck 2 Bảng kết cho thấy việc thực giải thuật heuristic có tốc độ nhanh thực phương pháp tìm kiếm lời giải xác Đối với thuật toán heuristic thuật toán heuristic sử dụng hết toàn số truck liệu, thời gian thực thuật toán heuristic liệu lớn lâu thuật toán heuristic Ở số liệu thuật tốn heuristic có tổng thời gian di chuyển truck tối ưu Tóm lại hai thuật khơng có chênh lệch đáng kể thời gian chạy giải thuật tổng thời gian di chuyển truck, có kết chưa tốt sử dụng hết số lượng truck tổng thời gian di chuyển truck nhiều Đối với liệu lớn thời gian tìm kiếm lâu thuật toán heuristic Thuật toán heuristic thuật tốn heuristic có tổng thời gian di chuyển truck nhỏ số thuật tốn cịn, ngồi số truck sử dụng thời gian chạy thuật tốn tương đối nhỏ Thuật toán heuristic thuật toán heuristic có tổng thời gian di chuyển truck nhiều thuật toán heuristic 4, lại đáng kể so với thuật toán heuristic Đối với liệu nhỏ hai thuật tốn khơng sử dụng hết số lượng truck 51 Thuật toán heuristic thuật toán heurictic sử dụng hết số lượng truck lần thử nghiệm tổng thời gian di chuyển truck khơng tốt thuật tốn heuristic 3, 4, Như thuật toán heuristic tốt số thuật toán đề xuất 52 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Kết luận Trong luận văn này, khảo sát tốn tối ưu lập lộ trình vận tải vận chuyển hàng hóa container Chúng tơi mơ tả mơ hình quy hoạch hỗn hợp (mixed integer programing) cho tốn đặt Mơ hình chạy thử nghiệm Google OR-Tool, nhiên Google OR-Tool cho kết với số request nhỏ request thời gian khoảng 30 phút Tiếp chúng tơi đề xuất cài đặt thử nghiệm thuật toán heuristic để giải toán Kết thử nghiệm số liệu ngẫu nhiên cho thấy thuật toán heuristic cho kết tốt đa số trường hợp Hướng phát triển đề tài Qua việc nghiên cứu tìm hiểu tốn tối ưu lập lộ trình vận tải vận chuyển hàng hóa container, tơi nhận thấy cần phải phát triển tốn theo định hướng sau - Tìm tịi, thử nghiệm chiến lược tìm kiếm để đạt hiệu tốt hơn, giảm số truck sử dụng, giảm thời gian tính tốn máy tính đồng thời tối ưu tổng thời gian di chuyển tất truck - Mở rộng yêu cầu ràng buộc để toán gần với thực tế hoạt động doanh nghiệp - Thiết kế xây dựng chương trình có giao diện thân thiện, dễ sử dụng người dùng cuối 53 TÀI LIỆU THAM KHẢO [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] Bruce Golden, S Raghavan, Edward Wasil The vehicle routing problem: latest advances new challenges Springer, 2008 Catherine Lewis Linear programming - Theory and applications, 2008 Chris Groer, Bruce Golden, and Edward Wasil A libarary of local search heuristics for the vehicle routing problem Math Prog Comp vol 2, 2010 David L Applegate, Robert E Bixby, Vašek Chvátal, William J Cook The Traveling Salesman Problem: A Computational Study, 2nd Printing Edition, 2006 El-Ghazali Talbi Metahueristics from design to implementation, 2009 Herbert Kopfer, Jörn Schönberger, Sebastian Sterzik, Ruiyou Zhang Optimization of Inland Container Transportation with and without Container Sharing, 2011 Jens Clausen Branch and Bound Algorithms - Principles and Examples, 1999 Joseph Y-T Leung Handbook of Scheduling Chapman & Hall/CRC computer and information science series, 2000 Michael D Moffitt, Martha E Pollack Optimal rectangle packing: A meta-CSP approach In Proceedings of the 16th International Conference on Automated Planning and Scheduling, 2006 Michael Marte Models and Algorithms for School Timetabling – A Constraint Programing Approach PhD thesis, 2002 Pascal Van Hentenryck and Laurent Michel Constraint-based Local search The MIT Press, 2005 Peter Norvig Artificial Intelligence: A Modern Approach 2nd, 2003 Pierre Hansen, Nenad Mladenovic, José Andrés Moreno-Pérez Variable neighbourhood search: Methods and applications, 2008 Rossi F, VanBeek P, Walsh T Handbook of Contraint Programming, Elsevier, 2006 Ruiyou Zhang, Young Won Yun, Herbert Kopfer Heuristic-based truck scheduling for inland container transportation, 2010 Stefan Edelkamp, Stefan Schroedl Heuristic Search: Theory and Applications 1st Edition, 2008 Thomas S Ferguson Linear programming - A concise introduction, 2008 Wang X, Regan AC Local truckload pickup and delivery with hard time window constraints, 2002 Wen S, Zhou P A container vehicle routing model with variable traveling time, 2007 54 ... tốn lập kế hoạch 25 CHƯƠNG 2: BÀI TOÁN TỐI ƯU LẬP LỘ TRÌNH VẬN TẢI HÀNG HĨA BẰNG CONTAINER 2.1 Giới thiệu toán: 2.1.1 Giới thiệu toán Lập lộ trình vận tải hàng hóa container việc xây dựng lộ trình. .. LÝ THUYẾT 1.1 Bài toán tối ưu hóa tổ hợp Tối ưu hóa tổ hợp [14] nhánh tối ưu hóa tốn học Bài tốn tối ưu hóa tổ hợp tốn tìm kiếm giải pháp tối ưu lời giải tốt gần với giải pháp tối ưu số khả hữu... nhanh chóng, cho lời giải đủ tốt để đưa lộ trình hợp lý tốn vận tải hàng hóa Mục tiêu nghiên cứu Tìm hiểu tốn tối ưu lập lộ trình vận tải vận chuyển hàng hóa container Tìm hiểu mơ hình quy hoạch