प्रोडक्शन के लिए नोट
इस गाइड में REST और JSON का इस्तेमाल किया गया है, ताकि इसे आसानी से समझा जा सके. हालांकि, आपके प्रोडक्शन एनवायरमेंट के लिए, हमारा सुझाव है कि बेहतर परफ़ॉर्मेंस के लिए, gRPC और क्लाइंट लाइब्रेरी का इस्तेमाल करें. ज़्यादा जानकारी के लिए, Route Optimization API की क्लाइंट लाइब्रेरी देखें.
अपना पहला अनुरोध करें में अनुरोध भेजने के बाद, ऑप्टिमाइज़र एक OptimizeToursResponse दिखाता है. यह रिस्पॉन्स, आपके ड्राइवर के लिए रूट प्लान है. इस गाइड में, इसे पढ़ने का तरीका बताया गया है.
रास्ते के प्लान की खास जानकारी
कुत्तों की डेकेयर सेवा के मामले में, ऑप्टिमाइज़र आपकी वैन में बर्निस माउंटेन डॉग और चिहुआहुआ को असाइन करता है. साथ ही, जर्मन शेफ़र्ड को छोड़ देता है. आपके ड्राइवर का रूट प्लान इस तरह है:
- डेकेयर सेंटर में सुबह 7:55 बजे शिफ़्ट शुरू करें.
- सुबह 8:20 बजे, कॉइट टावर के पास से बर्नीज़ माउंटेन डॉग को पिक अप करें.
- सुबह 8:58 बजे साउथ सनसेट प्लेग्राउंड पार्क से चिहुआहुआ को पिक अप करें.
- सुबह 9:24 बजे डेकेयर सेंटर पर वापस पहुंचें और सुबह 9:30 बजे ड्रॉपऑफ़ विंडो खुलने तक इंतज़ार करें.
- बर्नीज़ माउंटेन डॉग को सुबह 9:30 बजे छोड़ना है.
- चिहुआहुआ को सुबह 9:35 बजे छोड़ना है.
- सुबह 9:40 बजे शिफ़्ट खत्म करें.
इस रूट प्लान की कीमत 147.22 डॉलर है. इसमें जर्मन शेफ़र्ड को नहलाने का काम न करने पर लगने वाला 100 डॉलर का जुर्माना भी शामिल है.
अपने नतीजों की जांच करने के लिए, अपने रिस्पॉन्स की तुलना पूरे उदाहरण के रिस्पॉन्स से करें. आपको मिलने वाले नतीजे थोड़े अलग हो सकते हैं, क्योंकि यात्रा में लगने वाला समय और दूरी, सड़क के मौजूदा डेटा पर निर्भर करती है.
पूरे जवाब का उदाहरण
{ "routes": [ { "vehicleStartTime": "2024-02-13T15:55:04Z", "vehicleEndTime": "2024-02-13T17:40:00Z", "visits": [ { "isPickup": true, "startTime": "2024-02-13T16:20:00Z", "detour": "0s", "shipmentLabel": "Bernese mountain dog", "visitType": "PICKUP_SHIPMENT" }, { "shipmentIndex": 1, "isPickup": true, "startTime": "2024-02-13T16:58:12Z", "detour": "2600s", "shipmentLabel": "Chihuahua", "visitType": "PICKUP_SHIPMENT" }, { "startTime": "2024-02-13T17:30:00Z", "detour": "2297s", "shipmentLabel": "Bernese mountain dog", "visitType": "DELIVER_SHIPMENT" }, { "shipmentIndex": 1, "startTime": "2024-02-13T17:35:00Z", "detour": "656s", "shipmentLabel": "Chihuahua", "visitType": "DELIVER_SHIPMENT" } ], "transitions": [ { "travelDuration": "1496s", "travelDistanceMeters": 7082, "waitDuration": "0s", "totalDuration": "1496s", "startTime": "2024-02-13T15:55:04Z" }, { "travelDuration": "1992s", "travelDistanceMeters": 16589, "waitDuration": "0s", "totalDuration": "1992s", "startTime": "2024-02-13T16:25:00Z" }, { "travelDuration": "1252s", "travelDistanceMeters": 7860, "waitDuration": "356s", "totalDuration": "1608s", "startTime": "2024-02-13T17:03:12Z" }, { "travelDuration": "0s", "waitDuration": "0s", "totalDuration": "0s", "startTime": "2024-02-13T17:35:00Z" }, { "travelDuration": "0s", "waitDuration": "0s", "totalDuration": "0s", "startTime": "2024-02-13T17:40:00Z" } ], "metrics": { "performedShipmentCount": 2, "travelDuration": "4740s", "waitDuration": "356s", "delayDuration": "0s", "breakDuration": "0s", "visitDuration": "1200s", "totalDuration": "6296s", "travelDistanceMeters": 31531, "performedShipmentPenaltyCostSum": 2000 }, "routeCosts": { "model.vehicles.cost_per_hour": 47.22 }, "routeTotalCost": 47.22, "vehicleFullness": { "maxFullness": 0.3497777777777778, "activeSpan": 0.3497777777777778 } } ], "skippedShipments": [ { "index": 2, "label": "German shepherd", "penaltyCost": 100 } ], "metrics": { "aggregatedRouteMetrics": { "performedShipmentCount": 2, "travelDuration": "4740s", "waitDuration": "356s", "delayDuration": "0s", "breakDuration": "0s", "visitDuration": "1200s", "totalDuration": "6296s", "travelDistanceMeters": 31531, "performedShipmentPenaltyCostSum": 2000 }, "usedVehicleCount": 1, "earliestVehicleStartTime": "2024-02-13T15:55:04Z", "latestVehicleEndTime": "2024-02-13T17:40:00Z", "totalCost": 147.22, "costs": { "model.vehicles.cost_per_hour": 47.22, "model.shipments.penalty_cost": 100 } } }
जवाब का स्ट्रक्चर
OptimizeToursResponse में दो मुख्य कॉम्पोनेंट होते हैं:
routes: आपके फ़्लीट में मौजूद हर वाहन के लिए रूट प्लान. इसमें हर पिकअप और डिलीवरी का क्रम और समय शामिल है. आपके पास एक वैन है, इसलिए एक रूट प्लान है.metrics: पूरे रूट प्लान की खास जानकारी. इसमें कुल लागत, अवधि, और दूरी शामिल है.
ऑप्टिमाइज़र, जर्मन शेफ़र्ड को स्किप कर देता है. इसलिए, जवाब में skippedShipments भी शामिल होता है.
यहां दिए गए सेक्शन में, जवाब में रूट प्लान की खास जानकारी की हर जानकारी को ढूंढने का तरीका बताया गया है.
कौनसी गाड़ी किस रूट पर चलती है?
ऑप्टिमाइज़र, रूट प्लान (routes कलेक्शन) जनरेट करता है. यह आपके अनुरोध में मौजूद vehicles के क्रम से मेल खाता है.
vehicleIndex फ़ील्ड, हर वाहन की पहचान उसकी शून्य-आधारित पोज़िशन के आधार पर करता है. आपकी वैन के लिए यह पोज़िशन 0 है. vehicleStartTime और vehicleEndTime फ़ील्ड से, ड्राइवर को अपनी शिफ़्ट शुरू और खत्म करने का समय पता चलता है.
Route Optimization API, यूटीसी में टाइमस्टैंप दिखाता है. इसे Z सफ़िक्स से मार्क किया जाता है. भले ही, आपके अनुरोध में ऑफ़सेट कुछ भी हो. सैन फ़्रांसिस्को का समय जानने के लिए, आठ घंटे घटाएं. आपकी वैन के लिए, शिफ़्ट सुबह 7:55 बजे से सुबह 9:40 बजे तक चलती है. इसके बारे में यहां दिए गए कोड सैंपल में बताया गया है.
{
"routes": [
{
// "vehicleIndex": 0, // Omitted in actual JSON response because it's 0
"vehicleStartTime": "2024-02-13T15:55:04Z",
"vehicleEndTime": "2024-02-13T17:40:00Z",
...
}
]
...
}
पिकअप और ड्रॉपऑफ़ का क्रम क्या है?
हर रूट में, visits कलेक्शन में असाइन किए गए वाहन के लिए, पिकअप और डिलीवरी की हर जानकारी समय के हिसाब से क्रम में होती है.
हर विज़िट का shipmentIndex, आपके अनुरोध में शिपमेंट की शून्य-आधारित पोज़िशन है: 0, बर्नीज़ माउंटेन डॉग है और 1, चिहुआहुआ है. shipmentLabel फ़ील्ड में, हर शिपमेंट के लिए सेट किया गया लेबल दिखता है.
पिकअप और ड्रॉपऑफ़ (या डिलीवरी) के बीच अंतर करने के लिए, visitType या isPickup फ़ील्ड देखें:
visitType: इससे विज़िट ऐक्शन के बारे में साफ़ तौर पर पता चलता है.- पिकअप:
visitType="PICKUP_SHIPMENT" - डिलीवरी:
visitType="DELIVER_SHIPMENT"
- पिकअप:
isPickup: बूलियन हेल्पर फ़ील्ड.- पिकअप:
isPickup=true - डिलीवरी:
isPickup=false(JSON में शामिल नहीं किया गया)
- पिकअप:
इवेंट के सटीक क्रम और हर जगह पर पहुंचने के अनुमानित समय का पता लगाने के लिए, visits कलेक्शन को क्रम से पढ़ें. नीचे दी गई टेबल में, shipmentIndex, isPickup या visitType, और startTime फ़ील्ड के क्रम और वैल्यू के आधार पर, रूट प्लान की कार्रवाई दिखाई गई है.
| क्रम | shipmentIndex की कीमत का |
isPickup या visitType वैल्यू |
startTime वैल्यू (यूटीसी) |
कार्रवाई |
|---|---|---|---|---|
| पहली विज़िट | 0 (JSON में शामिल नहीं किया गया) | सही या PICKUP_SHIPMENT |
2024-02-13T16:20:00Z | सुबह 8:20 बजे बर्नीज़ माउंटेन डॉग को पिक अप करें. |
| दूसरी विज़िट | 1 | सही या PICKUP_SHIPMENT |
2024-02-13T16:58:12Z | सुबह 8:58 बजे चिवावा को पिक अप करें. |
| तीसरी विज़िट | 0 (JSON में शामिल नहीं किया गया) | False (हटाया गया) या DELIVER_SHIPMENT |
2024-02-13T17:30:00Z | बर्नीज़ माउंटेन डॉग को सुबह 9:30 बजे डॉगी डेकेयर सेंटर में छोड़ना. |
| चौथी विज़िट | 1 | False (हटाया गया) या DELIVER_SHIPMENT |
2024-02-13T17:35:00Z | सुबह 9:35 बजे, चिहुआहुआ को डॉगी डेकेयर सेंटर में छोड़ना. |
नीचे दिए गए कोड सैंपल में बताया गया है कि जवाब में यह क्रम कैसे दिखता है:
{
"routes": [
{
"visits": [
{
// "shipmentIndex": 0, // Omitted in actual JSON response because it's 0
"isPickup": true,
"startTime": "2024-02-13T16:20:00Z",
"shipmentLabel": "Bernese mountain dog",
"visitType": "PICKUP_SHIPMENT"
},
{
"shipmentIndex": 1,
"isPickup": true,
"startTime": "2024-02-13T16:58:12Z",
"shipmentLabel": "Chihuahua",
"visitType": "PICKUP_SHIPMENT"
},
{
// "shipmentIndex": 0, // Omitted in actual JSON response because it's 0
// "isPickup": false, // Omitted in actual JSON response because it's false
"startTime": "2024-02-13T17:30:00Z",
"shipmentLabel": "Bernese mountain dog",
"visitType": "DELIVER_SHIPMENT"
},
{
"shipmentIndex": 1,
// "isPickup": false, // Omitted in actual JSON response because it's false
"startTime": "2024-02-13T17:35:00Z",
"shipmentLabel": "Chihuahua",
"visitType": "DELIVER_SHIPMENT"
}
]
}
]
}
हर विज़िट में एक visitRequestIndex भी होता है. यह पिकअप या ड्रॉपऑफ़ विकल्प की शून्य-आधारित पोज़िशन होती है, जिसे ऑप्टिमाइज़र ने शिपमेंट के लिए चुना है. इस स्थिति में, हर कुत्ते के लिए पिकअप और ड्रॉपऑफ़ का सिर्फ़ एक विकल्प है. इसलिए, visitRequestIndex हमेशा 0 होता है और जवाब में इसे शामिल नहीं किया जाता.
विज़िट के बीच क्या होता है?
हर रास्ते के लिए, transitions कलेक्शन में विज़िट के बीच की यात्रा की जानकारी होती है. visits और transitions अलग-अलग सूचियां हैं. हालांकि, ये समय के हिसाब से एक-दूसरे से जुड़ी होती हैं, जैसा कि यहां बताया गया है:
transitions[0](शुरुआत से लेकर पहली विज़िट तक का ड्राइव टाइम)visits[0](पहली विज़िट)transitions[1](पहली जगह से दूसरी जगह तक ड्राइव करें)visits[1](दूसरी विज़िट)...visits[N-1](पिछली विज़िट, जहां N विज़िट की कुल संख्या है)transitions[N](पिछली बार विज़िट की गई जगह से लेकर, आखिरी जगह तक ड्राइव करें)
दोनों कलेक्शन में startTime फ़ील्ड को देखकर, रास्ते की टाइमलाइन को फ़ॉलो किया जा सकता है. ट्रांज़िशन का startTime तब होता है, जब ड्राइवर यात्रा शुरू करता है. वहीं, विज़िट का startTime तब होता है, जब ड्राइवर पिकअप या ड्रॉपऑफ़ शुरू करता है.
हर ट्रांज़िशन में, जगहों के बीच की दूरी और ड्राइविंग में लगने वाला अनुमानित समय दिखता है.
नीचे दी गई टेबल में, transitions और visits, दोनों फ़ील्ड को डॉगी डेकेयर के लिए, समय के हिसाब से रूट की कार्रवाइयों के साथ मैप किया गया है.
| क्रम | फ़ील्ड का नाम | startTime वैल्यू (यूटीसी) |
विवरण | कार्रवाई |
|---|---|---|---|---|
| पहला ट्रांज़िशन | transitions[0] |
2024-02-13T15:55:04Z |
travelDuration: 1496stravelDistanceMeters: 7082 |
डेकेयर सेंटर से बर्नीज़ माउंटेन डॉग को पिक अप करने के लिए, 25 मिनट तक सात कि॰मी॰ ड्राइव करें. शिफ़्ट सुबह 7:55 बजे शुरू होगी. |
| पहली विज़िट | visits[0] |
2024-02-13T16:20:00Z |
shipmentIndex: 0 (JSON में शामिल नहीं किया गया)isPickup: सही है |
बर्नीज़ माउंटेन डॉग को सुबह 8:20 बजे से पिक अप करें. इसमें पांच मिनट लगेंगे. |
| दूसरा ट्रांज़िशन | transitions[1] |
2024-02-13T16:25:00Z |
travelDuration: 1992stravelDistanceMeters: 16589 |
सुबह 8:25 बजे, कॉइट टावर से चिहुआहुआ को पिक करने के लिए 17 कि॰मी॰ ड्राइव करें. इसमें 33 मिनट लगेंगे. |
| दूसरी विज़िट | visits[1] |
2024-02-13T16:58:12Z |
shipmentIndex: 1isPickup: True |
चिहुआहुआ को सुबह 8:58 बजे पिक अप करें. इसमें पांच मिनट लगेंगे. |
| तीसरा ट्रांज़िशन | transitions[2] |
2024-02-13T17:03:12Z |
travelDuration: 1252stravelDistanceMeters: 7860waitDuration: 356s |
सुबह 9:03 बजे, साउथ सनसेट प्लेग्राउंड से डेकेयर सेंटर के लिए 8 कि॰मी॰ की ड्राइव शुरू की. इसमें 21 मिनट लगे. सुबह 9:24 बजे डेकेयर सेंटर पहुंचे और ड्रॉपऑफ़ विंडो खुलने के लिए छह मिनट इंतज़ार किया. |
| तीसरी विज़िट | visits[2] |
2024-02-13T17:30:00Z |
shipmentIndex: 0 (JSON में शामिल नहीं किया गया)isPickup: False (JSON में शामिल नहीं किया गया) |
बर्नीज़ माउंटेन डॉग को सुबह 9:30 बजे से डॉगी डेकेयर सेंटर में छोड़ें. इसमें 5 मिनट लगेंगे. |
| चौथा ट्रांज़िशन | transitions[3] |
2024-02-13T17:35:00Z |
travelDuration: 0stravelDistanceMeters: 0 (JSON में शामिल नहीं किया गया) |
गाड़ी न चलाएं. सुबह 9:35 बजे, चिहुआहुआ को डेकेयर सेंटर में छोड़ने के लिए तैयार. |
| चौथी विज़िट | visits[3] |
2024-02-13T17:35:00Z |
shipmentIndex: 1isPickup: False (JSON में शामिल नहीं किया गया) |
चिहुआहुआ को सुबह 9:35 बजे डॉगी डेकेयर सेंटर में छोड़ें. इसमें पांच मिनट लगेंगे. |
| पांचवां ट्रांज़िशन | transitions[4] |
2024-02-13T17:40:00Z |
travelDuration: 0stravelDistanceMeters: 0 (JSON में शामिल नहीं किया गया) |
गाड़ी न चलाएं. ड्राइवर की शिफ़्ट सुबह 9:40 बजे खत्म होती है. |
यहां दिए गए कोड सैंपल से पता चलता है कि जवाब में transitions[0] और transitions[1] के लिए यह क्रम कैसे दिया जाता है:
{
"routes": [
{
"transitions": [
{
"travelDuration": "1496s",
"travelDistanceMeters": 7082,
"waitDuration": "0s",
"totalDuration": "1496s",
"startTime": "2024-02-13T15:55:04Z"
},
{
"travelDuration": "1992s",
"travelDistanceMeters": 16589,
"waitDuration": "0s",
"totalDuration": "1992s",
"startTime": "2024-02-13T16:25:00Z"
},
...
]
}
]
}
इस रास्ते पर कितना टोल टैक्स देना होगा?
जवाब में कई फ़ील्ड देखे जा सकते हैं. यह इस बात पर निर्भर करता है कि आपको किसी खास वाहन की लागत चाहिए या पूरे फ़्लीट की कुल लागत.
यहां दी गई टेबल में, जवाब में लागत की जानकारी पाने के सभी तरीके बताए गए हैं:
| Parent | पैरामीटर | दायरा | ब्यौरा |
|---|---|---|---|
ShipmentRoute |
routeCosts |
हर रूट के हिसाब से | उस खास रूट के लिए, लागत के अलग-अलग कॉम्पोनेंट (जैसे, हर घंटे की लागत) की जानकारी. |
routeTotalCost |
हर रास्ते के लिए | उस खास रास्ते के लिए कैलकुलेट की गई कुल लागत. | |
Metrics |
totalCost |
कुल (सभी रूट) | समाधान में मौजूद सभी रूट की कुल लागत. |
costs |
कुल (सभी रूट) | समाधान में मौजूद सभी रूट के लिए, कुल लागत के कॉम्पोनेंट का ब्रेकडाउन. |
routeCosts और costs में बताई गई लागत, आपके अनुरोध में बताई गई लागत की सीमाओं को दिखाती है. ज़्यादा जानकारी के लिए, लागत मॉडल के मुख्य सिद्धांत वाला दस्तावेज़ देखें.
कुत्तों की देखभाल करने वाली इस सेवा के लिए, शिपमेंट को स्किप किया गया है. इसलिए, हर रूट की लागत और कुल लागत अलग-अलग है. रूट की लागत में सिर्फ़ उस रूट से जुड़ी लागत (ड्राइवर की सैलरी) शामिल होती है. वहीं, कुल लागत में शिपमेंट को छोड़ने पर लगने वाला जुर्माना भी शामिल होता है. यहां दिए गए कोड सैंपल से पता चलता है कि रिस्पॉन्स में ये वैल्यू कहां मिलेंगी:
{
"routes": [
{
"vehicleStartTime": "2024-02-13T15:55:04Z",
"vehicleEndTime": "2024-02-13T17:40:00Z",
...
"routeCosts": {
"model.vehicles.cost_per_hour": 47.22
},
"routeTotalCost": 47.22
}
],
"metrics": {
"totalCost": 147.22,
"costs": {
"model.shipments.penalty_cost": 100,
"model.vehicles.cost_per_hour": 47.22
},
...
}
}
रूट प्लान के मुताबिक, ड्राइवर सुबह 7:55 से 9:40 तक वैन चलाता है. यह समय करीब 1 घंटा 45 मिनट (6, 296 सेकंड) है. आपके तय किए गए 27 डॉलर प्रति घंटे के हिसाब से, इस रास्ते की लागत 47.22 डॉलर है. ऑप्टिमाइज़र ने जर्मन शेफ़र्ड के शिपमेंट को छोड़ दिया. इसलिए, इसमें 100 डॉलर का जुर्माना जोड़ा गया. इससे कुल लागत 147.22 डॉलर हो गई.
शिपमेंट को क्यों छोड़ा गया?
ऑप्टिमाइज़र, उन सभी शिपमेंट की सूची बनाता है जिन्हें वह skippedShipments कलेक्शन में नहीं भेजता. शिपमेंट को स्किप करने की वजह इस बात पर निर्भर करती है कि आपने penaltyCost सेट किया है या नहीं:
- ज़रूरी शिपमेंट (
penaltyCostनहीं): ऑप्टिमाइज़र इन शिपमेंट को कभी नहीं छोड़ता. भले ही, इन्हें पूरा करने में ज़्यादा खर्च आए. यह किसी शिपमेंट को सिर्फ़ तब छोड़ता है, जब उसे किसी भी रूट में फ़िट न किया जा सके. उदाहरण के लिए, ऐसा तब होता है, जब शिपमेंट की टाइम विंडो, अन्य शिपमेंट की टाइम विंडो से मेल न खाती हो. - ज़रूरी नहीं शिपमेंट (
penaltyCostके साथ): ऑप्टिमाइज़र इन्हें भी छोड़ सकता है, जब इन्हें पूरा करने की लागत, जुर्माने से ज़्यादा हो. कुछ शिपमेंट को दूसरों के मुकाबले प्राथमिकता देने के लिए, अलग-अलग पेनल्टी कॉस्ट सेट की जा सकती हैं.
इस स्थिति में, जर्मन शेफ़र्ड को पिकअप करने की विंडो, बर्नीज़ माउंटेन डॉग को पिकअप करने की विंडो से मेल खाती है. कॉइट टावर और लैंड्स एंड के बीच की दूरी 25 मिनट की है. इसलिए, ड्राइवर 20 मिनट के अंदर दोनों जगह से पिकअप नहीं कर सकता. ऑप्टिमाइज़र को इनमें से एक को छोड़ना होगा. जर्मन शेफ़र्ड के लिए जुर्माना कम है (नियमित क्लाइंट के लिए 1,000 डॉलर के मुकाबले 100 डॉलर). इसलिए, ऑप्टिमाइज़र इसे छोड़ देता है और 100 डॉलर का जुर्माना लगाता है.
यहां दिए गए कोड सैंपल में, जवाब में skippedShipments ऑब्जेक्ट दिखाया गया है:
{
...
"skippedShipments": [
{
"index": 2,
"label": "German shepherd",
"penaltyCost": 100
}
],
...
}
जवाब में मौजूद skippedShipments ऑब्जेक्ट में ये फ़ील्ड शामिल होते हैं:
index: आपके अनुरोध में शिपमेंट का ज़ीरो-बेस्ड इंडेक्स (तीसरे शिपमेंट के लिए 2).label: वह लेबल जो आपने अनुरोध में दिया है ("जर्मन शेफ़र्ड").penaltyCost: अनुरोध में बताई गई पेनल्टी की लागत, जिसे एपीआई कुल लागत में जोड़ता है.
ऑप्टिमाइज़र किसी शिपमेंट को न छोड़े, इसके लिए उस शर्त को कम करें जिसकी वजह से समस्या हो रही है. उदाहरण के लिए, जर्मन शेफ़र्ड के मालिक से पिकअप के लिए ज़्यादा समय देने का अनुरोध करें. इसके बाद, अपने अनुरोध में उस पिकअप के लिए timeWindows को अपडेट करें.
उदाहरण में दिए गए रिस्पॉन्स फ़ील्ड
यहां दी गई टेबल में, उदाहरण के तौर पर दी गई स्थिति के OptimizeToursResponse में दिखाए गए सभी रिस्पॉन्स फ़ील्ड के बारे में बताया गया है. रूट प्लान को समझने के लिए, आपको हर फ़ील्ड का इस्तेमाल करने की ज़रूरत नहीं है. हालांकि, इन फ़ील्ड का विश्लेषण करके यह तय किया जा सकता है कि अपने कारोबार की ज़रूरतों के हिसाब से, OptimizeToursRequest में कैसे बदलाव किया जाए. ज़्यादा जानकारी के लिए, रूट प्लान का लाइफ़साइकल देखें.
कॉन्टेंट को पैरंट या टेक्स्ट से खोजें के हिसाब से फ़िल्टर किया जा सकता है.
| Parent | पैरामीटर | प्रॉपर्टी का टाइप | ब्यौरा |
|---|---|---|---|
OptimizeToursResponse |
routes |
ऑब्जेक्ट की कैटगरी (ShipmentRoute) |
इसमें हर वाहन के लिए तय किए गए रास्तों की सूची होती है. हर वाहन के लिए एक रास्ता तय किया जाता है. कुत्तों की देखभाल करने वाली इस सेवा के लिए, इसमें आपकी एक वैन के लिए रास्ते का पूरा प्लान शामिल है. |
metrics |
ऑब्जेक्ट (Metrics) |
इसमें समाधान के लिए कुल मेट्रिक शामिल होती हैं. इन्हें सभी रास्तों के हिसाब से एग्रीगेट किया जाता है. कुत्तों की देखभाल करने वाली इस कंपनी के लिए, यह दिन भर की लागत और ऑपरेशन की अवधि की खास जानकारी है. | |
skippedShipments |
ऑब्जेक्ट की कैटगरी (SkippedShipment) |
इसमें उन शिपमेंट की सूची होती है जिन्हें समाधान में शामिल नहीं किया गया. इस स्थिति में, तीसरे कुत्ते (जर्मन शेफ़र्ड) को छोड़ दिया जाता है. | |
ShipmentRoute |
vehicleStartTime |
टाइमस्टैंप | यह वह समय होता है, जब वाहन अपने रूट पर चलना शुरू करता है. कुत्तों की देखभाल करने वाली इस कंपनी के लिए, ड्राइवर सुबह 7:55 बजे वैन चलाना शुरू करता है. |
vehicleEndTime |
टाइमस्टैंप | यह वह समय होता है, जब वाहन अपना रूट पूरा कर लेता है. कुत्तों की देखभाल करने वाली इस सेवा के लिए, ड्राइवर सुबह 9:40 बजे वैन चलाना बंद कर देता है. | |
visits |
ऑब्जेक्ट की कैटगरी (Visit) |
यह रास्ते में पिकअप और डिलीवरी की क्रम वाली सूची है. कुत्तों की देखभाल करने वाली इस सेवा के लिए, दोनों कुत्तों को पिकअप और ड्रॉप करने का क्रम यह है. | |
transitions |
ऑब्जेक्ट की कैटगरी (Transition) |
यह विज़िट के बीच की दूरी, यात्रा, और इंतज़ार के समय की क्रम वाली सूची है. कुत्ते की देखभाल करने वाली इस जगह के लिए, इसमें कॉइट टावर, साउथ सनसेट प्लेग्राउंड पार्क, और देखभाल करने वाली जगह के बीच की ड्राइविंग दूरी और समय की जानकारी दी गई है. | |
metrics |
ऑब्जेक्ट (AggregatedMetrics) |
ये मेट्रिक, इस रूट के लिए खास तौर पर उपलब्ध हैं. कुत्तों की देखभाल करने वाली इस कंपनी के लिए, इस वैन के आंकड़े ये हैं. ये मेट्रिक, आपके अनुरोध में बताई गई लागतों पर आधारित होती हैं. ज़्यादा जानकारी के लिए, लागत मॉडल का मुख्य कॉन्सेप्ट दस्तावेज़ देखें. | |
routeCosts |
ऑब्जेक्ट (मैप) | यह इस रास्ते के लिए, किराये का ब्यौरा है. कुत्तों की देखभाल करने वाली इस सेवा के लिए, ड्राइवर को हर घंटे 27 डॉलर के हिसाब से पेमेंट किया जाता है. | |
routeTotalCost |
नंबर | यह इस रास्ते के लिए कुल शुल्क है. कुत्तों की देखभाल करने वाली इस सेवा के लिए, वैन के इस रूट की कुल लागत 47.22 है. |
|
vehicleFullness |
ऑब्जेक्ट (VehicleFullness) |
इससे पता चलता है कि वाहन, समय, दूरी, और लोड जैसी अपनी परिचालन सीमाओं के कितने करीब है. कुत्तों की देखभाल करने वाली इस सेवा के लिए, ड्राइवर को सिर्फ़ शिफ़्ट के शुरू और खत्म होने के समय के हिसाब से काम करना होता है. इसलिए, ऑप्टिमाइज़र vehicleFullness को असल रूट की अवधि और ड्राइवर की शिफ़्ट के लिए उपलब्ध ज़्यादा से ज़्यादा समय के अनुपात के तौर पर कैलकुलेट करता है. |
|
Visit |
shipmentIndex |
पूर्णांक | यह मूल अनुरोध में शिपमेंट का शून्य-आधारित इंडेक्स है. कुत्तों की देखभाल करने वाली इस जगह के लिए, 0 का मतलब बर्नीज़ माउंटेन डॉग और 1 का मतलब चिहुआहुआ है. |
isPickup |
बूलियन | अगर यह विज़िट पिकअप है, तो इस फ़ील्ड की वैल्यू 'सही' होगी. कुत्तों की देखभाल करने वाली इस सेवा के लिए, कुत्ते को पिक अप करने पर यह वैल्यू 'सही' और डेकेयर पर छोड़ने पर 'गलत' (या मौजूद नहीं) होती है. | |
startTime |
टाइमस्टैंप | यह विज़िट शुरू होने का अनुमानित समय है. कुत्तों की देखभाल करने वाली इस सेवा के लिए, यह वह समय है जब ड्राइवर दरवाज़ा खटखटाता है. | |
detour |
कुल समय | यह वह अतिरिक्त समय है जो ऑप्टिमाइज़र, इस शिपमेंट की यात्रा में जोड़ता है. डिटूर, असल रूट प्लान और सीधे रास्ते के बीच का अंतर होता है. ऐसा तब होता है, जब ड्राइवर के पास कोई दूसरा शिपमेंट या टास्क पूरा करने के लिए न हो. कुत्तों की देखभाल करने वाले इस डेकेयर के लिए, पहली विज़िट बर्निस माउंटेन डॉग को पिक अप करने के लिए है. इसके लिए, ड्राइवर को कोई अतिरिक्त दूरी तय नहीं करनी होगी, क्योंकि वह डेकेयर सेंटर से सीधे इस पिकअप के लिए जाता है. चिहुआहुआ को पिकअप करने के लिए, ड्राइवर को 43 मिनट का चक्कर लगाना पड़ता है. ऐसा इसलिए, क्योंकि ड्राइवर पहले बर्नीज़ माउंटेन डॉग को पिकअप करता है और उसे गाड़ी में बैठाने में पांच मिनट लगते हैं. |
|
shipmentLabel |
स्ट्रिंग | यह हर शिपमेंट के अनुरोध का लेबल है. कुत्तों की देखभाल करने वाली इस जगह के लिए, लेबल "चिहुआहुआ" या "बर्नीज़ माउंटेन डॉग" हैं. | |
visitType |
स्ट्रिंग (Enum) | इससे विज़िट के टाइप का पता चलता है. यह पिकअप के लिए PICKUP_SHIPMENT या डिलीवरी के लिए DELIVER_SHIPMENT हो सकता है. इस स्थिति में,
यह PICKUP_SHIPMENT या DELIVER_SHIPMENT है. |
|
Transition |
travelDuration |
कुल समय | यह एक जगह से दूसरी जगह जाने में लगने वाला समय है. उदाहरण के लिए, कुत्तों की देखभाल करने वाली इस जगह के मामले में, ड्राइवर को कुत्तों की देखभाल करने वाली जगह से कॉइट टावर तक जाने में करीब 25 मिनट लगते हैं. यहां से उसे बर्नीज़ माउंटेन डॉग को पिक अप करना है. |
travelDistanceMeters |
पूर्णांक | यह इस ट्रांज़िशन के दौरान, मीटर में तय की गई दूरी है. उदाहरण के लिए, डॉगी डेकेयर के इस मामले में, ड्राइवर डेकेयर से सात किलोमीटर दूर कॉइट टावर तक जाता है, ताकि बर्नीज़ माउंटेन डॉग को पिक अप किया जा सके. | |
waitDuration |
कुल समय | यह वह समय है जो अगले पिकअप या डिलीवरी से पहले इंतज़ार करने में बिताया गया. कुत्तों की देखभाल करने वाले इस डेकेयर सेंटर के लिए, तीसरे ट्रांज़िशन में यह समय छह मिनट (356 सेकंड) है. ऐसा इसलिए है, क्योंकि ड्राइवर, ड्रॉपऑफ़ विंडो के सुबह 9:30 बजे खुलने से पहले ही डेकेयर सेंटर पहुंच जाता है. अन्य ट्रांज़िशन के लिए, यह वैल्यू 0 है. | |
totalDuration |
कुल समय | यह ट्रांज़िशन की कुल अवधि है. इसमें ड्राइविंग और इंतज़ार करने का समय शामिल है. उदाहरण के लिए, ड्राइवर पहले ट्रांज़िशन पर 25 मिनट (25 मिनट ड्राइविंग और 0 मिनट इंतज़ार) खर्च करता है. साथ ही, डेकेयर पर वापस जाने के लिए तीसरे ट्रांज़िशन पर 27 मिनट (21 मिनट ड्राइविंग और 6 मिनट इंतज़ार) खर्च करता है. | |
startTime |
टाइमस्टैंप | यह यात्रा शुरू होने का समय है. यह पिछली विज़िट के पूरा होने के समय से मेल खाता है. इसके अलावा, पहले ट्रांज़िशन के लिए, वाहन के शुरू होने के समय से मेल खाता है. कुत्ते को डेकेयर ले जाने के उदाहरण में, पहला ट्रांज़िशन सुबह 7:55 बजे शुरू होता है, जब ड्राइवर डेकेयर से निकलता है. दूसरा ट्रांज़िशन सुबह 8:25 बजे शुरू होता है, जब ड्राइवर कॉइट टावर से निकलता है. | |
Metrics |
aggregatedRouteMetrics |
ऑब्जेक्ट (AggregatedMetrics) |
यह सभी रूट की मेट्रिक का योग है. कुत्तों की देखभाल करने वाली इस सेवा के लिए, आपकी एक वैन की कुल मेट्रिक ये हैं. |
usedVehicleCount |
पूर्णांक | यह समाधान में इस्तेमाल किए गए वाहनों की संख्या है. कुत्तों की देखभाल करने वाली इस कंपनी के लिए, सिर्फ़ एक वैन का इस्तेमाल किया जाता है. | |
earliestVehicleStartTime |
टाइमस्टैंप | यह सभी वाहनों के लिए, यात्रा शुरू करने का सबसे पहला समय है. कुत्तों की देखभाल करने वाली इस सेवा के लिए, वैन का रास्ता सुबह 7:55 बजे शुरू होता है. | |
latestVehicleEndTime |
टाइमस्टैंप | यह सभी वाहनों के लिए, खत्म होने का सबसे नया समय है. कुत्तों की देखभाल करने वाली इस सेवा के लिए, वैन का रूट सुबह 9:40 बजे खत्म होता है. | |
totalCost |
नंबर | यह समाधान की कुल लागत है. कुत्तों की देखभाल करने वाली इस सेवा के लिए, पूरे दिन के रूट प्लान की लागत 147.22 है. इसमें ड्राइवर की सैलरी 47.22 और शिपमेंट डिलीवर न करने पर लगने वाला जुर्माना 100 शामिल है. |
|
costs |
ऑब्जेक्ट (मैप) | यहां कैटगरी के हिसाब से कुल लागत की जानकारी दी गई है. कुत्तों की देखभाल करने वाली इस सेवा के लिए, ऑप्टिमाइज़र ने रास्ते की लागत का हिसाब लगाया. यह हिसाब, हर घंटे की लागत और जर्मन शेफ़र्ड को छोड़ने पर लगने वाले जुर्माने के आधार पर लगाया गया. | |
AggregatedMetrics |
performedShipmentCount |
पूर्णांक | यह सही तरीके से रूट किए गए शिपमेंट की संख्या है. डॉग डेकेयर की इस स्थिति में, ड्राइवर दो कुत्तों को ले जाता है. |
travelDuration |
कुल समय | यह यात्रा में बिताया गया कुल समय है. कुत्तों की देखभाल करने वाली इस सेवा के लिए, ड्राइवर को 79 मिनट तक यात्रा करनी होगी. | |
waitDuration |
कुल समय | यह इंतज़ार करने में बिताया गया कुल समय है. कुत्तों की देखभाल करने वाले इस डेकेयर सेंटर के उदाहरण में, ड्राइवर डेकेयर सेंटर पर छह मिनट (356 सेकंड) तक इंतज़ार करता है, ताकि ड्रॉपऑफ़ विंडो खुल सके. | |
delayDuration |
कुल समय | यह वह अतिरिक्त समय है जिसे ट्रांज़िशन एट्रिब्यूट का इस्तेमाल करके तय किया जाता है. जैसे, पार्किंग के लिए रिज़र्व किया गया समय. कुत्तों की देखभाल करने वाली इस सेवा के लिए, आपने अनुरोध में कोई ट्रांज़िशन एट्रिब्यूट तय नहीं किया है. इसलिए, यह वैल्यू शून्य है. | |
breakDuration |
कुल समय | यह ब्रेक पर बिताया गया कुल समय है. कुत्तों की देखभाल करने वाली इस कंपनी के लिए, कोई ब्रेक नहीं है. | |
visitDuration |
कुल समय | यह विज़िट के दौरान, सेवाएं देने में बिताया गया कुल समय होता है. कुत्तों की देखभाल करने वाली इस सेवा के लिए, यह समय 20 मिनट है. इसमें चार विज़िट के लिए, हर विज़िट में पांच मिनट का समय शामिल है. | |
totalDuration |
कुल समय | यह अवधि के सभी कॉम्पोनेंट का योग है. कुत्तों की देखभाल करने वाली इस सेवा के लिए, कुल अवधि 105 मिनट (6,296 सेकंड) है. | |
travelDistanceMeters |
पूर्णांक | यह मीटर में तय की गई कुल दूरी है. कुत्ते की देखभाल करने वाली इस सेवा के लिए, ड्राइवर कुल 31.5 कि॰मी॰ की दूरी तय करता है. | |
performedShipmentPenaltyCostSum |
डबल | यह शिपमेंट के लिए तय की गई सभी पेनल्टी का कुल योग होता है. इस मामले में, यह 2000 है, क्योंकि ड्राइवर ने बर्नीज़ माउंटेन डॉग और चिहुआहुआ को पिक किया. इनमें से हर एक के लिए पेनल्टी की कीमत 1000 है. |
|
VehicleFullness |
maxFullness |
नंबर | यह VehicleFullness के सभी फ़ील्ड में, इस्तेमाल का सबसे ज़्यादा अनुपात है. कुत्तों की देखभाल करने वाली इस सेवा के लिए, यह वैल्यू 0.35 है. इसकी वजह यह है कि ड्राइवर, सुबह की पूरी शिफ़्ट के दौरान सिर्फ़ 105 मिनट के लिए वैन चलाता है. आपने अनुरोध में इस शिफ़्ट को पांच घंटे के तौर पर तय किया है. |
activeSpan |
नंबर | यह ड्राइवर की कुल शिफ़्ट की अवधि और रूट प्लान के ऑपरेटिंग घंटों के बीच का अनुपात है. कम संख्या का मतलब है कि ड्राइवर, कामकाजी दिन का कम समय वाहन चलाने में बिताता है. कुत्तों की देखभाल करने वाली कंपनी के इस उदाहरण में, यह वैल्यू 0.35 है. इसकी वजह यह है कि ड्राइवर, पांच घंटे की शिफ़्ट के दौरान 105 मिनट तक वैन चलाता है. | |
SkippedShipment |
index |
पूर्णांक | यह मूल अनुरोध में शिपमेंट का शून्य-आधारित इंडेक्स है. इस उदाहरण में, 2 जर्मन शेफ़र्ड को दिखाता है. |
label |
स्ट्रिंग | यह वह लेबल है जो आपने अनुरोध में शिपमेंट के लिए तय किया है. | |
penaltyCost |
नंबर | यह वह जुर्माना है जो ऑप्टिमाइज़र के इस शिपमेंट को छोड़ने पर आपको चुकाना पड़ता है. यह आपके अनुरोध में बताए गए penaltyCost से मेल खाता है. |