वापसtracराजा एल्गोरिथम
बैक क्या है?tracकिंग एल्गोरिदम?
वापसtracking एक एल्गोरिदम है जो समस्या को हल करने के लिए संभावित संयोजनों की खोज करता है। कम्प्यूटेशनल समस्याएंयह क्रमिक रूप से उम्मीदवारों का निर्माण करता है और उन लोगों को हटाता है जो दिए गए प्रतिबंधों को पूरा नहीं करते हैं। यह तकनीक उन स्थितियों में बहुत उपयोगी है जहाँ आपको कई संभावित परिणामों में से एक व्यवहार्य समाधान चुनना होता है।
यह एल्गोरिदम ब्रूट फोर्स दृष्टिकोण से बेहतर और अधिक कुशल माना जाता है। ब्रूट फोर्स के विपरीत, जो सभी संभावित समाधानों को आज़माता है, बैकवर्ड एल्गोरिदम बेहतर समाधान प्रदान करता है।tracराजा दिए गए नियमों के अनुसार केवल एक अंतिम समाधान खोजने पर ध्यान केंद्रित करता है। की कमीइससे पिछले चरण को पूर्ववत करके (वापस जाकर) समय और मेमोरी की भी बचत होती है।track) और गतिरोध पर पहुँचने के बाद दूसरा विकल्प आज़माना। इसके अलावा, वैध समाधान मिलते ही यह प्रक्रिया रुक जाती है।
वापसtracकिंग तकनीक व्यापक रूप से उपयोग की जाने वाली तकनीक है क्योंकि यह संसाधनों की अत्यधिक खपत के बिना जटिल समस्याओं को हल कर सकती है। यह विशेष रूप से उन समस्याओं के लिए उपयोगी है जहां कई बाधाओं को पूरा करना आवश्यक होता है, जैसे सुडोकू, एन-क्वीन समस्या और शेड्यूलिंग। संभावित समाधानों के माध्यम से बुद्धिमानी से आगे बढ़ते हुए, बैकtracराजा सभी शर्तों को पूरा करने वाला उत्तर ढूंढ सकता है। यही कारण है कि यह उन कार्यों के लिए अमूल्य है जिनमें सटीकता और दक्षता दोनों की आवश्यकता होती है।
कैसे वापसtracक्या किंग एल्गोरिदम काम करता है?
वापसtracकिंग एल्गोरिदम एक समस्या-समाधान तकनीक है जिसमें चरण दर चरण वैध समाधान खोजे जाते हैं। यदि किसी चरण की बाधाएँ कुछ शर्तों को पूरा नहीं करती हैं, तो एल्गोरिदम पिछले चरण पर वापस लौट जाता है।
इसके बाद यह अन्य संभावित संयोजनों के साथ जारी रहता है जो दिए गए प्रतिबंधों को संतुष्ट करते हैं। चूंकि कई संभावित संयोजन मौजूद हैं, इसलिए यह सबसे संतोषजनक विकल्पों में से एक का चयन करता है और क्रमिक रूप से समस्या को हल करता है। यह एल्गोरिथम तकनीक तब उपयोगी होती है जब आपको एक या अधिक संभावित विकल्पों को हल करने की आवश्यकता होती है। वापसी का मतलब है कि जब भी कोई ऐसी स्थिति उत्पन्न होती है जो वैध समाधान नहीं देती है, तो अपनी पसंद को रद्द करना।
पीछेtracकिसी समस्या को हल करने के लिए किंग एल्गोरिदम में सामान्यतः निम्नलिखित चरण होते हैं:
चरण 1) आरंभीकरण: प्रारंभिक खाली/आंशिक समाधान से शुरुआत करें।
चरण 2) चयनविशिष्ट मानदंडों और बाधाओं के आधार पर, वर्तमान समाधान का विस्तार करने के लिए एक विकल्प का चयन करें।
चरण 3) अन्वेषणचुने हुए उम्मीदवार पर विचार करके और समस्या-समाधान प्रक्रिया में आगे बढ़ते हुए पुनरावर्ती समाधान करें।
चरण 4) बाधा जाँचप्रत्येक चरण पर जांचें कि क्या वर्तमान आंशिक समाधान किसी भी बाधा का उल्लंघन करता है। यदि ऐसा होता है, तो वापस लौटें।tracपिछले चरण पर वापस जाएं और किसी दूसरे उम्मीदवार को आज़माएं।
चरण 5) समाप्ति: पीठtracजब या तो कोई वैध समाधान मिल जाता है, या सभी संयोजन समाप्त हो जाते हैं, तो प्रक्रिया रुक जाती है।
चरण 6) वापसtracराजायदि वर्तमान विकल्प दी गई समस्या का समाधान नहीं करता है, तो यह पिछली स्थिति में वापस आ जाता है। फिर यह दी गई समस्या को हल करने के लिए नए विकल्प पर विचार करता है।
चरण 7) दोहराएँसमस्या का समाधान होने या सभी विकल्पों का पता लगाने तक इन चरणों को जारी रखें।
बैक की पुनरावर्ती प्रकृतिtracराजा एल्गोरिथम
वापसtracकिंग एल्गोरिदम प्रकृति में पुनरावर्ती होते हैं। इसका अर्थ है कि एल्गोरिदम तब तक अलग-अलग मापदंडों के साथ स्वयं को कॉल करता है जब तक कि उसे कोई समाधान नहीं मिल जाता या वह सभी संभावनाओं का परीक्षण नहीं कर लेता।
def find_solutions(n, other_params):
if found_a_solution():
increment_solutions_found()
display_solution()
if solutions_found >= solution_target:
exit_program()
return
for val in range(first, last+1):
if is_valid(val, n):
apply_value(val, n)
find_solutions(n + 1, other_params)
remove_value(val, n)
पीठ से संबंधित सामान्य शब्दtracराजा की समस्याएं
ये पीठ से संबंधित कुछ बुनियादी शब्द हैंtracराजा तकनीक:
- समाधान वेक्टर: समाधानों को n-टपल के रूप में प्रदर्शित करता है, जैसे (X1, X2, …, Xn).
- की कमी: X मानों को सीमित करने वाले नियम, अंतर्निहित और स्पष्ट।
- समाधान स्थान: स्पष्ट प्रतिबंधों को संतुष्ट करने वाले सभी वैध X मान।
- राज्य अंतरिक्ष वृक्ष: समाधान स्थान को वृक्ष के रूप में दर्शाता है।
- राज्य स्थान: राज्य स्थान वृक्ष में पथों का वर्णन करता है।
- समस्या की स्थितिखोज वृक्ष में नोड्स जो आंशिक समाधान दर्शाते हैं।
- समाधान राज्यएस में वैध समाधान ट्यूपल बनाने वाली स्थितियाँ।
- उत्तर राज्यअंतर्निहित बाधाओं को संतुष्ट करें और वांछित समाधान प्राप्त करें।
- आशाजनक नोड: वांछित समाधान की ओर ले जाता है और व्यवहार्य रहता है।
- गैर-आशाजनक नोड: अव्यवहार्य स्थितियों की ओर ले जाता है, जिसका आगे अन्वेषण नहीं किया जाता।
- लाइव नोड: अज्ञात बच्चों के साथ उत्पन्न.
- ई-नोड: चालू चाइल्ड जेनरेशन के साथ लाइव नोड.
- मृत नोड: उत्पन्न सभी बच्चों का आगे कोई विस्तार नहीं।
- गहराई-प्रथम नोड पीढ़ी: अगले ई-नोड के रूप में नवीनतम लाइव नोड का उपयोग करता है।
- बाउंडिंग फ़ंक्शनअनुकूलन के लिए B(x1, x2, …, Xa) को अधिकतम या न्यूनतम करता है।
- स्थिर वृक्ष: समस्या के उदाहरण से स्वतंत्र वृक्ष निर्माण.
- गतिशील पेड़: वृक्ष का निर्माण समस्या के उदाहरण के साथ बदलता रहता है।
बैक का उपयोग कब करेंtracकिंग एल्गोरिदम?
हम पीछे का विकल्प चुन सकते हैंtracकिसी जटिल समस्या को हल करने के लिए सबसे कारगर तकनीक कब अपनाई जानी चाहिए:
- कई विकल्प मौजूद हैं: वापसtracसमस्या-समाधान प्रक्रिया के प्रत्येक चरण में अनेक विकल्प मौजूद होने पर राजा की भूमिका उपयुक्त होती है। ये विकल्प वस्तुओं और चालों के चयन से संबंधित हो सकते हैं।
- कोई स्पष्ट सर्वोत्तम विकल्प नहींजब उपलब्ध विकल्पों में से सर्वोत्तम विकल्प निर्धारित करने के लिए अपर्याप्त जानकारी हो, तो बैकtracकिंग एल्गोरिदम का उपयोग किया जा सकता है।
- इस निर्णय से अधिक विकल्प सामने आते हैं: आप चुन सकते हैं वापसtracविकल्पों की व्यवस्थित समीक्षा करने की प्रमुख तकनीक।
- सभी संभावित समाधानों का पता लगाने की आवश्यकता है: पीछेtracराजा एक के बाद एक निर्णय लेकर सभी समाधानों का व्यवस्थित रूप से पता लगाता है।
पीठ के प्रकारtracराजा की समस्याएं
पीठ में तीन प्रकार की समस्याएं होती हैं।tracमुख्य एल्गोरिदम: निर्णय संबंधी समस्याएं, अनुकूलन संबंधी समस्याएं और गणना संबंधी समस्याएं। आइए इनके बारे में नीचे जानें।
- निर्णय समस्या: इस प्रकार की समस्या में, लक्ष्य यह निर्धारित करना है कि कोई व्यवहार्य समाधान मौजूद है या नहीं। हम "हाँ" और "नहीं" उत्तरों की जाँच करते हैं। उदाहरण के लिए, n-रानियाँ समस्या। यह एक निर्णय समस्या है जो n × n शतरंज की बिसात पर n रानियों को एक दूसरे पर हमला किए बिना रखने की संभावना की जाँच करती है।
- अनुकूलन समस्याअनुकूलन समस्याओं में, लक्ष्य कई विकल्पों में से सर्वोत्तम संभव समाधान खोजना होता है। इसमें किसी निश्चित फ़ंक्शन या चर के अधिकतम और न्यूनतम मान निर्धारित करना शामिल हो सकता है। उदाहरण के लिए, बैकपैक समस्या पर विचार करें, जहाँ उद्देश्य बैग में मौजूद वस्तुओं के कुल मूल्य को अधिकतम करना है, जबकि इसकी वज़न सीमा का पालन करना है।
- गणना समस्या: इसका उद्देश्य किसी दी गई समस्या के सभी संभावित समाधान ढूँढना है। हम हर वैध विकल्प को बिना किसी चूक के सूचीबद्ध करते हैं। एक उदाहरण किसी दिए गए वर्ण सेट से सभी संभावित अक्षर संयोजन उत्पन्न करना होगा।
पीठ के अनुप्रयोगtracराजा और उदाहरण
बैक के विभिन्न अनुप्रयोग हैंtracराजा। इनमें से कुछ को उनके छद्म कोड के साथ नीचे समझाया गया है।
- Sudoku Solver: इस समस्या में दोहराई गई संख्याओं वाला 3×3 का एक उपग्रिड है।tracकिंग तकनीक से पता चलेगा कि समाधान गलत है, जो एक अलग संख्या स्थान की आवश्यकता को दर्शाता है।
- एन-क्वीन समस्या: पीठtracराजा की रणनीति यह निर्धारित करती है कि N × N शतरंज बोर्ड पर रानियों को इस प्रकार कैसे प्रस्तुत किया जाए कि उनमें से कोई भी एक दूसरे के लिए खतरा न हो।
- उपसमुच्चय योग समस्याइसका उपयोग किसी दिए गए समूह से संख्याओं के उस उपसमूह को खोजने के लिए किया जाता है जो एक विशेष लक्ष्य राशि के बराबर होता है।
- हैमिल्टनियन चक्र समस्या: पीछेtracकिंग विधि का उपयोग ग्राफ में एक बंद टूर खोजने के लिए किया जा सकता है जो प्रत्येक शीर्ष पर ठीक एक बार जाता है।
- भूलभुलैया में चूहे की समस्या: पीठtracकिंग तकनीक का उपयोग भूलभुलैया के शुरुआती बिंदु से निकास तक चूहे के रास्ते का पता लगाने के लिए किया जाता है।
function solveSudoku(board):
if no empty cells:
return true # Sudoku is solved
for each empty cell (row, col):
for num from 1 to 9:
if num is valid in (row, col):
place num in (row, col)
if solveSudoku(board):
return true
remove num from (row, col)
return false # No valid solution
function solveNQueens(board, col):
if col >= N:
return true # All queens are placed
for each row in the column col:
if isSafe(board, row, col):
place queen at (row, col)
if solveNQueens(board, col + 1):
return true
remove queen from (row, col)
return false # No valid solution in this branch
function subsetSum(nums, target, index, currentSubset):
if target == 0:
print(currentSubset) # Subset with the target sum found
return
if index >= len(nums) or target < 0:
return
currentSubset.add(nums[index])
subsetSum(nums, target - nums[index], index + 1, currentSubset)
currentSubset.remove(nums[index])
subsetSum(nums, target, index + 1, currentSubset)
पीठ के लाभ और हानिtracराजा एल्गोरिथम
पीठ के लाभtracराजा एल्गोरिथम
वापसtracकिंग तकनीक का उपयोग जटिल समस्याओं को हल करने के लिए किया जाता है। इसके कई फायदे हैं, जैसे:
- पीछेtracकिंग तकनीक बाधाओं को संभालने में कारगर है।
- यह विधि अनुकूलन समस्याओं को हल करने के लिए अच्छी है।
- यह तकनीक विभिन्न प्रकार की समस्याओं के लिए काम करती है।
- यह प्रक्रिया सभी संभावित समाधानों की समीक्षा करने में मदद कर सकती है।
- क्योंकि यह वापसtracजी हां, यह ब्रूटफोर्स तकनीक की तुलना में अधिक मेमोरी बचाता है।
पीठ के नुकसानtracराजा एल्गोरिथम
वापसtracकिंग तकनीक की भी कुछ सीमाएँ हैं, जैसे कि समय जटिलता। इस तकनीक में निम्नलिखित कमियाँ हैं:
- इसका कोई निश्चित समाधान नहीं है।
- कई संयोजनों के कारण यह धीमी है।
- अनेक संभावनाओं के कारण इसमें समय की जटिलता अधिक है।
- यह वास्तविक समय की बाधाओं के लिए अनुपयुक्त है क्योंकि सर्वोत्तम समाधान ढूंढने में लंबा समय लग सकता है।
- दक्षता समस्या की जटिलता के स्तर पर निर्भर करती है।
पीठ के बीच का अंतरtracराजा और पुनरावृति
| Recursion | वापसtracराजा |
|---|---|
| आधार मामले तक पहुंचने तक स्वयं को कॉल करता है। | सर्वोत्तम संभव परिणाम मिलने तक सभी संभावनाओं की समीक्षा करने के लिए पुनरावृत्ति का उपयोग करता है। |
| नीचे से ऊपर का दृष्टिकोण। | शीर्ष पाद उपागम। |
| कोई भी मूल्य त्यागा नहीं जाता. | अव्यवहार्य समाधानों को अस्वीकार कर दिया जाता है। |
निष्कर्ष
वापसtracकिंग जटिल समस्याओं को हल करने के लिए एक उपयोगी एल्गोरिथम रणनीति है, जिसमें संभावित समाधानों का व्यवस्थित रूप से पता लगाया जाता है और फिर वापस लौटकर उनका समाधान निकाला जाता है।tracजरूरत पड़ने पर राजा। हम वापसी की उम्मीद कर सकते हैं।tracगणना शक्ति और एल्गोरिथम दक्षता में सुधार के साथ-साथ, तकनीक में भी वृद्धि की जा रही है। ये प्रगति उन्हें बड़ी और अधिक जटिल समस्याओं को कुशलतापूर्वक हल करने में सक्षम बनाएगी।
इसके अलावा, मशीन लर्निंग मॉडल वापस मार्गदर्शन कर सकते हैं।tracराजा के निर्णय पूर्व में सीखे गए पैटर्न पर आधारित होते हैं।
इन सभी तकनीकी नवाचारों से revolutवापस आयनित करेंtracकिंग एल्गोरिदम, उन्हें विभिन्न क्षेत्रों में जटिल समस्याओं को हल करने के लिए एक शक्तिशाली और बहुमुखी उपकरण बनाते हैं।
