मकसद ऐसे पैरामीटर होते हैं जिनका इस्तेमाल, लागत मॉडल से खास लागत पैरामीटर देने के बजाय, ऑप्टिमाइज़ेशन के बड़े लक्ष्यों को तय करने के लिए किया जा सकता है.
एक ही अनुरोध में एक से ज़्यादा लक्ष्य इस्तेमाल किए जा सकते हैं. साथ ही, हर लक्ष्य को एक रिलेटिव वेट दिया जा सकता है, ताकि यह कंट्रोल किया जा सके कि वह कुल ऑप्टिमाइज़ेशन पर कितना असर डालता है. लक्ष्यों का असर आपके पूरे अनुरोध पर पड़ता है. इससे आपके सभी वाहनों और शिपमेंट पर असर पड़ता है. आखिर में, लागत मॉडल जनरेट करना में बताए गए तरीके से, अपने लागत मॉडल को डेवलप करने के लिए भी लक्ष्यों का इस्तेमाल किया जा सकता है.
लक्ष्यों का इस्तेमाल करके, अपने रूट प्लान पर इन चीज़ों के असर को कंट्रोल किया जा सकता है:
- आपके रास्तों की कुल यात्रा में लगने वाला समय या दूरी.
- सभी वाहनों के काम करने का कुल समय.
- इस्तेमाल किए गए वाहनों की कुल संख्या.
प्रॉपर्टी
objectives प्रॉपर्टी, Objective मैसेज टाइप का कलेक्शन है. यह ShipmentModel में मौजूद होता है. हर Objective, ऑप्टिमाइज़ेशन के किसी खास लक्ष्य के बारे में बताता है. इसमें यहां दी गई टेबल में मौजूद फ़ील्ड शामिल होते हैं:
| फ़ील्ड | टाइप | ब्यौरा |
|---|---|---|
type |
Enum |
यह पहले से तय किए गए ऑप्टिमाइज़ेशन टारगेट के बारे में बताता है. इन वैल्यू का इस्तेमाल किया जा सकता है:
|
weight |
डबल |
इससे इस लक्ष्य की अहमियत का पता चलता है. एक से ज़्यादा मकसद इस्तेमाल करते समय, weight वैल्यू से यह कंट्रोल किया जाता है कि यह खास मकसद, अन्य मकसद की तुलना में पूरे रूट ऑप्टिमाइज़ेशन पर कितना असर डालता है. यह कोई भी नॉन-नेगेटिव नंबर हो सकता है. साथ ही, यह ज़रूरी नहीं है कि इसका योग 1 हो. डिफ़ॉल्ट वैल्यू 1.0 है.
|
उदाहरण
इस सेक्शन में, दो तरह के उदाहरण दिए गए हैं:
objectivesकलेक्शन के स्ट्रक्चर को दिखाने वाला कोड सैंपल.- अनुरोध का ऐसा उदाहरण जिसमें
objectivesअरे शामिल हो.
कोड सैंपल
यहां दिए गए उदाहरण में, objectives का स्ट्रक्चर दिखाया गया है:
"objectives": [
{
"type": "OBJECTIVE_TYPE",
"weight": WEIGHT
}
]
अनुरोध का उदाहरण
यहां दिए गए उदाहरण में, optimizeTours की बुनियादी संरचना दिखाई गई है. इसमें कई लक्ष्यों को शामिल किया गया है. साथ ही, इसमें बताया गया है कि MIN_TRAVEL_TIME, MIN_WORKING_TIME से तीन गुना ज़्यादा ज़रूरी है.
{ "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.42506261000996, "longitude": -122.09535511930135 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.42421503206021, "longitude": -122.09526063135228 } } ] } ], "vehicles": [ { "travelMode": "DRIVING" } ], "objectives": [ { "type": "MIN_TRAVEL_TIME", "weight": 3.0 }, { "type": "MIN_WORKING_TIME" } ] } }
लागत मॉडल जनरेट करना
मदद से ऑप्टिमाइज़ेशन के टारगेट सेट किए जा सकते हैं. हालांकि, कुछ मामलों में ये टारगेट काफ़ी नहीं होते. अपने राउटिंग के लक्ष्यों को पूरा करने के लिए, आपको सिर्फ़ लागत मॉडल के पैरामीटर के ज़रिए उपलब्ध बेहतर कंट्रोल की ज़रूरत पड़ सकती है.
अपने अनुरोध में लक्ष्य जोड़कर, अपने लागत मॉडल का डेवलपमेंट शुरू किया जा सकता है. इसके बाद, TRANSFORM_AND_RETURN_REQUEST हल करने के मोड का इस्तेमाल करके, अपने अनुरोध में मौजूद लक्ष्यों को लागत मॉडल के पैरामीटर में बदला जा सकता है.
इस मोड का इस्तेमाल करके अनुरोध भेजने पर, यह होता है:
- एपीआई, आपके लक्ष्यों को लागत मॉडल के पैरामीटर में बदलता है और उन्हें
processedRequestमें दिखाता है. इसके बाद, अपने रूट प्लान को बेहतर बनाने के लिए, ज़रूरत के हिसाब से लागत मॉडल के पैरामीटर में बदलाव किया जा सकता है. - एक से ज़्यादा लक्ष्यों का इस्तेमाल करने पर, एपीआई आपके सभी लक्ष्यों की लागतों को एक साथ जोड़ता है और उन्हें उनके वज़न के हिसाब से स्केल करता है.
- इस अनुरोध के लिए, आपसे कोई शुल्क नहीं लिया जाता. ऐसा इसलिए, क्योंकि एपीआई आपको ऑप्टिमाइज़ किया गया रूट नहीं देता. यह सिर्फ़ लक्ष्यों को लागत मॉडल के पैरामीटर में बदलता है.
अनुरोध का उदाहरण
इस उदाहरण में, MIN_TRAVEL_TIME ऑब्जेक्टिव और TRANSFORM_AND_RETURN_REQUEST मोड का इस्तेमाल करके किया गया अनुरोध दिखाया गया है:
{ "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.42506261000996, "longitude": -122.09535511930135 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.42421503206021, "longitude": -122.09526063135228 } } ] } ], "vehicles": [ { "travelMode": "DRIVING" } ], "objectives": [ { "type": "MIN_TRAVEL_TIME" } ] }, "solvingMode": "TRANSFORM_AND_RETURN_REQUEST" }
जवाब का उदाहरण
पिछले अनुरोध के हिसाब से जवाब यहां दिया गया है. इस जवाब में, जनरेट किए गए लागत मॉडल के पैरामीटर और रेफ़रंस के लिए मूल मकसद, दोनों शामिल हैं.
{ "processedRequest": { "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.425062610009959, "longitude": -122.09535511930135 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.424215032060211, "longitude": -122.09526063135228 } } ] } ], "vehicles": [ { "travelMode": "DRIVING", "costPerHour": 30, "costPerTraveledHour": 330, "costPerKilometer": 0.2 } ], "objectives": [ { "type": "MIN_TRAVEL_TIME" } ] }, "solvingMode": "TRANSFORM_AND_RETURN_REQUEST" } }