नीचे स्वचालित "पुश" लगता है - इसका क्या मतलब है?


14

मुझे एहसास हुआ कि गैर-नियतात्मक पुशडाउन ऑटोमेटा नियतात्मक लोगों पर एक सुधार हो सकता है क्योंकि वे कई राज्यों के बीच "चुन सकते हैं" और कुछ संदर्भ-मुक्त भाषाएं हैं जिन्हें नियतात्मक पुशडाउन द्वारा स्वीकार नहीं किया जा सकता है।

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

मैं कई संभावित अर्थों के बारे में सोच सकता हूं:

  1. यह अनियमित रूप से एक राज्य में जाता है और इसलिए एक शब्द को स्वीकार नहीं कर सकता है, जो वास्तव में भाषा में है

  2. यह किसी भी तरह "हर संभव तरीका" चला जाता है, इसलिए यदि पहला गलत है तो यह परीक्षण करता है कि क्या कोई दूसरा सही हो सकता है

  3. ऐसा कुछ तंत्र है जिसके बारे में मुझे जानकारी नहीं है, जो शब्द के मध्य को चुनता है और इसलिए यह यादृच्छिक नहीं है, लेकिन ऑटोमेटन हमेशा सही मध्य पाता है।

यह सिर्फ एक उदाहरण है; जो मैं जानना चाहता हूं कि यह किसी भी ऑटोमेटन के लिए कैसे काम करता है, जिसके पास एक से पहले और एक ही राज्य के लिए कई निम्नलिखित राज्य हैं।


संबंधित: हमारा संदर्भ प्रश्न यादृच्छिक और नॉनडेटर्मिनिस्टिक एल्गोरिदम के बीच अंतर को बताता है।
राफेल

जवाबों:


8

काफी बस, तंत्र जादू है। गैर-नियतात्मकता का विचार यह है कि यह केवल यह जानता है कि शब्द को स्वीकार करने के लिए इसे किस तरीके से लेना चाहिए, और यह इस तरह से जाता है। यदि कई तरीके हैं, तो यह उनमें से एक है।

गैर-नियतत्ववाद को वास्तविक हार्डवेयर में लागू नहीं किया जा सकता है। हम इसे पीछे ले जाने जैसी तकनीकों का उपयोग करके अनुकरण करते हैं। लेकिन यह मुख्य रूप से एक सैद्धांतिक उपकरण है, जिसका उपयोग कुछ अवधारणाओं की प्रस्तुति को सरल बनाने के लिए किया जा सकता है।

पैलिंड्रोम के लिए, आप इसके बारे में दो तरह से सोच सकते हैं। या तो एक जादुई शक्ति है जो आपकी मशीन को यह कहने देती है "यह शब्द का मध्य है, धक्का देने से स्विच करने का समय", या प्रत्येक पत्र को पढ़ने के बाद, यह कहता है "मैं एक नई प्रक्रिया के लिए जा रहा हूं जो कि यह पत्र शब्द के बीच में है, और देखें कि क्या यह एक तालमेल पाता है। तो इस दूसरे सूत्र में, मैं कोशिश करता रहूंगा, यह मानते हुए कि यह शब्द का मध्य नहीं है "।

इसके बारे में सोचने का एक और तरीका अनंत समानता है। तो एक समतुल्य मॉडल यह होगा कि एक नया रास्ता चुनने के बजाय, यह एक साथ दोनों रास्तों को आज़माता है, नई प्रक्रियाओं को आगे बढ़ाता है, "यदि कोई सफल हो तो पूरे शब्द पढ़ने के बाद। फिर, यह वास्तविक हार्डवेयर का उपयोग करके नहीं बनाया जा सकता है, लेकिन इसे गैर-नियतात्मकता के साथ मॉडल किया जा सकता है।

Nondeterminism के बारे में दिलचस्प बात यह है कि परिमित-ऑटोमेटा और ट्यूरिंग मशीनों के लिए, यह उनकी कम्प्यूटेशनल शक्ति को बिल्कुल नहीं बढ़ाता है, बस उनकी दक्षता।


5

