CNF का उपयोग SAT के लिए क्यों किया जाता है और DNF के लिए नहीं?


22

मुझे समझ में नहीं आता है कि लगभग सभी सैट सॉल्वर DNF के बजाय CNF का उपयोग क्यों करते हैं। यह मुझे लगता है कि डीएनएफ का उपयोग करके सैट को हल करना आसान है। आखिरकार, आपको बस इम्प्लांट्स के सेट के माध्यम से स्कैन करना होगा और यह जांचना होगा कि उनमें से किसी में वैरिएबल और निगेटिव दोनों नहीं हैं। CNF के लिए, इस तरह की कोई सरल प्रक्रिया नहीं है।


5
सभी बाधा सॉल्वर इनपुट के रूप में CNF का उपयोग नहीं करते हैं। कुछ को पसंद नहीं है, क्योंकि मूल बाधा सेट की संरचना संरक्षित है।
डेव क्लार्क

1
इस सवाल का एक गलत आधार है और न ही यह लगता है कि यह इस तरह की उच्च रेटिंग के हकदार हैं जैसा कि वर्तमान में प्रकाशित किया गया है। SAT को CNF फ़ार्मुलों के समाधान के रूप में परिभाषित किया गया है। DNF को हल करने की एक समस्या है (आप इसे संतोषजनक कार्य खोजने के लिए भी कह सकते हैं ) लेकिन इसे CS में / उपनाम SAT नहीं कहा जाता है। & imho इसे cs.se पर माइग्रेट किया जाना चाहिए ... एक और नोट-- CNF को DNF और इसके विपरीत में परिवर्तित करना वास्तव में बहुत समान है, या इसे एक संपीड़न एल्गोरिथ्म के रूप में देखा जा सकता है, जो विशेष मामलों पर बुरी तरह से विफल हो जाता है (घातांक प्रहार के लिए अग्रणी) आकार में)
vzn

10
@vzn: वास्तव में, "SAT" का उपयोग कभी-कभी किसी बूलियन फॉर्मूले के लिए संतोषजनक असाइनमेंट खोजने की समस्या को संदर्भित करने के लिए किया जाता है। CNF-SAT केवल सबसे दिलचस्प विशेष मामला है, ताकि हम CNF-SAT को विशेष रूप से सिंटेकडॉच के रूप में संदर्भित करने के लिए "SAT" का उपयोग करें। DNF-SAT, निश्चित रूप से, कुशलता से हल करने योग्य है, उसी तरह CNF-TAUTOLOGY कुशलता से हल करने योग्य है। सवाल यह है कि यह साकार नहीं होने पर प्रबल होना चाहिए।
नील डी बेउड्राप

जवाबों:


56

सैट से पाठ्यपुस्तक कमी 3SAT को, कार्प के कारण, एक मनमाना बूलियन सूत्र बदल देती है एक "बराबर" CNF बूलियन सूत्र में Φ ' बहुपद आकार के , जैसे कि Φ संतुष्टि योग्य है यदि और केवल यदि Φ ' संतुष्टि योग्य है। (कड़ाई से बोलने, इन दो सूत्रों क्योंकि, समान नहीं होते हैं Φ ' अतिरिक्त चर है, लेकिन का मूल्य Φ ' वास्तव में उन नए चर पर निर्भर नहीं करता।)ΦΦ ΦΦΦΦ

DNF फ़ार्मुलों में मनमाने ढंग से बुलियन फ़ार्मुलों से कोई समान कटौती ज्ञात नहीं है; सभी ज्ञात रूपांतरण सूत्र का आकार तेजी से बढ़ाते हैं। इसके अलावा, जब तक पी = एनपी, ऐसी कोई कमी संभव नहीं है!


DNF को CNF में रूपांतरित करना और इसके विपरीत पी बनाम एनपी के समान नहीं है, हालांकि यह संभवतः कुछ महत्वपूर्ण जटिलता वर्ग अलगाव (एनपी की तुलना में "बड़े" वर्गों के लिए) से संबंधित है ... मुद्दा यह हो सकता है आकार में एक घातीय प्रहार ... और CNF और DNF के बीच किसी भी मामले में रूपांतरण कोई निर्णय समस्या नहीं है ... इसे निर्णय समस्या में बदलने के कई तरीके हैं ...
vzn

