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


23

मैं एक वर्णमाला पर एक नियमित भाषा को ठीक करता हूं , और मैं निम्नलिखित समस्या पर विचार करता हूं जिसे मैं लिए समयबद्धन पत्र कहता हूं । अनौपचारिक रूप से, इनपुट मुझे अक्षर और प्रत्येक अक्षर के लिए एक अंतराल (यानी, एक न्यूनतम और अधिकतम स्थिति) देता है, और मेरा लक्ष्य प्रत्येक पत्र को अपने अंतराल में रखना है, ताकि कोई भी दो अक्षर एक ही स्थिति में मैप न हों और ताकि परिणामस्वरूप शब्द । औपचारिक रूप से:एल LΣ एल एन एन एलΣLnnL

  • इनपुट: triples जहां और पूर्णांक हैंn n( एक मैं , एल मैं , आर मैं ) (ai,li,ri)एक मैंΣ aiΣ1 एल मैंआर मैंn1lirin
  • आउटपुट: वहाँ एक द्विभाजन है ऐसी है कि सभी के लिए , और ।: { 1 , ... , n } { 1 , ... , n } f:{1,,n}{1,,n}एल मैं( मैं ) आर मैंlif(i)ri मैं iएक - 1 ( 1 )एक - 1 ( एन )एलaf1(1)af1(n)L

जाहिर है कि यह समस्या एनपी में है, एक बायजेक्शन और पीटीटाइम में की सदस्यता की जांच करके । मेरा प्रश्न: वहाँ एक नियमित रूप से भाषा है ऐसी है कि के लिए पत्र शेड्यूलिंग समस्या एनपी कठिन है?एफ fएल Lएल LएलL

कुछ प्रारंभिक अवलोकन:

  • ऐसा लगता है कि शेड्यूलिंग में इसी तरह की समस्याओं का अध्ययन किया गया है: हम इस समस्या को एक मशीन पर शेड्यूलिंग यूनिट-कॉस्ट कार्यों के रूप में देख सकते हैं, जबकि शुरू करने और तिथियों को पूरा करने के संबंध में। हालाँकि, यह बाद की समस्या स्पष्ट रूप से एक लालची दृष्टिकोण के साथ PTIME में है, और मुझे उस मामले के लिए समयबद्धन साहित्य में कुछ भी दिखाई नहीं देता है जहां कार्यों को लेबल किया गया है और हम एक लक्ष्य नियमित भाषा में एक शब्द प्राप्त करना चाहते हैं।
  • समस्या को देखने का एक अन्य तरीका एक द्विदलीय अधिकतम मिलान समस्या (अक्षरों और पदों के बीच) के एक विशेष मामले के रूप में है , लेकिन फिर से यह बाधा व्यक्त करना कठिन है कि हमें में गिरना चाहिए ।एलL
  • उस विशिष्ट मामले में जहां कुछ निश्चित शब्द (जैसे ) के लिए रूप की एक भाषा है , तो लिए अक्षर निर्धारण समस्या एक आसान लालची एल्गोरिथ्म के साथ PTIME में है: शब्द का निर्माण बाएं से दाएं, और प्रत्येक स्थिति में उपलब्ध अक्षरों में से एक जो कि सापेक्ष सही है और सबसे छोटा समय । (यदि उपलब्ध कोई पत्र नहीं हैं जो सही हैं, तो असफल रहें।) हालांकि, यह नियमित रूप से भाषाओं को मनमाने ढंग से करने के लिए सामान्य नहीं करता है क्योंकि ऐसी भाषाओं के लिए हमारे पास यह विकल्प हो सकता है कि किस तरह के पत्र का उपयोग करें।एल Lयू *u यू u( एक ) *(ab) एल Lएल Lआर मैंri एलL
  • ऐसा लगता है कि एक गतिशील एल्गोरिदम को काम करना चाहिए, लेकिन वास्तव में यह इतना सरल नहीं है: ऐसा लगता है कि आपको याद रखना होगा कि आपने अब तक कौन से अक्षरों का सेट लिया है। वास्तव में, जब एक शब्द बाएं से दाएं, जब आप एक स्थिति तक पहुँच चुके निर्माण , अपने राज्य में जो पत्र आप अब तक का सेवन किया है पर निर्भर करता है। आप पूरे सेट को याद नहीं कर सकते क्योंकि तब कई राज्यों का विस्तार होगा। लेकिन इसे "सारांशित" करना इतना आसान नहीं है (उदाहरण के लिए, प्रत्येक पत्र की कितनी प्रतियों का उपयोग किया गया था), क्योंकि यह जानने के लिए कि आपने किन प्रतियों का उपयोग किया है, ऐसा लगता है कि आपको यह याद रखने की आवश्यकता है कि आपने उन्हें कब खाया है (बाद में आपने खाया उन्हें, अधिक पत्र उपलब्ध थे)। भाषा के साथ भी ,मैं ( एक |एक ) * एक i(ab|ba)ab और जब आपको लेने का चयन करना चाहिए तो इस बात पर निर्भर करता है कि आपको कौन से अक्षर बाद में चाहिए और कब पत्र उपलब्ध होंगे।बी ba
  • हालांकि, जैसा कि नियमित भाषा निश्चित है और इतनी जानकारी को याद नहीं कर सकती है, मुझे एक कठिन समय मिल रहा है जिसमें एनपी-कठिन समस्या है जिससे मैं कम कर सकता हूं।एलL

