आलसी पीपी केक "नेपोलियन"
लेकिन एक ही शाम में अद्भुत केक दिखाई दिया और कथित रूप से सम्राट नेपोलियन के नुस्खा पर बेक किया गया। कई अधिकार ...
मान लीजिए, बहुत समय पहले ... और वास्तव में, मशीनों को ट्यूरिंग की मशीन बनाने से पहले बनाया गया था। उदाहरण के लिए, आपको एक लॉगरिदम, एनयूके लेना होगा, और चलो मशीन को गोंद करने की आवश्यकता है जो संख्या को पढ़ा जाएगा और लॉगरिदम लेगा। या आपको यह कहने की ज़रूरत है, दो संख्याओं को फोल्ड किया गया - यहां दो संख्याओं के अतिरिक्त मशीन है। और अब ऐसी कारें हैं, उदाहरण के लिए, कैलकुलेटर। वे क्या कर सकते हैं? गुना, कटौती, गुणा, और इंजीनियरिंग के लिए - यहां तक \u200b\u200bकि एक कोसाइन या साइन भी लें। यह इन बेवकूफ कारों को बदल देता है, सिवाय इसके कि उन कार्यों को छोड़कर, वे पूरा नहीं कर सके और नहीं कर सका।
इसलिए ऐसी कार बनाना बहुत दिलचस्प होगा जो संख्याओं को नहीं पढ़ेगा और प्रतीक नहीं, बल्कि एक एल्गोरिदम, और एक प्रोग्राम करने योग्य मशीन बनाने के लिए, यह प्रदर्शन करेगा। यही वह जगह है जहां ट्यूरिंग किया गया था (मैं कहूंगा कि इस तरह के अवशेषों को बहुत कुछ करने के अलावा)। और ऐसी कार के मॉडल का आविष्कार किया। यह पता चला कि जटिल एल्गोरिदम करने के लिए बस एक गाड़ी, एक अंतहीन टेप, अच्छी तरह से, टेप पर दर्ज मूल्यों को बदलने और इसके साथ आगे बढ़ने की क्षमता की आवश्यकता होती है। यह पता चला है कि यह अमूर्त वास्तव में एक वास्तविक कार में बदल सकता है, केवल एक ही, प्रतिबंध के साथ, हम एक अनंत रिबन के साथ एक कार प्रदान नहीं कर सकते हैं, लेकिन हम एक बहुत लंबे रिबन बना सकते हैं;)
पीछे हटना। असल में, ट्यूरिंग मशीन कैसे काम करती है, कुछ भी कहती है, जैसा कि मैंने कहा था, यह बहुत आसान पाया जा सकता है। इसलिए, हम मान लेंगे कि आप पहले से ही जानते हैं कि यह कैसे काम करता है।
खैर, ट्यूरिंग मशीन के कुछ सरल एल्गोरिदम प्रदर्शन करते हैं, यह निस्संदेह है। लेकिन जटिल के बारे में कैसे? और, उदाहरण के लिए, एमटी का उपयोग करके एक चक्र व्यवस्थित कैसे करें? या ब्रांचिंग का पता लगाने के लिए कैसे? यह पता चला है कि ऐसे प्रमेय हैं जो साबित करते हैं कि एमटी चक्र और शाखाएं कर सकता है, जो हमें बताता है कि एक बहुत ही सरल तंत्र का उपयोग करके, आप सरल शाखा और चक्र के ब्लॉक से कार्यक्रम बना सकते हैं, और इसलिए, आप प्रोग्राम किए जा सकने वाले सब कुछ प्रोग्राम कर सकते हैं। और यहां, सिद्धांत रूप में, यह समझाने का एक टुकड़ा होना चाहिए कि गैर-सरकारी कार्य भी हैं, और इसलिए, अघुलनशील कार्य, और इन कार्यों को एमटी का उपयोग करके हल नहीं किया जा सकता है। कि कैसे।
लेकिन किसी ने ट्यूरिंग मशीन के कूलर के साथ कुछ भी आविष्कार नहीं किया, इसलिए सभी प्रोग्रामिंग भाषाएं जो अब हम उपयोग करते हैं, वे ट्यूरिंग मशीन से अधिक नहीं प्रोग्राम कर सकते हैं। यहां से ट्यूरिंग के साथ पूर्णता की एक अवधारणा थी, जिसका अर्थ यह है कि भाषा (या कुछ और) इस घटना में ट्यूरिंग से भरा है कि आप ट्यूरिंग मशीन पर सभी एल्गोरिदम लिख सकते हैं। और यह साबित करने के लिए कि उस पर ट्यूरिंग मशीन के एमुलेटर लिखकर भाषा ट्यूरिंग द्वारा पूरी हो गई है। ये पाई हैं।
गणित के दृष्टिकोण से, पोस्ट-फुफ्लो, लेकिन यह स्पष्ट है, नफीग के लिए, हमें एक ट्यूरिंग मशीन की आवश्यकता है। खैर, वास्तव में इस कार के लिए एल्गोरिदम लिखते हैं - एक दिलचस्प पहेली। मेरा मानना \u200b\u200bहै कि जो लोग कहते हैं कि ट्यूरिंग की कार पर प्रोग्रामिंग एक्सपी (एक्स) के बाद, वह वास्तव में समझ गया कि एक एल्गोरिदम क्या है। मैंने कोशिश नहीं की है, लेकिन यह एक दिलचस्प काम है।
सिम्युलेटर "ट्यूरिंग मशीन" 1 9 36 में एल्गोरिदम की अवधारणा को स्पष्ट करने के लिए ए। ट्यूरिंग द्वारा प्रस्तावित एक सार्वभौमिक कलाकार (सार कंप्यूटिंग मशीन) का एक शैक्षणिक मॉडल है। ट्यूरिंग की थीसिस के अनुसार, किसी भी एल्गोरिदम को ट्यूरिंग मशीन के लिए प्रोग्राम के रूप में रिकॉर्ड किया जा सकता है। यह साबित कर दिया गया है कि इसकी क्षमताओं में ट्यूरिंग मशीन पोस्ट और सामान्य मार्कोव एल्गोरिदम के बराबर है।
ट्यूरिंग मशीन में एक कैरिज (पढ़ना और लिखना) और एक अनंत रिबन होता है, जो कोशिका में टूट जाता है। टेप के प्रत्येक सेल में कुछ वर्णमाला ए \u003d (ए 0, ए 1, ..., ए एन) से प्रतीक हो सकता है। किसी भी वर्णमाला में "स्पेस" प्रतीक होता है, जिसे 0 या λ के रूप में दर्शाया जाता है। आदेशों को दर्ज करते समय, अंतरिक्ष को "_" रेखांकित संकेत द्वारा प्रतिस्थापित किया जाता है।
ट्यूरिंग मशीन एक मशीन है जो एक टेबल द्वारा प्रबंधित की जाती है। तालिका में पंक्तियां चयनित वर्णमाला ए के प्रतीकों के अनुरूप हैं, और कॉलम - ऑटोमेटन क्यू \u003d (क्यू 0, क्यू 1, ..., क्यू एम) के राज्य। काम की शुरुआत में, ट्यूरिंग मशीन एक राज्य क्यू 1 में है। हालत q 0 अंतिम स्थिति है: इसे मारना, मशीन काम खत्म करती है।
एक निश्चित चरित्र ए और कुछ राज्य क्यू जे के कुछ राज्य के अनुरूप तालिका के प्रत्येक कक्ष में, एक आदेश है जिसमें तीन भागों शामिल हैं:
कार्यक्रम के शीर्ष पर संपादक का एक क्षेत्र है, जिसमें आप समस्या की समस्या को मुक्त रूप में दर्ज कर सकते हैं।
रिबन बाईं ओर और दाएं तरफ और बाईं ओर स्थित बटन की मदद से चलता है। टेप सेल पर डबल-क्लिक करें (या दाएं माउस बटन पर क्लिक करके) आप इसकी सामग्री बदल सकते हैं।
मेनू का उपयोग करना फीता आप आंतरिक बफर में टेप की स्थिति याद कर सकते हैं और बफर से टेप को पुनर्स्थापित कर सकते हैं।
खेत मेँ वर्णमाला चयनित वर्णमाला के प्रतीक सेट हैं। अंतरिक्ष स्वचालित रूप से दर्ज वर्णों में जोड़ा जाता है।
खिड़की के नीचे की मेज एक कार्यक्रम दिया जाता है। पहले कॉलम में, वर्णमाला के प्रतीक दर्ज किए जाते हैं, यह स्वचालित रूप से भरा जाता है। सभी संभावित राज्य पहली पंक्ति में सूचीबद्ध हैं। आप तालिका के ऊपर स्थित बटनों का उपयोग करके तालिका (स्थिति) के कॉलम जोड़ और हटा सकते हैं।
तालिका कक्ष में कमांड दर्ज करते समय, आपको पहले एक नया चरित्र दर्ज करने की आवश्यकता होती है, फिर संक्रमण दिशा और राज्य संख्या। यदि प्रतीक गायब है, तो यह डिफ़ॉल्ट रूप से नहीं बदलता है। यदि स्थिति संख्या गायब है, तो मशीन की डिफ़ॉल्ट स्थिति नहीं बदली जाती है।
क्षेत्र में सही टिप्पणी आप समाधान पर मनमानी रूप टिप्पणियों में प्रवेश कर सकते हैं। अक्सर वहां समझाते हैं कि ट्यूरिंग मशीन के हर राज्य का क्या अर्थ है।
कार्यक्रम लगातार (एफ 9) या चरण (एफ 8) किया जा सकता है। टीम जिसे अब एक हरे रंग की पृष्ठभूमि से हाइलाइट किया जाएगा। प्रदर्शन की गति मेनू का उपयोग करके समायोजित की जाती है स्पीड.
ट्यूरिंग मशीन के लिए कार्य फ़ाइलों में सहेजे जा सकते हैं। कार्य, वर्णमाला, कार्यक्रम, टिप्पणियां और टेप की प्रारंभिक स्थिति की स्थिति बनी हुई है। फ़ाइल से किसी कार्य को लोड करते समय और फ़ाइल में बचत करते समय, टेप स्थिति स्वचालित रूप से बफर में दर्ज की जाती है।
यदि आप कोई गलती देखते हैं या आपके पास सुझाव, टिप्पणियां, शिकायतें, अनुरोध और अनुप्रयोग हैं, तो लिखें।
कार्यक्रम ऑपरेटिंग सिस्टम शासक चला रहा है खिड़कियाँ किसी भी आधुनिक कंप्यूटर पर।
कार्यक्रम गैर-वाणिज्यिक उपयोग के लिए नि: शुल्क है। कार्यक्रम के स्रोत ग्रंथ लागू नहीं होते हैं।
कार्यक्रम आता है " जैसा है।"यही है, लेखक नैतिक और भौतिक नुकसान, निकासी उपकरण, शारीरिक और मानसिक चोटों सहित इसके उपयोग के सभी प्रकार के परिणामों के लिए कोई ज़िम्मेदारी नहीं लेता है।
अन्य वेबसाइटों पर एक प्रोग्राम डालते समय, मूल स्रोत का संदर्भ आवश्यक है।
सामग्री डाउनलोड करने का मतलब है कि आपने इस लाइसेंस समझौते की शर्तें ली हैं।
संग्रह को अनपॅक करने के बाद, कार्यक्रम काम करने की स्थिति में है और किसी भी अतिरिक्त प्रतिष्ठान की आवश्यकता नहीं है।
ट्यूरिंग मशीन (एमटी) सार कलाकार (सार कंप्यूटिंग)। 1 9 36 में एलन ट्यूरिंग द्वारा एलनन ट्यूरिंग द्वारा प्रस्तावित किया गया था ताकि एल्गोरिदम की अवधारणा को औपचारिक बनाया जा सके।
ट्यूरिंग मशीन एक सीमित ऑटोमेटन का विस्तार है और चर्च की थीसिस के अनुसार - ट्यूरिंग, सभी कलाकारों की नकल करने में सक्षम (संक्रमण नियमों के कार्य का उपयोग करके), चरण-दर-चरण गणना प्रक्रिया को लागू करने के किसी भी तरह से, जिसमें प्रत्येक चरण गणना पर्याप्त तत्व है।
यही है, प्रत्येक अंतर्ज्ञानी एल्गोरिदम को कुछ ट्यूरिंग मशीन का उपयोग करके लागू किया जा सकता है।
1 / 5
✪ 09 - एल्गोरिदम का परिचय। ट्यूरिंग मशीन
✪ ट्यूरिंग मशीन - अलेक्जेंडर शेन
✪ व्याख्यान 20: ट्यूरिंग मशीन
✪ ट्यूरिंग मशीन। काम का उदाहरण
✪ 16 - गणनाशीलता। ट्यूरिंग मशीनें। प्रेरणा और उदाहरण
ट्यूरिंग मशीन की संरचना में दोनों दिशाओं में असीमित शामिल हैं फीता (ट्यूरिंग की संभावित मशीनें, जिनमें कई अंतहीन टेप हैं), कोशिकाओं में विभाजित, और प्रबंधन युक्ति (यह भी कहा जाता है लेखन सिर (Gzch।)), में से एक होने में सक्षम कई राज्य। नियंत्रण उपकरण के संभावित राज्यों की संख्या निश्चित रूप से निर्दिष्ट है।
नियंत्रण डिवाइस रिबन पर बाईं ओर और दाएं स्थानांतरित हो सकता है, सेल में कुछ परिमित वर्णमाला के पात्रों को पढ़ और रिकॉर्ड कर सकता है। निर्वाचित विशेष खाली प्रतीक उन सभी (अंतिम संख्या) को छोड़कर सभी टेप कोशिकाओं को भरता है जिस पर इनपुट डेटा दर्ज किया गया है।
नियंत्रण उपकरण के अनुसार काम करता है संक्रमण के लिए नियमजो एल्गोरिथ्म का प्रतिनिधित्व करते हैं कार्यान्वित ट्यूरिंग की यह मशीन। प्रत्येक संक्रमण नियम वर्तमान स्थिति के आधार पर एक मशीन और वर्तमान सेल में देखी गई प्रतीक को निर्धारित करता है, इस सेल में एक नया प्रतीक लिखें, एक नए राज्य में जाएं और एक सेल में बाएं या दाएं स्थानांतरित करें। ट्यूरिंग मशीन के कुछ राज्यों को लेबल किया जा सकता है टर्मिनल, और उनमें से किसी के लिए संक्रमण का अर्थ है काम का अंत, एल्गोरिदम को रोकें।
ट्यूरिंग मशीन कहा जाता है निर्धारकयदि तालिका में स्थिति और रिबन प्रतीक का प्रत्येक संयोजन एक से अधिक नियमों से मेल खाता है। यदि "रिबन प्रतीक - स्थिति" की एक जोड़ी है, जिसके लिए 2 या अधिक आदेश हैं, ऐसी ट्यूरिंग मशीन कहा जाता है गैर नियतात्मक.
ट्यूरिंग की विशिष्ट मशीन वर्णमाला वर्णमाला के सेट के तत्वों, राज्यों के सेट और नियमों के सेट के सेट के तत्वों की गणना द्वारा निर्धारित की जाती है, जिसके द्वारा मशीन काम करता है। उनके पास फॉर्म है: क्यूज → क्यू i1 एक जे 1 डीके (यदि सिर एक राज्य क्यूई में है, और एजे पत्र exserved सेल में दर्ज किया गया है, तो सिर एजे के बजाय सेल में क्यू i1 राज्य में जाता है एक जे 1, सिर डीके आंदोलन बनाता है, जिसमें तीन विकल्प हैं: सेल बाएं (एल) पर, सेल दाएं (आर) पर, जगह (एन)) में रहते हैं। प्रत्येक संभावित विन्यास के लिए एक बिल्कुल एक नियम है (एक गैर-निर्धारक ट्यूरिंग मशीन के लिए बड़ी संख्या में नियम हो सकते हैं)। नियम न केवल अंतिम राज्य के लिए हैं, जो मारते हैं, कार बंद हो जाती है। इसके अलावा, आपको अंतिम और प्रारंभिक स्थिति, रिबन पर प्रारंभिक विन्यास और मशीन हेड के स्थान को निर्दिष्ट करना होगा।
हम यूनरी नंबर सिस्टम में संख्याओं को गुणा करने के लिए एमटी का एक उदाहरण देते हैं। रिकॉर्डिंग "qiaj → q i1 a j1 r / l / n" नियमों को समझा जाना चाहिए: क्यूई - वह राज्य जिस पर यह नियम निष्पादित किया जाता है, एजे - सेल में डेटा जिसमें सिर स्थित है, क्यू i1 राज्य है आपको जाने की जरूरत है, एक जे 1 - आपको सेल को लिखने की क्या ज़रूरत है, आर / एल / एन आगे बढ़ने के लिए एक कमांड है।
मशीन नियमों के निम्नलिखित सेट पर काम करती है:
क्यू 0 | q 1। | क्यू 2। | क्यू 3। | क्यू 4। | क्यू 5। | क्यू 6। | क्यू 7। | क्यू 8। | |
---|---|---|---|---|---|---|---|---|---|
1 | क्यू 0 1 → क्यू 0 1 आर | q 1 1 → q 2 ar | क्यू 2 1 → क्यू 2 1 एल | q 3 1 → q 4 ar | क्यू 4 1 → क्यू 4 1 आर | q 7 1 → q 2 ar | |||
× | क्यू 0 × → क्यू 1 × आर | क्यू 2 × → क्यू 3 × एल | क्यू 4 × → क्यू 4 × आर | क्यू 6 × → क्यू 7 × आर | q 8 × → q 9 × n | ||||
= | q 2 \u003d → q 2 \u003d l | q 4 \u003d → q 4 \u003d r | q 7 \u003d → q 8 \u003d l | ||||||
ए। | क्यू 2 ए → क्यू 2 अल | क्यू 3 ए → क्यू 3 अल | q 4 a → q 4 ar | क्यू 6 ए → क्यू 6 1 आर | q 7 a → q 7 ar | क्यू 8 ए → क्यू 8 1 एल | |||
* | q 0 * → q 0 * r | q 3 * → q 6 * r | क्यू 4 * → क्यू 5 1 आर | ||||||
क्यू 5 → क्यू 2 * एल |
स्टैटस वर्णन:
शुरू | |
क्यू 0 | प्राथमिक राज्य हम दाईं ओर "एक्स" की तलाश में हैं। Q1 खोजने पर |
---|---|
q 1। | हम "1" को "ए" में बदलते हैं और Q2 स्थिति में जाते हैं |
परिणाम में पहली संख्या से सभी "1" को स्थानांतरित करें | |
क्यू 2। | हम बाईं ओर "एक्स" की तलाश में हैं। Q3 खोजने पर |
क्यू 3। | हम बाईं ओर "1" की तलाश में हैं, इसे "ए" से बदलें और क्यू 4 राज्य में जाएं। मामले में "1" समाप्त हुआ, हम "*" पाते हैं और Q6 राज्य में जाते हैं |
क्यू 4। | अंत में जाएं (दाईं ओर "*" की तलाश), "*" को "1" में बदलें और Q5 स्थिति पर जाएं |
क्यू 5। | "*" को अंत में जोड़ें और Q2 राज्य पर जाएं |
हम दूसरी संख्या की प्रत्येक श्रेणी को आगे बढ़ाते हैं | |
क्यू 6। | हम दाईं ओर "एक्स" की तलाश में हैं और क्यू 7 राज्य में जाते हैं। जबकि हम "1" पर "ए" की तलाश में हैं |
क्यू 7। | हम "1" या "\u003d" के लिए देख रहे हैं जब आप "1" पाते हैं तो हम इसे "ए" के साथ बदलते हैं और Q2 राज्य में जाते हैं जब "\u003d" Q8 राज्य पर जाएं |
समाप्त | |
क्यू 8। | हम बाईं ओर "एक्स" की तलाश में हैं। यदि आपको लगता है कि यह Q9 स्थिति में जाता है। जबकि हम "1" पर "ए" की तलाश में हैं |
क्यू 9। | टर्मिनल स्टेट (स्टॉप एल्गोरिदम) |
एक ही सिस्टम में MT 3 से 2 के साथ गुणा करें। प्रोटोकॉल में एमटी की प्रारंभिक और अंतिम स्थिति, टेप पर प्रारंभिक कॉन्फ़िगरेशन और मशीन (रेखांकित प्रतीक) का स्थान शामिल है।
शुरू। हम एक राज्य क्यू 0 में हैं, डेटा कार में प्रवेश किया गया था: * 111x11 \u003d *, मशीन हेड पहले प्रतीक * पर स्थित है।
पहला कदम। हम नियमों की तालिका को देखते हैं कि मशीन एक राज्य क्यू 0 और उसके ऊपर "*" के ऊपर होने पर बनाई जाएगी। यह नियम 5 वीं पंक्ति के 1 कॉलम से - क्यू 0 * → क्यू 0 * आर। इसका मतलब है कि हम क्यू 0 राज्य (यानी हम इसे नहीं बदलते हैं) पर जाते हैं, प्रतीक "*" बन जाएगा (यानी, यह नहीं बदलेगा) और पाठ "* 111x11 \u003d *" के माध्यम से स्थानांतरित हो जाएगा एक स्थिति का अधिकार (आर), एक पहला प्रतीक है 1. बदले में, राज्य क्यू 0 1 (1 मानक कॉलम 1 लाइन) नियम क्यू 0 1 → क्यू 0 1 आर द्वारा संसाधित किया जाता है। यही है, यह फिर से 1 स्थान पर संक्रमण होता है। ऐसा तब होता है जब तक हम प्रतीक "एक्स" पर नहीं बन जाते। और इसी तरह: स्थिति लें (क्यू पर सूचकांक), एक प्रतीक लें जिस पर हम खड़े हैं (रेखांकित प्रतीक), उन्हें कनेक्ट करें और नियम तालिका पर प्राप्त संयोजन की प्रसंस्करण देखें।
सरल शब्द, गुणा एल्गोरिदम निम्नानुसार है: हम दूसरे कारक की पहली इकाई को चिह्नित करते हैं, इसे "ए" अक्षर के साथ बदलते हैं, और समानता के संकेत के लिए पूरे 1 गुणक को स्थानांतरित करते हैं। स्थानांतरण "ए" पर पहले कारक की इकाइयों के पहले प्रतिस्थापन में से एक द्वारा किया जाता है और लाइन के अंत में समान संख्या में इकाइयों को जोड़ता है (चरम दाएं "*" के बाईं ओर)। फिर गुणन "एक्स" के संकेत के लिए सभी "ए" को इकाइयों में बदलें। और चक्र दोहराया जाता है। दरअसल, क्योंकि एक गुणा को + ए + के रूप में और कभी-कभी दर्शाया जा सकता है। अब हमने "ए" पत्र के दूसरे कारक की दूसरी इकाई को लेबल किया और इकाइयों को फिर से स्थानांतरित किया। जब साइन "\u003d" इकाइयों के रूप में नहीं निकलता है - इसका मतलब है कि गुणा पूरा हो गया है।
यह कहा जा सकता है कि ट्यूरिंग मशीन एक रैखिक स्मृति के साथ सबसे सरल कंप्यूटिंग मशीन है, जो औपचारिक नियमों के अनुसार, अनुक्रम का उपयोग करके इनपुट डेटा को परिवर्तित करता है प्राथमिक कार्रवाई.
क्रियाओं की मौलिकता यह है कि कार्रवाई स्मृति में केवल एक छोटा सा हिस्सा बदलती है (एक ट्यूरिंग मशीन के मामले में - केवल एक सेल), और पाठ्यक्रम के संभावित कार्यों की संख्या। ट्यूरिंग मशीन की सादगी के बावजूद, इसकी गणना की जा सकती है कि किसी भी अन्य मशीन पर गणना की जा सकती है जो प्राथमिक कार्यों के अनुक्रम को पूरा करती है। इस संपत्ति को बुलाया जाता है पूर्णता.
सबूत के प्राकृतिक तरीकों में से एक है कि गणना एल्गोरिदम जिन्हें एक मशीन पर लागू किया जा सकता है उसे दूसरे पर लागू किया जा सकता है, दूसरी कार की नकल दूसरी तरफ है।
अनुकरण निम्नानुसार है। दूसरी मशीन का इनपुट पहली कार के कार्यक्रम (कार्य के नियम) का विवरण प्रदान करता है डी (\\ displaystyle d) और इनपुट डेटा X (\\ displaystyle x)उसे पहली कार के प्रवेश द्वार पर जाना पड़ा। इस तरह के एक कार्यक्रम (दूसरी मशीन के संचालन के नियम) का वर्णन करना आवश्यक है ताकि आउटपुट में गणना के परिणामस्वरूप, यदि डेटा प्राप्त हो तो पहली कार में एक ही चीज़ वापस कर दी जाएगी X (\\ displaystyle x).
जैसा कि कहा गया था, ट्यूरिंग मशीन पर आप सभी अन्य कलाकारों को अनुकरण कर सकते हैं (संक्रमण नियमों के कार्य का उपयोग करके), चरण-दर-चरण गणना की प्रक्रिया को लागू करने के किसी भी तरह से, जिसमें प्रत्येक चरण गणना पर्याप्त रूप से तत्व है।
ट्यूरिंग मशीन पर, आप पोस्ट मशीन, सामान्य मार्कोव एल्गोरिदम और सामान्य कंप्यूटर के लिए किसी भी प्रोग्राम को अनुकरण कर सकते हैं, सप्ताहांत पर किसी भी एल्गोरिदम द्वारा इनपुट डेटा को परिवर्तित कर सकते हैं। बदले में, विभिन्न अमूर्त कलाकारों पर, आप एक ट्यूरिंग मशीन अनुकरण कर सकते हैं। कलाकार जिनके लिए यह संभव है उसे कहा जाता है ट्यूरिंग में पूर्ण (पूर्ण ट्यूरिंग)।
सामान्य कंप्यूटरों के लिए कार्यक्रम हैं जो ट्यूरिंग मशीन के संचालन की नकल करते हैं। लेकिन यह ध्यान दिया जाना चाहिए कि यह अनुकरण अपूर्ण है, जैसा कि ट्यूरिंग मशीन में एक सार अंतहीन टेप है। डेटा के साथ अनंत टेप को अल्टीमेट मेमोरी (कंप्यूटर की कुल मेमोरी - रैम, हार्ड ड्राइव, विभिन्न बाहरी डेटा वाहक, रजिस्टर और प्रोसेसर कैश इत्यादि के साथ कंप्यूटर पर पूरी तरह से अनुकरण नहीं किया जा सकता है - बहुत बड़ा हो सकता है, लेकिन फिर भी, हमेशा परिमित)।
ट्यूरिंग मशीन का मॉडल विस्तार की अनुमति देता है। आप विभिन्न प्रतिबंधों के साथ रिबन और बहुआयामी रिबन की मनमानी संख्या के साथ मशीनों को ट्यूरिंग मशीनों पर विचार कर सकते हैं। हालांकि, ये सभी मशीनें ट्यूरिंग करके पूरी होती हैं और पारंपरिक ट्यूरिंग मशीन द्वारा अनुकरण की जाती हैं।
उदाहरण के तौर पर, हम इस जानकारी को निम्नलिखित प्रमेय मानते हैं: किसी भी ट्यूरिंग मशीन के लिए एक अर्ध-अनंत टेप (जो टेप, अंतहीन एक तरह से) पर एक समकक्ष ट्यूरिंग मशीन है।
यू द्वारा दिए गए साक्ष्य पर विचार करें। "स्वचालित सिद्धांत" पुस्तक पुस्तक में जी। कार्पोव। इस प्रमेय का सबूत रचनात्मक है, यानी, हम एक एल्गोरिदम देंगे जिसके लिए एक घोषित संपत्ति के साथ एक समकक्ष ट्यूरिंग मशीन किसी भी ट्यूरिंग मशीन के लिए बनाई जा सकती है। सबसे पहले, मनमाने ढंग से काम कर रहे टेप माउंट की कोशिकाओं को खर्च किया जाता है, यानी, हम टेप पर जानकारी का एक नया स्थान परिभाषित करते हैं:
फिर हम कोशिकाओं को ले जाते हैं, और हम मान लेंगे कि एमटी शब्दकोश में प्रतीक "*" निहित नहीं है:
अंत में, हम अपने राज्यों की संख्या को कम करके ट्यूरिंग मशीन को बदल देंगे, और रीड-राइट हेड की शिफ्ट को बदल देंगे ताकि राज्यों के एक समूह में मशीन का काम छायांकित क्षेत्र में अपने काम के बराबर होगा, और राज्यों के एक अन्य समूह में, मशीन अशुद्ध क्षेत्र में स्रोत मशीन के रूप में काम करेगी। यदि "*" प्रतीक एमटी काम करते समय मिलेंगे, तो इसका मतलब है कि रीड-राइट हेड ज़ोन की सीमाओं तक पहुंच गया:
नई ट्यूरिंग मशीन की प्रारंभिक स्थिति एक या किसी अन्य क्षेत्र में स्थापित है, इस पर निर्भर करता है कि स्रोत रिबन का कौन सा हिस्सा मूल कॉन्फ़िगरेशन में रीड-राइट हेड है। यह स्पष्ट है कि सीमित मार्करों के बाईं ओर "*" ट्यूरिंग की समकक्ष मशीन में टेप का उपयोग नहीं किया जाता है।
ट्यूरिंग मशीन निम्नलिखित वस्तुओं का एक संयोजन है।
एक खाली सेल प्रतीक एक बाहरी वर्णमाला 0 का अक्षर है।
राज्यों में प्रारंभिक क्यू 1 द्वारा हाइलाइट किया गया है, जबकि मशीन बंद होने पर मशीन शुरू होती है, और अंतिम (या स्टॉप स्टेट) क्यू 0, जब मशीन बंद हो जाती है।
नियंत्रण डिवाइस रिबन पर बाईं ओर और दाएं स्थानांतरित हो सकता है, वर्णमाला ए के टेप प्रतीकों की कोशिकाओं में पढ़ने और रिकॉर्ड कर सकता है। नियंत्रण इकाई निम्न प्रकार के आदेशों के अनुसार काम करती है
q i j\u003e a p x q k
रिकॉर्ड का मतलब निम्नलिखित है: यदि नियंत्रण उपकरण एक राज्य क्यूई में है, और पत्र एजे को एक्ससर्ड सेल में दर्ज किया गया है, तो एपी, (2), एजे के बजाय रिकॉर्ड किया गया है, (2) मशीन समीक्षा के लिए आयोजित की जाती है अगले दाएं सेल की समीक्षा की गई है, यदि x \u003d n, या अगले बाएं सेल की समीक्षा के लिए, यदि x \u003d l, या टेप के उसी सेल को नजरअंदाज करना जारी रखता है, तो x \u003d c, ( 3) नियंत्रण डिवाइस राज्य क्यू के लिए स्विच करता है।
चूंकि मशीन के संचालन के बाद, इस स्थिति में, इस समय, इस समय, कोशिकाओं और कोशिकाओं को इस पल में ओवरपास करने के लिए पूरी तरह से निर्धारित किया जाता है, फिर प्रत्येक संभावित कॉन्फ़िगरेशन के लिए q i j, एक बिल्कुल एक नियम है। नियम न केवल अंतिम राज्य के लिए हैं, जब कार बंद हो जाती है। इसलिए, एक बाहरी वर्णमाला ए \u003d (ए 0, ए 1, ..., ए) और आंतरिक क्यू \u003d (क्यू 1, क्यू 2, ..., क्यूएम) के साथ ट्यूरिंग मशीन का कार्यक्रम एम (एन + 1) से अधिक नहीं है ) आदेश।
वर्णमाला ए या वर्णमाला क्यू में एक शब्द में, या वर्णमाला में एक क्यू को संबंधित वर्णमाला के अक्षरों के किसी भी अनुक्रम कहा जाता है। के-वें कॉन्फ़िगरेशन के तहत, हम मशीन के रिबन की छवि को समझेंगे, जो उस चरण की शुरुआत में स्थापित की गई जानकारी (या वर्णमाला में शब्द, टेप पर दर्ज की गई है) के-थ्रीस की शुरुआत), यह दर्शाता है कि इस चरण में कौन सी सेल को अनदेखा किया जाता है और कार किस स्थिति में होती है। यह केवल अंत विन्यास बनाता है, यानी इस तरह, जिसमें टेप की सभी कोशिकाएं, शायद, एक सीमित संख्या, खाली, छोड़कर। कॉन्फ़िगरेशन को अंतिम कहा जाता है, यदि वह राज्य जिसमें मशीन है, अंतिम एक।
यदि आप एक प्रारंभिक के रूप में ट्यूरिंग मशीन की किसी भी गैर-कच्छि कॉन्फ़िगरेशन का चयन करते हैं, तो मशीन के संचालन में मूल कॉन्फ़िगरेशन प्राप्त होने तक मशीन प्रोग्राम के अनुसार मूल कॉन्फ़िगरेशन को परिवर्तित करने के लिए (चरण-दर-चरण) को परिवर्तित करने के लिए शामिल किया जाएगा। उसके बाद, ट्यूरिंग मशीन का काम समाप्त होने के लिए माना जाता है, और काम के परिणाम को अंतिम कॉन्फ़िगरेशन माना जाता है।
हम कहते हैं कि वर्णमाला ए (ए 0) \u003d (ए 1, ..., ए) में एक गैर-खाली शब्द बी को मानक स्थिति में मशीन द्वारा माना जाता है, अगर यह लगातार टेप कोशिकाओं में लिखा जाता है, तो अन्य सभी कोशिकाएं होती हैं खाली, और मशीन उन लोगों के दाईं ओर बाईं ओर चरम या चरम पर अत्यधिक नजर रखती है जिनमें शब्द बी रिकॉर्ड किया गया है। मानक स्थिति को प्रारंभिक (अंतिम) कहा जाता है यदि मशीन जो मानक स्थिति में शब्द को समझती है वह क्यू 1 की प्रारंभिक स्थिति में है (क्रमशः स्टॉप क्यू 0 की स्थिति में)।
यदि शब्द प्रसंस्करण बी ट्यूरिंग मशीन को अंतिम स्थिति में अनुवाद करता है, तो वे कहते हैं कि यह बी पर लागू होता है, अन्यथा - बी पर लागू नहीं (मशीन असीम रूप से काम करती है)
एक उदाहरण पर विचार करें:
एक बाहरी वर्णमाला के साथ एक ट्यूरिंग मशीन को ट्यूरिंग करना \u003d (0, 1) (यहां 0 एक खाली सेल प्रतीक है), आंतरिक राज्यों की वर्णमाला क्यू \u003d (क्यू 0, क्यू 1, क्यू 2) और निम्नलिखित कार्यात्मक योजना के साथ ( कार्यक्रम):
प्रश्न 1 0\u003e 1 एल क्यू 2;
प्रश्न 1 1\u003e 0 सी 2;
प्रश्न 2 0\u003e 0 एन क्यू 0;
क्यू 2 1\u003e 1 क्यू 1 के साथ;
इस कार्यक्रम को एक तालिका का उपयोग करके रिकॉर्ड किया जा सकता है
पहले चरण में, कमांड: क्यू 1 0\u003e 1 एल क्यू 2 (नियंत्रण डिवाइस एक राज्य क्यू 1 में है, और पत्र 0 को एक्ससर्ड सेल में दर्ज किया गया है, 1 को सेल 1 में लिखा गया है, सिर बाईं ओर स्थित है , नियंत्रण डिवाइस Q2 राज्य में जाता है), नतीजतन, मशीन पर निम्न कॉन्फ़िगरेशन बनाया गया है:
अंत में, कमांड को निष्पादित करने के बाद q 2 0\u003e 0 n q 0, एक कॉन्फ़िगरेशन बनाया गया है
यह कॉन्फ़िगरेशन अंतिम है, क्योंकि मशीन क्यू 0 को रोकने की स्थिति में थी।
इस प्रकार, प्रारंभिक शब्द 110 को Word 101 में मशीन द्वारा पुनर्नवीनीकरण किया जाता है।
परिणामी विन्यास अनुक्रम को एक छोटे से तरीके से लिखा जा सकता है (संयुक्त कक्ष की सामग्री उस राज्य के दाईं ओर लिखी गई है जिसमें मशीन वर्तमान में स्थित है):
11 क्यू 1 0 \u003d\u003e 1 क्यू 2 11 \u003d\u003e 1Q 1 11 \u003d\u003e 1Q 2 01 \u003d\u003e 10Q 0 1
ट्यूरिंग मशीन - शब्दों को वर्णमाला को बदलने के लिए कुछ नियम (एल्गोरिदम) के अलावा कुछ भी नहीं। विन्यास। इस प्रकार, ट्यूरिंग मशीन को निर्धारित करने के लिए, अपने बाहरी और आंतरिक वर्णमाला, प्रोग्राम को निर्दिष्ट करना आवश्यक है, और निर्दिष्ट करें कि कौन से वर्ण एक खाली सेल और अंतिम स्थिति को इंगित करते हैं।
ट्यूरिंग मशीन 20 वीं शताब्दी की सबसे दिलचस्प और रोमांचक बुद्धिमान खोजों में से एक है। यह एक साधारण और उपयोगी सार कंप्यूटिंग मॉडल (कंप्यूटर और डिजिटल) है, जो किसी भी कंप्यूटर कार्य को शामिल करने के लिए काफी आम है। सरल विवरण और गणितीय विश्लेषण के लिए धन्यवाद, यह सैद्धांतिक सूचना विज्ञान की नींव बनाता है। इस अध्ययन में डिजिटल कंप्यूटर और कैलकुस के गहन ज्ञान का नेतृत्व हुआ, जिसमें समझ शामिल है कि कुछ कम्प्यूटेशनल समस्याएं हैं जो सामान्य उपयोगकर्ता कंप्यूटर पर हल नहीं की जाती हैं।
एलन ट्यूरिंग ने एक यांत्रिक उपकरण के सबसे आदिम मॉडल का वर्णन करने की मांग की जिसमें कंप्यूटर के समान मुख्य विशेषताएं होंगी। ट्यूरिंग ने पहले 1 9 36 में "सॉल्वेबिलिटी समस्या के लिए परिशिष्ट के साथ कम्प्यूट करने योग्य नंबरों पर" लेख में कार का वर्णन किया, जो लंदन गणितीय सोसाइटी के कार्यों में दिखाई दिया।
ट्यूरिंग मशीन एक कंप्यूटिंग डिवाइस है जिसमें एक पेपर टेप के साथ पढ़ने / लिखने वाले सिर (या "स्कैनर") शामिल है। टेप वर्गों में बांटा गया है, जिनमें से प्रत्येक एक एकल वर्ण - "0" या "1" लेता है। तंत्र का उद्देश्य यह है कि यह इनपुट और आउटपुट के साधन के रूप में भी कार्य करता है, और गणना के मध्यवर्ती चरणों के परिणामों को संग्रहीत करने के लिए एक कामकाजी स्मृति के रूप में भी कार्य करता है।
ऐसी मशीन में दो घटक होते हैं:
प्रत्येक मशीन दो अंतिम डेटा श्रृंखला को बांधती है: आने वाले पात्रों की वर्णमाला ए \u003d (ए 0, ए 1, ..., एएम) और राज्यों की वर्णमाला क्यू \u003d (क्यू 0, क्यू 1, ..., क्यूपी)। हालत Q0 को निष्क्रिय कहा जाता है। ऐसा माना जाता है कि जब डिवाइस उसके पास आता है तो डिवाइस अपने काम को खत्म करता है। हालत Q1 को प्रारंभिक कहा जाता है - इसमें शुरुआत में कार की गणना शुरू होती है। इनपुट शब्द प्रत्येक स्थिति में एक पंक्ति में एक अक्षर के लिए टेप पर स्थित है। इसके दोनों किनारों पर केवल खाली कोशिकाएं स्थित हैं।
ट्यूरिंग मशीन में कंप्यूटिंग उपकरणों से मौलिक अंतर होता है - इसके स्टोरेज डिवाइस में एक अनंत टेप होता है, जबकि डिजिटल डिवाइस ऐसे डिवाइस में एक निश्चित लंबाई की एक पट्टी होती है। कार्यों के प्रत्येक वर्ग केवल एक निर्मित ट्यूरिंग मशीन को हल करता है। किसी अन्य प्रजाति के कार्य एक नया एल्गोरिदम लिखने का सुझाव देते हैं।
एक राज्य में होने वाला नियंत्रण उपकरण, टेप के किसी भी तरफ जा सकता है। यह कोशिकाओं में रिकॉर्ड करता है और उनके साथ अंतिम वर्णमाला के प्रतीकों को पढ़ता है। विस्थापन प्रक्रिया के दौरान, एक खाली तत्व आवंटित किया जाता है, जो उन पदों को भरता है जिनमें इनपुट डेटा नहीं होता है। ट्यूरिंग मशीन के लिए एल्गोरिदम नियंत्रण डिवाइस के लिए संक्रमण नियमों को परिभाषित करता है। उन्होंने लेखन-रीडिंग हेड ऐसे पैरामीटर सेट किए हैं: नए चरित्र के सेल में रिकॉर्डिंग, एक नए राज्य में स्विच करें, रिबन पर बाएं या दाएं स्थानांतरित करें।
अन्य कंप्यूटिंग सिस्टम की तरह ट्यूरिंग मशीन में, इसमें अंतर्निहित विशेषताएं हैं, और वे एल्गोरिदम के गुणों के समान हैं:
एल्गोरिदम का समाधान अक्सर कार्य के कार्यान्वयन की आवश्यकता होती है। गणना के लिए एक श्रृंखला लिखने की संभावना के आधार पर, फ़ंक्शन को एल्गोरिदमिक रूप से घुलनशील या अव्यवस्थित कहा जाता है। प्राकृतिक या तर्कसंगत संख्याओं के एक सेट के रूप में, मशीन के लिए अंतिम वर्णमाला एन में शब्दों को सेट बी के अनुक्रम द्वारा बाइनरी कोड वर्णमाला बी \u003d (0.1) के अनुक्रम द्वारा माना जाता है। साथ ही, गणना का नतीजा "अपरिवर्तित" मान को ध्यान में रखता है जो एल्गोरिदम के "फांसी" के दौरान होता है। फ़ंक्शन को लागू करने के लिए, अंतिम वर्णमाला में औपचारिक भाषा की उपस्थिति और सही विवरणों की मान्यता की समस्या का समाधान की उपस्थिति के लिए महत्वपूर्ण है।
ट्यूरिंग तंत्र के लिए कार्यक्रम तालिकाओं के साथ तैयार किए जाते हैं जिनमें पहली स्ट्रिंग और कॉलम में बाहरी वर्णमाला के प्रतीक और मशीन के संभावित आंतरिक राज्यों के मूल्यों - आंतरिक वर्णमाला के प्रतीक होते हैं। तबर डेटा कमांड हैं जो ट्यूरिंग मशीन को समझते हैं। कार्यों का समाधान इस तरह से होता है: वह पत्र, सेल में सिर द्वारा पढ़ा जाता है, ऊपर जो भी यह वर्तमान में स्थित है, और स्वचालित हेड की आंतरिक स्थिति निर्धारित की जाती है कि कौन से आदेशों को किया जाना चाहिए। विशेष रूप से, यह आदेश बाहरी वर्णमाला के प्रतीकों और तालिका में स्थित आंतरिक के अनुच्छेदों के चौराहे पर है।
एक विशिष्ट कार्य को हल करने के लिए एक ट्यूरिंग मशीन बनाने के लिए, इसके लिए निम्न पैरामीटर निर्धारित करना आवश्यक है।
बाहरी वर्णमाला। यह उन पात्रों का कुछ अंतिम सेट है जो उन तत्वों से परिचित हैं जिनके तत्वों को पत्र कहा जाता है। उनमें से एक - ए 0 - खाली होना चाहिए। उदाहरण के लिए, ट्यूरिंग के डिवाइस की वर्णमाला, बाइनरी नंबरों के साथ काम कर रही है, ऐसा लगता है: ए \u003d (0, 1, ए 0)।
टेप पर दर्ज अक्षरों के अक्षरों की निरंतर श्रृंखला को शब्द कहा जाता है।
मशीन को एक उपकरण कहा जाता है जो बिना हस्तक्षेप के काम करता है। ट्यूरिंग मशीन में, इसमें कई अलग-अलग राज्य समस्याएं हल करने के लिए हैं और निश्चित रूप से उत्पन्न होने वाली स्थितियों के तहत एक स्थिति से दूसरे स्थान पर चलता है। ऐसे कैरिज राज्यों का संयोजन एक आंतरिक वर्णमाला है। इसमें टाइप क्यू \u003d (क्यू 1, क्यू 2 ...) का एक वर्णमाला पदनाम है। इन प्रावधानों में से एक Q1 है - प्रारंभिक होना चाहिए, यानी, उसमें यह कार्यक्रम शुरू करता है। एक और आवश्यक तत्व राज्य Q0 है, जो अंत है, यानी, प्रोग्राम को पूरा करके और डिवाइस को स्टॉप स्थिति में अनुवाद करके।
संक्रमण की तालिका। यह घटक डिवाइस कैरिज के व्यवहार के लिए एक एल्गोरिदम है, वर्तमान में मशीन की स्थिति और पढ़ने के प्रतीक के मूल्य के आधार पर।
ऑपरेशन के दौरान ट्यूरिंग डिवाइस की गाड़ी एक प्रोग्राम द्वारा प्रबंधित की जाती है कि प्रत्येक चरण के दौरान निम्नलिखित कार्यों का अनुक्रम होता है:
इस प्रकार, जब पात्रों या पदों की प्रत्येक जोड़ी के लिए प्रोग्राम लिखते हैं, तो तीन पैरामीटर का सटीक रूप से वर्णन करना आवश्यक है: एआई - चयनित वर्णमाला ए से एक तत्व, कैरिज शिफ्ट की दिशा ("←" बाएं, "→" दाईं ओर , "बिंदु" - कोई आंदोलन नहीं) और क्यूके - डिवाइस की नई स्थिति। उदाहरण के लिए, एक कमांड 1 "←" क्यू 2 मामलों "चरित्र को 1 में बदलें, गाड़ी के सिर को बाईं ओर ले जाएं- सेल और Q 2 में संक्रमण करें।
उदाहरण 1। यह कार्य एक एल्गोरिदम का निर्माण करना है जो टेप पर स्थित किसी दिए गए नंबर के अंतिम अंक में एक इकाई जोड़ता है। इनपुट डेटा - शब्द - टेप पर लगातार कोशिकाओं में दर्ज एक संपूर्ण दशमलव संख्या की संख्या। प्रारंभिक पल में, डिवाइस सही प्रतीक - संख्या संख्याओं के विपरीत स्थित है।
फेसला। यदि अंतिम अंक 9 है, तो इसे 0 से प्रतिस्थापित किया जाना चाहिए और फिर पिछले प्रतीक में एक इकाई जोड़ें। इस मामले में इस मामले में ट्यूरिंग के इस डिवाइस के लिए निम्नानुसार लिखा जा सकता है:
यहां क्यू 1 परिवर्तन संख्या की स्थिति है, क्यू 0 - स्टॉप। यदि क्यू 1 में स्वचालित रूप से पंक्ति 0..8 से तत्व को ठीक करता है, तो यह क्रमशः 1..9 में से एक को बदल देता है, और फिर राज्य क्यू 0 पर स्विच करता है, यानी डिवाइस बंद हो जाता है। यदि कैरिज संख्या 9 को हल करता है, तो यह इसे 0 में बदल देता है, फिर बाईं ओर जाता है, राज्य क्यू 1 में रुक जाता है। ऐसा आंदोलन तब तक जारी रहता है जब तक कि डिवाइस कम से कम संख्या को ठीक नहीं करता है। यदि सभी वर्ण 9 के बराबर हो जाते हैं, तो उन्हें ज़ीरोस द्वारा प्रतिस्थापित किया जाता है, पुरानी आइटम 0 की साइट पर, गाड़ी बाईं ओर बढ़ जाएगी और 1 लिखी जाएगी खाली सेल के लिए। अगला चरण Q 0 राज्य - स्टॉप में संक्रमण होगा।
उदाहरण 2। उद्घाटन और समापन ब्रैकेट को दर्शाने वाले प्रतीकों की एक पंक्ति दी जाती है। यह ट्यूरिंग का एक उपकरण बनाने के लिए आवश्यक है, जो म्यूचुअल ब्रैकेट की एक जोड़ी को हटाने का प्रयास करेगा, यानी, एक पंक्ति में स्थित तत्व - "()"। उदाहरण के लिए, स्रोत डेटा: ") (() (()", जवाब होना चाहिए: ") ... (("। समाधान: तंत्र, क्यू 1 में होने वाला तंत्र, पंक्ति में चरम बाएं तत्व का विश्लेषण करता है।
सी 1 हालत: यदि "(" प्रतीक का सामना करना पड़ता है, तो दाईं ओर शिफ्ट और क्यू 2 स्थिति में संक्रमण करने के लिए; यदि "0" परिभाषित किया गया है, तो स्टॉप।
हालत Q 2: ब्रैकेट का विश्लेषण किया जाता है "(" एक संयोग के मामले में, यह एक संयोग के मामले में, यह बाहर निकलना चाहिए "। यदि तत्व जोड़ी है, तो वापसी कैरिज को छोड़ दें और क्यू 3 पर जाएं।
प्रश्न 3 राज्य: प्रतीक को पहले हटाएं "(", और फिर ")" और क्यू 1 पर जाएं।