2014-06-27 31 views
5

Có thể xử lý các mối quan hệ giữa các công việc (trong trường hợp này là dịch vụ) trong jsprit không?Các công việc liên quan trong JSprit

Ví dụ một công việc phải bắt đầu cùng lúc với một hoặc nhiều công việc khác. Hoặc một công việc không được bắt đầu trước khi kết thúc công việc khác (chuỗi thông thường).

Nếu không, bạn có biết các thư viện java khác có thể xử lý các loại hạn chế đó không?

Cảm ơn bạn!

Trả lời

10

Có, bạn có thể xử lý các mối quan hệ như vậy với jsprit. Đó là một chút mã hóa, nhưng - tôi nghĩ - dễ thực hiện. Để minh họa, tôi đã chuẩn bị cho bạn năm ví dụ dựa trên các vấn đề định tuyến xe (VRP) được phát triển bởi Christofides-Mingozzi-Toth * (ví dụ điểm chuẩn đầu tiên). Thực hiện theo các liên kết phía sau các tiêu đề cá nhân và bạn nhận được mã. Lưu ý rằng hoạt động đầu tiên trong một tuyến đường được đánh dấu bằng một hình tam giác. Các nhãn biểu thị jobIds.

noConstraints

noConstraintsAtAll

capacityConstraints

enter image description here

job 13 and 21 in same route

enter image description here

job 13 and 21 in same route AND 21 before 13

enter image description here

job 13 and 21 in same route AND 13 right after 21

enter image description here

Visit http://jsprit.github.io/ và bạn nhận được một số ví dụ mã và tài liệu.

* N. Christofides, A. Mingozzi và P. Toth. Vấn đề định tuyến xe. Trong N. Christofides, A. Mingozzi, P. Toth và C. Sandi, biên tập viên, Tối ưu hóa kết hợp. John Wiley, Chichester, 1979.

Các vấn đề liên quan