क्या आप PTIME में कुछ L के लिए NP-पूर्णता प्राप्त कर सकते हैं?
लांस फोर्टेन

3
@ लांसफ़ॉर्टन ज़रूर। आप एक 3CNF को पैड कर सकते हैं ताकि हर वेरिएबल समान संख्या में शाब्दिक रूप से घटित हो, और हर दो लगातार घटनाओं को नकार दिया जाए। एनकोड में 0 मैं या 1 मैं , तब अक्षर शेड्यूलिंग उदाहरण में प्रतीकों ( , ) , , तय जबकि बाकी आधा कर रहे हैं 0 की और आधा 1 की। बहुपद समय में कोई यह जांच सकता है कि क्या स्ट्रिंग एक गद्देदार 3CNF को एनकोड करती है जो सही का मूल्यांकन करता है। x ixi0i1i(,),,01
विलार्ड झन

आप समस्या को "अनियंत्रित पदों" (1..n तक सीमित नहीं) के लिए सामान्यीकृत कर सकते हैं। शायद कठोरता को साबित करना आसान है (यदि यह कठिन है)।
मार्जियो डी बियासी

@MarzioDeBiasi: मुझे यकीन नहीं है कि मैं समझता हूं, क्या आपका मतलब है कि पत्रों की स्थिति एक अंतराल के बजाय किसी भी मनमानी उपसमुच्चय हो सकती है? अगर यह मुश्किल है मुझे पता नहीं है (यह थोड़ा जैसी शुरू होता है सही सही मिलान समस्या ), लेकिन जब अंतराल के साथ संस्करण एक लालची एल्गोरिथ्म के लिए अनुमति देता है एल = यू * तो मैं कुछ उम्मीद यह आसान हो सकता है कि नहीं है। L=u
a3nm

@ a3nm: कोई मेरा मतलब है आप बाधा छोड़ने सामान्यीकरण सकता है कि आर मैंn ; आप एल में एक शब्द के लिए पूछना, जिसमें कम से कम एक पत्र है एक मैं रेंज में [ एल मैंआर मैं ] ; दूसरे शब्दों में, आप लंबाई n के पूर्ण शब्द का "निर्माण" नहीं करते हैं , लेकिन मनमाने ढंग से लंबाई के एक शब्द के लिए पूछें जिसमें अनुमत श्रेणियों में दिए गए अक्षर हैं। मुझे नहीं पता कि क्या यह समस्या की जटिलता को बदलता है, लेकिन इस मामले में आपको "अनुक्रमित" का सामना करना होगा जो संभवतः इनपुट की लंबाई से बहुपद रूप से बंधे नहीं हैं। rinai[li..ri]n
मार्जियो डी बियासी

