Gửi một OptimizeToursRequest
chứa ShipmentModel
và trả về một OptimizeToursResponse
chứa ShipmentRoute
. Đây là một tập hợp tuyến đường mà các xe sẽ thực hiện để giảm thiểu tổng chi phí.
Mô hình ShipmentModel
chủ yếu bao gồm các Shipment
cần được thực hiện và Vehicle
có thể dùng để truyền tải các Shipment
. ShipmentRoute
gán Shipment
cho Vehicle
. Cụ thể hơn, chúng gán một loạt Visit
cho mỗi xe, trong đó Visit
tương ứng với VisitRequest
(đây là phương thức đến lấy hàng hoặc giao hàng cho Shipment
).
Mục tiêu là cung cấp thông tin chỉ định ShipmentRoute
cho Vehicle
để giảm thiểu tổng chi phí trong đó chi phí có nhiều thành phần được xác định trong ShipmentModel
.
Yêu cầu HTTP
POST https://routeoptimization.googleapis.com/v1/{parent=projects/*/locations/*}:optimizeTours
URL sử dụng cú pháp Chuyển mã gRPC.
Tham số đường dẫn
Tham số | |
---|---|
parent |
Bắt buộc. Dự án hoặc vị trí mục tiêu để gọi điện. Định dạng: * Nếu bạn không chỉ định vị trí, hệ thống sẽ tự động chọn một khu vực. |
Nội dung yêu cầu
Nội dung yêu cầu chứa dữ liệu có cấu trúc sau:
Biểu diễn dưới dạng JSON |
---|
{ "timeout": string, "model": { object ( |
Trường | |
---|---|
timeout |
Nếu thời gian chờ này được đặt, máy chủ sẽ trả về phản hồi trước khi hết khoảng thời gian chờ hoặc đạt đến thời hạn của máy chủ cho các yêu cầu đồng bộ, tuỳ theo thời gian nào đến sớm hơn. Đối với các yêu cầu không đồng bộ, máy chủ sẽ tạo một giải pháp (nếu có thể) trước khi hết thời gian chờ. Thời lượng tính bằng giây với tối đa 9 chữ số thập phân, kết thúc bằng " |
model |
Mô hình vận chuyển cần giải quyết. |
solvingMode |
Theo mặc định, chế độ giải quyết là |
searchMode |
Chế độ tìm kiếm dùng để giải quyết yêu cầu. |
injectedFirstSolutionRoutes[] |
Hướng dẫn thuật toán tối ưu hoá trong việc tìm giải pháp đầu tiên tương tự với giải pháp trước đó. Mô hình này bị hạn chế khi giải pháp đầu tiên được xây dựng. Mọi lô hàng không được thực hiện trên một tuyến đường sẽ mặc nhiên bị bỏ qua trong giải pháp đầu tiên, nhưng chúng có thể được thực hiện trong các giải pháp kế tiếp. Giải pháp phải đáp ứng một số giả định cơ bản về tính hợp lệ:
Nếu giải pháp đã chèn không khả thi, thì hệ thống sẽ không trả về lỗi xác thực và hệ thống có thể trả về một lỗi cho biết tính không khả thi. |
injectedSolutionConstraint |
Ràng buộc thuật toán tối ưu hoá để tìm giải pháp cuối cùng tương tự với giải pháp trước đó. Ví dụ: mục này có thể được dùng để đóng băng các phần của tuyến đường đã hoàn thành hoặc đang được hoàn thành nhưng không được sửa đổi. Nếu giải pháp đã chèn không khả thi, thì hệ thống sẽ không trả về lỗi xác thực và hệ thống có thể trả về một lỗi cho biết tính không khả thi. |
refreshDetailsRoutes[] |
Nếu không để trống, những tuyến đường đã cho sẽ được làm mới mà không sửa đổi trình tự cơ bản của các lượt ghé thăm hoặc thời gian di chuyển: chỉ các thông tin chi tiết khác sẽ được cập nhật. Việc này không giải quyết được mô hình. Kể từ năm 2020/11, dữ liệu này chỉ điền hình nhiều dòng của các tuyến không trống và yêu cầu Trường Bạn không được sử dụng trường này cùng với
|
interpretInjectedSolutionsUsingLabels |
Nếu đúng:
Cách diễn giải này áp dụng cho các trường Nếu đúng, nhãn thuộc các danh mục sau đây phải xuất hiện tối đa một lần trong danh mục tương ứng:
Nếu Việc xoá các lượt ghé thăm tuyến đường hoặc toàn bộ tuyến đường khỏi một giải pháp đã chèn có thể ảnh hưởng đến các hạn chế ngụ ý, điều này có thể dẫn đến sự thay đổi trong giải pháp, lỗi xác thực hoặc tính không khả thi. LƯU Ý: Phương thức gọi phải đảm bảo rằng mỗi |
considerRoadTraffic |
Hãy xem xét việc ước tính lưu lượng truy cập trong việc tính toán các trường |
populatePolylines |
Nếu đúng, các hình nhiều đường sẽ được điền vào các |
populateTransitionPolylines |
Nếu đúng, hệ thống sẽ điền hình nhiều đường vào phản hồi |
allowLargeDeadlineDespiteInterruptionRisk |
Nếu bạn đặt chính sách này, thì thời hạn cho yêu cầu có thể kéo dài tối đa 60 phút (xem tại https://grpc.io/blog/deadlines). Nếu không, thời hạn tối đa sẽ chỉ là 30 phút. Xin lưu ý rằng các yêu cầu dài hạn có nguy cơ gián đoạn lớn hơn đáng kể (nhưng vẫn nhỏ). |
useGeodesicDistances |
Nếu đúng, quãng đường di chuyển sẽ được tính bằng khoảng cách trắc địa thay vì khoảng cách trên Google Maps và thời gian di chuyển sẽ được tính bằng khoảng cách trắc địa với tốc độ do |
label |
Nhãn có thể dùng để xác định yêu cầu này, được báo cáo lại trong |
geodesicMetersPerSecond |
Khi |
maxValidationErrors |
Cắt bớt số lượng lỗi xác thực được trả về. Những lỗi này thường được đính kèm với tải trọng lỗi INVALID_ mở lại dưới dạng chi tiết lỗi BadRequest (https://cloud.google.com/apis/design/errors#error_details), trừ khi resolveMode=VALIDATE_ONLY: xem trường |
Nội dung phản hồi
Nếu thành công, nội dung phản hồi sẽ chứa một phiên bản của OptimizeToursResponse
.
Phạm vi uỷ quyền
Yêu cầu phạm vi OAuth sau:
https://www.googleapis.com/auth/cloud-platform