क्या यह क्लासिक पहेली पुस्तक गेम एनपी-पूर्ण है?


10

एक क्रॉसवर्ड पहेली के समान एक क्लासिक पहेली पुस्तक का खेल है, शब्दों की एक सूची को छोड़कर दिया जाता है और फिर यूनिट वर्गों से बना एक स्क्वायर बोर्ड दिया जाता है, कुछ वर्गों को क्रॉस-वर्ड की तरह ब्लैक आउट किया जाता है, और कुछ चौकों में एक पत्र पहले से ही लिखा हुआ है। लक्ष्य सूची में से प्रत्येक शब्द को एक बार और केवल एक बार पहेली में लिखना है, जहां प्रत्येक शब्द को क्षैतिज रूप से (बाएं से दाएं) या लंबवत (ऊपर नीचे) गैर-ब्लैक आउट लगातार वर्गों में लिखा जाता है, और जब आप एक शब्द लिखते हैं शब्द के सिरों को लहराते हुए दो वर्गों को या तो ब्लैक आउट करना होगा या बोर्ड को बंद करना होगा। इसके अलावा, कुछ वर्गों में लिखे गए अक्षरों के लिए, इन चौकों को ओवरलैप करने वाले शब्दों को पूर्व-लिखित पत्र का सम्मान करना चाहिए।N×N

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

जवाबों:


6

एक पुरानी पोस्ट का जवाब देने के लिए क्षमा करें।

मैं इसके बारे में सोच रहा था और मुझे लगता है कि एक निश्चित वर्णमाला के साथ समस्या एनपी-पूर्ण भी है।

मैं इस शब्द समस्या के लिए सकारात्मक 1-इन -3 सैट को कम करने जा रहा हूं

कल मुझे समस्या को हल करने के लिए विचारों के साथ आने में परेशानी हो रही थी। जब तक मैं प्रश्न पर फिर से गौर नहीं करता तब तक मुझे प्रत्येक चर को बनाने में परेशानी हुई और मैंने महसूस किया कि आपको लगाए गए प्रतीकों के साथ वर्गों की अनुमति है। इसने कटौती को सरल बनाया। मेरा अन्य विचार प्रत्येक भिन्न चर के लिए अलग-अलग लंबाई के शब्द होना था।

कमी

अब मैं उन गैजेट्स का वर्णन करने जा रहा हूं जिनका हम उपयोग करने वाले हैं:

चर गैजेट

हम प्रत्येक चर को एक अलग संख्यात्मक सूचकांक के साथ लेबल करते हैं और हमारे पास प्रत्येक चर के लिए एक अलग संख्या होगी। हम सबसे बड़े सूचकांक को चुनते हैं और हम बाइनरी में संख्या का प्रतिनिधित्व करते हैं, हम इस बाइनरी चेन को कॉल करेंगे n

फिर हम प्रत्येक चर के लिए दो अलग-अलग ऊर्ध्वाधर शब्द बनाते हैं। सभी शब्दों की लंबाई (केवल अगर हम शब्दों की सूची में डुप्लिकेट शब्दों की अनुमति देते हैं), जहां | एन | बाइनरी चेन n की लंबाई है ।3+|n||n|n

उदाहरण के लिए, सबसे बड़ा इंडेक्स नंबर होना चाहिए । जब हम बाइनरी में इस संख्या को बदलते हैं तो हम बाइनरी में श्रृंखला 100 प्राप्त करते हैं , इस श्रृंखला की लंबाई तीन होती है। इसलिए प्रत्येक चर शब्द की लंबाई इस उदाहरण में 6 होगी ।41006

अब हम प्रत्येक चर के लिए दो अलग-अलग शब्द बनाते हैं। एक शब्द प्रतीक होगा , तो प्रतीक शुरुआत में 2 नीचे है, तो एक द्विआधारी श्रृंखला है कि शून्य के साथ चर का इंडेक्स और हम पैड श्रृंखला तो यह लम्बाई समान होती है कि प्रतिनिधित्व करता है कि श्रृंखला n और अंत में प्रतीक 3 अतं मै। बेशक प्रतीकों को बदला जा सकता है।32n3

दूसरे शब्दों लगभग एक ही है, लेकिन यह प्रतीक होगा प्रतीक के बजाय 343

उदाहरण के लिए, सबसे बड़ा इंडेक्स नंबर होना चाहिए । अनुक्रमणिका 1 वाले चर के लिए हमारे पास निम्नलिखित दो शब्द होंगे :41

और 420014320013420014

जैसा कि हम देखते हैं कि हमने जीरो के साथ संख्या के द्विआधारी पुनर्संयोजन को गद्देदार किया है ताकि इसकी लंबाई हो सके | एन |1|n|

हमें इन शब्दों को कई बार कॉपी करना होगा, हमें SAT उदाहरण में एक चर की प्रत्येक घटना के लिए प्रत्येक शब्द की एक प्रति की आवश्यकता होगी। इससे शब्दों की सूची में डुप्लिकेट बन जाएगा। हम बाइनरी चेन में एक और बाइनरी चेन को जोड़कर डुप्लिकेट से छुटकारा पा सकते हैं जो कि वेरिएबल की विशिष्ट पहचान करता है। यह नई श्रृंखला एक चर के प्रत्येक महासागर को विशिष्ट रूप से पहचान देगी।

