नियमित भाषाओं का अधिकतम कारक खोजना


13

भाषा नियमित होने दें।L⊆Σ∗

का एक गुणन शब्दों के समूह की एक अधिकतम जोड़ी है ( एक्स , वाई )L(X,Y)

  • X⋅Y⊆L
  • X≠∅≠Y ,

जहाँ | ।एक्स ∈ एक्स , वाई ∈ वाई }X⋅Y={xyx∈X,y∈Y}

(X,Y) अधिक से अधिक है, तो प्रत्येक जोड़ी के लिए है साथ या तो या Y \ नहीं \ subseteq Y ' ।(X′,Y′)≠(X,Y)X′⋅Y′⊆LX⊈X′Y⊈Y′

क्या यह पता लगाने की एक सरल प्रक्रिया है कि कौन से जोड़े अधिकतम हैं?

उदाहरण:

चलो L=Σ∗abΣ∗ । सेट F={u,v,w} की गणना की जाती है:

  • u=(Σ∗,Σ∗abΣ∗)

  • v=(Σ∗aΣ∗,Σ∗bΣ∗)

  • w=(Σ∗abΣ∗,Σ∗)

जहां Σ={a,b} ।

एक और उदाहरण:

Σ={a,b} और L=Σ∗aΣ फैक्टराइजेशन सेट F={q,r,s,t} साथ

  • q=(Σ∗,L)

  • r=(Σ∗a,Σ+L)

  • s=(Σ∗aa,ϵ+Σ+L)

  • t=(L,ϵ+L)


4
मैं जैक्स सकारोविच द्वारा निम्नलिखित पेपर (esp। उपधारा 4.1) पढ़ने की सलाह देता हूं: perso.telecom-paristech.fr/~jsaka/PUB/Files/TUA.pdf
— कॉर्नेलियस ब्रांड

1
मुझे आश्चर्य है कि क्या आप समस्या के बारे में अधिक विशिष्ट होना चाहते हैं, अर्थात, आपके प्रश्न का अंतिम वाक्य? क्या हमें दिया गया है और हम परीक्षण करना चाहते हैं कि क्या अधिकतम है? क्या हमारा कार्य सभी को अधिक से अधिक समाहित करना है? यदि उत्तरार्द्ध है, तो यह स्पष्ट है कि यह सूची परिमित या बहुपद है? यह संभवत: सभी संभावनाओं की गणना करने के लिए एक एल्गोरिथ्म के लिए पूछने के लिए समझ में नहीं आता है अगर उनमें से कई हैं। इसके अलावा, क्या आप यह निर्दिष्ट करना चाहते हैं कि भाषा का प्रतिनिधित्व कैसे किया जाता है जब इसे हमारे सामने प्रस्तुत किया जाता है, और का प्रतिनिधित्व कैसे किया जाता है ? (उदाहरण के लिए, DFA, NFA, regexp)X,Y(X,Y)(X,Y)LX,Y
— DW

2
मैं आपके उदाहरणों को नहीं समझता। क्या को सभी अधिकतम जोड़े माना जाता है? मान्य होने के लिए प्रतीत नहीं होता ...u,v,wv
— राफेल

1
उदाहरण ऊपर उल्लिखित कागज से लिया गया है। को अधिकतम जोड़े माना जाता है। मुझे यह भी समझ में नहीं आ रहा है कि की गणना कैसे की जाती है क्योंकि ऐसा लगता है कि जरूरी नहीं कि । मैं एक और उदाहरण पोस्ट करूंगा। u,v,wvL
— लौरा

1
@ राफेल, यह मुझे ऐसा लगता है जैसे वैध है। दे , , , एक गुणन है के बाद से (किसी भी स्ट्रिंग है पर विचार इसमें , फिर 's और / या ' s का कोई भी क्रम होता , फिर अंततः : इस स्ट्रिंग में कुछ बिंदु होना चाहिए जहां पहला दिखाई देता है, इसलिए यह एक बिंदु है जहाँ यह )। मेरे पास इस बात का कोई प्रमाण नहीं है कि यह अधिकतम है, लेकिन मुझे कोई बड़ा सेट नहीं मिल रहा है जो का एक कारक है । vX=Σ∗aΣ∗Y=Σ∗bΣ∗(X,Y)X⋅Y=LaabbbabX′,Y′L
— DW

जवाबों:


8

