अनुरोध में शामिल समाधान शामिल किया गया जिसमें यह जानकारी शामिल है कि कौनसी विज़िट सीमित होनी चाहिए और उन्हें कैसे सीमित किया जाना चाहिए.
JSON के काेड में दिखाना |
---|
{ "routes": [ { object ( |
फ़ील्ड | |
---|---|
routes[] |
सलूशन इंजेक्ट करने के लिए रूट तय करना. ऐसा हो सकता है कि कुछ रूट को ओरिजनल सलूशन में शामिल न किया जाए. रूट और स्किप किए गए शिपमेंट, |
skippedShipments[] |
समाधान को इंजेक्ट करने के लिए शिपमेंट को स्किप किया गया. कुछ समस्याओं को मूल समाधान से हटाया जा सकता है. |
constraintRelaxations[] |
वाहनों के शून्य या उससे ज़्यादा ग्रुप के लिए, यह बताता है कि कब और कितनी आराम करना है. अगर यह फ़ील्ड खाली है, तो वाहन के ऐसे सभी रास्ते पूरी तरह से सीमित हो जाते हैं जो खाली नहीं हैं. |
ConstraintRelaxation
वाहनों के ग्रुप के लिए, इससे यह तय होता है कि विज़िट पर लगी किस थ्रेशोल्ड(सीमाओं) में छूट को कम किया जाएगा और किस लेवल तक. skipped_shipment
फ़ील्ड में मौजूद शिपमेंट को छोड़ा जा सकता है; इसका मतलब है कि इन्हें पूरा नहीं किया जा सकता.
JSON के काेड में दिखाना |
---|
{
"relaxations": [
{
object ( |
फ़ील्ड | |
---|---|
relaxations[] |
|
vehicleIndices[] |
वाहन के उन इंडेक्स की जानकारी देता है जिन पर विज़िट की सीमा अगर |
सुकून देने वाले
अगर relaxations
खाली है, तो routes
पर सभी विज़िट के शुरू होने का समय और क्रम पूरी तरह सीमित हैं. साथ ही, उन रास्तों पर कोई नई विज़िट शामिल नहीं की जा सकती या उसे जोड़ा नहीं जा सकता. साथ ही, routes
में वाहन के शुरू और खत्म होने का समय पूरी तरह सीमित होता है.ऐसा तब तक होता है, जब तक वाहन खाली न हो. इसका मतलब है कि इस पर कोई विज़िट नहीं किया गया है और मॉडल में usedIfRouteIsEmpty
को 'गलत' पर सेट किया गया है.
relaxations(i).level
, शर्तों को पूरा करने वाली विज़िट #j पर लागू किए गए कंस्ट्रेंट रिलैक्सेशन लेवल के बारे में बताता है:
route.visits(j).start_time >= relaxations(i).threshold_time
औरj + 1 >= relaxations(i).threshold_visit_count
इसी तरह, वाहन को इन शर्तों के मुताबिक होने पर, relaxations(i).level
को स्टार्ट किया जाना चाहिए:
vehicleStartTime >= relaxations(i).threshold_time
औरrelaxations(i).threshold_visit_count == 0
और वाहन का छोरrelaxations(i).level
है, अगर यह इन शर्तों के मुताबिक है:vehicleEndTime >= relaxations(i).threshold_time
औरroute.visits_size() + 1 >= relaxations(i).threshold_visit_count
अगर कोई विज़िट, thresholdVisitCount
से मिलती है या thresholdTime
में एक ही level
के साथ दो relaxations
जोड़ें, तो आराम का लेवल लागू करने के लिए: एक में सिर्फ़ thresholdVisitCount
सेट और दूसरे में सिर्फ़ thresholdTime
सेट हो. अगर कोई विज़िट, एक से ज़्यादा relaxations
की शर्तें पूरी करती है, तो सबसे आरामदेह लेवल लागू होता है. इस वजह से, वाहन के शुरू होने से लेकर वाहन के खत्म होने तक, सफ़र में आराम करने का लेवल ज़्यादा आसान हो जाता है. इसका मतलब है कि रास्ते के आगे बढ़ने के साथ-साथ, आराम का लेवल कम नहीं होता.
किसी भी relaxations
की थ्रेशोल्ड शर्तों को पूरा नहीं करने वाली रूट विज़िट का समय और क्रम पूरी तरह से सीमित हैं और इन क्रमों में कोई विज़िट नहीं डाली जा सकती है. साथ ही, अगर वाहन का स्टार्ट या एंड, किसी भी आराम की शर्तों के मुताबिक नहीं है, तो इसके लिए समय भी तय किया जा सकता है. हालांकि, वाहन को खाली छोड़ा नहीं जा सकता.
JSON के काेड में दिखाना |
---|
{
"level": enum ( |
फ़ील्ड | |
---|---|
level |
कंस्ट्रेंट रिलैक्सेशन का वह लेवल तब लागू होता है, जब |
thresholdTime |
वह समय जब या उसके बाद छूट आरएफ़सी3339 यूटीसी "ज़ुलु" में टाइमस्टैंप फ़ॉर्मैट, नैनोसेकंड रिज़ॉल्यूशन और ज़्यादा से ज़्यादा नौ फ़्रैक्शनल अंकों के साथ हो सकता है. उदाहरण: |
thresholdVisitCount |
उन विज़िट की संख्या जिनके लिए या उनके बाद, अगर यह |
लेवल
विज़िट के लिए लागू होने वाले कंस्ट्रेंट के अलग-अलग लेवल के बारे में बताता है और वे लेवल दिखाता है जो थ्रेशोल्ड की शर्तों को पूरा करने के बाद लागू होते हैं.
नीचे दी गई सूची, राहत देने के मकसद से दी गई है.
Enums | |
---|---|
LEVEL_UNSPECIFIED |
इंप्लिसिट डिफ़ॉल्ट रिलैक्सेशन लेवल: कोई भी शर्त आसानी से नहीं हटाई जाती है. इसका मतलब है कि सभी विज़िट पर पूरी तरह से पाबंदी लगी होती है.
|
RELAX_VISIT_TIMES_AFTER_THRESHOLD |
विज़िट शुरू होने के समय और वाहन के शुरू/खत्म होने के समय में छूट दी जाएगी. हालांकि, हर विज़िट एक ही वाहन से जुड़ी होगी और विज़िट का क्रम देखा जाना चाहिए: उनके बीच या उनसे पहले कोई विज़िट नहीं डाली जा सकती. |
RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD |
RELAX_VISIT_TIMES_AFTER_THRESHOLD की तरह ही, लेकिन विज़िट का क्रम भी आसान है: विज़िट का दायरा सिर्फ़ उनके वाहन तक सीमित रहता है. |
RELAX_ALL_AFTER_THRESHOLD |
RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD की तरह ही, लेकिन वाहन में भी आराम मिलता है: तय समय पर या उसके बाद, यात्रा पूरी तरह से मुफ़्त है. ऐसा भी हो सकता है कि इस दौरान, यात्रा के लिए कोई शुल्क न लिया जाए. |