एक समारोह समारोह के मूल्यों की भाषा


10

लिखें का दशमलव विस्तार के लिए (कोई प्रमुख के साथ )। चलो और पूर्णांकों, साथ होना । अधिक के गुणकों के दशमलव विस्तार की भाषा पर विचार करें :B एनn¯ एनn0aबीb>0a>0a

= { ¯ एक्स + |एक्सएन}

M={ax+b¯¯¯¯¯¯¯¯¯¯¯¯¯¯xN}

क्या नियमित है? विषय से मुक्त?M

( एक अनुष्ठान समारोह के ग्राफ की भाषा के विपरीत )

मुझे लगता है कि यह एक अच्छा होमवर्क प्रश्न बना देगा, इसलिए उत्तर जो एक या दो से शुरू होते हैं और न केवल यह समझाते हैं कि प्रश्न को कैसे हल करना है बल्कि यह भी तय करना है कि किस तकनीक का उपयोग करना चाहिए।


अभी मुझे एहसास है कि मैंने @vonbrand के विचार के बाद, इसके एक विशिष्ट मामले का उत्तर दिया है। DFA जो प्राकृतिक संख्या को 43 द्वारा विभाजित प्राकृतिक संख्या के दशमलव अभ्यावेदन को स्वीकार करता है
Hendrik Jan

जवाबों:



8

यह नियमित है। आइए पहले बाइनरी में काम करें, जो किसी भी आधार पर सामान्यीकृत होगा> 1. चलो प्रश्न में भाषा हो। एक = 1, बी = 0 के लिए हम प्राप्त करते हैंएम , बीMa,b

एम 1 , 0 = { 1 , 10 , 11 , 100 , 101 , }M1,0={1,10,11,100,101,...}

जो सभी प्रमुख शून्य के बिना से अधिक तार है , जो नियमित है (इसके लिए एक नियमित अभिव्यक्ति का निर्माण करें)।{ 0 , 1 }{0,1}

अब किसी के लिए , अभी भी ख 0 के साथ हम मिल से एक से संख्यानुसार गुणा करके, यह है कि, परिवर्तन प्रदर्शन के प्रत्येक स्ट्रिंग पर । शिफ्ट्स और परिवर्धन के अनुक्रम के द्वारा बिटवाइज़ किया जा सकता है जो निश्चित स्ट्रिंग के बिट्स पर निर्भर करता । दो परिवर्तनों की हमें आवश्यकता है:एक एम , 0 एम 1 , 0 a xaMa,0M1,0¯axx¯ax¯¯¯¯¯¯Ma,0Ma,0xxˉaa¯

ˉ x¯2xx¯2x¯¯¯¯¯ जोˉxˉx0x¯x¯0

तथा

ˉx¯2x+xx¯2x+x¯¯¯¯¯¯¯¯¯¯¯¯¯¯

सही पर एक 0 को स्पष्ट करना नियमितता को संरक्षित करता है। इस प्रकार हमें केवल यह साबित करना है कि दूसरा ऑपरेशन नियमितता को बनाए रखता है। ऐसा करने का तरीका एक परिमित-राज्य ट्रांसड्यूसर के साथ दाएं से बाएं तरफ पर काम करना है। यह सबसे कठिन कदम है। मेरा सुझाव है कि इसे राज्यों का उपयोग करने के बजाय छद्म कोड प्रोग्राम और कुछ परिमित ऑक्सिलरी मेमोरी (जैसे कुछ बिट चर) के साथ करना है। जब तक मेमोरी सभी इनपुट पर एक निश्चित आकार की होती है और आप सख्ती से दाएं से बाएं स्कैन करते हैं, यह एक परिमित स्थिति है और नियमितता को बनाए रखती है।ˉxx¯