10
मुझे लगता है कि जेफ की बात यह थी कि डीएनएफ-सैट पी में है, इसलिए यह एनपी-पूर्ण नहीं हो सकता जब तक कि पी = एनपी न हो।
ल्यूक मैथिसन

2
"सभी ज्ञात परिवर्तनों को सही नहीं दिया गया है" इस सवाल के लिए और यह जवाब इस पर संकेत देता है ... क्या साहित्य में कहीं भी "डीएनएफ-एसएटी" का उपयोग किया गया है? इसे देखकर खुद को याद न करें ... यह स्वाभाविक रूप से मुझे भ्रमित करने वाला लगता है ... डीएनएफ-संतोषजनक एक निर्णय समस्या है, डीएनएफ <-> सीएनएफ रूपांतरण एक फ़ंक्शन समस्या है और जवाब उस भेद को भी स्पष्ट नहीं करता है; एक महान जवाब होगा ...
vzn

@ J @ ɛ E: क्या आप स्पष्ट करते हैं कि "मनमाना बूलियन फॉर्मूला" से आपका क्या मतलब है? कार्प के पेपर , पृष्ठ 92 को देखते हुए, SATISFIABILITY को CNF फ़ार्मुलों पर परिभाषित किया गया है। यह ओपी के प्रश्न के आपके उत्तर को प्रभावित नहीं करता है, लेकिन मैं यह सुनिश्चित करने की कोशिश कर रहा हूं कि मनमाने ढंग से बूलियन फॉर्मूले (जैसे कि सीएनएफ में जरूरी नहीं हैं) के लिए और अधिक सामान्य परिणाम नहीं हैं। धन्यवाद
lyes

22

अधिकांश महत्वपूर्ण बातें कही गईं लेकिन मैं कुछ बिंदुओं पर जोर देना चाहूंगा।

  1. एक DNF सूत्र की संतोषजनकता P है
  2. एक CNF सूत्र की संतुष्टि एनपी है
  3. यदि CNF फॉर्मूला एक टेओटोलॉजी है तो परीक्षण P है
  4. अगर DNF फॉर्मूला एक टेक्नॉलॉजी है तो टेस्टिंग coNP है
  5. DNF की उपेक्षा करने से CNF और इसके विपरीत पैदावार होती है

इसलिए एसएटी सॉल्वर CNF का उपयोग करते हैं क्योंकि वे संतोषजनकता को लक्षित करते हैं और रैखिक समय में संतोषजनकता को संरक्षित करते हुए किसी भी सूत्र को CNF में अनुवादित किया जा सकता है।


1
अच्छा संदर्भ: soe.ucsc.edu/classes/cmps132/Winter05/hw/hw8sols.pdf
MS Dousti

1
@TayfunPay वे करते हैं। उदाहरण के लिए, । यदि आप एक ही चर वाले खंडों को दो बार अस्वीकार करते हैं, तो एक शब्दावलियों का एकल प्रतिनिधित्व होता है, जो खंडों का खाली समूह होता है। {{¬xx}}
मिकोल्स

3
@Tayfun जब मैं मानता हूं कि परिभाषाएँ आमतौर पर खंडों में दोहराए जाने वाले चर को अस्वीकार करती हैं, तो मुझे नहीं लगता कि मैंने कभी ऐसी परिभाषा देखी है जो खंड के खाली सेट को अस्वीकार कर रही हो। (और यह मेरे लिए स्पष्ट नहीं है कि आप ऐसा क्यों करना चाहते हैं)
मिकोल्स

2
@Tayfun 1) क्या आप मुझे एक ऐसे प्रकाशन की ओर संकेत कर सकते हैं जो कहता है कि CNF में कोई सूचना नहीं है या खंड का खाली सेट CNF नहीं है? 2) यदि आप क्लॉज़ के खाली सेट को अस्वीकार करते हैं, तो आपको खाली क्लॉज़ को भी अस्वीकृत कर देना चाहिए और आप 3 में से किसी का भी प्रतिनिधित्व नहीं कर सकते हैं) यदि आप CNF में सही और / या गलत की अनुमति नहीं देते हैं, तो आप प्रतिनिधित्व करने में सक्षम होने की संपत्ति खो रहे हैं सभी बूलियन फ़ंक्शंस, आप ऐसा क्यों करना चाहेंगे?
मिकोलस

