注入到请求中的解决方案,包括有关必须限制哪些访问以及必须如何限制这些访问的信息。
| JSON 表示法 |
|---|
{ "routes": [ { object ( |
| 字段 | |
|---|---|
routes[] |
要注入的解决方案的路由。原始解决方案可能会省略部分路线。路线和跳过配送的商品必须满足 |
skippedShipments[] |
要注入的解决方案的跳过发货。部分内容可能已从原始解决方案中省略。请参阅 |
constraintRelaxations[] |
针对零个或多个车辆组,指定何时以及在多大程度上放宽限制条件。如果此字段为空,则所有非空车辆路线都会受到完全限制。 |
ConstraintRelaxation
对于一组车辆,指定在哪些阈值下访问次数限制会放宽,以及放宽到什么程度。skipped_shipment 字段中列出的配送会被限制为跳过,也就是说,无法执行。
| JSON 表示法 |
|---|
{
"relaxations": [
{
object ( |
| 字段 | |
|---|---|
relaxations[] |
将应用于 |
vehicleIndices[] |
指定访问限制 如果 |
娱乐
如果 relaxations 为空,则 routes 上所有访问的开始时间和顺序都受到完全限制,并且不得在这些路线中插入或添加新的访问。此外,除非车辆为空(即没有访问,并且在模型中将 usedIfRouteIsEmpty 设置为 false),否则 routes 中车辆的开始时间和结束时间会受到完全限制。
relaxations(i).level 指定应用于满足以下条件的访问会话 #j 的限制放宽级别:
route.visits(j).start_time >= relaxations(i).threshold_time和j + 1 >= relaxations(i).threshold_visit_count
同样,如果车辆启动满足以下条件,则放松到 relaxations(i).level:
vehicleStartTime >= relaxations(i).threshold_time和relaxations(i).threshold_visit_count == 0,如果满足以下条件,则车辆端放宽至relaxations(i).level:vehicleEndTime >= relaxations(i).threshold_time和route.visits_size() + 1 >= relaxations(i).threshold_visit_count
如果访问满足 thresholdVisitCount 或 thresholdTime,则应用放松级别:添加两个具有相同 level 的 relaxations:一个仅设置了 thresholdVisitCount,另一个仅设置了 thresholdTime。如果某次访问满足多个 relaxations 的条件,系统会应用最宽松的级别。因此,从车辆启动到按顺序访问路线中的各个地点,再到车辆结束,放松程度会越来越高,即放松程度会随着路线的推进而保持不变或增加。
不满足任何 relaxations 的阈值条件的路线访问的时间和顺序完全受限,并且不得在这些序列中插入任何访问。此外,如果车辆的开始或结束时间不满足任何放宽条件,则时间是固定的,除非车辆为空。
| JSON 表示法 |
|---|
{
"level": enum ( |
| 字段 | |
|---|---|
level |
当满足 |
thresholdTime |
可应用放松时间 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
thresholdVisitCount |
可应用放松 如果值为 |
级别
表示不同的约束放宽级别,这些级别会在访问满足阈值条件时应用于相应访问及后续访问。
以下枚举按宽松程度递增的顺序列出。
| 枚举 | |
|---|---|
LEVEL_UNSPECIFIED |
隐式默认放松级别:不放松任何限制,即所有访问都完全受限。 不得在 |
RELAX_VISIT_TIMES_AFTER_THRESHOLD |
到访开始时间和车辆开始/结束时间将放宽,但每次到访仍与同一车辆相关联,并且必须遵守到访顺序:不得在它们之间或之前插入任何到访。 |
RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD |
与 RELAX_VISIT_TIMES_AFTER_THRESHOLD 相同,但访问序列也放宽了:访问只能由相应车辆执行,但可能会变为未执行。 |
RELAX_ALL_AFTER_THRESHOLD |
与 RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD 相同,但车辆也处于宽松状态:在阈值时间或之后,访问完全免费,并且可能会变为未执行。 |