विषयों की एक सीमा पर एल्गोरिथम पुस्तकों


11

मुझे हमारी छोटी कंपनी (लगभग 15 लोगों) के लिए एल्गोरिदम पर पुस्तकों की एक लाइब्रेरी बनाने का काम सौंपा गया है। बजट 5k से अधिक है, लेकिन निश्चित रूप से 10k से कम है, इसलिए मैं उचित संख्या में किताबें खरीद सकता हूं। यहां सभी लोगों के पास सीएस या कम से कम संबंधित क्षेत्र में स्नातक की डिग्री है, इसलिए जब मुझे कॉर्मेन जैसी कुछ बुनियादी पाठ्यपुस्तक मिलेगी, तो मुझे उन्नत विषयों पर अच्छी पुस्तकों में दिलचस्पी है। (मैं नुथ के 4 खंड प्राप्त करूंगा, BTW।)

विषयों की कुछ सूची होगी:

  • छँटाई एल्गोरिदम

  • ग्राफ एल्गोरिदम

  • स्ट्रिंग एल्गोरिदम

  • यादृच्छिक एल्गोरिदम

  • वितरित एल्गोरिदम

  • संयुक्त एल्गोरिदम

  • आदि।

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

आदर्श कुछ भी खोजने के लिए होगा जो हाल के शांत डेटा संरचनाओं और एल्गोरिदम को कवर करेगा, जिसके बारे में ज्यादातर लोगों ने नहीं सुना होगा।


संपादित करें: यहाँ कुछ प्रारंभिक पुस्तकें हैं जो मुझे लगता है कि मुझे मिलनी चाहिए:

  • कॉर्मेन एट अल द्वारा एल्गोरिदम का परिचय।

  • क्लेनबर्ग, टार्डोस द्वारा एल्गोरिथम डिजाइन

  • नुट द्वारा कंप्यूटर प्रोग्रामिंग वॉल्यूम 1-4 की कला

  • वजीरानी द्वारा अनुमान एल्गोरिदम

  • विलियमसन, शमॉयस द्वारा डिजाइन का अनुमान एल्गोरिदम

  • मोटवानी, राघवन द्वारा यादृच्छिक एल्गोरिदम

  • Sipser द्वारा संगणना के सिद्धांत का परिचय

  • अरोड़ा, बराक द्वारा कम्प्यूटेशनल जटिलता

  • गैरी और जॉनसन द्वारा कंप्यूटर और इंट्रेक्टेबिलिटी

  • स्क्रीवर द्वारा संयुक्त ऑप्टिमाइज़ेशन

कुछ अन्य किताबें मेरे सहयोगी चाहते थे कि भाषा डिजाइन, संकलक और औपचारिक तरीकों के लिए तकनीकों और एल्गोरिदम से निपटें:

  • प्रकार और प्रोग्रामिंग भाषा पियर्स द्वारा

  • बैयर, काटेन द्वारा मॉडल चेकिंग के सिद्धांत

  • कम्पाइलर: सिद्धांत, तकनीक और उपकरण अहो, लाम, सेठी, उलेमान द्वारा

  • कंपाइलर डिज़ाइन हैंडबुक: ऑप्टिमाइज़ेशन एंड मशीन कोड जनरेशन, श्रीकांत द्वारा दूसरा संस्करण, शंकर

  • कचरा संग्रह पुस्तिका: जोन्स, होकिंग, मॉस द्वारा स्वचालित स्मृति प्रबंधन की कला


एमआर Garey और डी एस जॉनसन द्वारा एनपी पूर्णता के सिद्धांत के लिए एक गाइड: द्वारा माइकल सिप्सर * कंप्यूटर और अकड़ संगणना के सिद्धांत के लिए * एल्गोरिथ्म डिजाइन जॉन क्लाइनबर्ग और इवा टार्डोस * परिचय द्वारा: पुस्तकें है कि हर पुस्तकालय होना चाहिए
पाल जी.डी.

> * माइकल सिपर द्वारा संगणना के सिद्धांत का परिचय यह एक महान पुस्तक है, लेकिन यह ऑटोमेटा और भाषाएँ, संदर्भ-मुक्त-भाषाएँ, ट्यूरिंग मशीन, जटिलता सिद्धांत और इतने पर है। यह एल्गोरिथ्म के बारे में बहुत कुछ नहीं है
डिवाइड

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