1
"किसी भी दिए गए खंड में न तो चर और न ही शाब्दिक दोहराव होना चाहिए।" --- कि खाली सूत्रों या खंड को अस्वीकार नहीं करता है। BTW यदि आप खाली क्लॉज को अस्वीकार कर देते हैं, तो आप अब रिज़ॉल्यूशन रीफ़्रूटेशन प्रूफ नहीं कर सकते हैं, जो स्वचालित रीज़निंग का एक महत्वपूर्ण हिस्सा है।
मिकोलस

18

सैट सॉल्वर CNF का "उपयोग" नहीं करते हैं - वे (अक्सर) CNF को इनपुट के रूप में दिए जाते हैं और उनके द्वारा दिए गए CNF को हल करने की पूरी कोशिश करते हैं। जैसा कि आपका प्रश्न बताता है, प्रतिनिधित्व सब कुछ है - यह बताना बहुत आसान है कि क्या DNF समान आकार के CNF से संतोषजनक है या नहीं।

यह इस सवाल का कारण बनता है कि एसएटी सॉल्वर सिर्फ अपने दिए गए CNF को DNF में बदल नहीं सकते हैं और परिणामी DNF को हल कर सकते हैं, और यह प्रतिनिधित्व के मुद्दों को समझने के लिए एक अच्छा अभ्यास है।


11

7 वें सितंबर 2013: इसके अलावा इस सवाल का जवाब कहा, जांच पृष्ठ के नीचे


मूल रूप से, एक डीएनएफ सूत्र क्लॉस का एक विघटन है c m , जहां प्रत्येक खंड c i = l i , 1 where l i , k शाब्दिक अर्थ है। चलो एक खंड फोन मैं परस्पर विरोधी यदि और केवल यदि यह दोनों एक शाब्दिक शामिल एल और उसका निषेध ¬ एल । यह देखना आसान है कि प्रत्येक गैर-परस्पर विरोधी खंड केवल 2 n - k को एन्कोड करता हैc1...cmci=li,1...li,kcil¬l2nkसूत्र का समाधान। तो पूरे DNF समाधानों की एक गणना है। एक सूत्र में घातीय रूप से कई समाधान हो सकते हैं, इसलिए संबंधित DNF सूत्र में घातीय रूप से कई खंड हो सकते हैं। इस CNF सूत्र को बदलने का प्रयास करें:

l1l2l3l4

l5l6l7l8

l9l10l11l12

l13l14l15l16

l17l18l19l20

इसके संबंधित डीएनएफ फॉर्मूले के अनुसार: आपको बहुत अधिक क्लॉस मिलेंगे। एक शब्द में: सीएनएफ कॉम्पैक्ट है, जबकि डीएनएफ नहीं है; CNF निहित है, जबकि DNF स्पष्ट है।

निम्नलिखित समस्या एनपी-पूर्ण है: एक डीएनएफ उदाहरण दिया गया है, क्या चर का एक असाइनमेंट है जो सभी खंडों को गलत बनाता है?


4
सही LaTeX फ़ॉर्मेटिंग प्राप्त करने के लिए, \ और \ या \ भूमि और \ lor (या \ wedge और \ vee) को बदलें।
जेफ

2
नियमित रूप से CNF में परिवर्तन के बारे में स्वाभाविक रूप से अधिक कॉम्पैक्ट नहीं है, ओपी प्रश्न की वास्तविक कुंजी तथ्य यह है कि आप सहायक चर के साथ उन "इक्विटिसेबल" सीएनएफ कार्यों को बना सकते हैं। संभवतः एक समान सन्निकटन है आप संतुष्टि के लिए परीक्षण के बजाय एक अलग समस्या को हल करने के लिए डीएनएफ के साथ कर सकते हैं। (समान-असंतोषजनक कार्य? ...)
dividebyzero

1
जियोर्जियो कैमरानी की यह अंतर्दृष्टि अच्छी नहीं है। यदि आप CNF में कुछ परिवर्तित करते हैं तो क्लॉस की संख्या में समान घातीय वृद्धि हो सकती है। इसी उदाहरण को चुनें और "या" के साथ "या" s को प्रतिस्थापित करें। इस छोटी डीएनएफ अभिव्यक्ति से सीएनएफ में रूपांतरण केवल एक ही विशाल होगा। उनका थोड़ा सा यिंग-एंड-यंग रिश्ता है।
dividebyzero

