बैकट्रैकिंग, शाखा-व-परिबंध व निम्न सीमा सिद्धांत
बैकट्रैकिंग
बैकट्रैकिंग हल को वृद्धिशील रूप से बनाता है, एक बार में एक चुनाव, व आंशिक हल को उसी क्षण त्याग देता ('बैकट्रैक करता') है जब वह अमान्य या निराशाजनक सिद्ध हो सकता हो — उसे विस्तारित करते रहने व केवल अंत में जाँचने के बजाय। यही छंटाई बैकट्रैकिंग को हर पूर्ण प्रत्याशी की भोली प्रत्यक्ष-बल परिगणना से अलग करती है: बुरा आंशिक चुनाव उसे पूर्ण करने के (प्रायः घातांकी रूप से अनेक) तरीकों के कभी उत्पन्न होने से पहले त्याग दिया जाता है। N-रानी समस्या विहित उदाहरण है — रानियों को स्तंभ-दर-स्तंभ रखना व किसी पहले-रखी रानी पर आक्रमण करती स्तंभ-स्थिति को तुरंत अस्वीकार करना, न कि सभी N रानियाँ पहले रखकर बाद में पूरा बोर्ड जाँचना।
शाखा-व-परिबंध
शाखा-व-परिबंध भी आंशिक हलों का खोज-वृक्ष खोजता है, पर यह अनुकूलन समस्याओं को लक्षित करता है (केवल कोई वैध हल नहीं, सर्वश्रेष्ठ हल खोजें) व केवल वैधता-जाँच के बजाय संख्यात्मक सीमा से छाँटता है: हर नोड पर यह उस आंशिक हल से पहुँचने योग्य सर्वश्रेष्ठ संभव उद्देश्य-मान की सीमा गणित करता है (अधिकतमीकरण हेतु ऊर्ध्व सीमा, न्यूनतमीकरण हेतु अधो सीमा), व यदि वह सीमा अब तक मिले सर्वश्रेष्ठ पूर्ण हल को न हरा सके, तो उस नोड के नीचे का पूरा उपवृक्ष बिना खोजे त्याग दिया जाता है — यह ठीक वही तकनीक है जो इकाई 1 के अनुकूलन अध्याय में पूर्णांक प्रोग्रामन के LP-शिथिलन सीमा हेतु पहले ही प्रस्तुत की गई, यहाँ LP-विशिष्ट के बजाय सामान्य कलनविधि-अभिकल्प तकनीक के रूप में लागू।
| गुण | बैकट्रैकिंग | शाखा-व-परिबंध |
|---|---|---|
| समस्या-प्रकार | निर्णय/सुसंगति (कोई भी वैध हल, या सभी) | अनुकूलन (एकल सर्वश्रेष्ठ हल) |
| छंटाई परीक्षण | क्या यह आंशिक अवस्था अभी भी वैध/सुसंगत है? | क्या इस आंशिक अवस्था की सीमा अब तक मिले सर्वश्रेष्ठ हल को हरा सकती है? |
निम्न सीमा सिद्धांत: तुलना-वृक्ष व न्यूनन
- तुलना-वृक्ष (निर्णय-वृक्ष) किसी भी तुलना-आधारित कलनविधि को द्विआधारी वृक्ष के रूप में प्रतिरूपित करता है: हर आंतरिक नोड एक तुलना है, हर पत्ती एक संभव अंतिम परिणाम/निर्गम, व कलनविधि का निकृष्टतम-स्थिति चलने का समय कम-से-कम वृक्ष की ऊँचाई है, क्योंकि कोई निवेश उतने लंबे मूल-से-पत्ती पथ पर विवश करता है। चूँकि ऊँचाई h वाले द्विआधारी वृक्ष की अधिकतम 2^h पत्तियाँ होती हैं, व कलनविधि को कम-से-कम उतनी पत्तियाँ चाहिए जितने भिन्न संभव निर्गम हैं, ऊँचाई ≥ log₂(संभव निर्गमों की संख्या) — यही ठीक वह तर्क है जो सिद्ध करता है कि तुलना-आधारित वर्गीकरण को निकृष्टतम स्थिति में Ω(n log n) तुलनाएँ चाहिए: n! संभव क्रम हैं, अतः स्टर्लिंग सन्निकटन से ऊँचाई ≥ log₂(n!) = Ω(n log n)।
- न्यूनन से निम्न सीमाएँ: यह सिद्ध करने हेतु कि समस्या B कम-से-कम पहले से ज्ञात-कठिन समस्या A जितनी कठिन है, दिखाएँ कि A को A के किसी दृष्टांत को (परिबद्ध लागत पर) B के दृष्टांत में रूपांतरित कर व B हेतु किसी काल्पनिक कलनविधि को बुलाकर हल किया जा सकता है — यदि B को A की ज्ञात निम्न सीमा (प्लस सस्ती रूपांतरण-लागत) से तेज़ हल किया जा सकता, तो A भी हो सकता, A के विषय में पहले से ज्ञात के विरुद्ध जाते हुए। यही न्यूनन-विचार सम्पूर्ण जटिलता-सिद्धांत में प्रयुक्त होता है (अगले अध्याय में NP-पूर्णता प्रमाणों सहित), यहाँ केवल किसी निर्णय-समस्या को वर्गीकृत करने के बजाय निम्न सीमा सिद्ध करने पर लक्षित।
हल किए उदाहरण: N-रानी, 0/1 नैपसैक व सुडोकू
- बैकट्रैकिंग से N-रानी: प्रति पंक्ति एक रानी रखें, उस पंक्ति में स्तंभ-दर-स्तंभ। रखने से पहले, नई स्थिति को हर पहले-रखी रानी के विरुद्ध समान-स्तंभ या समान-विकर्ण टकराव हेतु जाँचें (पंक्ति/स्तंभ/विकर्ण अंतर से प्रति-जाँच O(1) परीक्षण); टकराव पर, उस पंक्ति में अगला स्तंभ आज़माएँ; यदि वर्तमान पंक्ति में कोई स्तंभ काम न करे, पिछली पंक्ति पर बैकट्रैक करें व उसका अगला विकल्प आज़माएँ।
- शाखा-व-परिबंध से 0/1 नैपसैक: हर नोड पर (वस्तुओं के किसी उपसर्ग पर आंशिक निर्णय), मान-भार अनुपात से क्रमित शेष वस्तुओं के भिन्नात्मक शिथिलन से प्राप्य मान की ऊर्ध्व सीमा गणित करें (वही लोभी सीमा जिसे भिन्नात्मक नैपसैक ठीक-ठीक हल करता है) — चूँकि यह भिन्नात्मक सीमा उस नोड से पहुँचने योग्य वास्तविक 0/1 इष्टतम से सदा कम-से-कम उतनी है, जिस भी नोड की सीमा अब तक मिले सर्वश्रेष्ठ 0/1 हल से नीचे गिरे उसे पूर्णतः छाँटा जा सकता है।
- बैकट्रैकिंग से सुडोकू: कोष्ठिकाएँ स्थिर क्रम में भरें; अंक रखने से पहले, दोहराव हेतु पंक्ति, स्तंभ व 3×3 बॉक्स जाँचें — एक तत्काल, सस्ती प्रतिबंध-जाँच जो खोज-वृक्ष के विशाल भाग को उसके कभी उत्पन्न होने से पहले ही त्याग देती है, यही ठीक वह छंटाई-प्रबलता का मुद्दा है जो पहले के टिप्पण से आया।
मुख्य बिंदु
- बैकट्रैकिंग आंशिक हल को उसी क्षण त्याग देता है जब वह सिद्ध रूप से अमान्य हो, संपूर्ण परिगणना से पहले छाँटते हुए; दुर्बल छंटाई-नियम इसे प्रत्यक्ष-बल की ओर अपकर्षित करता है।
- शाखा-व-परिबंध अनुकूलन-समस्या के उपवृक्ष अब तक मिले सर्वश्रेष्ठ पूर्ण हल के विरुद्ध तुलनित संख्यात्मक सीमा से छाँटता है — पूर्णांक प्रोग्रामन के LP-शिथिलन सीमा वाला ही विचार, सामान्यीकृत।
- तुलना-वृक्ष की ऊँचाई तुलना-आधारित कलनविधि की निकृष्टतम स्थिति की निम्न सीमा देती है; यह सिद्ध करती है कि तुलना-वर्गीकरण को Ω(n log n) तुलनाएँ चाहिए।
- न्यूनन से निम्न सीमा दिखाती है कि समस्या B कम-से-कम पहले से ज्ञात-कठिन समस्या A जितनी कठिन है, A को B में सस्ते में रूपांतरित करके।
- निम्न सीमा हर संभव कलनविधि को बाधित करती है; ऊर्ध्व सीमा एक कलनविधि से प्राप्त होती है — मेल खाती सीमाएँ इष्टतमता सिद्ध करती हैं।
अभ्यास प्रश्न (8)
उत्तर खोलने से पहले प्रत्येक प्रश्न हल करें। हर व्याख्या सही विकल्प के साथ लुभावना गलत विकल्प भी बताती है, क्योंकि अंक वहीं जाते हैं।
बैकट्रैकिंग हर पूर्ण प्रत्याशी की भोली प्रत्यक्ष-बल परिगणना से मुख्यतः इस प्रकार भिन्न है कि यह:
उत्तर देखें
उत्तर: A — आंशिक हल को उसी क्षण त्याग देता है जब वह सिद्ध रूप से अमान्य हो, उसे पूर्ण करने के तरीके उत्पन्न करने से पहले
आंशिक (अपूर्ण) हल पर लागू छंटाई-जाँच ही ठीक वह है जो पहले से अमान्य आंशिक हल को विस्तारित करने वाले घातांकी रूप से अनेक पूर्ण प्रत्याशियों को उत्पन्न होने से बचाती है।बैकट्रैकिंग की तुलना में, शाखा-व-परिबंध विशेष रूप से इस हेतु अभिकल्पित है:
उत्तर देखें
उत्तर: A — अनुकूलन समस्याएँ, अब तक मिले सर्वश्रेष्ठ हल के विरुद्ध संख्यात्मक सीमा से छाँटते हुए
शाखा-व-परिबंध अनुकूलन समस्या का एकल सर्वश्रेष्ठ हल खोजने को लक्षित करता है, आंशिक अवस्था से प्राप्य सर्वश्रेष्ठ उद्देश्य-मान की सीमा प्रयोग कर यह तय करते हुए कि वह उपवृक्ष खोजने योग्य है भी या नहीं।शाखा-व-परिबंध से हल 0/1 नैपसैक में, हर नोड पर सीमा सामान्यतः इससे गणित की जाती है:
उत्तर देखें
उत्तर: A — शेष वस्तुओं का भिन्नात्मक शिथिलन हल करके
भिन्नात्मक नैपसैक का लोभी हल वह मान देता है जो उस नोड से प्राप्य वास्तविक 0/1 इष्टतम जितना अच्छा या उससे अच्छा सदा होता है, इसे छंटाई हेतु वैध (व गणना करने में सस्ती) ऊर्ध्व सीमा बनाते हुए।तुलना-वृक्ष तर्क सिद्ध करता है कि तुलना-आधारित वर्गीकरण को, निकृष्टतम स्थिति में, कम-से-कम इतनी आवश्यकता है:
उत्तर देखें
उत्तर: A — Ω(n log n) तुलनाएँ
तुलना (निर्णय) वृक्ष की पत्तियों के रूप में n! संभव क्रमों सहित, वृक्ष की ऊँचाई कम-से-कम log₂(n!) होनी ही चाहिए, जो स्टर्लिंग सन्निकटन से Ω(n log n) है।पहले से ज्ञात-कठिन समस्या A से न्यूनन द्वारा समस्या B हेतु निम्न सीमा सिद्ध करने में सम्मिलित है:
उत्तर देखें
उत्तर: A — A के किसी दृष्टांत को B के दृष्टांत में सस्ते में रूपांतरित करना, ताकि B हेतु तेज़ कलनविधि A हेतु एक दे दे
यदि B को A की ज्ञात निम्न सीमा (प्लस सस्ता रूपांतरण) से तेज़ हल किया जा सकता, तो A भी उतनी तेज़ी से हल हो सकता — A के विषय में पहले से ज्ञात के विरुद्ध जाते हुए, जो B को कम-से-कम उतना कठिन होने पर बाध्य करता है।बैकट्रैकिंग से हल N-रानी के विषय में निम्नलिखित में कौन सत्य हैं? (एक से अधिक विकल्प सही हो सकते हैं।)
उत्तर देखें
उत्तर: A — नई रानी की स्थिति स्वीकार किए जाने से पहले हर पहले-रखी रानी के विरुद्ध जाँची जाती है; B — टकराव पर, कलनविधि वर्तमान पंक्ति में अगला स्तंभ आज़माती है; C — यदि वर्तमान पंक्ति में कोई स्तंभ काम न करे, यह पिछली पंक्ति पर बैकट्रैक करती है
जाँचें-फिर-रखें-या-पुनः-आज़माएँ-या-बैकट्रैक करें चक्र ही ठीक बैकट्रैकिंग क्रियाविधि है; बिना किसी जाँच के सभी रानियाँ रखना इसके बजाय केवल अंत में वैधता जाँची जाती प्रत्यक्ष-बल परिगणना होती।उस वृक्ष का नाम बताइए जो किसी भी तुलना-आधारित कलनविधि को प्रतिरूपित करने हेतु प्रयुक्त होता है, जिसकी ऊँचाई कलनविधि के निकृष्टतम-स्थिति चलने के समय की निम्न सीमा देती है।
संख्यात्मक उत्तर — मान टाइप करें।
उत्तर देखें
उत्तर: comparison tree
तुलना (निर्णय) वृक्ष की पत्तियाँ संभव निर्गमों से संगत होती हैं, और चूँकि ऊँचाई h वाले द्विआधारी वृक्ष की अधिकतम 2^h पत्तियाँ होती हैं, ऊँचाई संभव निर्गमों की संख्या के लॉग के बराबर या उससे अधिक होनी ही चाहिए।शाखा-व-परिबंध खोज के उपवृक्ष को छाँटने हेतु प्रयुक्त अधिकतम-प्रवाह/न्यूनतम-कट-शैली सीमा तब पूर्णतः त्यागी जाती है जब:
उत्तर देखें
उत्तर: A — सीमा अब तक मिले सर्वश्रेष्ठ पूर्ण हल को न हरा सके
जिस उपवृक्ष की सर्वश्रेष्ठ-स्थिति सीमा पहले से हाथ में मौजूद हल से पहले ही बुरी हो, वह कुछ भी बेहतर नहीं रख सकता, अतः पूरे उपवृक्ष को बिना खोजे त्यागना सुरक्षित है।