एक निर्धारक आटोमेटन और एक गैर निर्धारक आटोमेटन के बीच मुख्य अंतर (मेरी राय में) यह है कि निर्धारक आटोमेटन के लिए एक दिए गए इनपुट शब्द में मशीन के माध्यम से केवल एक ही रास्ता है। एक गैर-नियतात्मक ऑटोमेटन में दिए गए इनपुट शब्द में मशीन के माध्यम से कई रास्ते हो सकते हैं (क्योंकि कुछ बिंदुओं पर विकल्प हो सकता है)।

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

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

पैलिन्ड्रोम के लिए इसका मतलब यह है कि पीडीए में अनिवार्य रूप से दो मोड होंगे: एक पुशिंग मोड जहां यह स्टैक पर वर्तमान अक्षरों को और एक पॉपिंग मोड को धक्का देता है जहां यह उन अक्षरों को पॉप करता है और इनपुट के खिलाफ उनसे मेल खाता है। इस मशीन में पुशिंग स्टेट से पॉपिंग स्टेट तक एक खाली संक्रमण होगा जिसे यह शब्द के किसी भी बिंदु पर पालन करने में सक्षम होगा। हालाँकि मशीन केवल अपने स्टैक को खाली करेगी और स्वीकार करने की स्थिति में जाएगी यदि उसने एक palindrome पढ़ा है और palindrome के मध्य में खाली संक्रमण का पालन किया है। चूंकि हमें केवल एक स्वीकार पथ के अस्तित्व की आवश्यकता होती है इसलिए हम कह सकते हैं कि ऑटोमेटन "अनुमान लगाता है" जहां शब्द का मध्य है।


5

नॉनडेटर्मिनिज़्म का विचार काफी सरल है: ऑटोमेटन के पास कुछ स्थितियों में कई अगले चरण हो सकते हैं। आटोमेटन स्वीकार करता है कि अगर कुछ है (कई हो सकते हैं!) प्रारंभिक कॉन्फ़िगरेशन से एक को स्वीकार करने के लिए अग्रणी चरणों का क्रम, यह केवल अस्वीकार करता है अगर ऐसा कोई क्रम नहीं है।

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

व्यवहार में, इसे बैकट्रैकिंग द्वारा लागू किया जा सकता है, जहां निर्णय लिया गया था, उन जगहों पर टैग का कुछ रूप रखकर, और वापस जाएं और अगला विकल्प आज़माएं यदि वर्तमान पथ काम नहीं करता है। यह आमतौर पर पुनरावृत्ति द्वारा नियंत्रित किया जाता है। या स्वचालित रूप से अतिरिक्त जानकारी के साथ ऑटोमेटन के पास "कानूनी तौर पर" जानकारी का पूरक होता है (यह वही है जो आप तब करते हैं जब आप दिखाते हैं कि ब्लैकबोर्ड पर एक nondeterministic automaton कैसे काम करता है, आगे देखते हुए और पता लगाता है कि कौन सा कदम सफलता की ओर जाता है)।


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

@ बाबू, यह व्यवहार में करने का एक तरीका है। मैं यह नहीं कह रहा हूँ यह है समाधान
vonbrand

2

"अनुमान लगाना" गैर-नियतात्मकता की हमारी अस्तित्वगत व्याख्या से सीधे संबंधित है

संक्षेप में: यह विचार कि एक गैर-नियतात्मक automaton अनुमान लगा सकता है (या एक ओरेकल द्वारा मदद की जा सकती है) सीधे गैर-नियतात्मकता की हमारी अस्तित्वगत व्याख्या से संबंधित है। एक और व्याख्या संभव है (शायद अन्य) जहां "अनुमान लगाने" का कोई मतलब नहीं होगा।

गैर निर्धारणवाद अजीब है। हमारे पास इसे ऑटोमेटा सिद्धांत में व्याख्या करने का एक तरीका है, लेकिन यह कोई प्राथमिकता स्पष्ट नहीं है कि हमें यह कैसे करना चाहिए।

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

