कंप्यूटर विज्ञान में, अलग-अलग पहलुओं (स्ट्रिंग्स, संख्याएं, पैटर्न, समाधान) की खोज के लिए विभिन्न डेवलपर्स द्वारा कई खोज एल्गोरिदम विकसित किए गए हैं।
खोज विभिन्न तरीकों से की जाती है। क्रूर बल और थकावट खोज दो स्ट्रिंग खोज एल्गोरिदम हैं जिनका उपयोग कोडर द्वारा किया जाता है। ये विधियाँ हर संभव समाधान की खोज के सिद्धांत पर काम करती हैं।
चाबी छीन लेना
- ब्रूट फोर्स अटैक पासवर्ड या एन्क्रिप्शन को क्रैक करने के लिए हर संभव संयोजन का व्यवस्थित रूप से परीक्षण करते हैं।
- व्यापक खोज एल्गोरिदम इष्टतम समाधान खोजने के लिए सभी संभावित समाधानों का मूल्यांकन करते हैं।
- दोनों विधियाँ संसाधन-गहन हो सकती हैं लेकिन विशिष्ट अनुमानों के बिना समस्याओं को प्रभावी ढंग से हल कर सकती हैं।
क्रूर बल बनाम व्यापक खोज
पाशविक बल एक गैर-समान खोज है जो लॉगिन जानकारी, एन्क्रिप्शन कुंजियों का अनुमान लगाने या एक छिपे हुए वेब पेज को खोजने के लिए परीक्षण और त्रुटि का उपयोग करती है। संपूर्ण खोज एक प्रकार की क्रूर बल खोज है जिसका उपयोग संबंधित समस्याओं को हल करने के लिए किया जाता है परिवर्तन और संयोजन. यह एक समान खोज है और इसमें कम समय लगता है।
ब्रूट फ़ोर्स एल्गोरिथम डेवलपर्स द्वारा स्ट्रिंग लाने के लिए कोडित एक तकनीक है, और यहां तक कि इसका उपयोग आठ-रानी पहेली (आठ बाई आठ शतरंज की बिसात पर आठ रानियों को रखने के लिए एक पहेली) को हल करने में भी किया जाता है।
हालाँकि, यह एक सहज रणनीति है जिसमें समस्या को हल करने के लिए बहुत सारी तुलनाओं की आवश्यकता होती है।
संपूर्ण खोज एक प्रकार की क्रूर बल खोज है जिसका उपयोग क्रमपरिवर्तन और संयोजन से संबंधित समस्याओं को हल करने के लिए किया जाता है।
मुख्य उद्देश्य बाधाओं को संतुष्ट करके इष्टतम समाधान के लिए हर समाधान की खोज करना है। अन्य समस्याओं का भी समाधान किया जा सकता है, जैसे ट्रैवलिंग सेल्समैन और बस्ता समस्याएँ।
तुलना तालिका
तुलना के पैरामीटर | क्रूर बल खोज | विस्तृत भाषण |
---|---|---|
खोज का प्रकार | ब्रूट फ़ोर्स एक गैर-समान खोज है। | संपूर्ण एक समान खोज है क्योंकि हम जानते हैं कि किस दिशा में खोज की जा रही है। |
खोजें | ब्रूट फोर्स स्ट्रिंग पैटर्न की खोज के लिए है। | संपूर्ण खोज एल्गोरिदम क्रमपरिवर्तन, संयोजन और उपसमुच्चय लाने के लिए है। |
प्रक्रिया | ब्रूट फोर्स एल्गोरिदम किसी दिए गए टेक्स्ट में दाईं ओर जाकर वांछित पैटर्न की खोज करता है। | संपूर्ण खोज एल्गोरिदम प्रत्येक नोड की तब तक जांच करता है जब तक वह अंतिम नोड तक नहीं पहुंच जाता। |
पहर | क्रूर बल एक समय लेने वाली विधि है। | संपूर्ण खोज एल्गोरिदम इसकी तुलना में कम समय लेता है। |
अनुप्रयोगों | ब्रूट फ़ोर्स खोज एल्गोरिदम का उपयोग आठ रानियों को आठ-बाई-आठ बोर्डों पर रखने में किया जाता है। | ट्रैवलिंग सेल्समैन की समस्या को हल करने के लिए संपूर्ण खोज एल्गोरिदम का उपयोग किया जाता है। |
ब्रूट फ़ोर्स सर्च क्या है?
ब्रूट फ़ोर्स एल्गोरिथम खोज तकनीकों में से एक है कम्प्यूटर साइंस. चूँकि यह एक सहज ज्ञान युक्त विधि है, यह समस्याओं को हल करने के लिए एक बहुत ही सरल दृष्टिकोण है जो पूरी तरह से भविष्यवाणियों पर आधारित है।
इस विधि में समाधान खोजने के लिए किसी जटिल तकनीक का उपयोग नहीं किया जाता है।
प्रक्रिया स्ट्रिंग को खोजने के लिए पाठ के माध्यम से दोहराते रहने की है। यदि कोई स्ट्रिंग बेमेल है, तो एक कदम दाईं ओर ले जाएं और उचित मिलान मिलने तक प्रक्रिया को दोहराएं।
प्रक्रिया अब सरल है. मान लीजिए हमें स्ट्रिंग प्लांट को खोजना है।
पैराग्राफ में प्रत्येक शब्द की वर्तनी को प्लांट स्ट्रिंग के साथ मिलाएं। यदि पंक्ति में कोई वाक्यांश मेल नहीं खाता है तो दाईं ओर जाएँ। यदि कोई स्ट्रिंग मेल खाती है, तो हमारी खोज सफल रही है। हमें वांछित परिणाम मिले हैं.
इसलिए, हम कह सकते हैं कि यदि पाठ की लंबाई अधिक है तो यह बहुत समय लेने वाली खोज विधि है। तुलनाओं की संख्या की गणना करने की युक्ति N x M का गुणन है जहां N पाठ की लंबाई है और M स्ट्रिंग की लंबाई है।
उदाहरण के लिए,
पाठ =10
स्ट्रिंग = पौधा तो, स्ट्रिंग का आकार = 5
संयोजन = एनएक्सएम = 10 x 5= 50
व्यावहारिक जीवन में हम पाशविक बल खोज का उपयोग कर सकते हैं। एक उदाहरण 8×8 शतरंज बोर्ड पर आठ रानियों को रखना है। नियम यह है कि रानियों की व्यवस्था इस प्रकार की जाए कि कोई भी रानी दूसरी रानी का मार्ग न रोके।
विस्तृत खोज क्या है?
संपूर्ण खोज ब्रूट फ़ोर्स खोज एल्गोरिथम का एक उपसमुच्चय है, जो संयोजनों और क्रमपरिवर्तनों की खोज के लिए है। यह एल्गोरिदम सभी बाधाओं को संतुष्ट करके दी गई समस्या का प्रत्येक समाधान खोजने पर केंद्रित है।
क्योंकि संपूर्ण का अर्थ थका देने वाला होता है, इस प्रकार की खोजें अंधी खोजें होती हैं, लेकिन एक समान होती हैं। रणनीति का लक्ष्य समस्या को अधिकतम करना या कम करना है।
विस्तृत खोज का उपयोग करके कई समस्याओं का समाधान किया जा सकता है, जैसे ट्रैवलिंग सेल्समैन समस्या और नैपसेक समस्या।
यात्रा करने वाले सेल्समैन की समस्या यह है कि शुरुआती स्थान पर लौटने से पहले, सेल्समैन को सबसे छोटे मार्ग का उपयोग करके एन शहरों (केवल एक बार) का दौरा करना होगा।
यहाँ N शहरों की संख्या है, और इस समस्या के अंतर्गत बाधाएँ हैं:
- एक शहर से दूसरे शहर तक सबसे छोटे रास्ते का अनुसरण करना।
- वापस आने से पहले सभी शहरों का दौरा करें।
- सभी शहरों का केवल एक बार दौरा करें।
उदाहरण के लिए,
पांच शहर हैं: ए, बी, सी, डी, और ई। संयोजनों को लागू करके शुरुआती शहर को बुद्धिमानी से चुना जाता है। ताकि, सभी बाधाएं पूरी हो जाएं।
एक उपयुक्त रास्ता चुनते समय, हम कई संयोजनों का प्रयास करेंगे जो थका देने वाले और समय लेने वाले होंगे। दूसरे शब्दों में, हमें लक्ष्य प्राप्त करने के लिए एक चक्रीय आंदोलन बनाना होगा।
पाशविक बल और व्यापक खोज के बीच मुख्य अंतर
- ब्रूट फ़ोर्स खोज एल्गोरिथम गैर-समान विधि है। दूसरी ओर, एक विस्तृत खोज एल्गोरिदम एक समान विधि है।
- ब्रूट फोर्स सर्च एल्गोरिदम टेक्स्ट में स्ट्रिंग को खोजने की एक विधि है। इसके विपरीत, एक विस्तृत खोज एल्गोरिदम क्रमपरिवर्तन और संयोजनों का समाधान खोजता है।
- ब्रूट फ़ोर्स तकनीक एक स्ट्रिंग के सभी अक्षरों का मिलान करके काम करती है। हालाँकि, एक विस्तृत खोज फ़्लोचार्ट के प्रत्येक नोड की जांच करने की प्रक्रिया का पालन करती है जब तक कि बाधाएं संतुष्ट न हो जाएं।
- ब्रूट फोर्स विधि अधिक समय लेने वाली है और डेटा कम होने पर लागू होती है। दूसरी ओर, जटिल परिदृश्यों में भी एक विस्तृत एल्गोरिदम लागू होता है।
- चूंकि संपूर्ण खोज तकनीक में ब्रूट फोर्स पद्धति का पालन किया जाता है, इसलिए यह संपूर्ण खोज की तुलना में अधिक लोकप्रिय है।
- https://ieeexplore.ieee.org/abstract/document/4640789/
- https://link.springer.com/chapter/10.1007/3-540-44411-4_2
अंतिम अद्यतन: 13 जुलाई, 2023
संदीप भंडारी ने थापर विश्वविद्यालय (2006) से कंप्यूटर में इंजीनियरिंग में स्नातक की उपाधि प्राप्त की है। उनके पास प्रौद्योगिकी क्षेत्र में 20 वर्षों का अनुभव है। उन्हें डेटाबेस सिस्टम, कंप्यूटर नेटवर्क और प्रोग्रामिंग सहित विभिन्न तकनीकी क्षेत्रों में गहरी रुचि है। आप उनके बारे में और अधिक पढ़ सकते हैं जैव पृष्ठ.