गैर-अम्बुइगुइटी नियतत्ववाद से अलग कैसे है?


13

मैं यह समझने की कोशिश कर रहा हूं कि "नियतात्मक संदर्भ-मुक्त व्याकरण" जैसे अभिव्यक्तियों में "नियतात्मक" का क्या अर्थ है। (इस क्षेत्र में अधिक निर्धारक "चीजें" हैं)। मैं एक उदाहरण की अधिक सराहना करता हूं फिर सबसे विस्तृत व्याख्या! अगर संभव हो तो।

भ्रम का मेरा प्राथमिक स्रोत यह बताने में सक्षम नहीं है कि एक व्याकरण की यह संपत्ति कैसे (गैर) अस्पष्टता से अलग है।

निकटतम मुझे यह खोजने के लिए मिला कि इसका अर्थ क्या है। यह कागज के डी। नथ द्वारा भाषाओं के अनुवाद पर बाएं से दाएं का उद्धरण है :

गिन्सबर्ग और ग्रीबाच (1965) ने एक नियतात्मक भाषा की धारणा को परिभाषित किया है; हम धारा V में दिखाते हैं कि ये ठीक वही भाषाएँ हैं जिनके लिए एक LR (k) व्याकरण मौजूद है

जो आपके पास आते ही सर्कुलर हो जाता है Section V, क्योंकि वहां पर यह कहा जाता है कि LR (k) पार्सर क्या पार्स कर सकता है, जो नियतांक है ...


नीचे एक उदाहरण है जो मुझे यह समझने में मदद कर सकता है कि "अस्पष्ट" का अर्थ क्या है, कृपया एक नज़र डालें:

onewartwoearewe

जिसे one war two ear eweया के रूप में पार्स किया जा सकता है o new art woe are we- यदि कोई व्याकरण अनुमति देता है (कहो कि यह मेरे द्वारा सूचीबद्ध सभी शब्द हैं)।

इस उदाहरण की भाषा (गैर-) निर्धारक बनाने के लिए मुझे क्या करने की आवश्यकता होगी? (मैं, उदाहरण के लिए, oव्याकरण से शब्द को हटा सकता हूं, व्याकरण को अस्पष्ट नहीं बनाने के लिए)।

क्या उपरोक्त भाषा निर्धारक है?

पुनश्च। इसका उदाहरण गोडेल, एशर, बाख: अनन्त गोल्डन ब्रैड पुस्तक से है।


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

S -> A 'we' | A 'ewe'
A -> B | BA
B -> 'o' | 'new' | 'art' | 'woe' | 'are' | 'one' | 'war' | 'two' | 'ear'

संपूर्ण स्ट्रिंग को पार्स करने के तर्क से, क्या यह व्याकरण भाषा को गैर-निर्धारक नहीं बनाता है?


let explode s =
  let rec exp i l =
    if i < 0 then l else exp (i - 1) (s.[i] :: l) in
  exp (String.length s - 1) [];;

let rec woe_parser s =
  match s with
  | 'w' :: 'e' :: [] -> true
  | 'e' :: 'w' :: 'e' :: [] -> true
  | 'o' :: x -> woe_parser x
  | 'n' :: 'e' :: 'w' :: x -> woe_parser x
  | 'a' :: 'r' :: 't' :: x -> woe_parser x
  | 'w' :: 'o' :: 'e' :: x -> woe_parser x
  | 'a' :: 'r' :: 'e' :: x -> woe_parser x
  (* this line will trigger an error, because it creates 
     ambiguous grammar *)
  | 'o' :: 'n' :: 'e' :: x -> woe_parser x
  | 'w' :: 'a' :: 'r' :: x -> woe_parser x
  | 't' :: 'w' :: 'o' :: x -> woe_parser x
  | 'e' :: 'a' :: 'r' :: x -> woe_parser x
  | _ -> false;;

woe_parser (explode "onewartwoearewe");;
- : bool = true

| Label   | Pattern      |
|---------+--------------|
| rule-01 | S -> A 'we'  |
| rule-02 | S -> A 'ewe' |
| rule-03 | A -> B       |
| rule-04 | A -> BA      |
| rule-05 | B -> 'o'     |
| rule-06 | B -> 'new'   |
| rule-07 | B -> 'art'   |
| rule-08 | B -> 'woe'   |
| rule-09 | B -> 'are'   |
| rule-10 | B -> 'one'   |
| rule-11 | B -> 'war'   |
| rule-12 | B -> 'two'   |
| rule-13 | B -> 'ear'   |
#+TBLFM: @2$1..@>$1='(format "rule-%02d" (1- @#));L

