2010-10-14 8 views
6

समकक्ष हैं या नहीं, मैं यह पता लगाने की कोशिश कर रहा हूं कि एल्गोरिदम दो भाषाओं को एल 1 और एल 2 दिया जा रहा है यह निर्धारित करने के लिए कि वे बराबर हैं (एल 1 = एल 2) ।एक एल्गोरिदम खोजने की कोशिश कर रहा है जो 2 नियमित अभिव्यक्तियों को लेता है और बताता है कि वे

यह आश्चर्य की बात के रूप में मैं मिल गया है एक साथ आने के लिए मुश्किल है, हालांकि मैं बहुत यकीन है कि यह पहली बार एक DFA में परिवर्तित किया और फिर एक न्यूनतम DFA उनमें से प्रत्येक को कम की जरूरत है कर रहा हूँ ..

इसके अलावा, मुझे पता है कि यदि एल 1 - एल 2 और एल 2 - एल 1 खाली हैं, तो एल 1 = एल 2।

कोई भी सिद्धांत के साथ अच्छा है?

+0

पढ़ें http://en.wikipedia.org/wiki/Regular_expression#Deciding_equivalence_of_regular_expressions – Gumbo

+1

पहले से ही पढ़ा गया है ... और कुछ मिला? – John

+0

@ गम्बो: वह लिंक सैद्धांतिक (गणितीय) मॉडल के लिए निश्चित रूप से है; वास्तविक रेगेक्स भाषाएं बहुत समृद्ध हैं और संरचनाएं शामिल हैं (विशेष रूप से पीछे संदर्भ) का अर्थ है कि वे अब/नियमित नहीं हैं। यह निश्चित रूप से केवल समस्या को कठिन बनाता है :-( – Richard

उत्तर

1

आप आरईई परीक्षण के लिए एक उचित कुशल एल्गोरिदम का वर्णन पा सकते हैं। यहां समानता:

http://arxiv.org/PS_cache/arxiv/pdf/0907/0907.5058v1.pdf

लेख के संदर्भ के माध्यम से खुदाई अन्य समाधान है कि कम कुशल हो सकता है लगता है, लेकिन लागू करने के लिए आसान।

1

यहां एक अवधारणात्मक सरल उत्तर है (मान लीजिए कि एल 1 और एल 2 नियमित हैं)।

1) क्रमशः एल 1 और एल 2 के लिए डीएफए डी 1 और डी 2 खोजें।

2) स्वीकार करने/गैर-स्वीकार्य राज्यों को स्वैप करके डी 1 और डी 2 से डी 1 और डी 2 का निर्माण (ध्यान दें कि डी 1 वास्तव में ~ एल 1 और डी 2 स्वीकार करता है ~ एल 2 जहां ~ का अर्थ "पूरक" है)

3) मानक उत्पाद निर्माण में तीन बार DFA कि ~ एल 2 एक दूसरे को काटना बिल्कुल (एल 1 स्वीकार करता है) संघ (~ एल 1 एक दूसरे को काटना एल 2) के उत्पादन के लिए प्रयोग करें

4) भाग से अगर DFA देखने के लिए 3 को स्वीकार करता है प्रारंभ राज्य से पहुंचने के लिए प्रत्येक स्वीकार्य स्थिति की जांच करके कोई तार।

5) यदि भाग 3 से डीएफए किसी भी तार को स्वीकार करता है, तो एल> एल 2। अन्यथा, एल 1 = एल 2

वहां बड़ी संख्या में हेरिस्टिक हैं जिनका उपयोग आप इसे गति देने के लिए कर सकते हैं, लेकिन अवधारणात्मक रूप से, यह शायद सबसे सरल एल्गोरिदम है। भाग 3 में उत्पाद निर्माण के लिए एक अच्छा संदर्भ डेक्सटर कोज़ेन द्वारा "ऑटोमाटा और कम्प्यूटेबिलिटी" है।

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

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