जैसा कि प्रश्न के लिए टिप्पणियों में सुझाया गया है, मैं प्रश्न का उत्तर (दुर्भाग्य से आंशिक) देने की कोशिश करूंगा, कम से कम इस हद तक कि मैं स्वयं समस्या को समझ गया हूं (इसका तात्पर्य है कि आप अच्छी तरह से गलतियां पा सकते हैं, और यदि आप पाते हैं नीचे दिए गए बिंदुओं में से एक को अधिक संक्षेप में या स्पष्ट रूप से समझाने के लिए, उत्तर को संपादित करने के लिए स्वतंत्र महसूस करें):

सबसे पहले, एक को ध्यान देना चाहिए कि हमें वास्तव में किसी भाषा के सार्वभौमिक ऑटोमेटन की गणना नहीं करनी है यदि हम किसी भाषा के कारकों की गणना करना चाहते हैं।

मेरी टिप्पणी में उल्लिखित कागज से , एक नियमित भाषा के बाएं और दाएं कारकों के बीच 1-1 पत्राचार है, अर्थात, भाषा के एक बाएं कारक को दिया जाता है, इसी सही कारक को विशिष्ट रूप से निर्धारित किया जाता है और इसके विपरीत। अधिक सटीक रूप से, हमारे पास निम्नलिखित हैं:

आज्ञा देना का एक कारक है । फिर अर्थात, कोई भी बायां कारक सही उद्धरणों का प्रतिच्छेदन है, और कोई भी सही कारक बाएं कोटेशन का प्रतिच्छेदन है। इसके विपरीत, के बाईं quotients के किसी भी चौराहे की एक सही कारक है , और के अधिकार quotients के किसी भी चौराहे के एक छोड़ दिया कारक है ।(X,Y)L

Y=⋂x∈Xx−1L,X=⋂y∈YLy−1,
LLLL

ध्यान दें कि एक नियमित भाषा के लिए, बाएं और दाएं उद्धरणों का केवल एक सीमित सेट होता है, और इस प्रकार या समस्या किसी भाषा के बाएं और दाएं उद्धरणों की गणना करने के लिए कम हो जाती है, और फिर उनके -stable बंद होने की गणना करने के लिए, अर्थात् चौराहे के नीचे बंद किए गए उद्धरणों का न्यूनतम सुपरसेट। ये फिर सही कारक और बाएं कारक हैं, और फिर आमतौर पर यह देखना आसान है कि कौन से जोड़े सबसेट हैं ।∩L

उदाहरण

उपरोक्त बिंदुओं को स्पष्ट करने के लिए, प्रश्न में पहला उदाहरण देखें (जिसमें से मुझे यह भी लगता है कि यह कागज में गलत है):

चलो । अब, के बाएं भाग के सेट , जो कि लिए हैं , अर्थात, ये शब्द in जिन्हें , यानी साथ उपसर्ग किया जा सकता । जब लिए अलग ? यह मामला है अगर और केवल अगर और को शब्दों में संवर्धित किया जा सकता हैL=Σ∗abΣ∗Lx−1Lx∈Σ∗uΣ∗xxu∈Ly−1L=x−1Lx,yxyLठीक उसी प्रत्यय के साथ। इसका मतलब है, इसे और अधिक परिचित शब्दों में रखना, वे नेरोडे-समतुल्य हैं, और जिन प्रत्ययों को एक नेरोडे वर्ग में शब्दों को जोड़ने की आवश्यकता है, वे वास्तव में संबंधित बाएं उद्धरण हैं।

के लिए , हम देखते हैं कि हमारे Nerode-तुल्यता वर्ग हैंL

  • N1 , एक कारक के रूप में युक्त और साथ समाप्त होने वाले शब्दों का सेट , aba
  • N2 , साथ समाप्त होने वाले शब्दों का समूह और कारक के रूप में नहीं है, और bab
  • N3 , एक फैक्टर के रूप में वाले शब्दों का समूह , जोabN3=L

उन्हें निम्नलिखित सेटों के साथ संवर्धित किया जा सकता है (जो कि संबंधित कक्षाओं में शब्दों के बाएं भाग हैं):

  • S1=x−1L में के लिए में में सभी शब्द हैं (किसी भी शब्द को कारक के रूप में वाले शब्द से संवर्धित किया जा सकता है और इस तरह में एक शब्द बन जाता है ) और , कि हैxN1LabLbΣ∗S1=L∪bΣ∗
  • S2=x−1L में के लिए भाषा स्वयं है, , और हैxN2S2=L
  • S3=x−1L के लिए में जाहिर है । यही है, हमने तीन सही कारक पाए हैं । रूप में , उनका -stable बंद होना तुच्छ रूप से , और फिर वे ठीक कारक हैं।xN3Σ∗LS2⊂S1⊂S3∩S1,S2,S3

