मूर ऑटोमेटा को कम करने के लिए एल्गोरिदम


11

ब्रोज़ोज़ोस्की के एल्गोरिथ्म को मूर ऑटोमेटा तक बढ़ाया जा सकता है लेकिन इसकी समय जटिलता सामान्य रूप से घातीय है। क्या मूर ऑटोमेटा को कम करने के लिए कोई अन्य एल्गोरिदम है? यदि इन एल्गोरिदम का कोई चल रहा हो तो क्या होगा?


ब्रेज़ोज़ोव्स्की के किस एल्गोरिदम का आप जिक्र कर रहे हैं? रेगुलर एक्सप्रेशन के डेरिवेटिव का उपयोग करने वाला?
जे- ई।

2
एसई कंप्यूटर साइंस में आपका स्वागत है। चूंकि आपने जाहिरा तौर पर साइट की प्रस्तुति को अभी तक नहीं पढ़ा है, इसलिए आपको पता होना चाहिए कि यह एक सहकारी कार्य है, जो उपयोगकर्ताओं से सवाल पूछने और उत्तर या टिप्पणी प्रदान करने वाले उपयोगकर्ताओं के बीच तकनीकी आदान-प्रदान पर आधारित है। इस प्रकार, टिप्पणियों में अधिक विवरण मांगने वाले, अच्छे उत्तर या अच्छी टिप्पणियों (या आपके द्वारा पढ़े गए अन्य रोचक प्रश्न या उत्तर), और अंततः आपके द्वारा दिए गए उत्तर को स्वीकार करने के लिए उचित विवरण पर विचार करना उचित है, " चुने हुए उत्तर के बाईं ओर "(एक V की तरह) साइन चेक करें।
बाबू

क्या उत्तर आपके किसी काम का था?
Babou

जवाबों:


6

मूल DFA न्यूनतम एल्गोरिथ्म वास्तव में मूर मशीनों के लिए डिज़ाइन किया गया था , उनके जाहिरा तौर पर अधिक अवलोकन व्यवहार द्वारा निर्देशित। लेकिन यहां प्रस्तुत एल्गोरिथ्म डीएफए न्यूनीकरण से एक पुनर्निर्माण है, क्योंकि मैंने इस तथ्य के बाद ऐतिहासिक साक्ष्य की खोज की थी।

विकिपीडिया के बाद (कुछ उल्लेखनीय परिवर्तनों के साथ):

एक मूर मशीन एक 6 टपल के रूप में परिभाषित किया जा सकता है निम्नलिखित से मिलकर:(Q,q0,Σ,Π,δ,γ)

  • राज्यों का एक निर्धारित सेट Q
  • एक प्रारंभिक अवस्था (जिसे प्रारंभिक अवस्था भी कहा जाता है) जो Q का एक तत्व हैq0Q
  • एक परिमित सेट इनपुट वर्णमाला बुलाया Σ
  • एक परिमित सेट उत्पादन वर्णमाला बुलाया Λ
  • एक संक्रमण समारोह एक राज्य और अगले राज्य के लिए इनपुट वर्णमाला मानचित्रण δ:Q×ΣQ
  • एक आउटपुट समारोह उत्पादन वर्णमाला के प्रत्येक राज्य मानचित्रण γ:QΠ

इस परिभाषा से, मूर मशीन एक नियतात्मक परिमित राज्य ट्रांसड्यूसर है।

मूर ऑटोमेटा को कम करने के लिए मेरे पास कोई संदर्भ नहीं है। हालांकि यह एक एल्गोरिथ्म की कल्पना करना बहुत मुश्किल नहीं है, जो नियतात्मक परिमित राज्य ऑटोमेटा के लिए उपयोग किए जाने वाले एल्गोरिदम से लिया गया है।

DFA न्यूनतमकरण का विचार नियमित भाषाओं के Myhill-Nerode लक्षण वर्णन पर आधारित है ।