जवाबों:


7

समस्या एनपी मुश्किल के लिए है एल = एक * जहां एकL=AA परिमित निम्नलिखित शब्दों से युक्त भाषा है:

  • x 111 , xx111 000 ,x000
  • y 100 , y 010 , yy100y010 001 ,y001
  • 00 सी 11 , 01 सी 10 , 10 सी 01 , और 11 सी00c1101c1010c01 0011c00

कमी समस्या ग्राफ ओरिएंटेशन से है, जिसे एनपी-हार्ड के रूप में जाना जाता है (देखें https://link.springer.com/article/10.1007/s00454-017-9884-9 )। इस समस्या में, हमें एक 3-नियमित अप्रत्यक्ष ग्राफ दिया जाता है, जिसमें प्रत्येक शीर्ष पर या तो " { 1 } " या " { 0 , 3 } " लेबल होता है । लक्ष्य ग्राफ के किनारों को निर्देशित करना है ताकि हर शिखर की रूपरेखा उस शीर्ष लेबलिंग सेट में हो।{1}{0,3}

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

  • अक्षर x , y और cxyc को केवल एक अनुक्रमणिका वाले अंतराल दिए गए हैं। दूसरे शब्दों में, जब भी इन पात्रों को रखा जाता है, उन्हें विशिष्ट स्थानों पर रखा जाता है।
  • हर ट्रिपल के लिए ( मैं , एल , आर ) उदाहरण में साथ मौजूद मैं { 0 , 1 } , ट्रिपल ( 1 - मैं , एल , आर ) भी मौजूद है।(i,l,r)i{0,1}(1i,l,r)
  • अगर ( α , एल , आर ) और ( α ' , एल ' , आर ' ) उदाहरण में मौजूद दोनों ट्रिपल तो या तो कर रहे हैं एल < एल 'आर ' < r , या एल ' < एल आर < आर ' , या { α , α ' } = { 0 , 1 } के साथ एल(α,l,r)(α,l,r)l<lr<rl<lr<r{α,α}={0,1} = एल' < R = आर 'l=l<r=r
  • अगर ( α , एल , आर ) एक ट्रिपल है तो ट्रिपल की संख्या ( α ' , एल ' , आर ' ) के साथ एल एल 'आर 'आर ठीक है आर - एल + 1(α,l,r)(α,l,r)llrrrl+1

इस पोस्ट के अंत में साबित हुए लेम्मा पर ध्यान दें।

Lemma: तीनों की एक वैध सूची के लिए, वर्ण x , y और c को त्रिभुज द्वारा इंगित के रूप में ठीक से रखा जाना चाहिए, और किसी भी जोड़े के लिए triples ( 0 , l , r ) और ( 1 , l , r ) , उस ट्रिपल के लिए दो वर्णों को सूचकांक l और r पर रखा जाना चाहिए ।xyc( 0 , एल , आर )( 1 , एल , आर )एलआर

फिर कटौती का विचार निम्नलिखित है।

हम किनारों का प्रतिनिधित्व करने के लिए जोड़े ( 0 , एल , आर ) , और ( 1 , एल , आर ) के जोड़े का उपयोग करते हैं। धार सूचकांक पर समाप्ति बिंदुओं के बीच चला जाता है l और सूचकांक पर आर । यह मानते हुए कि हम तीनों की एक मान्य सूची तैयार करते हैं, इन दोनों त्रिगुणों में से वर्णों को l और r पर रखा जाना चाहिए , इसलिए हम उस क्रम का इलाज कर सकते हैं जिसमें उन्हें किनारे की दिशा का संकेत दिया जाता है। यहां 1 किनारे का "सिर" है और 0 "पूंछ" है। दूसरे शब्दों में, यदि 1 को रखा जाता है( 0 , एल , आर )( 1 , एल , आर )एलआरएलआर101 rआरफिर धार l से r तक इंगित करता है और यदि 1 को l पर रखा जाता है, तो r से l तक बढ़त इंगित करता है ।एलआर1एलआरएल

शीर्ष रेखाओं का प्रतिनिधित्व करने के लिए, हम एक सूचकांक पर एक x या y वर्ण रखते हैं और अगले तीन वर्णों का उपयोग तीन किनारों के अंत बिंदु के रूप में करते हैं जो शीर्ष को छूते हैं। ध्यान दें कि यदि हम एक x रखते हैं , तो शीर्ष पर स्थित सभी तीन किनारों को एक ही दिशा में इंगित करना चाहिए (सभी शीर्ष में या सभी शीर्ष में से) बस उन तारों के कारण हैं जो परिमित भाषा A में हैं । इस तरह के कोने में 0 या 3 ओवरड्री होती है , इसलिए हम { 0 , 3 } लेबल वाले कोने के लिए एक एक्स लगाते हैं । अगर हम एक वाईएक्सyएक्स03एक्स{ 0 , 3 }y, शीर्ष पर तीन किनारों में से एक ए में तार के कारण एक ही दिशा में इंगित करना चाहिए । इस तरह के वर्टिकल में 1 ओवरड्री होती है , इसलिए हम { 1 } लेबल वाले वर्टिक्स के लिए एक वाई लगाते हैं ।1y{ 1 }

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

इससे निपटने के लिए, हम कुछ और बुनियादी ढांचे को जोड़ते हैं। विशेष रूप से, हम "क्रॉसओवर कोने" जोड़ते हैं। एक क्रॉसओवर वर्टेक्स डिग्री 4 का एक शीर्ष है, जिसके किनारों को ऐसे जोड़ा जाता है कि प्रत्येक जोड़ी के भीतर एक किनारे को क्रॉसओवर वर्टेक्स और एक आउट में इंगित किया जाना चाहिए। दूसरे शब्दों में, एक क्रॉसओवर वर्टेक्स केवल दो "क्रॉसिंग" किनारों के समान व्यवहार करेगा। हम कुछ अनुक्रमणिका i पर वर्ण c को रखकर एक क्रॉसओवर वर्टेक्स का प्रतिनिधित्व करते हैं । फिर ध्यान दें कि भाषा A , i - 1 और i + 2 के वर्णों को विपरीत बनाती है (एक 0 और एक 1 ) और i - 2 के अक्षर4सीमैंमैं - मैं + 01मैं - और विपरीत होना। इस प्रकार, यदि हम इन सूचकांकों को क्रॉसओवर वर्टेक्स पर चार किनारों के लिए समापन बिंदु के रूप में उपयोग करते हैं, तो व्यवहार बिल्कुल वर्णित है: चार किनारे जोड़े में हैं और प्रत्येक जोड़ी के बीच एक अंक और एक अंक में।मैं + 1मैं + 1

कैसे हम वास्तव में इन crossovers जगह है? खैर लगता है हम दो अंतराल ( एल , आर ) और ( एल ' , आर ' ) जो ओवरलैप। Wlog, एल < एल ' < r < आर ' । हम (के बीच बीच में विदेशी चरित्र जोड़ने के एल ' और आर )। (मान लें कि हम सभी ने अब तक सब कुछ खत्म कर दिया है कि हमेशा पर्याप्त जगह है, और अंत में हम किसी भी अप्रयुक्त स्थान को हटा देंगे।) क्रॉसओवर चरित्र का सूचकांक मैं होने दें । फिर हम चार त्रिभुजों को प्रतिस्थापित करते हैं , एल( एल , आर )( l', आर')l < l'< r < r'एल'आरमैं ( 0) को, आर ) , ( 1 , एल , आर ) , ( 0 , एल ' , आर ' ) , और ( 1 , एल ' , आर ' ) आठ ट्रिपल साथ चरित्र के साथ दोनों एक (एक साथ 0 और चरित्र के साथ एक 1 ) के लिए निम्नलिखित चार अंतराल ( l , i - 1 ) , ( i + 2 , r( 0 , एल , आर )( 1 , एल , आर )( 0 , एल', आर')( 1 , एल', आर')01( l , i - 1 ) )( i + 2 , r ), ( एल ' , मैं - 2 ) , ( मैं + 1 , आर ' ) । ध्यान दें कि अंतराल अब खराब तरीके से ओवरलैप नहीं करते हैं! (इस परिवर्तन के बाद, यदि दो अंतराल ओवरलैप करते हैं, तो एक दूसरे के अंदर सख्ती से होता है।) इसके अलावा, एल से आर तक के किनारे को एल से क्रॉसओवर वर्टेक्स तक एक किनारे से बदल दिया जाता है, इसके बाद किनारे से आर तक ; इन दो किनारों को क्रॉसओवर शीर्ष पर इस तरह से जोड़ा जाता है कि एक को इंगित किया जाता है और एक को इंगित किया जाता है; दूसरे शब्दों में, दो किनारे एक ही व्यवहार करते हैं जैसे कि वे जिस एक किनारे को बदल रहे हैं।( l', i - 2 )( i + 1 , आर')एलआरएलआर

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


लेम्मा का प्रमाण

Lemma: तीनों की एक वैध सूची के लिए, वर्ण x , y और c को त्रिभुज द्वारा इंगित के रूप में ठीक से रखा जाना चाहिए, और किसी भी जोड़े के लिए triples ( 0 , l , r ) और ( 1 , l , r ) , उस ट्रिपल के लिए दो वर्णों को सूचकांक l और r पर रखा जाना चाहिएएक्सyसी( 0 , एल , आर )( 1 , एल , आर )एलआर

प्रमाण:

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

बेस केस: k = 0 के लिए , ट्रिपल को एक वर्ण x , y या c रखना चाहिएके = एक्सyसी अंतराल के अंदर एकल इंडेक्स । यह बिल्कुल ऐसा है जैसा कि लेम्मा में वर्णित है।

आगमनात्मक मामला: मान लें कि कथन किसी k से कम k के लिए है । अब अंतराल लंबाई के साथ कुछ ट्रिपल पर विचार कश्मीर ' । फिर ट्रिपल इस रूप में होने चाहिए कि ( मैं , एल , आर ) के साथ आर = एल + कश्मीर ' - 1 और मैं { 0 , 1 } । ट्रिपल ( 1 - i , l , r ) भी मौजूद होना चाहिए। त्रिगुणों की संख्या ( α)कश्मीरकश्मीर'कश्मीर'( i , l , r )r=l+k1i{0,1}(1i,l,r)' , एल ' , आर ' ) के साथ एल एल 'आर 'आर ठीक है r - एल + 1 = कश्मीर ' । इन त्रिगुणों में त्रिगुण ( 0 , l , r ) और ( 1 , l , r ) शामिल हैं, लेकिन k - 2 अन्य रूप के त्रिगुण ( α , l ples )(α,l,r)llrrrl+1=k(0,l,r)(1,l,r)k2, आर ' ) के साथ एल < एल 'आर ' < आर । इन अन्य त्रिभुजों में अंतराल की लंबाई k k की तुलना में छोटी होती है, इसलिए सभी को अपने वर्णों को लेम्मा में निर्दिष्ट करना चाहिए। ऐसा होने का एकमात्र तरीका यह है कि ये तिकड़ी हर सूचकांक में वर्णों को सूचकांक l + 1 से शुरू करेंऔर सूचकांक r + 1 पर समाप्त करें। इस प्रकार, हमारे दो त्रिभुज ( 0 , l , r ) और ( 1 , l , r )(α,l,r)l<lr<rkl+1r+1(0,l,r)(1,l,r)सूचक के मामले को समाप्त करते हुए, अपने पात्रों को सूचक l और r पर रखना चाहिए , जैसा कि लेम्मा में वर्णित है।lr

प्रेरण द्वारा, लेम्मा सही है।


इस विस्तृत प्रमाण के लिए बहुत बहुत धन्यवाद, और बहुत ही सरल भाषा के साथ! मुझे लगता है कि यह सही है, केवल एक चीज जो मुझे यकीन नहीं है कि यह दावा है कि "क्रॉसओवर वर्टेक्स को जोड़ने से कोई अतिरिक्त किनारों को पार नहीं किया जा सकता है"। यह मामला है कि अंतराल होना नहीं किया जा सका ( एल , आर ) कुछ अन्य अंतराल शामिल ( एल " , आर " ) के साथ एल एल "आर "आर , और अब से एक ( एल , मैं - 1 ) और ( मैं +(l,r)(l′′,r′′)ll′′r′′r(l,i1) 2 ,r ) इसे पार करता है? ऐसा लगता है कि प्रक्रिया को अभी भी रूपांतरित करना है क्योंकि अंतराल छोटे हो जाते हैं, लेकिन यह पूरी तरह से या तो स्पष्ट नहीं है क्योंकि क्रॉसिंग वर्टिस के सम्मिलित होने के कारण। मुझे इसे कैसे देखना चाहिए? (i+2,r)
a3nm

यदि एल < एल ' < r < आर ' है, तो आप तुरंत के अधिकार के लिए नए विदेशी शिखर के लिए नए सूचकांक सम्मिलित कर सकते हैं एल ' । इस नए सूचकांक (का कारण बनता है मैं ± थोड़ा) वास्तव में उन अंतराल कि शामिल करने के लिए उपयोग किया जाता है में होना एल ' । यह देखना आसान होना चाहिए कि एक क्रॉसओवर वर्टेक्स को जोड़ने से कुछ अन्य अंतराल के साथ एक नया क्रॉसिंग तभी जोड़ा जा सकता है जब नए सूचकांक दूसरे अंतराल में आते हैं। यदि एल ' < एल " < r " < आर ' फिर नए सूचकांक अंतराल में गिर नहीं है ll<l<r<rli±ll<l′′<r′′<r ( , आर ) । यदि एल < एल " < r " < r फिर नए सूचकांक अंतराल में गिर सकता है ( एल " , आर " ) , लेकिन केवल तभी एल ' पहले से ही उस में गिर गई(l′′,r′′)l<l′′<r′′<r(l′′,r′′)l
मिखाइल Rudoy

(जारी) अंतराल। इस स्थिति में, आप वास्तव में एक नया क्रॉसिंग नहीं बना रहे हैं, बस एक पुराने क्रॉसिंग को पुराने अंतराल ( l , r ) के साथ एक नए क्रॉसिंग में अंतराल ( i + something , r )(l,r)(i+something,r)
मिखाइल रुडोय

मैं अपने दूसरे संदेश में लगता है कि आप "पुराने अंतराल के साथ का मतलब ( एल ' , आर ' ) के बजाय" " ( एल , आर ) "? लेकिन ठीक है, मैं इसे देखता हूं: जब आप क्रॉसिंग वर्टेक्स को जोड़ते हैं, तो एकमात्र खराब मामला एक अंतराल होगा जो मैं एक नए अंतराल के साथ ओवरलैप करता हूं जो संबंधित अंतराल के साथ ओवरलैप किए बिना होता है। इस के supersets के लिए नहीं हो सकता है ( एल , आर ) या का ( एल ' , आर ' ) : अगर वे एक नया अंतराल के साथ ओवरलैप तो वे पुराने एक के साथ ओवरलैप हो। इसी तरह के सबसेट के लिए ( एल)(l,r)(l,r)I(l,r)(l,r), r ) या ( l , r ) ) इस कारण से कि आप समझाते हैं। इसलिए मैं सहमत हूं कि यह प्रमाण मुझे सही लगता है। एक बार फिर धन्यवाद! (l,r)(l,r)
a3nm

