ब्रोज़ोज़ोस्की के एल्गोरिथ्म को मूर ऑटोमेटा तक बढ़ाया जा सकता है लेकिन इसकी समय जटिलता सामान्य रूप से घातीय है। क्या मूर ऑटोमेटा को कम करने के लिए कोई अन्य एल्गोरिदम है? यदि इन एल्गोरिदम का कोई चल रहा हो तो क्या होगा?
ब्रोज़ोज़ोस्की के एल्गोरिथ्म को मूर ऑटोमेटा तक बढ़ाया जा सकता है लेकिन इसकी समय जटिलता सामान्य रूप से घातीय है। क्या मूर ऑटोमेटा को कम करने के लिए कोई अन्य एल्गोरिदम है? यदि इन एल्गोरिदम का कोई चल रहा हो तो क्या होगा?
जवाबों:
मूल DFA न्यूनतम एल्गोरिथ्म वास्तव में मूर मशीनों के लिए डिज़ाइन किया गया था , उनके जाहिरा तौर पर अधिक अवलोकन व्यवहार द्वारा निर्देशित। लेकिन यहां प्रस्तुत एल्गोरिथ्म डीएफए न्यूनीकरण से एक पुनर्निर्माण है, क्योंकि मैंने इस तथ्य के बाद ऐतिहासिक साक्ष्य की खोज की थी।
विकिपीडिया के बाद (कुछ उल्लेखनीय परिवर्तनों के साथ):
एक मूर मशीन एक 6 टपल के रूप में परिभाषित किया जा सकता है निम्नलिखित से मिलकर:
- राज्यों का एक निर्धारित सेट
- एक प्रारंभिक अवस्था (जिसे प्रारंभिक अवस्था भी कहा जाता है) जो Q का एक तत्व है
- एक परिमित सेट इनपुट वर्णमाला बुलाया
- एक परिमित सेट उत्पादन वर्णमाला बुलाया
- एक संक्रमण समारोह एक राज्य और अगले राज्य के लिए इनपुट वर्णमाला मानचित्रण
- एक आउटपुट समारोह उत्पादन वर्णमाला के प्रत्येक राज्य मानचित्रण
इस परिभाषा से, मूर मशीन एक नियतात्मक परिमित राज्य ट्रांसड्यूसर है।
मूर ऑटोमेटा को कम करने के लिए मेरे पास कोई संदर्भ नहीं है। हालांकि यह एक एल्गोरिथ्म की कल्पना करना बहुत मुश्किल नहीं है, जो नियतात्मक परिमित राज्य ऑटोमेटा के लिए उपयोग किए जाने वाले एल्गोरिदम से लिया गया है।
DFA न्यूनतमकरण का विचार नियमित भाषाओं के Myhill-Nerode लक्षण वर्णन पर आधारित है ।
एक भाषा , और स्ट्रिंग्स x और y की एक जोड़ी को देखते हुए , एक स्ट्रिंग z होने के लिए एक विशिष्ट विस्तार को परिभाषित करें जैसे कि दो स्ट्रिंग्स x z और y z में से एक L से संबंधित है । नियम से स्ट्रिंग्स पर एक रिश्ता आर एल को परिभाषित करें कि एक्स आर एल वाई इफ अगर एक्स और वाई के लिए कोई विशिष्ट विस्तार नहीं है । यह दिखाना आसान है कि आर एल स्ट्रिंग्स पर एक तुलनीय संबंध है, और इस प्रकार यह सभी स्ट्रिंग्स के सेट को समतुल्यता वर्गों में विभाजित करता है।
Myhill-Nerode प्रमेय में कहा गया है कि नियमित है अगर और केवल R L में समतुल्य वर्गों की संख्या सीमित है, और इसके अलावा कि L की पहचान करने वाले सबसे छोटे निर्धारक परिमित ऑटोमेटन (DFA) में राज्यों की संख्या समतुल्य वर्गों की संख्या के बराबर है। में आर एल ।
वास्तव में सबसे छोटे DFA का प्रत्येक राज्य ऐसा है जो W क्यू के रूप में ऊपर परिभाषित किया गया है, जो संबंध R L के लिए समतुल्य वर्गों में से एक है ।
नियमित भाषा लिए एक गैर-न्यूनतम डीएफए के लिए , यह दिखाना आसान है कि प्रत्येक सेट डब्ल्यू क्यू में तार हैं जो सभी आर एल के संबंध में एक समान समकक्ष वर्ग के हैं ।
इसलिए, डीएफए के न्यूनतमकरण में वास्तव में विलय करने वाले राज्य (समतुल्य स्ट्रिंग के सेट के रूप में माने जाते हैं) होते हैं, जब भी यह दिखाया जाता है कि दो अलग-अलग राज्यों में समतुल्य तार होते हैं।
उस उद्देश्य के लिए दो यथोचित तेज़ एल्गोरिदम मौजूद हैं, मूर एल्गोरिथम (1956) जो समय और हॉपक्रॉफ्ट के एल्गोरिथ्म (1971) के समय ओ ( एन लॉग एन ) में है ।
निम्नलिखित एल्गोरिथ्म DFA न्यूनतम करने के लिए मूर एल्गोरिदम की नकल करता है।
जब कोई वर्ग नहीं बचा है जिसे विभाजित करने की आवश्यकता है, तो राज्यों के शेष वर्ग न्यूनतम मूर मशीन के राज्य बनाएंगे।
निर्माण के द्वारा, एक कक्षा के सभी राज्यों में एक ही आउटपुट होता है जो कक्षा के लिए आउटपुट होता है।
मूर मशीनों की इस न्यूनता के लिए मेरे पास कोई संदर्भ नहीं है। संभवतः यह उनके पेपर में शामिल है:
मूर, एडवर्ड एफ (1956)। "अनुक्रमिक मशीनों पर गेदेंकेन-प्रयोग"। ऑटोमेटा स्टडीज , एनल्स ऑफ मैथमैटिकल स्टडीज (प्रिंसटन, एनजे: प्रिंसटन यूनिवर्सिटी प्रेस) (34): 129-153।
यह कागज मूर मशीनों को पेश करने वाला मुख्य संदर्भ है । यह मूर के डीएफए न्यूनतमकरण एल्गोरिदम के लिए भी संदर्भ है । इस प्रकार आश्चर्य होना चाहिए कि मूर मशीनों के कम से कम करने के लिए एल्गोरिथ्म का अनुकूलन उस पेपर में कम से कम सुझाव नहीं दिया गया था। मैंने कागज की जांच की, और प्रस्तुत किए गए न्यूनतमकरण एल्गोरिदम का संस्करण वास्तव में मूर मशीनों के लिए है, डीएफए के लिए नहीं। पेपर अच्छी तरह से लिखा गया है, लेकिन उस समय की शैली को पढ़ना थोड़ा कठिन हो जाता है। यह देखना दिलचस्प है कि फ़िनाइट स्टेट मशीनों के माइहिल-नेरोड सिद्धांत के कई विचार पहले से ही इस पत्र में स्केच किए गए हैं।
नियमित अभिव्यक्ति के डेरिवेटिव का उपयोग करके ब्रोज़ोज़ोस्की के एल्गोरिथ्म का एक संस्करण [2], अध्याय 12, धारा 4 में दिया गया है, जहां इसे [4] श्रेय दिया जाता है। बाद के ट्रांसड्यूसर के अधिक सामान्य मामले के लिए [1] और [३] देखें (शब्दावली थोड़ा पुराना है और अनुक्रमिक ट्रांसड्यूसर शब्द आजकल अधिक उपयुक्त है)।
[१] सी। चॉफ्रुट, बाद के ट्रांसड्यूसर्स को न्यूनतम करना: एक सर्वेक्षण, थियोरेट। अनि। विज्ञान। 292 (2003), 131–143।
[२] एस इलेनबर्ग, ऑटोमेटा, भाषाएँ और मशीनें, वॉल्यूम। ए, अकादमिक प्रेस, 1974।
[३] जे- ई। पिन, अनुक्रमिक कार्यों पर एक ट्यूटोरियल । (स्लाइड)
[४] जीएन राने, अनुक्रमिक कार्य, जेएसीएम ५ (१ ९ ५ ,), १ GN GN- १ .०।
ब्रोज़ोज़ोव्स्की का एल्गोरिथ्म एक बुरा शुरुआती बिंदु है (यदि आप असममित सबसे खराब स्थिति से संबंधित हैं)। यहां तक कि विकिपीडिया भी आपको उतना ही बताता है:
जैसा कि ब्रेज़ोज़ोव्स्की (1963) ने देखा, डीएफए के किनारों को उलट देना मूल भाषा के उत्क्रमण के लिए एक गैर-नियतात्मक परिमित ऑटोमेटन (एनएफए) का उत्पादन करता है, और इस एनएफए को मानक पावरसेट निर्माण (केवल उपलब्ध राज्यों का निर्माण) का उपयोग करके डीएफए में परिवर्तित करता है। परिवर्तित DFA) उसी उलट भाषा के लिए एक न्यूनतम DFA की ओर जाता है। इस उलटफेर को दोहराते हुए दूसरी बार मूल भाषा के लिए न्यूनतम डीएफए का उत्पादन होता है। ब्रोज़ोज़ोस्की के एल्गोरिथ्म की सबसे खराब स्थिति जटिल है, क्योंकि नियमित भाषाएं हैं जिनके लिए प्रतिवर्ती न्यूनतम डीएफए भाषा के न्यूनतम डीएफए की तुलना में तेजी से बड़ा है, [6] लेकिन यह अक्सर इस सबसे खराब स्थिति की तुलना में बेहतर होता है।
एल्गोरिथ्म में डीएफए पर भी घातीय सबसे खराब स्थिति है क्योंकि यह रिवर्स के लिए एक ऑटोमेटन की गणना करता है, जिसे घातीय रूप से बड़ा होना पड़ सकता है। तो आपकी समस्या विस्तार से ट्रांसड्यूसर तक नहीं आती है।
एक और DFA-न्यूनकरण एल्गोरिदम को अनुकूलित करने का प्रयास करें।