कोर एल्गोरिदम तैनात


307

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

मैं ऐसे उदाहरणों की तलाश में हूं जो निम्नलिखित मानदंडों को पूरा करते हैं:

  1. एल्गोरिथ्म का उपयोग करने वाला सॉफ्टवेयर / हार्डवेयर अभी व्यापक उपयोग में होना चाहिए।

  2. उदाहरण विशिष्ट होना चाहिए। कृपया एक विशिष्ट प्रणाली और एक विशिष्ट एल्गोरिथ्म का संदर्भ दें।
    उदाहरण के लिए, "एल्गोरिदम एक्स छवि प्रसंस्करण के लिए उपयोगी है" शब्द "इमेज प्रोसेसिंग" पर्याप्त विशिष्ट नहीं है; "Google खोज ग्राफ़ एल्गोरिदम का उपयोग करता है" शब्द "ग्राफ़ एल्गोरिदम" पर्याप्त विशिष्ट नहीं है।

  3. एल्गोरिथ्म को ठेठ स्नातक या पीएचडी में पढ़ाया जाना चाहिए। एल्गोरिदम या डेटा संरचनाओं में कक्षाएं। आदर्श रूप से, एल्गोरिथ्म विशिष्ट एल्गोरिदम पाठ्यपुस्तकों में शामिल है। उदाहरण के लिए, "अच्छी तरह से ज्ञात सिस्टम एक्स अल्प-ज्ञात एल्गोरिथ्म वाई का उपयोग करता है" अच्छा नहीं है।


अपडेट करें:

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


टिप्पणियाँ विस्तारित चर्चा के लिए नहीं हैं; इस वार्तालाप को बातचीत में स्थानांतरित कर दिया गया है ।
ब्योर्न जोस-Hanssen

जवाबों:


473

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

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

लिनक्स कर्नेल में बुनियादी डेटा संरचनाएं और एल्गोरिदम

लिंक जीथब पर स्रोत कोड के लिए हैं ।

  1. लिंक्ड लिस्ट , डबल लिस्टेड लिस्ट , लॉक-फ्री लिंक्ड लिस्ट
  2. B + पेड़ आपको टिप्पणियों के साथ बताते हैं कि आप पाठ्यपुस्तकों में क्या नहीं पा सकते हैं।

    एक अपेक्षाकृत सरल बी + ट्री कार्यान्वयन। मैंने इसे सीखने के अभ्यास के रूप में लिखा है कि यह समझने के लिए कि B + पेड़ कैसे काम करते हैं। साथ ही उपयोगी साबित हुआ।

    ...

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

  3. म्यूटेक्स , ड्राइवरों आदि के लिए उपयोग की जाने वाली वरीयता क्रमबद्ध सूची

  4. रेड-ब्लैक ट्री का इस्तेमाल फाइल डिस्क्रिप्टर और डायरेक्टरी एंट्रीज़ आदि को ट्रैक करने के लिए शेड्यूलिंग, वर्चुअल मेमोरी मैनेजमेंट के लिए किया जाता है
  5. अंतराल के पेड़
  6. मूलांक के पेड़ , स्मृति प्रबंधन , एनएफएस संबंधित लुकअप और नेटवर्किंग संबंधित कार्यक्षमता के लिए उपयोग किए जाते हैं ।

    मूलांक वृक्ष का एक सामान्य उपयोग पॉइंटर्स को संरचनात्मक पृष्ठों पर संग्रहीत करना है;

  7. प्राथमिकता ढेर , जो शाब्दिक है, एक पाठ्यपुस्तक कार्यान्वयन, जिसका उपयोग नियंत्रण समूह प्रणाली में किया जाता है

    सीएलआर, अध्याय 7 के आधार पर सरल सम्मिलन-केवल स्थैतिक-आकार के प्राथमिकता वाले ढेर, संकेत युक्त

  8. नॉट और एक पेपर के संदर्भ में हैश फंक्शन

    नुथ मल्टीप्लस हैशिंग के लिए मशीन शब्द द्वारा प्रतिनिधित्व करने वाले अधिकतम पूर्णांक तक लगभग सुनहरे अनुपात में प्रिम्स की सिफारिश करता है। चक लीवर ने इस तकनीक की प्रभावशीलता को सत्यापित किया:

    http://www.citi.umich.edu/techreports/reports/citi-tr-00-1.pdf

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

  9. कोड के कुछ हिस्से, जैसे कि यह ड्राइवर , अपने स्वयं के हैश फ़ंक्शन को लागू करते हैं।

    हैश फंक्शन एक रोटेटिंग हैश एल्गोरिथ्म का उपयोग करते हुए

    नुथ, डी। द आर्ट ऑफ कंप्यूटर प्रोग्रामिंग, खंड 3: छंटाई और खोज, अध्याय 6.4। एडिसन वेस्ले, 1973

  10. हैश टेबल का उपयोग इनोड को लागू करने के लिए किया जाता है , फाइल सिस्टम अखंडता जांच आदि।
  11. बिट सरणियाँ , जो झंडे, व्यवधान, आदि से निपटने के लिए उपयोग की जाती हैं और नुथ वॉल्यूम में चित्रित की जाती हैं। 4।

  12. सेमीफोर और स्पिन लॉक

  13. बाइनरी खोज का उपयोग इंटरप्ट हैंडलिंग , रजिस्टर कैशे लुकअप आदि के लिए किया जाता है ।

  14. बी-पेड़ों के साथ द्विआधारी खोज

  15. निर्देशिका कॉन्फ़िगरेशन में प्रयुक्त पहले खोज और संस्करण की गहराई

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

  16. चौड़ाई पहली खोज रनटाइम पर लॉकिंग की शुद्धता की जांच करने के लिए उपयोग की जाती है।

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

  18. बबल सॉर्ट को आश्चर्यजनक रूप से एक ड्राइवर लाइब्रेरी में भी लागू किया गया है।

  19. नूथ-मॉरिस-प्रैट स्ट्रिंग मैचिंग ,

    नूथ, मॉरिस और प्रैट [1] के कारण रैखिक-समय स्ट्रिंग-मिलान एल्गोरिथ्म को लागू करता है। उनका एल्गोरिथ्म पूरी तरह से संक्रमण फ़ंक्शन DELTA की स्पष्ट गणना से बचता है। इसका मिलान समय O (n) है, n जा रहा है लंबाई (पाठ) के लिए, केवल सहायक फ़ंक्शन PI [1..m] का उपयोग करते हुए, m being लंबाई (पैटर्न) के लिए, समय O (m) में पैटर्न से पूर्व-निर्मित। सरणी PI संक्रमण फ़ंक्शन DELTA को "मक्खी पर" आवश्यकतानुसार कुशलतापूर्वक गणना करने की अनुमति देता है। मोटे तौर पर, किसी भी राज्य "q" = 0,1, ..., m और किसी भी वर्ण "a" के लिए SIGMA में, मूल्य PI ["q"] में वह जानकारी है जो "a" से स्वतंत्र है और जिसकी आवश्यकता है गणना DELTA ("q", "a") 2। चूंकि सरणी PI में केवल m प्रविष्टियाँ हैं, जबकि DELTA में O (m | SIGMA |) प्रविष्टियाँ हैं, हम SIGMA का एक कारक बचाते हैं। DELTA के बजाय PI की गणना करके प्रीप्रोसेसिंग समय में।

    [१] कॉर्मेन, लीसेरसन, रिवेस्ट, स्टाइन इन्ट्रोड्यूस टू अलोरिग्मैम्स, 2 डी एडिशन, एमआईटी प्रेस

    [२] परिमित स्वचालन सिद्धांत देखें

  20. बॉयर-मूर पैटर्न जब विकल्प को पसंद करने के लिए संदर्भ और सिफारिशों के साथ मेल खाते हैं।

    इम्प्लीमेंट्स बोयर-मूर स्ट्रिंग मैचिंग एल्गोरिदम:

    [१] एक तेज़ स्ट्रिंग सर्चिंग एलगोरिदम, आरएस बॉयर और मूर। कम्प्यूटिंग मशीनरी के लिए एसोसिएशन के संचार, 20 (10), 1977, पीपी 762-772। http://www.cs.utexas.edu/users/moore/publications/fstrpos.pdf

    [२] सटीक स्ट्रिंग की मिलान पुस्तिका एल्गोरिदम, थियरी लेक्रोक, २००४ http://www-igm.univ-mlv.fr/~lecroq/string/string.pdf

    नोट: चूंकि बॉयर-मूर (BM) दाईं ओर से बाईं ओर के मिलानों की खोज करता है, फिर भी यह संभव है कि एक मिलान कई ब्लॉकों में फैलाया जा सकता है, उस स्थिति में इस एल्गोरिदम को कोई संयोग नहीं मिलेगा।

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

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

