यदि आप मानते हैं कि -calculus कार्यात्मक प्रोग्रामिंग भाषाओं का एक अच्छा मॉडल है, तो कोई सोच सकता है: -calculus में समय-जटिलता की एक साधारण सी धारणा है: बस कटौती कदमों की संख्या गिनें _ ।λλβ(λx.M)N→M[N/x]
लेकिन क्या यह एक अच्छी जटिलता उपाय है?
इस प्रश्न का उत्तर देने के लिए, हमें स्पष्ट करना चाहिए कि पहली जगह में जटिलता माप से हमारा क्या मतलब है। एक अच्छा जवाब स्लॉट और वैन एम्ड बोस थीसिस द्वारा दिया गया है : किसी भी अच्छी जटिलता के माप में ट्यूरिंग मशीनों का उपयोग करके परिभाषित समय-जटिलता की विहित धारणा के लिए एक बहुपद संबंध होना चाहिए। दूसरे शब्दों में, वहाँ एक 'उचित' एन्कोडिंग होना चाहिए से ट्यूरिंग मशीन, इस तरह के कुछ बहुपद के लिए करने के लिए -calculus शर्तों , यह मामला है कि प्रत्येक शब्द के लिए आकार की: में मान को कम करता है -reduction चरण ठीक उसी समय जब मान में घट जाता हैtr(.)λpM|M|Mp(|M|) βtr(M)p(|tr(M)|) ट्यूरिंग मशीन के चरण।
एक लंबे समय के लिए, यह स्पष्ट नहीं था कि क्या इसे λ-पथरी में प्राप्त किया जा सकता है। मुख्य समस्याएं निम्नलिखित हैं।
- ऐसे शब्द हैं जो सामान्य रूपों (चरणों की एक बहुपद संख्या) में उत्पन्न होते हैं जो घातीय आकार के होते हैं। यहां तक कि सामान्य रूपों को लिखते समय घातीय समय लगता है।
- चुनी गई कटौती की रणनीति एक महत्वपूर्ण भूमिका निभाती है। उदाहरण के लिए, ऐसे शब्दों का एक परिवार मौजूद है, जो समानांतर steps-चरणों की एक बहुपद संख्या में घटता है ( इष्टतम λ- कमी के अर्थ में ), लेकिन जिनकी जटिलता गैर-प्राथमिक है (मतलब बदतर तब घातीय)।
बी। अकैटोली और यू। डल लागो द्वारा " बीटा रिडक्शन इनवेरिएंट, एक्चुअली " पेपर एक 'उचित' एन्कोडिंग दिखा कर समस्या को स्पष्ट करता है जो बहुपदीय समय के कार्यों की जटिलता वर्ग पी को सुरक्षित रखता है, जो सबसे बाहरी कॉल-बाय-नेम कटौती को मानता है। । प्रमुख अंतर्दृष्टि यह है कि घातीय झटका केवल 'निर्बाध' कारणों से हो सकता है जिसे उचित बंटवारे से हराया जा सकता है। दूसरे शब्दों में, क्लास P एक ही है कि क्या आप इसे ट्यूरिंग मशीन स्टेप्स या (सबसे बाहरी-बाहरी) -निर्धारण की गणना करते हैं ।β
मुझे यकीन नहीं है कि अन्य मूल्यांकन रणनीतियों के लिए स्थिति क्या है। मुझे पता नहीं है कि अंतरिक्ष जटिलता के लिए एक समान कार्यक्रम किया गया है।