2013-06-08 7 views
6

मैं Warshall एल्गोरिथ्म लागू करने के लिए जल्दी से गणना करने के लिए एलआर (1) बंद कोशिश कर रहा हूँ।कैसे सकर्मक बंद करने के लिए Warshall एल्गोरिथ्म का उपयोग करने के लिए विहित एलआर (1) पार्सर बंद निर्धारित करने के लिए?

मुझे लगता है कि मैं समझता हूँ कि यह कैसे एलआर लिए काम करता है (0):

  • ग्राफ के नोड्स, LR items हैं A → B • C
  • की तरह किनारों "बदलाव" A → B • C से C → • D
  • शुरू कर रहे हैं

समस्या यह है कि, एलआर (1) को लुकहेड की गणना की आवश्यकता होती है, और मैं यह नहीं समझ सकता कि उन्हें अल्गोरी में कैसे शामिल किया जाए thm।
ऐसा लगता है कि मुझे पता है कि किसी दिए गए एलआर आइटम I के संक्रमणकालीन बंद होने पर भी को सभी आइटमों के लिए लुकहेड सेट को समझने के लिए सभी समान गणना के माध्यम से जाने की आवश्यकता है।

कैनोलिक एलआर (1) बंद करने की गणना करने के लिए वॉर्शल के एल्गोरिदम का उपयोग करना भी संभव है, या क्या यह केवल अधिक प्रतिबंधित मामलों (जैसे एलआर (0), एसएलआर (1) इत्यादि) के लिए संभव है?

उत्तर

1

मुझे नहीं लगता कि आप इस के लिए Warshall एल्गोरिथ्म का उपयोग कर सकते हैं, हर बार जब आप एक नया आइटम जोड़ने, तो आप अन्य आइटम जोड़ने के लिए हो सकता है क्योंकि है। यह एक पुनरावृत्ति प्रक्रिया है। निर्देशित ग्राफ या कनेक्टिविटी मैट्रिक्स बदलते रहेंगे। मैं इसके बारे में गलत हो सकता था। मैंने बंदरगाह सेट में पहले से शामिल वस्तुओं की एक सरणी रखते हुए एलआर (1) आइटम सेट को पुनरावृत्ति प्रक्रिया के साथ बंद कर दिया। आप मेरे LRSTAR Parser Generator डाउनलोड कर सकते हैं और यदि आप चाहें तो स्रोत कोड देखें। आप तय कर सकते हैं कि आपको अपना खुद का पार्सर जनरेटर लिखने और एलआरएसटीएआर का उपयोग करने की आवश्यकता नहीं है। नोट: मैं,, DeRemer के कागज से संयुक्ताक्षर एल्गोरिथ्म इस्तेमाल किया देखो आगे सेट की गणना के लिए Warshall के एल्गोरिदम के बजाय। list of papers implemented in LRSTAR on the website देखें।

+0

+1 धन्यवाद! असल में (एक लंबे समय के बाद) मैं किसी विशेष कलन विधि का उपयोग नहीं क्योंकि अब मैं इसे देखा है, कम संभावित कक्ष मैं सुधार के लिए देखा था समाप्त हो गया। मैं अपना खुद का एलआर (के) पार्सर जनरेटर बनाने के लिए समाप्त हुआ, हालांकि यह बहुत दर्दनाक था! (यह हर के लिए काम करता है, लेकिन यह व्याकरण के आधार पर क्षैतिज रूप से लंबे समय तक ले सकता है।) – Mehrdad

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