क्या कोई सिद्धांत है जो श्रेणी सिद्धांत / अमूर्त बीजगणित और कम्प्यूटेशनल जटिलता को जोड़ता है?


18

श्रेणी के सिद्धांत और सार बीजगणित जिस तरह से कार्य करता है उसे अन्य कार्यों के साथ जोड़ा जा सकता है। जटिलता सिद्धांत इस बात से संबंधित है कि किसी फ़ंक्शन की गणना करना कितना कठिन है। यह मेरे लिए अजीब है कि मैंने किसी को भी अध्ययन के इन क्षेत्रों से जोड़कर नहीं देखा, क्योंकि वे इस तरह के प्राकृतिक जोड़े लगते हैं। क्या किसी ने इसे पहले किया है?


एक प्रेरक उदाहरण के रूप में, आइए एक नज़र डालते हैं। यह अच्छी तरह से ज्ञात है कि यदि एक ऑपरेशन एक मोनॉयड है, तो हम ऑपरेशन को समानांतर कर सकते हैं।

हास्केल में उदाहरण के लिए, हम तुच्छ रूप से परिभाषित कर सकते हैं कि इस तरह पूर्णांक पर एक मोनोड है:

instance Monoid Int where
    mempty = 0
    mappend = (+)

अब अगर हम 0 से 999 तक की राशि की गणना करना चाहते हैं, तो हम इसे क्रमिक रूप से कर सकते हैं:

foldl1' (+) [0..999]

या हम इसे समानांतर में कर सकते हैं

mconcat [0..999] -- for simplicity of the code, I'm ignoring that this doesn't *actually* run in parallel

लेकिन इस मोनॉइड को समानांतर करने से ही समझ में आता है क्योंकि मैपेंड निरंतर समय में चलता है। अगर ऐसा नहीं होता तो क्या होता? उदाहरण के लिए, सूची वे मोनॉयड हैं जहां मैपेंड अनिश्चित समय (या स्थान!) नहीं चलाते हैं। मैं यह अनुमान लगा रहा हूं कि हास्केल में कोई डिफ़ॉल्ट समानांतर mconcat फ़ंक्शन क्यों नहीं है। सबसे अच्छा कार्यान्वयन मोनॉइड की जटिलता पर निर्भर करता है।


ऐसा लगता है कि इन दो monoids के बीच अंतर का वर्णन करने के लिए एक सुविधाजनक तरीका होना चाहिए। फिर हमें इन अंतरों के साथ अपने कोड को एनोटेट करने में सक्षम होना चाहिए और एक मोनोड की जटिलता के आधार पर प्रोग्राम को स्वचालित रूप से उपयोग करने के लिए सबसे अच्छा एल्गोरिदम चुनना चाहिए।


1
हास्केल में टाइप इंटेगर मल्टी-सटीक पूर्णांक है, और स्वाभाविक रूप से उन पर जोड़ की समय जटिलता स्वाभाविक रूप से इनपुट पूर्णांक की लंबाई पर निर्भर करती है, इसलिए यह कहना भ्रामक है कि इंटेगर के लिए आपके मोनॉयड उदाहरण में मैप निरंतर समय में चलता है।
त्सुयोशी इटो

@TsuyoshiIto आप सही हैं, मेरा इरादा इंट का उपयोग करने का था। फिक्स्ड।
माइक इज्बिकि

क्या आपने यह प्रश्न देखा है ?
केवह

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

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

जवाबों:


12

[कम्प्यूटेशनल जटिलता और श्रेणी सिद्धांत] ऐसे प्राकृतिक जोड़े की तरह लगते हैं।

एक शोध क्षेत्र के रूप में कम्प्यूटेशनल जटिलता की प्रमुखता को देखते हुए, अगर वे इस तरह के प्राकृतिक बेडफ़्लो थे, तो शायद किसी ने पहले ही कनेक्शन निकाल लिया होगा?

जंगली अटकलें। मुझे इस बारे में विचारों के साथ पाठक का मनोरंजन करने दें कि कम्प्यूटेशनल जटिलता का एक श्रेणीबद्ध प्रतिपादन कठिन क्यों है। तर्कपूर्ण रूप से, श्रेणी सिद्धांत में प्रमुख अवधारणा क्लस्टर सार्वभौमिक निर्माणों / गुणों (ट्रांसफार्मर, प्राकृतिक परिवर्तन, सहायक और इतने पर संबंधित उपकरण के साथ) के आसपास केंद्रित है। यदि हम दिखा सकते हैं कि गणितीय निर्माण में एक सार्वभौमिक संपत्ति है, जो बहुत अधिक अंतर्दृष्टि देती है। इसलिए यदि हम कम्प्यूटेशनल जटिलता के लिए एक श्रेणीबद्ध दृष्टिकोण चाहते थे, तो हमें एक सुविधाजनक श्रेणी खोजने की आवश्यकता होगी और उस श्रेणी का उपयोग करके सार्वभौमिक निर्माणों द्वारा जटिलता सिद्धांत (जैसे लॉगस्पैस या एनपी-कठोरता) की प्रमुख अवधारणाओं को प्रदर्शित करना होगा। यह अभी तक नहीं किया गया है, और मुझे लगता है कि ऐसा इसलिए है क्योंकि यह वास्तव में एक कठिन समस्या है।

टी=टी1टी2टी3टीमैं,1 है । इसके बजाय, हम उनके दो घटकों को अलग-अलग निर्दिष्ट करके टीएम का निर्माण करते हैं: नियंत्रण (एक एफएसएम) और टेप। न तो नियंत्रण और न ही टेप में खुद को अच्छा बीजगणित होता है।