नए परिणाम प्राप्त करने के लिए पहले से ही ज्ञात नियमों के साथ संयोजन करने के कई तरीके हैं। और स्थिति आमतौर पर समान होती है यदि हम परिणाम से पिछड़े एक सबूत को फिर से बनाने की कोशिश करते हैं।

इस तरह की समस्या को हल करने का प्रयास करते समय, हम कुछ संक्रमण प्रणाली में एक पथ को " अनुमान " करने की कोशिश करते हैं

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

एक (आम तौर पर महंगी) तकनीक जिसका हम उपयोग कर सकते हैं, बस पूरी तरह से भूलभुलैया का पता लगाने के लिए है: सभी रास्तों का पालन करने के लिए, यह एक अनंत सबग्राफ में फंसने से बचने के लिए पहले चौड़ाई करना। यह बहुत ज्यादा है जो गैर-नियतात्मक ऑटोमेटन के सभी संभावित संगणनाओं को पूरा करने के द्वारा किया जा रहा है । यह व्युत्पन्न dovetailed संगणना स्वयं एक निर्धारक है।

इस संगणना की गणना की गई डीसी मूल ऑटोमेटन के सभी संभव संगणनाओं की नकल करता है , लेकिन हमें यह नहीं बताता कि इसकी व्याख्या कैसे की जानी चाहिए। यह सिर्फ हमें बता सकता है कि ए कुछ समय के लिए रुक सकता है, स्वीकृति या अस्वीकृति के साथ, और संभवतः यह हमेशा रुका रहेगा। लेकिन यह किसी भी अधिक से अधिक नहीं हो सकता खुद, हमें बताएं कि कभी रुकता नहीं, या स्वीकृति से कभी रुकता नहीं।

वास्तव में, गैर-नियतात्मक संगणना की व्याख्या करने के विभिन्न तरीके हो सकते हैं । अफाक वे सभी सुसंगत हैं, लेकिन एक दूसरे के साथ नहीं।

एक भाषा पहचानकर्ता के मामले में आर, जैसे कि एनपीडीए, जो या तो रुक नहीं सकता है, या स्वीकृति या अस्वीकृति के साथ रुक सकता है, पहचानकर्ता को इनपुट स्वीकार करने के लिए कहा जाता हैwअगर वहाँ एक गणना है जो रुक जाती है और स्वीकार हो जाती है । यह गैर-निर्धारक प्रमाण प्रक्रिया के हमारे अपने दृष्टिकोण के अनुरूप है जिसे सफल माना जाता है यदि वह प्रमेय सिद्ध होने के लिए एक प्रमाण वृक्ष की पहचान कर सकता है।

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

गैर-नियतात्मक संगणना की यह व्याख्या मैं अस्तित्वगत स्वीकृति कहूँगा , इस तथ्य के संदर्भ में कि इसे केवल एक ही अभिकलन अभिकलन के अस्तित्व की आवश्यकता है। यह अस्तित्वगत ठहराव से मेल खाती है जिसे मैंने दूसरे उत्तर में पेश किया था

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

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

यदि हमें एक पैलिंड्रोम को पहचानना है, तो हम लंबाई को मापकर और मध्य की तलाश कर सकते हैं। पीडीए नहीं कर सकता। लेकिन, जैसा कि हम केवल एक समाधान के अस्तित्व में रुचि रखते हैं, हम हमेशा यह दिखावा कर सकते हैं कि यह कर सकता है ... अगर यह मदद करेगा। या हम इस बात पर विचार कर सकते हैं कि इसकी मदद करने के लिए अधिक बुद्धिमान मशीनों (हमें?) द्वारा प्रदान किए गए oracles हैं। या आप इसे जादू भी कह सकते हैं, और सोचें कि यह (आखिरकार, अस्तित्वमान मात्रात्मक एक प्रकार का जादू की छड़ी है)। अगर यह मदद कर सकता है, तो यह होगा। यदि कोई संगणना स्वीकार नहीं है, तो कोई भी मदद किसी भी काम नहीं आएगी।

ध्यान दें कि अनुमान लगाने का यह विचार सार्वभौमिक स्वीकृति व्याख्या में निरर्थक होगा।

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