क्रोमियम वेब ब्राउज़र में डेटा संरचनाएं और एल्गोरिदम

लिंक गूगल कोड पर स्रोत कोड के लिए हैं । मैं केवल कुछ सूची देने जा रहा हूं। मैं आपके पसंदीदा एल्गोरिदम या डेटा संरचना को देखने के लिए खोज सुविधा का उपयोग करने का सुझाव दूंगा।

  1. सिपल पेड़

    वृक्ष का आवंटन नीति (एलोकेटर) द्वारा भी किया जाता है। नीति का उपयोग सी फ्री स्टोर या ज़ोन में सूचियां आवंटित करने के लिए किया जाता है; ज़ोन देखें।

  2. Voronoi आरेख का उपयोग डेमो में किया जाता है।
  3. ब्रेशेनहैम के एल्गोरिथ्म पर आधारित टैबिंग
क्रोमियम कोड में शामिल तृतीय-पक्ष कोड में ऐसी डेटा संरचनाएं और एल्गोरिदम भी हैं।

  1. बाइनरी पेड़
  2. लाल-काले पेड़

    जूलियन वॉकर का निष्कर्ष

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

    ...

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

  3. एवीएल पेड़
  4. रबिन-कार्प स्ट्रिंग मिलान का उपयोग संपीड़न के लिए किया जाता है।
  5. एक ऑटोमेटन के प्रत्ययों की गणना करें
  6. Apple इंक द्वारा लागू किया गया ब्लूम फ़िल्टर
  7. ब्रेसेनहैम का एल्गोरिदम

प्रोग्रामिंग लैंग्वेज लाइब्रेरी

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

  1. सी ++ एसटीएल सूचियों, ढेर, कतार, नक्शे, वैक्टर, और एल्गोरिदम के लिए भी शामिल है , छंटाई खोज और ढेर हेरफेर
  2. जावा एपीआई बहुत व्यापक है और बहुत अधिक कवर करता है।
  3. बूस्ट सी ++ पुस्तकालय बोयर-मूर और नुथ-मॉरिस-प्रैट स्ट्रिंग मिलान एल्गोरिथम एल्गोरिदम भी शामिल है।

आवंटन और निर्धारण एल्गोरिदम

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

  1. कम से कम हाल ही में प्रयुक्त कई तरीकों से लागू किया जा सकता है। लिनक्स कर्नेल में एक सूची-आधारित कार्यान्वयन
  2. अन्य संभावनाएं फर्स्ट इन फर्स्ट आउट, कम से कम इस्तेमाल की जाने वाली और राउंड रॉबिन हैं।
  3. वैक्स / वीएमएस प्रणाली द्वारा एफआईएफओ के एक संस्करण का उपयोग किया गया था।
  4. रिचर्ड कैर द्वारा क्लॉक एल्गोरिथ्म का उपयोग लिनक्स में पेज फ्रेम प्रतिस्थापन के लिए किया जाता है।
  5. इंटेल i860 प्रोसेसर ने एक यादृच्छिक प्रतिस्थापन नीति का उपयोग किया।
  6. अनुकूली रिप्लेसमेंट कैश का उपयोग आईबीएम के कुछ स्टोरेज कंट्रोलर में किया जाता है, और इसका इस्तेमाल पोस्टग्रेक्सेल में किया गया था, हालांकि केवल थोड़े समय के लिए पेटेंट चिंताओं के कारण
  7. बडी स्मृति आवंटन एल्गोरिथ्म , जो TAOCP खंड में नुथ से चर्चा की है। 1 लिनक्स कर्नेल में प्रयोग किया जाता है, और FreeBSD द्वारा और फेसबुक में jemalloc समवर्ती आवंटन का उपयोग किया जाता है ।

