Giải pháp được chèn vào yêu cầu bao gồm thông tin về những lượt truy cập nào phải được hạn chế và cách các lượt truy cập đó phải được hạn chế.
Biểu diễn dưới dạng JSON |
---|
{ "routes": [ { object ( |
Trường | |
---|---|
routes[] |
Tuyến đường của giải pháp cần chèn. Một số tuyến có thể bị loại khỏi giải pháp ban đầu. Các tuyến đường và lô hàng bị bỏ qua phải đáp ứng các giả định cơ bản về tính hợp lệ được liệt kê cho |
skippedShipments[] |
Bỏ qua các khâu vận chuyển giải pháp cần đưa vào. Một số giá trị có thể bị loại khỏi giải pháp ban đầu. Xem trường |
constraintRelaxations[] |
Đối với không có hoặc nhiều nhóm phương tiện, hãy chỉ định thời điểm và mức độ nới lỏng các hạn chế. Nếu trường này trống, thì mọi tuyến đường của xe không trống đều bị hạn chế hoàn toàn. |
ConstraintRelaxation
Đối với một nhóm phương tiện, hãy xác định giới hạn ở(các) ngưỡng nào đối với lượt ghé thăm sẽ được nới lỏng và ở mức nào. Các lô hàng được liệt kê trong trường skipped_shipment
bị hạn chế không được bỏ qua; tức là không thể thực hiện những lô hàng này.
Biểu diễn dưới dạng JSON |
---|
{
"relaxations": [
{
object ( |
Trường | |
---|---|
relaxations[] |
Tất cả các biện pháp nới lỏng phạm vi ghé thăm sẽ áp dụng cho các lượt ghé thăm trên các tuyến đường có phương tiện ở |
vehicleIndices[] |
Chỉ định các chỉ mục xe mà quy tắc ràng buộc lượt truy cập Chỉ mục xe được liên kết giống như |
Thư giãn
Nếu bạn trống relaxations
, thời gian bắt đầu và trình tự của tất cả lượt ghé thăm trên routes
sẽ bị hạn chế hoàn toàn và bạn không thể chèn hoặc thêm lượt ghé thăm mới vào những tuyến đường đó. Ngoài ra, thời gian bắt đầu và kết thúc của xe trong routes
bị ràng buộc hoàn toàn, trừ phi xe đó trống (tức là không có lượt ghé thăm và đã đặt usedIfRouteIsEmpty
thành false trong mô hình).
relaxations(i).level
chỉ định mức nới lỏng quy tắc ràng buộc áp dụng cho lượt truy cập #j thoả mãn:
route.visits(j).start_time >= relaxations(i).threshold_time
VÀj + 1 >= relaxations(i).threshold_visit_count
Tương tự, thời gian khởi động xe sẽ được nới lỏng thành relaxations(i).level
nếu đáp ứng:
vehicleStartTime >= relaxations(i).threshold_time
VÀrelaxations(i).threshold_visit_count == 0
và phần cuối xe được nới lỏng thànhrelaxations(i).level
nếu đáp ứng:vehicleEndTime >= relaxations(i).threshold_time
VÀroute.visits_size() + 1 >= relaxations(i).threshold_visit_count
Để áp dụng mức độ thư giãn nếu một lượt truy cập đáp ứng thresholdVisitCount
HOẶC thresholdTime
hãy thêm 2 relaxations
với cùng một level
: một trong hai trường hợp chỉ có thresholdVisitCount
và giá trị còn lại chỉ có thresholdTime
. Nếu một lượt truy cập đáp ứng các điều kiện của nhiều relaxations
, thì mức thoải mái nhất sẽ được áp dụng. Do đó, từ khi xe bắt đầu qua các lượt ghé qua tuyến đường để đến cuối xe, mức độ thư giãn sẽ trở nên thoải mái hơn, tức là mức độ thư giãn sẽ không giảm khi tuyến đường đang đi.
Thời gian và trình tự của các lượt ghé thăm tuyến đường không đáp ứng các điều kiện ngưỡng của relaxations
bất kỳ sẽ bị hạn chế hoàn toàn và bạn không thể chèn lượt ghé thăm vào những trình tự này. Ngoài ra, nếu điểm khởi động hoặc kết thúc của phương tiện không đáp ứng các điều kiện về thời gian nới lỏng, thì thời gian sẽ được cố định, trừ phi xe không có người.
Biểu diễn dưới dạng JSON |
---|
{
"level": enum ( |
Trường | |
---|---|
level |
Mức độ nới lỏng quy tắc ràng buộc áp dụng khi các điều kiện tại hoặc sau |
thresholdTime |
Khoảng thời gian có thể áp dụng biện pháp nới lỏng hoặc sau đó Dấu thời gian ở định dạng "Zulu" RFC3339 UTC, với độ phân giải nano giây và tối đa 9 chữ số phân số. Ví dụ: |
thresholdVisitCount |
Số lượt truy cập tại hoặc sau thời điểm Nếu giá trị là |
Cấp
Thể hiện các mức nới lỏng khác nhau, áp dụng cho một lượt truy cập và những mức độ tuân theo khi nó đáp ứng các điều kiện ngưỡng.
Bảng liệt kê dưới đây là để tăng mức độ thư giãn.
Enum | |
---|---|
LEVEL_UNSPECIFIED |
Mức thư giãn mặc định ngầm ẩn: không có ràng buộc nào được nới lỏng, tức là tất cả lượt truy cập đều bị ràng buộc hoàn toàn. Không được dùng giá trị này trong |
RELAX_VISIT_TIMES_AFTER_THRESHOLD |
Thời gian bắt đầu tham quan và thời gian bắt đầu/kết thúc của phương tiện sẽ được thay đổi, nhưng mỗi lượt ghé thăm vẫn bị ràng buộc với cùng một xe, đồng thời phải tuân thủ trình tự ghé thăm: không thể chèn lượt ghé thăm giữa hoặc trước thời gian ghé thăm đó. |
RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD |
Giống như RELAX_VISIT_TIMES_AFTER_THRESHOLD , nhưng trình tự lượt truy cập cũng thoải mái: lượt truy cập vẫn chỉ được ràng buộc với xe của họ. |
RELAX_ALL_AFTER_THRESHOLD |
Giống như RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD , nhưng xe cũng thoải mái: lượt truy cập hoàn toàn miễn phí tại hoặc sau thời gian của ngưỡng và có thể không hoạt động hiệu quả. |