यह क्लासिक "15 पहेली" (या एक बड़ा संस्करण) का वर्णन करता है। ऐसा कोई एक समाधान नहीं है जो मैं प्रदान कर सकूं क्योंकि समाधान पूरी तरह से 30 संख्याओं की प्रारंभिक व्यवस्था पर निर्भर करता है। इसे हल करने के लिए, आपको स्वैप का इष्टतम अनुक्रम खोजने के लिए एक खोज एल्गोरिदम (जैसे ए *, चौड़ाई-पहली खोज, या गहराई-पहली खोज) का उपयोग करने की आवश्यकता होगी। ये एल्गोरिदम इस आकार की पहेलियों के लिए कम्प्यूटेशनल रूप से गहन हैं।
कोई शॉर्टकट नहीं हैं; आपको संख्याओं को व्यवस्थित रूप से उनके सही स्थान पर ले जाने की आवश्यकता है। कुछ व्यवस्थाएँ ऐसी भी हैं जो क्रमपरिवर्तन की समता के आधार पर हल नहीं हो पाती हैं।
यहां बताया गया है कि इसे हल करने वाले प्रोग्राम को क्या करना होगा:
-
पहेली का प्रतिनिधित्व करें:30 संख्याओं को रखने के लिए एक डेटा संरचना (संभवतः 2डी सरणी या 1डी सरणी) बनाएं।
-
लक्ष्य स्थिति को परिभाषित करें: सही ढंग से क्रमित संख्याओं (1, 2, 3...30) का प्रतिनिधित्व करने वाली एक डेटा संरचना।
-
एक खोज एल्गोरिदम लागू करें: संभावित स्वैप अनुक्रमों का पता लगाने के लिए एक उपयुक्त एल्गोरिदम चुनें (ए* को अक्सर इसकी दक्षता के लिए पसंद किया जाता है)। चक्रों से बचने के लिए एल्गोरिदम को विज़िट किए गए राज्यों पर नज़र रखने की आवश्यकता है।
-
*ह्यूरिस्टिक फ़ंक्शन (ए के लिए):* यदि ए का उपयोग कर रहे हैं, तो आपको किसी दिए गए राज्य से लक्ष्य राज्य तक की दूरी का अनुमान लगाने के लिए एक अनुमानी फ़ंक्शन की आवश्यकता है। 15 पहेली (और इस बड़े संस्करण के लिए अनुकूलनीय) के लिए एक सामान्य अनुमान मैनहट्टन दूरी है (प्रत्येक टाइल की उसके लक्ष्य स्थिति से दूरी का योग)।
-
स्वैप फ़ंक्शन: पहेली प्रतिनिधित्व में दो संख्याओं को स्वैप करने का एक फ़ंक्शन।
-
समाप्ति स्थिति: लक्ष्य स्थिति मिलने पर एल्गोरिदम रुक जाता है।
यह एक जटिल प्रोग्रामिंग कार्य है, जो एक साधारण प्रतिक्रिया से कहीं अधिक है। इसे लागू करने के लिए आपको Python, C या Java जैसी प्रोग्रामिंग भाषा का उपयोग करना होगा। खोज एल्गोरिदम में सहायता के लिए पुस्तकालय मौजूद हैं, लेकिन मूल तर्क को लिखने की आवश्यकता है।