कोर बर्तन * निक्स सिस्टम में

  1. grep और awk दोनों ही एनएफए के थॉम्पसन-मैकनॉटन-यमडा निर्माण को नियमित अभिव्यक्तियों से लागू करते हैं , जो स्पष्ट रूप से पर्ल के कार्यान्वयन को भी मात देते हैं
  2. tsort स्थलाकृतिक रूप से लागू होता है।
  3. fgrep अहो-कोरासिक स्ट्रिंग मिलान एल्गोरिथ्म को लागू करता है।
  4. GNU grep , लेखक माइक हैर्टेल के अनुसार बॉयर-मूर एल्गोरिदम को लागू करता है
  5. यूनिक्स पर crypt (1) ने Enigma मशीन में एन्क्रिप्शन एल्गोरिथ्म का एक प्रकार लागू किया।
  6. जेम्स हंट के साथ लिखे गए एक प्रोटोटाइप के आधार पर डौग मैकइरोले द्वारा लागू यूनिक्स में अंतर है , लेवेंसहाइट दूरियों की गणना करने के लिए उपयोग किए जाने वाले मानक गतिशील प्रोग्रामिंग एल्गोरिदम से बेहतर प्रदर्शन करता है। लिनक्स संस्करण की गणना करता है कम से कम संपादित दूरी।

क्रिप्टोग्राफिक एल्गोरिदम

यह एक बहुत लंबी सूची हो सकती है। क्रिप्टोग्राफ़िक एल्गोरिदम सभी सॉफ़्टवेयरों में लागू किए जाते हैं जो सुरक्षित संचार या लेनदेन कर सकते हैं।

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

संकलनकर्ता

  1. LALR पार्सिंग को याक और बायसन द्वारा कार्यान्वित किया जाता है।
  2. डोमिनेटर एल्गोरिदम का उपयोग एसएसए फॉर्म के आधार पर अधिकांश अनुकूलन कंपाइलरों में किया जाता है।
  3. लेक्स और फ्लेक्स एनएफए में नियमित अभिव्यक्ति संकलित करते हैं।

संपीड़न और छवि प्रसंस्करण

  1. GIF छवि प्रारूप के लिए Lempel-Ziv एल्गोरिदम छवि हेरफेर कार्यक्रमों में कार्यान्वित किया जाता है, जो * nix उपयोगिता से जटिल कार्यक्रमों में परिवर्तित होता है।
  2. रन लें एन्कोडिंग का उपयोग पीसीएक्स फाइलें (मूल पेंटब्रश प्रोग्राम द्वारा प्रयुक्त), संकुचित बीएमपी फाइलें और टीआईएफएफ फाइलें उत्पन्न करने के लिए किया जाता है।
  3. वेवलेट संपीड़न जेपीईजी 2000 का आधार है इसलिए जेपीईजी 2000 फ़ाइलों का उत्पादन करने वाले सभी डिजिटल कैमरे इस एल्गोरिदम को लागू करेंगे।
  4. रीड-सोलोमन त्रुटि सुधार लिनक्स कर्नेल , सीडी ड्राइव, बारकोड पाठकों में लागू किया गया है और वायेजर के साथ छवि संचरण के लिए दृढ़ संकल्प के साथ जोड़ा गया था।

संघर्ष प्रेरित खंड सीखना

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

सैट सॉल्वर्स के अनुप्रयोग कई हैं। आईबीएम, इंटेल और कई अन्य कंपनियों के अपने एसएटी सॉल्वर कार्यान्वयन हैं। पैकेज प्रबंधक OpenSUSE में भी एक सैट solver उपयोग करता है।


5
@ HuckBennett, CDCL एक एल्गोरिथ्म है जिसे सांख्यिकी द्वारा परिमाणित किया गया है, लेकिन यह स्वयं एक अनुमान नहीं है। यह सबसे खराब मामला है, लेकिन यह दिखाने के लिए गैर-तुच्छ है। इसके अलावा, हम बेहतर ढंग से बेहतर नहीं कर सकते हैं और यह सबसे अच्छा है जो हम अभ्यास में कर सकते हैं, इसलिए मुझे लगता है कि सभी कंप्यूटर वैज्ञानिकों को इसके बारे में पता होना चाहिए! LRU, FIFO, आदि के रूप में वे उत्तराधिकार हैं, लेकिन, एआरसी के साथ के रूप में, लागू करने के लिए चतुर एल्गोरिदम या डेटा संरचनाओं की आवश्यकता हो सकती है।
विजय डी।

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

28
यह एक छात्र के लिए एक खजाना है
neo1691

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

4
हैकर समाचार और आर / प्रोग्रामिंग।
विजय डी

40

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

हम कुछ वेबपृष्ठ पर शुरू होने वाले "यादृच्छिक सर्फर" की कल्पना करते हैं, और बार-बार एक नए पृष्ठ पर ले जाने के लिए एक यादृच्छिक लिंक पर क्लिक करते हैं। सवाल यह है कि, "सर्फर प्रत्येक पृष्ठ पर कितना समय बिताएगा?" जितना अधिक समय सर्फर एक पृष्ठ पर खर्च करता है, उतना ही महत्वपूर्ण पृष्ठ माना जाता है।

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

Mkπ0kπ0M


7
मुझे नहीं लगता कि यह विशिष्ट एल्गोरिदम सामग्री है।
मनु

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

2
हम पेजरैंक को अंडरग्रेजुएट्स को पढ़ाते हैं।
एरोन रोथ

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

2
मैंने एक वैकल्पिक में स्नातक के रूप में पेजरैंक सीखा।
विजय डी।

33

मैं रैखिक प्रोग्रामिंग समस्याओं को हल करने के लिए सिम्प्लेक्स विधि / एल्गोरिथ्म के व्यापक रूप से उपयोग किए जाने वाले सॉफ़्टवेयर CPLEX (या समान) के कार्यान्वयन का उल्लेख करूंगा। यह अर्थव्यवस्था और संचालन अनुसंधान में सबसे अधिक इस्तेमाल किया जाने वाला एल्गोरिदम है?

"यदि कोई ऐसा आँकड़ा लेगा जिसके बारे में दुनिया में अधिकांश कंप्यूटर समय में गणितीय समस्या का उपयोग किया जा रहा है, तो (उत्तर की तरह समस्याओं को हल करने और खोज करने वाले डेटाबेस की गिनती नहीं) संभवतः उत्तर रेखीय प्रोग्रामिंग होगी। " (एल। लोवेज़, ए न्यू रैखिक प्रोग्रामिंग एल्गोरिथ्म-सिम्पलेक्स विधि की तुलना में बेहतर या बदतर है? गणित। इंटेलिजेंस 2 (3) (1979/80) 141-146।)

सिम्पलेक्स एल्गोरिथ्म का भी सिद्धांत में बहुत प्रभाव है; उदाहरण के लिए, (बहुपद) हिर्श अनुमान देखें