Generating =onewartwoearewe=

First way to generate:

| Input             | Rule    | Product           |
|-------------------+---------+-------------------|
| ''                | rule-01 | A'we'             |
| A'we'             | rule-04 | BA'we'            |
| BA'we'            | rule-05 | 'o'A'we'          |
| 'o'A'we'          | rule-04 | 'o'BA'we'         |
| 'o'BA'we'         | rule-06 | 'onew'A'we'       |
| 'onew'A'we'       | rule-04 | 'onew'BA'we'      |
| 'onew'BA'we'      | rule-07 | 'onewart'A'we'    |
| 'onewart'A'we'    | rule-04 | 'onewart'BA'we'   |
| 'onewart'BA'we'   | rule-08 | 'onewartwoe'A'we' |
| 'onewartwoe'A'we' | rule-03 | 'onewartwoe'B'we' |
| 'onewartwoe'B'we' | rule-09 | 'onewartwoearewe' |
|-------------------+---------+-------------------|
|                   |         | 'onewartwoearewe' |

Second way to generate:

| Input             | Rule    | Product           |
|-------------------+---------+-------------------|
| ''                | rule-02 | A'ewe'            |
| A'ewe'            | rule-04 | BA'ewe'           |
| BA'ewe'           | rule-10 | 'one'A'ewe'       |
| 'one'A'ewe'       | rule-04 | 'one'BA'ewe'      |
| 'one'BA'ewe'      | rule-11 | 'onewar'A'ewe'    |
| 'onewar'A'ewe'    | rule-04 | 'onewar'BA'ewe'   |
| 'onewar'BA'ewe'   | rule-12 | 'onewartwo'A'ewe' |
| 'onewartwo'A'ewe' | rule-03 | 'onewartwo'B'ewe' |
| 'onewartwo'B'ewe' | rule-13 | 'onewartwoearewe' |
|-------------------+---------+-------------------|
|                   |         | 'onewartwoearewe' |

1
-1, चूँकि सवाल अब थोड़ा समझ में आता है। सबसे पहले, एक स्ट्रिंग एक भाषा नहीं है; तार अस्पष्ट, असंदिग्ध, निर्धारक या नॉनडेर्मिनिस्टिक नहीं हैं; वे सिर्फ तार हैं। आपके द्वारा दिया जाने वाला व्याकरण उदाहरण स्ट्रिंग उत्पन्न नहीं करता है। मैंने यह देखने के लिए सभी 180 व्युत्पत्तियों की जाँच नहीं की है कि क्या डुप्लिकेट हैं, लेकिन सिद्धांत रूप में यह देखने के लिए कि व्याकरण अस्पष्ट है या नहीं। अफसोस की बात है कि भाषा स्वाभाविक रूप से अस्पष्ट नहीं हो सकती है, क्योंकि भाषा नियमित है, इसलिए नियमित रूप से, इसलिए DPDA द्वारा स्वीकार की जाती है, इसलिए नियतात्मक है।
पैट्रिक87