1
मॉडरेटर नोटिस: कृपया एकल-पुस्तक उत्तर पोस्ट न करें, और कृपया बताएं कि आप ये विकल्प क्यों बना रहे हैं। यहां $ 5k का बजट है: बताएं कि आप इसे कैसे खर्च करेंगे! हमें बताएं कि आपके हिसाब से कौन सी किताबें हैं, आपके पास कौन-कौन से विषय हैं, यह पता लगाया जाना चाहिए कि आप अपना चयन कैसे करते हैं ...
गाइल्स का SO- बुराई करना बंद करें '

क्या आप मुख्य रूप से डिजाइन में रुचि रखते हैं, या एल्गोरिदम के विश्लेषण में भी? यदि ऐसा है, तो क्या आप चाहते हैं कि आपके लोग सैद्धांतिक विश्लेषण में सक्षम हों, या क्या आप दक्षता का मूल्यांकन करने के अधिक व्यावहारिक साधनों में कुशल थे?
राफेल

जवाबों:


13

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

मुझे लगता है कि आप चाहते हैं कि आपके लोग सीखें कि क्या किया जा सकता है, और यह कैसे करना है, यह सीखने के विपरीत कि वे क्या नहीं कर सकते। विशेष रूप से, मैं कम्प्यूटेबिलिटी और जटिलता सिद्धांत के बारे में किताबें छोड़ दूंगा; मुझे उम्मीद है कि आपके लोगों ने अपनी स्नातक शिक्षा से संबंधित संदेशों को हटा दिया है।

  • मूल बातें
    भले ही आपके लोगों ने उन्हें किसी बिंदु पर सीखा हो, उम्मीद है कि वे मूल बातें देखेंगे। चूंकि विकिपीडिया जैसे स्रोत अक्सर घटिया या एकमुश्त गलत होते हैं, आप उन्हें उचित संदर्भ ग्रंथ प्राप्त करना चाहते हैं।

    लोकप्रिय विकल्पों में शामिल हैं

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

    • इसके चौथे संस्करण में सिडगविक और वेन द्वारा एल्गोरिदम एक और मानक पाठ। कॉर्मेन की तुलना में कम व्यापक, लेकिन कार्यान्वयन विवरणों पर अधिक ध्यान देने के साथ। सामग्री के ऑनलाइन, Coursera पर एक नि: शुल्क पाठ्यक्रम सहित । बहुत सारे व्यायाम।
    • एल्गोरिदम का परिचय - उडी मनबर द्वारा एक रचनात्मक दृष्टिकोण
      इसके अलावा विषयों का चयन पतला है, लेकिन शिक्षाशास्त्र पर ध्यान दिया गया है। ध्यान केंद्रित करने पर है आगमनात्मक रणनीतियों। कुछ के लिए बहुत सारे अभ्यास और समाधान (या कम से कम संकेत) शामिल हैं। एक अच्छा माध्यमिक संदर्भ यदि आपको इसकी असामान्य शैली के कारण अनुशंसित पाठ्यपुस्तक पसंद नहीं है।
    • ग्राहम, नूथ और पटाशनिक
      कवर द्वारा ठोस गणित एल्गोरिदम विश्लेषण के लिए प्रासंगिक के रूप में गणित को असतत करता है। कंप्यूटर विज्ञान की जरूरतों और कठोरता पर इसके ध्यान में दुर्लभ । बहुत उच्च गुणवत्ता। समाधान के साथ बहुत सारे अभ्यास।
  • O

  • उन्नत सर्वेक्षण

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

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

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

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

यदि आप हाल की सामग्री चाहते हैं, तो आपको अपने लोगों को पत्रिकाओं और सम्मेलन की कार्यवाही तक पहुंचने पर विचार करना चाहिए, शायद विश्वविद्यालय के पुस्तकालय के साथ सहयोग करके। आप वास्तव में उन्हें उनके सम्मान के लिए प्रासंगिक विषयों पर सम्मेलनों में भाग लेने दे सकते हैं। आपकी कंपनी।

इसके अलावा, अपने लोगों से पूछने पर विचार करें। क्या उन्होंने अपने स्वयं के अनुसंधान (वेब ​​या पुस्तकालयों पर नि: शुल्क नमूने या प्रतियां सहित) किए हैं और वे आपको बताएंगे कि वे किन पुस्तकों को अपने काम के लिए प्रासंगिक मानते हैं। सामान खरीदने में कोई फायदा नहीं होगा कोई नहीं पढ़ेगा।


