Thuật toán heuristic cho mô hình vận tải trực tiếp

Một phần của tài liệu Các phương pháp heuristics giải bài toán định vị và hướng lộ trong hậu cần đô thị (Trang 43 - 45)

Thời điểm bắt đầu của một yêu cầu là thời điểm sớm nhất mà xe taxi có thể phục vụ yêu cầu này. Tiêu chí heuristic của thuật toán là ưu tiên phục vụ các yêu cầu vận tải có thời điểm bắt đầu sớm hơn. Với từng yêu cầu theo thứ tự ưu tiên, thuật toán sẽ tìm kiếm xe taxi gần nhất để phục vụ. Sau khi trả hành khách hoặc trả hàng hóa, xe taxi sẽ di chuyển đến điểm bãi đỗ xe gần nhất để chờ yêu cầu phục vụ tiếp theo. Trong mô hình vận tải trực tiếp, yêu cầu vận tải hành khách và vận tải hàng hóa sẽ được xe taxi phục vụ riêng. Trong mô hình này, yêu cầu vận tải đều được phục vụ kể cả việc đáp ứng không mang lại lợi nhuận. Do đó, một xe taxi có thể phục vụ một hoặc nhiều yêu cầu vận tải theo tuần tự. Mô hình vận tải trực tiếp được thể hiện trong thuật toán 2.1.

Thuật toán 2.1. Thuật toán heuristic cho mô hình vận tải trực tiếp Đầu vào: Đồ thị G=(V, E);

𝑉𝑝𝑜: danh sách yêu cầu đón hành khách;

34

[𝑒𝑖, ℓ𝑖]: khung thời gian cho phép của yêu cầu 𝑖, ∀𝑖 ∈ 𝑉𝑝𝑜∪ 𝑉𝑝𝑑∪ 𝑉𝑓𝑜∪ 𝑉𝑓𝑑;

𝐾: tập hợp các xe taxi.

(Chi tiết các đầu vào trình bày tại 2.2.1)

Đầu ra: 𝑓: tổng lợi nhuận;

Giá trị của các biến.

(Chi tiết các biến trình bày tại 2.2.2)

1. Sắp xếp tất cả yêu cầu 𝑖 ∈ 𝑉𝑝𝑜∪ 𝑉𝑓𝑜 tăng dần theo 𝑒𝑖 và đưa vào vào danh sách 𝑉′; 2. foreach yêu cầu 𝑖 ∈ 𝑉′do

3. Cập nhật trạng thái của tất cả xe taxi 𝑘 ∈ 𝐾 tại thời điểm 𝑒𝑖;

4. Cập nhật trạng thái của tất cả điểm đỗ xe taxi 𝑝 ∈ 𝑉𝑝𝑎 tại thời điểm 𝑒𝑖; 5. if tìm thấy xe taxi 𝑘′∈ 𝐾 gần nhất có thể phục vụ yêu cầu ithen

6. Đưa yêu cầu i vào cuối hành trình hiện tại của taxi 𝑘′; 7. Cập nhật tổng lợi nhuận 𝑓;

8. else

9. Từ chối vận tải yêu cầu i; 10. end if

11. end for

Bước đầu tiên của thuật toán là thực hiện sắp xếp các yêu cầu đón theo thứ tự tăng dần của thời điểm đón (dòng 1). Sau đó, thực hiện duyệt từng yêu cầu đón theo thứ tự đã được sắp xếp (dòng 2). Với mỗi yêu cầu đón, thực hiện cập nhật trạng thái của tất cả xe taxi K và trạng thái các bãi đỗ xe tạm thời (dòng 3, 4). Từ đó, tìm kiếm xe taxi (dòng 5) có khoảng cách gần nhất với điểm đón đang xem xét và thỏa mãn:

• Xe taxi có thể đến điểm đón trong khung thời gian quy định;

• Xe taxi đảm bảo yêu cầu về tải trọng trong trường hợp phục vụ yêu cầu này;

• Xe taxi đảm bảo tuân thủ các yêu cầu vận tải hành khách là phục vụ trực tiếp trong trường hợp phục vụ yêu cầu này;

• Tổng thời gian hoạt động của xe taxi không vượt quá thời gian hoạt động cho phép trong trường hợp phục vụ yêu cầu này.

Trường hợp có thể tìm thấy xe taxi có thể phục vụ yêu cầu đang xem xét thì sẽ đưa yêu cầu này vào cuối hành trình phục vụ của xe taxi (dòng 6). Trường hợp có nhiều xe taxi cùng đáp ứng yêu cầu thì lựa chọn xe taxi đầu tiên thỏa mãn. Sau đó, cập nhật giá trị tổng lợi nhuận (dòng 7). Ngược lại, trong trường hợp không tìm thấy xe taxi đáp ứng yêu cầu thì yêu cầu này bị từ chối, không được phục vụ (dòng 9).

Thuật toán 2.1 bao gồm hai mô-đun chính: mô-đun sắp xếp các yêu cầu và vòng lặp để tìm kiếm, cập nhật trạng thái xe taxi có thể phục vụ yêu cầu vận tải. Mô-đun sắp xếp có độ phức

35

tạp Ο(𝑠 log 𝑠) với s là tổng số các yêu cầu đón hành khách và yêu cầu nhận hàng hóa. Độ phức tạp của mô-đun tìm kiếm và cập nhật trạng thái xe taxi là Ο(|𝐾|). Do đó, độ phức tạp của thuật toán heuristic cho mô hình vận tải trực tiếp là Ο(max(|𝐾| ∗ 𝑠, 𝑠 log 𝑠)).

Một phần của tài liệu Các phương pháp heuristics giải bài toán định vị và hướng lộ trong hậu cần đô thị (Trang 43 - 45)

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

(121 trang)