पहले टेपों को देखते हैं। टेपों की रचना करने के लिए कुछ प्राकृतिक तरीके हैं, जिनमें से कोई भी टीएम के एक संरचना विवरण के लिए काम नहीं करता है।

  • उन्हें एक साथ जोड़कर क्रमबद्ध जोड़ की तरह। यह सही धारणा नहीं है, क्योंकि टेप अनंत हैं और उन्हें एक साथ जोड़कर क्रमिक जोड़ के रूप में हम एक डबल अनंत वस्तु प्राप्त करते हैं जो परिमित संगणना से परे जाती है, जिससे अनंत संगणना / अतिपरिवर्तन होता है, जो गणितीय के रूप में दिलचस्प है या इसके अनुरूप नहीं है व्यवहार्य संगणना।

  • उन्हें समानांतर में चिपकाएं , जैसे दो 3-हेड मशीन 6-हेड मशीन में बदल जाती हैं। यह हमें नहीं बताता कि घटक मशीनें एक दूसरे के साथ कैसे संपर्क करती हैं।

  • इंटरलेव टेप। इस दृष्टिकोण के साथ एक समस्या यह है कि यह स्पष्ट नहीं है कि विहित इंटरलेविंग क्या हो सकती है, यदि कोई हो। इसके अलावा, इंटरलेयिंग मौजूदा नियंत्रण को 'भ्रमित' करेगा, जो एक विशिष्ट टेप लेआउट की ओर बारीक रूप से टिक जाता है। इसलिए हम सीधे नियंत्रण का पुन: उपयोग नहीं कर सकते।

π

सब सब में, हम काफी दूर हैं कम्प्यूटेशनल जटिलता के एक पर्याप्त बीजीय / श्रेणीबद्ध उपचार, और हम वहाँ पाने के लिए कई वैचारिक अग्रिमों की आवश्यकता होगी।


λπλπαλπ


मैं कहूंगा कि ट्यूरिंग मशीनों की संरचना काफी स्पष्ट है जब आप उनके बारे में सार कंप्यूटर प्रोग्राम के रूप में सोचते हैं। कार्यक्रमों की रचना करने का प्राकृतिक तरीका एक को दूसरे के उपप्रोग्राम के रूप में कॉल करना है। आम तौर पर, प्रत्येक कार्यक्रम परिमित समय और स्थान फ़ंक्शन में एक संगणनीय होता है, जो कुछ स्वरूपित इनपुट को स्वीकार करता है और दूसरे स्वरूपित स्ट्रिंग को आउटपुट करता है, जिसे दूसरे फ़ंक्शन में खिलाया जा सकता है। यह संभव है कि कुछ कचरा इनपुट के परिणामस्वरूप कचरा आउटपुट हो जाएगा या कुछ फ़ंक्शन आवंटित समय और स्थान पर निष्पादित करने में विफल रहता है, जिस स्थिति में पूरा कार्यक्रम क्रैश हो जाता है।
एंटोन Fetisov

जाहिर है कि इस तरह से कोई भी कार्यक्रम संभव नहीं है, जो स्वाभाविक रूप से हमें टीएम की श्रेणी में ले जाता है। यह भी संभावना है कि किसी को समय-स्थान असीमित टीएम की धारणा को छोड़ देना चाहिए, जो वैसे भी व्यावहारिक रूप से संभव नहीं है। क्या कुछ प्रकाशित धारणा है जो इस संरचना को पकड़ती है?
एंटोन Fetisov

@AntonFetisov क्या आपने विवरण लिखने की कोशिश की है? यह सुंदर नहीं है।
मार्टिन बर्गर

2

औपचारिक भाषाओं के बीच समरूपता के बारे में यह उत्तर औपचारिक भाषाओं और जटिलता वर्गों के बीच समानता और समतावाद की संभावित धारणाओं की जांच करने के लिए श्रेणी सिद्धांत से धारणाओं के सिद्धांत से बीजगणितीय परिणामों को जोड़ता है।

इन परिणामों की मेरी अपनी व्याख्या यह है कि शब्दों में सिंक्रोनाइज़ेशन अंक निर्धारक और असंदिग्ध गैर-नियतात्मक ट्रांसड्यूसर के लिए भिन्न होते हैं, और नियतात्मक आगे और नियतात्मक पिछड़े ट्रांसड्यूसर के बीच भी भिन्न होते हैं। सिंक्रोनाइज़ेशन पॉइंट्स के इस परिप्रेक्ष्य को लेने से इन परिणामों को विज़ुअली पुशडाउन भाषाओं से कनेक्ट करने की अनुमति मिलती है, और यह सवाल उठता है कि क्या कॉल और रिटर्न के अलावा उन्हें साधारण विभाजक (जैसे स्पेस या अल्पविराम) पर भी विचार करना चाहिए। (मेरा अनुमान है कि एक संयुक्त रिटर्न + कॉल के द्वारा एक विभाजक का अनुकरण किया जा सकता है, लेकिन क्योंकि उन लोगों को एक के बजाय दो प्रतीकों की आवश्यकता होती है, यह मेरे लिए स्पष्ट नहीं है कि क्या यह पर्याप्त है। विज़ुअली भाषाएं भी हो सकती हैं जिनमें केवल विभाजक हैं, लेकिन नहीं कॉल या प्रतीक वापस करें।)


मैंने इसे एक समुदाय विकी बना दिया, क्योंकि यह मेरे स्वयं के प्रश्न के अपने उत्तर से जोड़ता है, जो निश्चित रूप से महान नहीं है। मैं अपने पसंदीदा "सफाई" कर रहा था, और बस इस छोटे से उत्तर को लिखना आगे बढ़ने का सबसे आसान तरीका था।
थॉमस क्लिम्पेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.