मुझे लगता है कि एक विशिष्ट स्नातक या पीएच.डी. एल्गोरिदम में वर्ग सिम्पलेक्स एल्गोरिथ्म (गॉस एलिमिनेशन विधि जैसे रैखिक बीजगणित से बुनियादी एल्गोरिदम सहित) से संबंधित है।

(छांटने के लिए क्विकॉर्ट सहित अन्य सफल एल्गोरिदम, पुस्तक से एल्गोरिदम में सूचीबद्ध हैं ।)


"अर्थव्यवस्था और संचालन अनुसंधान" पर्याप्त विशिष्ट नहीं है। CPLEX उस प्रकार का उदाहरण नहीं है जिसे मैं या तो देख रहा था, क्योंकि यह एल्गोरिथम का एक कार्यान्वयन है; यह अलग होगा अगर, कहते हैं, gcc संकलक ने सरल विधि का उपयोग किया है।
मनु

12
मुझे लगता है कि जब हम अर्थव्यवस्था और OR के बारे में बात करते हैं तो "रैखिक प्रोग्रामिंग समस्याएं" पर्याप्त होती हैं। इसके अलावा, CPLEX द्वारा मेरा मतलब कार्यान्वयन के पीछे एल्गोरिथ्म था।
vb le

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

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

10
मेरे सिर के ऊपर से, 2007 के बाद से LAX (हवाई अड्डे) ने सुरक्षा कर्मियों को शेड्यूल करने के लिए स्टैकेलबर्ग गेम को हल करने के लिए सॉफ्टवेयर का उपयोग किया है। बड़े एलपी को हल करना पूरी बात का हिस्सा है, उदाहरण के लिए teamcore.usc.edu/ARMOR-LAX देखें । इसके अलावा, मैं आपके संचालन अनुसंधान विभाग से किसी से पूछूंगा: आमतौर पर वास्तविक जीवन में एलपी का उपयोग करने के बारे में युद्ध की बहुत सारी कहानियां होंगी
साशो निकोलेव

30

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


मुझे यकीन नहीं है कि स्थिर विवाह विशिष्ट एल्गोरिदम सामग्री है।
मनु

16
यह टारडोस और क्लेनबर्ग एल्गोरिदम डिजाइन पुस्तक में है, और मोटवानी के रैंडमाइज्ड एल्गोरिदम में भी है, और दोनों पुस्तकों का व्यापक रूप से उपयोग किया जाता है। स्थिर विवाह को एल्गोरिदम पाठ्यक्रमों में सार्वभौमिक रूप से नहीं पढ़ाया जा सकता है, लेकिन यह निश्चित रूप से उनमें से बहुत कुछ सिखाया जाता है।
साशो निकोलेव

10
एक त्वरित खोज से पता चलता है कि इसने बर्कले के CS70 , MIT के 6.042 , UMD के CMSC451 , आदि ... में
दिखाया है

1
दिलचस्प बात यह है कि जब आप स्पॉसल असाइनमेंट में जोड़ते हैं, तो समस्या एनपी-पूर्ण हो जाती है: arxiv.org/abs/1308.4534 । हालाँकि, व्यवहार में यह समस्या का बहुत अधिक कारण नहीं है: en.wikipedia.org/wiki/…
जोशुआ ग्रोचो

2
@EmanueleViola जबकि यह परंपरागत रूप से कवर नहीं किया जा सकता है, क्लेनबर्ग / टार्डोस पुस्तक में इसके समावेश ने इसे और अधिक लोकप्रिय बना दिया है, (और यदि ऐसा नहीं होना चाहिए!)
सुरेश वेंकट

24

यदि आप पीएचडी-स्तरीय सामान भी शामिल कर रहे हैं, तो कई (अधिकांश?) स्नातक सीएस कार्यक्रमों में कोडिंग सिद्धांत में कुछ पाठ्यक्रम शामिल हैं। यदि आपके पास कोडिंग सिद्धांत में एक कोर्स है, तो आप निश्चित रूप से रीड-सोलोमन कोड को कवर करेंगे जो कि कॉम्पैक्ट डिस्क कैसे काम करता है और हफ़मैन एन्कोडिंग जेपीईजी, एमपी 3 और ज़िप फ़ाइल स्वरूपों में उपयोग किया जाता है। पाठ्यक्रम के अभिविन्यास के आधार पर, आप Lempel-Ziv को भी कवर कर सकते हैं जो GIF प्रारूप में उपयोग किया जाता है। व्यक्तिगत रूप से, मुझे एक स्नातक एल्गोरिदम पाठ्यक्रम में लेम्पेल-ज़िव मिला, लेकिन मुझे लगता है कि यह atypical हो सकता है।


1
और मुझे एक अंडरग्रेड के रूप में हफमैन एन्कोडिंग पर एक व्याख्यान मिला, जिसे एक परियोजना के लिए आवश्यक था।
ब्रायन एस

Huffman CLRS के पहले अध्याय में से एक में है, इसलिए यह निश्चित रूप से अर्हता प्राप्त करना चाहिए
Sasho निकोलोव

21

GNU grep एक निर्दिष्ट पैटर्न से मेल खाने वाली लाइनों के लिए एक या अधिक इनपुट फ़ाइलों को खोजने के लिए एक कमांड लाइन टूल है। यह सर्वविदित है कि grep बहुत तेज है! इसके लेखक माइक हर्टेल का एक उद्धरण ( यहाँ से लिया गया है ):

GNU grep uses the well-known Boyer-Moore algorithm, which looks first for the
final letter of the target string, and uses a lookup table to tell it how far
ahead it can skip in the input whenever it finds a non-matching character.

19

अधिक आम तौर पर, Kanellakis पुरस्कार एसीएम द्वारा सटीक रूप से ऐसी सैद्धांतिक खोजों के लिए प्रदान किया जाता है जो व्यवहार में एक बड़ा प्रभाव डालते हैं।

2012 का पुरस्कार स्थानीयता-संवेदनशील हैशिंग के लिए है , जो पड़ोसी समस्याओं के लिए डेटा खनन में आयामी कमी के लिए एक तरीका है (और यह सिखाने में अपेक्षाकृत आसान है - कम से कम एल्गोरिथम ही)


मुझे लगता है कि यह देखने योग्य है लेकिन व्यापक रूप से सिखाया नहीं गया है।
मनु

3
दुर्भाग्यपूर्ण, लेकिन सच है। हालांकि, एलएसएच (काउंट-मिन स्केच और रिश्तेदारों की तरह) के वेरिएंट "बड़े-डेटा" या "डेटा माइनिंग" पाठ्यक्रमों में दिखाई देने लगे हैं। मैं उदाहरण के लिए अपने एल्गोरिदम वर्ग में ब्लूम फ़िल्टर सिखाता हूं।
सुरेश वेंकट

