एक हेयोरिस्टिक और एक एल्गोरिथ्म के बीच अंतर क्या है?
एक हेयोरिस्टिक और एक एल्गोरिथ्म के बीच अंतर क्या है?
जवाबों:
एक एल्गोरिथ्म एक समस्या के लिए एक स्वचालित समाधान का वर्णन है । एल्गोरिथ्म क्या करता है, इसे ठीक से परिभाषित किया गया है। समाधान सबसे अच्छा संभव नहीं हो सकता है या नहीं, लेकिन आप शुरू से जानते हैं कि आपको किस तरह का परिणाम मिलेगा। आप को लागू एल्गोरिथ्म कुछ प्रोग्रामिंग भाषा के उपयोग एक (का एक हिस्सा) प्राप्त करने के लिए कार्यक्रम ।
अब, कुछ समस्याएं कठिन हैं और आप स्वीकार्य समय में एक स्वीकार्य समाधान प्राप्त करने में सक्षम नहीं हो सकते हैं। ऐसे मामलों में आप अक्सर बहुत अधिक बुरा समाधान नहीं पा सकते हैं, कुछ मनमाने विकल्प (शिक्षित अनुमान) लगाकर: यह एक अनुमान है ।
एक अनुमानी अभी भी एक प्रकार का एल्गोरिदम है, लेकिन एक जो समस्या के सभी संभावित राज्यों का पता नहीं लगाएगा, या सबसे अधिक संभावना वाले लोगों की खोज करके शुरू करेगा।
विशिष्ट उदाहरण खेलों से हैं। शतरंज का खेल कार्यक्रम लिखते समय आप कुछ गहराई स्तर पर हर संभव कदम की कोशिश कर सकते हैं और बोर्ड के लिए कुछ मूल्यांकन कार्य कर सकते हैं। स्पष्ट रूप से खराब चाल के साथ शुरू होने वाली पूर्ण शाखाओं को एक हेयूरिस्टिक शामिल नहीं करेगा।
कुछ मामलों में आप सबसे अच्छे समाधान की खोज नहीं कर रहे हैं, लेकिन किसी भी समाधान के लिए कुछ बाधाएं हैं। एक अच्छा विधर्मी थोड़े समय में एक समाधान खोजने में मदद करेगा, लेकिन यह भी खोजने में विफल हो सकता है कि क्या एकमात्र समाधान उन राज्यों में हैं जो इसे आज़माने के लिए नहीं चुना गया था।
ऐसी कई समस्याएं जिनके लिए कोई इष्टतम एल्गोरिदम खोजने के लिए कोई कुशल एल्गोरिथ्म ज्ञात नहीं है, उनके पास दृष्टिकोण है जो कि इष्टतम परिणाम बहुत जल्दी प्राप्त करता है।
कुछ ओवरलैप्स हैं: "आनुवंशिक एल्गोरिदम" एक स्वीकृत शब्द है, लेकिन कड़ाई से बोलना, वे आंकड़े हैं, एल्गोरिदम नहीं।
अनुमानी, संक्षेप में एक "शिक्षित अनुमान" है। विकिपीडिया इसे अच्छी तरह से समझाता है। अंत में, एक "सामान्य स्वीकृति" विधि निर्दिष्ट समस्या के लिए एक इष्टतम समाधान के रूप में ली गई है।
अनुभव आधारित तकनीक के लिए विशेषण एक विशेषण है जो समस्या को हल करने, सीखने और खोज में मदद करता है। एक हेयुरिस्टिक विधि का उपयोग तेजी से एक ऐसे समाधान के लिए किया जाता है, जो सबसे अच्छा संभव उत्तर, या 'इष्टतम समाधान' के करीब होने की उम्मीद है। Heuristics "अंगूठे के नियम", शिक्षित अनुमान, सहज निर्णय या बस सामान्य ज्ञान है। एक समस्या को हल करने का एक सामान्य तरीका एक अनुमानी है। संज्ञा के रूप में हेयुरिस्टिक्स, हेयुरिस्टिक विधियों का दूसरा नाम है।
अधिक सटीक शब्दों में, आंकड़े आसानी से सुलभ होने के बावजूद रणनीतियों के लिए खड़े होते हैं, हालांकि बहुत कम लागू होते हैं, मानव प्राणियों और मशीनों में समस्या को हल करने के लिए जानकारी।
जबकि एक एल्गोरिथ्म एक विधि है जिसमें एक समस्या को हल करने के लिए उपयोग किए जाने वाले निर्देशों का सीमित सेट होता है। समस्या के लिए काम करने के लिए विधि को गणितीय या वैज्ञानिक रूप से सिद्ध किया गया है। औपचारिक तरीके और प्रमाण हैं।
ह्यूरिस्टिक एल्गोरिथ्म एक एल्गोरिथ्म है जो एक सामान्य हेयुरिस्टिक के फैशन में, कई व्यावहारिक परिदृश्यों में एक समस्या का स्वीकार्य समाधान पैदा करने में सक्षम है, लेकिन जिसके लिए इसकी शुद्धता का कोई औपचारिक प्रमाण नहीं है।
एक एल्गोरिथ्म एक आत्म निहित कदम-दर-कदम आपरेशन के सेट का प्रदर्शन किया जा रहा है 4 , आम तौर पर (कंप्यूटर या मानव) निर्देशों का एक परिमित अनुक्रम में इस तरह के रूप में एक समस्या का समाधान निर्धारित करने के लिए के रूप में व्याख्या: वहाँ के लिए एक से एक रास्ता है बी, या ए और बी के बीच का सबसे छोटा रास्ता क्या है। बाद वाले मामले में, आप 'उचित रूप से बंद' वैकल्पिक समाधान से भी संतुष्ट हो सकते हैं।
एल्गोरिदम की कुछ श्रेणियां हैं, जिनमें से हेयोरिस्टिक एल्गोरिदम एक है। इस मामले में एल्गोरिथम के (सिद्ध) गुणों के आधार पर, यह इन तीन श्रेणियों (नोट 1) में से एक में आता है:
ध्यान दें कि एक अनुमान एल्गोरिथ्म भी एक अनुमानी है, लेकिन मजबूत संपत्ति के साथ कि यह आउटपुट के समाधान (मूल्य) के लिए एक सिद्ध बाध्य है।
कुछ समस्याओं के लिए, किसी को कभी भी इष्टतम समाधान (नोट 2) की गणना करने के लिए एक 'कुशल' एल्गोरिथ्म नहीं मिला है। उन समस्याओं में से एक प्रसिद्ध ट्रैवलिंग सेल्समैन समस्या है। ट्रैवलिंग सेल्समैन समस्या के लिए क्रिस्टोफ़ाइड्स का एल्गोरिथ्म, उदाहरण के लिए, एक अनुमानी कहा जाता था, क्योंकि यह साबित नहीं हुआ था कि यह इष्टतम समाधान के 50% के भीतर था। चूंकि यह साबित हो चुका है, हालांकि, क्रिस्टोफ़ाइड्स के एल्गोरिथ्म को अधिक सटीक रूप से सन्निकटन एल्गोरिथ्म के रूप में संदर्भित किया जाता है।
कंप्यूटर क्या कर सकते हैं पर प्रतिबंध के कारण, यह हमेशा संभव नहीं है कुशलता से खोजने के लिए सबसे अच्छा समाधान संभव। यदि किसी समस्या में पर्याप्त संरचना है, तो समाधान स्थान को पार करने के लिए एक कुशल तरीका हो सकता है, भले ही समाधान स्थान विशाल हो (यानी सबसे छोटी पथ समस्या में)।
खोज की दिशा को निर्देशित करने के लिए आमतौर पर एल्गोरिदम के रनिंग टाइम को बेहतर बनाने के लिए 'विशेषज्ञ जानकारी' या 'शिक्षित अनुमान' जोड़कर हेयुरिस्टिक्स लागू की जाती हैं। व्यवहार में, एक यकृत भी एक इष्टतम एल्गोरिथ्म के लिए एक उप-दिनचर्या हो सकता है, यह निर्धारित करने के लिए कि पहले कहाँ देखना है ।
(नोट 1) : इसके अलावा, एल्गोरिदम की विशेषता है कि क्या वे यादृच्छिक या गैर-नियतात्मक तत्व शामिल हैं। एक एल्गोरिथ्म जो हमेशा एक ही तरीके से क्रियान्वित होता है और एक ही उत्तर का उत्पादन करता है, को नियतात्मक कहा जाता है।
(नोट 2) : इसे पी बनाम एनपी समस्या कहा जाता है, और जिन समस्याओं को एनपी-पूर्ण और एनपी-हार्ड के रूप में वर्गीकृत किया जाता है, उनमें 'कुशल' एल्गोरिथ्म होने की संभावना नहीं है। ध्यान दें; जैसा कि @Kriss ने टिप्पणियों में उल्लेख किया है, वहाँ भी 'बदतर' प्रकार की समस्याएं हैं, जिन्हें गणना करने के लिए घातीय समय या स्थान की आवश्यकता हो सकती है।
ऐसे कई उत्तर हैं जो प्रश्न का उत्तर देते हैं। मैंने उन्हें कम पूर्ण और पर्याप्त सटीक नहीं समझा, और @ क्रिस द्वारा किए गए स्वीकृत उत्तर को संपादित नहीं करने का निर्णय लिया
वास्तव में मुझे नहीं लगता कि उनके बीच बहुत कुछ है। कुछ एल्गोरिथ्म अपने तर्क में अनुमानों का उपयोग करते हैं (अक्सर कम गणना करने या तेज परिणाम प्राप्त करने के लिए)। आमतौर पर heuristics तथाकथित लालची एल्गोरिदम में उपयोग किया जाता है।
आंकड़े कुछ "ज्ञान" है जो हम मानते हैं कि हमारे एल्गोरिथ्म में सबसे अच्छा विकल्प प्राप्त करने के लिए उपयोग करना अच्छा है (जब एक विकल्प लिया जाना चाहिए)। उदाहरण के लिए ... शतरंज में एक उत्तराधिकार हो सकता है (हमेशा विरोधियों की रानी ले सकते हैं यदि आप कर सकते हैं, क्योंकि आप जानते हैं कि यह सबसे मजबूत है)। आंकड़े आपको गारंटी नहीं देते हैं कि आपको सही उत्तर तक ले जाएगा, लेकिन (यदि धारणा सही है) तो अक्सर जवाब मिलता है जो बहुत कम समय में सबसे अच्छा होता है।
हेयुरेटिक्स एल्गोरिदम हैं, इसलिए इस अर्थ में कोई भी नहीं है, हालांकि, समस्या निवारण के लिए 'अनुमान' दृष्टिकोण लेते हैं, 'सबसे अच्छा संभव' समाधान खोजने के बजाय एक 'अच्छा पर्याप्त' उत्तर देते हैं।
एक अच्छा उदाहरण यह है कि आपके पास एक बहुत कठिन (एनपी-पूर्ण पढ़ें) समस्या है जिसके लिए आप एक समाधान चाहते हैं, लेकिन उसके पास पहुंचने का समय नहीं है, इसलिए एक हेयोरिस्टिक एल्गोरिथ्म के आधार पर एक अच्छा पर्याप्त समाधान का उपयोग करना होगा, जैसे कि एक आनुवंशिक एल्गोरिथ्म का उपयोग कर एक यात्रा विक्रेता समस्या का हल खोजना।
एल्गोरिथ्म कुछ ऑपरेशनों का एक क्रम है जो एक इनपुट कुछ गणना करता है (एक फ़ंक्शन) और एक परिणाम आउटपुट करता है।
एल्गोरिथम एक सटीक या अनुमानित मान प्राप्त कर सकता है।
यह एक यादृच्छिक मूल्य की गणना भी कर सकता है जो सटीक मूल्य के करीब उच्च संभावना के साथ है।
एक हेयोरिस्टिक एल्गोरिथ्म इनपुट मूल्यों पर कुछ अंतर्दृष्टि का उपयोग करता है और सटीक मूल्य (लेकिन इष्टतम के करीब हो सकता है) की गणना करता है। कुछ विशेष मामलों में, हेयुरिस्टिक सटीक समाधान पा सकते हैं।
एक एल्गोरिथ्म एक समस्या को हल करने के लिए निर्देशों का स्पष्ट रूप से परिभाषित सेट है, समाधान तक पहुंचने के लिए हेयूरिस्टिक्स सीखने और खोज के दृष्टिकोण का उपयोग करना शामिल है।
इसलिए, यदि आप जानते हैं कि किसी समस्या को कैसे हल किया जाए तो एक एल्गोरिथ्म का उपयोग करें। यदि आपको कोई समाधान विकसित करने की आवश्यकता है तो यह उत्तराधिकार है।
एक अनुमानी आमतौर पर एक अनुकूलन या एक रणनीति है जो आमतौर पर एक अच्छा पर्याप्त उत्तर प्रदान करता है, लेकिन हमेशा और शायद ही कभी सबसे अच्छा जवाब नहीं। उदाहरण के लिए, यदि आप ब्रूट फोर्स के साथ यात्रा सेल्समैन की समस्या को हल करने के लिए थे, तो एक आंशिक समाधान को छोड़ देना, क्योंकि इसकी लागत मौजूदा सर्वोत्तम समाधान से अधिक है, एक अनुमानी है: कभी-कभी यह मदद करता है, दूसरी बार ऐसा नहीं करता है, और यह निश्चित रूप से नहीं होता है ' टी एल्गोरिथ्म के सैद्धांतिक (बड़े-ओह संकेतन) चलाने के समय में सुधार
मुझे लगता है कि हेयुरिस्टिक आर्टिफिशियल इंटेलिजेंस में लर्निंग बेस्ड मॉडल में इस्तेमाल की जाने वाली अड़चन है क्योंकि भविष्य के समाधान के राज्यों की भविष्यवाणी करना मुश्किल है।
लेकिन फिर उपरोक्त उत्तरों को पढ़ने के बाद मेरा संदेह यह है कि "स्टोकेस्टिक ऑप्टिमाइज़ेशन तकनीक का उपयोग करके हेयुरिस्टिक को सफलतापूर्वक कैसे लागू किया जा सकता है? या क्या स्टोकेस्टिक ऑप्टिमाइज़ेशन के साथ उपयोग किए जाने पर वे पूर्ण विकसित एल्गोरिदम के रूप में कार्य कर सकते हैं?"
मेरे द्वारा पढ़ी गई सर्वश्रेष्ठ व्याख्याओं में से एक महान पुस्तक कोड कम्प्लीट से आती है , जिसे अब मैं उद्धृत करता हूं:
एक हेयुरिस्टिक एक तकनीक है जो आपको उत्तर की तलाश में मदद करती है। इसके परिणाम संयोग के अधीन हैं क्योंकि एक अनुमानी आपको केवल यह बताता है कि कैसे दिखना है, न कि क्या खोजना है। यह आपको नहीं बताता कि बिंदु A से बिंदु B तक सीधे कैसे जाएं; यह भी नहीं पता हो सकता है कि बिंदु ए और बिंदु बी कहां हैं। वास्तव में, एक यकृत एक विदूषक सूट में एक एल्गोरिथ्म है। यह कम भविष्यवाणी है, सक्षम है, यह अधिक मजेदार है, और यह 30-दिन, मनी-बैक गारंटी के बिना आता है।
यहां किसी के घर तक ड्राइविंग के लिए एक एल्गोरिथ्म है: राजमार्ग 167 को Puy-allup के दक्षिण में ले जाएं। दक्षिण हिल मॉल से बाहर निकलें और पहाड़ी से 4.5 मील की दूरी पर ड्राइव करें। किराने की दुकान द्वारा प्रकाश पर दाएं मुड़ें, और फिर पहले बाईं ओर ले जाएं। 714 उत्तर देवदार में बाईं ओर बड़े टैन हाउस के ड्राइववे में मुड़ें।
यहां किसी के घर जाने के लिए एक अनुमान है: अंतिम पत्र जिसे हमने आपको मेल किया था, उसे ढूंढें। वापसी पते में शहर के लिए ड्राइव। जब आप शहर जाते हैं, तो किसी से पूछें कि हमारा घर कहां है। हर कोई हमें जानता है - कोई आपकी मदद करने में प्रसन्न होगा। यदि आप किसी को नहीं ढूंढ सकते हैं, तो हमें एक सार्वजनिक फोन से कॉल करें, और हम आपको प्राप्त करेंगे।
एक एल्गोरिथ्म और एक हेयुरिस्टिक के बीच अंतर सूक्ष्म है, और दो शब्द कुछ हद तक ओवर-लैप हैं। इस पुस्तक के प्रयोजनों के लिए, दोनों के बीच मुख्य अंतर समाधान से अप्रत्यक्ष स्तर है। एक एल्गोरिथ्म आपको सीधे निर्देश देता है। एक हेयुरिस्टिक आपको बताता है कि अपने लिए निर्देशों की खोज कैसे करें, या कम से कम उनके लिए कहां देखें।
वे किसी भी गारंटी के बिना एक समाधान को अपनाते हैं जो पाए गए समाधान की गुणवत्ता के अनुसार होता है, यह स्पष्ट है कि यह केवल बहुरूपता के उत्तराधिकार के विकास के लिए समझ में आता है। इन विधियों का अनुप्रयोग वास्तविक दुनिया की समस्याओं या बड़ी समस्याओं को सुलझाने के लिए कम्प्यूटेशनल दृष्टिकोण से इतना अजीब है कि उनके लिए बहुपदीय समय में एक अनुमानित समाधान खोजने में सक्षम एल्गोरिदम भी नहीं है।