ऐसा करने के लिए, हम बस चर के प्रत्येक महासागर को एक और बाइनरी श्रृंखला प्रदान करते हैं और हम उस श्रृंखला को बाइनरी के बाइनरी प्रतिनिधित्व के अंत में ऑलसेन करते हैं।

niini|ni||ni|

इससे चर शब्दों के अंदर डुप्लिकेट से छुटकारा मिलेगा।

x2

32010013 4201001432010103 4201010432010113 42010114

क्लॉज गैजेट

6

535354535453545353

435

mm|m||m|। हम प्रत्येक बाइनरी चेन को क्लॉज़ शब्दों से जोड़ते हैं जो क्लॉज़ से संबंधित हैं।

अब, बोर्ड में एक खंड गैजेट की तस्वीर देखते हैं:

उदाहरण खंड

(x2x3x4)(x1x2x3)(x2x3x4)

4

यदि हम शब्दों की सूची के अंदर डुप्लिकेट की अनुमति नहीं देते हैं तो हमें छवि को संशोधित करना होगा।

5b5b5b10

b201010bb201110bb21001b

b

एक उदाहरण देखें:

खंड, कोई दोहराता है

चर स्थिरता गैजेट

यह एक गैजेट है जो यह सुनिश्चित करता है कि खिलाड़ी केवल एक चर के सभी शाब्दिक स्तंभों के लिए एक ही मान असाइन कर सकता है।

हमारे पास प्रत्येक चर के लिए एक नया गैजेट होगा

हम प्रत्येक गैजेट के लिए दो नए शब्द बनाएंगे।

2kkx263 k64 k

x2

63636464

यदि हम दोहराए गए शब्दों से बचना चाहते हैं, तो ध्यान दें कि प्रत्येक संगति गैजेट एक भिन्न चर से संबंधित है। तो हम बाइनरी चेन को जोड़ सकते हैं जो प्रत्येक चर को उन दो शब्दों की पहचान करता है जो हमने इस गैजेट के लिए बनाए थे।

अब इस गैजेट का एक उदाहरण चित्र देखें:

चर स्थिरता गैजेट

x2(x1x2x3)(x2x3x4)

3434। हम इस गैगेट के शेष शब्द को दूसरी पंक्ति में रख सकते हैं

यदि हम शब्दों की सूची में डुप्लिकेट की अनुमति नहीं देते हैं, तो उदाहरण चित्र के अंदर के शब्द होंगे:

पंक्तियों के लिए:

6b6b0106b6b010

स्तंभों के लिए:

b201001bb201010b

b

एक उदाहरण देखें:

संगति गैजेट, कोई दोहराता है

क्लॉज डंप गैजेट

यह अप्रयुक्त खंड शब्दों को रखने के लिए बनाया गया एक गैजेट है। ऐसा करने के लिए, हमें बोर्ड के खाली हिस्से में प्रत्येक खंड शब्द के लिए केवल दो पंक्तियाँ रखनी होंगी। ये पंक्तियाँ किसी अन्य पंक्ति या स्तंभ से जुड़ी नहीं हैं।

इसके साथ हम कमी को पूरा करते हैं, जैसा कि हमने दावा किया है कि हमें कमी के लिए केवल 6 प्रतीकों की आवश्यकता है।

उदाहरण

यदि पिछली व्याख्या भ्रमित कर रही थी, तो यहां उदाहरण 1 में 3 सैट में सकारात्मक 1 की एक उदाहरण तस्वीर है जो इस शब्द समस्या को कम कर दिया गया है:

उदाहरण मंडल

यदि हम दोहराए गए शब्दों को अस्वीकार करते हैं:

उदाहरण बोर्ड, कोई दोहराता नहीं है

जो उदाहरण घटा है, वह है:

(x1x2x3)(x2x3x4)


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

2
@DavidRicherby जाजा हां। मैं थोड़ी देर के लिए इस सवाल में सोच रहा था। मैंने सोचा था कि जब मैंने यह जवाब पोस्ट किया तो हर कोई इसे अपलोड़ करेगा। नहीं हुआ। खैर छोड़ो। यदि आपके पास कमी के बारे में प्रश्न हैं, तो आप मुझसे पूछ सकते हैं
रोटिया

4

मुझे लगता है कि डायरेक्टेड हैमिल्टनियन मार्ग कार्यों से निम्नलिखित कमी आई है:

G=(V,E)s,tV

V{}V

vvvVvu(u,v)E

|V|

सीढ़ियों

|E|(|V|1)

sstt

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

मुझे लगता है कि यह काम करता है (शुद्धता प्रमाण मैं स्केच किया हुआ हाथ सबसे अच्छा है, लेकिन फिर भी)।


1
stN×NN

यह अच्छा है और काम करने लगता है, लेकिन वर्णमाला का आकार मेरी मूल पोस्ट की तरह तय नहीं है। क्या एक निश्चित आकार की वर्णमाला का उपयोग करना संभव है और फिर भी यह कमी है?
user2566092

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