@ पैट्रिक87 एह? यह कहाँ का कहना है कि स्ट्रिंग है भाषा? यह स्ट्रिंग एक उदाहरण उत्पाद है, और निश्चित रूप से दिए गए व्याकरण का उपयोग करके उत्पन्न करना संभव है। आपको क्या लगता है अन्यथा? प्रश्न में स्ट्रिंग बिल्कुल मामला है, जहां नियम अनुप्रयोगों के दो अलग-अलग अनुक्रम एक ही स्ट्रिंग का उत्पादन करते हैं, इस प्रकार व्याकरण अस्पष्ट है, लेकिन यदि आप कुछ नियमों को हटाते हैं (उदाहरण के लिए B -> 'o', तो यह अब अस्पष्ट नहीं होगा ...
wvvvw

सबसे पहले, क्या आप व्याकरण का उपयोग करके उदाहरण स्ट्रिंग की व्युत्पत्ति प्रदान कर सकते हैं? अपने स्वयं के प्रश्न से: "क्या उपरोक्त भाषा निर्धारक है?" आप कभी भी किसी भाषा का नाम नहीं लेते हैं, सिर्फ एक स्ट्रिंग, जो व्याकरणों के एक अनन्तता से उत्पन्न होती है, यद्यपि आप जो प्रस्ताव देते हैं वह नहीं है।
पैट्रिक87

क्या आप इसे अंग्रेज़ी में लिख सकते हैं? उदाहरण के लिए, " Sनियम से शुरू करें । नियम के अनुसार S := ..., हम प्राप्त करते हैं ......"
पैट्रिक87

@ पैट्रिक87 मैंने चरण-दर-चरण प्रक्रिया को जोड़ा है, साथ ही मैंने महसूस किया है कि मैंने व्याकरण में एक गलती की है, जिसे मैंने तय किया है।
wvxvw

जवाबों:


9

एक पीडीए नियतात्मक है, इसलिए एक DPDA, iff ऑटोमोटिव के प्रत्येक पहुंच योग्य विन्यास के लिए, सबसे अधिक एक संक्रमण (यानी, एक नया कॉन्फ़िगरेशन संभव पर) है। यदि आपके पास एक पीडीए है जो कुछ कॉन्फ़िगरेशन तक पहुंच सकता है जिसके लिए दो या अधिक अद्वितीय संक्रमण संभव हो सकते हैं, तो आपके पास डीपीडीए नहीं है।

उदाहरण:

Q={q0,q1}Σ=Γ={a,b}A=q0δ

q    e    s    q'   s'
--   --   --   --   --
q0   a    Z0   q1   aZ0
q0   a    Z0   q2   bZ0
...

ये nondeterministic PDAs हैं क्योंकि प्रारंभिक कॉन्फ़िगरेशन - q_0, Z0- पहुंच योग्य है, और इनपुट प्रतीक है तो इससे दो वैध संक्रमण दूर हैं a। किसी भी समय यह पीडीए एक स्ट्रिंग को संसाधित करने की कोशिश करना शुरू कर देता है a, जो एक विकल्प के साथ शुरू होता है । पसंद का मतलब है नॉनडेटर्मिनिस्टिक।

इसके बजाय, निम्नलिखित संक्रमण तालिका पर विचार करें:

q    e    s    q'   s'
--   --   --   --   --
q0   a    Z0   q1   aZ0
q0   a    Z0   q2   bZ0
q1   a    a    q0   aa
q1   a    b    q0   ab
q1   a    b    q2   aa
q2   b    a    q0   ba
q2   b    b    q0   bb
q2   b    a    q1   bb

आपको यह कहने के लिए लुभाया जा सकता है कि यह पीडीए नॉनडेर्मिनिस्टिक है; आखिरकार q1, b(a+b)*, उदाहरण के लिए, कॉन्फ़िगरेशन से दूर दो वैध संक्रमण हैं । हालाँकि, चूंकि यह कॉन्फ़िगरेशन किसी भी पथ द्वारा ऑटोमेटन के माध्यम से नहीं पहुंच पा रहा है, इसकी गणना नहीं है। केवल पहुंच योग्य कॉन्फ़िगरेशन एक सबसेट ट्रांस्फ़ॉर्म परिभाषित किया गया है, और इनमें से प्रत्येक कॉन्फ़िगरेशन के लिए, का एक सबसेट है q_0, (a+b)*Z0, q1, a(a+b)*Z0और q2, b(a+b)*Z0

एक सीएफएल नियतात्मक है अगर यह कुछ डीपीडीए की भाषा है।

यदि सीएफजी के अनुसार प्रत्येक स्ट्रिंग में अधिकतम एक वैध व्युत्पत्ति है तो एक सीएफजी अस्पष्ट है। अन्यथा, व्याकरण अस्पष्ट है। यदि आपके पास एक सीएफजी है और आप कुछ स्ट्रिंग के लिए दो अलग-अलग व्युत्पन्न पेड़ों का उत्पादन कर सकते हैं, तो आपके पास एक अस्पष्ट व्याकरण है।

एक सीएफएल स्वाभाविक रूप से अस्पष्ट है अगर यह किसी भी अस्पष्ट सीएफजी की भाषा नहीं है।

निम्नलिखित पर ध्यान दें:

  • एक नियतात्मक CFL कुछ DPDA की भाषा होनी चाहिए।
  • हर सीएफएल असीम रूप से कई nondeterministic PDAs की भाषा है।
  • एक स्वाभाविक रूप से अस्पष्ट सीएफएल किसी भी अस्पष्ट सीएफजी की भाषा नहीं है।
  • हर सीएफएल असीम रूप से कई अस्पष्ट सीएफजी की भाषा है।
  • एक स्वाभाविक रूप से अस्पष्ट सीएफएल निर्धारक नहीं हो सकता है।
  • एक nondeterministic CFL स्वाभाविक रूप से अस्पष्ट हो सकता है या नहीं भी हो सकता है।

1
विकी का कहना है कि पीडीए नियतात्मक नहीं है (एक निर्धारक संस्करण और एक गैर-नियतात्मक हो सकता है), लेकिन आप वाक्य के पहले भाग को छोड़ सकते हैं, यह वास्तव में योगदान नहीं कर रहा है कि आप क्या कह रहे हैं: / लेकिन, फिर, यह परिभाषित करता है नियतात्मक भाषा एक इनपुट भाषा के रूप में नियतात्मक कुछ की भाषा है, और उस चीज़ को नियतात्मक कहा जाता है क्योंकि यह नियतात्मक भाषा को स्वीकार करता है - यह कहने जैसा है कि "घास हरी है क्योंकि हरी घास का रंग है"। यह सच है, लेकिन उपयोगी नहीं है :( कृपया, उदाहरण और अधिक कीमती होगा!
wvxvw

@wvxvw: आप इसे सही ढंग से नहीं पढ़ रहे हैं। यह कहता है: "एक पीडीए निर्धारक है यदि और केवल अगर प्रत्येक राज्य / प्रतीक / स्टैकटॉप ट्रिपल में केवल एक अगला राज्य है।" ऑटोमेटन किस भाषा में स्वीकार करता है, इस बारे में उस परिभाषा में कुछ भी नहीं है।
भटकते हुए तर्क

2
@wvxvw नियतात्मक पीडीए, या डीपीडीए की परिभाषा, जिसे मैं किसी भी तरह से नहीं देता, आकार, या रूप एक निर्धारक संदर्भ मुक्त भाषा की परिभाषा पर निर्भर करता है। मैं केवल ऑटोमेटन के गुणों के आधार पर डीपीडीए को परिभाषित करता हूं। मैं तब परिभाषित करता हूं कि एक DPF की परिभाषा के संदर्भ में एक निर्धारक CFL क्या है। कृपया इन और भटकते हुए तर्क की टिप्पणियों के जवाब में फिर से पढ़ें और यह देखने की कोशिश करें कि क्या यह समझ में आता है। मैं कुछ संक्षिप्त उदाहरण प्रदान करने का प्रयास करूंगा।
पैट्रिक87

q1,b(a+b)q2,b(a+b)Q={q0,...q2}वर्तमान चरित्र? इसके अलावा, क्या मेरी व्याख्या सही है? x+- एक या अधिक x, (x)*- शून्य या अधिक x?
wvxvw

@wvxvw कॉन्फ़िगरेशन वर्तमान स्थिति और स्टैक की वर्तमान सामग्री को संदर्भित करता है। x+आम तौर पर "एक या अधिक का उल्लेख करता है x, जबकि x*आम तौर पर संदर्भित करता है" शून्य या अधिक x; मैं के xx*स्थान पर उपयोग कर सकते हैं x+, क्योंकि ये समान हैं।
1987 में पैट्रिक87

7

यहाँ उदाहरण हैं (विकिपीडिया से):

S0S0|1S1|ε

एक संदर्भ मुक्त भाषा नियतात्मक है यदि और केवल अगर वहाँ कम से कम एक निर्धारक पुश-डाउन ऑटोमैटन मौजूद है जो उस भाषा को स्वीकार करता है। (भाषा को स्वीकार करने वाले गैर-नियतात्मक पुश-डाउन ऑटोमेटा के बहुत सारे हो सकते हैं, और यह अभी भी एक नियतात्मक भाषा होगी।) अनिवार्य रूप से एक नियतात्मक पुश-डाउन ऑटोमेटा वह है जहां मशीन के परिवर्तन वर्तमान स्थिति के आधार पर निर्धारक होते हैं। इनपुट प्रतीक और स्टैक का वर्तमान सबसे ऊपरी प्रतीकनियतात्मकयहां इसका मतलब है कि किसी भी राज्य / इनपुट प्रतीक / सबसे ऊपरी स्टैक प्रतीक के लिए एक से अधिक राज्य संक्रमण नहीं है। यदि आपके पास कुछ राज्य / इनपुट प्रतीक / सबसे ऊपरी स्टैक प्रतीक ट्रिपल के लिए दो या अधिक अगले राज्य हैं तो ऑटोमेटन गैर निर्धारक है। (आपको यह अनुमान लगाने की आवश्यकता है कि ऑटोमोटिवटन स्वीकार करता है या नहीं, यह तय करने के लिए कौन सा संक्रमण है।)

नुथ ने साबित किया कि हर एलआर (के) व्याकरण में एक नियतात्मक पुशडाउन ऑटोमेटन है और प्रत्येक नियतात्मक पुशडाउन ऑटोमेटा में एक एलआर (के) व्याकरण है। इसलिए LR (k) व्याकरण और नियतात्मक पुशडाउन ऑटोमेटा भाषाओं के एक ही सेट को संभाल सकते हैं। लेकिन भाषाओं का एक समूह जिसमें नियतात्मक पुशडाउन ऑटोमैटन होता है जो उन्हें स्वीकार करता है (परिभाषा के अनुसार) नियतात्मक भाषाएं। तर्क परिपत्र नहीं है।

इसलिए निर्धारक भाषा का अर्थ है कि एक अस्पष्ट व्याकरण मौजूद है। और हमने एक ऐसा नायाब व्याकरण दिखाया है, जिसमें कोई नियतात्मक पुशडाउन ऑटोमेटन नहीं है (और इस तरह यह एक ऐसा व्याकरण है जो एक गैर-निर्धारक भाषा को स्वीकार करता है।)

{anbmcmdn|n,m>0}{anbncmdm|n,m>0}{anbnccdn|n>0}


क्या आप कृपया विस्तार से बता सकते हैं कि मध्य निर्धारण से पहले पूरे स्ट्रिंग को देखने के लिए यह भाषा गैर-नियतात्मक क्यों है? मैंने एक और स्पष्टीकरण पढ़ा कि "नियतात्मक" क्या है, और वहाँ यह कहता है कि "यदि आपको पार्स करते समय पीछे नहीं हटना है, तो यह भाषा निर्धारक है"। मुझे इस भाषा को पार्स करने के लिए पीछे हटने की आवश्यकता नहीं है ...
wvxvw

1
इनपुट स्ट्रिंग "10011001" पर विचार करें। पुशडाउन ऑटोमेटा को यह पता नहीं है कि स्ट्रिंग आखिर तक कितनी लंबी होती है। जब आप दूसरे 0 पर पहुंचते हैं तो आपको एक विकल्प बनाने की आवश्यकता होती है: क्या यह 4-वर्ण स्ट्रिंग "1001" है, या एक लंबा स्ट्रिंग है जो "100 ???? 001" जैसा दिखता है? जब आप पाँचवें चरित्र में पहुँच जाते हैं, तब भी आपको नहीं पता होता है: क्या यह 8-वर्ण का तार "10011001" या उससे अधिक लंबा तार है जो "10011 ???? 11001" जैसा दिखता है?
भटकने वाला तर्क

1
"संपूर्ण स्ट्रिंग को पार्स करें" चीज़ गैर-नियतात्मक की परिभाषा नहीं है। यह सिर्फ कुछ अंतर्ज्ञान था जिसे मैं जोड़ने की कोशिश कर रहा था। दोनों @ पैट्रिक87 और मैंने आपको नियतात्मक की वास्तविक परिभाषा दी है: प्रत्येक राज्य से अगले एक राज्य में सबसे अधिक है। यदि किसी भाषा में कोई अस्पष्ट व्याकरण नहीं है, तो उसे गैर-निर्धारक होना चाहिए। मैं अधिक काम किए बिना आपके उदाहरण के बारे में जवाब नहीं दे सकता: आपने एक अस्पष्ट व्याकरण दिखाया है, लेकिन यह कोई मायने नहीं रखता है, आपको यह प्रदर्शित करने की आवश्यकता है कि कोई अस्पष्ट व्याकरण नहीं है यदि आप दिखाना चाहते हैं कि भाषा स्वाभाविक रूप से अस्पष्ट है।
भटकते हुए तर्क

1
@wvxvw यदि आप एक कम्प्यूटेशनल प्रक्रिया की तलाश कर रहे हैं, तो आप भाग्य से बाहर हो सकते हैं ... en.wikipedia.org/wiki/List_of_undecidable_problems के अनुसार , यह अनिर्दिष्ट है कि क्या CFG अस्पष्ट है, अकेले जाने दें कि क्या इसकी भाषा स्वाभाविक रूप से अस्पष्ट है ; यह भी अविश्वसनीय है कि क्या कोई सीएफजी सभी तार उत्पन्न करता है। इसे देखते हुए, मुझे गंभीरता से संदेह है कि यह निर्णायक है, यह तय करने के लिए बहुत कम कुशल है कि क्या सीएफजी की भाषा एक नियतात्मक सीएफएल है।
पैट्रिक87

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

5

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

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


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

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

1
LR(k)

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

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

1

{a,b}{w(a+b)w=wR}SaSa|bSb|a|b|ϵababab


1

परिभाषाएं

  1. एक नियतात्मक पुशडाउन स्वीकर्ता (DPDA) एक पुशडाउन ऑटोमैटन है जो कभी भी अपने चाल में विकल्प नहीं रखता है।
  2. DPDA और NPDA समतुल्य नहीं हैं।
  3. एक CFG है गैर नियतात्मक iff देखते हैं कम से कम उनमें से सही पक्ष पर एक ही टर्मिनल उपसर्ग के साथ दो प्रस्तुतियों।
  4. एक CFG है अस्पष्ट iff वहां मौजूद कुछ डब्ल्यू ∈ एल (G) है कि कम से कम दो अलग व्युत्पत्ति पेड़। इस प्रकार, यह दो या दो से अधिक बाईं ओर या सबसे अलग व्युत्पन्न दो अलग व्युत्पत्ति पेड़ों के लिए है।
  5. एक CFG है स्पष्ट है iff हर स्ट्रिंग है ज्यादा से ज्यादा CFG के अनुसार एक वैध व्युत्पत्ति। अन्यथा, व्याकरण अस्पष्ट है।
  6. एक सीएफएल है स्वाभाविक अस्पष्ट iff यह भाषा नहीं है किसी भी स्पष्ट CFG। इसका कोई डीपीडीए नहीं हो सकता है।
    यदि सीएफएल उत्पन्न करने वाला प्रत्येक व्याकरण अस्पष्ट है, तो सीएफएल को स्वाभाविक रूप से अस्पष्ट कहा जाता है । इस प्रकार यह किसी भी अस्पष्ट सीएफजी की भाषा नहीं है ।

तथ्य

  1. हर सीएफएल असीम रूप से कई nondeterministic PDAs की भाषा है ।
  2. हर सीएफएल असीम रूप से कई अस्पष्ट सीएफजी की भाषा है ।
  3. कुछ DPDA द्वारा स्वीकृत CFL स्वाभाविक रूप से अस्पष्ट नहीं है। (इसके लिए कम से कम एक अस्पष्ट सीएफजी मौजूद है।)
  4. NDPDA द्वारा स्वीकृत CFL स्वाभाविक रूप से अस्पष्ट हो सकता है या नहीं, क्योंकि इसके लिए कुछ DPDA (या अस्पष्ट CFG) मौजूद हो सकते हैं ।
  5. अस्पष्ट सीएफजी द्वारा उत्पन्न एक सीएफएल स्वाभाविक रूप से अस्पष्ट नहीं हो सकता है क्योंकि इसके लिए कुछ अस्पष्ट सीएफजी (या डीपीडीए) मौजूद हो सकते हैं ।
  6. कम से कम एक अस्पष्ट सीएफजी द्वारा उत्पन्न सीएफएल स्वाभाविक रूप से अस्पष्ट नहीं है। (इसके लिए कुछ DPDA मौजूद हैं।)
  7. एक गैर नियतात्मक व्याकरण अस्पष्ट हो सकता है या नहीं।

आपके प्रश्न का उत्तर (नियतत्ववाद और अस्पष्टता के बीच संबंध)

  1. (गैर) अस्पष्टता मुख्यतः व्याकरणों (यहाँ CFGs) पर लागू होती है। (गैर) निर्धारणवाद व्याकरण और ऑटोमेटन (यहां पीडीए) दोनों पर लागू होता है।

    यदि आप तार्किक मतभेद चाहते हैं, तो आप तथ्यों के अनुभाग में अंतिम चार बिंदुओं को देख सकते हैं क्योंकि वे अस्पष्टता और नियतत्ववाद दोनों से संबंधित हैं। यहाँ मैं उन्हें फिर से दोहरा रहा हूँ:

  2. कुछ निर्धारक पीडीए द्वारा स्वीकृत सीएफएल स्वाभाविक रूप से अस्पष्ट नहीं है । (इसके लिए कम से कम एक अस्पष्ट सीएफजी मौजूद है।)

  3. एक सीएफएल द्वारा स्वीकार गैर नियतात्मक पीडीए या स्वाभाविक अस्पष्ट नहीं हो सकता के रूप में वहाँ कुछ DPDA (या मौजूद हो सकता है स्पष्ट इसके लिए CFG)।
  4. अस्पष्ट सीएफजी द्वारा उत्पन्न एक सीएफएल स्वाभाविक रूप से अस्पष्ट नहीं हो सकता है क्योंकि इसके लिए कुछ अस्पष्ट सीएफजी (या नियतात्मक पीडीए) मौजूद हो सकते हैं ।
  5. एक सीएफएल कम से कम एक द्वारा उत्पन्न स्पष्ट CFG नहीं है स्वाभाविक अस्पष्ट । (इसके लिए कुछ DPDA मौजूद हैं।)
  6. एक गैर नियतात्मक व्याकरण अस्पष्ट हो सकता है या नहीं ।

पुनश्च:

  1. स्वीकृत उत्तर "सीएफएल नियतात्मक है", "निर्धारक सीएफएल", "सीएफएल निर्धारक नहीं हो सकता है", "एक गैर नियतात्मक सीएफएल" जैसी लाइनों का उपयोग करता है। मुझे लगता है कि विशेषण "निर्धारक" और "अस्पष्ट" सीएफएल पर लागू नहीं होता है, लेकिन पीडी और सीएफजी पर लागू होता है। (हालांकि विशेषण "अंतर्निहित अस्पष्ट" सीएफएल पर लागू होता है) हालांकि मैं मूल उत्तर की आलोचना नहीं करना चाहता, क्योंकि मैंने खुद को महत्वपूर्ण सीखा। इससे अंक मिलते हैं। (वास्तव में मैंने सचमुच उस उत्तर से कुछ पंक्तियों को कॉपी किया है।) लेकिन फिर भी मुझे लगा कि इसे और सही बनाया जाना चाहिए। इसलिए मैंने सामान को दो भागों की परिभाषाओं और तथ्यों में अधिक स्पष्ट रूप से यहाँ रखने की कोशिश की (मैंने इसे अनावश्यक रूप से क्रियात्मक और लंबा बना दिया है)। मुझे लगता है कि मुझे मूल उत्तर को संपादित करना चाहिए था, लेकिन फिर इसमें कई बिंदुओं को हटाना शामिल होगा जो उपरोक्त लाइनों का उपयोग करते हैं। और मैं नहीं जानता कि क्या यह इसे किसी भी वैध संपादन के रूप में यह पूरी तरह से फिर से लिखना शामिल होगा।
  2. ध्यान दें कि मैंने विभिन्न परिभाषाओं और तथ्यों में तुलनात्मक अंतर को उजागर करने के लिए बोल्ड-इटैलिक्स में एक मात्रात्मक शब्द रखा है । परिभाषा शब्द केवल बोल्ड हैं
  3. कुछ बिंदु मैंने खुद बनाए हैं, इसलिए मुझे हर बिंदु की शुद्धता के बारे में किसी जानकार से पुष्टि की आवश्यकता होगी।

पीएस 1 गलत है: नियतात्मक / अस्पष्ट सीएफएल के लिए एक मानक परिभाषा है, अर्थात्, उन्हें उन लोगों के लिए परिभाषित किया जाता है जिनके लिए सभी सीएफजी निर्धारक / अस्पष्ट हैं।
रीइनियरपायरपोस्ट

सिर्फ एहसास तथ्य 7 गलत है। दूसरी अंतिम सूची से भी अंक 6 समान है और गलत है।
महा

वास्तव में ... निर्धारण के दौरान किसी भी बिंदु पर नियतत्व में अस्पष्टता नहीं होती है , इसलिए यह अस्पष्टता (यानी अस्पष्टता पूरी होने के बाद भी पूर्णता से अधिक) से अधिक मजबूत है ।
रीइनियरियरपोस्ट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.