- JSON 表現
- ConstraintRelaxation
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- リラクゼーション
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- レベル
制限対象の訪問と制限方法に関する情報を含む、リクエストに注入された解決策。
JSON 表現 |
---|
{ "routes": [ { object ( |
フィールド | |
---|---|
routes[] |
挿入するソリューションのルート。一部のルートは、元のソリューションから省略されている場合があります。ルートとスキップされた配送は、 |
skippedShipments[] |
挿入するソリューションの発送をスキップした。一部は元のソリューションで省略されている場合があります。 |
constraintRelaxations[] |
0 個以上の車両グループに対して、制約を緩和するタイミングと程度を指定します。このフィールドが空の場合、空でないすべての車両経路に制約が適用されます。 |
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
を持つ 2 つの relaxations
(1 つは thresholdVisitCount
のみセット、もう 1 つは thresholdTime
セットのみ)を追加します。訪問が複数の relaxations
の条件を満たしている場合は、最も緩やかなレベルが適用されます。その結果、車両の発進からルート訪問に至り、車両の終点まで、緩和レベルはより緩和されます。つまり、リラックス レベルはルートが進むにつれて減少しません。
relaxations
のしきい値条件を満たさないルート訪問のタイミングとシーケンスは完全に制限されており、これらのシーケンスに訪問は挿入できません。また、車両の始動または終了が緩和の条件を満たさない場合は、車両が空でない限り、時間は固定されます。
JSON 表現 |
---|
{
"level": enum ( |
フィールド | |
---|---|
level |
|
thresholdTime |
緩和 RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: |
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 と同じですが、車両も緩和されます。しきい値時間以降、訪問は完全に無料となり、実行されなくなる可能性があります。 |