2012-02-09 29 views
12

मुझे पता था कि एक नियमित अभिव्यक्ति को एनएफए में परिवर्तित करना, एक एल्गोरिदम है।एनएफए को नियमित अभिव्यक्ति में परिवर्तित करने के लिए कैसे करें

लेकिन मैं सोच रहा था कि एनएफए को नियमित अभिव्यक्ति में बदलने के लिए एल्गोरिदम है या नहीं। यदि वहां है, तो यह क्या है?

और यदि नहीं है, तो मैं यह भी सोच रहा हूं कि सभी एनएफए नियमित अभिव्यक्ति में परिवर्तित हो सकते हैं या नहीं। क्या कोई एनएफए है ​​जो नियमित अभिव्यक्ति का प्रतिनिधित्व नहीं कर सकता है?

धन्यवाद! : डी

+0

के लिए रेगुलर एक्सप्रेशन * किसी * नियमित रूप से भाषा, इसलिए वहाँ व्यक्त कर सकते हैं प्रत्येक संभावित एनएफए के लिए कम से कम एक नियमित अभिव्यक्ति मौजूद होना चाहिए। हालांकि, मुझे अपने सिर के शीर्ष से एक नियमित अभिव्यक्ति के लिए एनएफए से जाने के लिए एल्गोरिदम नहीं पता है। –

+0

इसके अलावा, आपका समय वास्तव में बेवकूफी है - मेरे दोस्त ने आज कक्षा में मुझे यह वही प्रश्न पूछा। मुझे तब जवाब याद नहीं आया :( –

+2

यहां अपने प्रश्न के विभिन्न उत्तर देखें: http://cs.stackexchange.com/questions/2016/how-to-convert-finite-automata-to-regular- अभिव्यक्ति – Masterfool

उत्तर

8

यहाँ, एक एल्गोरिथ्म जहां प्रत्येक संक्रमण संवर्द्धित एक regex के साथ बदल जाता है जब तक वहाँ केवल एक प्रारंभिक और अंतिम अवस्था है: https://courses.engr.illinois.edu/cs373/sp2009/lectures/lect_08.pdf [PDF]

+0

यह सही है लेकिन यदि आपके पास बहुत नोड था, तो यह काम नहीं कर रहा है, यह एक साधारण और कुछ नोड्स के लिए अच्छा है, क्या कोई अन्य सुझाव है? –

+2

लिंक मेरे लिए मर चुका है। मुझे यह लिंक सोचा गया: https://courses.engr.illinois.edu/cs373/sp2009/lectures/lect_08.pdf –