2011-12-04 20 views
16

एक शब्दावली प्रश्न - क्या लालची सबसे अच्छी खोज सबसे पहले खोज से अलग है?क्या लालची सबसे अच्छी खोज सबसे पहले खोज से अलग है?

wiki page में लालची बीएफएस के बारे में एक अलग अनुच्छेद है लेकिन यह थोड़ा अस्पष्ट है।

मेरे समझ है कि लालची BFS बस है बीएफ जहां "खुली से सबसे अच्छा नोड" विकिपीडिया एल्गोरिथ्म में एक नोड के लिए एक अनुमानी समारोह एक की गणना करता है। तो यह लागू करने:

OPEN = [initial state] 
CLOSED = [] 
while OPEN is not empty 
do 
1. Remove the best node from OPEN, call it n, add it to CLOSED. 
2. If n is the goal state, backtrace path to n (through recorded parents) and return path. 
3. Create n's successors. 
4. For each successor do: 
    a. If it is not in CLOSED: evaluate it, add it to OPEN, and record its parent. 
    b. Otherwise: change recorded parent if this new path is better than previous one. 
done 

"खुली से सबसे अच्छा नोड" के लिए अनुमान का समारोह का आकलन करने के कितने करीब नोड लक्ष्य है होने के साथ, वास्तव में लालची BFS है। क्या मैं सही हू?

संपादित करें: Anonymouse के जवाब पर टिप्पणी:

तो अनिवार्य रूप से एक लालची BFS एक "खुला सूची" की जरूरत नहीं है और केवल वर्तमान नोड पर अपने फैसलों का आधार होना चाहिए? इस एल्गोरिथ्म GBFS है:

1. Set START as CURRENT node 
2. Add CURRENT to Path [and optinally, to CLOSED?] 
3. If CURRENT is GOAL, exit 
4. Evaluate CURRENT's successors 
5. Set BEST successor as CURRENT and go to 2. 

उत्तर

20

"सर्वश्रेष्ठ पहली" निर्णय में संशोधन, जबकि एक लालची एल्गोरिथ्म में, निर्णय अंतिम होना चाहिए अनुमति दे सकता है, और संशोधित नहीं।

उदाहरण के लिए ए * -सार्च सबसे अच्छी पहली खोज है, हालांकि यह लालची नहीं है।

समझें कि, हालांकि, इन शर्तों का हमेशा एक ही परिभाषाओं के साथ उपयोग नहीं किया जाता है। आमतौर पर "लालची" का अर्थ है कि निर्णय कभी संशोधित नहीं होता है, अंततः चलने वाले समय में सुधार के लाभ पर उप-समाधान समाधान स्वीकार करता है। हालांकि, मैं शर्त लगाता हूं कि आपको ऐसी स्थितियां मिलेंगी जहां "लालची" का उपयोग "सर्वश्रेष्ठ प्रथम + गहराई पहले" के संयोजन के लिए किया जाता है, जैसा कि "हम अगले मृत चरण को तब तक विस्तारित करने का प्रयास करते हैं जब तक कि हम एक मृत अंत तक नहीं पहुंच जाते, फिर पिछले चरण पर वापस जाएं और जारी रखें अगले सबसे अच्छे साथ "(जिसे मैं" प्राथमिकता गहराई पहले "कहूंगा)।

यह भी निर्भर करता है कि आप किस स्तर के अमूर्तता के बारे में बात कर रहे हैं। ए * 'पथ बनाने' में लालची नहीं है। खुले रास्ते के बड़े सेट को रखने के साथ यह ठीक है। हालांकि यह वास्तविक खोज पथ की ओर 'खोज स्थान का विस्तार' 'में लालची है।

+1

आप इसे प्रतिबिंबित करने के लिए उपरोक्त एल्गोरिदम कैसे बदलेंगे? – Alex

+1

यह सभी समस्याओं पर लागू नहीं है। उदाहरण के लिए पथ खोज में, एक सच्चे लालची एल्गोरिदम अक्सर मृत सिरों में भागकर असफल हो जाता है। ए "प्राथमिकता गहराई पहले" को एक अच्छा रास्ता मिलेगा, लेकिन शुरुआती विकल्प खराब होने पर सबसे अच्छा याद आ सकता है। ए * एक सबसे अच्छी खोज है जो केवल तब समाप्त हो जाएगी जब यह सुनिश्चित हो कि कोई बेहतर रास्ता नहीं है। –

+1

क्या आप मेरे प्रश्न में संपादन पर टिप्पणी कर सकते हैं? – Alex

0

यह मेरी समझ है, सर्वोत्तम-पहली खोज केवल एक विशेष खोज तकनीक का सामूहिक नाम है जिसमें आप एक ह्युरिस्टिक मूल्यांकन फ़ंक्शन एच (एन) का उपयोग करते हैं। तो ए * और लालची सर्वश्रेष्ठ-पहली खोज भी इस श्रेणी में आती है।

अगर मैं गलत हूं तो कृपया मुझे सही करें!

1

BFS जिसमें एक नोड एक मूल्यांकन कार्यf(n) के आधार पर विस्तार के लिए चयन किया जाता है पेड़ खोज और ग्राफ खोज एल्गोरिदम का एक उदाहरण है।

पारंपरिक रूप से, निम्नतम मूल्यांकन वाले नोड का विस्तार विस्तार के लिए चुना जाता है, क्योंकि मूल्यांकन उपायों को लक्ष्य के लिए दूरी प्रदान करता है।

बीएफएस प्राथमिकता कतार का उपयोग करता है।

लालची बीएफएस लक्ष्य के सबसे नज़दीकी नोड का विस्तार करने की कोशिश करता है, इस आधार पर, यह समाधान को जल्दी से ले जाता है।इस प्रकार यह हेरिस्टिक फ़ंक्शनf(n) = h(n) का उपयोग करके नोड्स का मूल्यांकन करता है।

+1

संक्षेप में: बीएफएस एफ = जी + एच का उपयोग करता है, लालची बीएफएस एफ = एच का उपयोग करता है, और ए * बीएफएस है यदि एच एक स्वीकार्य ह्युरिस्टिक है। – Ali

संबंधित मुद्दे