अंत में, को से प्राप्त करने के लिए हमें प्रत्येक स्ट्रिंग में संख्यात्मक रूप से जोड़ने की आवश्यकता है , लेकिन यह एक समान ट्रांसड्यूसर साथ किया जाता है जो कि निर्धारित संख्या b पर निर्भर करता है।Ma,bMa,bMa,0Ma,0bbTbTb

किसी भी आधार में ऐसा करने के लिए , एक ट्रांसड्यूसर का उपयोग करके उस आधार में एकल अंक द्वारा गुणा करने के लिए अतिरिक्त रूप से कि d पर निर्भर करता है। इसके साथ, हम बहु अंकों की संख्या से गुणा कर सकते हैं और अभी भी नियमित भाषाओं में बने रह सकते हैं। या, हम यह कहकर चालाकी कर सकते हैं कि द्वारा गुणा केवल दोहराया गया है।डी एस डी डीdSdd

आप केवल संकेत चाहते थे। उन चरणों में से प्रत्येक एक काफी जटिल प्रमेय / तकनीक पर निर्भर करता है, इसलिए यह साबित करना कि एक पूर्ण प्रमाण प्राप्त करना अतिरिक्त काम होगा।


आपके FA को इनपुट के रूप में as x नहीं मिलता है , इसलिए मैं यह नहीं देखता कि आप जो लिखते हैं वह कैसे दिखाता है कि हाथ की भाषा नियमित है। ध्यान दें कि प्रत्येक प्रोग्राम जो परिमित मेमोरी का उपयोग नहीं करता है, एफए से मेल खाता है: यह महत्वपूर्ण है कि हर इनपुट प्रतीक पर ठीक एक बार विचार करते हुए इनपुट पर केवल एक बार और बाएं से दाएं तक जा सकता है । x¯
राफेल

@ राफेल यदि आप चाहें तो दायें से बायें जा सकते हैं, जो मायने रखता है। मुझे डेविड के प्रूफ स्केच में कोई दोष नहीं मिला; ट्रांसड्यूसर्स को लागू करना मेरे विचार से थोड़ा कम प्राथमिक है, लेकिन यह मान्य दिखता है।
गिल्स एसओ- बुराई को रोकें '

@ गिल्स: सबसे पहले, वह यह नहीं समझाता है कि एक पास में परिणाम के लिए और बी को जोड़कर गुणन कैसे करें ; वह भी द्वारा गुणा कम कर देता है एक करने के लिए "परिवर्तन और के परिवर्धन के अनुक्रम एक्स "। हर एक पारी और जोड़ ठीक है, लेकिन अनुक्रम कैसे करना है? दूसरे, और अधिक महत्वपूर्ण है, वह कैसे निर्माण करने के लिए पता चलता है कि एक ट्रांसड्यूसर computes ˉ एक्स¯ एक एक्स + ; कि है नहीं तुरंत आप एक एफए कि देना स्वीकार करता है एमabax x¯ax+b¯¯¯¯¯¯¯¯¯¯¯¯¯¯ M। उदाहरण के लिए, संख्याओं को गुणा करना आसान है लेकिन फैक्टरिंग (कथित रूप से) नहीं है। इसलिए आपको कम से कम एक अतिरिक्त तर्क की आवश्यकता है।
राफेल

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

1
@ राफेल - हां, यह बहुत शक्तिशाली है। वास्तव में, कई गैर-नियमित परिवार भी परिमित-राज्य ट्रांसड्यूसर के तहत बंद हैं। और, आप ट्रांसड्यूसर्स को कमी तंत्र के रूप में उपयोग कर सकते हैं, गैर-नियमित भाषाओं की "संरचनात्मक" जटिलता का पूरा सिद्धांत प्राप्त कर सकते हैं।
डेविड लुईस

8

संकेत # 1 : पहले अधिक लोकप्रिय समस्या को हल करें "एक ऑटोबाटन लिखें जो 3 से विभाज्य संख्याओं के दशमलव / बाइनरी अभ्यावेदन को पहचानता है" जब सबसे कम हस्ताक्षर करने वाला बिट पहले प्रकट होता है।