एक भाषा , और स्ट्रिंग्स x और y की एक जोड़ी को देखते हुए , एक स्ट्रिंग z होने के लिए एक विशिष्ट विस्तार को परिभाषित करें जैसे कि दो स्ट्रिंग्स x z और y z में से एक L से संबंधित है । नियम से स्ट्रिंग्स पर एक रिश्ता आर एल को परिभाषित करें कि एक्स आर एल वाई इफ अगर एक्स और वाई के लिए कोई विशिष्ट विस्तार नहीं है । यह दिखाना आसान है कि आर एल स्ट्रिंग्स पर एक तुलनीय संबंध है, और इस प्रकार यह सभी स्ट्रिंग्स के सेट को समतुल्यता वर्गों में विभाजित करता है।LxyzxzyzLRLxRLyxyRL

Myhill-Nerode प्रमेय में कहा गया है कि नियमित है अगर और केवल R L में समतुल्य वर्गों की संख्या सीमित है, और इसके अलावा कि L की पहचान करने वाले सबसे छोटे निर्धारक परिमित ऑटोमेटन (DFA) में राज्यों की संख्या समतुल्य वर्गों की संख्या के बराबर है। में आर एलLRLLRL

वास्तव में सबसे छोटे DFA का प्रत्येक राज्य ऐसा है जो W क्यू के रूप में ऊपर परिभाषित किया गया है, जो संबंध R L के लिए समतुल्य वर्गों में से एक है ।qWqRL

नियमित भाषा लिए एक गैर-न्यूनतम डीएफए के लिए , यह दिखाना आसान है कि प्रत्येक सेट डब्ल्यू क्यू में तार हैं जो सभी आर एल के संबंध में एक समान समकक्ष वर्ग के हैं ।LWqRL

इसलिए, डीएफए के न्यूनतमकरण में वास्तव में विलय करने वाले राज्य (समतुल्य स्ट्रिंग के सेट के रूप में माने जाते हैं) होते हैं, जब भी यह दिखाया जाता है कि दो अलग-अलग राज्यों में समतुल्य तार होते हैं।

उस उद्देश्य के लिए दो यथोचित तेज़ एल्गोरिदम मौजूद हैं, मूर एल्गोरिथम (1956) जो समय और हॉपक्रॉफ्ट के एल्गोरिथ्म (1971) के समय ( एन लॉग एन ) में हैO(n2)O(nlogn)

RTTRLRT

TxyzT(xz)=T(x)uT(yz)=T(y)vuvzxy

RTΣ

निम्नलिखित एल्गोरिथ्म DFA न्यूनतम करने के लिए मूर एल्गोरिदम की नकल करता है।

PQSe

eΠ:Se={qQγ(q)=e}

P

S
   aΣ,
     SP,qS,δ(q,a)S
     SSi
      SiSPqSi,δ(q,a)S
      SiSP

जब कोई वर्ग नहीं बचा है जिसे विभाजित करने की आवश्यकता है, तो राज्यों के शेष वर्ग न्यूनतम मूर मशीन के राज्य बनाएंगे।

निर्माण के द्वारा, एक कक्षा के सभी राज्यों में एक ही आउटपुट होता है जो कक्षा के लिए आउटपुट होता है।

aΣ

n=|Q|s=|Σ|
nO(sn2)

मूर मशीनों की इस न्यूनता के लिए मेरे पास कोई संदर्भ नहीं है। संभवतः यह उनके पेपर में शामिल है:

मूर, एडवर्ड एफ (1956)। "अनुक्रमिक मशीनों पर गेदेंकेन-प्रयोग"। ऑटोमेटा स्टडीज , एनल्स ऑफ मैथमैटिकल स्टडीज (प्रिंसटन, एनजे: प्रिंसटन यूनिवर्सिटी प्रेस) (34): 129-153।

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

O(snlogn)


@ राफेल एक संदर्भ ... ठीक है, आप भाग्यशाली हैं, मैंने एल्गोरिथ्म को फिर से डिज़ाइन किया, क्योंकि मेरे पास एक पुस्तकालय तक पहुंच नहीं है। लेकिन जब से आप एक संदर्भ के लिए पूछा, मैं तुम्हें एक मिल गया। आपको इसे पसंद करना चाहिए। लेकिन मुझे यकीन नहीं है कि मैं इसे शिक्षण के लिए उपयोग करूंगा।
बाबू

