एमिल जेरबेक की टिप्पणी एक अच्छा सारांश है, लेकिन मैं यह बताना चाहता था कि स्पष्ट परिभाषाओं के साथ अन्य वर्ग हैं जो समान अवधारणा को पकड़ते हैं, और इन सभी चीजों के बीच के संबंध को स्पष्ट करते हैं।
[चेतावनी: जबकि मेरा मानना है कि मैंने परिभाषाओं को सही पाया है, नीचे दी गई कुछ चीजें मेरी व्यक्तिगत प्राथमिकताओं को दर्शाती हैं - मैंने यह स्पष्ट करने की कोशिश की है कि वह कहाँ था।]
नियतात्मक दुनिया में, एक फ़ंक्शन क्लास केवल फ़ंक्शन का एक संग्रह है (सामान्य रूप से, "फ़ंक्शन" शब्द का गणितीय अर्थ, अर्थात, एक नक्शा )। कभी-कभी हम "आंशिक कार्यों" की अनुमति देना चाहते हैं, जिसका आउटपुट निश्चित इनपुट के लिए "अपरिभाषित" है। (समान रूप से, ऐसे फ़ंक्शन जो इन सबके बजाय सबसेट पर परिभाषित किए गए हैं ।)Σ *Σ∗→Σ∗Σ∗
दुर्भाग्य से, लिए दो अलग-अलग परिभाषाएँ हैं , जो तैर रहे हैं, और जहाँ तक मैं बता सकता हूँ कि वे समतुल्य नहीं हैं (हालाँकि वे "नैतिक रूप से समान" हैं)।FP
- एफ पी एफ एन पी , टी एफ एन पीFP (परिभाषा 1) उन कार्यों का वर्ग है जिन्हें बहुपद-काल में गणना की जा सकती है। जब भी आप और इसके संदर्भ में देखते हैं, जहां लोग बारे में बात कर रहे हैं , यह मेरी परिभाषा है।FPFNP,TFNP
Nondeterministic दुनिया में चीजें थोड़ी मज़ेदार होती हैं। वहां, "आंशिक, बहु-मूल्यवान कार्यों" की अनुमति देना सुविधाजनक है। इस तरह की बात को एक द्विआधारी संबंध भी कहा जाता है, जो कि, का सबसेट होगा । लेकिन इन चीजों के बारे में सोचने के लिए जटिलता के दृष्टिकोण से यह अक्सर "नोंडेथर्मिनिन फ़ंक्शंस" के रूप में दार्शनिक और मानसिक रूप से उपयोगी है। मुझे लगता है कि इनमें से कई परिभाषाएँ निम्नलिखित वर्गों द्वारा स्पष्ट की गई हैं (जिनकी परिभाषा पूरी तरह से मानकीकृत है, यदि बहुत अच्छी तरह से ज्ञात नहीं हैं):Σ∗×Σ∗
x x x { ( x , y ) : y इनपुट x पर गणना की कुछ शाखा द्वारा आउटपुट है }NPMV : बहुपद समय में एक nondeterministic मशीन द्वारा गणना की जाने वाली "आंशिक, बहु-मूल्यवान कार्यों" की श्रेणी। इसका मतलब यह है कि एक पॉली-टाइम नॉनडेर्मिनिस्टिक मशीन है, और इनपुट पर, प्रत्येक nondeterministic शाखा पर यह स्वीकार करने और कुछ आउटपुट बनाने, या अस्वीकार करने और कोई आउटपुट नहीं करने का विकल्प चुन सकता है। इनपुट पर "बहु-मूल्यवान" आउटपुट तब इनपुट के रूप में दिए जाने पर सभी nondeterministic शाखाओं पर सभी आउटपुट का सेट है । ध्यान दें कि यह सेट खाली हो सकता है, इसलिए "बहु-मूल्यवान फ़ंक्शन" के रूप में यह केवल आंशिक हो सकता है। यदि हम इसे द्विआधारी संबंधों के संदर्भ में सोचते हैं, तो यह संबंध मेल खाता है ।xxx{(x,y):y is output by some branch of the computation on input x}
एन पी एम वी एक्सNPMVt : में कुल "कार्यों" , कि है, पर हर इनपुट , कम से कम एक शाखा को स्वीकार करता है (और इसलिए एक आउटपुट, बनाता परिभाषा के द्वारा)NPMVx
एन पी एम वी Σ *NPSV : में एकल-मान (संभावित आंशिक) कार्यों । यहाँ कुछ लचीलापन है, हालाँकि, इसमें कई शाखाएँ स्वीकार कर सकती हैं, लेकिन यदि कोई शाखा स्वीकार करती है, तो सभी स्वीकृत शाखाओं को एक ही आउटपुट बनाने की गारंटी दी जानी चाहिए (ताकि यह वास्तव में एकल-मूल्यवान हो)। हालांकि, यह अभी भी संभव है कि कोई भी शाखा स्वीकार नहीं करती है, इसलिए फ़ंक्शन केवल एक "आंशिक फ़ंक्शन" है (यानी सभी पर परिभाषित नहीं है )।NPMVΣ∗
NPSVt : में कुल कार्यों एकल मूल्यवान । ये वास्तव में कार्य हैं, शब्द के सामान्य अर्थ में, । यह उस को देखने के लिए एक बहुत कठिन अभ्यास नहीं है (ऊपर FP के लिए Def 1 का उपयोग करके)।NPSVΣ∗→Σ∗NPSVt=FPNP∩coNP
जब हम संभावित बहु-मूल्यवान कार्यों के बारे में बात करते हैं, तो जटिलता वर्गों के बारे में बात करना वास्तव में किसी भी अधिक उपयोगी नहीं है: बिना शर्त केवल इसलिए कि शामिल नहीं है कोई भी बहु-मूल्यवान "फ़ंक्शन", लेकिन करता है। इसके बजाय, हम "c- " के बारे में बात करते हैं, अर्थ । A (संभावित रूप से आंशिक, बहु-मूल्यवान) फ़ंक्शन एक परिष्कृत करता है (संभवतः आंशिक बहु-मूल्यवान) फ़ंक्शन यदि: (1) प्रत्येक इनपुट लिए जिसके लिए कुछ आउटपुट बनाता है, तो और (2) के आउटपुट हमेशा के आउटपुट का एक सबसेट हैNPMV⊈NPSVNPSVNPMV⊆cfgxgffg । उचित प्रश्न यह है कि क्या प्रत्येक "फ़ंक्शन" में एक परिशोधन है। यदि हां, तो हम ।NPMVNPSVNPMV⊆cNPSV
- PF (थोड़ा कम मानक) पॉली-टाइम में गणना योग्य (संभावित आंशिक) कार्यों की श्रेणी है। अर्थात्, एक फ़ंक्शन ( ) यदि कोई पॉली-टाइम नियतात्मक मशीन है जैसे कि, इनपुट पर पर मशीन आउटपुट , और इनपुट्स पर मशीन कोई आउटपुट नहीं देती है (/ rejects / कहते हैं "no" / हालाँकि आप इसे वाक्यांश करना चाहते हैं)।f:D→Σ∗D⊆Σ∗PFx∈Df(x)x∉D
FNP "फ़ंक्शन समस्याओं" (कार्यों के एक वर्ग के बजाय) की एक श्रेणी है। मैं एक "संबंधपरक वर्ग" भी कहूंगा , लेकिन वास्तव में जो भी शब्द आप इसका वर्णन करने के लिए उपयोग करते हैं, उसके बाद आपको खुद को स्पष्ट करना होगा, यही कारण है कि मैं इस परिभाषा में विशेष रूप से आंशिक नहीं हूं। किसी भी द्विआधारी संबंध के लिए एक संबद्ध "फ़ंक्शन समस्या है।" एक कार्य समस्या क्या है? मेरे पास भाषा / कार्य / संबंध के लिए एक साफ गणितीय परिभाषा नहीं है; बल्कि, यह परिभाषित करता है कि एक वैध समाधान क्या है: से जुड़ी फ़ंक्शन समस्या का एक वैध समाधान कोई भी (संभावित आंशिक) फ़ंक्शन जैसे कि यदिFNPR⊆Σ∗×Σ∗Rf(∃y)[R(x,y)]f ऐसे किसी भी आउटपुट देता है , और अन्यथा कोई आउटपुट नहीं देता है। संबंधों से जुड़े समारोह समस्याओं का वर्ग है ऐसी है कि (जब जोड़े की एक भाषा के रूप में माना जाता है) और पी-संतुलित है। So कार्यों का एक वर्ग नहीं है, और न ही भाषाओं का एक वर्ग, लेकिन "फ़ंक्शन समस्याओं," जहां "समस्या" का एक वर्ग मोटे तौर पर परिभाषित किया गया है कि इसे हल करने के लिए इसका क्या अर्थ है।yfFNPRR∈PFNP
TFNP तब में फ़ंक्शन समस्याओं का वर्ग है - एक संबंध से ऊपर के रूप में परिभाषित किया गया है - ऐसा कुल है, इस अर्थ में कि हर लिए एक मौजूद है जैसे ।FNPRRxyR(x,y)
"अगर हर ( ।, ) फंक्शन प्रॉब्लम जैसी चीजों को लिखना नहीं पड़ता है , तो ऊपर के अनुसार ( ।), । परिभाषा), तो ... "इस संदर्भ में कोई भी की परिभाषा 2 का उपयोग करता है , जो है:FNPTFNPPFFPFP
- FP (परिभाषा 2) में फ़ंक्शन समस्याओं का वर्ग है, जिसमें पॉली-टाइम समाधान होता है। कोई यह मान सकता है कि यहाँ समाधान (= फ़ंक्शन) एक विशेष स्ट्रिंग उठाकर कुल है जो किसी भी लिए मान्य नहीं है , और फ़ंक्शन आउटपुट होने पर अन्यथा कोई मान्य नहीं होगा । (यदि आवश्यक हो, तो हम प्रत्येक 1 के साथ प्रत्येक को prepending द्वारा संबंध को संशोधित कर सकते हैं , और फिर को स्ट्रिंग 0 के रूप में ले सकते हैं; इसमें कुछ भी शामिल नहीं है)।FNPy0yxy0yRyy0
यहाँ बताया गया है कि ये विभिन्न परिभाषाएँ एक-दूसरे से कैसे संबंधित हैं, (परिभाषा 2, जिसे आपको मान लेना चाहिए क्योंकि यह एक संदर्भ में है जहाँ इसकी तुलना ) के साथ की जा रही है। to । (def 2), (def 1) के बराबर है ।FNP⊆FPFNPNPMV⊆cPFTFNP⊆FPNPMVt⊆cFP