और, ज़ाहिर है, उन्हें अपनी दिलचस्प समस्याओं के साथ यहां भेजें। :)
राफेल


@ बर्टेक: इसके बारे में कभी नहीं सुना, इसलिए मैं इसकी सिफारिश नहीं कर सकता।
राफेल

4

यहाँ उन्नत एल्गोरिदम पर पुस्तकों का एक यादृच्छिक संग्रह है जो मैं उन्नत एल्गोरिदम के बारे में महान पुस्तक मानता हूं। बेशक यह केवल मेरी निजी राय है और कई अन्य अच्छी किताबें हैं।

  • विजय वी। वजीरानी द्वारा अनुमान एल्गोरिदम
  • डेविड पी। विलियमसन, डेविड बी। शमॉयस द्वारा डिजाइन का अनुमान एल्गोरिदम
  • कम्प्यूटेशनल ज्यामिति: केतन मुल्मुले द्वारा यादृच्छिक एल्गोरिदम के माध्यम से एक परिचय
  • राजीव मोटवानी, प्रभाकर राघवन द्वारा रैंडमाइज्ड एल्गोरिदम
  • डैन गुसफील्ड द्वारा स्ट्रिंग्स, ट्रीज़ एंड सीक्वेंस पर एल्गोरिदम
  • विलियम जे। कुक, विलियम एच। कनिंघम, विलियम आर। पुललेब्लांक, अलेक्जेंडर स्काइवर द्वारा संयुक्त संयोजन

आपको निश्चित रूप से क्लेनबर्ग / टार्डोस पुस्तक पर विचार करना चाहिए, जो कि सिर्फ एक महान पाठ्यपुस्तक है।

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


1
आप कहते हैं कि यह एक "यादृच्छिक" संग्रह है। क्या आपके पास उन पुस्तकों की सिफारिश करने के लिए विशेष कारण हैं? शेष $ 4.5k के साथ ओपी को क्या करना चाहिए?
राफेल

4

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

1) कॉर्मेन एक मानक पाठ है। सेडगविक एक और मानक पाठ है। मैं हमेशा सेग्विक से बाहर निकला हूं, लेकिन वाईएमएमवी। आपको लगता है कि बजट है। दोनों खरीदें।

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

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

4) डेटा संरचनाओं पर प्रत्येक पुस्तकालय को ओकासाकी की "विशुद्ध रूप से कार्यात्मक डेटा संरचनाओं" की एक प्रति की आवश्यकता होती है। मुझे नहीं लगता कि मैंने कभी किसी किताब को इतने पतले विचारों के साथ पढ़ा है।

5) मेरे पास मैक्सिम क्रोकोमोर की "एल्गोरिदम ऑन स्ट्रिंग्स" की एक प्रति नहीं है, लेकिन मेरी इच्छा है कि मैंने किया। अत्यधिक व्यावहारिक, बहुत सारे उपयोगी विचार।

  • रॉबर्ट सेग्विक द्वारा C ++ / Java / C (एक का चयन करें), तीसरा संस्करण में एल्गोरिदम। दो खंड। एडिसन-वेस्ले, 2001।

  • रिचर्ड जोन्स, एंटनी होसकिंग और एलियट मॉस द्वारा कचरा संग्रह पुस्तिका।

  • पार्सिंग थ्योरी, सेपो सिप्पू और एल्जस सोइसलोन-सोइनिनन द्वारा। दो खंड: खंड। 1 भाषाएँ और पार्सिंग; वॉल्यूम। 2 एलआर (के) और एलएल (के) पार्सिंग। स्प्रिंगर, 1988।

  • पार्सिंग तकनीक, एक प्रैक्टिकल गाइड, डिक ग्रुन और सेरेल जेएच जैकब्स द्वारा दूसरा संस्करण। स्प्रिंगर, 2008।

  • विशुद्ध रूप से कार्यात्मक डेटा संरचनाएं क्रिस ओकासाकी द्वारा। कैम्ब्रिज, 1998।

  • मैक्सिम क्रोकमोर, क्रिस्टोफ हैनकार्ट, थियरी लेक्रोक द्वारा स्ट्रिंग्स पर एल्गोरिदम। कैम्ब्रिज, 2007।

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