@ राफेल पेपर अपनी प्रस्तुति में दिलचस्प है जो बीजगणित की तुलना में बहुत सहज, अधिक परिचालन का प्रयास करता है। मुझे माइहिल और नेरोड के योगदान के सभी विवरण याद नहीं हैं (1958 में दो साल बाद), और मैंने पेपर को ध्यान से नहीं पढ़ा (मैंने इसकी वजह से इसे कम कर दिया) लेकिन मैं सोच रहा हूं कि क्या सिद्धांत को मूर के रूप में जिम्मेदार नहीं ठहराया जाना चाहिए कुंआ।
बाबू

2

नियमित अभिव्यक्ति के डेरिवेटिव का उपयोग करके ब्रोज़ोज़ोस्की के एल्गोरिथ्म का एक संस्करण [2], अध्याय 12, धारा 4 में दिया गया है, जहां इसे [4] श्रेय दिया जाता है। बाद के ट्रांसड्यूसर के अधिक सामान्य मामले के लिए [1] और [३] देखें (शब्दावली थोड़ा पुराना है और अनुक्रमिक ट्रांसड्यूसर शब्द आजकल अधिक उपयुक्त है)।

[१] सी। चॉफ्रुट, बाद के ट्रांसड्यूसर्स को न्यूनतम करना: एक सर्वेक्षण, थियोरेट। अनि। विज्ञान। 292 (2003), 131–143।

[२] एस इलेनबर्ग, ऑटोमेटा, भाषाएँ और मशीनें, वॉल्यूम। ए, अकादमिक प्रेस, 1974।

[३] जे- ई। पिन, अनुक्रमिक कार्यों पर एक ट्यूटोरियल । (स्लाइड)

[४] जीएन राने, अनुक्रमिक कार्य, जेएसीएम (१ ९ ,), १ GN GN- १ .०।


@DW संपादन के लिए धन्यवाद। बिलकुल उत्तम।
जे- ई।

1

ब्रोज़ोज़ोव्स्की का एल्गोरिथ्म एक बुरा शुरुआती बिंदु है (यदि आप असममित सबसे खराब स्थिति से संबंधित हैं)। यहां तक ​​कि विकिपीडिया भी आपको उतना ही बताता है:

जैसा कि ब्रेज़ोज़ोव्स्की (1963) ने देखा, डीएफए के किनारों को उलट देना मूल भाषा के उत्क्रमण के लिए एक गैर-नियतात्मक परिमित ऑटोमेटन (एनएफए) का उत्पादन करता है, और इस एनएफए को मानक पावरसेट निर्माण (केवल उपलब्ध राज्यों का निर्माण) का उपयोग करके डीएफए में परिवर्तित करता है। परिवर्तित DFA) उसी उलट भाषा के लिए एक न्यूनतम DFA की ओर जाता है। इस उलटफेर को दोहराते हुए दूसरी बार मूल भाषा के लिए न्यूनतम डीएफए का उत्पादन होता है। ब्रोज़ोज़ोस्की के एल्गोरिथ्म की सबसे खराब स्थिति जटिल है, क्योंकि नियमित भाषाएं हैं जिनके लिए प्रतिवर्ती न्यूनतम डीएफए भाषा के न्यूनतम डीएफए की तुलना में तेजी से बड़ा है, [6] लेकिन यह अक्सर इस सबसे खराब स्थिति की तुलना में बेहतर होता है।

एल्गोरिथ्म में डीएफए पर भी घातीय सबसे खराब स्थिति है क्योंकि यह रिवर्स के लिए एक ऑटोमेटन की गणना करता है, जिसे घातीय रूप से बड़ा होना पड़ सकता है। तो आपकी समस्या विस्तार से ट्रांसड्यूसर तक नहीं आती है।

एक और DFA-न्यूनकरण एल्गोरिदम को अनुकूलित करने का प्रयास करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.