बैक ट्रैकिंग
बैकट्रैकिंग (Backtracking) कुछ कम्प्यूटेशनल समस्याओं को हल करने के लिए एक एल्गोरिथ्म(algorithm) तकनीक है। यह समाधान खोजने के लिए पुनरावर्ती कॉलिंग (Recursive calling) का उपयोग करता है। बैकट्रैकिंग के लिए क्लासिक उदाहरण आठ रानियों की पहेली है(8-queen puzzle), जिसमें हमें एक मानक शतरंजबोर्ड पर आठ शतरंज रानियों के सभी संभावित स्थानों को खोजना होता है ताकि कोई रानी किसी अन्य पर हमला न करे। आम बैकट्रैकिंग दृष्टिकोण में, आंशिक उम्मीदवार बोर्ड की पहली k पंक्तियों में k रानियों की व्यवस्था करते हैं, सभी अलग-अलग पंक्तियों और स्तंभों में। किसी भी आंशिक समाधान में दो परस्पर आक्रमण करने वाली रानियों को छोड़ दिया जा सकता है। बैकट्रैकिंग के बारे में अच्छी बात यह है कि बैकट्रैकिंग अक्सर सभी पूर्ण उम्मीदवारों की ब्रूट फोर्स(brute force) गणना की तुलना में बहुत तेज है क्योंकि यह एक ही टेस्ट के साथ कई उम्मीदवारों को खत्म कर देता है। क्रॉसरवर्ड(Crosswords), मौखिक अंकगणित(Verbal Arithmetic), सुडोकू(Sudoku), और कई अन्य पहेलियों जैसे बाधा संतुष्टि समस्याओं(Constraint satisfaction problems) को हल करने के लिए बैकट्रैकिंग एक महत्वपूर्ण उपकरण है। यह लॉजिक प्रोग्रामिंग लैंग्वेज जैसे आइकॉन(Icon), प्लानर(Planner) और प्रोलॉग(Prolog) का आधार भी है। "बैकट्रैक" शब्द अमेरिकी गणितज्ञ डी.एच. लेहमर(D. H. Lehmer) द्वारा 1950 के दशक में बनाया गया था। अग्रणी स्ट्रिंग-प्रोसेसिंग भाषा SNOBOL (1962) एक बिल्ट-इन सामान्य बैकट्रैकिंग सुविधा प्रदान करने वाली पहली भाषा रही है।