The input data types that can be specified when performing a vehicle routing problem (VRP) analysis when using the VehicleRoutingProblemSchemaVersion.Two schema version are described below.
Orders
Gibt eine oder mehrere Positionen an, die bei der VRP-Analyse für die Routenerstellung berücksichtigt werden. Ein Auftrag kann eine Lieferung (z. B. eine Möbellieferung), eine Abholung (z. B. die Abholung eines Passagiers durch einen Airport Shuttle-Bus) oder eine Art von Service oder Prüfung (z. B. das Zurückschneiden eines Baumes oder die Prüfung eines Gebäudes) repräsentieren.
The data type supports the following fields:
Field | Description | Data type |
---|---|---|
Name | Der Name des Auftrags. Der Name muss eindeutig sein. Wenn kein Name angegeben wird, wird zum Zeitpunkt der Berechnung automatisch ein Name erstellt. | String |
Description | Dies ist die Beschreibung des Auftrags. Diese kann Textinformationen zum Auftrag umfassen und muss nicht eindeutig sein. Sie können im Feld Name die ID-Nummer eines Kunden und im Feld Description den eigentlichen Namen oder die Adresse des Kunden speichern. | String |
ServiceTime | Diese Eigenschaft gibt an, wie viel Zeit am Netzwerkstandort verbracht wird, wenn die Route zu ihm führt. Das heißt, in ihr wird der Wert für die Impedanz des Netzwerkstandorts gespeichert. Ein 0- oder NULL-Wert weist darauf hin, dass der Netzwerkstandort keine Durchführungszeit erfordert. The unit for this field value is specified by the timeUnits property of the analysis object. | Double |
TimeWindowStart | Die Anfangszeit des ersten Zeitfensters für den Netzwerkstandort. Dieses Feld kann einen NULL-Wert enthalten. Ein NULL-Wert gibt an, dass keine Anfangszeit vorhanden ist. A time window only states when a vehicle can arrive at an order; it doesn't state when the service time must be completed. To account for service time and departure before the time window ends, subtract ServiceTime from the TimeWindowEnd field. The time window fields (TimeWindowStart, TimeWindowEnd, TimeWindowStart2, and TimeWindowEnd2) can contain a time-only value or a date and time value. If a time field such as TimeWindowStart has a time-only value (for example, 8:00 AM), the date is assumed to be the default date set for the analysis. Using date and time values (for example, 7/11/2010 8:00 AM) allows you to set time windows that span multiple days. The value for this attribute can be specified using a datetime Python object, such as datetime.datetime(2019, 5, 11, 8, 30, 0), which represents Saturday May 11 2019 8:30:00 AM. To specify a time-only value, datetime.time(8, 30, 0) represents 8:30 AM on the default date that is set using the defaultDate property. The time zone for the value is specified by the timeZoneForTimeFields property of the analysis object. | Date |
TimeWindowEnd | Die Endzeit des ersten Zeitfensters für den Netzwerkstandort. Dieses Feld kann einen NULL-Wert enthalten. Ein NULL-Wert gibt an, dass keine Endzeit vorhanden ist. | Date |
TimeWindowStart2 | Die Anfangszeit des zweiten Zeitfensters für den Netzwerkstandort. Dieses Feld kann einen NULL-Wert enthalten. Ein NULL-Wert gibt an, dass kein zweites Zeitfenster vorhanden ist. If the first time window is null, as specified by the TimeWindowStart and TimeWindowEnd fields, the second time window must also be null. Wenn es sich bei beiden Fenstern um Nicht-NULL-Fenster handelt, können sie nicht überlappen. Außerdem muss das zweite Zeitfenster auf das erste folgen. | Date |
TimeWindowEnd2 | Die Endzeit des zweiten Zeitfensters für den Netzwerkstandort. Dieses Feld kann einen NULL-Wert enthalten. Wenn TimeWindowStart2 und TimeWindowEnd2 beide NULL sind, gibt es kein zweites Zeitfenster. Wenn TimeWindowStart2 nicht NULL ist, aber TimeWindowEnd2 NULL ist, gibt es ein zweites Zeitfenster, das eine Startzeit, aber keine Endzeit hat. Dies ist zulässig. | Date |
MaxViolationTime | Eine Zeitfensterverletzung liegt vor, wenn die Ankunftszeit nach dem Ende des Zeitfensters liegt. Dieses Feld gibt den maximal zulässigen Zeitverstoß für das erste Zeitfenster des Auftrags an. Es darf den Wert 0, jedoch keinen negativen Wert enthalten. Der Wert 0 gibt an, dass kein Verstoß gegen das erste Zeitfenster des Auftrags zulässig ist, d. h. das erste Zeitfenster ist ein sog. "hartes" Zeitfenster. Ein NULL-Wert bedeutet andererseits auch, dass der zulässige Zeitverstoß unbegrenzt ist. Ein Wert ungleich 0 gibt die maximale Verspätung an. Beispielsweise kann ein Fahrzeug bis zu 30 Minuten nach dem Ende des ersten Zeitfensters bei einem Auftrag ankommen. The unit for this field value is specified by the timeUnits property of the analysis object. Zeitfensterverletzungen können vom Solver verfolgt und gewichtet werden. Daher können Sie den VRP-Solver anweisen, eine der folgenden Aktionen durchzuführen:
By assigning an importance level for the timeWindowFactor property of the analysis object, you are essentially choosing one of these options. In any case, however, the solver will return an error if the value set for MaxViolationTime is surpassed. | Double |
MaxViolationTime2 | The maximum allowable violation time for the second time window of the order. This field is analogous to the MaxViolationTime field. | Double |
InboundArriveTime | Legt fest, wann der am Ort des Auftrags abzuliefernde Gegenstand am Startdepot bereit ist. Der Auftrag kann einer Route nur dann zugewiesen werden, wenn die eingehende Ankunftszeit dem letzten Startzeitwert der Route vorausgeht. Auf diese Weise kann die Route das Depot nicht verlassen, bevor der Liefergegenstand bereit ist, in das Depot geladen zu werden. Mit diesem Feld können Szenarien mit Umladungen eingehender Lieferungen modelliert werden. Beispiel: Für einen Auftrag sind spezielle Materialien erforderlich, die derzeit nicht im Depot verfügbar sind. Die Materialien werden von einem anderen Standort versendet und erreichen das Depot um 11:00 Uhr. Um sicherzustellen, dass eine Route, die den Ort vor dem Eintreffen der Lieferung verlässt, dem Auftrag nicht zugewiesen wird, wird die eingehende Ankunftszeit des Auftrags auf 11:00 Uhr festgelegt. Die speziellen Materialien treffen um 11:00 Uhr ein, werden auf das Fahrzeug geladen und das Fahrzeug verlässt das Depot, um die ihm zugewiesenen Orte des Auftrags anzufahren. Notes:
| Date |
OutboundDepartTime | Legt fest, wann der am Ort des Auftrags abzuholende Liefergegenstand das End-Depot erreichen muss. Der Auftrag kann einer Route nur dann zugewiesen werden, wenn die Route den Ort des Auftrags anfahren kann und dessen End-Depot vor der angegebenen ausgehenden Abfahrtzeit erreicht. Mit diesem Feld können Szenarien mit Umladungen ausgehender Lieferungen modelliert werden. Beispiel: Eine Transportfirma schickt Lieferwagen los, um Pakete von Aufträgen abzuholen und sie zu einem Depot zu bringen. Von dort aus werden sie auf dem Weg zu ihrem Endziel zu anderen Einrichtungen weitertransportiert. Täglich um 15:00 Uhr stoppt ein Sattelschlepper am Depot, um die Pakete mit hoher Priorität abzuholen und sie direkt zu einer zentralen Verarbeitungsstation zu bringen. Um eine Verzögerung der Pakete mit hoher Priorität bis zur 15:00 Uhr-Fahrt des folgenden Tages zu vermeiden, lässt die Transportfirma die Pakete mit hoher Priorität an den Auftragsorten von Lieferwagen abholen und vor Ablauf der 15:00 Uhr-Frist zum Depot bringen. Dazu wird die Abfahrtszeit auf 15:00 Uhr festgelegt. Notes:
| Date |
| The size of the delivery. You can specify size in any dimension, such as weight, volume, or quantity. If there are multiple delivery quantities, specify them using the DeliveryQuantity_1 through DeliveryQuantity_9 fields as needed. Geben Sie Liefermengen ohne die Angabe von Einheiten ein. Beispiel: Wenn ein 135 Kilogramm schwerer Artikel geliefert werden muss, geben Sie 135 ein. Sie müssen daran denken, dass der Wert in Kilogramm angegeben ist. Make sure that Capacity_* fields for Routes and DeliveryQuantity_* fields and PickupQuantity_* fields for Orders are specified in the same manner. The values must be in the same units, and the fields ending in the same number must correspond to one another. For example, Capacity_4, DeliveryQuantity_4, and PickupQuantity_4 are assumed to describe the same measured quantity with the same units. The default is 0. Delivery quantities can't be negative. | Double |
| The size of the pickup. You can specify size in any dimension, such as weight, volume, or quantity. If there are multiple pickup quantities, specify them using the PickupQuantity_1 through PickupQuantity_9 fields as needed. These fields are analogous to the DeliveryQuantity_* fields. Bei einem Austauschbesuch kann ein Auftrag Werte für "DeliveryQuantities" und "PickupQuantities" aufweisen. The default is 0. Pickup quantities can't be negative. | Double |
Revenue | Die generierten Einnahmen, wenn der Auftrag in einer Lösung enthalten ist. Dieses Feld darf einen NULL-Wert (ein NULL-Wert steht für Einnahmen in Höhe von 0), jedoch keinen negativen Wert enthalten. "Revenue" wird beim Optimieren des Zielfunktionswertes einbezogen, ist jedoch nicht Bestandteil der Betriebskosten für die Lösung. Das bedeutet, dass das Feld TotalCost in "Routen" niemals "Revenue" enthält. Jedoch wird für "Revenue" die relative Gewichtung der Ausführung von Aufträgen berücksichtigt. | Double |
AssignmentRule | Gibt die Regel zum Zuweisen des Auftrags zu einer Route an. Der Feldwert wird als eine der nachfolgenden Ganzzahlen angegeben (verwenden Sie nicht den Namen in Klammern, sondern den numerischen Code):
Dieses Feld darf keinen NULL-Wert enthalten. | Integer |
RouteName | Der Name der Route, der der Auftrag zugewiesen wird. Mit diesem Feld wird ein Auftrag vorab einer bestimmten Route zugewiesen. Es kann einen NULL-Wert enthalten, um anzugeben, dass der Auftrag keiner Route vorab zugewiesen ist. In diesem Fall erfolgt die Ermittlung der bestmöglichen Route für den Auftrag durch den Solver. Wenn das Feld auf NULL festgelegt ist, muss das Feld Sequence ebenfalls auf NULL festgelegt werden. Wenn der Auftrag einer Route zugewiesen wurde, enthält das Feld RouteName nach einem Berechnungsvorgang den Namen der Route, der der Auftrag zugewiesen ist. | String |
Sequence | Gibt die Sequenz des Auftrags auf der zugewiesenen Route an. Dieses Feld dient zum Angeben der relativen Sequenz eines Auftrags auf der Route. Das Feld kann einen NULL-Wert enthalten, um anzugeben, dass der Auftrag an einer beliebigen Position auf der Route eingefügt werden kann. Ein NULL-Wert ist nur gemeinsam mit einem NULL-Wert für RouteName zulässig. Die Eingabesequenzwerte sind positiv und für jede Route eindeutig (gültig für Depotstopps zum Be-/Entladen, Aufträge und Pausenzeiten), müssen jedoch nicht bei 1 beginnen und nicht zusammenhängend sein. | Integer |
CurbApproach | Gibt die Richtung an, in der ein Fahrzeug beim Auftrag ankommt bzw. von ihm wegfährt. Der Feldwert wird als eine der nachfolgenden Ganzzahlen angegeben (verwenden Sie nicht den Namen in Klammern, sondern den numerischen Code):
Das Attribut CurbApproach ist für die Verwendung sowohl in Ländern mit Rechtsverkehr (Deutschland) als auch in Ländern mit Linksverkehr (Großbritannien) konzipiert. Stellen Sie sich zunächst einen Auftrag auf der linken Seite eines Fahrzeugs vor. Es befindet sich stets auf der linken Seite, egal ob das Fahrzeug auf der linken oder rechten Seite der Straße fährt. Was sich abhängig von den nationalen Verkehrsregeln ändern kann, ist Ihre Entscheidung, aus welcher Richtung Sie sich dem Auftrag nähern, sodass er sich entweder links oder rechts vom Fahrzeug befindet. Wenn sich beispielsweise am Auftragsort keine Fahrspur zwischen Fahrzeug und Auftrag befinden soll, wählen Sie in Deutschland die rechte Seite des Fahrzeugs (1), in Großbritannien hingegen die linke Seite des Fahrzeugs (2) aus. | Short Integer |
Bearing | Die Richtung, in die sich ein Punkt bewegt. Die Einheit ist Grad und wird im Uhrzeigersinn von geographisch Nord gemessen. Dieses Feld wird in Verbindung mit dem Feld BearingTol verwendet. Peilungsdaten werden normalerweise automatisch von einem mobilen Gerät gesendet, das mit einem GPS-Empfänger ausgestattet ist. Sie sollten möglichst Peilungsdaten einbeziehen, wenn Sie eine sich bewegende Eingabeposition laden, beispielsweise einen Fußgänger oder ein Fahrzeug. Durch die Verwendung dieses Feldes kann verhindert werden, dass Positionen falschen Kanten zugewiesen werden, was auftreten kann, wenn er sich zufällig in der Nähe einer Kreuzung oder einer Überführung befindet. Mithilfe der Peilung kann das Werkzeug einfacher ermitteln, auf welcher Straßenseite sich der Punkt befindet. | Double |
BearingTol | Anhand des Peilungstoleranzwertes wird ein Bereich mit zulässigen Peilungswerten erstellt, wenn Punkte über das Feld Bearing auf einer Kante bewegt werden. Wenn sich der Wert des Feldes Bearing innerhalb des Bereichs der zulässigen Werte befindet, die über die Peilungstoleranz auf einer Kante generiert werden, kann der Punkt dort als Netzwerkstandort hinzugefügt werden. Andernfalls wird der nächstgelegene Punkt an der übernächsten Kante ausgewertet. Die Einheiten sind in Grad und der Standardwert ist 30. Der Wert muss größer als 0 und kleiner als 180 sein. Der Wert 30 bedeutet, dass beim Hinzufügen eines Netzwerkstandortes auf einer Kante durch Network Analyst auf beiden Seiten der Kante (links und rechts) und in beiden Digitalisierrichtungen der Kante ein zulässiger Peilungswertebereich in einem Winkel von 15 Grad generiert wird. | Double |
NavLatency | Dieses Feld wird nur im Berechnungsprozess verwendet, wenn Bearing und BearingTol ebenfalls Werte enthalten. Die Eingabe eines NavLatency-Wertes ist jedoch optional, selbst wenn in Bearing und BearingTol Werte enthalten sind. NavLatency gibt an, welche Kosten voraussichtlich zwischen dem Senden von GPS-Informationen von einem sich bewegenden Fahrzeug zu einem Server und dem Empfang der verarbeiteten Route durch das Navigationsgerät des Fahrzeugs anfallen. The time units of NavLatency are the same as the units specified by the timeUnits property of the analysis object. | Double |
Network location fields
| Zusammen beschreiben diese Eigenschaften den Punkt im Netzwerk, an dem sich das Objekt befindet. Weitere Informationen zur Suche nach Eingaben in einem Netzwerk |
Depots
Gibt für das betreffende Vehicle Routing Problem ein oder mehrere Depots an. Ein Depot ist ein Standort, den ein Fahrzeug am Anfang des Arbeitstages verlässt und zu dem es am Ende des Arbeitstages zurückkehrt. Fahrzeuge werden zu Beginn der Route in Depots beladen (für Lieferungen) oder entladen (für Abholungen). In einigen Fällen kann ein Depot auch als Lager fungieren, an dem das Fahrzeug Artikel entladen oder laden kann, um weitere Lieferungen oder Abholungen durchzuführen. Ein Depot weist Öffnungs- und Schließzeiten auf, die durch ein hartes Zeitfenster angegeben werden. Fahrzeuge dürfen nicht außerhalb dieses Zeitfensters bei einem Depot eintreffen.
The data type supports the following fields:
Field | Description | Data type |
---|---|---|
Name | Der Name des Depots. Die Felder StartDepotName und EndDepotNamein Routen referenzieren die Namen, die Sie hier angeben. Er wird ebenfalls von "Lager (Be-/Entladen)" referenziert, sofern verwendet. Bei Depotnamen wird nicht zwischen Groß- und Kleinschreibung unterschieden. Das Feld darf nicht leer sein und muss einen eindeutigen Namen enthalten. | String |
Description | Dies ist die Beschreibung des Depotstandorts. Diese können Textinformationen umfassen und müssen nicht eindeutig sein. Wenn Sie beispielsweise notieren möchten, in welcher Region sich ein Depot befindet, oder die Adresse und Telefonnummer des Depots angeben möchten, können Sie diese Informationen hier statt im Feld Name eingeben. | String |
TimeWindowStart | Die Anfangszeit des ersten Zeitfensters für den Netzwerkstandort. Dieses Feld kann einen NULL-Wert enthalten. Ein NULL-Wert gibt an, dass keine Anfangszeit vorhanden ist. The time window fields (TimeWindowStart, TimeWindowEnd, TimeWindowStart2, and TimeWindowEnd2) can contain a time-only value or a date and time value. If a time field such as TimeWindowStart has a time-only value (for example, 8:00 AM), the date is assumed to be the default date set for the analysis. Using date and time values (for example, 7/11/2010 8:00 AM) allows you to set time windows that span multiple days. The value for this attribute can be specified using a datetime Python object, such as datetime.datetime(2019, 5, 11, 8, 30, 0), which represents Saturday May 11 2019 8:30:00 AM. To specify a time-only value, datetime.time(8, 30, 0) represents 8:30 AM on the default date that is set using the defaultDate property. The time zone for the value is specified by the timeZoneForTimeFields property of the analysis object. | Date |
TimeWindowEnd | Die Endzeit des ersten Zeitfensters für den Netzwerkstandort. Dieses Feld kann einen NULL-Wert enthalten. Ein NULL-Wert gibt an, dass keine Endzeit vorhanden ist. | Date |
TimeWindowStart2 | Die Anfangszeit des zweiten Zeitfensters für den Netzwerkstandort. Dieses Feld kann einen NULL-Wert enthalten. Ein NULL-Wert gibt an, dass kein zweites Zeitfenster vorhanden ist. If the first time window is null, as specified by the TimeWindowStart and TimeWindowEnd fields, the second time window must also be null. Wenn es sich bei beiden Zeitfenstern um Nicht-NULL-Fenster handelt, können sie nicht überlappen. Außerdem muss das zweite Zeitfenster auf das erste folgen. | Date |
TimeWindowEnd2 | Die Endzeit des zweiten Zeitfensters für den Netzwerkstandort. Dieses Feld kann einen NULL-Wert enthalten. Wenn TimeWindowStart2 und TimeWindowEnd2 beide NULL sind, gibt es kein zweites Zeitfenster. Wenn TimeWindowStart2 nicht NULL ist, aber TimeWindowEnd2 NULL ist, gibt es ein zweites Zeitfenster, das eine Startzeit, aber keine Endzeit hat. Dies ist zulässig. | Date |
CurbApproach | Gibt die Richtung an, in der ein Fahrzeug beim Depot ankommt bzw. von ihm wegfährt. Der Feldwert wird als eine der nachfolgenden, in Klammern genannten Ganzzahlen angegeben (verwenden Sie nicht den Namen in Klammern, sondern den numerischen Code):
Das Attribut CurbApproach ist für die Verwendung sowohl in Ländern mit Rechtsverkehr (Deutschland) als auch in Ländern mit Linksverkehr (Großbritannien) konzipiert. Stellen Sie sich zunächst ein Depot auf der linken Seite eines Fahrzeugs vor. Es befindet sich stets auf der linken Seite, egal ob das Fahrzeug auf der linken oder rechten Seite der Straße fährt. Was sich abhängig von den nationalen Verkehrsregeln ändern kann, ist Ihre Entscheidung, aus welcher Richtung Sie sich dem Depot nähern, so dass es sich entweder links oder rechts vom Fahrzeug befindet. Wenn sich beispielsweise am Depot keine Fahrspur zwischen Fahrzeug und Depot befinden soll, wählen Sie in Deutschland die rechte Seite des Fahrzeugs (1), in Großbritannien hingegen die linke Seite des Fahrzeugs (2) aus. | Integer |
Bearing | Die Richtung, in die sich ein Punkt bewegt. Die Einheit ist Grad und wird im Uhrzeigersinn von geographisch Nord gemessen. Dieses Feld wird in Verbindung mit dem Feld BearingTol verwendet. Peilungsdaten werden normalerweise automatisch von einem mobilen Gerät gesendet, das mit einem GPS-Empfänger ausgestattet ist. Sie sollten möglichst Peilungsdaten einbeziehen, wenn Sie eine sich bewegende Eingabeposition laden, beispielsweise einen Fußgänger oder ein Fahrzeug. Durch die Verwendung dieses Feldes kann verhindert werden, dass Positionen falschen Kanten zugewiesen werden, was auftreten kann, wenn er sich zufällig in der Nähe einer Kreuzung oder einer Überführung befindet. Mithilfe der Peilung kann das Werkzeug einfacher ermitteln, auf welcher Straßenseite sich der Punkt befindet. | Double |
BearingTol | Anhand des Peilungstoleranzwertes wird ein Bereich mit zulässigen Peilungswerten erstellt, wenn Punkte über das Feld Bearing auf einer Kante bewegt werden. Wenn sich der Wert des Feldes Bearing innerhalb des Bereichs der zulässigen Werte befindet, die über die Peilungstoleranz auf einer Kante generiert werden, kann der Punkt dort als Netzwerkstandort hinzugefügt werden. Andernfalls wird der nächstgelegene Punkt an der übernächsten Kante ausgewertet. Die Einheiten sind in Grad und der Standardwert ist 30. Der Wert muss größer als 0 und kleiner als 180 sein. Der Wert 30 bedeutet, dass beim Hinzufügen eines Netzwerkstandortes auf einer Kante durch Network Analyst auf beiden Seiten der Kante (links und rechts) und in beiden Digitalisierrichtungen der Kante ein zulässiger Peilungswertebereich in einem Winkel von 15 Grad generiert wird. | Double |
NavLatency | Dieses Feld wird nur im Berechnungsprozess verwendet, wenn Bearing und BearingTol ebenfalls Werte enthalten. Die Eingabe eines NavLatency-Wertes ist jedoch optional, selbst wenn in Bearing und BearingTol Werte enthalten sind. NavLatency gibt an, welche Kosten voraussichtlich zwischen dem Senden von GPS-Informationen von einem sich bewegenden Fahrzeug zu einem Server und dem Empfang der verarbeiteten Route durch das Navigationsgerät des Fahrzeugs anfallen. The time units of NavLatency are the same as the units specified by the timeUnits property of the analysis object. | Double |
Network location fields
| Zusammen beschreiben diese Eigenschaften den Punkt im Netzwerk, an dem sich das Objekt befindet. Weitere Informationen zur Suche nach Eingaben in einem Netzwerk |
Routes
Gibt mindestens eine Route an, welche die Fahrzeug- und Fahrereigenschaften beschreibt. Eine Route kann Start- und Enddurchführungszeiten (Depot), eine feste oder flexible Anfangszeit, zeitbasierte Betriebskosten, entfernungsbasierte Betriebskosten, mehrere Kapazitäten, verschiedene Einschränkungen hinsichtlich des Arbeitstags eines Fahrers usw. aufweisen.
Hinweis:
Unlike other data types, such as Orders and Depots, this data type is a table and does not include any location information.
The data type supports the following fields:
Field | Description | Data type |
---|---|---|
Name | Der Name der Route. Der Name muss eindeutig sein. Wenn der Feldwert NULL ist, erstellt das Werkzeug zum Zeitpunkt der Berechnung einen eindeutigen Namen. Daher ist die Eingabe eines Wertes in den meisten Fällen optional. Sie müssen jedoch einen Namen eingeben, wenn Ihre Analyse Unterbrechungen, Lager (Be-/Entladen), Routenzonen oder Aufträge umfasst, die einer Route vorab zugewiesen sind, da der Routenname in diesen Fällen als Fremdschlüssel verwendet wird. Bei Routennamen wird die Groß-/Kleinschreibung nicht beachtet. | String |
Description | The descriptive information about the route. This can contain any textual information and does not need to be unique. | String |
StartDepotName | Der Name des Startdepots für die Route. Dieses Feld dient als Fremdschlüssel für das Feld Name in "Depots". Wenn der Wert für StartDepotName NULL ist, beginnt die Route mit dem ersten zugewiesenen Auftrag. Wenn die Startposition des Fahrzeuges unbekannt oder für das Problem irrelevant ist, empfiehlt es sich, das Startdepot nicht anzugeben. Wenn StartDepotName jedoch NULL ist, kann EndDepotNamenicht ebenfalls NULL sein. Virtuelle Startdepots sind nicht zulässig, wenn Aufträge oder Depots in mehreren Zeitzonen vorliegen. If the route is making deliveries and StartDepotName is null, it is assumed the cargo is loaded on the vehicle at a virtual depot before the route begins. For a route that has no renewal visits, its delivery orders (those with nonzero DeliveryQuantity_* field values in Orders) are loaded at the start depot or virtual depot. For a route that has renewal visits, only the delivery orders before the first renewal visit are loaded at the start depot or virtual depot. | String |
EndDepotName | Der Name des Enddepots für die Route. Dieses Feld dient als Fremdschlüssel für das Feld Name in "Depots". | String |
StartDepotServiceTime | Die Durchführungszeit am Startdepot. Mit dieser kann die Zeit zum Beladen des Fahrzeugs modelliert werden. Dieses Feld kann einen NULL-Wert enthalten. Ein NULL-Wert gibt an, dass keine Durchführungszeit vorhanden ist. The unit for this field value is specified by the timeUnits property of the analysis object. Bei der Durchführungszeit am Start- und Enddepot handelt es sich um feste Werte (von den Werten der Felder StartDepotServiceTime und EndDepotServiceTime angegeben), bei der das tatsächliche Beladen für eine Route nicht berücksichtigt wird. Beispielsweise kann die Zeit zum Beladen eines Fahrzeugs am Startdepot von der Größe der Aufträge abhängen. Als Durchführungszeiten für Depots können Werte zugewiesen werden, die einer vollständigen Lkw-Ladung oder einer durchschnittlichen Lkw-Ladung entsprechen, oder Sie können einen eigenen Schätzwert festlegen. | Double |
EndDepotServiceTime | Die Durchführungszeit am Enddepot. Mit dieser kann die Zeit zum Entladen des Fahrzeugs modelliert werden. Dieses Feld kann einen NULL-Wert enthalten. Ein NULL-Wert gibt an, dass keine Durchführungszeit vorhanden ist. The unit for this field value is specified by the timeUnits property of the analysis object. Bei der Durchführungszeit am Start- und Enddepot handelt es sich um feste Werte (von den Werten der Felder StartDepotServiceTime und EndDepotServiceTime angegeben), bei der das tatsächliche Beladen für eine Route nicht berücksichtigt wird. Beispielsweise kann die Zeit zum Beladen eines Fahrzeugs am Startdepot von der Größe der Aufträge abhängen. Als Durchführungszeiten für Depots können Werte zugewiesen werden, die einer vollständigen Lkw-Ladung oder einer durchschnittlichen Lkw-Ladung entsprechen, oder Sie können einen eigenen Schätzwert festlegen. | Double |
EarliestStartTime | Die früheste zulässige Startzeit für die Route. Diese wird vom Solver in Verbindung mit dem Zeitfenster des Startdepots verwendet, um realistische Routenstartzeiten zu bestimmen. Dieses Feld darf keine NULL-Werte enthalten, und der Standardwert für die reine Uhrzeit ist 08:00 Uhr. Der Standardwert wird als 08:00 Uhr an dem für die Analyse festgelegten Standarddatum interpretiert. The value for this attribute can be specified using a datetime Python object, such as datetime.datetime(2019, 5, 11, 8, 30, 0), which represents Saturday May 11 2019 8:30:00 AM. To specify a time-only value, datetime.time(8, 30, 0) represents 8:30 AM on the default date that is set using the defaultDate property. The time zone for the value is specified by the timeZoneForTimeFields property of the analysis object. | Date |
LatestStartTime | Die späteste zulässige Startzeit für die Route. Dieses Feld darf keine NULL-Werte enthalten, und der Standardwert für die reine Uhrzeit ist 10:00 Uhr. Der Standardwert wird als 10:00 Uhr an dem für die Analyse festgelegten Standarddatum interpretiert. The value for this attribute can be specified using a datetime Python object, such as datetime.datetime(2019, 5, 11, 8, 30, 0), which represents Saturday May 11 2019 8:30:00 AM. To specify a time-only value, datetime.time(8, 30, 0) represents 8:30 AM on the default date that is set using the defaultDate property. The time zone for the value is specified by the timeZoneForTimeFields property of the analysis object. | Date |
ArriveDepartDelay | In diesem Feld wird die Fahrzeitdauer gespeichert, die erforderlich ist, um das Fahrzeug auf normale Reisegeschwindigkeiten zu beschleunigen, bis zu einem Stopp zu verlangsamen und in das bzw. aus dem Netzwerk zu bewegen (z. B. in die Parkposition und aus der Parkposition). Indem ein Wert für ArriveDepartDelay verwendet wird, wird der VRP-Solver davon abgehalten, viele Routen zum Abarbeiten von Aufträgen mit physischer Lagegleichheit zu senden. Die Kosten für diese Eigenschaft treten zwischen Besuchen bei nicht lagegleichen Aufträgen, Depots und Lagern zum Be-/Entladen auf. Wenn eine Route beispielsweise an einem Depot startet und zum Besuch des ersten Auftrags führt, wird die Gesamtverzögerung bei der Ankunft und Abfahrt der Fahrzeit hinzugefügt. Dasselbe gilt für die Fahrt vom ersten Auftrag zum zweiten Auftrag. Wenn der zweite und dritte Auftrag lagegleich sind, wird der Wert unter ArriveDepartDelay dazwischen nicht hinzugefügt, da sich das Fahrzeug nicht bewegen muss. Wenn die Route dann zu einem Lager zum Be-/Entladen führt, wird der Wert der Fahrzeit wieder hinzugefügt. Obwohl ein Fahrzeug bei einer Pause die Fahrt verlangsamen und unterbrechen und danach wieder beschleunigen muss, kann der VRP-Solver den Wert unter ArriveDepartDelay für Pausen nicht hinzufügen. Dies bedeutet, dass die Verzögerung bei der Ankunft und Abfahrt nur einmal hinzugefügt wird (und nicht zweimal), wenn ein Fahrzeug auf einer Route den Ort eines Auftrags verlässt, für eine Pause anhält und dann weiter zum nächsten Auftrag fährt. Nehmen Sie beispielsweise an, dass für ein Hochhaus fünf lagegleiche Aufträge vorliegen, die mit drei verschiedenen Routen abgearbeitet werden sollen. Dies bedeutet, dass drei Verzögerungen bei der Ankunft und Abfahrt anfallen. Drei Fahrer müssen separat einen Parkplatz finden und dasselbe Gebäude betreten. Wenn die Aufträge jedoch mit einer Route abgearbeitet werden können, muss nur ein Fahrer einen Parkplatz finden und das Gebäude betreten, und es fällt nur eine Verzögerung bei der Ankunft und Abfahrt an. Da das Ziel des VRP-Solvers die Kostenreduzierung ist, versucht er, die Verzögerungen bei der Ankunft und Abfahrt zu beschränken, identifiziert also die Option mit nur einer Route. (Beachten Sie, dass ggf. mehrere Routen verwendet werden müssen, wenn andere Einschränkungen – z. B. Besonderheiten, Zeitfenster oder Kapazitäten – dies erfordern.) The unit for this field value is specified by the timeUnits property of the analysis object. | Double |
| The maximum amount (for instance, volume, weight, quantity) that can be carried by the vehicle. If there are multiple capacities, specify them using the Capacity_1 through Capacity_9 fields as needed. Geben Sie Kapazitäten ohne die Angabe von Einheiten ein. Beispiel: Wenn Ihr Fahrzeug maximal 18 Tonnen transportieren kann, geben Sie 18 ein. Sie müssen daran denken, dass der Wert in Tonnen angegeben ist. Make sure that Capacity_* fields for Routes and DeliveryQuantity_* fields and PickupQuantity_* fields for Orders are specified in the same manner. The values must be in the same units, and the fields ending in the same number must correspond to one another. For example, Capacity_4, DeliveryQuantity_4, and PickupQuantity_4 are assumed to describe the same measured quantity with the same units. The default is 0. Capacities can't be negative. Der VRP-Solver führt lediglich einen einfachen booleschen Test durch, um festzustellen, ob die Kapazitäten überschritten werden. Wenn der Kapazitätswert einer Route größer als oder gleich der gesamten transportierten Menge ist, geht der VRP-Solver davon aus, dass die Fracht in das Fahrzeug passt. Abhängig von der tatsächlichen Form der Fracht und des Fahrzeugs kann diese Annahme jedoch falsch sein. Der VRP-Solver lässt beispielsweise zu, dass eine Kugel mit 1.000 Kubikfuß in einen Lkw mit 1.000 Kubikfuß und einer Breite von 8 Fuß verladen wird. Tatsächlich hat die Kugel jedoch einen Durchmesser von 12,6 Fuß und passt nicht in den Lkw mit einer Breite von 8 Fuß. | Double |
FixedCost | Ein fester Geldbetrag, der nur anfällt, wenn die Route in einer Lösung verwendet wird (d. h. der Route sind Aufträge zugewiesen). Dieses Feld kann NULL-Werte enthalten. Ein NULL-Wert gibt an, dass keine festen Kosten vorhanden sind. Diese Kosten sind Bestandteil der Gesamtbetriebskosten für die Route. | Double |
CostPerUnitTime | Der Geldbetrag – pro Zeiteinheit an Arbeit – der für die Gesamtroutendauer, einschließlich Fahrzeiten, Durchführungszeiten und Wartezeiten bei Aufträgen, Depots und Pausen, anfällt. Dieses Feld darf keinen NULL-Wert enthalten und der Standardwert ist 1,0. The unit for this field value is specified by the timeUnits property of the analysis object. | Double |
CostPerUnitDistance | Der – pro Einheit gefahrener Strecke – für die Routenlänge (gesamte Reisestrecke) anfallende Geldbetrag. Dieses Feld kann NULL-Werte enthalten. Ein NULL-Wert gibt an, dass keine Kosten vorhanden sind. The unit for this field value is specified by the distanceUnits property of the analysis object. | Double |
OvertimeStartTime | Die Dauer der regulären Arbeitszeit, bevor die Berechnung der Überstunden beginnt. Dieses Feld kann NULL-Werte enthalten. Ein NULL-Wert gibt an, dass keine Überstunden angewendet werden. The unit for this field value is specified by the timeUnits property of the analysis object. Wenn dem Fahrer beispielsweise bei Überschreiten einer Gesamtroutendauer von 8 Stunden Überstunden bezahlt werden müssen und als Zeiteinheiten Minuten festgelegt sind, wird OvertimeStartTime als 480 (8 Stunden * 60 Minuten/Stunde) angegeben. | Double |
CostPerUnitOvertime | Der pro Zeiteinheit von Überstunden anfallende Geldbetrag. Dieses Feld kann NULL-Werte enthalten. Ein NULL-Wert gibt an, dass der Wert von CostPerUnitOvertime mit dem Wert von CostPerUnitTime identisch ist. | Double |
MaxOrderCount | Die maximal zulässige Anzahl von Aufträgen für die Route. Dieses Feld darf keine NULL-Werte enthalten und der Standardwert beträgt 30. | Integer |
MaxTotalTime | Die maximal zulässige Routendauer. Die Routendauer umfasst Fahrzeiten sowie Durchführungs- und Wartezeiten bei Aufträgen, Depots und Pausen. Dieses Feld kann NULL-Werte enthalten. Ein NULL-Wert gibt an, dass für die Routendauer keine Einschränkung gilt. The unit for this field value is specified by the timeUnits property of the analysis object. | Double |
MaxTotalTravelTime | Die maximal zulässige Fahrzeit für die Route. Die Fahrzeit umfasst nur die Zeit für Fahrten im Netzwerk, ohne Durchführungs- oder Wartezeit. Dieses Feld kann NULL-Werte enthalten. Ein NULL-Wert gibt an, dass für die maximal zulässige Fahrzeit keine Einschränkung gilt. Dieser Feldwert darf nicht größer als der Wert des Feldes MaxTotalTime sein. The unit for this field value is specified by the timeUnits property of the analysis object. | Double |
MaxTotalDistance | Die maximal zulässige Reisestrecke für die Route. The unit for this field value is specified by the distanceUnits property of the analysis object. Dieses Feld kann NULL-Werte enthalten. Ein NULL-Wert gibt an, dass für die maximal zulässige Reisestrecke keine Einschränkung gilt. | Double |
AssignmentRule | Gibt an, ob die Route beim Lösen des Problems verwendet werden kann. Dieses Feld ist durch eine Domäne von Werten eingeschränkt, die unten aufgeführt sind (verwenden Sie nicht den Namen in Klammern, sondern den numerischen Code).
| Integer |
Breaks
Das sind die Unterbrechungszeiten bzw. Pausenzeiten für Routen in einem Vehicle Routing Problem. Eine Pausenzeit ist mit genau einer Route verknüpft und kann nach Abschluss eines Auftrags, auf dem Weg zu einem Auftrag oder vor dem Abarbeiten eines Auftrags eingelegt werden. Sie verfügt über eine Startzeit und eine Dauer, für die der Fahrer entweder bezahlt oder nicht bezahlt wird. Sie können drei Optionen verwenden, um den Beginn einer Pausenzeit festzulegen: Sie können ein Zeitfenster, eine maximale Fahrzeit oder eine maximale Arbeitszeit eingeben.
Unlike other data types, such as Orders or Depots, this data type is a table and does not include any location information.
The data type supports the following fields:
Field | Description | Data type |
---|---|---|
RouteName | Der Name der Route, auf die die Pausenzeit angewendet wird. Eine Pausenzeit wird nur einer Route zugewiesen, aber einer Route können mehrere Pausenzeiten zugewiesen werden. Dieses Feld ist ein Fremdschlüssel für das Feld Name in Routen und darf keinen NULL-Wert enthalten. | String |
Precedence | Mithilfe von Vorrangswerten wird die Abfolge von Pausenzeiten einer Route festgelegt. Pausenzeiten mit einem Vorrangswert von 1 treten vor Pausenzeiten mit einem Vorrangswert von 2 ein usw. Alle Pausenzeiten müssen unabhängig davon, ob es sich um Zeitfenster-Pausenzeiten, Pausenzeiten wegen maximaler Fahrzeit oder Pausenzeiten wegen maximaler Arbeitszeit handelt, einen Vorrangswert aufweisen. | Integer |
ServiceTime | Die Dauer der Pause. Dieses Feld darf keinen NULL-Wert enthalten. Der Standardwert ist 60. The unit for this field value is specified by the timeUnits property of the analysis object. | Double |
TimeWindowStart | Die Anfangszeit für das Zeitfenster der Pausenzeit. Es müssen sowohl eine Start- als auch eine Endzeit angegeben werden. Wenn dieses Feld über einen Wert verfügt, müssen die Feldwerte für MaxTravelTimeBetweenBreaks und MaxCumulWorkTime NULL sein. Außerdem müssen alle anderen Pausenzeiten in der Analyse NULL-Werte für MaxTravelTimeBetweenBreaksund MaxCumulWorkTime aufweisen. Zur Berechnungszeit tritt ein Fehler auf, falls eine Route über mehrere Pausenzeiten mit überlappenden Zeitfenstern verfügt. The time window fields in breaks can contain a time-only value or a date and time value. If a time field, such as TimeWindowStart, has a time-only value (for example, 12:00 PM), the date is assumed to be the date specified by the defaultDate parameter. Using date and time values (for example, 7/11/2012 12:00 PM) allows you to specify time windows that span two or more days. This is beneficial when a break should be taken sometime before and after midnight. The value for this attribute can be specified using a datetime Python object, such as datetime.datetime(2019, 5, 11, 8, 30, 0), which represents Saturday May 11 2019 8:30:00 AM. To specify a time-only value, datetime.time(8, 30, 0) represents 8:30 AM on the default date that is set using the defaultDate property. The time zone for the value is specified by the timeZoneForTimeFields property of the analysis object. | Date |
TimeWindowEnd | Die Endzeit für das Zeitfenster der Pausenzeit. Es müssen sowohl eine Start- als auch eine Endzeit angegeben werden. Wenn dieses Feld über einen Wert verfügt, müssen die Feldwerte für MaxTravelTimeBetweenBreaks und MaxCumulWorkTime NULL sein. Alle anderen Pausenzeiten in der Analyse müssen NULL-Werte für MaxTravelTimeBetweenBreaksund MaxCumulWorkTime aufweisen. The value for this attribute can be specified using a datetime Python object, such as datetime.datetime(2019, 5, 11, 8, 30, 0), which represents Saturday May 11 2019 8:30:00 AM. To specify a time-only value, datetime.time(8, 30, 0) represents 8:30 AM on the default date that is set using the defaultDate property. The time zone for the value is specified by the timeZoneForTimeFields property of the analysis object. | Date |
MaxViolationTime | Dieses Feld gibt den maximal zulässigen Zeitverstoß für eine Zeitfenster-Pausenzeit an. Eine Zeitfensterverletzung liegt vor, wenn die Ankunftszeit außerhalb der Zeitspanne liegt. Der Wert 0 gibt an, dass keine Zeitfensterverletzung zulässig ist. Das heißt, es handelt sich um ein hartes Zeitfenster. Ein Wert ungleich 0 gibt die maximale Verspätung an. Beispielsweise kann die Pause 30 Minuten nach dem Ende des zugehörigen Zeitfensters beginnen, jedoch wird die Verspätung entsprechend der Eigenschaft "Gewichtung der Zeitfensterverletzung" sanktioniert. Diese Eigenschaft kann NULL sein. Ein NULL-Wert mit den Werten TimeWindowStart und TimeWindowEnd gibt an, dass der zulässige Zeitverstoß unbegrenzt ist. Wenn MaxTravelTimeBetweenBreaks oder MaxCumulWorkTime über einen Wert verfügt, muss MaxViolationTime NULL sein. The unit for this field value is specified by the timeUnits property of the analysis object. | Double |
MaxTravelTimeBetweenBreaks | Die maximale Fahrzeit, die akkumuliert werden kann, bevor die Pausenzeit genommen wird. Die Fahrzeit wird entweder ab dem Ende der vorherigen Pause oder, falls noch keine Pause eingelegt wurde, ab dem Start der Route akkumuliert. Wenn es sich um die letzte Pausenzeit der Route handelt, gibt MaxTravelTimeBetweenBreaks auch die maximale Fahrzeit an, die von der letzten Pause bis zum Enddepot akkumuliert werden kann. Mithilfe dieses Feldes kann der Zeitraum beschränkt werden, wie lange eine Person fahren darf, bis eine Pausenzeit erforderlich ist. Wenn als Zeiteinheit für die Analyse Minuten angegeben werden und MaxTravelTimeBetweenBreaks den Wert 120 aufweist, kann der Fahrer nach zwei Stunden Fahrt eine Pause einlegen. Um eine Pause nach zwei weiteren Stunden Fahrt zuzuweisen, muss für die Eigenschaft MaxTravelTimeBetweenBreaks der zweiten Pause der Wert 120 festgelegt werden. Wenn dieses Feld über einen Wert verfügt, müssen TimeWindowStart, TimeWindowEnd, MaxViolationTime und MaxCumulWorkTime NULL sein, damit eine Analyse erfolgreich berechnet werden kann. The unit for this field value is specified by the timeUnits property of the analysis object. | Double |
MaxCumulWorkTime | Die maximale Arbeitszeit, die akkumuliert werden kann, bevor die Pausenzeit genommen wird. Arbeitszeit wird immer ab dem Anfang der Route akkumuliert. Die Arbeitszeit ist die Summe der Fahrzeit und Durchführungszeiten für Aufträge, Depots und Pausenzeiten. Beachten Sie jedoch, dass die Wartezeit darin nicht enthalten ist. Dies ist die Zeit, die eine Route (bzw. ein Fahrer) am Ort eines Auftrags oder an einem Depot mit dem Warten auf das Beginn des Zeitfensters verbringt. Dieses Feld beschränkt den Zeitraum, wie lange eine Person arbeiten darf, bis eine Pausenzeit erforderlich ist. Wenn als Zeiteinheit für die Analyse Minuten angegeben werden, MaxCumulWorkTime den Wert 120 enthält und ServiceTime den Wert 15 aufweist, kann der Fahrer nach zwei Stunden Arbeit eine Pause von 15 Minuten einlegen. Angenommen, für das letzte Beispiel ist nach weiteren drei Stunden Arbeit eine zweite Pause erforderlich. Um diese Pause anzugeben, geben Sie 315 (fünf Stunden und fünfzehn Minuten) als MaxCumulWorkTime-Wert der zweiten Pause ein. In dieser Zahl sind die MaxCumulWorkTime- und ServiceTime-Werte der vorherigen Pausenzeit sowie die drei zusätzlichen Stunden Arbeitszeit vor dem Gewähren der zweiten Pause enthalten. Bedenken Sie dabei Folgendes: Um zu vermeiden, dass Pausen wegen maximaler Arbeitszeit vorzeitig eingelegt werden, wird die Arbeitszeit ab dem Anfang der Route akkumuliert. Außerdem enthält die Arbeitszeit die Durchführungszeiten von vorher besuchten Depots, Aufträgen und Pausenzeiten. Wenn dieses Feld über einen Wert verfügt, müssen TimeWindowStart, TimeWindowEnd, MaxViolationTime und MaxTravelTimeBetweenBreaks NULL sein, damit eine Analyse erfolgreich berechnet werden kann. The unit for this field value is specified by the timeUnits property of the analysis object. | Double |
IsPaid | Ein boolescher Wert, der angibt, ob die Pausenzeit bezahlt wird. Wird dieser Feldwert auf 1 gesetzt, bedeutet dies, dass die Pausenzeit in die Berechnung der Routenkosten sowie die Bestimmung der Überstunden einbezogen wird. Der Wert 0 bedeutet das Gegenteil. Der Standardwert ist 1. | Integer |
Sequence | Gibt die Sequenz der Pause auf der zugehörigen Route an. Diese Feld kann NULL-Werte enthalten, die dazu führen, dass der Solver die Pausensequenz zuweist. Wenn Sequenzwerte angegeben werden, sollten sie für jede Route positiv und eindeutig sein (gültig für Depotstopps zum Be-/Entladen, Aufträge und Pausenzeiten), müssen jedoch nicht bei 1 beginnen und nicht zusammenhängend sein. | Integer |
OrderPairs
Kombiniert Abhol- und Lieferaufträge, sodass sie über dieselbe Route abgearbeitet werden. Die Angabe von Auftragspaaren verhindert, dass die Analyse einer Route nur einen der Aufträge zuweist – entweder werden beide Aufträge derselben Route zugewiesen, oder keiner der Aufträge wird zugewiesen.
Zuweilen müssen Abholung und Lieferung der Aufträge paarweise zusammengefasst werden. Beispiel: Eine Kurierfirma benötigt eine Route, auf der ein wichtiges Paket abgeholt und ohne Rückkehr zum Depot oder zur Sortierstation geliefert wird, um die Lieferzeit zu minimieren. Durch die Verwendung von Auftragspaaren können diese zusammengehörigen Aufträge in der entsprechenden Reihenfolge derselben Route zugewiesen werden. Es können Einschränkungen für die Dauer zugewiesen werden, für die ein Paket im Fahrzeug bleiben darf. Beispiel: Eine Blutprobe muss innerhalb von zwei Stunden von der Arztpraxis in das Labor gebracht werden.
Einige Situationen können zwei Auftragspaare erfordern. Angenommen, Sie möchten eine Seniorin von ihrer Wohnung zum Arzt und zurück in ihre Wohnung fahren. Bei der Fahrt von ihrer Wohnung zur Arztpraxis handelt es sich um ein Auftragspaar mit einer gewünschten Ankunftszeit bei der Arztpraxis, und bei der Fahrt von der Arztpraxis zu ihrer Wohnung handelt es sich um ein weiteres Auftragspaar mit einer gewünschten Abholzeit.
The data type supports the following fields:
Field | Description | Data type |
---|---|---|
FirstOrderName | Der Name des ersten Auftrags des Paares. Dieses Feld dient als Fremdschlüssel für das Feld Name in Aufträgen. | String |
SecondOrderName | Der Name des zweiten Auftrags des Paares. Dieses Feld dient als Fremdschlüssel für das Feld Name in Aufträgen. The first order in the pair must be a pickup order; that is, the values for its DeliveryQuantity_* fields is 0. The second order in the pair must be a delivery order; that is, the values for its PickupQuantity_* fields is 0. The quantity picked up at the first order must agree with the quantity delivered at the second order. As a special case, both orders may have zero quantities for scenarios in which capacities are not used. Die Auftragsmengen werden nicht an Depots geladen oder entladen. | String |
MaxTransitTime | Die maximale Fahrzeit für das Auftragspaar. Die Fahrzeit ist die Dauer von der Abfahrtszeit des ersten Auftrags bis zur Ankunftszeit des zweiten Auftrags. Diese Einschränkung begrenzt die tatsächlich mit Fahren verbrachte Zeit zwischen den beiden Aufträgen. Wenn ein Fahrzeug Menschen oder verderbliche Waren transportiert, ist die Fahrzeit i. d. R. kürzer als bei einem Fahrzeug, das Pakete oder nicht verderbliche Waren transportiert. Dieses Feld kann NULL-Werte enthalten. Ein NULL-Wert gibt an, dass für die Fahrzeit keine Einschränkung gilt. The unit for this field value is specified by the timeUnits property of the analysis object. Vom Solver können Fahrzeitüberschreitungen (in Bezug auf die direkte Fahrzeit zwischen Auftragspaaren gemessen) verfolgt und gewichtet werden. Daher können Sie für den VRP-Solver eine von drei Strategien festlegen:
By assigning an importance level using the excessTransitFactor property of the analysis object, you are, in effect, choosing one of these three options. Regardless of the importance level, the solver will always return an error if the MaxTransitTime value is surpassed. | Double |
RouteRenewals
Gibt die Zwischendepots an, über die die Routen führen können, um die Fracht für Auslieferungs- oder Abholungsaufträge zu laden oder zu entladen. Über "Lager (Be-/Entladen)" wird eine Route mit einem Depot verknüpft. Die Beziehung gibt an, dass für die Route das Be- oder Entladen am zugeordneten Depot möglich ist.
Lager zum Be-/Entladen können zum Modellieren von Szenarien verwendet werden, in denen ein Fahrzeug am Startdepot eine vollständige Ladung von Lieferungen abholt, die Aufträge durchführt, zum Depot zurückkehrt, um neue Lieferungen zu laden, und weitere Aufträge durchführt. Beispielsweise kann bei der Lieferung von Propangas das Fahrzeug mehrere Lieferungen durchführen, bis der Tank nahezu oder vollständig leer ist, einen Stützpunkt zum Nachfüllen aufsuchen und dann weitere Lieferungen durchführen.
Hier sind folgende Regeln und Optionen zu beachten:
- Die Stelle zum Nachladen/Entladen bzw. der Standort zum Be-/Entladen muss nicht mit dem Start- oder Enddepot übereinstimmen.
- Jede Route kann eine oder mehrere vorab festgelegte Standorte zum Be-/Entladen aufweisen.
- Ein Standort zum Be-/Entladen kann mehrmals auf einer einzelnen Route verwendet werden.
- In einigen Fällen sind möglicherweise für eine Route mehrere potenzielle Standorte zum Be-/Entladen vorhanden, und vom Solver wird der nächste verfügbare Standort zum Be-/Entladen bestimmt.
The data type supports the following fields:
Field | Description | Data type |
---|---|---|
RouteName | Der Name der Route, auf die dieses Lager zum Be-/Entladen angewendet wird. Dieses Feld darf keinen NULL-Wert enthalten, und es fungiert als Fremdschlüssel für das Feld Name in Routen. | String |
DepotName | Der Name des Depots, bei dem das Be-/Entladen erfolgt. Dieses Feld darf keinen NULL-Wert enthalten, und es fungiert als Fremdschlüssel für das Feld Name in Depots. | String |
ServiceTime | Die Durchführungszeit für das Be-/Entladen. Dieses Feld kann einen NULL-Wert enthalten. Ein NULL-Wert gibt an, dass keine Durchführungszeit vorhanden ist. The unit for this field value is specified by the timeUnits property of the analysis object. Die Zeit zum Beladen eines Fahrzeugs an einem Depot zum Be-/Entladen kann von der Größe des Fahrzeugs und seinem Beladungszustand abhängen. Die Durchführungszeit für das Be-/Entladen an einem Lager ist ein fester Wert, bei dem das tatsächliche Beladen nicht berücksichtigt wird. Für die Durchführungszeit zum Be-/Entladen sollte daher ein Wert festgelegt werden, der einer vollständigen Lkw-Ladung oder einer durchschnittlichen Lkw-Ladung entspricht, oder Sie können einen eigenen Schätzwert für die Zeit festlegen. | Double |
Sequences | Specifies a space-separated string of sequence values of visits to the renewal depot. This field can contain a null value and is used to preassign visits to the renewal depot. | String |
RouteZones
Weist Arbeitsgebiete für bestimmte Routen aus. Eine Routenzone ist ein Polygon-Feature. Mit ihr werden Routen eingeschränkt, um nur die Aufträge durchzuführen, die im angegebenen Gebiet oder in dessen Nähe liegen. Nachfolgend finden Sie Beispiele für Fälle, in denen sich Routenzonen als sinnvoll erweisen:
- Einige Ihrer Mitarbeiter verfügen nicht über die erforderlichen Genehmigungen für die Durchführung von Arbeit in bestimmten Bundesländern oder Gemeinden. Sie können eine harte Routenzone erstellen, damit diese Mitarbeiter nur Aufträge in Gebieten erreichen, in denen die Anforderungen erfüllt werden.
- Bei einem Ihrer Fahrzeuge treten häufig Pannen auf und es soll nur Aufträge an Standorten durchführen, die sich in der Nähe Ihrer Reparaturwerkstatt befinden, um die Reaktionszeit zu minimieren. Sie können eine weiche oder harte Routenzone erstellen, um das Fahrzeug in der Nähe zu behalten.
The data type supports the following fields:
Field | Description | Data type |
---|---|---|
RouteName | Der Name der Route, für die diese Zone gilt. Einer Routenzone kann maximal eine Route zugeordnet sein. Dieses Feld darf keine NULL-Werte enthalten, und es fungiert als Fremdschlüssel für das Feld Name in Routen. | String |
IsHardZone | A Boolean value indicating a hard or soft route zone. A field value of 1 indicates that the route zone is hard; that is, an order that falls outside the route zone polygon can't be assigned to the route. The default value is 1. A field value of 0 indicates that such orders can still be assigned, but the cost of servicing the order is weighted by a function that is based on the Euclidean distance from the route zone. Basically, this means that as the straight-line distance from the soft zone to the order increases, the likelihood of the order being assigned to the route decreases. | Short Integer |
OrderSpecialties
OrderSpecialties and RouteSpecialties list the specialties that can be required by orders and supported by routes. A route can service an order only if it supports all the specialties required for that order.
An order may require a technician with a certain skill set or a vehicle with certain capabilities. You model these skills, capabilities, and so on, by adding them in the OrderSpecialties table. Next, you add the specialties that are supported by a route to RouteSpecialties. When the analysis is solved, orders that require certain specialties are matched with routes that can provide them.
The OrderSpecialties data type supports the following fields:
Field | Description | Data type |
---|---|---|
OrderName | The name of the order. The value of this field corresponds to a value in the Name field of an order in the Orders input class. | String |
SpecialtyName | The name of the specialty. Indicates the required specialty for the order. Only a single specialty is listed per line. If an order requires more than one specialty, create a new row. Specialty names can't contain spaces. For example, a senior technician specialty should be entered as SeniorTechnician. | String |
RouteSpecialties
OrderSpecialties and RouteSpecialties list the specialties that can be required by orders and supported by routes. A route can service an order only if it supports all the specialties required for that order.
An order may require a technician with a certain skill set or a vehicle with certain capabilities. You model these skills, capabilities, and so on, by adding them in the OrderSpecialties table. Next, you add the specialties that are supported by a route to RouteSpecialties. When the analysis is solved, orders that require certain specialties are matched with routes that can provide them.
The RouteSpecialties data type supports the following fields:
Field | Description | Data type |
---|---|---|
RouteName | The name of the route. The value of this field corresponds to a value in the Name field of a route in the Routes input class. | String |
SpecialtyName | The name of the specialty. Indicates the specialty that the route supports. Only a single specialty is listed per line. If a route supports more than one specialty, create a new row. Specialty names can't contain spaces. For example, a senior technician specialty should be entered as SeniorTechnician. | String |
PointBarriers
Verwenden Sie diesen Parameter, um einen oder mehrere Punkte anzugeben, die als vorübergehende Beschränkungen dienen bzw. die für das Passieren der betreffenden Straßen zusätzlich veranschlagte Zeit oder Entfernung anzeigen. Mit einer Punkt-Barriere kann beispielsweise ein umgestürzter Baum auf einer Straße oder eine Zeitverzögerung wegen des Halts an einem Bahnübergang angezeigt werden.
The data type supports the following fields:
Field | Description | Data type |
---|---|---|
Name | Der Name der Barriere. | String |
BarrierType | Gibt an, ob die Punkt-Barriere den Verkehr vollständig beschränkt oder ob beim Überschreiten der Barriere ein Mehraufwand an Zeit oder Entfernung entsteht. Der Wert für dieses Attribut wird als eine der nachfolgenden Ganzzahlen angegeben (verwenden Sie nicht den Namen in Klammern, sondern den numerischen Code):
| Short |
Additional_Time | Die zusätzliche Fahrzeit, die durch das Passieren der Barriere anfällt. Dieses Feld gilt nur für Barrieren vom Typ "Zusatzkosten". This field value must be greater than or equal to zero, and the values are interpreted to be in the units specified by the timeUnits property. | Double |
Additional_Distance | Die zusätzliche Entfernung, die durch das Passieren der Barriere anfällt. Dieses Feld gilt nur für Barrieren vom Typ "Zusatzkosten". This field value must be greater than or equal to zero, and the values are interpreted to be in the units specified by the distanceUnits property. | Double |
Additional_Cost | Die zusätzlichen Kosten, die durch das Passieren der Barriere anfallen. Dieses Feld gilt nur für Barrieren vom Typ "Zusatzkosten". This field value must be greater than or equal to zero, and the values are interpreted to be in unknown units. | Double |
FullEdge | Gibt an, wie Punkt-Barrieren für Beschränkungen bei der Analyse auf die Kantenelemente angewendet werden. Der Feldwert wird als eine der nachfolgenden Ganzzahlen angegeben (verwenden Sie nicht den Namen in Klammern, sondern den numerischen Code):
| Short |
CurbApproach | Gibt die Verkehrsrichtung an, die von der Barriere betroffen ist. Der Feldwert wird als eine der nachfolgenden Ganzzahlen angegeben (verwenden Sie nicht den Namen in Klammern, sondern den numerischen Code):
Da Knoten Punkte sind und keine Seite haben, wirken sich Barrieren für Knoten auf alle Fahrzeuge aus, unabhängig vom Attribut "CurbApproach". Das Attribut CurbApproach kann sowohl in Ländern mit Rechtsverkehr (Deutschland) als auch in Ländern mit Linksverkehr (Großbritannien) verwendet werden. Stellen Sie sich zunächst eine Einrichtung auf der linken Seite eines Fahrzeugs vor. Es befindet sich stets auf der linken Seite, egal ob das Fahrzeug auf der linken oder rechten Seite der Straße fährt. Was sich abhängig von den nationalen Verkehrsregeln ändern kann, ist Ihre Entscheidung, aus welcher Richtung Sie sich der Einrichtung nähern, sodass sie sich entweder links oder rechts vom Fahrzeug befindet. Um beispielsweise eine Einrichtung zu erreichen, ohne dass sich eine Fahrspur zwischen dem Fahrzeug und der Einrichtung befindet, wählen Sie in Deutschland 1 (Rechte Seite des Fahrzeugs), in Großbritannien hingegen 2 (Linke Seite des Fahrzeugs) aus. | Short |
Bearing | Die Richtung, in die sich ein Punkt bewegt. Die Einheit ist Grad und wird im Uhrzeigersinn von geographisch Nord gemessen. Dieses Feld wird in Verbindung mit dem Feld BearingTol verwendet. Peilungsdaten werden normalerweise automatisch von einem mobilen Gerät gesendet, das mit einem GPS-Empfänger ausgestattet ist. Sie sollten möglichst Peilungsdaten einbeziehen, wenn Sie eine sich bewegende Eingabeposition laden, beispielsweise einen Fußgänger oder ein Fahrzeug. Durch die Verwendung dieses Feldes kann verhindert werden, dass Positionen falschen Kanten zugewiesen werden, was auftreten kann, wenn er sich zufällig in der Nähe einer Kreuzung oder einer Überführung befindet. Mithilfe der Peilung kann das Werkzeug einfacher ermitteln, auf welcher Straßenseite sich der Punkt befindet. | Double |
BearingTol | Anhand des Peilungstoleranzwertes wird ein Bereich mit zulässigen Peilungswerten erstellt, wenn Punkte über das Feld Bearing auf einer Kante bewegt werden. Wenn sich der Wert des Feldes Bearing innerhalb des Bereichs der zulässigen Werte befindet, die über die Peilungstoleranz auf einer Kante generiert werden, kann der Punkt dort als Netzwerkstandort hinzugefügt werden. Andernfalls wird der nächstgelegene Punkt an der übernächsten Kante ausgewertet. Die Einheiten sind in Grad und der Standardwert ist 30. Der Wert muss größer als 0 und kleiner als 180 sein. Der Wert 30 bedeutet, dass beim Hinzufügen eines Netzwerkstandortes auf einer Kante durch Network Analyst auf beiden Seiten der Kante (links und rechts) und in beiden Digitalisierrichtungen der Kante ein zulässiger Peilungswertebereich in einem Winkel von 15 Grad generiert wird. | Double |
NavLatency | Dieses Feld wird nur im Berechnungsprozess verwendet, wenn Bearing und BearingTol ebenfalls Werte enthalten. Die Eingabe eines NavLatency-Wertes ist jedoch optional, selbst wenn in Bearing und BearingTol Werte enthalten sind. NavLatency gibt an, welche Kosten voraussichtlich zwischen dem Senden von GPS-Informationen von einem sich bewegenden Fahrzeug zu einem Server und dem Empfang der verarbeiteten Route durch das Navigationsgerät des Fahrzeugs anfallen. The time units of NavLatency are the same as the units specified by the timeUnits property of the analysis object. | Double |
Network location fields
| Zusammen beschreiben diese Eigenschaften den Punkt im Netzwerk, an dem sich das Objekt befindet. Weitere Informationen zur Suche nach Eingaben in einem Netzwerk |
LineBarriers
Verwenden Sie diesen Parameter, um eine oder mehrere Linien anzugeben, die das Überfahren von Linien, die Straßen überschneiden, verbieten. Mit einer Linien-Barriere kann beispielsweise eine Parade oder Demonstration modelliert werden, die den Verkehr über mehrere Straßenzüge hinweg blockiert. Mit einer Linien-Barriere können außerdem schnell mehrere Straßen abgeriegelt werden, um unerwünschte Teile des Straßennetzes aus den möglichen Routen auszuschließen.
The data type supports the following fields:
Field | Description | Data type |
---|---|---|
Name | Der Name der Barriere. | String |
BarrierType | Gibt an, ob die Barriere den Verkehr vollständig beschränkt oder ob beim Passieren der Barriere Mehrkosten (in Form von Zeit oder Entfernung) entstehen. Der Feldwert wird als eine der nachfolgenden Ganzzahlen angegeben (verwenden Sie nicht den Namen in Klammern, sondern den numerischen Code):
| Short |
ScaledTimeFactor | Um diesen Faktor erhöht sich die Fahrzeit durch die Straßen, die von der Barriere abgeschnitten werden. Der Feldwert muss größer 0 sein. Dieses Feld gilt nur für Barrieren vom Typ "Kostenfaktoren". | Double |
ScaledDistanceFactor | Um diesen Faktor erhöht sich die Strecke durch die Straßen, die von der Barriere abgeschnitten werden. Der Feldwert muss größer 0 sein. Dieses Feld gilt nur für Barrieren vom Typ "Kostenfaktoren". | Double |
ScaledCostFactor | Um diesen Faktor erhöhen sich die Kosten für die Straßen, die sich mit der Barriere schneiden. Der Feldwert muss größer 0 sein. Dieses Feld gilt nur für Barrieren vom Typ "Kostenfaktoren". | Double |
Locations | Die Information in diesem Feld definiert, welche Netzwerkkanten und -knoten durch die Linie oder das Polygon abgedeckt sind und welcher Anteil des Kantenelements jeweils abgedeckt ist. Die Information in diesem Feld kann nicht direkt gelesen oder bearbeitet werden. Sie wird jedoch von Network Analyst beim Berechnen einer Analyse interpretiert. Weitere Informationen zur Suche nach Eingaben in einem Netzwerk | Blob |
PolygonBarriers
Verwenden Sie diesen Parameter, um Polygone anzugeben, die den Verkehr entweder vollständig beschränken oder für die mehr Zeit oder eine längere Strecke für das Durchfahren der von den Polygonen überschnittenen Straßen veranschlagt wird.
The data type supports the following fields:
Field | Description | Data type |
---|---|---|
Name | Der Name der Barriere. | String |
BarrierType | Gibt an, ob die Barriere den Verkehr vollständig beschränkt oder ob beim Passieren der Barriere Mehrkosten (in Form von Zeit oder Entfernung) entstehen. Der Feldwert wird als eine der nachfolgenden Ganzzahlen angegeben (verwenden Sie nicht den Namen in Klammern, sondern den numerischen Code):
| Short |
ScaledTimeFactor | Um diesen Faktor erhöht sich die Fahrzeit durch die Straßen, die von der Barriere abgeschnitten werden. Der Feldwert muss größer 0 sein. Dieses Feld gilt nur für Barrieren vom Typ "Kostenfaktoren". | Double |
ScaledDistanceFactor | Um diesen Faktor erhöht sich die Strecke durch die Straßen, die von der Barriere abgeschnitten werden. Der Feldwert muss größer 0 sein. Dieses Feld gilt nur für Barrieren vom Typ "Kostenfaktoren". | Double |
ScaledCostFactor | Um diesen Faktor erhöhen sich die Kosten für die Straßen, die sich mit der Barriere schneiden. Der Feldwert muss größer 0 sein. Dieses Feld gilt nur für Barrieren vom Typ "Kostenfaktoren". | Double |
Locations | Die Information in diesem Feld definiert, welche Netzwerkkanten und -knoten durch die Linie oder das Polygon abgedeckt sind und welcher Anteil des Kantenelements jeweils abgedeckt ist. Die Information in diesem Feld kann nicht direkt gelesen oder bearbeitet werden. Sie wird jedoch von Network Analyst beim Berechnen einer Analyse interpretiert. Weitere Informationen zur Suche nach Eingaben in einem Netzwerk | Blob |