एक व्यक्तिगत अनुभव के रूप में, एलएसएच ने हमारे लिए "बड़े डेटा" (100mln आइटम) के उदाहरण पर कोई पैमाना नहीं बनाया।
21

1
@lynxoid एक अलग चर्चा / प्रश्न है :)। ऐसे कई उदाहरण हैं जहां यह काम करता है कि मुझे लगता है कि यह इस विशेष प्रश्न के लिए प्रासंगिक है।
सुरेश वेंकट

18

ε

इन डेटा संरचनाओं के औद्योगिक उपयोग के कुछ उदाहरण हैं:

  • असंरचित डेटा विश्लेषण के लिए Google का Sawzall सिस्टम 'सबसे लोकप्रिय आइटम' फ़ंक्शन को लागू करने के लिए काउंट स्केच का उपयोग करता है
  • नेटवर्क ट्रैफिक मॉनिटरिंग के लिए एटी एंड टी के गिगास्कोप "स्ट्रीम डेटाबेस" सिस्टम काउंटमाइन स्केच को लागू करता है।
  • स्प्रिंट की सतत निगरानी ( सीएमओएन ) प्रणाली काउंटमाइन को लागू करती है।

यहां एक साइट भी है जो काउंटमिन के अनुप्रयोगों के बारे में जानकारी एकत्र करती है।

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


1
महान उदाहरण (हालांकि अभी बहुत महत्वपूर्ण नहीं है)।
मनु

16

पिछले दशक में विभिन्न किडनी डोनर मिलान कार्यक्रमों के माध्यम से गुर्दे के प्रत्यारोपण की संख्या (और गुणवत्ता, मुझे लगता है?) को बढ़ाने के लिए एल्गोरिदम का उपयोग किया गया है। मुझे इस पर नवीनतम समाचार खोजने में परेशानी हो रही है, लेकिन यहाँ कम से कम कुछ संकेत हैं:

  • जैसा कि हाल ही में 2007 में गठबंधन दान के लिए गठबंधन अब्राहम, ब्लम और सैंडहोम के एक एल्गोरिथ्म का उपयोग कर रहा था । वे अभी भी इसका उपयोग कर रहे होंगे, लेकिन मैं ऑनलाइन खोज करके पता नहीं लगा सका। यद्यपि यह एल्गोरिथ्म "मानक" पाठ्यक्रमों में लगभग निश्चित रूप से कवर नहीं किया गया है, यह कई मौलिक विचारों को जोड़ता है जो निश्चित रूप से ऐसे पाठ्यक्रमों में सिखाया जाता है जो एक समस्या के लिए एक अच्छा पर्याप्त एल्गोरिथ्म प्रदान करता है, सामान्य तौर पर, एनपी-पूर्ण (साइकिल कवर का एक प्रकार) )।

  • नेशनल किडनी रजिस्ट्री कुछ मानक एल्गोरिदम का भी उपयोग करती है, जिसमें (एक बिंदु पर) CPLEX भी शामिल है। इसके कारण वास्तव में 60 लोगों को जोड़ने वाले प्रत्यारोपणों की श्रृंखला का प्रदर्शन हुआ ।

यह न केवल एल्गोरिदम की सफलता का मेरा पसंदीदा उदाहरण है, बल्कि एनपी-पूर्ण समस्याओं के लिए एल्गोरिदम का अध्ययन करने का महत्व भी है। वे सचमुच जान बचा सकते हैं , और पहले ही ऐसा कर चुके हैं!


इसके अलावा, इन एल्गोरिदम का एक सरल संस्करण बोर्ड गेम का व्यापार करने के लिए उपयोग किया जाता है: okasaki.blogspot.co.uk/2008/03/what-heck-is-math-trade.html
Radu GRIGore

15

विटर्बी का एल्गोरिथ्म, जो अभी भी भाषण मान्यता और कई अन्य अनुप्रयोगों में व्यापक रूप से उपयोग किया जाता है: http://en.wikipedia.org/wiki/Viterbi_al एल्गोरिथम स्वयं एल्गोरिथ्म मूल गतिशील प्रोग्रामिंग है।

विकिपीडिया से: "वीटरबी एल्गोरिदम को 1967 में एंड्रयू विटर्बी द्वारा प्रस्तावित किया गया था, क्योंकि शोर डिजिटल संचार लिंक पर दोषपूर्ण कोड के लिए एक डिकोडिंग एल्गोरिथ्म के रूप में। [1] एल्गोरिथ्म ने सीडीएमए और जीएसएम डिजिटल सेलुलर दोनों में उपयोग किए जाने वाले प्रासंगिक कोड को डिकोड करने में सार्वभौमिक अनुप्रयोग पाया है। डायल-अप मोडेम, सैटेलाइट, डीप-स्पेस संचार और 802.11 वायरलेस लैन। अब इसे आमतौर पर भाषण मान्यता, भाषण संश्लेषण, कीवर्ड स्पॉटिंग, कम्प्यूटेशनल भाषा विज्ञान और जैव सूचना विज्ञान में भी उपयोग किया जाता है। उदाहरण के लिए, भाषण-इन-टेक्स्ट (भाषण)। मान्यता), ध्वनिक संकेत को घटनाओं के देखे गए अनुक्रम के रूप में माना जाता है, और पाठ की एक स्ट्रिंग को ध्वनिक संकेत का "छिपा कारण" माना जाता है। विटर्बी एल्गोरिथ्म को ध्वनिक संकेत दिए गए पाठ की सबसे अधिक संभावना स्ट्रिंग पाता है।


13
  1. कई व्यक्तिगत नेविगेशन उपकरणों (उर्फ जीपीएस इकाइयों) में A का उपयोग किया जाता है
  2. A * बहुत अच्छी तरह से परिभाषित किया गया है, और इसे काफी सरल रूप से लागू किया गया है।
  3. A * पूरी तरह से तुच्छ नहीं है, लेकिन यह Ph.D. नहीं लेता है। इसे समझने के लिए।

A * को अक्सर गेम डिज़ाइन में भी पढ़ाया जाता है। मुझे नहीं लगता कि आधुनिक 3 डी गेम आम तौर पर एनपीसी नेविगेशन के लिए ए * का उपयोग करते हैं, लेकिन 2 डी / आइसोमेट्रिक गेम, साथ ही पुराने गेम, एल्गोरिथ्म का उपयोग करते हैं।
ब्रायन एस

