सीएस पेपर में अनुभवजन्य परिणाम


31

मैं CS क्षेत्र में नया हूं और मैंने देखा है कि मैंने जो बहुत से पेपर पढ़े हैं, उनमें कोई अनुभवजन्य परिणाम नहीं हैं (कोई कोड नहीं है, सिर्फ नींबू और प्रमाण हैं)। ऐसा क्यों है? यह मानते हुए कि कंप्यूटर विज्ञान एक विज्ञान है, क्या इसे वैज्ञानिक पद्धति का पालन नहीं करना चाहिए?


26
संक्षिप्त उत्तर यह है कि "कंप्यूटर विज्ञान" कई चीजें हैं। कुछ भाग जैसे (कुछ) एआई वास्तव में विज्ञान हैं। अन्य भाग इंजीनियरिंग हैं, और सैद्धांतिक पक्ष (लागू) गणित है। एचसीआई के हिस्से कला की तरह अधिक हैं। कंप्यूटर विज्ञान एक व्यापक तम्बू है।
एरोन रोथ

6
यदि आपके पास सबूत हैं, तो आपको अनुभवजन्य परिणामों की भी आवश्यकता क्यों है?
आर्यभट्ट

2
@ मॉरन: आप यह कैसे साबित करते हैं कि एक एल्गोरिथ्म लागू किए बिना लागू करने योग्य है?
जुकोका सुमेला

8
सैद्धांतिक सीएस गणितीय भौतिकी के समान प्रतीत होता है जो अनुभवजन्य परिणामों से भी बचता है। यदि आप प्रायोगिक भौतिकी जैसा कुछ चाहते हैं, तो आप सॉफ्टवेयर इंजीनियरिंग, प्रोग्राम वेरिफिकेशन, डेटाबेस सिस्टम्स आदि में शोध देख सकते हैं
यरोस्लाव बुलटोव

4
nitpicking: " वैज्ञानिक विधि"?
केव

जवाबों:


21

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

