रूटिंग विकल्प

इस सेक्शन में, रूटिंग सॉल्वर के कुछ विकल्पों के बारे में बताया गया है.

खोज की सीमा

खोज की सीमाएं तय सीमा तक पहुंचने पर, सॉल्वर को खत्म कर देती हैं. जैसे, समय की अधिकतम अवधि, या मिले समाधानों की संख्या. खोजने की सुविधा सेट की जा सकती है सॉल्वर के खोज पैरामीटर से सीमा तय करें. यहां जाएं: उदाहरण के लिए, समयसीमाएं.

नीचे दी गई टेबल में, खोज की सबसे सामान्य सीमाओं के बारे में बताया गया है.

नाम टाइप डिफ़ॉल्ट ब्यौरा
solution_limit int64 kint64max समाधानों की संख्या तक सीमित रहें खोज के दौरान जनरेट हुआ.
time_limit.seconds int64 kint64max बिताए गए समय तक सेकंड में सीमित करें : खोज में.
lns_time_limit.seconds int64 100 में बिताए गए समय तक सेकंड में सीमित करें : हर स्थानीय खोज पड़ोसी के लिए पूरी खोज.

पहले समाधान की रणनीति

पहली समाधान रणनीति वह तरीका है जिसका इस्तेमाल करके सॉल्वर शुरुआती कीमत तय करता है समाधान. नीचे दी गई टेबल में, first_solution_strategy के लिए विकल्प दिए गए हैं.

विकल्प ब्यौरा
AUTOMATIC इससे सॉल्वर को यह पता लगाने में मदद मिलती है कि नतीजों के हिसाब से किस रणनीति का इस्तेमाल किया जाए समस्या को हल करना है.
PATH_CHEAPEST_ARC "शुरू" रूट से शुरू हो रहा है नोड, इसे वह नोड जो सबसे सस्ता रास्ता सेगमेंट बनाता है, उसके बाद रास्ते को इतना बढ़ाएं रूट में जोड़े गए आखिरी नोड पर दोहराना.
PATH_MOST_CONSTRAINED_ARC PATH_CHEAPEST_ARC के समान, लेकिन चाप हैं का आकलन करते समय, तुलना पर आधारित सिलेक्टर का इस्तेमाल करें. इससे लोगों को सबसे ज़्यादा कंस्ट्रेंट आर्क पहले. रूटिंग मॉडल के लिए कोई सिलेक्टर असाइन करने के लिए, तरीका ArcIsMoreConstrainedThanArc().
EVALUATOR_STRATEGY PATH_CHEAPEST_ARC के बराबर है, सिवाय इसके कि चाप की लागत का आकलन करने के लिए, SetFirstSolutionEvaluator().
SAVINGS बचत एल्गोरिदम (क्लार्क एंड राइट). रेफ़रंस क्लार्क, जी॰ & जॉन डब्ल्यू॰ राइट "सेंट्रल डिपो से लेकर डिलीवरी पॉइंट की संख्या तक वाहनों को शेड्यूल करना" , ऑपरेशंस रिसर्च, वॉल्यूम 12, 1964, पेज 568-581.
SWEEP स्वीप एल्गोरिदम (रेन और हॉलीडे). रेफ़रंस एंथनी व्रेन और एलन हॉलिडे कंप्यूटर वाहनों की शेड्यूल करने की सेवा एक या उससे ज़्यादा डिपो से लेकर डिलीवरी पॉइंट की संख्या तक रिसर्च तिमाही (1970-1977), वॉल्यूम 23, नंबर 3 (सितंबर, 1972), पेज 333-344.
CHRISTOFIDES क्रिस्टोफ़ाइड्स एल्गोरिदम (वास्तव में क्रिस्टोफ़ाइड एल्गोरिदम, ज़्यादा से ज़्यादा मिलान, जो अनुमान के 3/2 फ़ैक्टर की गारंटी नहीं देता मेट्रिक ट्रैवलिंग सेल्सपर्सन). यह सुविधा, वाहन के सामान्य रूटिंग मॉडल पर काम करती है: रूट को तब तक बढ़ाना, जब तक उसमें कोई नोड नहीं डाला जा सके. रेफ़रंस निकोस क्रिस्टोफ़ाइड्स का रेफ़रंस, द ट्रैवलिंग सेल्समैन प्रॉब्लम, रिपोर्ट 388, ग्रैजुएट स्कूल ऑफ़ इंडस्ट्रियल एडमिनिस्ट्रेशन, सीएमयू, 1976.
ALL_UNPERFORMED सभी नोड बंद करें. समाधान सिर्फ़ तब मिलता है, जब नोड विकल्प के तौर पर दी गई हैं. ये सीमित पेनल्टी कॉस्ट के साथ डिसजंक्शन कंस्ट्रक्शन का हिस्सा हैं.
BEST_INSERTION सबसे सस्ता प्रॉडक्ट डालकर, बार-बार समाधान बनाना नोड की सबसे कम पोज़िशन; इंसर्शन की लागत ग्लोबल होती है रूटिंग मॉडल का कॉस्ट फ़ंक्शन. 2/2012 तक, सिर्फ़ ऐसे मॉडल पर काम करता है जिनमें वैकल्पिक नोड (सीमित पेनल्टी लागत के साथ).
PARALLEL_CHEAPEST_INSERTION इसे बार-बार एक नया समाधान बनाकर, सबसे सस्ता नोड अपनी सबसे कम पोज़िशन पर है; इंसर्शन की लागत इस आधार पर होती है कि आर्क कॉस्ट फ़ंक्शन का इस्तेमाल करना होगा. BEST_INSERTION से ज़्यादा तेज़ है.
LOCAL_CHEAPEST_INSERTION हर चरण को शामिल करके, बार-बार एक समाधान बनाएं नोड की सबसे कम पोज़िशन; इंसर्शन की लागत आर्क पर आधारित होती है लागत फ़ंक्शन. नोड के हिसाब से PARALLEL_CHEAPEST_INSERTION से फ़र्क़ इंसर्शन के लिए चुना गया; यहां नोड उनके क्रम के हिसाब से माने जाते हैं बनाना. PARALLEL_CHEAPEST_INSERTION से ज़्यादा तेज़ है.
GLOBAL_CHEAPEST_ARC दो नोड को बार-बार कनेक्ट करते हैं, जो सबसे सस्ते रास्ते का सेगमेंट.
LOCAL_CHEAPEST_ARC अनबाउंड सक्सेसर वाले पहले नोड को चुनें और इसे उस नोड से कनेक्ट करें जो सबसे सस्ते रास्ते का सेगमेंट बनाता है.
FIRST_UNBOUND_MIN_VALUE अबाधित उत्तराधिकारी वाला पहला नोड चुनें और इसे पहले उपलब्ध नोड से कनेक्ट करें. यह CHOOSE_FIRST_UNBOUND रणनीति को ASSIGN_MIN_VALUE (cf. कंस्ट्रट_solver.h).

