वेरिएबल्स पर एक बूलियन सर्किट (जो नॉट, एंड और गेट्स का उपयोग करता है) को देखते हुए , सर्किट द्वारा प्रस्तुत बूलियन फॉर्मूला निकालने का सबसे कुशल तरीका क्या है? क्या इस समस्या के लिए एक पॉलीटाइम एल्गोरिथ्म है?
वेरिएबल्स पर एक बूलियन सर्किट (जो नॉट, एंड और गेट्स का उपयोग करता है) को देखते हुए , सर्किट द्वारा प्रस्तुत बूलियन फॉर्मूला निकालने का सबसे कुशल तरीका क्या है? क्या इस समस्या के लिए एक पॉलीटाइम एल्गोरिथ्म है?
जवाबों:
यदि मैं आपके प्रश्न को सही ढंग से समझता हूं, तो मैं कहूंगा कि आप CIRCUIT-SAT से SAT में मानक कमी का उपयोग कर सकते हैं: प्रत्येक गेट को एक नए चर के रूप में प्रतिनिधित्व करते हैं, और फिर CNF फॉर्म में पूरे सर्किट का प्रतिनिधित्व करते हैं, जिसमें प्रत्येक क्लॉज फॉर्म , जहां नया चर है, और गेट के लिए सूत्र इनपुट्स का प्रतिनिधित्व करने के लिए अन्य फाटकों के लिए चर का उपयोग करके द्वारा दिया गया है। यह एक साधारण ट्रैवर्सल द्वारा किया जा सकता है (रैखिक समय में, जो स्पष्ट रूप से इष्टतम है)।वी φ
उदाहरण के लिए, यदि आपके पास तीन इनपुट, , , और , तो और साथ-साथ और को जोड़ने वाले गेट और उनके आउटपुट को लिंक करने वाला OR गेट, आप गेट्स का प्रतिनिधित्व करने के लिए तीन चर पेश कर सकते हैं- , , और क्रमश: और करने के लिए सूत्र को फिर से लिखनेध्यान दें कि आउटपुट चर स्पष्ट रूप से शामिल है।एक्स 2 एक्स 3 एक्स 1 एक्स 2 एक्स 2 एक्स 3 v 1 वी 2 वी 3 ( v 1 ↔ ( एक्स 1 ∧ एक्स 2 ) ) ∧ ( वी 2 ↔ ( एक्स 2 ∧ एक्स 3 ) ) ∧ ( वी 3 ↔ ( v 1 ∨ वी 2 ) ) ∧ वी 3
कॉर्मेन एट अल द्वारा एल्गोरिदम का परिचय । एनपी-पूर्णता पर अध्याय में इस पर विस्तार से बताते हैं।