इस सेक्शन में, रूटिंग सॉल्वर के कुछ विकल्पों के बारे में बताया गया है.
खोज की सीमा
खोज की सीमाएं तय सीमा तक पहुंचने पर, सॉल्वर को खत्म कर देती हैं. जैसे, समय की अधिकतम अवधि, या मिले समाधानों की संख्या. खोजने की सुविधा सेट की जा सकती है सॉल्वर के खोज पैरामीटर से सीमा तय करें. यहां जाएं: उदाहरण के लिए, समयसीमाएं.
नीचे दी गई टेबल में, खोज की सबसे सामान्य सीमाओं के बारे में बताया गया है.
नाम | टाइप | डिफ़ॉल्ट | ब्यौरा |
---|---|---|---|
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
|
बूल | सही | पूरी तरह लागू होने वाले कंस्ट्रेंट का इस्तेमाल करना रूटिंग मॉडल में (सिर्फ़ रोशनी के प्रचार के बजाय). हो गया जानकारी दिखाने की ज़रूरत सिर्फ़ तब पड़ती है, जब 'डेप्थ-फ़र्स्ट सर्च' या मॉडल का इस्तेमाल किया जा रहा हो जिसमें सेकंडरी डेटा की वैल्यू को तय करने के लिए, खास तरीके से प्रमोशन करने की ज़रूरत होती है. वैरिएबल. इस सेटिंग को 'सही है' पर बदलने से, और सभी मामलों में मेमोरी की खपत बढ़ाने के लिए तैयार हैं. |