इसलिए, हमारा कारक निर्धारण फॉर्म ।FL(P1,S1),(P2,S2),(P3,S3)

अब, के बाएं कारकों के लिए , हम इस उत्तर की शुरुआत के समीकरणों का उपयोग करते हैं:Pi

Pi=⋂x∈SiLx−1
।

के लिए , इस पैदावार , के लिए पर हम पाते हैं और के लिए , हम प्राप्त । आप इसे निरीक्षण के द्वारा देख सकते हैं (एक औपचारिक प्रमाण बताने के लिए बहुत आलसी होने के लिए सबसे लोकप्रिय बहाना) या सही उद्धरणों को स्पष्ट रूप से गणना करके (जो कि पूरी तरह से अनुरूप है, हालांकि पूरी तरह से नहीं, बाएं उद्धरणों की गणना करने के लिए)। इस प्रकार हमारी कारकताएँ द्वारा दी जाती जहाँP1L∪Σ∗aP2Σ∗P3LFL=u,v,w

  • u=(P1,S1)=(Σ∗abΣ∗∪Σ∗a,Σ∗abΣ∗∪bΣ∗)
  • v=(P2,S2)=(Σ∗,Σ∗abΣ∗) और
  • w=(P3,S3)=(Σ∗abΣ∗,Σ∗)

सारांश

संक्षेप में (जैसा कि आप एक सरल प्रक्रिया के लिए पूछ रहे थे):

  • एक भाषा के factorizations कंप्यूटिंग के लिए , पहले के बाईं quotients गणना ।LL
  • तुम्हें पता है, ऐसा कर सकते हैं कागज की भाषा में, एक न्यूनतम DFA का निर्माण करके के लिए प्रत्येक राज्य के लिए और फिर में (एक Nerode-तुल्यता वर्ग के रूप में इसी,, एक बाएं भागफल के लिए) के भविष्य की गणना में , इस प्रकार प्रत्येक राज्य के लिए भाषा के एक बाएं भाग को प्राप्त करना।ALqAqA
  • इस तरह से प्राप्त किए गए बाएं कोटेशन का संग्रह, सामान्य रूप से, सही कारकों का एक सबसेट है।SR
  • कंप्यूट तो का -stable बंद है, जो व्यवहार में से किसी सबसेट के चौराहे के गठन से किया जा सकता है और किसी भी सबसेट के लिए इस तरह से प्राप्त जोड़ने ।∩SRSRSR
  • पिछले चरण से सभी चौराहों के साथ सेट तब के सही कारकों का सेट है ।SRL
  • बाएं कारकों को प्राप्त करने के लिए, हम के सही उद्धरणों की गणना कर सकते हैं ।L
  • ये फॉर्म के सेट हैं , । अब, ये फिर से केवल बहुत से हैं, और , हमारे पास है और यदि केवल सभी के लिए , , यह है कि वे भाषा में शब्दों के साथ को ठीक उसी प्रकार सेट कर सकते हैं।Ly−1y∈Σ∗x≠yLy−1=Lx−1u∈Σ∗ux∈L⇔uy∈L
  • गणना करने के लिए , उन अवस्थाओं को में जैसे कि , के भविष्य में निहित है । उन राज्यों के अतीत का मिलन एक सही भागफल का गठन करता है। इन सभी उद्धरणों का पता लगाएं।Lx−1qAxq
  • आप जानते हैं कि जब आप सही कारकों के रूप में कई बाएं कारकों के रूप में पाया है, तो आप कर रहे हैं।
  • छोड़ दिया और सही कारकों में से उन लोगों के जोड़े का पता लगाएं ऐसी है कि । यह ।X,YX⋅Y⊆LFL

  1. द लोम्बोर्डी और साकारोविच द्वारा यूनिवर्सल ऑटोमेटन ( तर्क और खेलों में ग्रंथों में, खंड 2: तर्क और ऑटोमेटा: इतिहास और परिप्रेक्ष्य , 2007)

3
अच्छा! आइए ध्यान दें कि नियमित भाषाओं के लिए निर्णायक है और ये कारक , अंत में बंद होने के गुणों के कारण नियमित हो रहे हैं। इसलिए हम न केवल सारांश में अंतिम गोली को प्रभावी ढंग से गणना कर सकते हैं, बल्कि हम अधिकतम जोड़ों को भी फ़िल्टर कर सकते हैं। A⊆BXY
— राफेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.