कंप्यूटर विज्ञान की जड़ें गणित में हैं (उदाहरण के लिए ट्यूरिंग की जीवनी देखें http://en.wikipedia.org/wiki/Alan_Turing ), और ऐसे कई परिणामों के रूप में (आमतौर पर "सैद्धांतिक कंप्यूटर विज्ञान" के क्षेत्र में डब किए गए) प्रमाणों में शामिल हैं। कुछ कम्प्यूटेशनल मॉडल में कंप्यूटर दिए गए कार्यों में कुछ समस्या को हल कर सकते हैं (जैसे FOCS, STOC, Soda, SoCG, आदि .. जैसे सम्मेलन)। फिर भी, कंप्यूटर विज्ञान के कई अन्य परिणाम प्रायोगिक परिणामों (जैसे WADS, ALENEX, आदि ... जैसे सम्मेलनों) के विश्लेषण के माध्यम से व्यावहारिक जीवन के लिए उन सिद्धांतों की प्रयोज्यता से चिंतित हैं।

अक्सर यह सुझाव दिया जाता है कि आदर्श सिद्धांत और व्यवहार के बीच एक अच्छा संतुलन है, जैसा कि "प्राकृतिक विज्ञान" में, जहां प्रयोगों का अवलोकन नई सिद्धांतों की पीढ़ी को प्रेरित करता है, जो बदले में उन लोगों की पुष्टि या पुष्टि करने के लिए नए प्रयोगों का सुझाव देते हैं: जैसे कि कई सम्मेलन दोनों प्रयोगात्मक और सैद्धांतिक परिणाम (जैसे ईएसए, आईसीएएलपी, लेटिन, सीपीएम, आईएसएएसी, आदि ...) को स्वीकार करने का प्रयास करते हैं। कंप्यूटर विज्ञान में "एल्गोरिदम और डेटा संरचनाओं" के उपक्षेत्र इस अर्थ में असंतुलन का शिकार हो सकते हैं कि "सैद्धांतिक" सम्मेलन आम तौर पर प्रयोगात्मक लोगों की तुलना में अधिक उच्च स्थान पर हैं। मेरा मानना ​​है कि यह कंप्यूटर विज्ञान के अन्य उपक्षेत्रों में सही नहीं है, जैसे कि एचसीआई या एआई।

आशा करता हूँ की ये काम करेगा?


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

1
हां, आप ग्राफ सिद्धांत से एल्गोरिदम को लागू कर सकते हैं। लेकिन ग्राफ थ्योरी में कई दिलचस्प समस्याओं के लिए , जो कि कम से कम भार है, जो कि बेकार ही होगा क्योंकि एल्गोरिदम के घातीय-समय की जटिलता के कारण केवल बहुत छोटे इनपुट (स्वीकार्य) कम्प्यूटेशनल होंगे। NP
मैथ्यू चैपल

1
@ निश्चित रूप से आप जो कह रहे हैं, वह कुछ समस्याओं पर लागू होता है, लेकिन एमएसटी समस्या के लिए, आप कुछ शक्तिशाली एल्गोरिदम को पुस्तकों
Abel Molina

1
O(n)O(nlogn)

24

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

EDIT में शामिल:

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

दूसरी ओर, कोडिंग एल्गोरिदम (या एक छात्र कोड उन्हें) जो आपको लगता है कि व्यावहारिक हो सकता है उन्हें चिकित्सकों द्वारा अनुकूलित करने में उपयोगी हो सकता है। एक उदाहरण पर गौर कीजिए। लेम्पेल और ज़िव ने 1977 और 1978 में नए डेटा संपीड़न एल्गोरिदम पर दो तकनीकी पत्र लिखे। हर किसी ने उन्हें नजरअंदाज कर दिया। 1984 में, वेल्च ने LZ78 पर एक मामूली मोड़ देते हुए एक बहुत कम तकनीकी पत्र लिखा, जिसने इसके प्रदर्शन को कुछ हद तक सुधार दिया, और एक छोटे अध्ययन के परिणामों को अन्य डेटा संपीड़न विधियों के साथ अपने प्रदर्शन की तुलना में दिया। यह कई प्रोग्रामर्स द्वारा पढ़े जाने वाले जर्नल में प्रकाशित किया गया था, और एल्गोरिथ्म को छद्मकोड की कुछ पंक्तियों द्वारा दिया गया था। विधि को कई स्थानों पर जल्दी से अनुकूलित किया गया था, जिसके परिणामस्वरूप अंततः एक कुख्यात बौद्धिक संपदा विवाद हुआ।

बेशक, एल्गोरिदम शोधकर्ताओं के लिए अभ्यास के साथ संवाद करने का एक सबसे अच्छा तरीका है, ऐसे स्नातक छात्रों का उत्पादन करना जो Google, IBM या अन्य कंपनियों में काम करते हैं और हम पहले से ही ऐसा कर रहे हैं। एक और तरीका इस मंच में व्यवसायी के सवालों के जवाब देने का हो सकता है। उम्मीद है, हम उस के रूप में अच्छी तरह से एक उचित काम कर रहे हैं।


4
तो आप कह रहे हैं कि भले ही भौतिक विज्ञान में दोनों में एक ही व्यक्ति की अपेक्षा नहीं है, लेकिन सिद्धांत रूप में हमें दोनों करना चाहिए? क्या यह इसलिए है क्योंकि गणना के मॉडल भौतिकी के मॉडल की तुलना में वास्तविकता से बहुत अधिक जुड़े हैं?
सुरेश वेंकट

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

3
मैं सामान्य नहीं करूंगा, लेकिन मुझे लगता है कि कई शोधकर्ता केवल कोड नहीं कर सकते हैं / पसंद नहीं करते हैं और वे अपने छात्रों में से एक को व्यावहारिक काम करने नहीं देंगे। यही हाल मेरे और मेरे गुरु का है।
टोटो

औपचारिक विनिर्देश बनाम व्यावहारिक संगणना से जुड़ा तनाव STEM इतिहास में बहुत पीछे चला गया है। कभी-कभी औपचारिक विनिर्देश होता है (वॉन न्यूमैन की "स्थिर विस्फोट तरंगों के सिद्धांत पर" [1948] बनाम बाद के कम्प्यूटेशनल सिमुलेशन) और कभी-कभी व्यावहारिक संगणना लीड्स (बॉउडीच के "न्यू अमेरिकन प्रैक्टिकल नेविगेटर" "1807] बनाम गॉस" डिस्क्वायरमेंट्स जनरल सुपरटाफ्टर्स कर्वस "। [1827])। सबसे बड़े गणितज्ञ (उपर्युक्त उदाहरणों में गौस और वॉन न्यूमैन) ने अक्सर व्यावहारिक विनिर्देशों के साथ औपचारिक विनिर्देशों को जोड़ा है।
जॉन सिड्स

3
लेम्पेल-ज़िव का इतिहास, और स्टैकओवरफ़्लो के पदों को देखते हुए, मुझे सिर्फ एक बहुत ही सरल प्रस्तावना तैयार करने में मदद मिली है, जो एल्गोरिदम सिद्धांतकारों को कार्यान्वित करने वाले व्यर्थ चिकित्सकों के साथ आने में मदद कर सकता है: यदि आपको लगता है कि आपका एल्गोरिथ्म व्यावहारिक हो सकता है, तो pseudocode को अपने में रखें। कागज।
पीटर शोर

17

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

गेरथ ब्रोडल और पीटर सैंडर्स शोधकर्ताओं के अच्छे उदाहरण हैं जो "सबूत" और "अनुभवजन्य" दोनों स्थानों पर एक पैर बनाए रखते हैं।

--Update 1/20 / 2013-- मैं रॉबर्ट सेडगेविक की एक शानदार प्रस्तुति का भी उल्लेख करूंगा ।


4
ALENEX और ESA दोनों लागू एल्गोरिदम काम को प्रोत्साहित करते हैं, और इस विषय पर एक सम्मेलन (SAE) भी है।
सुरेश वेंकट

SAE क्या है? वह TLA अप्राप्य है। क्या आपके पास इसके लिए एक URL है?
पीटर बूथ

5
SAE एसईए के लिए एक टाइपो है, प्रायोगिक एल्गोरिदम पर संगोष्ठी है।
डेविड एप्पस्टीन

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

O(CubeRoot(n))

12

यह उस अनुशासन पर निर्भर करता है जिसमें आप हैं; जैसा कि जेरेमी कहते हैं, सिद्धांत बनाम व्यवहार का एक स्पेक्ट्रम है।

जटिलता जैसे विषय सिद्धांत पक्ष की ओर भारित होते हैं, क्योंकि अक्सर लक्ष्य अंतरिक्ष या रनटाइम के लिए एक सीमा को खोजने के लिए होता है। C ++ में एक एल्गोरिथ्म को लागू करना और फिर इसे बार-बार चलाना, यह साबित करने वाला नहीं है कि एक समस्या एनपी-पूर्ण है।

एक ध्रुवीय विपरीत के रूप में, उच्च-प्रदर्शन कंप्यूटिंग ( सुपरकंप्यूटिंग जैसे सम्मेलनों के साथ ) सभी अनुभवजन्य हैं; कोई भी कभी भी HPC प्रकाशन के लिए प्रमाण प्रस्तुत नहीं करेगा क्योंकि मेमोरी पदानुक्रम और कर्नेल ओवरहेड के संबंध में बहुत अधिक परिवर्तनशीलता है।

तो एक ही प्रश्न की तरह क्या लगता है (लक्ष्यों को पूरा करने में कितना समय लगता है?) लक्ष्यों, तकनीकों, समुदाय, आदि के आधार पर दो पूरी तरह से अलग तरीकों से संपर्क किया जाएगा। देखें पोल-हेनिंग काम्प का आप इसके उदाहरण के लिए गलत कर रहे हैं । असंगति।


10

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

लेकिन क्या हम फिर कह सकते हैं कि प्रोग्रामिंग निर्माण प्रोग्रामिंग के विज्ञान के लिए एक अग्रिम है? क्या हम कह सकते हैं कि यह लेखन कार्यक्रमों को आसान बनाता है? क्या हम कह सकते हैं कि यह प्रोग्रामिंग भाषा को बेहतर बनाता है?

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


7

शायद मैं आपके प्रश्न के लिए प्रेरणा को याद कर रहा हूं लेकिन अनुसंधान, एल्गोरिदम और अन्य परिणामों को प्रेरित करने वाले अनुभवजन्य परिणामों के कई उदाहरण हैं।

मानव एन्कोडिंग के लिए एल्गोरिथ्म का अनुकूलन करने के लिए एमपी 3 मनोचिकित्सा का उपयोग करता है।

π

इसी पंक्ति के साथ, बेली और बोरवेइन प्रयोगात्मक गणित के बड़े प्रस्तावक हैं। देखें "द क्रूसिबल के रूप में कंप्यूटर: प्रायोगिक गणित के लिए एक परिचय" , "कम्प्यूटेशनल सैर संख्या सिद्धांत में" के बीच दूसरों । कोई यह तर्क दे सकता है कि यह अधिक प्रायोगिक गणित है लेकिन मैं तर्क दूंगा कि इस स्तर पर चर्चा शब्दार्थ है।

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

यद्यपि सैद्धांतिक कंप्यूटर विज्ञान या गणित के स्तर पर काफी नहीं है, यहाँ एक चर्चा है कि यूनिक्स उपयोगिता grep का औसत मामला रनटाइम अनुकूलित सबसे खराब एल्गोरिदम को कैसे धड़कता है क्योंकि यह इस तथ्य पर निर्भर करता है कि यह मानव पठनीय पाठ खोज रहा है (grep उतना ही बुरा या उन में यादृच्छिक वर्णों वाली फ़ाइलों पर सबसे खराब)।

यहां तक ​​कि गॉस ने प्राइम नंबर प्रमेय की अपनी परिकल्पना देने के लिए प्रयोगात्मक सबूत का इस्तेमाल किया ।

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

आपके प्रश्न के उत्तर में इतना बिखरा हुआ होने के लिए मेरी माफी लेकिन मुझे आशा है कि मैंने कम से कम कुछ उदाहरण दिए हैं जो सहायक हैं।

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