@dividebyzero: मैंने आपकी टिप्पणियों को संबोधित करने के लिए एक अलग उत्तर समर्पित किया है।
जियोर्जियो कैमरानी

6

मुझे बस एक और बात का एहसास हुआ, जो उम्मीद है कि एक अलग उत्तर के योग्य है। प्रश्न का अनुमान पूरी तरह से सत्य नहीं है। एक द्विआधारी निर्णय आरेख (BDD) को DNF के एक कॉम्पैक्ट / परिष्कृत प्रतिनिधित्व के रूप में देखा जा सकता है। BDD का उपयोग करते हुए कुछ SAT सॉल्वर आए हैं, लेकिन मेरा मानना ​​है कि वे अब दिखाई नहीं देते हैं।

बर्नियन फ़ंक्शंस के विभिन्न अभ्यावेदन के विभिन्न गुणों का अध्ययन डार्विच और मारक्विस द्वारा एक अच्छा पेपर है ।


4

यह आगे जवाब मेरे पिछले जवाब के लिए dividebyzero की टिप्पणी के लिए एक प्रतिक्रिया के रूप में है।

जैसा कि डिवाइडबीज़रो कहते हैं, यह निश्चित रूप से सच है कि सीएनएफ और डीएनएफ एक ही सिक्के के दो पहलू हैं।

जब आपको एक संतोषजनक असाइनमेंट ढूंढना होता है, तो DNF स्पष्ट होता है क्योंकि यह आपको अपनी संतोषजनक असाइनमेंट दिखाता है (DNF सैटिसिबिलिटी संबंधित है ), जबकि CNF निहित है क्योंकि यह आपकी आंखों से संतोषजनक संतुष्टि को छिपाने के लिए लपेटता है और हवा देता है (CNF Satisfibility N) पी - सी एम पी एल टी )। हम ऐसी किसी भी प्रक्रिया को नहीं जानते हैं जो किसी भी CNF फॉर्मूले को अनपेक्षित करने के लिए सक्षम है और कुछ इक्विटिबल डीएनएफ फॉर्मूले में शामिल किया गया है, जो तेजी से आकार का नहीं है। यह मेरे पिछले उत्तर का बिंदु था (जिसका उदाहरण घातीय झटका दिखाने के लिए था, हालांकि वास्तव में ऐसा उदाहरण सर्वोत्तम संभव विकल्प नहीं था)।PNPcomplete

इसके विपरीत, जब आपको गलत तरीके से असाइनमेंट ढूंढना होता है, तो CNF स्पष्ट होता है क्योंकि यह प्रकट होता है कि यह आपको गलत तरीके से दिखा रहा है (CNF Falsifiable संबंधित है ), जबकि DNF निहित है क्योंकि यह लपेटता है और हवाओं से आपकी आंखों से गलत कामों को छिपाता है (DNF Falsifibility है एन पी - सी एम पी एल टी )। हम ऐसी किसी भी प्रक्रिया को नहीं जानते हैं जो किसी भी DNF फॉर्मूले को अनफ्रीज करने और उसे समतुल्य बनाने में सक्षम है, जो कि CNF फॉर्मूले के समान है।PNPcomplete

एक छोर पर हमारे पास विरोधाभास हैं, यानी असंतोषजनक सूत्र। विपरीत छोर पर हमारे पास Tautologies, यानी अथाह सूत्र हैं। मध्य में, हमारे पास सूत्र हैं जो संतोषजनक और मिथ्या दोनों हैं।

चरों के साथ किसी भी CNF सूत्र में , लंबाई k का प्रत्येक खंड प्रकट रूप से 2 n - k मिथ्याकरण असाइनमेंट्स को एन्कोड करता है ।nk2nk

के साथ किसी भी DNF सूत्र में चर, लंबाई के हर अवधि कश्मीर manifestedly encodes 2 n - कश्मीर संतोषजनक कार्य।nk2nk

क्लॉज के बिना एक सीएनएफ फॉर्मूला एक टॉटोलॉजी है, क्योंकि इसमें कोई भी गलत काम नहीं है। खाली खंड (जो हर दूसरे खंड को ग्रहण करता है) युक्त CNF सूत्र एक विरोधाभास है, क्योंकि खाली खंड (जिसमें ) इंगित करता है कि सभी 2 n असाइनमेंट मिथ्या हैं। कोई भी अन्य CNF सूत्र या तो एक विरोधाभास है या बीच में उन सूत्रों में से एक है (और यह N P - c o m m p l e t e है जो इन 2 मामलों के बीच अंतर करता है)।k=02nNPcomplete

