注入到请求中的解决方案,其中包含有关必须限制哪些访问以及如何限制这些访问的信息。
JSON 表示法 |
---|
{ "routes": [ { object ( |
字段 | |
---|---|
routes[] |
要注入的解决方案的路线。原始解决方案中可能会省略一些路线。路线和跳过的运输必须满足为 |
skipped |
跳过了要注入的解决方案的传送。原始解决方案中可能会省略一些步骤。请参阅 |
constraint |
对于零个或多个车辆组,指定何时以及如何放宽约束条件。如果此字段为空,则所有非空车辆路线均完全受限。 |
ConstraintRelaxation
对于一组车辆,指定在达到什么阈值时会放宽对访问次数的限制,以及放宽到什么级别。skipped_shipment
字段中列出的运单会被强制跳过;即无法执行。
JSON 表示法 |
---|
{
"relaxations": [
{
object ( |
字段 | |
---|---|
relaxations[] |
|
vehicle |
指定要应用访问限制条件 如果 |
娱乐
如果 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 |
当满足 |
threshold |
可在该时间或之后应用放宽 时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例: |
threshold |
达到或超过此次数后,系统可能会应用放宽条件 如果为 |
级别
表示不同的约束条件放宽级别,这些级别会应用于一次访问,以及在满足阈值条件后对后续访问应用的级别。
以下枚举按放松程度从低到高排列。
枚举 | |
---|---|
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 相同,但对车辆的要求也更为宽松:在阈值时间或之后,访问完全免费,并且可能会不执行。 |