इंटरमीडिएट प्रश्न: साबित होता है कि { ¯ एकx + bएक्स + 0एक्स जेड } नियमित है।{ax+b¯¯¯¯¯¯¯¯¯¯¯¯¯¯ax+b0xZ}

संकेत # 2 : फ़ंक्शन का ग्राफ ( n The 10 n + d ) "modulo a " परिमित है। आप इसे { 0 , , 9 } में प्रत्येक d के लिए गणना कर सकते हैं जो अंकों का सेट और आपके ऑटोमेटन की भाषा दोनों है।(n10n+d)ad{0,,9}

# 3 संकेत : अब, की जगह एक्स जेड के साथ एक्स एन । यह क्या बदलता है? इस तथ्य का उपयोग करने की कोशिश करें कि नियमित भाषा चौराहे के बजाय एक तदर्थ ऑटोमेटन के निर्माण से स्थिर होती है ।xZxN

# 4 संकेत : अब मान लेते हैं कि एक अभाज्य संख्या (ताकि है जेड / एक जेड एक क्षेत्र है) और है कि हम इस मामले में अभी भी कर रहे हैं, जहां एक्स जेड । अब हम एक प्रतिनिधित्व का उपयोग करते हैं जहां पहला बिट सबसे महत्वपूर्ण बिट है। क्या आप ऑटोमेटन का निर्माण उसी तरह कर सकते हैं?aZ/aZxZ

संकेत # 5 : भाषा को नियमित साबित करने के लिए आपको हमेशा एक ऑटोमेटन का निर्माण नहीं करना होगा। आप यह साबित करने के लिए पिछले परिणामों का उपयोग कैसे कर सकते हैं कि एम नियमित है? (सबसे महत्वपूर्ण बिट पहले)M


यदि आपको लगता है कि यह उचित नहीं है, तो टिप्पणी करने के लिए स्वतंत्र महसूस करें।
जाम

संकेत # 1 एक बड़ा कदम है। संकेत # 4 में, यह एहसास है कि महत्वपूर्ण है एक { 2 , 5 } और एक 10 अलग हैं। Z से गुजरना एक चक्कर की तरह लगता है, आपको साइन कैरेक्टर को मैनेज करना होगा: N में क्यों न रहें ? a{2,5}a10ZN
गिल्स एसओ- बुराई को रोकें '

@Gilles: मैं कहना चाहता ¯ एक एक्स + जब एक एक्स + 0 और एक्स जेड , क्योंकि 3 एक्स + 1234 पहचान करने के लिए कठिन है। ax+b¯¯¯¯¯¯¯¯¯¯¯¯¯¯ax+b0xZ3x+1234
जम्द

@ गिल्स: मुझे लगता है कि हिंट # 1 खराब होने के लिए बहुत अच्छा है। आप शायद संकेत # 4 के बारे में सही हैं।
जाम

5

मैं @vonbrand के विचार का अनुसरण कर रहा हूं:

संकेत 1:

B = 0 के लिए पहले हल करें । आप Myhill-Nerode प्रमेय का उपयोग कर सकते हैं ।b=0

हम निम्नलिखित संबंध को परिभाषित ˉ एक्सˉ y :x आधुनिकa । यह स्पष्ट रूप से एक तुलनीय संबंध है। इसके अलावा यह सही-अनुकूल है, क्योंकि अगर हम एक अंकों संलग्न पर हम पाते हैं ˉ एक्सˉ yx¯y¯:xymodad10 x + 10 y + आधुनिकˉ एक्स ˉ y। अंत में यहL कोसंतृप्त करता है, क्योंकिLसमतुल्य वर्ग है[0]। चूंकिNerमें मिथाइल-नेरोड प्रमेय द्वारा हमारे पास कई कक्षाएं हैं, जो नियमित है। संबंधित एफएसए न्यूनतम है औरएकराज्य है।x¯y¯10x+d10y+dmodax¯dy¯dLL[0]a

