Mit der Network Analyst-Lizenz verfügbar.
Viele Organisationen arbeiten Aufträge mithilfe einer Fahrzeugflotte ab. Beispielsweise kann ein großes Möbelgeschäft mehrere Lastwagen zum Ausliefern von Möbeln an Kunden einsetzen. Ein auf Fettrecycling spezialisiertes Unternehmen kann Lkw von einer Einrichtung zu Restaurants senden, um dort Altfett abzuholen. Eine Gesundheitsbehörde kann in einem Terminplan tägliche Kontrollbesuche für die einzelnen Gesundheitskontrolleure festlegen.
Allen oben genannten Beispielen ist das Vehicle Routing Problem (VRP) gemeinsam. Jede Organisation muss bestimmen, welche Aufträge (Wohnstätten, Restaurants oder Standorte von Kontrollbesuchen) mit den einzelnen Routen (Lkw oder Kontrolleur) ausgeführt werden sollen und in welcher Reihenfolge die Aufträge erledigt werden sollen. Das wichtigste Ziel ist die optimale Durchführung der Aufträge und die Minimierung der Gesamtbetriebskosten für die Fahrzeugflotte. Während der Routen-Solver der Erweiterung "ArcGIS Network Analyst" die optimale Route für ein einzelnes Fahrzeug und viele Stopps ermittelt, ermittelt der VRP-Solver die optimalen Routen für eine Fahrzeugflotte, mit der viele Aufträge abgearbeitet werden. Der VRP-Solver kann außerdem spezifischere Probleme lösen, weil zahlreiche Optionen verfügbar sind, z. B. Vergleichen von Fahrzeugkapazitäten mit Auftragsmengen, Zuteilen von Pausenzeiten für Fahrer sowie paarweises Zusammenstellen von Aufträgen für dieselbe Route.
Beim Ermitteln einer Vehicle Routing Problem-Lösung wird der gleiche Workflow wie bei anderen Netzwerkanalysen verwendet.
Weitere Informationen zum Workflow einer Netzwerkanalyse
Analyse-Layer für das Vehicle Routing Problem
Im Analyse-Layer für das Vehicle Routing Problem werden Eingaben, Parameter und Ergebnisse für ein bestimmtes Vehicle Routing Problem gespeichert.
Erstellen eines Analyse-Layers für das Vehicle Routing Problem
Sie können den Analyse-Layer für das Vehicle Routing Problem erstellen, indem Sie in der Werkzeugleiste Network Analyst auf Network Analyst > Neues Vehicle Routing Problem klicken.
Wenn Sie einen Analyse-Layer für das Vehicle Routing Problem erstellen, wird dieser im Fenster Network Analyst mit seinen 13 Netzwerkanalyseklassen angezeigt: Aufträge, Depots, Routen, Depotstopps, Pausenzeiten, Routenzonen, Routenschwerpunkte, Lager (Be-/Entladen), Besonderheiten, Auftragspaare, Punkt-Barrieren, Linien-Barrieren und Polygon-Barrieren.
Der Analyse-Layer für das Vehicle Routing Problem wird auch im Fenster Inhaltsverzeichnis als Verbund-Layer angezeigt, der die Bezeichnung "Vehicle Routing Problem" aufweist. Falls im Kartendokument bereits ein Vehicle Routing Problem mit dem gleichen Namen vorhanden ist, wird "Vehicle Routing Problem 1", "Vehicle Routing Problem 2" usw. verwendet. Es gibt neun Feature-Layer: Aufträge, Depotstopps, Depots, Routenschwerpunkte, Routen, Routenzonen, Punkt-Barrieren, Linien-Barrieren und Polygon-Barrieren. Jeder dieser neun Feature-Layer verfügt über eine Standardsymbolisierung, die im jeweiligen Dialogfeld Layer-Eigenschaften geändert werden kann.
Klassen der Vehicle Routing Problem-Analyse
Der Analyse-Layer für das Vehicle Routing Problem besteht aus 13 Netzwerkanalyseklassen, bei denen es sich um Feature-Layer oder -Tabellen handelt, die im Analyse-Layer gespeichert sind. Sie enthalten die Netzwerkanalyse-Objekte, die beim Lösen des Vehicle Routing Problem verwendet werden. Die Beziehungen zwischen verschiedenen Netzwerkanalyseklassen werden im folgenden Dokument dargestellt:
Beziehungen zwischen Netzwerkanalyseklassen im Vehicle Routing ProblemDie folgenden Abschnitte bieten einen Überblick über die einzelnen Klassen und Beschreibungen ihrer Eigenschaften.
Weitere Informationen zu Netzwerkanalyse-Klassen
Aufträge-Feature-Layer
In diesem Feature-Layer werden die Aufträge gespeichert, die Teil eines angegebenen Analyse-Layers für das Vehicle Routing Problem sind. Ein Auftrag kann eine Lieferung an einen Kunden, eine Abholung von einem Kunden oder eine sonstige Arbeit sein. Dazu gehören z. B. eine Möbellieferung, eine Fettabholung von einem Restaurant oder ein Inspektionstermin.
Wenn Aufträge eine Abholung oder eine Auslieferung erfordern, können die Artikel über eine oder mehrere Eigenschaften verfügen, wobei es sich um eine Art von Maß oder Wert oder um eine Kombination mehrerer Maße oder Werte handeln kann, z. B. Gewichtung, Volumen oder Anzahl von Einheiten. Einigen Aufträgen, z. B. Kontrollbesuchen, ist möglicherweise keine Auslieferung oder Abholung zugeordnet.
Ein Auftrag kann über eine Durchführungszeit verfügen. Dies ist die zum Abarbeiten des Auftrags erforderliche Zeit. Beispielsweise kann für einen Lieferwagen eine Durchführungszeit von 20 Minuten erforderlich sein, um ein Möbelstück zu entladen und in einer Wohnung aufzustellen. Die Durchführungszeit kann für alle Aufträge gleich oder für jeden Auftrag unterschiedlich sein.
Ein Auftrag kann ein oder zwei Zeitfenster aufweisen, die angeben, wann ein Fahrzeug den Ort des Auftrags aufsuchen darf. Beispiel: Ein Lieferwagen für Großhandelslebensmittel darf nur zwischen 8:00 und 10:00 Uhr oder zwischen 14:00 und 16:00 Uhr bei einem Restaurant eintreffen, weil bei einer Ankunft zu einer anderen Uhrzeit der Restaurantbetrieb gestört wird.
Der VRP-Solver ist nicht für die Lösung von Problemen über einen Zeitraum von einem Jahr vorgesehen. Daher müssen alle Durchführungszeiten und Zeitfenster weniger als ein Jahr betragen.
Einem Auftrag können Besonderheiten zugeordnet werden. Beispielsweise kann ein Auftrag einen Facharbeiter mit einer bestimmten Qualifikation (z. B. einen Elektriker) oder ein Fahrzeug mit bestimmten Funktionen (z. B. eine Hebebühne) erfordern. Dem Auftrag wird nur eine Route zugewiesen, die über die gleiche Besonderheit verfügt.
Eigenschaften von "Aufträge"
Eingabefelder für "Aufträge"
Eingabefeld | Beschreibung |
---|---|
ObjectID | Das vom System verwaltete ID-Feld. |
Shape | Das Geometriefeld, das die geographische Position des Netzwerkanalyse-Objekts angibt. |
Name | Der Name des Netzwerkanalyse-Objekts. Der Name muss eindeutig sein. Dieses Feld fungiert als Primärschlüssel und wird als Fremdschlüssel verwendet, um auf Aufträge in der Tabelle "OrderPairs" zu verweisen. Bei Auftragsnamen muss nicht zwischen Groß- und Kleinschreibung unterschieden werden und sie müssen auch dann angegeben werden (Feld darf nicht leer sein), wenn der Auftrag aus dem Berechnungsvorgang ausgeschlossen wird. |
Beschreibung | 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 "Beschreibung" den eigentlichen Namen oder die Adresse des Kunden speichern. |
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. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
TimeWindowStart1 | Die Anfangszeit des ersten Zeitfensters für den Netzwerkstandort. Dieses Feld kann einen Nullwert enthalten. Ein Nullwert gibt an, dass keine Anfangszeit vorhanden ist. (Weitere Informationen finden Sie im Hinweis unter dieser Eigenschaftentabelle.) |
TimeWindowEnd1 | Die Endzeit des ersten Zeitfensters für den Netzwerkstandort. Dieses Feld kann einen Nullwert enthalten. Ein Nullwert gibt an, dass keine Endzeit vorhanden ist. (Weitere Informationen finden Sie im Hinweis unter dieser Eigenschaftentabelle.) |
TimeWindowStart2 | Die Anfangszeit des zweiten Zeitfensters für den Netzwerkstandort. Dieses Feld kann einen Nullwert enthalten. Ein Nullwert gibt an, dass kein zweites Zeitfenster vorhanden ist. Wenn das erste Zeitfenster gemäß den Feldern "TimeWindowStart1" und "TimeWindowEnd1" NULL ist, muss das zweite Zeitfenster ebenfalls NULL sein. 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. (Weitere Informationen finden Sie im Hinweis unter dieser Eigenschaftentabelle.) |
TimeWindowEnd2 | Die Endzeit des zweiten Zeitfensters für den Netzwerkstandort. Dieses Feld kann einen Nullwert 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. (Weitere Informationen finden Sie im Hinweis unter dieser Eigenschaftentabelle.) |
MaxViolationTime1 | 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 Nullwert bedeutet jedoch 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. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. Zeitfensterverletzungen können vom Solver verfolgt und gewichtet werden. Daher können Sie für den VRP-Solver eine von drei Strategien festlegen:
Wenn Sie für die Einstellung Zeitfensterverletzung des Analyse-Layers eine Gewichtung zuweisen, wählen Sie letztendlich eine dieser drei Strategien aus. Der Solver gibt jedoch in jedem Fall einen Fehler zurück, wenn der für "MaxViolationTime1" festgelegte Wert überschritten wird. |
MaxViolationTime2 | Der maximal zulässige Zeitverstoß für das zweite Zeitfenster des Auftrags. Dieses Feld entspricht dem Feld "MaxViolationTime1". |
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. Anmerkungen:
|
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. Dies erfolgt durch Einstellen der ausgehenden Abfahrtzeit auf 15:00 Uhr. Anmerkungen:
|
DeliveryQuantities | Die Größe der Lieferung. Sie können die Größe in jeder beliebigen Dimension, wie Gewicht, Volumen oder Menge, angeben. Sie können sogar mehrere Dimensionen, wie beispielsweise Gewicht und Volumen, angeben. Wenn der Auftrag Waren mit einem Gesamtgewicht von 1.000 Kilogramm erfordert, sollte im Dialogfeld Layer-Eigenschaften des Analyse-Layers der Parameter Kapazitätszahl auf 1 und DeliveryQuantities auf 1000 festgelegt werden. Wenn von der Eigenschaft Kapazitätszahl des Analyse-Layers mehrere Kapazitäten angegeben werden, werden die Werte von "DeliveryQuantities" durch Leerzeichen getrennt. Wenn z. B. Gewicht und Volumen bekannt sind, sollte im Dialogfeld Layer-Eigenschaften des Analyse-Layers die Option Kapazitätszahl auf 2 festgelegt werden. Wenn der Auftrag Waren mit einem Gesamtgewicht von 1.000 Kilogramm erfordert, die 50 Kubikmeter Raum beanspruchen, sollte "DeliveryQuantities" auf 1000 50 festgelegt werden. Eine leere Zeichenfolge oder ein Nullwert gibt an, dass alle Dimensionen Null sind. Wenn die Anzahl der Werte in der Zeichenfolge geringer als die Kapazitätszahl oder die Anzahl der verfolgten Dimensionen ist, werden die restlichen Werte als Nullen behandelt. Für "DeliveryQuantities" sind negative Werte nicht zulässig. |
PickupQuantities | Die Größe der Abholung. Sie können die Größe in jeder beliebigen Dimension, wie Gewicht, Volumen oder Menge, angeben. Sie können sogar mehrere Dimensionen, wie beispielsweise Gewicht und Volumen, angeben. Sie können jedoch keine negativen Werte verwenden. Dieses Feld entspricht dem Feld "DeliveryQuantities" für Aufträge. |
Revenue | Die generierten Einnahmen, wenn der Auftrag in einer Lösung enthalten ist. Dieses Feld darf einen Nullwert (ein Nullwert 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 der Klasse "Routen" niemals "Revenue" enthält. Jedoch wird für "Revenue" die relative Gewichtung der Ausführung von Aufträgen berücksichtigt. |
SpecialtyNames | Eine durch Leerzeichen getrennte Zeichenfolge mit den Namen der für den Auftrag erforderlichen Besonderheiten. Ein Nullwert gibt an, dass der Auftrag keine Besonderheiten erfordert. Dieses Feld dient als Fremdschlüssel für das Feld "Name" in der Tabelle "Besonderheiten". Besondere Objekte müssen vorhanden sein, bevor sie in der Dropdown-Liste "SpecialtyNames" angezeigt werden. Beispiel: Ein Gartenbaubetrieb muss einen Auftrag mit einem Pestizid ausführen, das eine Lizenz für den Anwender erfordert. Das Unternehmen kann ein besonderes Objekt mit dem Namen Lizenz erstellen und diese Eigenschaft auf Lizenz festlegen. |
AssignmentRule | In diesem Feld ist die Regel zum Zuweisen des Auftrags zu einer Route angegeben. Sie wird von einer Domäne von Werten eingeschränkt, die unten aufgeführt sind (codierte Werte werden in Klammern angegeben).
Dieses Feld darf keinen Nullwert enthalten. |
Netzwerkstandortfelder
| Zusammen beschreiben diese vier Eigenschaften den Punkt im Netzwerk, an dem sich das Objekt befindet. |
CurbApproach | Die Eigenschaft "CurbApproach" gibt die Richtung an, in der ein Fahrzeug am Netzwerkstandort ankommen bzw. von ihm wegfahren kann. Es sind vier Optionen (ihre codierten Werte werden in Klammern angegeben) verfügbar:
|
Eingabe-/Ausgabefelder von Aufträgen
Eingabe-/Ausgabefeld | Beschreibung |
---|---|
RouteName | Der Name der Route, der der Auftrag zugewiesen wird. Als Eingabefeld dient dieses Feld zum Vorabzuweisen eines Auftrags zu einer bestimmten Route. Es kann einen Nullwert enthalten, um anzugeben, dass der Auftrag keiner Route vorab zugewiesen ist. In diesem Fall erfolgt die Zuweisung 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. Das Feld "RouteName" dient als Fremdschlüssel für das Feld "Name" in der Klasse "Routen". Routenobjekte müssen vorhanden sein, bevor sie in der Liste "RouteName" angezeigt 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. |
Sequence | Gibt die Sequenz des Auftrags auf der zugewiesenen Route an. Als Eingabefeld dient dieses Feld zum Angeben der relativen Sequenz eines Auftrags auf der Route. Das Feld kann einen Nullwert enthalten, um anzugeben, dass der Auftrag an einer beliebigen Position auf der Route eingefügt werden kann. Ein Nullwert ist nur gemeinsam mit einem Nullwert für "RouteName" zulässig. Die Eingabesequenzwerte sind nicht negativ und für jede Route eindeutig (gültig für Depotstopps, Aufträge und Pausenzeiten), müssen jedoch nicht bei 0 beginnen und nicht zusammenhängend sein. Nach einem Berechnungsvorgang enthält das Feld "Sequence" den Sequenzwert des Auftrags für die zugewiesene Route. Ausgabesequenzwerte für eine Route gelten für Depotstopps, Aufträge und Pausenzeiten, sie beginnen bei 1 (beim Startdepot) und sind aufeinander folgende Werte. Daher ist der kleinstmögliche Ausgabesequenzwert für einen einer Route zugewiesenen Auftrag 2, weil eine Route immer bei einem Depot beginnt. |
Status | Dieses Feld wird von einer Domäne von Werten eingeschränkt, die unten aufgeführt ist (ihre codierten Werte werden in Klammern angegeben).
Nach dem Berechnungsvorgang kann der Status in einen der folgenden Statuswerte geändert werden:
Wenn Zeitfenster verwendet werden und die Route ein zu frühes oder zu spätes Ankommen bewirkt, ändert sich der Wert in Zeitfensterverletzung (6). |
Ausgabefelder von Aufträgen
Ausgabefeld | Beschreibung |
---|---|
ViolatedConstraints | Dieses Feld enthält eine Zusammenfassung von Beschränkungsverletzungen. Es wird nach einem Berechnungsvorgang festgelegt. Eine Kombination der unten aufgeführten Verletzungen kann dem Feld zugewiesen werden, wenn das Zuweisen des Auftrags zu einer Route zur Verletzung einer Einschränkung führt.
Weitere Informationen zur Problembehandlung bei Netzwerkanalysen |
FromPrevTravelTime | Die Fahrzeit zwischen dem vorherigen Stopp auf der Route und dem Auftrag. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
FromPrevDistance | Die Reisestrecke zwischen dem vorherigen Stopp auf der Route und dem Auftrag. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Entfernungsfeldeinheiten" des Analyse-Layers angegeben. Dieses Feld ist Null, wenn in den Analyseparametern nicht die Eigenschaft "Entfernungsattribut" angegeben ist. |
CumulTravelTime | Die kumulative Fahrzeit für die Route bis zur Ankunft beim Auftrag. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
CumulDistance | Die kumulative Reisestrecke für die Route bis zur Ankunft beim Auftrag. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Entfernungsfeldeinheiten" des Analyse-Layers angegeben. Dieses Feld ist Null, wenn in den Analyseparametern nicht die Eigenschaft "Entfernungsattribut" angegeben ist. |
CumulTime | Die kumulative Routendauer bis zum Auftrag (einschließlich). Die kumulative Dauer umfasst Fahrzeiten sowie Durchführungs- und Wartezeiten bei Aufträgen. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
ArriveCurbApproach | Gibt an, auf welcher Seite des Fahrzeugs sich die Bordsteinkante befindet, wenn sich das Fahrzeug dem Netzwerkstandort nähert. Wenn der Wert für "CurbApproach" des Netzwerkstandorts auf "Rechte Seite des Fahrzeugs" festgelegt wird, dann hat "ArriveCurbApproach" nach dem Berechnen den Wert "Rechte Seite des Fahrzeugs". Wenn der Wert für "CurbApproach" jedoch auf "Beide Seiten des Fahrzeugs" oder "Wendeverbot" festgelegt wird, kann "ArriveCurbApproach" den Wert "Rechte Seite des Fahrzeugs" oder "Linke Seite des Fahrzeugs" haben, je nachdem, welcher Wert den insgesamt kürzesten Pfad ergibt. |
DepartCurbApproach | Gibt an, auf welcher Seite des Fahrzeugs sich die Bordsteinkante befindet, wenn sich das Fahrzeug vom Netzwerkstandort entfernt. Wenn der Wert für "CurbApproach" des Netzwerkstandorts auf "Rechte Seite des Fahrzeugs" festgelegt wird, dann hat "DepartCurbApproach" nach dem Berechnen den Wert "Rechte Seite des Fahrzeugs". Wenn der Wert für "CurbApproach" jedoch auf "Beide Seiten des Fahrzeugs" oder "Wendeverbot" festgelegt wird, kann "DepartCurbApproach" den Wert "Rechte Seite des Fahrzeugs" oder "Linke Seite des Fahrzeugs" haben, je nachdem, welcher Wert den insgesamt kürzesten Pfad ergibt. |
ArriveTime | Der Datums- und Uhrzeitwert, der die Ankunftszeit beim Auftrag angibt. Die Ankunftszeit der Route beim Auftrag kann vor dem Anfang eines der Zeitfenster des Auftrags liegen. In diesem Fall ist eine Wartezeit beim Auftrag vorhanden. Für einen Auftrag mit weichen Zeitfenstern kann die Ankunftszeit der Route beim Auftrag nach dem Ende eines der Zeitfenster liegen. In diesem Fall liegt ein Zeitverstoß beim Auftrag vor. Wenn Verkehrsdaten verwendet werden, die mehrere Zeitzonen umfassen, wird die Zeitzone für diesen Uhrzeitwert von dem Netzwerkelement übernommen, auf dem sich der Auftrag befindet. |
DepartTime | Der Datums- und Uhrzeitwert, der die Abfahrtszeit vom Auftrag angibt. Die Abfahrt vom Auftrag auf der Route erfolgt nach Abschluss der Durchführung. Wenn Verkehrsdaten verwendet werden, die mehrere Zeitzonen umfassen, wird die Zeitzone für diesen Uhrzeitwert von dem Netzwerkelement übernommen, auf dem sich der Auftrag befindet. |
ArriveTimeUTC | Der Datums- und Uhrzeitwert zur Angabe der Ankunftszeit in koordinierter Weltzeit (Coordinated Universal Time, UTC) am Auftragsort. |
DepartTimeUTC | Der Datums- und Uhrzeitwert zur Angabe der Abfahrtszeit in koordinierter Weltzeit (Coordinated Universal Time, UTC) vom Auftragsort. Die Abfahrt vom Auftrag auf der Route erfolgt nach Abschluss der Durchführung. |
WaitTime | Die Wartezeit oder der Aufenthalt beim Auftrag. Beispielsweise ist ein Wartezeitwert vorhanden, wenn auf einer Route bei dem Auftrag gewartet werden muss, bis sich ein Zeitfenster öffnet. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
ViolationTime | Die zwischen dem Ende des Zeitfensters für den Auftrag und der Ankunft des Fahrzeugs für die Route verstrichene Zeit. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
CumulWaitTime | Die kumulative Wartezeit vom Anfang der Route bis zum Abschluss des Auftrags. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
CumulViolationTime | Der kumulative Zeitverstoß vom Anfang der Route bis zum Abschluss des Auftrags. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
Klasse "Depots"
In dieser Netzwerkanalyseklasse werden die Depots gespeichert, die Teil eines angegebenen Analyse-Layers für das Vehicle Routing Problem sind. Ein Depot ist ein Standort, den ein Fahrzeug am Anfang des Arbeitstages verlässt und zu dem es am Ende des Arbeitstages zurückkehrt. Depots sind Standorte, an denen Fahrzeuge beladen (für Lieferungen) oder entladen (für Abholungen) werden. 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.
Eigenschaften von "Depots"
Eingabefelder von Depots
Eingabefeld | Beschreibung |
---|---|
ObjectID | Das vom System verwaltete ID-Feld. |
Shape | Das Geometriefeld, das die geographische Position des Netzwerkanalyse-Objekts angibt. |
Name | Der Name des Netzwerkanalyse-Objekts. Dieses Feld ist ein Primärschlüssel und dient als Fremdschlüssel im Routen-Feature-Layer, in der Tabelle "RouteRenewals" und im Feature-Layer "Depotstopps", um auf Depots zu verweisen. Bei Depotnamen muss nicht zwischen Groß- und Kleinschreibung unterschieden werden, sie müssen angegeben werden und eindeutig sein. |
Beschreibung | Die beschreibenden Informationen zum Netzwerkanalyse-Objekt. Diese können Textinformationen umfassen und müssen nicht eindeutig sein. Eventuell möchten Sie notieren, in welcher Region sich ein Depot befindet, oder die Adresse und Telefonnummer des Depots angeben. Sie können diese Informationen hier statt im Feld "Name" eingeben. |
TimeWindowStart1 | Die Anfangszeit des ersten Zeitfensters für den Netzwerkstandort. Dieses Feld kann einen Nullwert enthalten. Ein Nullwert gibt an, dass keine Anfangszeit vorhanden ist. (Weitere Informationen finden Sie im Hinweis unter dieser Eigenschaftentabelle.) |
TimeWindowEnd1 | Die Endzeit des ersten Zeitfensters für den Netzwerkstandort. Dieses Feld kann einen Nullwert enthalten. Ein Nullwert gibt an, dass keine Endzeit vorhanden ist. (Weitere Informationen finden Sie im Hinweis unter dieser Eigenschaftentabelle.) |
TimeWindowStart2 | Die Anfangszeit des zweiten Zeitfensters für den Netzwerkstandort. Dieses Feld kann einen Nullwert enthalten. Ein Nullwert gibt an, dass kein zweites Zeitfenster vorhanden ist. Wenn das erste Zeitfenster gemäß den Feldern "TimeWindowStart1" und "TimeWindowEnd1" NULL ist, muss das zweite Zeitfenster ebenfalls NULL sein. 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. (Weitere Informationen finden Sie im Hinweis unter dieser Eigenschaftentabelle.) |
TimeWindowEnd2 | Die Endzeit des zweiten Zeitfensters für den Netzwerkstandort. Dieses Feld kann einen Nullwert 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. (Weitere Informationen finden Sie im Hinweis unter dieser Eigenschaftentabelle.) |
Netzwerkstandortfelder
| Zusammen beschreiben diese vier Eigenschaften den Punkt im Netzwerk, an dem sich das Objekt befindet. |
CurbApproach | Die Eigenschaft "CurbApproach" gibt die Richtung an, aus der ein Fahrzeug am Depot ankommen bzw. dieses verlassen kann. Dies ist für Fahrzeuge nützlich, die ein Depot in einer bestimmten Richtung anfahren oder verlassen oder auch das Wenden vermeiden müssen. Sie können diese Anforderungen berücksichtigen, indem Sie für "CurbApproach" einen der folgenden vier Werte auswählen:
|
Eingabe-/Ausgabefelder von Depots
Eingabe-/Ausgabefeld | Beschreibung |
---|---|
Status | Dieses Feld wird von einer Domäne von Werten eingeschränkt, die unten aufgeführt ist (ihre codierten Werte werden in Klammern angegeben).
Nach dem Berechnungsvorgang kann der Status in einen der folgenden Statuswerte geändert werden:
Wenn Zeitfenster verwendet werden und das geroutete Fahrzeug zu früh oder zu spät ankommt, ändert sich der Wert in Zeitfensterverletzung (6). |
Routen-Klasse
In dieser Netzwerkanalyseklasse werden die Routen gespeichert, die Teil eines angegebenen Analyse-Layers für das Vehicle Routing Problem sind. Eine Route gibt die Fahrzeug- und Fahrereigenschaften an und stellt die Fahrt zwischen Depots und Aufträgen dar. In Network Analyst sind Fahrzeuge, Routen und Fahrer Synonyme und die Bezeichnung "Route" umfasst alle drei Begriffe.
Für eine Route kann an den Start- oder Enddepots Zeit für das Be- und Entladen veranschlagt sein. Der Zeitraum, der an einem Depot verbracht wird, ist für die Route festgelegt und wird als Durchführungszeit am Start- und Enddepot angegeben.
Eine Route kann zu einer bestimmten Zeit beginnen oder eine flexible Anfangszeit aufweisen, d. h. einen Anfangszeitbereich mit frühestem und spätestem zulässigen Zeitpunkt. Der Anfangszeitbereich und das Zeitfenster des Startdepots werden beim Bestimmen der tatsächlichen Anfangszeit der Route berücksichtigt.
Die Betriebskosten einer einzelnen Route können sich aus zeitbasierten Kosten, entfernungsbasierten Kosten und/oder festen Kosten zusammensetzen, die unabhängig vom Betrag der Arbeitszeit oder der gefahrenen Strecke sind. Außerdem können mit der Nutzung eines Fahrzeugs feste Kosten verbunden sein, wenn für Tage mit hohem Arbeitspensum zusätzliche Fahrzeuge gemietet werden müssen. Ebenso wird möglicherweise der Fahrer für die Anzahl der Arbeitsstunden bezahlt, einschließlich oder ausschließlich Überstunden und Essenspausen. Anhand solcher Kosten können zeitbasierte Kosten angegeben werden. Anhand der Kraftstoffkosten können Entfernungskosten angegeben werden.
Außerdem weist das auf einer bestimmten Route eingesetzte Fahrzeug eine Kapazität auf, von der die Menge abhängt, die vom Fahrzeug transportiert werden kann.
Für den Arbeitstag eines Fahrers können Beschränkungen gelten, z. B. die zurückgelegte Gesamtstrecke oder die Anzahl der aufgrund von gesetzlichen Vorschriften oder Verträgen mit Gewerkschaften zulässigen Dauer der Arbeits- oder Fahrzeit.
Die Route kann Arbeitspausen umfassen. Diese Pausenzeiten werden dem Fahrer entweder bezahlt oder nicht bezahlt.
Ein Fahrzeug kann über bestimmte Funktionen verfügen, z. B. eine Hebebühne oder eine besondere Verkleidung, oder Facharbeiter können unterschiedliche Qualifikationen aufweisen. Die Aufträge, für die diese Besonderheiten festgelegt sind, müssen den entsprechenden Routen zugewiesen werden.
Eine Route kann einer Zone zugeordnet werden, wenn die Ausführung der Route auf eine vordefinierte geographische Region begrenzt ist.
Routen sind Linien-Features. Sie können aus vorhandenen Routen in anderen Analyse-Layern für das Vehicle Routing Problem, aus anderen Linien-Features oder aus Tabellen importiert werden. Außerdem können sie mit dem Befehl Element hinzufügen erstellt werden.
Routeneigenschaften
Eingabefelder von Routen
Eingabefeld | Beschreibung |
---|---|
ObjectID | Das vom System verwaltete ID-Feld. |
Name | Der Name des Netzwerkanalyse-Objekts. Dieses Feld ist der Primärschlüssel und dient als Fremdschlüssel im Aufträge-Feature-Layer, in der Tabelle "Pausenzeiten", im Routenzonen-Feature-Layer, im Routenschwerpunkte-Feature-Layer, in der Tabelle "Lager (Be-/Entladen)" und im Depotstopps-Feature-Layer. Bei Routennamen muss nicht zwischen Groß- und Kleinschreibung unterschieden werden, und sie müssen auch dann angegeben werden (dürfen nicht leer sein), wenn die Route nicht im Berechnungsvorgang enthalten ist. Der Name muss eindeutig sein. |
Beschreibung | Die beschreibenden Informationen zum Netzwerkanalyse-Objekt. Diese können Textinformationen umfassen und müssen nicht eindeutig sein. |
StartDepotName | Der Name des Startdepots für die Route. Dieses Feld dient als Fremdschlüssel für das Feld "Name" in der Klasse "Depots". Depotobjekte müssen vorhanden sein, bevor sie in der Dropdown-Liste "StartDepotName" angezeigt werden. 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, darf EndDepotName nicht ebenfalls NULL sein. Virtuelle Startdepots sind nicht zulässig, wenn Aufträge/Depots in mehrere Zeitzonen aufgeteilt sind Wenn über die Route Lieferungen erfolgen und "StartDepotName" NULL ist, wird davon ausgegangen, dass das Fahrzeug vor Routenbeginn in einem virtuellen Depot beladen wird. Für eine Route ohne Stopps zum Be-/Entladen werden die zugehörigen Lieferaufträge (mit Werten für "DeliveryQuantities" ungleich 0 in der Klasse "Aufträge") am Startdepot oder virtuellen Depot geladen. Für eine Route mit Stopps zum Be-/Entladen werden nur die Lieferaufträge vor dem ersten Stopp zum Be-/Entladen am Startdepot oder virtuellen Depot geladen. |
EndDepotName | Der Name des Enddepots für die Route. Dieses Feld dient als Fremdschlüssel für das Feld "Name" in der Klasse "Depots". Depotobjekte müssen vorhanden sein, bevor sie in der Dropdown-Liste "EndDepotName" angezeigt werden. |
StartDepotServiceTime | Die Durchführungszeit am Startdepot. Mit dieser kann die Zeit zum Beladen des Fahrzeugs modelliert werden. Dieses Feld kann einen Nullwert enthalten. Ein Nullwert gibt an, dass keine Durchführungszeit vorhanden ist. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
EndDepotServiceTime | Die Durchführungszeit am Enddepot. Mit dieser kann die Zeit zum Entladen des Fahrzeugs modelliert werden. Dieses Feld kann einen Nullwert enthalten. Ein Nullwert gibt an, dass keine Durchführungszeit vorhanden ist. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
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 sein Standardwert für die reine Uhrzeit ist 8:00 Uhr. Der Standardwert wird als 8:00 Uhr an dem von der Eigenschaft Standarddatum des Analyse-Layers angegebenen Datum interpretiert. Das Standarddatum wird ignoriert, wenn ein Zeitfenster ein Datum mit der Zeit enthält. Formatieren Sie alle Zeitfenster in Depots, Routen, Aufträgen und Pausenzeiten so, dass außer der Uhrzeit auch das Datum enthalten ist, um Fehler in dieser Situation auszuschließen. Beim Verwenden von Netzwerk-Datasets mit Verkehrsdaten über mehrere Zeitzonen hinweg entspricht die Zeitzone für "EarliestStartTime" der Zeitzone der Kante oder des Knotens, auf der bzw. dem sich das Startdepot befindet. |
LatestStartTime | Die späteste zulässige Startzeit für die Route. Dieses Feld darf keine NULL-Werte enthalten, und sein Standardwert für die reine Uhrzeit ist 10:00 Uhr. Der Standardwert wird als 10:00 Uhr an dem von der Eigenschaft Standarddatum des Analyse-Layers angegebenen Datum interpretiert. Das Standarddatum wird ignoriert, wenn ein Zeitfenster ein Datum mit der Zeit enthält. Formatieren Sie alle Zeitfenster in Depots, Routen, Aufträgen und Pausenzeiten so, dass außer der Uhrzeit auch das Datum enthalten ist, um Fehler in dieser Situation auszuschließen. Beim Verwenden von Netzwerk-Datasets mit Verkehrsdaten über mehrere Zeitzonen hinweg entspricht die Zeitzone für "LatestStartTime" der Zeitzone der Kante oder des Knotens, auf der bzw. dem sich das Startdepot befindet. |
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. Angenommen, für ein Hochhaus liegen fünf lagegleiche Aufträge vor, die mit drei verschiedenen Routen abgearbeitet werden sollen. Dies bedeutet, dass drei Verzögerungen bei der Ankunft und Abfahrt anfallen. Drei Fahrer müssen einen Parkplatz finden und dasselbe Gebäude betreten. Wenn die Aufträge jedoch von nur einer Route abgearbeitet werden können, muss nur ein Fahrer einen Parkplatz finden und das Gebäude betreten. Somit 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, wählt 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.) Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
Capacities | Die maximale Ladung (z. B. Volumen, Gewicht, Menge), die vom Fahrzeug transportiert werden kann. Wenn ein Fahrzeug maximal 20.000 Kilogramm transportieren kann, sollte im Dialogfeld Layer-Eigenschaften des Analyse-Layers die Option Kapazitätszahl auf 1 und Capacities auf 20000 festgelegt werden. Wenn ein Fahrzeug 300 Kubikmeter transportieren kann, sollte Kapazitätszahl auf 1 und Capacities auf 300 festgelegt werden. Wenn vom Parameter Kapazitätszahl des Analyse-Layers mehrere Kapazitäten angegeben werden, werden die Werte von "Capacities" durch Leerzeichen getrennt. Wenn z. B. maximales Gewicht und Volumen des Fahrzeugs verwendet werden, sollte im Dialogfeld Layer-Eigenschaften des Analyse-Layers die Option Kapazitätszahl auf 2 festgelegt werden. Wenn das Fahrzeug ein Gewicht von 20.000 Kilogramm und ein Volumen von 800 Kubikmeter transportieren kann, sollte Capacities auf 20000 800 festgelegt werden. Eine leere Zeichenfolge oder ein Nullwert gibt an, dass alle Werte Null sind. Kapazitätswerte dürfen nicht negativ sein. Wenn die Anzahl der Werte in der Zeichenfolge "Capacities" geringer als die Kapazitätszahl ist, werden die restlichen Werte als 0 behandelt. |
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 Nullwerte enthalten. Ein Nullwert gibt an, dass keine festen Kosten vorhanden sind. Diese Kosten sind Bestandteil der Gesamtbetriebskosten für die Route. |
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 Nullwert enthalten, und der Standardwert ist 1,0. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
CostPerUnitDistance | Der – pro Einheit gefahrener Strecke – für die Routenlänge (gesamte Reisestrecke) anfallende Geldbetrag. Dieses Feld kann Nullwerte enthalten. Ein Nullwert gibt an, dass keine Kosten vorhanden sind. Die Entfernungseinheit wird von der Eigenschaft Entfernungsfeldeinheiten des Analyse-Layers angegeben. Der Solver gibt einen Fehler zurück, wenn diesem Feld ein Wert zugewiesen wird und für den Analyse-Layer nicht die Eigenschaft Entfernungsattribut angegeben ist. |
OvertimeStartTime | Die Dauer der regulären Arbeitszeit, bevor die Berechnung der Überstunden beginnt. Dieses Feld kann Nullwerte enthalten. Ein Nullwert gibt an, dass keine Überstunden angewendet werden. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. Wenn beispielsweise bei Überschreiten einer Gesamtroutendauer von 8 Stunden für den Fahrer Überstunden bezahlt werden müssen und für die Eigenschaft Uhrzeitfeldeinheiten des Analyse-Layers Stunden als Einheit festgelegt ist, wird "OvertimeStartTime" als 8 angegeben. |
CostPerUnitOvertime | Der pro Zeiteinheit von Überstunden anfallende Geldbetrag. Dieses Feld kann Nullwerte enthalten. Ein Nullwert gibt an, dass der Wert von "CostPerUnitOvertime" mit dem Wert von "CostPerUnitTime" identisch ist. |
MaxOrderCount | Die maximal zulässige Anzahl von Aufträgen für die Route. Dieses Feld darf keine Nullwerte enthalten, und der Standardwert ist 30. |
MaxTotalTime | Die maximal zulässige Routendauer. Die Routendauer umfasst Fahrzeiten sowie Durchführungs- und Wartezeiten bei Aufträgen, Depots und Pausen. Dieses Feld kann Nullwerte enthalten. Ein Nullwert gibt an, dass für die Routendauer keine Einschränkung gilt. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
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. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. Dieses Feld kann Nullwerte enthalten. Ein Nullwert 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. |
MaxTotalDistance | Die maximal zulässige Reisestrecke für die Route. Die Einheit für die Gesamtstrecke wird von der Eigenschaft Entfernungsfeldeinheiten des Analyse-Layers angegeben. Dieses Feld kann Nullwerte enthalten. Ein Nullwert gibt an, dass für die maximal zulässige Reisestrecke keine Einschränkung gilt. Der Solver gibt einen Fehler zurück, wenn diesem Feld ein Wert zugewiesen wird und für den Analyse-Layer nicht die Eigenschaft Entfernungsattribut angegeben ist. |
SpecialtyNames | Eine durch Leerzeichen getrennte Zeichenfolge mit den Namen der von der Route unterstützten Besonderheiten. Ein NULL-Wert gibt an, dass die Route keine Besonderheiten unterstützt. Dieses Feld dient als Fremdschlüssel für das Feld "Name" in der Tabelle "Besonderheiten". Besonderheitenobjekte müssen vorhanden sein, bevor sie in der Liste "SpecialtyNames" angezeigt werden. |
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 möglichen Werte lauten wie folgt:
|
Ausgabefelder von Routen
Ausgabefeld | Beschreibung |
---|---|
Shape | Das Linien-Shape der Route. Wenn die Eigenschaft Ausgabe-Shape-Typ des Analyse-Layers auf "Kein" festgelegt ist, wird kein Shape zurückgegeben. Wenn die Eigenschaft Ausgabe-Shape-Typ auf "Gerade Linie" festgelegt ist, werden gerade Routenlinien zurückgegeben, mit denen die einzelnen Paare von aufeinanderfolgenden Stopps verbunden werden. Sowohl mit Streckenverlauf mit Messwerten als auch mit Echtes Shape werden Linien zurückgegeben, die die entsprechenden Routen im Netzwerk verfolgen. Der Unterschied zwischen den beiden Werten ist, dass mit Streckenverlauf mit Messwerten eine Linie zurückgegeben wird, die bereits linear nach Zeit referenziert ist. |
ViolatedConstraints | Dieses Feld enthält eine Zusammenfassung von Beschränkungsverletzungen. Es wird nach einem Berechnungsvorgang festgelegt. Wenn eine Route zur Verletzung einer Einschränkung führt, kann dem Feld eine Kombination aus den unten aufgeführten Verletzungen zugewiesen werden:
|
OrderCount | Die Anzahl von Aufträgen, die der Route zugewiesen sind. |
TotalCost | Die gesamten Betriebskosten der Route, wobei es sich um die Summe der folgenden Feldwerte handelt:
|
RegularTimeCost | Die Kosten der regulären Arbeitszeit ohne unbezahlte Pausen. |
OvertimeCost | Die Kosten für Überstunden ohne unbezahlte Pausen. |
DistanceCost | Die Entfernungskosten-Komponente, die durch Multiplizieren der Werte für die Felder "TotalDistance" und "CostPerUnitDistance" berechnet wird. Dieser Feldwert ist NULL, wenn für den Analyse-Layer nicht die Eigenschaft Entfernungsattribut angegeben ist. |
TotalTime | Die Gesamtroutendauer. Diese umfasst Fahrzeiten sowie Durchführungs- und Wartezeiten bei Aufträgen, Depots und Pausen. Der Wert unter "TotalTime" ist die Summe der folgenden Feldwerte:
Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
TotalOrderServiceTime | Die Gesamtdurchführungszeit für alle Aufträge der Route. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
TotalBreakServiceTime | Die Gesamtdurchführungszeit für alle Pausenzeiten der Route. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
TotalTravelTime | Die Gesamtfahrzeit für die Route. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
TotalDistance | Die Gesamtreisestrecke für die Route. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Entfernungsfeldeinheiten" des Analyse-Layers angegeben. Dieses Feld ist Null, wenn in den Analyseparametern nicht die Eigenschaft "Entfernungsattribut" angegeben ist. |
StartTime | Die Anfangszeit für die Route. Die Route kann vor Beginn des Zeitfensters für das Startdepot beginnen. In diesem Fall ist beim Startdepot eine Wartezeit vorhanden. Wenn Verkehrsdaten verwendet werden, die mehrere Zeitzonen umfassen, wird die Zeitzone für diesen Tageszeitwert von dem Netzwerkelement übernommen, auf dem sich das Startdepot befindet. |
EndTime | Die Endzeit für die Route. Die Route endet bei Abschluss des Einsatzes am Enddepot. Wenn Verkehrsdaten verwendet werden, die mehrere Zeitzonen umfassen, wird die Zeitzone für diesen Tageszeitwert von dem Netzwerkelement übernommen, auf dem sich das Enddepot befindet. |
StartTimeUTC | Die Startzeit der Route in koordinierter Weltzeit (Coordinated Universal Time, UTC). |
EndTimeUTC | Die Endzeit der Route in koordinierter Weltzeit (Coordinated Universal Time, UTC). |
TotalWaitTime | Die Gesamtwartezeit für alle Aufträge, Depots und Pausen der Route. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
TotalViolationTime | Der Gesamtzeitverstoß für alle Aufträge und Pausen der Route. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
RenewalCount | Bei einer Route mit Lagern zum Be-/Entladen stimmt dieser Wert mit der Anzahl der Stopps an Depots zum Be-/Entladen überein. |
TotalRenewalServiceTime | Bei einer Route mit Lagern zum Be-/Entladen ist dies die Gesamtdurchführungszeit für alle Stopps zum Be- und Entladen auf der Route. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
Depotstopps-Feature-Layer
Wenn eine Route an einem Depot startet, das Be- und Entladen durchführt oder dort endet, wird ein Depotstopp erstellt. Depotstoppobjekte stellen Informationen dazu bereit, warum eine Route einen Stopp an einem Depot aufweist und was dort erfolgt. Die Menge der Waren, die an einem Depot auf ein Fahrzeug geladen oder von diesem entladen wird, wird in den Eigenschaften eines Depotstopps aufgezeichnet. Dabei sind auch Informationen enthalten, die für das Interpretieren einer Vehicle Routing Problem-Lösung hilfreich sind.
Dies ist eine reine Ausgabe-Netzwerkanalyseklasse. Depotstopp-Features werden nur während des Berechnungsvorgangs erstellt. Aus diesem Grund ist die Analyseklasse vor dem Berechnungsprozess immer leer.
Eigenschaften von "Depotstopps"
Ausgabefelder von Depotstopps
Ausgabefeld | Beschreibung |
---|---|
ObjectID | Das vom System verwaltete ID-Feld. |
Shape | Das Geometriefeld, das die geographische Position des Netzwerkanalyse-Objekts angibt. |
DepotName | Der Name des besuchten Depots. Dieses Feld dient als Fremdschlüssel für das Feld "Name" in der Netzwerkanalyseklasse "Depots". Wenn für die Route ein virtuelles Depot verwendet wird, die Route also an einem Auftrag und nicht an einem Depot beginnt und endet, hat "DepotName" den Wert NULL. |
RouteName | Der Name der Route, die diesen Stopp aufweist. Dieses Feld dient als Fremdschlüssel für das Feld "Name" im Routen-Feature-Layer. |
Sequence | Gibt die Sequenz des auf der Route besuchten Depots an. Die Ausgabesequenzwerte für eine Route gelten für Depotstopps, Aufträge und Pausenzeiten, sie beginnen bei 1 (beim Startdepot) und sind aufeinander folgende Werte. |
VisitType | Der Grund für den Stopp bei diesem Depot. Dieses Feld ist durch eine Domäne von Werten eingeschränkt:
|
ServiceTime | Die Durchführungszeit (z. B. das Be- oder Entladen) beim Depot. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
FromPrevTravelTime | Die Fahrzeit zwischen dem vorherigen Stopp auf der Route und dem Depot. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
FromPrevDistance | Die Reisestrecke zwischen dem vorherigen Stopp auf der Route und dem Depot. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Entfernungsfeldeinheiten" des Analyse-Layers angegeben. Dieses Feld ist Null, wenn in den Analyseparametern nicht die Eigenschaft "Entfernungsattribut" angegeben ist. |
CumulTravelTime | Die kumulative Fahrzeit für die Route bis zur Ankunft an diesem Depot. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
CumulDistance | Die kumulative Reisestrecke für die Route bis zur Ankunft an diesem Depot. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Entfernungsfeldeinheiten" des Analyse-Layers angegeben. Dieses Feld ist Null, wenn in den Analyseparametern nicht die Eigenschaft "Entfernungsattribut" angegeben ist. |
CumulTime | Die kumulative Routendauer bis zum Depot (einschließlich). Die kumulative Dauer umfasst Fahrzeiten sowie Durchführungs- und Wartezeiten bei Aufträgen, Depots und Pausen. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
ArriveTime | Die Ankunftszeit am Depot. Die Ankunftszeit der Route beim Depot kann vor dem Anfang des Zeitfensters für das Depot liegen. In diesem Fall ist eine Wartezeit am Depot vorhanden. Wenn Verkehrsdaten verwendet werden, die mehrere Zeitzonen umfassen, stimmt die Zeitzone für diesen Tageszeitwert mit der Zeitzone des Netzwerkelements überein, auf dem sich das Depot befindet. |
DepartTime | Die Abfahrtszeit vom Depot. Wenn Verkehrsdaten verwendet werden, die mehrere Zeitzonen umfassen, stimmt die Zeitzone für diesen Tageszeitwert mit der Zeitzone des Netzwerkelements überein, auf dem sich das Depot befindet. |
ArriveTimeUTC | Der Datums- und Uhrzeitwert zur Angabe der Ankunftszeit in koordinierter Weltzeit (Coordinated Universal Time, UTC) am Depot. |
DepartTimeUTC | Der Datums- und Uhrzeitwert zur Angabe der Abfahrtszeit in koordinierter Weltzeit (Coordinated Universal Time, UTC) vom Depot. |
WaitTime | Die Wartezeit am Depot. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
CumulWaitTime | Die kumulative Wartezeit vom Anfang der Route bis zum Abschluss am Depot. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
CumulViolationTime | Der kumulative Zeitverstoß vom Anfang der Route bis zum Abschluss am Depot. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
TotalLoadedQuantities | Der Umfang (z. B. Volumen, Gewicht, Menge) der am Depot zu ladenden Artikel. Wenn von der Eigenschaft Kapazitätszahl des Analyse-Layers mehrere Kapazitäten angegeben werden, werden sie durch Leerzeichen getrennt. Beispielsweise gibt bei Lieferungen der Wert für das Feld "TotalLoadedQuantities" die tatsächliche Menge der vom Fahrzeug gelieferten Waren vor der Rückkehr zu einem Depot an. Dieser Wert ist kleiner oder gleich dem Wert des Feldes "Capacities" für eine bestimmte Route und gibt an, dass mit der Route eine LKW-Ladung von Lieferungen durchgeführt wird. |
TotalUnloadedQuantities | Der Umfang (z. B. Volumen, Gewicht, Menge) der am Depot zu entladenden Artikel. Wenn von der Eigenschaft Kapazitätszahl des Analyse-Layers mehrere Kapazitäten angegeben werden, werden sie durch Leerzeichen getrennt. Beispielsweise gibt bei Abholungen oder Routen mit Lagern zum Be-/Entladen der Wert für das Feld "TotalUnloadedQuantities" die tatsächliche Menge der vom Fahrzeug abgeholten und zu dem Depot gebrachten Waren an. Dieser Wert ist kleiner oder gleich dem Wert des Feldes "Capacities" für eine bestimmte Route und gibt an, dass mit der Route eine LKW-Ladung von Abholungen durchgeführt wird. |
Klasse "Pausenzeiten"
Dies ist eine nicht räumliche Netzwerkanalyseklasse, die die Unterbrechungszeiten bzw. Pausenzeiten für Routen in einem Vehicle Routing Problem speichert. 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.
Zeitfensterpause: Zum Einrichten einer Zeitfensterpause geben Sie zwei Tageszeitwerte ein, um einen Zeitraum festzulegen, in dem die Pause beginnen soll. Die Felder TimeWindowStart und TimeWindowEnd enthalten die begrenzenden Tageszeitwerte. Die Dauer bzw. Durchführungszeit der Pause ist vom Zeitfenster unabhängig und kann daher über das Ende des Zeitfensters hinaus reichen. Beispiel: Wenn das Zeitfenster für eine einstündige Pause von 10:00 bis 10:15 Uhr reicht, muss die Pause nach 10:00 Uhr und vor 10:15 Uhr beginnen. Wenn sie um 10:10 Uhr beginnt, endet die Pause um 11:10 Uhr.
Pausenzeiten wegen maximaler Fahrzeit: Bei dieser Art von Pause geben Sie an, wie lange eine Person fahren darf, bevor die Pausenzeit eingehalten werden muss. (Beachten Sie, dass nur die Fahrzeit beschränkt ist. Bei anderen Zeiten wie Warte- und Durchführungszeiten ist dies nicht der Fall.) Wenn Sie für die MaxTravelTimeBetweenBreaks-Eigenschaft der ersten Pausenzeit einen Wert von vier Stunden eingeben, erhält der Fahrer z. B. eine Pause, bevor die akkumulierte Fahrzeit ab dem Beginn der Route vier Stunden übersteigt. Für nachfolgende Pausen wird die Fahrzeit ab der vorherigen Pause akkumuliert. Wenn Sie eine zweite Pausenzeit mit einem MaxTravelTimeBetweenBreaks-Wert von zwei Stunden verwenden, muss die zweite Pause eingehalten werden, bevor zwei Stunden Fahrzeit nach der vorherigen Pause vergangen sind, nicht ab dem Startdepot.
Die letzte Pausenzeit wegen maximaler Fahrzeit beschränkt nicht nur die akkumulierte Fahrzeit ab der vorherigen Pause oder dem Start der Route, sondern auch die Fahrzeit von der letzten Pause bis zum Enddepot. Dies gilt auch, wenn es nur eine Pausenzeit gibt. Der VRP-Solver ist so konzipiert, um zu verhindern, dass auf einer Route alle Pausenzeiten verbraucht werden und die Fahrt dann über einen längeren Zeitraum ohne Pause fortgesetzt wird. Im letzten Beispiel wurde MaxTravelTimeBetweenBreaks auf zwei Stunden festgelegt. Wenn dies die letzte Pausenzeit der Route ist, muss es für die Route möglich sein, das Enddepot innerhalb einer Fahrzeit von zwei Stunden zu erreichen. Andernfalls gibt der Solver einen Fehler zurück.
Pausenzeit wegen maximaler Arbeitszeit: Diese Pausenzeit gibt an, wie lange eine Person arbeiten darf, bevor eine Pause erforderlich ist. Im Gegensatz zu Pausenzeiten wegen maximaler Fahrzeit, bei der die Fahrzeit ab dem Ende der letzten Pause akkumuliert wird, wird bei Pausenzeiten wegen maximaler Arbeitszeit immer die Arbeitszeit vom Anfang der Route an akkumuliert, einschließlich der Durchführungszeit am Startdepot.
Beachten Sie, dass diese Pausenzeit die akkumulierte Arbeitszeit beschränkt, in der die Fahrzeit und alle Durchführungszeiten enthalten sind. Die Wartezeit ist darin jedoch nicht enthalten.
Ein Vehicle Routing Problem-Analyse-Layer kann nur berechnet werden, wenn alle Pausenzeiten den gleichen Typ aufweisen. Der Berechnungsprozess schlägt fehl, wenn eine Kombination aus Zeitfenster-Pausenzeiten, Pausenzeiten wegen maximaler Fahrzeit und Pausenzeiten wegen maximaler Arbeitszeit verwendet wird.
Sie können für eine Route bis zu fünf Pausenzeiten angeben. Angenommen, Sie verwenden Pausenzeiten wegen maximaler Fahrzeit für eine Analyse. Sie können einer Route zwei Pausenzeiten zuweisen, damit der Fahrer nach zwei Stunden Fahrzeit eine Pause von 15 Minuten einlegen und nach weiteren zwei Stunden Fahrt zu einer einstündigen Mittagspause anhalten kann. Sie können auch andere Routen verwenden, denen zwischen 0 und 5 Pausenzeiten zugewiesen sind.
Pausenzeiten verfügen über das Feld Vorrang, über das die Sequenz festgelegt wird. Wenn Sie also möchten, dass eine Pause von 15 Minuten vor einer Pause mit einer Länge von einer Stunde liegen soll, muss der Vorrangwert der fünfzehnminütigen Pause 1 und der Vorrangwert der anderen Pause 2 lauten. Vorrangwerte sind für alle Pausen erforderlich, obwohl Pausenzeiten wegen maximaler Arbeitszeit und Zeitfenster-Pausenzeiten meist über eine chronologische Reihenfolge verfügen
Falls auf einer Route das abschließende Ziel erreicht wird, bevor alle Pausenzeiten wegen maximaler Fahrzeit oder wegen maximaler Arbeitszeit eingelegt wurden, werden die verbleibenden Pausenzeiten ignoriert. Wenn Zeitfenster-Pausenzeiten am Ende einer Route übrig bleiben, wartet die Route mit dem Abschluss, bis alle Pausenzeiten beachtet wurden, anstatt vorzeitig zu enden.
Eigenschaften von Pausenzeiten
Eingabefelder von Pausenzeiten
Eingabefeld | Beschreibung |
---|---|
ObjectID | Das vom System verwaltete ID-Feld. |
TimeWindowStart | Die Anfangszeit für das Zeitfenster der Pausenzeit. Wenn dieses Feld NULL ist und "TimeWindowEnd" über einen gültigen Tageszeitwert verfügt, kann die Pausenzeit jederzeit vor dem TimeWindowEnd-Wert starten. Wenn dieses Feld über einen Wert verfügt, müssen "MaxTravelTimeBetweenBreaks" und "MaxCumulWorkTime" NULL sein. Außerdem müssen alle anderen Pausenzeiten im Analyse-Layer Nullwerte für "MaxTravelTimeBetweenBreaks" und "MaxCumulWorkTime" aufweisen. Zur Berechnungszeit tritt ein Fehler auf, falls eine Route über mehrere Pausenzeiten mit überlappenden Zeitfenstern verfügt. Die Zeitfensterfelder für Pausen können einen reinen Uhrzeitwert oder einen Wert für Datum und Uhrzeit enthalten. Wenn ein Zeitfeld, z. B. "TimeWindowStart", einen reinen Uhrzeitwert enthält (z. B. 00:00 Uhr), wird vorausgesetzt, dass als Datum das von der Eigenschaft Standarddatum angegebene Datum verwendet wird. Wenn Sie Datums- und Uhrzeitwerte verwenden (z. B. 7/11/2012 00:00 Uhr), können Sie Zeitfenster über mehrere Tage angeben. Dies empfiehlt sich besonders, wenn eine Pause kurz vor oder nach Mitternacht eingelegt werden soll. Das Standarddatum wird ignoriert, wenn ein Zeitfenster ein Datum mit der Zeit enthält. Formatieren Sie alle Zeitfenster in Depots, Routen, Aufträgen und Pausenzeiten so, dass außer der Uhrzeit auch das Datum enthalten ist, um Fehler in dieser Situation auszuschließen. |
TimeWindowEnd | Die Endzeit für das Zeitfenster der Pausenzeit. Wenn dieses Feld NULL ist und "TimeWindowStart" über einen gültigen Tageszeitwert verfügt, kann die Pausenzeit jederzeit nach dem TimeWindowStart-Wert starten. Wenn dieses Feld über einen Wert verfügt, müssen "MaxTravelTimeBetweenBreaks" und "MaxCumulWorkTime" NULL sein. Außerdem müssen alle anderen Pausenzeiten im Analyse-Layer Nullwerte für "MaxTravelTimeBetweenBreaks" und "MaxCumulWorkTime" aufweisen. Das Standarddatum wird ignoriert, wenn ein Zeitfenster ein Datum mit der Zeit enthält. Formatieren Sie alle Zeitfenster in Depots, Routen, Aufträgen und Pausenzeiten so, dass außer der Uhrzeit auch das Datum enthalten ist, um Fehler in dieser Situation auszuschließen. Weitere Informationen finden Sie in der Beschreibung von "TimeWindowStart" (oben). |
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 dieser Eigenschaft kann der Zeitraum beschränkt werden, wie lange eine Person fahren darf, bis eine Pausenzeit erforderlich ist. Wenn die Eigenschaft Uhrzeitfeldeinheiten des Analyse-Layers auf "Minuten" festgelegt ist und "MaxTravelTimeBetweenBreaks" den Wert 120 enthält, kann der Fahrer nach zwei Stunden Fahrt eine Pause einlegen. Um eine Pause nach zwei weiteren Stunden Fahrt zuzuweisen, muss die Eigenschaft "MaxTravelTimeBetweenBreaks" der zweiten Pause auf den 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. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
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. Mithilfe dieser Eigenschaft kann der Zeitraum beschränkt werden, wie lange eine Person arbeiten darf, bis eine Pausenzeit erforderlich ist. Wenn die Eigenschaft Uhrzeitfeldeinheiten des Analyse-Layers auf "Minuten" festgelegt ist, "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. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
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 der Klasse "Routen" und darf keinen Nullwert enthalten. Routenobjekte müssen vorhanden sein, bevor sie in der Dropdown-Liste "RouteName" angezeigt werden. |
Vorrang | 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. |
ServiceTime | Die Dauer der Pause. Dieses Feld kann Nullwerte enthalten. Ein Nullwert gibt an, dass keine Durchführungszeit vorhanden ist. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
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 Zeitfensterverletzung des Analyse-Layers sanktioniert. Diese Eigenschaft kann NULL sein. Ein Nullwert mit TimeWindowStart- und TimeWindowEnd-Werten gibt an, dass für den zulässigen Zeitverstoß kein Grenzwert gilt. Wenn "MaxTravelTimeBetweenBreaks" oder "MaxCumulWorkTime" über einen Wert verfügt, muss "MaxViolationTime" NULL sein. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
IsPaid | Ein boolescher Wert, der angibt, ob die Pausenzeit bezahlt wird. Der Wert "True" gibt an, dass die Pausenzeit in die Berechnung der Routenkosten sowie die Bestimmung der Überstunden einbezogen wird. Der Wert "False" gibt das Gegenteil an. Der Standardwert ist "True". |
Eingabe-/Ausgabefelder von Pausenzeiten
Eingabe-/Ausgabefeld | Beschreibung |
---|---|
Sequence | Gibt als Eingabefeld die Sequenz der Pause auf der zugehörigen Route an. Dieses Feld kann Nullwerte enthalten. 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. Der Solver ändert das Sequenzfeld. Nach dem Berechnungsvorgang enthält dieses Feld den Sequenzwert der Pausenzeit auf der zugehörigen Route. Ausgabesequenzwerte für eine Route gelten für Depotstopps, Aufträge und Pausenzeiten, sie beginnen bei 1 (beim Startdepot) und sind aufeinander folgende Werte. |
Ausgabefelder von Pausenzeiten
Ausgabefeld | Beschreibung |
---|---|
RelativePosition | Die relative Position der Pausenzeit. Pausenzeiten werden zwischen zwei Netzwerkstandorten (Aufträge oder Depots) eingelegt. Der Wert 0,0 gibt an, dass die Pause direkt nach der Auftragsdurchführung am vorherigen Netzwerkstandort genommen wird. Der Wert 1,0 gibt an, dass die Pause direkt vor der Auftragsdurchführung am nachfolgenden Netzwerkstandort genommen wird. Ein Wert dazwischen gibt an, an welcher Stelle der Route vom ersten zum zweiten Netzwerkstandort die Pause eingelegt wird. Zum Beispiel gibt 0,25 an, dass die Pause nach einem Viertel der Route vom vorherigen Netzwerkstandort zum nächsten Netzwerkstandort genommen wird. Es spielt keine Rolle, wie viele Pausen zwischen zwei Netzwerkstandorten liegen. Die relative Position wird immer relativ zu den Netzwerkstandorten gemeldet, nicht zu den anderen Pausen. |
FromPrevTravelTime | Die Fahrzeit vom vorherigen Stopp, vom vorherigen Depot oder von der vorherigen Pausenzeit bis zu dieser Pause. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
FromPrevDistance | Die Reisestrecke vom vorherigen Stopp, vom vorherigen Depot oder von der vorherigen Pausenzeit bis zu dieser Pause. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Entfernungsfeldeinheiten" des Analyse-Layers angegeben. Dieses Feld ist Null, wenn in den Analyseparametern nicht die Eigenschaft "Entfernungsattribut" angegeben ist. |
CumulTravelTime | Die kumulative Fahrzeit für die Route bis zum Erreichen der Pause. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
CumulDistance | Die kumulative Reisestrecke für die Route bis zum Erreichen der Pause. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Entfernungsfeldeinheiten" des Analyse-Layers angegeben. Dieses Feld ist Null, wenn in den Analyseparametern nicht die Eigenschaft "Entfernungsattribut" angegeben ist. |
CumulTime | Die kumulative Routendauer bis zum Abschluss der Pause. Die kumulative Dauer umfasst Fahrzeiten sowie Durchführungs- und Wartezeiten bei Aufträgen, Depots und Pausen. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
ArriveTime | Die tatsächliche Ankunftszeit bei der Pause. Die Ankunftszeit der Route bei der Pause kann vor dem Anfang des Zeitfensters für die Pause liegen. In diesem Fall ist eine Wartezeit bei der Pause vorhanden. Für eine Pause mit weichen Zeitfenstern kann die Ankunftszeit der Route bei der Pause nach dem Ende des Zeitfensters liegen. In diesem Fall liegt ein Zeitverstoß bei der Pause vor. Wenn Netzwerk-Datasets mit mehreren Zeitzonen verwendet werden, wird die Zeit in der Zeitzone gemeldet, die für den tatsächlichen Pausenstandort gilt. |
DepartTime | Der Zeitpunkt, zu dem die Pause abgeschlossen ist. Wenn Netzwerk-Datasets mit mehreren Zeitzonen verwendet werden, wird die Zeit in der Zeitzone gemeldet, die für den tatsächlichen Pausenstandort gilt. |
ArriveTimeUTC | Der Datums- und Uhrzeitwert zur Angabe der Ankunftszeit in koordinierter Weltzeit (Coordinated Universal Time, UTC). |
DepartTimeUTC | Der Datums- und Uhrzeitwert zur Angabe der Abfahrtszeit in koordinierter Weltzeit (Coordinated Universal Time, UTC). |
WaitTime | Die Wartezeit bei der Pause. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
ViolationTime | Der Zeitverstoß bei der Pause. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
CumulWaitTime | Die kumulative Wartezeit vom Anfang der Route bis zum Abschluss der Pause. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
CumulViolationTime | Der kumulative Zeitverstoß vom Anfang der Route bis zum Abschluss der Pause. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
Klasse "Routenzonen"
Routenzonen geben ein Arbeitsgebiet für eine bestimmte Route an. Eine Routenzone ist ein Polygon-Feature. Mit ihr werden Routen eingeschränkt, um nur die Aufträge durchzuführen, die in einem Gebiet oder in dessen Nähe liegen. Einige Beispiele für Fälle, in denen Routenzonen sinnvoll sein können:
- 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. Daher soll es 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.
Wenn Sie in einer Analyse Routenzonen verwenden, können Sie nicht gleichzeitig Routenschwerpunkte verwenden.
Eigenschaften von Routenzonen
Eingabefelder von Routenzonen
Eingabefeld | Beschreibung |
---|---|
ObjectID | Das vom System verwaltete ID-Feld. |
Shape | Das Geometriefeld, das die geographische Position des Netzwerkanalyse-Objekts angibt. |
RouteName | Der Name der Route, für die diese Zone gilt. Einer Routenzone kann maximal eine Route zugeordnet sein. Dieses Feld darf keine Nullwerte enthalten und es fungiert als Fremdschlüssel für das Feld "Name" im Routen-Feature-Layer. Routenobjekte müssen vorhanden sein, bevor sie in der Liste "RouteName" angezeigt werden. |
IsHardZone | Ein boolescher Wert, der eine harte oder weiche Routenzone angibt. Der Wert "True" gibt an, dass es sich um eine harte Routenzone handelt. Dies bedeutet, dass ein Auftrag, der sich außerhalb des Routenzonenpolygons befindet, der Route nicht zugewiesen werden kann. Der Standardwert ist "True" (1). Der Wert "False" (0) gibt an, dass Aufträge außerhalb des Routenzonenpolygons dennoch zugewiesen werden können, die Kosten für die Durchführung des Auftrags jedoch mit einer Funktion gewichtet werden, die auf der euklidischen Entfernung von der Routenzone basiert. Im Grunde bedeutet dies, dass die Wahrscheinlichkeit einer Zuweisung des Auftrags zu der Route umso geringer ist, je größer die direkte Entfernung der weichen Zone vom Auftrag ist. |
Klasse "Routenschwerpunkte"
In dieser Netzwerkanalyseklasse werden die Routenschwerpunkte gespeichert, die Teil eines angegebenen Analyse-Layers für das Vehicle Routing Problem sind. Mit Routenschwerpunkten wird punktbasierte Cluster-Bildung für die Routen angegeben. Je kürzer die Entfernung eines Auftrags zum Schwerpunkt einer Route, desto höher ist i. d. R. die Wahrscheinlichkeit, dass der Auftrag dieser Route zugewiesen wird – sofern weitere Kriterien, z. B. Besonderheiten und Kapazitäten, erfüllt werden. Das Bilden von Clustern für Aufträge kann zu Routen führen, die ein kleineres Gebiet abdecken und weniger Überschneidungen anderer Routen aufweisen, doch sind möglicherweise die Gesamtkosten der Lösung höher. Sie können mithilfe von Schwerpunkten dafür sorgen, dass Fahrer in Umgebungen bleiben, mit denen sie vertraut sind, oder Sie können unterteilte Routen verwenden, wenn diese für Ihr Unternehmen einfacher zu verwalten sind.
Beim Arbeiten mit Routenschwerpunkten sind folgende Regeln und Optionen zu beachten:
- Einer Route kann ein Schwerpunkt vorab zugewiesen sein oder der Schwerpunkt kann vom VRP-Solver berechnet werden.
- Wenn Sie in der Analyse Routenschwerpunkte verwenden, können Sie keine Routenzonen verwenden.
- Wenn Routenschwerpunkte verwendet werden, muss jeder Route ein Routenschwerpunkt zugewiesen werden.
- Unterschiedliche Typen von Routenschwerpunkten können nicht kombiniert werden. Die Netzwerkanalyseklasse muss entweder nur dynamische oder nur statische Schwerpunkte aufweisen.
Routenschwerpunkte sind Punkt-Features, jedoch keine Netzwerkstandorte. Sie verfügen also nicht über Netzwerkstandortfelder.
Klasse "Routenschwerpunkte"
Eingabefelder von Routenschwerpunkten
Eingabefeld | Beschreibung |
---|---|
ObjectID | Das vom System verwaltete ID-Feld. |
RouteName | Der Name der Route, für die dieser Routenschwerpunkt gilt. Es ist höchstens ein Routenschwerpunkt pro Route vorhanden. Dieses Feld darf keine NULL-Werte enthalten und es fungiert als Fremdschlüssel für das Feld "Name" in der Klasse "Routen". Routenobjekte müssen vorhanden sein, bevor sie in der Liste "RouteName" angezeigt werden. |
SeedPointType | Der Typ des Routenschwerpunktes. Dieses Feld ist durch eine Domäne von Werten eingeschränkt. Die möglichen Werte lauten Statisch und Dynamisch. Der Standardwert des Feldes ist "Statisch". Bei statischen Routenschwerpunkten geben Sie die Position des Routenschwerpunktes an, und der Solver versucht, die Route als Cluster um die Position des Routenschwerpunktes zu bilden. Bei dynamischen Routenschwerpunkten fügen Sie den Routenschwerpunkt an einer beliebigen Position auf der Karte hinzu. Anschließend werden während des Berechnungsvorgangs Aufträge als Cluster angeordnet, und schließlich wird der Routenschwerpunkt auf den Schwerpunkt der Aufträge für die Route verschoben. |
Eingabe-/Ausgabefelder von Routenschwerpunkten
Eingabe-/Ausgabefeld | Beschreibung |
---|---|
Shape | Gibt als Eingabefeld die Position eines Routenschwerpunktes an. Bei einem statischen Routenschwerpunkt bleibt das Eingabe-Punkt-Shape während des gesamten Berechnungsvorgangs unverändert. Bei einem dynamischen Routenschwerpunkt hingegen wird das Eingabe-Shape ignoriert und der Solver ändert während des Berechnungsvorgangs das Feld "Shape", um den neuen Standort des Routenschwerpunktes anzuzeigen. |
Klasse "Lager (Be-/Entladen)"
Die Klasse "Lager (Be-/Entladen)" gibt die Zwischendepots an, über die die Routen einer Vehicle Routing Problem-Analyse führen können, um Waren für Auslieferungs- oder Abholungsaufträge zu laden oder zu entladen.
Mit einem Analyseobjekt vom Typ "Lager (Be-/Entladen)" wird ein Routenobjekt mit einem Depotobjekt verknüpft. Die Beziehung gibt an, dass für die Route das Be- oder Entladen am zugeordneten Depot möglich ist.
In einigen Branchen besteht jede Route aus einer oder mehreren Fahrten, bei denen das Fahrzeug eine vollständige Ladung liefert oder erst abholt und dann liefert. 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.
Beim Arbeiten mit Lagern (Be-/Entladen) 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 ausgewählt.
Eigenschaften von "Lager (Be-/Entladen)"
Eingabefelder von "Lager (Be-/Entladen)"
Eingabefeld | Beschreibung |
---|---|
ObjectID | Das vom System verwaltete ID-Feld. |
DepotName | Der Name des Depots, bei dem das Be-/Entladen erfolgt. Dieses Feld darf keinen Nullwert enthalten, es fungiert als Fremdschlüssel für das Feld "Name" im Depots-Feature-Layer. Depotobjekte müssen vorhanden sein, bevor sie in der Liste "DepotName" angezeigt werden. |
RouteName | Der Name der Route, auf die dieses Lager zum Be-/Entladen angewendet wird. Dieses Feld darf keinen Nullwert enthalten, es fungiert als Fremdschlüssel für das Feld "Name" im Routen-Feature-Layer. Routenobjekte müssen vorhanden sein, bevor sie in der Liste "RouteName" angezeigt werden. |
ServiceTime | Die Durchführungszeit für das Be-/Entladen. Dieses Feld kann einen Nullwert enthalten. Ein Nullwert gibt an, dass keine Durchführungszeit vorhanden ist. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. |
Eingabe-/Ausgabefelder von "Lager (Be-/Entladen)"
Eingabe-/Ausgabefeld | Beschreibung |
---|---|
Sequences | Gibt als Eingabefeld eine durch Leerzeichen getrennte Zeichenfolge von Sequenzwerten für Stopps am Depot zum Be-/Entladen an. Dieses Feld kann einen NULL-Wert enthalten und damit werden Stopps am Depot zum Be-/Entladen vorab zugewiesen. Wenn das Feld als Ausgabefeld fungiert, kann der Solver die Sequenz ändern und in diesem Feld speichern. Nach dem Berechnungsvorgang enthält dieses Feld die Sequenzwerte der Stopps an diesem Depot zum Be-/Entladen für die entsprechende Route. Wenn an diesem Depot während einer einzelnen Route mehrere Stopps zum Be-/Entladen erfolgen, werden die Sequenzwerte durch Leerzeichen getrennt. Ausgabesequenzwerte für eine Route gelten für Depotstopps, Aufträge und Pausenzeiten, sie beginnen bei 1 (beim Startdepot) und sind aufeinander folgende Werte. Wenn eine Route bei einem Depot beginnt, über zwei Aufträge verläuft, einen Stopp zum Be-/Entladen enthält und dann fortgesetzt wird, lautet der Sequenzwert beim Stopp zum Be-/Entladen "4". |
Klasse "Besonderheiten"
In dieser Tabelle sind die Besonderheiten aufgeführt, die für Aufträge ggf. erforderlich sind und von Routen unterstützt werden. Ein Auftrag kann von einer Route nur durchgeführt werden, wenn sie alle für den Auftrag erforderlichen Besonderheiten unterstützt.
Beispielsweise kann ein Auftrag einen Facharbeiter mit einer bestimmten Qualifikation oder ein Fahrzeug mit bestimmten Funktionen erfordern. Sie modellieren diese Fähigkeiten, Funktionen usw., indem Sie diese zuerst der Klasse "Besonderheiten" hinzufügen. Als Nächstes fügen Sie die Besonderheiten, die von einer Route unterstützt werden, ihrer SpecialtyNames-Eigenschaft hinzu. Zuletzt fügen Sie die Besonderheiten, die für einen Auftrag erforderlich sind, seiner SpecialtyNames-Eigenschaft hinzu. Wenn die VRP-Analyse berechnet wird, werden Aufträge, die bestimmte Besonderheiten erfordern, mit Routen verknüpft, die diese Bedingungen erfüllen.
Eigenschaften von "Besonderheiten"
Eingabefelder von "Besonderheiten"
Eingabefeld | Beschreibung |
---|---|
ObjectID | Das vom System verwaltete ID-Feld. |
Name | Der Name des Netzwerkanalyse-Objekts. Dieses Feld ist der Primärschlüssel und dient als Fremdschlüssel im Aufträge-Feature-Layer sowie im Routen-Feature-Layer, um auf Besonderheiten zu verweisen. Namen von Besonderheiten müssen eindeutig sein und dürfen nicht leer bleiben. Außerdem dürfen sie keine Leerzeichen enthalten. Eine Besonderheit, die sich auf einen erfahrenen Techniker bezieht, muss z. B. als ErfahrenerTechniker eingegeben werden. Diese Unzulässigkeit von Leerzeichen ist erforderlich, weil Aufträge und Routen, die mehreren Besonderheiten zugeordnet sind, Namen von Besonderheiten durch Leerzeichen getrennt auflisten, z. B. "ErfahrenerTechniker Lift". |
Beschreibung | Die beschreibenden Informationen zum Netzwerkanalyse-Objekt. Diese können Textinformationen umfassen und müssen nicht eindeutig sein. |
Klasse "Auftragspaare"
Diese Netzwerkanalyseklasse ist eine Tabelle mit Datensätzen, die zum Bilden von Paaren aus Lieferungs- und Abholungsaufträgen verwendet wird, um die Abarbeitung mit derselben Route zu erreichen.
Zuweilen müssen Abholung und Lieferung für Aufträge paarweise zusammengefasst werden. Beispiel: Für einen Kurierdienst ist die Lieferung eines Dokuments mit zwei Stopps verbunden – einem Stopp zum Abholen des Dokuments beim Absender und einem zweiten Stopp zum Abgeben des Dokuments beim Empfänger. Diese zusammengehörigen Stopps werden mit der entsprechenden Sequenz derselben Route zugewiesen. Es ist unzulässig, einer Route nur einen der Aufträge zuzuweisen – entweder werden beide Aufträge derselben Route zugewiesen, oder keiner der Aufträge wird zugewiesen.
Es können Einschränkungen für die Dauer gelten, 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 wieder zurück in ihre Wohnung fahren. Bei der Fahrt von ihrer Wohnung zu der Arztpraxis handelt es sich um ein Auftragspaar mit einer gewünschten Ankunftszeit bei der Arztpraxis, und bei der Fahrt von der Arztpraxis zurück zu ihrer Wohnung handelt es sich um ein Auftragspaar mit einer gewünschten Abholzeit.
Eigenschaften von "Auftragspaare"
Eingabefelder von "Auftragspaare"
Eingabefeld | Beschreibung |
---|---|
ObjectID | Das vom System verwaltete ID-Feld. |
FirstOrderName | Der Name des ersten Auftrags des Paares. Dieses Feld dient als Fremdschlüssel für das Feld "Name" im Aufträge-Feature-Layer. Auftragsobjekte müssen vorhanden sein, bevor sie in der Liste "FirstOrderName" angezeigt werden. |
SecondOrderName | Der Name des zweiten Auftrags des Paares. Dieses Feld dient als Fremdschlüssel für das Feld "Name" im Aufträge-Feature-Layer. Auftragsobjekte müssen vorhanden sein, bevor sie in der Liste "SecondOrderName" angezeigt werden. Der erste Auftrag des Paares muss ein Abholungsauftrag sein, d. h. der Wert für das zugehörige Feld "DeliveryQuantities" ist Null. Der zweite Auftrag des Paares muss ein Lieferauftrag sein, d. h. der Wert für das zugehörige Feld "PickupQuantities" ist Null. Die Menge, die mit dem ersten Auftrag abgeholt wird, muss mit der Menge übereinstimmen, die mit dem zweiten Auftrag geliefert wird. Als Sonderfall können in Szenarien, in denen keine Kapazitäten verwendet werden, beide Aufträge die Menge 0 aufweisen. |
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 Nullwerte enthalten. Ein Nullwert gibt an, dass für die Fahrzeit keine Einschränkung gilt. Die Einheit für diesen Feldwert wird durch die Eigenschaft "Uhrzeitfeldeinheiten" des Analyse-Layers angegeben. 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: (1) Minimieren der Gesamt-Fahrzeitüberschreitung, unabhängig von der Erhöhung der Reisekosten für die Fahrzeugflotte, (2) Suchen einer Lösung, die einen Kompromiss zwischen Gesamtzeitverstoß und Reisekosten ermöglicht, und (3) Ignorieren der Gesamt-Fahrzeitüberschreitung und stattdessen Minimieren der Reisekosten für die Fahrzeugflotte. Wenn Sie für die Einstellung Fahrzeitüberschreitung des Analyse-Layers eine Gewichtung zuweisen, wählen Sie letztendlich eine dieser drei Strategien aus. Unabhängig von der Gewichtung gibt der Solver jedoch in jedem Fall einen Fehler zurück, wenn der Wert für "MaxTransitTime" überschritten wird. |
Punkt-, Linien- und Polygon-Barrieren
Barrieren dienen dazu, eine vorübergehende Einschränkung zu definieren, Impedanz hinzuzufügen und die Impedanz von Teilen des Netzwerks zu skalieren. Wenn ein neuer Netzwerkanalyse-Layer erstellt wird, sind die Barrierenklassen leer. Sie werden nur aufgefüllt, wenn Sie ihnen Objekte hinzufügen. Es ist aber nicht erforderlich, Barrieren hinzuzufügen.
Barrieren sind in allen Netzwerkanalyse-Layern verfügbar. Daher werden sie in einem separaten Thema beschrieben.
Parameter der Vehicle Routing Problem-Analyse
Die Analyseparameter für den Analyse-Layer werden im Dialogfeld Layer-Eigenschaften festgelegt. Der Zugriff auf das Dialogfeld kann auf unterschiedliche Weise erfolgen:
Weitere Informationen zum Öffnen des Dialogfeldes "Layer-Eigenschaften" für die Netzwerkanalyse
Die Registerkarte "Analyseeinstellungen"
In den folgenden Unterabschnitten werden die Parameter, die Sie auf dem Analyse-Layer festlegen können, aufgeführt. Sie finden sie auf der Registerkarte Analyseeinstellungen des Dialogfelds Layer-Eigenschaften für den Analyse-Layer.
Zeitattribut
Das Zeitkostenattribut, mit dem die Routenzeit entlang der Netzwerkelemente definiert wird. Das Zeitkostenattribut ist erforderlich, da der VRP-Solver (Vehicle Routing Problem) die Zeiten minimiert.
Entfernungsattribut
Das Entfernungskostenattribut, mit dem die Länge entlang der Netzwerkelemente definiert wird. Das Entfernungskostenattribut ist optional.
Standarddatum
Das implizite Datum für Zeitfeldwerte, für die kein Datum für die Uhrzeit angegeben wurde. Wenn ein Zeitfeld wie z. B. "TimeWindowStart1" für einen Auftrag einen reinen Uhrzeitwert enthält (z. B. 8:00 Uhr), wird als Datum das von der Eigenschaft Standarddatum angegebene Datum vorausgesetzt. Wenn ein Auftrag beispielsweise den TimeWindowStart1-Wert von 9:00 Uhr aufweist und als Standarddatum m der 6. März 2013 festgelegt ist, wird als vollständiger Zeitwert für das Feld der Wert "9:00 Uhr, 6. März 2013" verwendet. Wenn die Einstellung für Standarddatum geändert wird, wird das implizierte Datum für sämtliche Zeitfeldwerte mit nicht festgelegtem Datum zum neuen Standarddatum. Das Standarddatum wirkt sich nicht auf Zeitfeldwerte aus, für die bereits eine Zeit mit einem bestimmten Datum festgelegt ist.
Wenn das Netzwerk-Dataset Verkehrsdaten enthält, können sich die Ergebnisse der Analyse abhängig von dem hier angegebenen Datum ändern. Im Vergleich zu einer Startzeit um 8:00 Uhr am Sonntag, wenn nicht viel Verkehr ist, dauern die Routen länger, die an einem Montag um 8:00 Uhr zur Hauptverkehrszeit durchgeführt werden. Außerdem kann sich die optimale Route abhängig von den Verkehrsbedingungen ändern.
Sie können zwischen einem "gleitenden" Tag oder einem Kalenderdatum auswählen. Ein Kalenderdatum hat einen bestimmten Tag im Monat, Monat und Jahr. Ein gleitender Tag kann "Heute" oder ein beliebiger Wochentag (Sonntag bis Samstag) sein. Anhand von gleitenden Tagen können Sie einen Analyse-Layer einrichten, der ohne Datumsänderung wiederverwendet werden kann.
Gleitende Tage sind besonders dann sinnvoll, wenn Verkehrsdaten verwendet werden, da sich der Verkehr je nach Uhrzeit oder Wochentag ändert. Wenn Sie z. B. die gleiche Routen täglich berechnen und genaue Uhrzeiten oder die besten Routen für bestimmte Verkehrsverhältnisse benötigen, können Sie die Einstellungen Wochentag und Heute verwenden. Der Solver generiert Ergebnisse anhand des Verkehrs für den aktuellen Tag, der vom Betriebssystem des Computers bestimmt wird. Wenn Sie die Routen am nächsten Tag – z. B. dem 5. Mai – für diesen Tag aktualisieren möchten, können Sie den gleichen Analyse-Layer erneut berechnen. Die Lösung basiert dann automatisch auf dem Verkehr am 5. Mai, da Wochentag auf Heute festgelegt wurde.
Kapazitätszahl
Die Anzahl der Abmessungen für die zulässige Höchstlast, mit denen die jeweiligen Höchstlasten der Fahrzeuge beschrieben werden. Bei einem Lieferauftrag kann für jedes Fahrzeug eine Höchstlast oder ein Höchstvolumen gelten, das aufgrund physischer oder gesetzlicher Bedingungen auf einmal befördert werden darf. Wenn Sie die Last und das Volumen in den Aufträgen verfolgen, können Sie hier unter Verwendung dieser beiden Kapazitätswerte eine Überladung der Fahrzeuge verhindern. Die Kapazitätszahl für dieses Szenario lautet 2 (Volumen und Gewicht). Je nach Problem möchten Sie vielleicht unterschiedliche Arten von Kapazitätsmengen verfolgen. Die in die Kapazitätsfelder eingegebenen Kapazitäten ("DeliveryQuantities" und "PickupQuantities" für die Klasse "Aufträge" und "Capacities" für die Klasse "Routen") sind durch Leerzeichen getrennte numerische Zeichenfolgen, die so viele Werte enthalten können, wie in "Kapazitätszahl" festgelegt ist. Jedes Kapazitätsmaß sollte für alle Kapazitätsfeldwerte innerhalb desselben VRP-Analyse-Layers in derselben Positionsreihenfolge angezeigt werden. Die Kapazitäten selbst sind nicht benannt. Um eine versehentliche Verschiebung der Kapazitätsparameter zu vermeiden, stellen Sie sicher, dass die durch Leerzeichen getrennten Kapazitätslisten für alle Kapazitätsfeldwerte immer in derselben Reihenfolge eingegeben werden.
Uhrzeitfeldeinheiten
Die Zeiteinheiten, die von den Zeitdatenfeldern in den Sublayern und Tabellen des Analyse-Layers verwendet werden (Netzwerkanalyseklassen). Diese Einstellung muss nicht mit den Einheiten des Zeitkostenattributs übereinstimmen.
Entfernungsfeldeinheiten
Die Entfernungseinheiten, die von den Entfernungsfeldern in den Sublayern und Tabellen des Analyse-Layers verwendet werden (Netzwerkanalyseklassen). Diese Einstellung muss nicht mit den Einheiten des optionalen Entfernungskostenattributs übereinstimmen.
Wenden an Kreuzungen
In Network Analyst kann das Wenden überall, nirgendwo, nur in Sackgassen oder nur an Kreuzungen und in Sackgassen zulässig sein. Das Zulassen von Wenden bedeutet, dass die Route an einem Knoten wenden und auf der gleichen Straße wieder zurückführen kann.
Ausgabe-Shape-Typ
Die Routen-Features, die von der Analyse ausgegeben werden, können auf vier Arten dargestellt werden:
- Mit Echtes Shape wird die tatsächliche Form der resultierenden Route dargestellt.
- Mit Streckenverlauf mit Messwerten wird die exakte Form der resultierenden Route dargestellt. Die Ausgabe umfasst zudem Routenmesswerte für die lineare Referenzierung. Die Messwerte nehmen ab dem ersten Halt zu und zeichnen die kumulierte Impedanz auf.
- Mit Gerade Linie wird eine einzelne gerade Linie zwischen den Stopps angezeigt.
- Wenn als Ausgabe-Shape-Typ Kein festgelegt ist, wird kein Shape zurückgegeben.
In allen diesen Fällen sind die zeitbasierten und entfernungsbasierten Kosten in der Lösung identisch, und die Attribute des Routen-Feature-Layers sind ebenfalls identisch. Der einzige Unterschied besteht im Shape der Routenausgabe oder darin, ob automatisch lineare Referenzierung festgelegt wird.
Hierarchie verwenden
Wenn das Netzwerk-Dataset über ein Hierarchieattribut verfügt, kann die Hierarchie während der Analyse herangezogen werden. Wenn eine Hierarchie verwendet wird, werden vom Solver Kanten einer höheren Rangstufe gegenüber Kanten niedrigerer Rangstufen bevorzugt. Hierarchische Berechnungen sind schneller und können verwendet werden, um zu simulieren, dass ein Fahrer lieber auf Autobahnen statt Landstraßen fährt, selbst wenn die Fahrstrecke dann länger ist. Wird keine Hierarchie verwendet, dann wird eine genaue Route für das Netzwerk-Dataset berechnet.
Ungültige Auftragsstandorte ignorieren
Gibt an, ob ungültige Aufträge beim Berechnen des Vehicle Routing Problems ignoriert werden sollen. Wenn diese Option deaktiviert und alle Aufträge ungültig sind, kann der Vorgang nicht aufgelöst werden.
Ein ungültiger Auftrag ist ein Auftrag, den der VRP-Solver nicht erreichen kann. Ein Auftrag kann aus verschiedenen Gründen nicht erreichbar sein, etwa weil er sich an einem verbotenen Netzwerkelement oder überhaupt nicht im Netzwerk befindet oder an einem nicht verbundenen Teil des Netzwerks positioniert ist.
Es kostet viel Zeit, die Gründe für ungültige Aufträge zu ermitteln und zu lösen. Wenn Sie deshalb Routen generieren und sofort an die Fahrer weitergeben müssen, können Sie u. U. ungültige Aufträge ignorieren, die Berechnung durchführen und die Routen an die Fahrer verteilen. Lösen Sie als Nächstes alle ungültigen Aufträge aus dem letzten Berechnungsvorgang, und fügen Sie sie zur VRP-Analyse für den nächsten Arbeitstag oder die nächste Arbeitsschicht hinzu.
Beschränkungen
Sie können auswählen, welche Restriktionsattribute bei der Berechnung der Analyse beachtet werden sollen. In den meisten Fällen führen Beschränkungen dazu, dass Straßen unzulässig werden, sie können jedoch auch dazu führen, dass sie vermieden oder bevorzugt werden. Ein Restriktionsattribut, wie beispielsweise Oneway, sollte verwendet werden, wenn Lösungen für Fahrzeuge gesucht werden, die Einbahnstraßen beachten müssen (z. B. Fahrzeuge, die keine Einsatzfahrzeuge sind). Andere gängige Restriktionsattribute umfassen Höhen- oder Gewichtsbeschränkungen, die einige Fahrzeuge daran hindern, bestimmte Straßen oder Brücken zu passieren, Beschränkungen für gefährliche Materialien, die die Fahrer von Gefahrgut-Transporten vollständig umfahren müssen, oder zumindest versuchen müssen, zu vermeiden, sowie bestimmte Routen für Lastwagen, die Lkw-Fahrer nach Möglichkeit nutzen sollten. Sie können auswählen, welche Restriktionsattribute bei der Berechnung der Analyse beachtet werden sollen. (Auf der Registerkarte Netzwerkparameter können Sie außerdem festlegen, ob Elemente mit der jeweiligen Beschränkung, unzulässig, vermieden oder bevorzugt werden sollten.)
Wegbeschreibung
Mit den Eigenschaften von "Wegbeschreibung" können Sie die Einheiten für die Entfernung und optional auch für die Zeit festlegen. Darüber hinaus können Sie wählen, ob eine Wegbeschreibung nach dem Generieren einer Route automatisch geöffnet wird. (Wenn Wegbeschreibungen nicht automatisch angezeigt werden, können Sie auf die Schaltfläche Fenster "Wegbeschreibung" klicken, um sie anzuzeigen.)
Die Registerkarte "Erweiterte Einstellungen"
Im Dialogfeld Layer-Eigenschaften werden auf der Registerkarte Erweiterte Einstellungen die folgenden Eigenschaften des Analyse-Layers für das Vehicle Routing Problem angezeigt: Die hier vorgenommenen Einstellungen wirken sich auf die Prioritäten des Solvers beim Behandeln von Zeitfensterverletzungen von Routen und Fahrzeitüberschreitungen für Auftragspaare aus. Sie können den Wert Niedrig, Mittel oder Hoch zuweisen. Je höher die Gewichtung, desto intensiver versucht der Solver, die entsprechenden Zeitfensterverletzungen oder Fahrzeitüberschreitungen zu verringern oder zu beseitigen.
Zeitfensterverletzung
Zeitfensterverletzung: Mit dieser Eigenschaft können Sie festlegen, wie wichtig die Einhaltung von Zeitfenstern ist, ohne Beschränkungsverletzungen zu verursachen. Eine Zeitfensterverletzung tritt auf, wenn eine Route nach dem Schließen eines Zeitfensters einen Auftrag, ein Depot oder eine Unterbrechung erreicht. Als Verletzung ist das Intervall zwischen dem Ende des Zeitfensters und der Ankunftszeit einer Route definiert.
Die VRP-Lösung kann sich in Abhängigkeit des Wertes ändern, den Sie für die Eigenschaft Zeitfensterverletzung auswählen. In der folgenden Liste wird die Bedeutung der verschiedenen Werte beschrieben und es werden mögliche Auswirkungen auf die VRP-Lösung genannt:
Hoch: Der Solver versucht, eine Lösung zu finden, bei der Zeitfensterverletzungen auf Kosten steigender Gesamtfahrzeiten minimiert werden. Wählen Sie "Hoch" aus, wenn die rechtzeitige Ankunft bei Aufträgen wichtiger ist als eine Minimierung der Gesamtlösungskosten. Dies kann z. B. der Fall sein, wenn Sie einen Termin mit Kunden bei den Aufträgen vereinbart haben und eine verspätete Ankunft vermeiden möchten (eine weitere Möglichkeit ist die Verwendung von harten Zeitfenstern, bei denen keine Verletzung zulässig ist).
Wenn weitere Beschränkungen eines Vehicle Routing Problem vorliegen, ist es eventuell unmöglich, alle Aufträge innerhalb ihrer Zeitfenster zu erreichen. In diesem Fall können auch mit der Einstellung "Hoch" Zeitfensterverletzungen auftreten.
Mittel: Dies ist die Standardeinstellung. Der Solver sucht einen Kompromiss zwischen der Einhaltung von Zeitfenstern und der Senkung der Gesamtlösungskosten.
Niedrig: Der Solver versucht, eine Lösung zu finden, bei der die Gesamtfahrzeit unabhängig von Zeitfenstern minimiert wird. Wählen Sie "Niedrig" aus, wenn die Einhaltung von Zeitfenstern weniger wichtig ist als die Reduzierung der Gesamtlösungskosten. Sie können ggf. diese Einstellung wählen, wenn Sie einen wachsenden Rückstand an Service-Anforderungen bewältigen müssen. Um an einem Tag mehr Aufträge durchführen zu können und den Rückstand abzuarbeiten, können Sie "Niedrig" auswählen, obwohl den Kunden durch die Verspätungen Ihrer Fahrzeugflotte Unannehmlichkeiten entstehen.
In den nächsten beiden Abbildungen wird dieselbe Gruppe von Aufträgen und Depots gezeigt. Die Routen sind jedoch unterschiedlich, weil andere Einstellungen für "Zeitfensterverletzung" verwendet wurden. In der linken Abbildung wird die Route gezeigt, die bei der Gewichtung "Niedrig" für "Zeitfensterverletzung" erzeugt wurde. Die Route ist kurz, es liegt jedoch eine Zeitfensterverletzung vor. Wenn die Einstellung auf "Hoch" festgelegt ist, erfüllt die Route alle Zeitfenster, jedoch ist sie länger, weil der Auftrag mit einem Zeitfenster zuerst durchgeführt wird.
Fahrzeitüberschreitung
Mit dieser Eigenschaft können Sie festlegen, wie wichtig die Reduzierung von Fahrzeitüberschreitungen ist. Die Fahrzeitüberschreitung entspricht der Zeit, um die die direkte Fahrzeit zwischen den Auftragspaaren überschritten wird. Die Fahrzeitüberschreitung ergibt sich aus Unterbrechungen oder Fahrten zu anderen Aufträgen oder Depots, die zwischen den Auftragspaaren stattgefunden haben.
Die VRP-Lösung kann sich in Abhängigkeit des Wertes ändern, den Sie für Fahrzeitüberschreitung auswählen. In der folgenden Liste wird die Bedeutung der verschiedenen Werte beschrieben und es werden mögliche Auswirkungen auf die VRP-Lösung genannt:
- Hoch: Der Solver versucht, eine Lösung zu finden, bei der die Fahrzeitüberschreitungen bei Auftragspaaren auf Kosten steigender Gesamtfahrzeiten minimiert werden. Diese Einstellung empfiehlt sich, wenn bei Aufträgen Personen befördert werden und Sie die Fahrzeiten der Personen verkürzen möchten. Ein typisches Beispiel sind Taxiunternehmen.
- Mittel: Dies ist die Standardeinstellung. Der Solver sucht einen Kompromiss zwischen der Reduzierung der Fahrzeitüberschreitung und der Senkung der Gesamtlösungskosten.
- Niedrig: Der Solver versucht, eine Lösung zu finden, bei der die Gesamtlösungskosten unabhängig von Zeitüberschreitungen minimiert werden. Diese Einstellung wird normalerweise von Kurierdiensten verwendet. Da Kurierdienste Pakete und keine Personen befördern, muss die Fahrzeit nicht berücksichtigt werden. Mit der Einstellung "Niedrig" können Kuriere Auftragspaare in der ordnungsgemäßen Reihenfolge abwickeln und die Gesamtlösungskosten minimieren.
In den nächsten beiden Abbildungen wird dieselbe Gruppe von Aufträgen und Depots gezeigt. Die Routen sind jedoch unterschiedlich, weil andere Einstellungen für "Fahrzeitüberschreitung" verwendet wurden. In der linken Abbildung wird die Route gezeigt, die bei einer Gewichtung von "Niedrig" für "Fahrzeitüberschreitung" erzeugt wurde. Die Gesamtroute ist zwar kurz, jedoch ist die Fahrzeit vom ersten Auftrag zu dem im Auftragspaar zugeordneten Auftrag, dem Flughafen, lang. Wenn die Gewichtung auf "Hoch" festgelegt ist, verringert sich die Zeit der Route zwischen dem ersten Auftrag und dem Flughafen, während für den anderen Auftrag rechts dieselbe Fahrzeit beibehalten wird. Die Gesamtkosten der Route erhöhen sich jedoch.
Die Registerkarte "Netzwerkstandorte"
Die Parameter auf der Registerkarte Netzwerkstandorte dienen zum Suchen von Netzwerkstandorten und Festlegen von Werten für deren Eigenschaften.
Lösen eines Vehicle Routing Problem und Interpretieren der Ergebnisse
Nachdem ein Analyse-Layer für das Vehicle Routing Problem erstellt, die erforderlichen Netzwerkanalyseobjekte gefüllt und entsprechende Analyseeigenschaften festgelegt wurden, kann die Lösung für den Analyse-Layer für das Vehicle Routing Problem durch Klicken auf die Schaltfläche Berechnen auf der Werkzeugleiste Network Analyst ermittelt werden.
Nach der Berechnung wird die Eigenschaft Ausgabe-Shape-Typ auf Echtes Shape festgelegt, und der Vehicle Routing Problem-Solver zeichnet für jede Route im Netzwerk Linien, die Startdepots, Aufträge, Depots zum Be-/Entladen und Enddepots verbinden.
Im Fenster Network Analyst wird auch die Klasse "Aufträge" aktualisiert, um alle Aufträge nach den Routen zu gruppieren, denen sie zugewiesen sind. Die Klasse "Depotstopps" wird aktualisiert, um für jede Route Start- und Enddepot sowie Depots zum Be-/Entladen anzuzeigen.
Beim Berechnungsvorgang ignoriert der Vehicle Routing Problem-Solver alle Routen und Aufträge, deren Wert für das Feld "AssignmentRule" auf "Ausschließen" festgelegt ist.
Anschließend berechnet der Vehicle Routing Problem-Solver eine intern verwaltete Start-Ziel-Kostenmatrix zwischen allen Aufträgen und Depotstandorten, für die das Zeitattribut als Impedanz und ggf. das Entfernungsattribut als akkumuliertes Attribut verwendet wird.
Informationen zur Start-Ziel-Kostenmatrix-Analyse
Der VRP-Solver erstellt eine erste Lösung, die aus vorab zugewiesenen Aufträgen, Pausenzeiten und Stopps zum Be-/Entladen besteht, sofern eines dieser Netzwerkanalyse-Objekte vorab Routen zugewiesen ist. Wenn mit dieser Vorabzuweisung keine gültige erste Lösung ermittelt werden kann (d. h., einige Beschränkungen wurden verletzt), schlägt der Berechnungsvorgang fehl.
Während Aufträge ohne Route vorhanden sind, versucht der VRP-Solver, den preisgünstigsten Auftrag ohne Route in die am besten geeignete Route einzufügen. Der Solver versucht, die Sequenz von Aufträgen zu ändern, die einer Route zugeordnet sind, wenn durch das Ändern der Sequenz die Lösung verbessert wird. Jedoch wird die relative Sequenz von Aufträgen nicht verschoben, deren Wert für das Feld "AssignmentRule" auf "Route und relative Sequenz beibehalten" festgelegt ist. Für einen Auftrag mit dem AssignmentRule-Feldwert "Erstes Element verankern" oder "Letztes Element verankern" stellt der Solver sicher, dass der Auftrag der erste oder der letzte auf der Route ist, der er zugewiesen ist.
Nachdem alle möglichen Aufträge erfolgreich Routen zugeordnet wurden, gibt der Vehicle Routing Problem-Solver die Ergebnisse in den entsprechenden Ausgabefeldern der Netzwerkanalyse-Objekte aus. Wenn einige Aufträge keiner Route zugeordnet werden können, werden die verletzten Beschränkungen in die "ViolatedConstraints"-Felder des Aufträge-Feature-Layers ausgegeben. Wenn eine Route in einer Lösung nicht verwendet wird, werden die entsprechenden Ausgabefelder auf NULL festgelegt.
Informationen zu verletzten Beschränkungen für Aufträge und Routen
Interpretieren der Ergebnisse einer Vehicle Routing Problem-Analyse
Nachdem ein Analyse-Layer für das Vehicle Routing Problem erfolgreich berechnet wurde, kann durch Lesen der Eingabe- und Ausgabefelder der Tabelle "Pausenzeiten", des Depotstopps-Feature-Layers, des Aufträge-Feature-Layers und des Routen-Feature-Layers die Routing-Lösung für jede Route zusammengestellt werden. Der Routenplan wird ermittelt, indem eine Suche nach "RouteName" erfolgt und die Sequenzwerte in "Pausenzeiten", "Depotstopps" und "Aufträge" bestimmt werden. Sie können eine Wegbeschreibung generieren, um einen ähnlichen Routenplan zu kompilieren. Der Routen-Feature-Layer bietet eine Zusammenfassung jeder berechneten Route.