के लिए अच्छा हेरिस्टिक खोजना मैं ट्विडल नामक एक छोटे पहेली गेम के लिए इष्टतम समाधान खोजने की कोशिश कर रहा हूं (गेम के साथ एक एप्लेट here पाया जा सकता है)। गेम में 1 से 9 तक की संख्या के साथ 3x3 मैट्रिक्स है। लक्ष्य कम से कम चालों का उपयोग करके संख्याओं को सही क्रम में लाने के लिए है। प्रत्येक चाल में आप 2x2 वर्ग को या तो दक्षिणावर्त या विपरीत दिशा में घुमा सकते हैं।ए * खोज
आईई। आप इस राज्य
6 3 9
8 7 5
1 2 4
है और आप ऊपरी बाएँ 2x2 वर्ग बारी बारी से दक्षिणावर्त आप
8 6 9
7 3 5
1 2 4
मिल मैं एक एक * खोज का उपयोग कर रहा इष्टतम समाधान खोजने के लिए यदि। मेरा एफ() बस आवश्यक घूर्णन की संख्या है। मेरा हेरिस्टिक फ़ंक्शन पहले से ही इष्टतम समाधान की ओर जाता है (यदि मैं इसे संशोधित करता हूं, नोटिस को अंत में देखें) लेकिन मुझे नहीं लगता कि यह सबसे अच्छा है जिसे आप पा सकते हैं। मेरा वर्तमान ह्युरिस्टिक प्रत्येक कोने लेता है, कोने पर संख्या को देखता है और स्थिति के मैनहट्टन दूरी की गणना करता है, इस संख्या को हल राज्य में होगा (जो मुझे इस पद पर संख्या लाने के लिए आवश्यक रोटेशन की संख्या देता है) और सभी को बताता है ये मूल्य अर्थात। ऊपर दिए गए उदाहरण लेते हैं:
6 3 9
8 7 5
1 2 4
और यह अंत राज्य
1 2 3
4 5 6
7 8 9
तो अनुमानी निम्नलिखित
6 is currently at index 0 and should by at index 5: 3 rotations needed
9 is currently at index 2 and should by at index 8: 2 rotations needed
1 is currently at index 6 and should by at index 0: 2 rotations needed
4 is currently at index 8 and should by at index 3: 3 rotations needed
h = 3 + 2 + 2 + 3 = 10
साथ ही, यदि ज 0 है, लेकिन राज्य नहीं पूरी तरह से करता है आदेश दिया गया, एच = 1.
लेकिन समस्या है, कि आप एक बार में 4 तत्व घुमाते हैं। तो वहां एक दुर्लभ मामले हैं जहां आप एक कदम में अनुमानित घूर्णन के दो (अयस्क अधिक) कर सकते हैं। इसका मतलब यह है कि सिद्धांतों में हेरिस्टिक समाधान की दूरी को अधिक महत्व देता है।
मेरा वर्तमान कामकाज केवल गणना से कोनों में से एक को बाहर करने के लिए है जो कम से कम मेरे परीक्षण-मामलों के लिए इस समस्या को हल करता है। मैंने वास्तव में समस्या हल करने के लिए कोई शोध नहीं किया है या यदि यह हेरिस्टिक अभी भी कुछ किनारे-मामलों में अतिवृद्धि करता है।
तो मेरा प्रश्न है: सबसे अच्छा हेरिस्टिक क्या है जिसके साथ आप आ सकते हैं?
(अस्वीकरण: यह एक विश्वविद्यालय परियोजना के लिए है, इसलिए यह होमवर्क का एक छोटा सा हिस्सा है। लेकिन अगर मैं आ सकता हूं तो मैं किसी भी संसाधन का उपयोग करने के लिए स्वतंत्र हूं, इसलिए आपसे पूछना ठीक है। मेरी मदद करने के लिए स्टैकओवरफ्लो;))
आपकी ह्युरिस्टिक दूरी को अधिक महत्व देने का मतलब है कि शायद कुछ मामलों में इष्टतम समाधान नहीं हो सकता है। – CodesInChaos
आप बेहतर उम्मीद करते हैं कि हम साइमन को नहीं बताते कि आप धोखा दे रहे हैं। :) – bzlm
@CodeInChaos: जैसा कि मैंने लिखा है: मुझे पता है। और इसके कारण मैं एक बेहतर एक –