स्थिति खोजें

रूटिंग मॉडल के status तरीके का इस्तेमाल करके, किसी खोज का स्टेटस दिखाया जा सकता है. खोज का स्टेटस प्रिंट करने के लिए Python कोड यहां दिया गया है:

print("Solver status: ", solver.status())

यह इन मतलब वाले पूर्णांक को प्रिंट करता है:

मान ब्यौरा
0 ROUTING_NOT_SOLVED: समस्या अभी तक हल नहीं हुई है.
1 ROUTING_SUCCESS: समस्या हल हो गई.
2 ROUTING_PARTIAL_SUCCESS_LOCAL_OPTIMUM_NOT_REACHED: समस्या हल हो गई RoutingModel.Solve() पर कॉल करने के बाद सफलतापूर्वक अधिकतम सीमा पूरी नहीं हुई है. ज़्यादा समय देने से, समाधान.
3 ROUTING_FAIL: समस्या का कोई समाधान नहीं मिला.
4 ROUTING_FAIL_TIMEOUT: समाधान खोजने की समयसीमा पूरी हो गई.
5 ROUTING_INVALID: मॉडल, मॉडल पैरामीटर या फ़्लैग मान्य नहीं हैं.
6 ROUTING_INFEASIBLE: समस्या नामुमकिन है.

आस-पास के नतीजे दिखाने वाली खोज के विकल्प

नीचे दी गई टेबल में, स्थानीय खोज रणनीतियों के विकल्प दिए गए हैं. इन्हें metaheuristics). खोज रणनीति बदलना देखें देखें.

विकल्प ब्यौरा
AUTOMATIC सॉल्वर को मेटाह्यूरिस्टिक चुनने की सुविधा देता है.
GREEDY_DESCENT स्थानीय सर्च आस-पड़ोस के लिए तब तक सुधार (लागत में कमी) करता है, जब तक एक स्थानीय यह सीमा पूरी हो गई है.
GUIDED_LOCAL_SEARCH स्थानीय मिनिमा से बचने के लिए निर्देशित स्थानीय खोज का उपयोग करता है. (cf. गाइडेड लोकल सर्च) यह आम तौर पर, वाहन रूटिंग के लिए सबसे बेहतर मेटाह्युरिस्टिक है.
SIMULATED_ANNEALING स्थानीय मिनिमा से बचने के लिए नकली एनीलिंग का इस्तेमाल किया जाता है (cf. सिम्युलेटेड एनालिंग).
TABU_SEARCH स्थानीय मिनिमा (cf. Tabu Search).
GENERIC_TABU_SEARCH लोकल से बचने के लिए, समाधान की मकसद वैल्यू पर टैबू सर्च का इस्तेमाल करता है मिनीमा.

प्रोपेगेशन कंट्रोल

नाम टाइप डिफ़ॉल्ट ब्यौरा
use_full_propagation बूल सही पूरी तरह लागू होने वाले कंस्ट्रेंट का इस्तेमाल करना रूटिंग मॉडल में (सिर्फ़ रोशनी के प्रचार के बजाय). हो गया जानकारी दिखाने की ज़रूरत सिर्फ़ तब पड़ती है, जब 'डेप्थ-फ़र्स्ट सर्च' या मॉडल का इस्तेमाल किया जा रहा हो जिसमें सेकंडरी डेटा की वैल्यू को तय करने के लिए, खास तरीके से प्रमोशन करने की ज़रूरत होती है. वैरिएबल. इस सेटिंग को 'सही है' पर बदलने से, और सभी मामलों में मेमोरी की खपत बढ़ाने के लिए तैयार हैं.