In die Anfrage eingebrachte Lösung mit Informationen dazu, welche Besuche eingeschränkt werden müssen und wie.
| JSON-Darstellung |
|---|
{ "routes": [ { object ( |
| Felder | |
|---|---|
routes[] |
Routen der einzuschleusenden Lösung. Einige Routen wurden möglicherweise aus der ursprünglichen Lösung entfernt. Die Routen und übersprungenen Sendungen müssen die für |
skippedShipments[] |
Übersprungene Lieferungen der einzuschleusenden Lösung. Einige davon wurden möglicherweise aus der ursprünglichen Lösung entfernt. Sehen Sie sich das Feld |
constraintRelaxations[] |
Gibt für null oder mehr Fahrzeuggruppen an, wann und in welchem Umfang Einschränkungen gelockert werden sollen. Wenn dieses Feld leer ist, sind alle nicht leeren Fahrzeugrouten vollständig eingeschränkt. |
ConstraintRelaxation
Gibt für eine Gruppe von Fahrzeugen an, ab welchem Grenzwert die Einschränkungen für Besuche gelockert werden und auf welche Stufe. Sendungen, die im Feld skipped_shipment aufgeführt sind, müssen übersprungen werden, d.h., sie können nicht ausgeführt werden.
| JSON-Darstellung |
|---|
{
"relaxations": [
{
object ( |
| Felder | |
|---|---|
relaxations[] |
Alle Lockerungen der Besuchseinschränkungen, die für Besuche auf Routen mit Fahrzeugen in |
vehicleIndices[] |
Gibt die Fahrzeugindizes an, auf die die Besuchseinschränkung Ein Fahrzeugindex wird wie |
Entspannung
Wenn relaxations leer ist, sind der Beginn und die Reihenfolge aller Besuche auf routes vollständig eingeschränkt und es können keine neuen Besuche eingefügt oder diesen Routen hinzugefügt werden. Außerdem sind der Beginn und das Ende eines Fahrzeugs in routes vollständig eingeschränkt, es sei denn, das Fahrzeug ist leer, d.h., es hat keine Besuche und usedIfRouteIsEmpty ist im Modell auf „falsch“ gesetzt.
relaxations(i).level gibt die Lockerungsstufe der Einschränkung an, die auf einen Besuch #j angewendet wird, der folgende Bedingungen erfüllt:
route.visits(j).start_time >= relaxations(i).threshold_timeUNDj + 1 >= relaxations(i).threshold_visit_count
Ebenso wird der Fahrzeugstart auf relaxations(i).level gelockert, wenn folgende Bedingungen erfüllt sind:
vehicleStartTime >= relaxations(i).threshold_timeUNDrelaxations(i).threshold_visit_count == 0und das Fahrzeugende wird aufrelaxations(i).levelgelockert, wenn folgende Bedingungen erfüllt sind:vehicleEndTime >= relaxations(i).threshold_timeUNDroute.visits_size() + 1 >= relaxations(i).threshold_visit_count
Wenn ein Besuch die thresholdVisitCount ODER die thresholdTime erfüllt, fügen Sie zwei relaxations mit derselben level hinzu: eine mit nur thresholdVisitCount und eine mit nur thresholdTime. Wenn ein Besuch die Bedingungen mehrerer relaxations erfüllt, gilt die lockerste Stufe. Das bedeutet, dass der Entspannungsgrad vom Start des Fahrzeugs über die Routenbesuche bis zum Ende des Fahrzeugs immer weiter sinkt.
Zeitpunkt und Reihenfolge von Routenbesuchen, die die Grenzbedingungen für eine relaxations nicht erfüllen, sind vollständig eingeschränkt und es können keine Besuche in diese Sequenzen eingefügt werden. Wenn ein Fahrzeugstart oder -ende nicht die Bedingungen für eine Lockerung erfüllt, ist die Zeit festgelegt, es sei denn, das Fahrzeug ist leer.
| JSON-Darstellung |
|---|
{
"level": enum ( |
| Felder | |
|---|---|
level |
Der Grad der Lockerung der Einschränkung, der gilt, wenn die Bedingungen ab |
thresholdTime |
Die Zeit, zu der oder nach der die Entspannung Es wird RFC 3339 verwendet, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Glieder mit Dezimalstellen enthält. Andere Achsenbezeichnungen als „Z“ sind ebenfalls zulässig. Beispiele: |
thresholdVisitCount |
Die Anzahl der Besuche, ab der die Lockerung Wenn es |
Level
Gibt die verschiedenen Einschränkungen an, die für einen Besuch angewendet werden und die folgen, wenn die Grenzbedingungen erfüllt sind.
Die folgende Aufzählung ist in absteigender Reihenfolge der Entspannung geordnet.
| Enums | |
|---|---|
LEVEL_UNSPECIFIED |
Implizites Standard-Entspannungsniveau: Es werden keine Einschränkungen gelockert, d.h., alle Besuche sind vollständig eingeschränkt. Dieser Wert darf in |
RELAX_VISIT_TIMES_AFTER_THRESHOLD |
Die Start- und Endzeiten von Besuchen und Fahrzeugen werden gelockert, aber jeder Besuch bleibt demselben Fahrzeug zugeordnet und die Besuchsreihenfolge muss eingehalten werden: Zwischen oder vor den Besuchen darf kein Besuch eingefügt werden. |
RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD |
Entspricht RELAX_VISIT_TIMES_AFTER_THRESHOLD, aber die Besuchsabfolge ist auch lockerer: Besuche können nur von diesem Fahrzeug durchgeführt werden, aber potenziell nicht ausgeführt werden. |
RELAX_ALL_AFTER_THRESHOLD |
Entspricht RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD, aber das Fahrzeug ist auch entspannter: Besuche sind ab oder nach dem Grenzwert völlig kostenlos und können möglicherweise nicht ausgeführt werden. |