2

@ मिखाइलरुडॉय पहली बार एनपी-कठोरता दिखाने के लिए था, लेकिन लुई और मेरे पास एक अलग विचार था, जिसे मैंने सोचा था कि मैं यहां रूपरेखा बना सकता हूं क्योंकि यह कुछ अलग तरह से काम करता है। हम CNF-सैट, से सीधे को कम बूलियन satisfiability समस्या के लिए CNFs । इसके बदले में, नियमित भाषा एल जो हम उपयोग करते हैं वह अधिक जटिल है।L

शो कठोरता की कुंजी एक भाषा डिजाइन करने के लिए है एल ' हमें एक शब्द लगता है और इसे कई बार दोहराने के लिए अनुमति देता है। विशेष रूप से, किसी भी संख्या के लिए कश्मीर चर और संख्या के मीटर खंड की, हम अंतराल है कि यह सुनिश्चित निर्माण करेगा कि सभी शब्दों की w के एल ' है कि हम एक मनमाना शब्द के साथ शुरू करना चाहिए फार्म कर सकते हैं यू लंबाई की कश्मीर वर्णमाला पर { 0 , 1 } सहज ( चर के मूल्यांकन के एक अनुमान), और फिर इस शब्द एन्कोडिंग यू दोहराया है मीटरLkmwL'uk{ , }यूमीटर कई बार (जो बाद में हम परीक्षण करेंगे कि प्रत्येक खंड अनुमानित मूल्यांकन से संतुष्ट है)।

