सर्किट (कंप्यूटर विज्ञान)

सैद्धांतिक कंप्यूटर विज्ञान में, एक सर्किट गणना का एक मॉडल है जिसमें इनपुट मान गेट्स के अनुक्रम के माध्यम से आगे बढ़ते हैं, जिनमें से प्रत्येक एक फ़ंक्शन (कंप्यूटर विज्ञान) की गणना करता है। इस तरह के सर्किट बूलियन सर्किट का एक सामान्यीकरण और डिजिटल तर्क  सर्किट के लिए एक गणितीय मॉडल प्रदान करते हैं। सर्किट को उन गेट्स द्वारा परिभाषित किया जाता है जिनमें वे होते हैं और वे मान जो गेट्स उत्पन्न कर सकते हैं। उदाहरण के लिए, बूलियन सर्किट में मान बूलियन डेटा प्रकार के मान हैं, और सर्किट में लॉजिकल संयोजन, तार्किक संयोजन और  तार्किक निषेध  गेट्स शामिल हैं। एक पूर्णांक सर्किट में मान पूर्णांकों के सेट (गणित) होते हैं और गेट्स  संघ स्थापित करें,  चौराहा सेट करें , और सेट पूरक, साथ ही साथ अंकगणितीय संचालन जोड़ और गुणन की गणना करते हैं।

औपचारिक परिभाषा
एक सर्किट एक ट्रिपल है $$(M, L, G)$$, कहाँ
 * $$M$$ मूल्यों का एक समूह है,
 * $$L$$ गेट लेबल का एक सेट है, जिनमें से प्रत्येक एक फ़ंक्शन है $$M^{i}$$ को $$M$$ कुछ गैर-ऋणात्मक पूर्णांक के लिए $$i$$ (कहाँ $$i$$ गेट में इनपुट की संख्या का प्रतिनिधित्व करता है), और
 * $$G$$ से लेबल के साथ एक लेबल वाला ग्राफ निर्देशित चक्रीय ग्राफ है $$L$$.

ग्राफ के शीर्षों को गेट्स कहा जाता है। प्रत्येक गेट के लिए $$g$$ इन-डिग्री का $$i$$, द्वार $$g$$ एक तत्व द्वारा लेबल किया जा सकता है $$\ell$$ का $$L$$ अगर और केवल अगर $$\ell$$ पर परिभाषित किया गया है $$M^{i}.$$

शब्दावली
इन-डिग्री 0 के गेट्स को इनपुट्स या लीव्स कहा जाता है। आउट-डिग्री 0 के गेट्स को आउटपुट कहा जाता है। अगर गेट से कोई किनारा है $$g$$ फाटक के पास $$h$$ ग्राफ में $$G$$ तब $$h$$ की सन्तान कहलाती है $$g$$. हमें लगता है कि ग्राफ के शीर्ष पर एक क्रम है, इसलिए हम इसके बारे में बात कर सकते हैं $$k$$एक गेट का बच्चा जब $$k$$ गेट के आउट-डिग्री से कम है।

सर्किट का आकार सर्किट के नोड्स की संख्या है। गेट की गहराई $$g$$ में सबसे लंबे पथ की लंबाई है $$G$$ पर शुरू $$g$$ एक आउटपुट गेट तक। विशेष रूप से, आउट-डिग्री 0 के द्वार केवल गहराई के द्वार हैं। एक सर्किट की गहराई किसी भी द्वार की अधिकतम गहराई है।

स्तर $$i$$गहराई के सभी द्वारों का समुच्चय है $$i$$. एक समतल सर्किट एक ऐसा सर्किट होता है जिसमें किनारे गहराई के द्वार होते हैं $$i$$ गहराई के द्वार से ही आता है $$i + 1$$ या इनपुट्स से। दूसरे शब्दों में, किनारे केवल सर्किट के आसन्न स्तरों के बीच मौजूद होते हैं। समतल सर्किट की चौड़ाई किसी भी स्तर का अधिकतम आकार है।

मूल्यांकन
सटीक मान $$V(g)$$ एक द्वार का $$g$$ डिग्री के साथ $$i$$ और लेबल $$l$$ सभी फाटकों के लिए पुनरावर्ती रूप से परिभाषित किया गया है $$g$$.

V(g) = \begin{cases} l & \text{if } g \text{ is an input} \\ l(V(g_1), \dotsc, V(g_i)) & \text{otherwise,} \end{cases} $$ जहां प्रत्येक $$g_j$$ का अभिभावक है $$g$$.

सर्किट का मान प्रत्येक आउटपुट गेट का मान है।

फ़ंक्शन के रूप में सर्किट
पत्तियों के लेबल वेरिएबल्स भी हो सकते हैं जो मान लेते हैं $$M$$. अगर वहाँ $$n$$ पत्तियां, तो सर्किट को एक फ़ंक्शन के रूप में देखा जा सकता है $$M^{n}$$ को $$M$$. सर्किट के परिवार पर विचार करना सामान्य है $$(C_n)_{n\in\mathbb{N}}$$, पूर्णांकों द्वारा अनुक्रमित सर्किट का एक क्रम जहां सर्किट $$C_n$$ है $$n$$ चर। सर्किट के परिवारों को इस प्रकार कार्यों के रूप में देखा जा सकता है $$M^{*}$$ को $$M$$.

आकार, गहराई और चौड़ाई की धारणाओं को स्वाभाविक रूप से कार्यों के परिवारों तक बढ़ाया जा सकता है, जिससे कार्य बन जाते हैं $$\mathbb{N}$$ को $$\mathbb{N}$$; उदाहरण के लिए, $$size(n)$$ का आकार है $$n$$परिवार का वें सर्किट।

जटिलता और एल्गोरिथम समस्याएं
किसी विशिष्ट इनपुट पर दिए गए बूलियन सर्किट के आउटपुट की गणना करना एक पी-पूर्ण समस्या है। यदि इनपुट एक पूर्णांक सर्किट है, हालांकि, यह अज्ञात है कि यह समस्या निर्णायक भाषा है या नहीं।

सर्किट जटिलता बूलियन कार्यों को उन सर्किटों के आकार या गहराई के संबंध में वर्गीकृत करने का प्रयास करती है जो उनकी गणना कर सकते हैं।

यह भी देखें

 * अंकगणितीय सर्किट जटिलता
 * बूलियन सर्किट
 * सर्किट जटिलता
 * प्राकृतिक संख्याओं के सेट पर सर्किट
 * जटिलता वर्ग नेकां (जटिलता), एसी (जटिलता) और टीसी (जटिलता)
 * यह कितना घूमता है? और बीक्यूपी