बिना शर्तों के डीएनएफ फार्मूला एक विरोधाभास है, क्योंकि इसमें कोई संतोषजनक कार्य नहीं है। डीएनएफ फॉर्मूला जिसमें खाली पद (जो हर दूसरे पद को ग्रहण करता है) एक टॉटोलॉजी है, क्योंकि खाली पद (जिसमें ) इंगित करता है कि सभी 2 एन असाइनमेंट संतोषजनक हैं। किसी भी अन्य DNF सूत्र या तो एक टॉटोलॉजी या बीच में उन सूत्रों में से एक है (और यह है एन पी - सी एम पी एल टी इन 2 मामलों के बीच अंतर करना)।k=02nNPcomplete

CNF फॉर्मूले के साथ, ऊपर के 2 मामलों के बीच अंतर करने का मतलब यह बताना है कि क्या सभी फ़ॉल्सिंग असाइनमेंट सामूहिक रूप से क्लॉज़ेस की मौजूदगी में इस तरह से लाए गए हैं कि सभी असाइनमेंट को कवर किया जा सके (जिस स्थिति में फॉर्मूला एक विरोधाभास है, अन्यथा यह संतोषजनक है)।2n

DNF फॉर्मूले के साथ, ऊपर के 2 मामलों के बीच अंतर करने का मतलब यह बताना है कि क्या सभी संतोषजनक असाइनमेंट सामूहिक रूप से शर्तों की उपस्थिति द्वारा लाए गए हैं, इस तरह से सभी असाइनमेंट को कवर करने के लिए (जिस स्थिति में फॉर्मूला एक टेओलॉजी है अन्यथा यह मिथ्या है)।2n

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

इस तरह के कार्य की कठिनाई यह है कि वे सेट अपवर्जन - बहिष्करण फैशन में, बेतहाशा ओवरलैप करते हैं।

इस तरह के अतिव्यापी की उपस्थिति ठीक है जहां गिनती की कठोरता निवास करती है। इसके अलावा, तथ्य यह है कि हम उन सेटों को ओवरलैप करने देते हैं, यही कारण है कि हमें कॉम्पैक्ट फॉर्मूला बनाने की अनुमति देता है जिसका समाधान स्थान फिर भी बहुत बड़ा है।


4

मैंने इन सभी उत्तरों को इस धागे (विशेष रूप से जियोर्जियो कैमरानी के उत्तर) को एक अच्छी तालिका में बदलने का निर्णय लिया है, ताकि एक ही नज़र में द्वंद्व दिखाई दे:

DNFCNFtautology/unfalsifiabilitycoNP-completeP(each clause has a pair of P and ¬P)satisfiabilityP(sat. assignments are explicit)NP-completefalsifiabilityNP-completeP(fals. assignments are explicit)unsatisfiabilityP(each clause has a pair of P and ¬P)coNP-completeconversion to normal form, retaining equivalence()()conversion to normal form, retaining satisfiability()FPconversion to normal form, retaining falsiabilityFP()

()

()()FPNP[1]

प्रश्न का सबसे छोटा उत्तर: DNF के माध्यम से संतोषजनकता (SAT को हल करना) दिखाना केवल उपरोक्त तालिका के अनुसार घातीय समय में किया जा सकता है।


1
"PL सूत्र" क्या है और "NF" का क्या अर्थ है?
जोशुआ ग्रूचो

4
यहाँ कुछ मुद्दे हैं। (1) मुझे लगता है कि "अनफिलिसेबिलिटी" से आपका मतलब है "टॉटोलॉजी"। (2) KNF CNF होना चाहिए।
हक बेनेट

2
A(φ)φφA(φ)φA(φ)

1
(1) "विधेय तर्क" "प्रस्तावक तर्क" होना चाहिए। (2) सामान्य रूपों के लिए रूपांतरण निर्णय की समस्याएं नहीं हैं, लेकिन कार्य समस्याएं (या बल्कि, समस्याओं को खोजें, क्योंकि "सामान्य रूप" अद्वितीय नहीं हैं)। इसलिए, तालिका में दिए गए निर्णय वर्ग अनुचित हैं।
एमिल जेकाबेक

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