मुझे विशेष मामलों के लिए DFA चौराहे के लिए कुशल एल्गोरिदम में दिलचस्पी है। अर्थात्, जब DFAs को काटना एक निश्चित संरचना का पालन करता है और / या सीमित वर्णमाला पर काम करता है। क्या कोई स्रोत है जहां मैं एल्गोरिदम ऐसे मामलों को पा सकता हूं?
प्रश्न को बहुत व्यापक नहीं बनाने के लिए, निम्नलिखित संरचना विशेष रुचि रखती है: द्विआधारी वर्णमाला (0 | 1) में संचालित करने के लिए सभी डीएफए, वे प्रतीकों का ध्यान नहीं रखते हैं। इसके अलावा, सभी राज्यों में अधिकांश K विशेष राज्यों को छोड़कर केवल एक ही संक्रमण होता है, जिसमें केवल दो संक्रमण होते हैं (और ये संक्रमण हमेशा 0 या 1 होते हैं, लेकिन कोई परवाह नहीं करते हैं)। K एक पूर्णांक है, व्यावहारिक उद्देश्यों के लिए 10 से कम है। इसके अलावा, उनके पास एक एकल राज्य है। इसके अतिरिक्त, यह ज्ञात है कि चौराहा हमेशा "पट्टी" के रूप में एक DFA है, अर्थात, निम्नलिखित छवि के रूप में कोई शाखा नहीं:
EDIT: शायद इनपुट DFAs पर बाधा का वर्णन बहुत स्पष्ट नहीं है। मैं इस पैराग्राफ में इसे बेहतर बनाने की कोशिश करूंगा। आपके पास इनपुट T DFAs के रूप में है। इनमें से प्रत्येक DFA केवल बाइनरी वर्णमाला पर संचालित होता है। उनमें से प्रत्येक के पास अधिकांश एन राज्यों में हैं। प्रत्येक DFA के लिए, इसका प्रत्येक राज्य निम्नलिखित में से एक है:
1) स्वीकार करने की स्थिति (यह केवल एक है और इससे किसी अन्य राज्य में कोई संक्रमण नहीं है)
2) एक ही लक्ष्य राज्य के लिए दो संक्रमण (0 और 1) वाला राज्य (अधिकांश राज्य इस तरह के हैं)
3) अलग-अलग लक्ष्य वाले राज्यों (दो और 1) के साथ एक राज्य ( इस तरह के अधिकांश K पर)
यह गारंटी है कि केवल एक ही स्वीकार करने वाला राज्य है और प्रत्येक इनपुट DFA में टाइप (3) के अधिकांश K राज्यों में हैं। यह भी गारंटी है कि सभी इनपुट डीएफए का प्रतिच्छेदन डीएफए एक "स्ट्रिप" (जैसा कि ऊपर वर्णित है), एन के आकार से कम है ।
EDIT2: कुछ अतिरिक्त अड़चनें, जैसा कि टिप्पणियों में DW द्वारा अनुरोध किया गया है:
- इनपुट DFAs DAGs हैं।
- टिप्पणी में डीडब्ल्यू परिभाषा के बाद इनपुट डीएफए "समतल" हैं। अर्थात्, आप प्रत्येक राज्य में अलग-अलग पूर्णांकों को इस तरह से असाइन कर सकते हैं कि प्रत्येक परिवर्तन पूर्णांक u से पूर्णांक v तक जाता है , जैसे कि u + 1 = v ।
- प्रत्येक इनपुट DFA के लिए राज्यों को स्वीकार करने की संख्या, K से अधिक नहीं है ।
कोई विचार? धन्यवाद।
a DFA in form of "strip", i.e., no branches
? क्या यू के पास यह मानने का कोई विशिष्ट कारण है कि आपके मामले में मानक एल्गोरिथम से बेहतर कोई कर सकता है?