नोट: यह मेरे अन्य उत्तर का एक निरंतरता और संशोधन है ।
कमी के साथ समस्या
निर्णय समस्या को याद करें:
वहाँ एक आदर्श एक एक दिया कवर टाइलिंग है के साथ ग्रिड अद्वितीय टाइल?n( n + 1 ) × ( n + 2 )n
इसलिए ग्रिड के लिए, हम केवल चरों का उपयोग कर सकते हैं ।n( n + 1 ) × ( n + 2 )n
परंतु:
- हमारी कमी के लिए बहुत से अद्वितीय चरों की आवश्यकता होती है , से बहुत अधिक ।ओ ( एन )
- इसके अलावा, हमारे तार खुले हैं, जो आगे बढ़ते हैं:
- हम कैसे जानते हैं कि हम खुले क्षेत्रों में टाइल लगा सकते हैं?
पहली समस्या को हल करने के लिए, हम कृत्रिम रूप से गेम-बोर्ड को बहुत बड़ा बनाते हैं; अनिवार्य रूप से हम उन चरों की संख्या के बराबर बनाते हैं जिनकी हमें वास्तव में आवश्यकता होती है, फिर आकार का ग्रिड बनाते हैं , और अपने ग्रिड को निचले बाएँ कोने में रखते हैं। यह एक द्विघात आघात को जन्म देगा।( n + 1 ) × ( n + 2 )n( n + 1 ) × ( n + 2 )
दूसरी समस्या के लिए, हमें अपने गैजेट को थोड़ा पुनर्विचार करना चाहिए।
यह साबित करने के लिए थोड़ा कठिन लग सकता है कि हम नियम के अनुसार बाकी बोर्ड को सफलतापूर्वक टाइल कर सकते हैं। इसलिए हम उसी रणनीति के साथ शुरुआत करते हैं जो वास्तव में गेम-बोर्ड के आकार उपयोग करने के लिए उपयोग करेगी :( n + 1 ) × ( n + 2 )
पहले हम सभी संभव टाइलों का एक सेट उत्पन्न करते हैं। इन सभी टाइल्स को बोर्ड पर लगाना होगा। फिर हम टाइल्स को हटाते हैं, और उनके वर्गों को पीछे छोड़ देते हैं।
हालाँकि, हमारे गैजेट्स इस बात की गारंटी नहीं देते हैं कि टाइल्स के एक विशेष सेट को रखा जाएगा; रखी गई टाइलें राज्य पर निर्भर करती हैं। इसलिए हमें विशेष रूप से टाइलों को हटाने की गारंटी देने के लिए गैजेट्स को सावधानीपूर्वक संशोधित करना चाहिए , चाहे कोई भी राज्य चुना जाए।
चलो फिर हमारे गैजेट्स पर चलते हैं।
तार और खण्ड-द्वार दो कारणों से समस्याग्रस्त हैं।
- हम नहीं जानते कि किसी तार या खण्ड-द्वार के आसपास के वर्गों को सही ढंग से टाइल किया जा सकता है; सब के बाद, कुछ तारों को बाईं ओर, दूसरों को दाईं ओर धकेल दिया जा सकता है, और शेष सफेद-अंतरिक्ष चौकों को टाइल करना गैर-तुच्छ हो जाता है। हम इस समस्या को "प्रवाह" समस्या के रूप में संदर्भित करेंगे।
- टाइल-सेट से किस टाइल को निकालना है, यह जानने का कोई तरीका नहीं है ; एक राज्य में, तार या खंड-द्वार में वर्गों का एक सेट, दूसरे राज्य में, एक पूरी तरह से अलग वर्गों के टाइलों को टाइल किया जाएगा।
इन मुद्दों को हल करने के लिए:
- सबसे पहले, हम सभी संभव टाइलों का एक सेट उत्पन्न करते हैं। इन सभी टाइलों को बोर्ड पर रखना होगा; जैसा कि हम उन्हें बोर्ड पर रखते हैं, हम सेट से टाइल निकाल देंगे। हालाँकि, हम पहले से ही बारे में नहीं जानते हैं , क्योंकि हमारे पास फॉर्म्युलेशन का पूरी तरह से वर्णन करने के लिए अभी तक नहीं है, हम सभी नई टाइल की संभावनाओं को जोड़ सकते हैं क्योंकि हम बढ़ाते हैं , आवश्यकतानुसार। सभी टाइलें जो हम इस सेट से निकालते हैं, उन्हें गारंटी देने योग्य होना चाहिए (कम से कम, गारंटी योग्य होने की गारंटी दी जाए यदि सूत्र संतोषजनक है)। हम टाइल-सेट से एक टाइल को हटाने को टाइल-सेट से टाइल को "डिस्चार्ज" करने के लिए कहते हैं, जैसा कि गेम-बोर्ड पर इसे लगाने के लिए हमारे दायित्व का निर्वहन करना है।nnn
- हमें विशेष रूप से टाइलों को हटाने की गारंटी देने के लिए गैजेट्स को ध्यान से डिज़ाइन करना चाहिए , चाहे कोई भी राज्य चुना गया हो।
- हमें अपने गैजेट को बंद करना चाहिए, ताकि वे अपने राज्य के आधार पर बोर्ड के चारों ओर टाइल न डालें; बल्कि उनके सभी राज्यों को केवल एक विशेष रूप से अच्छी तरह से परिभाषित क्षेत्र को अपनाना चाहिए।
- वैकल्पिक रूप से, उनके सभी राज्यों को एक अच्छी तरह से परिभाषित क्षेत्र लेने में सक्षम होने की गारंटी दी जानी चाहिए ; यह एक संतोषजनक टाइलिंग की गारंटी देता है, लेकिन यह गारंटी नहीं देता है कि एक विशेष टाइलिंग होगी। यह उसी तरह है जैसे एक डोमिनोज़ा खेल बनाया जाता है:
- पहले टाइलें एक सेट में उत्पन्न होती हैं;
- फिर टाइलों को एक यादृच्छिक कॉन्फ़िगरेशन में रखा जाता है,
- जैसा कि प्रत्येक टाइल रखा जाता है, इसे टाइल-सेट से हटा दिया जाता है।
- फिर टाइलों को बोर्ड से हटा दिया जाता है, उनके वर्गों को पीछे छोड़ते हुए।
- यह गारंटी नहीं देता है कि इच्छित कॉन्फ़िगरेशन को चुना जाएगा ,
- दरअसल, यह गारंटी देता है कि इरादा विन्यास है सक्षम चुना जाना, और इस तरह एक समाधान मौजूद है। हम यहां वही काम कर सकते हैं।
- फॉर्मूलेशन के सभी गैजेट्स रखने के बाद , डिफ़ॉल्ट रूप से सभी व्हाट्सएप ”पर यूनिक स्क्वायर रखने के बजाय , हम यह सुनिश्चित करते हैं कि व्हाट्सएप एक आयताकार क्षेत्र है जिसमें एक भी आयाम है, या व्हाट्सएप को आयतों में तोड़ दें। एक भी आयाम, और हम टाइल-सेट में शेष टाइल के साथ बस व्हाट्सएप को टाइल करते हैं।⋆
- सेट से सभी टाइलों को रखने के बाद, हमें पता है कि सब कुछ प्रशंसनीय है।
- कुछ टाइलें स्पष्ट रूप से प्रशंसनीय होंगी, जैसे कि दीवारों में, अन्य केवल उन उपकरणों के बीच संबंधों की प्रकृति के कारण, यदि फार्मूला संतोषजनक है, तो वे स्वीकार्य होंगे।
- फिर हम टाइल्स को हटाते हैं, और उनके वर्गों को पीछे छोड़ देते हैं।
चलो फिर हमारे गैजेट्स पर चलते हैं।
मजबूरन गैजेट
हम यह सुनिश्चित करके कि वे प्रत्येक को खुद के साथ जोड़ा नहीं जा सकता, बिल्डिंग ब्लॉक की एक मनमानी संख्या बना सकते हैं।
उदाहरण के लिए, मान लें कि हम एक टाइल को बाध्य करना चाहते हैं , ताकि हम को एक के रूप में उपयोग कर सकें। निर्माण खंड। (ध्यान दें, एक मनमाना चर है, जिसे हम जोड़ी के रूप में खुद पर लागू करना चाहते हैं, जरूरी नहीं कि एक बिल्डिंग ब्लॉक जैसा कि हमने पहले मान का उपयोग किया हो )1 ⋆ 1 ⋆ 1( 1 ⋆ , 1 ⋆ )1⋆1⋆1
यह गारंटी देने के लिए कि हमारे पुनर्निर्माण-ब्लॉक भंडार , हम इसे नीचे की दीवार के खिलाफ रख देंगे निम्नलिखित विन्यास: हम आरक्षित संख्या को स्थान देंगे, आइए इसे दीवार के खिलाफ , जैसे कि अप-टैक (आकार जैसे ); दीवार के खिलाफ , और बीच में 2 पंक्ति में एक। फिर हम एक और दो नंबर , आइए हम उन्हें और ; ये इस गैजेट के लिए अद्वितीय हैं। हम इन्हें बाएँ और दाएँ ।( 1 ⋆ , 1 ⋆ ) 1 ⊥ ⋆ 3 2 ⋆ 3 ⋆ 1 ⋆1⋆(1⋆,1⋆)1⋆⊥32⋆3⋆1⋆
नीचे चित्रित, साझा ब्लैक बॉर्डर गेम-बोर्ड के नीचे है, बाएं से दाएं वर्णन।
- गैजेट का कॉन्फ़िगरेशन। प्रत्येक और यहाँ इस गैजेट के लिए अद्वितीय हैं।3 ⋆2⋆3⋆
- केंद्र को टाइल करने की 3 संभावित ।1⋆
ऐसा करने के बाद, हम गारंटी दे सकते हैं कि हमारे गैजेट को टाइलों के एक विशिष्ट सेट के साथ टाइल किया जा सकता है, जबकि यह गारंटी देते हैं कि हमारे गैजेट को जोड़ी को मजबूर करना होगा। ।(1⋆,1⋆)
- हम जानते हैं कि होना चाहिए, क्योंकि निम्न मध्य सभी 3 संभावित टाइलिंग स्टेट्स , टाइल as , जैसा कि ऊपर दाईं ओर आकृति में दर्शाया गया है।1 ⋆ ( 1 ⋆ , 1 ⋆ )(1⋆,1⋆)1⋆(1⋆,1⋆)
- शेष टाइलों को गैजेट को कवर करते हुए और रूप में टाइल किया जा सकता है । इस प्रकार, हम उन टाइलों को अपने वैश्विक टाइल-सेट से निकाल सकते हैं। नीचे दिया गया।( 1 ⋆ , 3 ⋆ )(1⋆,2⋆)(1⋆,3⋆)
विवरण, बाएं से दाएं:
- लेफ्ट, टॉप: लेफ्ट स्टेट, लेफ्ट, बॉटम: शेष वर्गों का एक मान्य टाइलिंग।
- मध्य, शीर्ष: मध्य राज्य, मध्य, नीचे: शेष वर्गों का एक मान्य टाइलिंग।
- राइट, टॉप: राइट स्टेट, राइट, बॉटम: शेष वर्गों का एक मान्य टाइलिंग।
ध्यान दें, कि शेष वर्गों की टाइलिंग को मजबूर नहीं किया गया है , क्योंकि वे बजाय आस-पास के पड़ोसियों के साथ टाइल कर सकते हैं , लेकिन चूंकि यह सभी राज्यों में गेम-बोर्ड का एक वैध टाइलिंग है। , हम उन्हें टाइल-सेट से हटा सकते हैं, और मान सकते हैं कि वे बिल्कुल उसी तरह से टाइल किए जाएंगे। चूँकि हम जानते हैं कि एक मान्य संभव टाइलिंग है, हमारे पास गेम-बोर्ड की कम से कम एक संभव टाइलिंग है, यदि सूत्र संतोषजनक है। हालांकि इस बात की कोई गारंटी नहीं है कि ये इस तरह से टाइल किए जाएंगे, इस बात की कोई गारंटी नहीं है कि टाइल को मजबूर किया जाएगा।( 1 ⋆ , 1 ⋆ )1⋆(1⋆,1⋆)
नोट: यदि आप इससे संतुष्ट नहीं हैं, या "टाइल करने में सक्षम" बनाम "टाइल के लिए मजबूर होने" के अंतर से भ्रमित हैं, तो आप बस गैजेट के चारों ओर एक दीवार रख सकते हैं , उसी तरह हम क्लॉज़-गैजेट के लिए नीचे एक दीवार बनाते हैं ।3 × 23×23×2
यह गैजेट बंद नहीं है, क्योंकि इसे होने की आवश्यकता नहीं है (लेकिन यदि आप चाहें तो आप कर सकते हैं)। इसकी आवश्यकता नहीं है, क्योंकि इसमें एक व्यवहार्य विन्यास है, जिसे हम टाइल-सेट से निकाल सकते हैं। हालांकि एक अलग कॉन्फ़िगरेशन करना संभव हो सकता है, लेकिन यह समस्या की संतुष्टि को प्रभावित नहीं करता है।
निम्नलिखित टाइलों को टाइल किए जाने की गारंटी दी गई है (इस प्रकार टाइल-सेट से हटाया जा सकता है): (1⋆,1⋆)
निम्नलिखित टाइलों को टाइल किए जाने में सक्षम होने की गारंटी दी जाती है (इस प्रकार टाइल-सेट से हटाया जा सकता है): (1⋆,2⋆),(1⋆,3⋆)
यदि आप इस गैजेट को दीवार के साथ बंद करना चुनते हैं, तो भी होंगे कवर किए जाने की गारंटी।(1⋆,2⋆),(1⋆,3⋆)
नया तार और खण्ड द्वार
क्योंकि बहने वाली समस्याओं, और टाइल-सेट को खाली करने के कारण, हमें तार को थोड़ा नया करने की आवश्यकता है।
प्रवाह की समस्या को हल करने का एक तरीका, तार को केवल सरल बाएं-दाएं राज्यों के बजाय एक सर्किट बनाना है; यही है, यह एक लाइन के बजाय गोलाकार होगा, और इसलिए यदि सर्कल के शीर्ष भाग को दाएं धक्का दिया जाता है, तो नीचे बाईं ओर धक्का दिया जाएगा। यह प्रवाह समस्या को हल करता है।
इस मार्ग का अनुसरण करते हुए, हम दोनों समस्याओं को हल करने के लिए वायर और क्लॉज गेट को बदल सकते हैं।
और आरक्षण करनाएफTF
आइए हम दो नए सार्वभौमिक मूल्यों, और परिचय दें । ये दो मूल्य सार्वभौमिक हैं; ग्रिड में वास्तविक मान, जैसे कि वर्ग-मान और (कन्वेंशन के बाद से, हमने को दीवारों के लिए बिल्डिंग ब्लॉक के रूप में आरक्षित किया है), या जो भी आप चुनते हैं। वे क्रमशः सत्य और असत्य का प्रतिनिधित्व करते हैं।एफ 2 3 1TF231
हम टाइल्स को आरक्षित करते हैं , , , निम्नानुसार; नीचे चित्रण, बाएँ से दाएँ वर्णन:( टी , टी ) ( एफ , एफ )(T,F)(T,T)(F,F)
- हम किसी भी टाइल को मजबूर करने के लिए एक ही योजना का उपयोग करते हैं, को । प्रत्येक और यहाँ इस गैजेट के लिए अद्वितीय हैं।टी 1 ⋆ 2 ⋆ 3 ⋆(1⋆,1⋆)T1⋆2⋆3⋆
- हम किसी भी मजबूर कर के रूप में ही योजना का उपयोग टाइल, का उपयोग कर के रूप में प्रत्येक और यहां इस गैजेट के लिए अद्वितीय हैं।एफ 1 ⋆ 2 ⋆ 3 ⋆(1⋆,1⋆)F1⋆2⋆3⋆
- हम एक ही योजना का उपयोग एक टाइल को मजबूर करने के लिए करते हैं, को में केंद्र में उपयोग करते हैं, और अप-व्यवहार के अन्य स्थानों में का उपयोग करना । यह बल टाइल करने के लिए। और साथ टाइल करने में सक्षम हैं , इसलिए हम उन्हें टाइल-सेट से हटा देते हैं। प्रत्येक और यहाँ इस गैजेट के लिए अद्वितीय हैं।एफ 1 ⋆ टी ( एफ , टी ) 2 ⋆ 3 ⋆ टी 2 ⋆ 3 ⋆(1⋆,1⋆)F1⋆T(F,T)2⋆3⋆T2⋆3⋆
तार
प्रत्येक तार एक मूल्य के साथ शुरू और समाप्त होगा, हम इसे , जो तार के लिए अद्वितीय है। प्रत्येक खंड के लिए तार भाग लेता है, तार में दो तार-मान होंगे, , और , जो प्रत्येक तार के लिए अद्वितीय हैं, और एक ही खंड में भाग लेते हैं। नीचे दिया गया चित्रण, बाएं से दाएं वर्णन के साथ।एक्स ⋆ एक्स ' ⋆A⋆x⋆x′⋆
- एक तार जो एक खंड में भाग लेता है। तार की ऊँचाई , और की लंबाई है , जहाँ उस खंड की संख्या है जिसमें तार भाग लेता है। तार बाईं ओर दो वर्गों द्वारा गढ़ा जाता है , और दाईं ओर दो। यह निश्चित रूप से, सभी पक्षों पर एक दीवार से घिरा हुआ है, जो नीले रंग की रूपरेखा द्वारा इंगित किया गया है। ध्यान दें, कि इस तार के लिए अद्वितीय है, और इसका उपयोग केवल तार में किया जाएगा, और जो खंड इसमें भाग लेता है।2 * पी + 3 पी ए ⋆ 1 ⋆22∗p+3pA⋆1⋆
नीचे दिए गए दो राज्यों में बाएं से दाएं का वर्णन है।
- एक तार जो एक खंड में, वास्तविक स्थिति में भाग लेता है। तार को सही माना जाता है, जब वर्गों को एक वर्ग के साथ जोड़ दिया जाता है , और वर्गों को वर्ग के साथ जोड़ दिया जाता है। यह दूसरे राज्य में गलत माना जाता है, जहां टाइलिंग उलट जाती है। ध्यान दें कि एक बार टाइल चयनित होने पर टाइलिंग को कैसे मजबूर किया जाता है: पहले से ही पहले से मजबूर हैं, इस प्रकार बाकी टाइलें क्षैतिज होनी चाहिए।टी एक्स ' ⋆ एफ ए ⋆ ( टी , एफ )x⋆Tx′⋆FA⋆(T,F)
- झूठी अवस्था में वही तार।
अधिक खंडों में भाग लेने पर, अधिक मान , और , प्रत्येक खंड के लिए एक तार तार में भाग लेता है। वे वैकल्पिक रूप से ऊपर और नीचे होते रहते हैं, जैसा कि और वर्ग जो प्रत्येक युग्म को अलग करते हैं।एक्स ' ⋆ टी एफ एक्स ⋆ , एक्स ' ⋆x⋆x′⋆TFx⋆,x′⋆
दो संगत राज्यों।
यह गैजेट बंद है , इस प्रकार कोई "प्रवाह समस्या" नहीं है।
ध्यान दें कि कैसे या तो राज्य में, हम निम्नलिखित टाइल एकत्र करते हैं, कोई फर्क नहीं पड़ता कि राज्य: , , ।( ए ⋆ , टी ) ( ए ⋆ , एफ )(A⋆,A⋆)(A⋆,T)(A⋆,F)
हालाँकि, कुछ टाइलें हैं, जिनके बारे में हम अनिश्चित हैं; एक अवस्था में हम टाइल-सेट से, जबकि दूसरे राज्य में हम निकाल सकते हैं टाइल-सेट से, ताकि कौन सी टाइल हम लगा सकें वास्तव में हटा दें? जवाब है: क्लॉज गेट में एक ही समस्या है, लेकिन टाइल्स के विपरीत सेट के साथ। यह हमेशा शेष, विपरीत और अनियंत्रित टाइलों को इकट्ठा करेगा, जैसा कि हम अगले भाग में देखेंगे। चूंकि इनमें से प्रत्येक को क्लॉज गेट के साथ जोड़ा जाता है, इसलिए हम उन दोनों को निकाल पाएंगे।( 1 ⋆ , एफ ) , ( 1 ' ⋆ , टी ) , ( 2 ⋆ , एफ ) , ( 2 ' ⋆ , टी )(1⋆,T),(1′⋆,F),(2⋆,T),(2′⋆,F)...(1⋆,F),(1′⋆,T),(2⋆,F),(2′⋆,T)...
धारा
अगला हम नए क्लॉज गेट की पहली पुनरावृत्ति बनाएंगे। इसमें गैजेट होते हैं , जो दीवारों से घिरे होते हैं। गैजेट के अंदर, हम शीर्ष-केंद्र में एक और निचले कोनों में दो वर्ग रखते हैं; निचले-बाएँ में एक, और निचले-दाएँ में एक। शेष वर्ग तीन अलग-अलग तारों के तार-चर का प्रतिनिधित्व करने वाले मान होंगे। हमें ये और । तार-चर के साथ जोड़ी के लिए मजबूर हो जाएगा, और शेष तार-चर के साथ युग्मित हो जाएगा मूल्यों। नीचे दिए गए चित्र, बाएं से दाएं वर्णन।एफ टी एक ⋆ , ख ⋆ , ग ⋆ एफ टी2×3FTa⋆,b⋆,c⋆FT
- वाम: नए खंड-द्वार के पहले पुनरावृत्ति के लिए विन्यास।
- राइट तीन की संभावित स्थितियों में टाइलिंग।F
ये तीन राज्य तीन संभावित झुकाव की ओर ले जाते हैं। नीचे चित्रण, बाएं से दाएं वर्णन।
- बाएँ, शीर्ष : टाइलें बाएँ, बाएँ, नीचे: शेष वर्गों को बाँधना।F
- मध्य, शीर्ष : सही, मध्य, निचला: शेष वर्ग टाइलिंग।F
- दाईं ओर, शीर्ष : नीचे की ओर दाएं, दाएं, नीचे: शेष वर्गों को टाइलिंग।F
चूंकि तार-चर में से एक के साथ रखा जाएगा खंड में , कि तार-चर नहीं रह गया है के साथ रखा जा सकता है तार में ; इस प्रकार वायर को सच करने के लिए मजबूर करना। इसके विपरीत, शेष वायर-चर जो टाइल के साथ को उनके तारों के भीतर साथ टाइल करने के लिए मजबूर किया जाएगा । यह ठीक वैसी ही अड़चन है जैसे कि क्लॉज।एफ टी एफ 1 -in- 3 - एस ए टीFF TF1-in-3-SAT
ध्यान दें, और तार-चर हैं, लेकिन वे प्रत्येक को एक या रूप में संदर्भित कर सकते हैं तार-चर; एक का उपयोग कर अनिवार्य रूप से तार-चर negating है।ग ⋆ एक्स ⋆ एक्स ' ⋆ एक्स ' ⋆a⋆,b⋆,c⋆x⋆x′⋆x′⋆
एक अतिरिक्त: यह जानने के दायित्व का निर्वहन करने के लिए कि टाइल-टाइल से कौन सी टाइलें निकाली जा सकती हैं, हमें क्लॉज को "डबल और कॉन्ट्रासेप्टिव" करना होगा। मेरा इससे क्या मतलब है, एक और गैजेट बनाना है, जिसमें अतिरिक्त चर और _ के नकारों का प्रतिनिधित्व करते हैं । हमें ये और । ये और के नकारात्मक चर-तार मान होने चाहिए । यह गैजेट अलग है, इसमें केंद्र में एक और दो होंगे3×23a⋆,b⋆,c⋆a′⋆,b′⋆,c′⋆a⋆,b⋆,c⋆3×2TFकोनों पर ; इस प्रकार वर्णित क्लॉज गैजेट के बिल्कुल विपरीत। इस तरह खंड को "दोगुना" करके, हम ऊपर वर्णित गैजेट के समान बाधाओं को फिर से जोड़ते हैं। हालाँकि, हम सभी संयोजनों का भी निर्वहन करते हैं। टाइल-सेट से, प्रत्येक चर के लिए (और इस तरह और साथ ही, क्योंकि वे सब के बाद हैं, तार-चर)। नीचे सचित्र, बाएं से दाएं वर्णन।(T,x⋆),(T,x′⋆),(F,x⋆),(F,x′⋆)a⋆,b⋆,c⋆
- एक "डबल और गर्भनिरोधक" खंड। नीचे का खंड ऊपर वर्णित खंड है; शीर्ष अनुभाग नव वर्णित गर्भनिरोधक खंड है। नए क्लॉज में बिल्कुल तार्किक बाधाएं हैं; यह नीचे के खंड का गर्भनिरोधक है। साथ में, ये संयुक्त गैजेट्स और वायर सभी संयोजनों का निर्वहन करते हैं खंड में भाग लेने वाले प्रत्येक तार-चर के लिए टाइल-सेट से ।(T,x⋆),(F,x⋆),(T,x′⋆),(F,x′⋆)
- बाईं-सबसे आकृति के बीच में नीली रेखा आसानी से देखने के लिए है; वास्तव में इसे और अधिक राज्यों की अनुमति के बिना हटाया जा सकता है।
तो, आइए हम एक उदाहरण लेते हैं, यह दिखाने के लिए कि सभी टाइलों को वादा किया गया है। नीचे सचित्र, बाएं से दाएं वर्णन।
- एकल खंड में भाग लेने वाले तार का चित्र; क्लाज के लिए एक राज्य चुना जाता है। यहां, हम का उपयोग कर रहे हैं , जबकि और इस खंड में अन्य तार-मानों का प्रतिनिधित्व कर रहे हैं।1⋆=b⋆a⋆b⋆
- क्लाज में दिए गए राज्य के लिए, मान को पड़ोसी साथ रखा जाना चाहिए ।1⋆T
- यह तार को सत्य-मान के लिए मजबूर करने का कारण बनता है (आप बता सकते हैं कि तार का सकारात्मक चर साथ युग्मित करने के लिए मजबूर है , और नकारात्मक चर को साथ युग्मित करने के लिए मजबूर किया जाता है , जैसा कि ऊपर बताया गया है। )।TF
- यह गर्भनिरोधक खंड (खंड के ऊपरी खंड) में _ को बल के भीतर के साथ जोड़ा जाता है । अब यदि आप तार को देखते हैं, तो तार के भीतर की प्रत्येक टाइल को डिस्चार्ज होने की गारंटी दी जाती है: या तो तार में ही छुट्टी दे दी जाती है, या संबंधित क्लॉज-गैजेट में। इस स्थिति में, हमारे पास टाइलें हैं, , , , , , , और ।1′⋆T(A⋆,A⋆)(A⋆,T)(A⋆,F)(1⋆,T)(1⋆,F)(1′⋆,F)(1′⋆,T)
दूसरे राज्य की कोशिश करते हुए, हमें नीचे चित्रण मिलता है, बाएं से दाएं वर्णन।
- क्लॉज दूसरे राज्य में है, को दो में से एक तरीके से।(1⋆,T
- इसलिए, को तार पर मजबूर किया जाता है,(1⋆,F
- तार के बाकी हिस्सों को इसी तरह टाइल करें, और तार को झूठे मान दें।
- अंत में, क्लॉज़-गैजेट के गर्भनिरोधक / ऊपरी भाग में, को टाइल लगाना चाहिए, क्योंकि में लिया जाता है तार। इस स्थिति में, हमारे पास टाइलें हैं, , , , , , , और । ये उसी तरह की टाइलें हैं जिन्हें अन्य राज्य में छुट्टी दी गई है ।(1′⋆,F)(1′⋆,T)(A⋆,A⋆)(A⋆,T)(A⋆,F)(1⋆,T)(1⋆,F)(1′⋆,F)(1′⋆,T)
इस प्रकार या तो राज्य में, हम एक ही टाइल का निर्वहन करते हैं। इसलिए, यदि एक संतोषजनक कार्यभार है तो तार और खण्ड मिलकर विशिष्ट टाइलों का सफलतापूर्वक निर्वहन करते हैं।
यह गैजेट बंद है , इसलिए प्रवाह समस्या नहीं होगी।
वायर गैजेट के साथ क्लॉज-गैजेट को हमेशा एक ही टाइल-जोड़ी मानों को डिस्चार्ज करने की गारंटी दी जाती है , और इस प्रकार हम इन्हें डिस्चार्ज भी कर सकते हैं, भले ही हमें पता न हो कि यह किस तरह से टाइल करेगा।
अब हमारे सभी गैजेट मानदंडों को पूरा करते हैं।
निरूपण
हमारे अंतिम सूत्रीकरण में, हम गैजेट की तीन पंक्तियों को बनाते हैं, प्रत्येक एक क्षैतिज दीवार से अलग होता है।
- तल पर, हम फोर्जिंग-गैजेट्स को रखते हैं, जो दो टाइल लंबा है। हमें बिल्डिंग ब्लॉक के लिए और और संयोजन के लिए एक फोर्सिंग गैजेट की आवश्यकता है । हम मजबूर गैजेट्स को सीधे एक-दूसरे के बगल में रखते हैं।TF
- मध्य पंक्ति में, हम वायर गैजेट्स को क्षैतिज रूप से रखते हैं, जो दो टाइल लंबा होता है। वायर गैजेट्स को एक-दूसरे से वर्टिकल वॉल से अलग किया जाना चाहिए।
- शीर्ष पंक्ति में, हम क्लॉज़ गैजेट्स रखते हैं, जो चार टाइल लम्बे होते हैं। क्लॉज गैजेट्स को एक-दूसरे से वर्टिकल वॉल से अलग किया जाना चाहिए।
चित्र प्रत्येक चित्र के ऊपर वर्णन, वर्णन करते हैं। पूर्ण संकल्प के लिए छवियों पर क्लिक करें। छवियों को पुन: उत्पन्न / उत्पन्न करने के लिए स्रोत कोड पृष्ठ के नीचे सूचीबद्ध है।
सूत्र के रूप में , हमारे पास एक संतोषजनक है समाधान एक गवाह के रूप में।Φ(x)=(x1,¬x2,x3)∧(x2,¬x3,x4)∧(x1,x2,¬x4)(¬x1,x2,x3,¬x4)
पहले हम क्षैतिज दीवारों के साथ शुरू करते हैं जो गैजेट की पंक्तियों को अलग करती हैं। हम वर्गों को दिखाते हैं, और जोड़े जो दीवारों के भीतर टाइल करने के लिए मजबूर हैं।
अगला, हम गैजेट दिखाते हैं। नीली रूपरेखा गैजेट की सीमाओं का प्रतिनिधित्व करती है; फोर्जिंग-गैजेट के लिए धराशायी नीला, क्योंकि वे दीवारों से घिरे नहीं होंगे। ध्यान दें कि क्लॉज गैजेट के बीच की रेखा दीवार से घिरी नहीं है; यह आसानी से देखने के लिए है; लाइन को दूर ले जाने से क्लॉज में और अधिक राज्यों को उत्पन्न होने की अनुमति नहीं है, जैसा कि ऊपर बताया गया है, लेकिन हम इस प्रदर्शन के लिए नीली रेखा दिखाते हैं। नोट: जब हम लागू होते हैं तो संख्याओं को पठनीयता देने के लिए वर्ग-नामों का उपयोग करते हैं। प्रत्येक नाम एक संख्यात्मक मान का प्रतिनिधित्व करता है।
यहां हम ऊर्ध्वाधर दीवारों में भरते हैं।
यहां हम साक्षी समाधान में भरते हैं; यानी इसे उत्पन्न करने के लिए SAT समाधान का उपयोग करने पर यह टाइलिंग समाधान है।
अगला हम भराव क्षेत्र को टाइल करते हैं; बाकी बोर्ड, जहां तक आवश्यक हो, बड़े के लिए रूप में इस प्रकार दूर टाइल की आवश्यकता है। इस प्रकार हम टाइल-सेट में शेष जोड़े का निर्वहन करते हैं। यहां धराशायी लाइनें एक वैध-लेकिन-नहीं-मजबूर टाइलिंग का प्रतिनिधित्व करती हैं; हो सकता है कि इन्हें टील करने का एक और तरीका हो। यहां हम निचले-बाएँ कोने को दिखाते हैं।n
यहां हम शेष वर्गों में एक तुच्छ वैध टाइलिंग के साथ भरते हैं।
यहां हम ग्रिड के निचले दाएं कोने को दिखाते हैं।
यहां हम ग्रिड के ऊपरी दाएं कोने को दिखाते हैं। ध्यान दें कि ऊर्ध्वाधर टाइलें अब कैसे फिट होती हैं; इसलिए यदि आवश्यक हो, तो हम शीर्ष पंक्ति को क्षैतिज रूप से टाइल करते हैं।
और अंत में टॉप-लेफ्ट कॉर्नर।
TeX के माध्यम से एक ही बार में पूरे गेम-बोर्ड को तैयार करना pdflatex से आउट-ऑफ-मेमोरी त्रुटियों के साथ विफल हो जाता है, इसलिए यदि आप इसे देखना चाहते हैं, तो आपको क्लिप उत्पन्न करना होगा और उन्हें एक साथ पैच करना होगा। नोटबुक व्यूअर को देखना सुनिश्चित करें ।
टिकज के स्रोत
गेम जनरेटर:
graphtex.py
PXflatex, pdfcairo (poppler), और rsvg-convert (libsvg) का उपयोग करके XX को svg में परिवर्तित करता है
dominosa.py
इसमें रूपांतरण तर्क, गेम-सॉल्यूशन सत्यापन और ड्राइंग तर्क शामिल हैं
dominosa_demo.py
एक निष्पादन योग्य डेमो जो ऊपर दिए गए उत्तर में उपयोग की गई छवियों को उत्पन्न करता है। वर्तमान-कार्य-निर्देशिका में छवियों को डंप करता है।
dominosa_demo.ipynb
एक ipython डेमो जो ऊपर दिए गए उत्तर में उपयोग की गई छवियों को उत्पन्न करता है।