@BrianS क्या आप 3D गेम में उपयोग किए जाने वाले पथप्रदर्शक एल्गोरिदम के उदाहरणों को जानते हैं, विशेष रूप से NPCs के गेम (जैसे शूटर npc) में मुझे कुछ याद है जैसे कि ... हेक्सागोनल सेक्टरों में मैप को विभाजित करना और नोड्स के रूप में उपयोग करना, वर्गों के बजाय। , और यह एक चिकनी आंदोलन की अनुमति दी।
Goodwine

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

12

चिप डिजाइन के लिए जेन्स ऑक्सीजन के प्रोजेक्ट बॉनटूल को देखें। http://www.or.uni-bonn.de/~vygen/projects.html मैंने इस पर कुछ बातचीत सुनी और उनके कुछ पत्रों को भी देखा। वे राघवन-थॉम्पसन शैली रैंडमाइज्ड राउंडिंग के साथ-साथ बड़े पैमाने पर बहुस्तरीय कमोडिटी फ्लो एलपी को हल करने के लिए गुणात्मक भार अद्यतन विधि का उपयोग करते हैं। हालाँकि, किसी भी बड़े प्रोजेक्ट की तरह, उन्हें भी कुछ इंजीनियरिंग करने की ज़रूरत है, लेकिन कार्यप्रणाली बहुत हद तक प्रसिद्ध एल्गोरिदम पर आधारित है।


मेरे पास एक नज़र होगी, लेकिन यह विशिष्ट एल्गोरिदम सामग्री की तरह नहीं है।
मनु

8
हम्म, यादृच्छिक राउंडिंग आमतौर पर पीएचडी स्तर के एल्गोरिदम पाठ्यक्रमों में पढ़ाया जाता है, नहीं?
चंद्रा चकुरी

2
क्यों बस यादृच्छिक दौर? संजीव अरोड़ा, इलाद हज़ान और सत्येन काले का मानना ​​है कि यूजी स्तर पर भी सिखाया जा सकने वाला वज़न अपडेट करने के लिए बुनियादी तरीका है :) "हमें लगता है कि हमारा मेटा एल्गोरिथ्म और इसका विश्लेषण सरल और उपयोगी है जिसे एक बुनियादी उपकरण के रूप में देखा जाना चाहिए। सभी एल्गोरिदम छात्रों को डिवाइड-एंड-कॉनकेयर, डायनेमिक प्रोग्रामिंग, रैंडम सैंपलिंग और इसी तरह के साथ सिखाया जाता है। " (cf. cs.princeton.edu/~arora/pubs/MWsurvey.pdf )।
जगदीश


10

मुझे आश्चर्य है कि उपरोक्त सभी फैंसी एल्गोरिदम के साथ, किसी ने भी संपीड़न एल्गोरिदम के सम्मानित लेम्पेल-ज़िव परिवार (1977/78 में आविष्कार) का उल्लेख नहीं किया है।

  1. उन सभी का उपयोग किया जाता है - प्रसंस्करण स्ट्रीम करने के लिए छवि पर पाठ। यह बहुत संभव है कि एलजेड * अस्तित्व में एक एकल सबसे अधिक उपयोग किया जाने वाला एल्गोरिदम परिवार है।
  2. डिक्शनरी कम्प्रेशन कम्प्रेशन थ्योरी में काफी सफल था और शैनन-फ़ानो शैली के दृष्टिकोण से एक महत्वपूर्ण प्रस्थान।
  3. परिवार में एल्गोरिदम सीधे और सरल हैं और समझने में आसान हैं।

अपडेट करें

जाहिर तौर पर इसका जिक्र पहले ही किया जा चुका था।


10

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

ग्रेडिएंट डिसेंट के लिए कुछ कनेक्शन भी है जो मशीन लर्निंग और आर्टिफिशियल न्यूरल नेटवर्क में व्यापक रूप से उपयोग किया जाता है और एक बहुत ही सार्वभौमिक रूप से लागू अनुकूलन तकनीक के रूप में होता है, जिस स्थिति में न्यूटन का तरीका एक बुनियादी 2 डी फॉर्म है। एसवीडी प्राप्त करने के लिए एक ढाल-वंश एल्गोरिथ्म है।


10

एक यूलरियन मार्ग खोजना जीनोम असेंबली के आधार पर है - एक कार्य जिसे आमतौर पर पूर्ण जीनोम (जैव सूचना विज्ञान, चिकित्सा, फोरेंसिक, पारिस्थितिकी) में काम किया जाता है।

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

UPDATE2 न्यूनतम प्रतिक्रिया शीर्ष सेट समस्या कई OSes में गतिरोध समाधान के लिए उपयोग की जाती है।


क्या आप सुनिश्चित हैं कि TSP समस्या है जिसे पार्सल वितरण कंपनियां हल करने की कोशिश कर रही हैं? मुझे लगा कि एक बड़ी व्यावहारिक चुनौती नैकपैक और अन्य प्रकार की पैकिंग समस्याओं की थी।
आंद्र सलामन

ड्राइवरों के लिए असाइनमेंट हर दिन बदलते हैं (यानी यूपीएस व्यक्ति को हर दिन एक ही घर जाने की आवश्यकता नहीं होती है), इसलिए मार्गों को दैनिक आधार पर अपडेट किया जाना है। यह एक शुद्ध टीएसपी नहीं है - अतिरिक्त बाधाएं हैं जैसे कि एक तरफ की सड़कें, कोई यू-टर्न नहीं, सड़क के एक तरफ पैकेज वितरित करना, लेकिन अन्य नहीं।
21

मुझे यकीन है कि पैकिंग भी महत्वपूर्ण है।
21

9

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


8