संकेत 2:

सामान्य मामले को हल करें, b = 0 मामले से प्रेरित ऑटोमेटन का पुन: उपयोग करें ।b=0

हम जानते हैं कि भाषा b = 0 के लिए नियमित है । इसलिए केवल b = 0 भाषा के लिए एक राज्य FSA M लें । अब हम एल के लिए एक एफएसए का निर्माण करते हैं । मान लें कि b में k अंक हैं। फिर गहराई का एक 10-ary वृक्ष की तरह एफएसए शाखाओं कश्मीर और साथ नंबरों के लिए सभी रास्ते शामिल कश्मीर अंक। सभी कहा गया है कि एक संख्या के साथ पहुँचा जा सकता है नहीं के रूप में एक एक्स + अन्यथा स्वीकार करने को खारिज कर रहे हैं। अंत में हम एफएसए के पेड़-भाग को ऑटोमेटन एम से जोड़ते हैंb=0aMb=0Lbkkkax+bM, विभाजन द्वारा शेष के अनुसार aa


मैं तकनीक को समझता हूं, लेकिन विवरण नहीं। क्या संकेत 1 भी एक = 1 मामले को स्वीकार नहीं कर रहा है ? इसके अलावा, mod 10 के लिए मैं 10 राज्यों ( a ) की अपेक्षा करूंगा ? a=1a
हेंड्रिक जनवरी

3

भाषा नियमित है।

संकेत: नाइन बाहर डाली


प्रमाण विचार

के लिए एक = 9 और < 9 ,a=9b<9

साथ एक automaton का निर्माण 9 लेबल राज्यों 0 के माध्यम से 80 प्रारंभिक अवस्था है, और एक अंतिम स्थिति b है । राज्य s से , अंक d पर , राज्य में परिवर्तन ( s + d )9080bsdएम डी(s+d)mod9

के अन्य मानों का प्रबंधन कैसे एक उस के साथ कर रहे coprime 10 ,a10

पैकेट में समूह अंक कुछ खोजने के लिए कश्मीर ऐसी है कि एक विभाजित 10 कश्मीर - 1 (उदाहरण के लिए ले कश्मीर = 3 अगर एक = 37 क्योंकि 999 = 27 × 37 )।ka10k1k=3a=37999=27×37

के मूल्यों को संभालने के लिए एक जिसका केवल प्रधानमंत्री कारक हैं 2 और 5 ,a25

ध्यान दें कि यह अंत में अंकों की एक सीमित संख्या के बारे में है।

और बी के सभी मूल्यों को सामान्य बनाने के लिए ,ab

तथ्य यह है कि संघ और नियमित रूप से भाषाओं के चौराहे नियमित कर रहे हैं, कि परिमित भाषाओं नियमित हैं, और के गुणकों का उपयोग करने वाले एक 1एक 2 वास्तव में दोनों के गुणज हैं जब एक 1 और एक 2 coprime हैं।a1a2a1a2

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


विस्तृत प्रमाण

चलो एक = 2 पी 5 क्ष एक ' के साथ एक ' के साथ coprime 10 । चलो एम ' = { ¯ एक 'a=2p5qaa10एक्स + |एक्सजेडएक'एक्स + 0 } और एम " = { ¯ 2 पी 5 क्षM={ax+b¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯xZax+b0}एक्स + |एक्सजेड2पी5क्षएक्स + 0 } । प्राथमिक गणित करके, संख्या के बराबर सापेक्ष एक बिल्कुल संख्या के बराबर हैं सापेक्ष एक ' और करने के लिए सापेक्ष 2 पी 5 क्ष , तो एम { ¯ x | x } = एम 'एम "{ ¯ एक्स | x } । चूंकि नियमित भाषाओं का प्रतिच्छेदन नियमित है, औरM′′={2p5qx+b¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯xZ2p5qx+b0}babab2p5qM{x¯¯¯xb}=MM′′{x¯¯¯xb}{ ¯ x | x } नियमित क्योंकि यह एक परिमित (इसलिए नियमित रूप से) भाषा के पूरक है, अगर एम ' और एम " भी नियमित रूप से कर रहे हैं, तो M { ¯ x | x } नियमित है, और एम इसलिए नियमित है क्योंकि यह एक परिमित सेट के साथ उस भाषा का संघ है। तो सबूत यह साबित होता है कि पर्याप्त होता समाप्त करने के लिए एम ' और एम " नियमित रूप से कर रहे हैं।{x¯¯¯xb}MM′′M{x¯¯¯xb}MMM′′

