एक बूलियन सर्किट को बूलियन सूत्र में बदलने की जटिलता


10

वेरिएबल्स पर एक बूलियन सर्किट (जो नॉट, एंड और गेट्स का उपयोग करता है) को देखते हुए , सर्किट द्वारा प्रस्तुत बूलियन फॉर्मूला निकालने का सबसे कुशल तरीका क्या है? क्या इस समस्या के लिए एक पॉलीटाइम एल्गोरिथ्म है?Cn


सर्किट के किस प्रकार के द्वार हैं?
लेव Reyzin

1
फैन-इन या फैन-आउट पर क्या प्रतिबंध है? यदि यह सिर्फ एकल प्रशंसक-आउट है तो यह तुच्छ है: सूत्र के लिए सर्किट अनिवार्य रूप से एएसटी है।
मार्क रीटब्लाट

1
बंधे हुए पंखे-सामान्य होने के लिए। लेकिन सटीक होने के लिए, AND और OR को प्रशंसक कहते हैं। 2. साहित्य में कई संदर्भों में, मुझे लगता है कि एक सर्किट और सूत्रों का परस्पर विनिमय से उपयोग किया जाता है, लेकिन मैं यह जानना चाहता हूं कि क्या सर्किट को सूत्र में बदलना आसान है। मुसीबत।
निखिल

6
सामान्य तौर पर आप उम्मीद करेंगे कि कोई भी समान सूत्र छोटे सर्किट के लिए भी घातीय आकार का हो सकता है।
क्रिस्टोफर अर्न्सफेल्ट हैनसेन

4
बहुपद आकार के सूत्र सर्किट के बराबर होते हैं । Polysize सर्किट ( Poly ) को समतुल्य नहीं जाना जाता है । सूत्रों और सर्किटों का उपयोग आमतौर पर एक दूसरे के साथ किया जाता है, जब सर्किट की गहराई बंधी होती है। पी / पी एल वाई एन सी 1NC1 P/polyNC1
केवह

जवाबों:


8

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

उदाहरण के लिए, यदि आपके पास तीन इनपुट, , , और , तो और साथ-साथ और को जोड़ने वाले गेट और उनके आउटपुट को लिंक करने वाला OR गेट, आप गेट्स का प्रतिनिधित्व करने के लिए तीन चर पेश कर सकते हैं- , , और क्रमश: और करने के लिए सूत्र को फिर से लिखनेध्यान दें कि आउटपुट चर स्पष्ट रूप से शामिल है।एक्स 2 एक्स 3 एक्स 1 एक्स 2 एक्स 2 एक्स 3 v 1 वी 2 वी 3 ( v 1( एक्स 1एक्स 2 ) ) ( वी 2( एक्स 2एक्स 3 ) ) ( वी 3( v 1वी 2 ) ) वी 3x1x2x3x1x2x2x3v1v2v3

(v1(x1x2))(v2(x2x3))(v3(v1v2))v3.

कॉर्मेन एट अल द्वारा एल्गोरिदम का परिचय । एनपी-पूर्णता पर अध्याय में इस पर विस्तार से बताते हैं।


क्या CIRCUIT-SAT फैन-आउट 1 गेट का उपयोग नहीं करता है?
मार्क रीटब्लाट

1
ज़रूर- लेकिन जहाँ तक मैं देख सकता हूँ, यह कमी / परिवर्तन को प्रभावित नहीं करता है। प्रत्येक आउटपुट को एक नए चर के रूप में प्रस्तुत करने के विचार का अर्थ है कि आप प्रत्येक आउटपुट को कई बार इनपुट के रूप में पुन: उपयोग कर सकते हैं (मनमाने ढंग से बड़े प्रशंसक-आउट के लिए)। दूसरे शब्दों में, इस उत्तर में दिए गए समाधान को मनमाने सर्किट के लिए काम करना चाहिए।
मैग्नस लाइ हेटलैंड

3
मेरा अनुमान होगा कि यह वह नहीं है जो मांगा जा रहा है। मुझे लगता है कि सर्किट के रूप में वैरिएबल के एक ही सेट पर एक सूत्र बनाना है।
क्रिस्टोफर अर्नसेफेल्ट हैनसेन

1
हम्म। हां, आप शायद सही हैं। नए चर का परिचय CIRCUIT-SAT में CNF-SAT मामले से है, लेकिन अधिक सामान्य सेटिंग में नहीं - मैं सहमत हूं।
मैग्नस लाइ हेटलैंड

1
@ क्रिस्तोफर: मेरा वही मतलब था जो आपने कहा था। एक सर्किट को को देखते हुए मैं चाहता हूं कि सूत्र सर्किट के लिए सटीक बूलियन अभिव्यक्ति हो। x 1 , x 2 , ... , एक्स एन φ ( एक्स 1 , x 2 , ... , x n )Cx1,x2,,xnϕ(x1,x2,,xn)
निखिल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.