यह अपेक्षाकृत नई पुस्तक सुविधाजनक, विस्तारित / एकत्र रूप में प्रश्न के पूर्ण / विस्तृत उत्तर के रूप में विचार करने के लायक है और जिसे एल्गोरिदम वर्ग के लिए पूरक सामग्री के रूप में इस्तेमाल किया जा सकता है। [इनमें से कुछ का उल्लेख पहले ही किया जा चुका है; मजबूत ओवरलैप अपने आप में उल्लेखनीय है।]

  • नौ एल्गोरिदम ने भविष्य को बदल दिया: मैकिनॉर्मिक द्वारा आज के कंप्यूटर को चलाने वाले सरल विचार

    • खोज इंजन अनुक्रमण
    • पृष्ठ स्तर
    • सार्वजनिक कुंजी क्रिप्टोग्राफी
    • कोड्स को सही करने में त्रुटि
    • पैटर्न मान्यता
    • आधार - सामग्री संकोचन
    • डेटाबेस
    • डिजीटल हस्ताक्षर
    • संगणना सिद्धांत
  • एक और संदर्भ कुछ इसी तरह का लेकिन अधिक सैद्धांतिक, 20 वीं सदी का सर्वश्रेष्ठ: संपादकों के नाम शीर्ष 10 एल्गोरिदम सिप्रा / SIAM।

    • मोंटे कार्लो विधि
    • सिंप्लेक्स एल्गोरिथ्म
    • क्रायलोव सबसपेशन पुनरावृत्ति
    • अपघटन मैट्रिक्स संगणना
    • फोरट्रान संकलक
    • क्यूआर मैट्रिक्स एल्गोरिथ्म
    • जल्दी से सुलझाएं
    • FFT
    • पूर्णांक संबंध का पता लगाना
    • फास्ट मल्टीपोल एल्गोरिथ्म

दूसरा रेफरी मूल रूप से जनवरी / फरवरी 2000 में कम्प्यूटिंग इन साइंस एंड इंजीनियरिंग, अमेरिकन इंस्टीट्यूट ऑफ फिजिक्स और आईईईई कंप्यूटर सोसाइटी के संयुक्त प्रकाशन से जारी किया गया है। टेनेसी विश्वविद्यालय के अतिथि संपादकों जैक डोंगर्रा और ओक रिज नेशनल लेबोरेटरी और रक्षा विश्लेषण संस्थान में कम्प्यूटिंग विज्ञान केंद्र के फ्रांसिस सुलिवन द्वारा संकलित
vzn

7

नुथ-मॉरिस-प्रैट स्ट्रिंग खोज व्यापक रूप से प्रयोग किया जाता है, विशिष्ट, और छात्र / स्नातक सीएस में पढ़ाया जाता है।


2
यदि आप किसी विशिष्ट उपयोग की ओर इशारा कर सकते हैं तो अच्छा होगा। MS Word जैसा कुछ KMP उपयोग करता है।
मनु

6

बहुत बुनियादी एल्गोरिदम की सोच

  1. यादृच्छिक संख्या जनरेटर हर जगह और विशेष रूप से सभी खेलों में पाए जाते हैं।
  2. डेटाबेस कई एल्गोरिदम से बना है, जिनमें B +, Hashes, प्राथमिकता कतार, नियमित अभिव्यक्ति, क्रिप्टोग्राफी, सॉर्टिंग, आदि शामिल हैं ... मेरा एक मित्र कहता है कि SGBD कंप्यूटिंग खाद्य श्रृंखला के शीर्ष पर हैं।
  3. सॉर्ट का उपयोग हर जगह किया जाता है, उदाहरण के लिए एक्सेल में। यह वास्तव में वास्तविक जीवन में हर समय उपयोग किया जाता है, लेकिन आमतौर पर मनुष्य तदर्थ एल्गोरिदम का उपयोग करते हैं
  4. चारों ओर समता बिट्स का उपयोग किया जाता है
  5. हफ़मैन एन्कोडिंग संपीड़न और ट्रांसमिशन सॉफ्टवेयर में है
  6. स्टैक्स (LIFO) का उपयोग हर जगह किया जाता है। सीपीयू, आदि में प्रोग्रामिंग भाषाओं के अंदर ...

यह दिखाने के लिए अच्छा है कि वे वास्तविक जीवन में दिखाई दे रहे हैं:

A. कई समूह संचार के लिए एक प्रकार के कवरिंग ट्री एल्गोरिथ्म का उपयोग करते हैं, लोगों के बीच पदानुक्रमित तरीके से टेलीफोन सूचियों को विभाजित करके। चौराहे पर कार आमतौर पर एक राउंड-रॉबिन एल्गोरिथ्म का उपयोग करते हैं (स्वैच्छिक तरीके से) C. अधिकांश स्थान, बैंकों और पसंद के रूप में अस्पताल, अपने ग्राहकों को एक FIFO एल्गोरिथ्म में व्यवस्थित करें


4
सॉर्टिंग एक एल्गोरिथ्म नहीं है। यह एक कार्य है, यानी, कुछ ऐसा जिसे आप करना चाहते हैं, जिसके लिए आपको एक एल्गोरिथ्म डिजाइन करना होगा (या, व्यवहार में, चुनें)।
डेविड रिचेर्बी

प्रश्न में अनुरोध के अनुसार ये विशिष्ट उदाहरण नहीं हैं।
केवह

SGBD == RDBMS FYI करने वालों को नहीं पता था।
ऑटोडिडैक्ट

6

सीटी स्कैन के चिकित्सा अनुप्रयोग में एक आकर्षक एल्गोरिदम समस्या उत्पन्न होती है। कंप्यूटेड टोमोग्राफी (सीटी) में, शरीर को विभिन्न कोणों से एक्स-रे के संपर्क में लाया जाता है। स्कैनर के एक छोर पर एक्स-रे ट्रांसमीटर और दूसरे छोर पर सेंसर होते हैं। स्कैन की ऐसी श्रृंखला से, चिकित्सक की जांच के लिए एक छवि का पुनर्निर्माण किया जाता है!

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


6

एफएफटी का एक उदाहरण

मैंने एक बार एक FFT एल्गोरिथ्म को एक अलग सिस्टम भाषा में पोर्ट करने में मदद की थी।

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

जैसा कि एफएफटी के ऊपर उल्लेख किया गया है, व्यापक रूप से उपयोग किया जाता है, लेकिन यह अधिक स्पष्ट और स्पष्ट (क्यों और कैसे के संदर्भ में) में से एक था जो मैंने अभ्यास में देखा है।

खेद है कि मुझे इसे उच्च स्तर पर रखना पड़ा।


5

Bresenham की लाइन एल्गोरिथ्म सबसे उपयोगी उपयोगी एल्गोरिदम है जो मैं भर में आया हूं। समझने में आसान Ive ने लाइन ड्रॉइंग से लेकर कॉम्प्लेक्स स्प्लीनर से लेकर 3 डी कास्टिंग इंजन के लिए कॉम्प्लेक्स पॉलीगॉन रेंडरर के साथ-साथ कॉम्प्लेक्स एनीमेशन और स्केलिंग उपयोगों के लिए बहुत सारे अनुप्रयोगों के लिए इसका इस्तेमाल किया।


4

अनुकूलन मार्ग योजना (डैनियल डेलिंग, एंड्रयू वी। गोल्डबर्ग, थॉमस पाजोर, और रेनाटो एफ। वर्नैक) http://research.microsoft.com/apps/pubs/default.aspx?id=145688