हमें M ″ से शुरू करते हैं , अर्थात संख्याएं modulo 2 p 5 q । पूर्णांकों जिसका दशमलव विस्तार में है एम " अपने पिछले की विशेषता है मी एक एक्स ( पी , क्यू ) अंक आगे बदलते छोड़ दिया की एक बहु जोड़ने का मतलब है के बाद से, अंक 10 मीटर एक एक्स ( पी , क्यू ) जो की एक बहु है 2 पी 5 क्यू । इसलिए 0 * एम " = * एफ जहांM′′2p5qM′′max(p,q)10max(p,q)2p5q0M′′=F सभी अंकों के वर्णमाला है और एफ लंबाई के शब्दों की एक परिमित सेट है मी एक एक्स ( पी , क्यू ) , और एम " = ( * एफ ) ( ( { 0 } ) * ) एक नियमित रूप से है भाषा: हिन्दी।Fmax(p,q)M′′=(F)(({0}))

अब हम करने के लिए बारी एम ' , यानी संख्या सापेक्ष एक ' जहां एक ' के साथ coprime है 10 । अगर एक ' = 1 तो एम ' सब प्राकृतिक की तुलना की दशमलव विस्तार का सेट है, यानी एम ' = { 0 } ( ( { 0 } ) * ) है, जो एक नियमित रूप से भाषा है। अब हम मान लेते हैं एक ' > 1 । चलो कश्मीर = एक ' -1 है । फर्मा थोड़ा प्रमेय, तक 10 एक ' - 11आधुनिकएक ' , यह कहना है कि है जो एक ' विभाजित 10 कश्मीर - 1 । हम एक नियतात्मक परिमित automaton कि पहचान लेंगे निर्माण 0 * एम ' इस प्रकार है:

  • राज्य हैं [ 0 , k - 1 ] × [ 0 , 10 k - 2 ] । पहला भाग एक अंक स्थिति का प्रतिनिधित्व करता है और दूसरा भाग एक संख्या modulo 10 k - 1 का प्रतिनिधित्व करता है ।
  • प्रारंभिक स्थिति है ( 0 , 0 )
  • वहाँ एक संक्रमण लेबल है से ( मैं , यू ) के लिए ( j , वी ) iff वी 10 मैं + यूआधुनिक10 कश्मीर - 1 और जे मैं + 1आधुनिकके
  • एक राज्य ( मैं , यू ) अंतिम iff है यू आधुनिकa (note that a divides 10k1).

The state (i,u) reached from a word ¯x satisfies i|¯x|modk and uxmod10k1. This can be proved by induction over the word, following the transitions on the automaton; the transitions are calculated for this, using the fact that 10k1mod10k1. Thus the automaton recognizes the decimal expansions (allowing initial zeroes) of the numbers of the form u+y10k with ubmoda; since 10k1moda, the automaton recognizes the decimal expansions of the numbers equal to b modulo a allowing initial zeroes, which is 0M. This language is thus proved regular. Finally, M=(0M)(({0})) is a regular language.

To generalize to bases other than 10, replace 2 and 5 above by all the prime factors of the base.

Formal proof

Left as an exercise for the reader, in your favorite theorem prover.

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