संदर्भ-संवेदनशील (टाइप 1) भाषाओं का क्या महत्व है?


34

यह देखकर कि चॉम्स्की पदानुक्रम में टाइप 3 भाषाओं को एक स्टेट मशीन द्वारा पहचाना जा सकता है जिसमें कोई बाहरी मेमोरी नहीं है (यानी, एक परिमित ऑटोमेटन), टाइप 2 के साथ स्टेट मशीन द्वारा सिंगल स्टैक (यानी पुश-डाउन ऑटोमेटन) और टाइप 0 बाय एक स्टेट मशीन जिसमें दो स्टैक होते हैं (या, समकक्ष, एक टेप, जैसा कि ट्यूरिंग मशीन के लिए मामला है), टाइप 1 भाषाएं इस तस्वीर में कैसे फिट होती हैं? और यह निर्धारित करने के लिए क्या फायदे हैं कि एक भाषा न केवल टाइप 0 बल्कि टाइप 1 है?


2
चूंकि आप यहां पूछ रहे हैं और cstheory.SE में नहीं (जैसा कि @Sunil द्वारा सुझाया गया है), मेरा सुझाव है कि आप टाइप 1 का एक संक्षिप्त विवरण / परिभाषा भी जोड़ सकते हैं, जो शायद सभी के लिए एक परिचित शब्द न हो।
जनोमा

5
@ सुनील नहीं, यह नहीं होगा। यह एक शोध स्तर का प्रश्न नहीं है (और यदि ऐसा होता भी है, तो यह अभी भी यहाँ विषय पर होगा क्योंकि हम अनुसंधान स्तर के प्रश्नों को बाहर नहीं करते हैं - कम से कम मुझे याद है कि यह क्षेत्र ५१ पर चर्चा का परिणाम है)।
sepp2k

3
@ जानोमा: इसमें उन सूचनाओं को शामिल करने में मदद क्यों की जानी चाहिए जिन्हें आसानी से देखा जा सकता है (जो शोर के रूप में गिना नहीं जा सकता)?
बिटमस्क

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

4
हर कंप्यूटर विज्ञान प्रमुख चॉम्स्की पदानुक्रम को जानता है (या जानना चाहिए)। बाकी सभी इसे 20 के दशक में देख सकते हैं। शायद विकिपीडिया की एक कड़ी यहाँ पर्याप्त होनी चाहिए।
राफेल

जवाबों:


19

संदर्भ-संवेदी भाषाएं वे भाषाएँ हैं जिन्हें रेखीय स्थान और गैर-निर्धारणवाद का उपयोग करके ट्यूरिंग मशीन द्वारा पहचाना जा सकता है। आप एक्सपोज़र समय का उपयोग करके ऐसी ट्यूरिंग मशीन का अनुकरण कर सकते हैं, इसलिए आप किसी भी ऐसी भाषा को घातीय समय में पहचान सकते हैं। ध्यान दें कि कुछ संदर्भ-संवेदनशील भाषाओं को पहचानने की समस्या -complete है, जिसका अर्थ है कि हमें पूरा यकीन है कि आप घातीय समय से बेहतर नहीं कर सकते।PSPACE

इसे टाइप करने के लिए 0 भाषाएं टाइप करें, इसका मतलब है कि आप कम से कम कुछ कह सकते हैं कि भाषा को पहचानने में कितना समय लगता है। एक प्रकार की 0 भाषा भी अवहेलना योग्य नहीं हो सकती है: सभी ट्यूरिंग मशीनों की भाषा, जो कि एक प्रकार की भाषा है, एक प्रकार की 0 भाषा है, लेकिन जैसा कि इस भाषा को पहचानना हॉल्टिंग समस्या है, यह निर्णायक नहीं है।

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

उनके अस्तित्व का कारण यह है कि वे संदर्भ-मुक्त व्याकरण का एक बहुत ही स्वाभाविक विस्तार बनाते हैं (आप संदर्भ को यह निर्धारित करने की अनुमति देते हैं कि कौन सी प्रस्तुतियों वैध हैं)। यह संभवतः चॉम्स्की को उन्हें परिभाषित करने और उन्हें टाइप 1 भाषाओं का नाम देने के लिए प्रेरित करेगा। याद रखें कि यह परिभाषा कंप्यूटर के रूप में आज के रूप में उपवास से पहले बनाई गई थी: यह प्रोग्रामर के लिए औपचारिक भाषा सिद्धांतकारों के लिए अधिक रुचि है।

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


लेकिन संदर्भ के प्रति संवेदनशील भाषाओं हैं उपयोगी! उदाहरण के लिए, इस चर्चा को देखें
राफेल

संदर्भ संवेदनशीलता उपयोगी है, लेकिन भाषाओं का वर्णन करने के तरीके के रूप में संदर्भ-संवेदनशील व्याकरण बहुत उपयोगी आईएमओ नहीं है। संदर्भ-संवेदी विशेषताओं का वर्णन करने के लिए आप कुछ अन्य माध्यमों का उपयोग कर बेहतर तरीके से आगे बढ़ रहे हैं।
एलेक्स दस ब्रिंक

लेकिन आप अपने उत्तर के अधिकांश हिस्सों में भाषाओं के बारे में बात करते हैं। व्याकरण के बारे में, ymmw। सीएफजी और सीएसजी के बीच व्याकरण मॉडल हैं जिनमें प्राकृतिक मॉडलिंग अनुप्रयोग हैं, जैसे युग्मित- / बहु-सीएफजी।
राफेल