पिंग बिंग मैप्स: http://www.bing.com/blogs/site_blogs/b/maps/archive/2012/01/05/bing-maps-new-rout-engine.aspx


2

विकिपीडिया में सूची में अधिक या कम वर्गीकृत एल्गोरिदम / अनुप्रयोगों का एक अच्छा संग्रह है । Microsoft शीर्ष उद्धृत कागजात प्रदान करता है, लेकिन कंप्यूटर विज्ञान के क्षेत्र के किसी भी स्पष्ट विवरण के बिना और न ही आवेदन। विभिन्न सीएस सम्मेलनों से एक कालानुक्रमिक सूची भी है _http: //jeffhuang.com/best_paper_awards.html_ जो प्रो। हुआंग द्वारा संकलित है।

स्पेक्ट्रल क्लस्टरिंग एक सुरुचिपूर्ण क्लस्टरिंग एल्गोरिथ्म है, जिसे छवि विभाजन के लिए जेंबो शि और जितेंद्र मलिक द्वारा शुरू किए गए सामान्यीकृत कटौती एल्गोरिदम के रूप में जाना जाता है । यह भी डेटा क्लस्टरिंग अनुप्रयोगों में अच्छी तरह से विकसित किया गया है, दो समुदायों के बीच एक अच्छा चौराहा होने के नाते।


-2

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

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

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


-3

रोसेटा कोड सूचियों को प्रोग्रामिंग टास्क (692) और प्रोग्रामिंग मीडिया (518) द्वारा सिमेंटिक मीडियाविकि द्वारा लागू किया गया एल्गोरिदम ।


यह "कोर एल्गोरिदम ... वाणिज्यिक, सरकारी या व्यापक रूप से उपयोग किए जाने वाले सॉफ़्टवेयर / हार्डवेयर" में कैसे तैनात है?
डेविड रिचेर्बी

विकिपीडिया / डीबीपीडिया यूआरआई के लिए अन्य उत्तरों में सूचीबद्ध प्रत्येक उत्कृष्ट एल्गोरिदम के कार्यान्वयन को क्रॉस-रेफरेंस करना उपयोगी होगा। इन सभी एल्गोरिदम के लिए विकिपीडिया / डीबीपीडिया यूआरआई नहीं हैं; लेकिन रोसेटा कोड पृष्ठ हैं।
वेस टर्नर

bigocheatsheet.com भी बिग-ओ जटिलता और विकिपीडिया लेखों के लिंक को कुछ एल्गोरिदम के लिए सूचीबद्ध करता है।
वेस टर्नर

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

फिर भी एक उपयोगी, प्रासंगिक प्रासंगिक संदर्भ।
वेस टर्नर

-5

हो सकता है कि इस बिंदु पर सभी दर्शकों की रुचि के प्रमुख / पसंदीदा एल्गोरिदम का उल्लेख किया गया हो। हालाँकि, कुछ और पूर्णता के लिए उल्लेख के लायक हैं। और जो कुछ महत्वपूर्ण एल्गोरिथम माना जाता है उसका कुछ विश्लेषण यहां प्रासंगिक है।

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

वास्तव में, सभी कोड का एक नगण्य अंश जो लिखा जाता है, वह कुछ भी लागू कर रहा है जो एक एल्गोरिथम दृष्टिकोण से दिलचस्प है।

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

कभी-कभी सबसे सर्वव्यापी एल्गोरिदम भी सबसे अधिक अनदेखी होते हैं! इंटरनेट और WWW एल्गोरिदम के लिए एक बड़ा वातावरण / निकट-पारिस्थितिकी है। अभी भी लगभग 2 दशक पुराना (आविष्कृत ~ 1991) अपेक्षाकृत युवा है, यह कम समय में बड़े पैमाने पर और तेजी से बढ़ा है। WWW साइट की वृद्धि ने शायद प्रसिद्ध घातीय Moores कानून को भी पछाड़ दिया है।

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

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

यह परिष्कृत त्रुटि का पता लगाने / सुधार का भी उपयोग करता है । इंटरनेट शायद सबसे बड़ा, सबसे गलती सहिष्णु प्रणाली कभी मनुष्यों द्वारा बनाया गया है, अभी भी बढ़ रहा है।

अगला, यह सुनिश्चित करने के लिए एक मजबूत मामला है कि WWW को शक्ति देने वाले एल्गोरिदम उन्नत हैं। HTTP और वेब सर्वर अत्यधिक ट्यून / अनुकूलित हैं और उन्नत सुरक्षा / एन्क्रिप्शन प्रोटोकॉल (HTTPS) का उपयोग करते हैं। एक वेब पेज का प्रतिपादन तर्क HTML5 और CSS3 में जावास्क्रिप्ट प्रोग्रामिंग भाषा के साथ बेहद उन्नत हो गया है ।

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

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

इसलिए संक्षेप में, दैनिक मानव अनुभव को बदलने वाली सभी क्रांतिकारी सफलताएं वास्तव में केवल "क्षेत्र लक्ष्यों" से परे हैं। प्रश्न के शीर्षक के रूप में, सभी कोर एल्गोरिदम को तैनात किया गया है । अब इतना सर्वव्यापी और अदृश्य के रूप में आईटी अभिव्यक्ति, "प्लंबिंग का हिस्सा" जैसा कुछ होना चाहिए।


इसमें कई उद्धरण जोड़े जा सकते हैं। यहाँ एक शुरू करने के लिए है: DARPA और
वालड्रॉप

इंटरनेट ऑप्टिमाइज़ेशन पर एक और रेफरी, डैनी लेविन की जीवनी , एकामाई के कोफ़ाउंडर, "जीनियस ने इंटरनेट को बदल दिया"
vzn

-8

एक आश्चर्यजनक रूप से सफल (हार्डवेयर) एल्गोरिदम पावर-ऑन रीसेट है।

ऐसी प्रणाली के बिना जिसमें कंप्यूटर एक ज्ञात स्थिति में होता है जब बिजली लागू होती है, और कुछ भी सही नहीं होता है

पावर-ऑन रीसेट इसीलिए कुछ भी काम करता है जिसमें सीपीयू है, चाहे वह एम्बेडेड हो या अन्यथा।

अगली बार जब आप प्रोग्रामर और कंप्यूटर वैज्ञानिकों के लिए पानी के छेद में हों, तो अपने ग्लास चेरी सोडा को पावर-ऑन रीसेट पर बढ़ाएं।


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