कड़ाई से कम्प्यूटेशनल समस्या कैसे तैयार करें?


20

मैं अक्सर ऐसे लोगों के साथ बातचीत करता हूं जो कम्प्यूटेशनल समस्या (या इसकी जटिलता) के लिए एक एल्गोरिथ्म के लिए पूछना चाहते हैं, लेकिन वे इसे हमारे (कंप्यूटर वैज्ञानिकों) को समझने के लिए एक कठोर तरीके से व्यक्त नहीं करते हैं।

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

क्या कोई अच्छी पुस्तक (या कोई अन्य संसाधन) है जहां सीएस का न्यूनतम ज्ञान रखने वाला व्यक्ति सीख सकता है कि कंप्यूटर वैज्ञानिकों के लिए समझ में आने वाले कठोर तरीके से कम्प्यूटेशनल समस्याओं को कैसे सूत्रबद्ध किया जा सकता है?

अधिमानतः पुस्तक में विभिन्न डोमेन और वास्तविक दुनिया उदाहरणों से कड़ाई से कम्प्यूटेशनल समस्याओं को तैयार करने के कई उदाहरण होने चाहिए।


स्पष्टीकरण

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


2
मुझे लगता है कि यह एक अच्छा सवाल है, लेकिन मुझे नहीं पता कि क्या कोई अच्छा जवाब है। मुझे ऐसा लगता है कि यह पूछने का एक प्रकार है "क्या कोई ऐसा तरीका है जो हम किसी ऐसे व्यक्ति को सिखा सकते हैं जो कंप्यूटर वैज्ञानिक की तरह सोचने वाला नहीं है?" और इसका जवाब है "हाँ, उन्हें एक कंप्यूटर वैज्ञानिक बनाओ।" उस ने कहा, कुछ सॉफ्टवेयर इंजीनियरिंग शोधकर्ताओं ने इस तरह से सामान पर अध्ययन किया हो सकता है।
jmite

3
इसके अलावा, मुझे लगता है कि यह एक मामले के लिए उपयोग के मामले हैं। अगर किसी को समझ में नहीं आता है कि कैसे अपनी समस्या को ठीक तरह से तैयार किया जाए, तो कई परिदृश्यों की सूची दी जाएगी कि वे क्या करने के लिए दिए गए प्रोग्राम को पसंद करेंगे, और प्रत्येक मामले में अपेक्षित व्यवहार। प्रोग्रामर तब से एक विनिर्देश विकसित करता है। उस ने कहा, मैं एक सिद्धांत व्यक्ति हूं, इंजीनियर नहीं, इसलिए अगर मैं गलत हूं, तो मुझे सुधारने के लिए स्वतंत्र महसूस करें।
jmite

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

1
उस ने कहा, मैं यह सोच रहा हूं कि यह सोचने का एक निश्चित तरीका है जिसे आसानी से हासिल नहीं किया जाता है, खासकर वयस्कों द्वारा। मैंने लोगों को तकनीकी चीजों को छोड़ने और रोजमर्रा की वस्तुओं के संदर्भ में यथासंभव समस्या को समझाने की कोशिश की है। समस्या यह है, वे आमतौर पर कुछ बाधा को भूल जाएंगे, या वे इसे एक ऑपरेशन की तरह आवाज करेंगे जो कि उनके वास्तविक सिस्टम में O (N) है O (1), और इसी तरह। इसलिए मैं गलत समस्या की कठोर परिभाषा के बहुत करीब से समाप्त करूंगा।
सविंजा

2
एक तरह से, जो पूछा गया है वह विरोधाभासी है, क्योंकि समस्याओं को कड़ाई से तैयार करना महत्वपूर्ण सीखा कौशल में से एक है, जो आम लोगों को विशेषज्ञों / पेशेवरों से अलग करता है ...
vzn

जवाबों:


3

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

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


धन्यवाद vzn, ये गणित लिखने के बारे में अच्छे संसाधन हैं लेकिन मुझे कुछ अलग नहीं लग रहा है। यह मुद्दा गणित में अच्छी तरह से नहीं लिख रहा है, लेकिन लोगों के लिए सीखने के लिए संसाधन कम्प्यूटेशनल समस्याओं को कैसे स्पष्ट रूप से तैयार करते हैं, इसलिए एक विशेषज्ञ यह समझ सकता है कि सवाल पूछने वाला व्यक्ति क्या ढूंढ रहा है और उनकी मदद करें।
केव

YW; आप कहते हैं कि वे दो अलग चीजें हैं, और शब्दों / वाक्यांशों में वे हैं, लेकिन मैं कहता हूं कि वे [एक सॉफ्टवेयर इंजीनियरिंग वाक्यांश उधार लेने के लिए] "कसकर युग्मित"
vzn

3

बस इस अच्छे / साफ-सुथरे, असामान्य, अपेक्षाकृत नए / अज्ञात रेफरी को उनके होम पेज पर Emmanuele Viola , prof (T) CS द्वारा नॉर्थईस्टर्न यूनिवर्सिटी में चलाया गया ) जो कि अन्यत्र अप्रकाशित है। 41pp। यह बहुत ही बुनियादी गणितीय अवधारणाओं के साथ शुरू होता है, जैसे निहितार्थ और फिर सभी तरह के उन्नत विषयों जैसे Erdős-Szekeres प्रमेय और रैमसे सिद्धांत में होता है


0

रॉबर्ट लॉफ से पुस्तक एल्गोरिदम और डेटा संरचनाएं खरीदें।

इस किताब पर, हर एल्गोरिथ्म को एक कहानी के रूप में समझाया गया है, एक कविता की तरह। फिर, उस व्यक्ति को अल्गोरिद्म का Lafore संस्करण और बाद में CLRS संस्करण दें।

शायद इस तरह, व्यक्ति को सहज ज्ञान युक्त विवरण से कठोर लोगों में अनुवाद करने की भावना मिलेगी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.