1
आप ठीक कह रहे हैं, मैं उन भाषाओं और व्याकरणों के बीच के अंतर से मैला हूं, जो मैं देखता हूं। मैंने अपना उत्तर अपडेट कर दिया है।
एलेक्स दस ब्रिंक

10

सामान्य तौर पर, आप आमतौर पर उस छोटी कक्षा को जानना चाहते हैं, जो किसी भाषा है। ऐसा इसलिए है क्योंकि छोटी कक्षाओं को सरल तंत्र (ऑटोमेटा, व्याकरण, नियमित अभिव्यक्ति आदि) द्वारा मान्यता / स्वीकार / उत्पन्न किया जा सकता है, जो वांछनीय है।L

उदाहरण के लिए, नियमित भाषाओं के वर्ग में अच्छी क्लोजर प्रॉपर्टीज होती हैं, और DFA देखते हुए आप रैखिक समय में परीक्षण कर सकते हैं कि कोई शब्द L ( A ) का है । इसके विपरीत, ट्यूरिंग मशीन के साथ आपको आउटपुट को पढ़ने के लिए रैखिक समय की आवश्यकता होती है, जो आमतौर पर वास्तव में प्रसंस्करण शुरू होने से पहले होता है।AL(A)

संक्षेप में, छोटी कक्षाओं के लिए आपको यह समझने की समस्या को हल करने के लिए कम कम्प्यूटेशनल शक्ति की आवश्यकता होती है कि क्या कोई शब्द भाषा का है।

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


2
"संक्षेप में, छोटी कक्षाओं के लिए आपको यह समझने की समस्या को हल करने के लिए कम कम्प्यूटेशनल शक्ति की आवश्यकता होती है कि कोई शब्द भाषा का है या नहीं।" ठीक है, लेकिन यह टाइप 1 बनाम टाइप 0 पर कैसे लागू होता है? यह बिल्कुल सवाल है!
बिटमस्क

ccn

8

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

यह दिलचस्प संपत्ति की ओर जाता है कि प्रत्येक उत्पादन उन लोगों द्वारा उत्पन्न एक की एक उप-भाषा उत्पन्न करता है जो स्टैक में गहराई से होते हैं और इस प्रकार किसी भी विशेष इनपुट पर उत्पन्न और उपभोग किए गए प्रत्येक जोड़ी ए और बी के लिए हमारे पास तीन संभावित मामले हैं:

  • a: A द्वारा उपभोग किया गया इनपुट B द्वारा उपभोग किए गए इनपुट में पूरी तरह से निहित है; या
  • बी: ए द्वारा उपभोग किए गए इनपुट में बी द्वारा खपत इनपुट शामिल है; या
  • c: A द्वारा लिया गया इनपुट B द्वारा उपभोग किए गए इनपुट से पूरी तरह से अस्वीकृत है।

इसका तात्पर्य यह है कि निम्नलिखित कभी नहीं होता है:

  • डी: ए द्वारा उपभोग किया गया इनपुट आंशिक रूप से बी द्वारा खपत इनपुट को ओवरलैप करता है।

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

वास्तविक दुनिया में, एक ऐसा मामला जहां एक संदर्भ-संवेदनशील भाषा का अर्थ होता है, जैसे कि <b> बोल्ड टेक्स्ट </ b>, <i> इटैलिक टेक्स्ट </ i> और <u> रेखांकित पाठ </ u>। ये html टैग और उन्हें ओवरलैप करते हैं, जैसे "यह <i> मिश्रित </ u> ओवरलैपिंग टैग </ i> है।" निरीक्षण करें कि उस को पार्स करें और खोजें कि क्या सभी शुरुआती टैग समाप्त होने वाले टैग से मेल खाते हैं, एक पीडीए ऐसा नहीं करेगा क्योंकि यह संदर्भ-मुक्त नहीं है, लेकिन एक एलबीए आसानी से करेगा।


7

बंद करने के गुण

चॉम्स्की पदानुक्रम से सभी भाषा वर्गों में से, केवल नियमित और संदर्भ-संवेदनशील भाषाएं पूरक के तहत बंद हैं । इसलिए यह संदर्भ-संवेदनशील भाषाओं की एक विशिष्ट विशेषता है।

संदर्भ-मुक्त भाषाओं के विपरीत, CS को चौराहे और फेरबदल उत्पाद के तहत भी बंद किया जाता है ।


6

कोई भी भाषा जो टाइप 1 है, उसे ट्यूरिंग मशीन द्वारा पहचाना जा सकता है जो केवल रैखिक स्थान (तथाकथित रैखिक बाध्य ऑटोमेटा) का उपयोग करती है।


2
हां, यही परिभाषा है। लेकिन यह प्रतिबंध मेरी मदद कैसे करता है?
बिटमस्क

3
यह मेरी मदद करता है क्योंकि यह EXP के बजाय CSG को E से पहचानने वाले एल्गोरिदम की शक्ति को सीमित करता है। मुझे नहीं पता कि यह आपकी मदद कैसे करता है :)
सुरेश

5

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


4

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

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


4

आधुनिक प्रोग्रामिंग भाषा हर समय संदर्भ-संवेदनशील सुविधाओं का उपयोग करती है; वे एक सबसेट में आते हैं जिसे कुशलता से तय किया जा सकता है।

उदाहरण नाम और प्रकार के विश्लेषण और प्रकार के निष्कर्ष हैं।


3

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

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

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