इस लक्ष्य को हासिल करने के लिए, हम वर्णमाला ठीक कर देंगे एक = { 0 , 1 , # , 0 ' , 1 ' } : और भाषा एल ' : = ( 0 | 1 ) * ( # ( 00 ' | 11 ' ) * ) * # ( 0 | 1 ) * । औपचारिक दावा थोड़ा अधिक जटिल है:= { , ,#,0,1}L: = ( 0 | 1 |)( # (00'|11')*)*# ( 0 | 1)*

दावा: किसी भी संख्या के लिए k , मीटर एन , हम PTIME में अंतराल का एक सेट का निर्माण कर सकते ऐसी है कि में शब्दों एल ' है कि इन अंतराल के साथ गठित किया जा सकता ठीक कर रहे हैं:के , एम एनएल'

{ यू ( # ( ~ यू~ यू ' ) # ( यू यू ' ) ) मीटर # ~ यू | यू { 0 , 1 } कश्मीर }

{ यू ( # ( यू)~यू~') # ( यू यू'))m#u~u{0,1}k}

जहां ~ यू के आदेश को पलटने का परिणाम दर्शाता है यू और अदला-बदली 0 की और 1 की है, जहां यू ' में सभी पत्र के लिए एक प्रमुख जोड़ने का परिणाम दर्शाता है यू , और जहां एक्स y दो शब्दों के लिए x का y की लंबाई p , x से एक अक्षर और y से एक अक्षर लेकर लंबाई 2 p का शब्द है ।u~u01uuxyxyp2pxy

यहां निर्माण की एक सहज व्याख्या है जो हम इसे साबित करने के लिए उपयोग करते हैं। हम अंतराल के साथ शुरू करते हैं जो यू के प्रारंभिक अनुमान को एन्कोड करते हैं । यहाँ n = 4 (बाएं) और संभव समाधान (दाएं) के लिए गैजेट है :un=4

पसंद का गैजेट

यह निम्न अवलोकन (अनदेखी दिखाना आसान है एल ' संभव शब्द है कि हम इन अंतराल के साथ फार्म कर सकते हैं वास्तव में कर रहे हैं: अब के लिए) यू # ~ यू के लिए यू { 0 , 1 } कश्मीर । यह अनिवार्य रूप से @ मिखाइलरॉडॉय के उत्तर में लेम्मा की तरह दिखाया गया है, सबसे छोटे अंतराल से सबसे लंबे अंतराल तक प्रेरण द्वारा: केंद्र की स्थिति में # होना चाहिए , दो पड़ोसी पदों में एक 0 और 1 1 होना चाहिए , आदि।Lu#u~u{0,1}k#01

हमने देखा कि कैसे एक अनुमान लगाया जाता है, अब देखते हैं कि इसे कैसे नकल करना है। इसके लिए, हम एल पर भरोसा करेंगे , और अधिक अंतराल जोड़ेंगे। यहाँ k = 3 का चित्रण है :Lk=3

डुप्लिकेट गैजेट

अभी के लिए ले एल : = ( 0 | 1 ) * ( # ( 00 ' | 11 ' ) * ) * # ( 0 ' | 1 ' ) * । निरीक्षण करें कि कैसे, पहले # के अतीत में , हमें वैकल्पिक रूप से एक अप्रकाशित और एक प्राइमेड पत्र की गणना करनी चाहिए। इसलिए, अंतराल के संयुक्त राष्ट्र के धराशायी त्रिकोण पर, हमारा अवलोकन अभी भी खड़ा है: भले ही ऐसा लगता है कि इन अंतरालों में पहले # के दाईं ओर अधिक स्थान हैL:=(0|1)(#(00|11))#(0|1)##, दो में से केवल एक स्थिति का उपयोग किया जा सकता है। एक ही दावा धराशायी अंतराल के लिए रखती है। अब, L ने आगे कहा कि जब हम एक अनपेक्षित अक्षर को एन्यूमरेट करते हैं, तो जो प्राइमेड अक्षर होता है, वही होना चाहिए। : तो यह संभव है कि शब्द वास्तव में कर रहे हैं देखना आसान है यू # ( ~ यू~ यू ' ) # यू ' के लिए यू { 0 , 1 } कश्मीरLu#(u~u~)#uu{0,1}k

अब, दावा दिखाने के लिए, हम बस इस निर्माण को दोहराने मीटर बार। यहाँ के लिए एक उदाहरण है कश्मीर = 3 और मीटर = 2 , की अब असली परिभाषा का उपयोग एल ' दावे के बयान से ऊपर:mk=3m=2L

दोहराव गैजेट, दोहराया

पहले की तरह, हम (पर प्रेरण द्वारा दिखा सकता मीटर ) है कि संभव शब्द वास्तव में निम्नलिखित हैं: यू ( # ~ यू~ यू ' # यू यू ' ) 2 # ~ यू के लिए यू { 0 , 1 } कश्मीर । इसलिए यह निर्माण उस दावे को प्राप्त करता है जो दावे के द्वारा वादा किया गया था।

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

इकाई एनोटेशन

इस अवलोकन के लिए धन्यवाद, खंडों की जांच करने के लिए, हम अपनी नियमित भाषा L को दो भाषाओं के प्रतिच्छेदन के रूप में परिभाषित करेंगे । पहली भाषा को लागू करता है कि यहां तक कि पदों पर उप शब्द शब्द है एल ' , यानी, अगर हम एनोटेशन की अनदेखी तो शब्द में होना चाहिए एल ' , इसलिए हम बिल्कुल दावे के निर्माण का उपयोग करें और कुछ टिप्पणियां जोड़ सकते हैं। दूसरी भाषा L यह जाँच करेगी कि खंड संतुष्ट हैं। ऐसा करने के लिए, हम अपने वर्णमाला में तीन अक्षरों टिप्पणी के रूप में प्रयोग की जाने वाली जोड़ देगा + , - , और ε । खंड पर 1 मैं मीटर, हम से टिप्पणी करने के लिए इकाई के अंतराल जोड़ने + में पदों मैं के मई के पुनरावृत्ति यू खंड में सकारात्मक रूप से होने वाली चर करने के लिए इसी मैं , और व्याख्या ~ द्वारा - पदों को नकारात्मक रूप से होने वाली चर करने के लिए इसी। हम ~ ϵ द्वारा बाकी सब कुछ को एनोटेट करते हैं । ऐसा नहीं है कि स्पष्ट है एल " , जांच कर सकते हैं कि अनुमान लगाया मूल्यांकन संतुष्ट सूत्र लगातार की प्रत्येक जोड़ी के बीच है कि पुष्टि करने के द्वारा, # प्रतीक होते हैं की एक घटना को रोकने के यू (यानी, दो में से एक जोड़ी), वहाँ कुछ शाब्दिक संतुष्ट है कि है खंड, यानी, सब-वे + 1 की एक घटना होनी चाहिएया अधीनस्थ का -

यह सीएनएफ-सैट से कमी को पूरा करता है और एल भाषा के लिए पत्र निर्धारण समस्या की एनपी-कठोरता दिखाता है ।

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