2010-12-15 14 views
8

क्या किसी के पास दो दिए गए डीएफए के संघ के निर्माण के लिए एल्गोरिदम का सीधा विवरण है? उदाहरण के लिए, कहते हैं कि हम दो DFA खत्म हो चुका है {0,1} है जहांआप दो डीएफए के संघ का निर्माण कैसे करते हैं?

{w|w has an odd number of characters} 
    w has states A and B 

delta | 0 | 1 
---------------- 
    A | B | B 
---------------- 
    B | A | A 


{x|x has an even number of 1s} 
    x has states a and b 

delta | 0 | 1 
---------------- 
    a | a | b 
---------------- 
    b | b | a 

मैं एक जिसके परिणामस्वरूप संक्रमण के रूप में संघ दिखा तालिका:

delta | 0 | 1 
---------------- 
    Aa | Ba | Bb 
---------------- 
    Ab | Bb | Ba 
---------------- 
    Ba | Aa | Ab 
---------------- 
    Bb | Ab | Aa 

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

उत्तर

8

समझने की कुंजी यह है कि आपको दो डीएफए एक साथ चलाने होंगे, या सामान्य रूप से आपको संघ डीएफए में दोनों डीएफए के राज्यों को बनाए रखना होगा।

यही कारण है कि आपको मूल राज्यों के प्रत्यक्ष गुणा के रूप में संघ डीएफए के लिए नए राज्य बनाना है। इस तरह आपके पास मूल डीएफए में राज्यों के हर संयोजन के लिए एक राज्य है।

नए डीएफए के लिए संक्रमण नियमों की गणना सीधे की जा सकती है। उदाहरण के लिए यदि आप राज्य एब में हैं, और आपको इनपुट पर 0 मिलते हैं, तो पहला डीएफए राज्य बी और दूसरा राज्य बी के लिए जाएगा, इसलिए इस इनपुट के लिए यूनियन डीएफए का अगला राज्य बीबी होगा।

यह विधि हर मामले में काम करती है जब आपको दो या दो से अधिक डीएफए का संघ बनाने की आवश्यकता होती है। परिणामी डीएफए इष्टतम नहीं हो सकता है, लेकिन बाद में आप इसे किसी भी एल्गोरिदम के साथ कम कर सकते हैं।

+0

क्या आपको एक संक्रमण मिलता है जो ऑटोमाटा में असंभव है? –

+0

आप automaton के लिए ई (त्रुटि) स्थिति जोड़ देंगे जिसमें असंभव संक्रमण है। वह automaton शेष इनपुट अनुक्रम के लिए उस स्थिति में रहेगा। मान लें कि यह पहला है। इसके बाद आप नए एबोनॉन में एए अब, बा, बीबी, ईए, ईबी राज्य करेंगे। – Nenad

+0

मुझे लगता है कि यह समान होगा यदि एक automaton केवल इनपुट प्रतीक के रूप में {0,1} है, और दूसरे के पास इनपुट प्रतीक के रूप में {1,2} है। इसके बाद हमें त्रुटि राज्यों (दूसरे के लिए ई और दूसरे के लिए ई) के साथ दोनों automatons का विस्तार करना होगा, जहां पहला इनपुट होगा यदि 2 इनपुट होता है, और दूसरा इनपुट होता है तो 0 स्थिति में होता है। – Nenad

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