मैंने ध्वनि और पूर्ण की अलग-अलग व्याख्याएं सुनीं । मैं समझता हूं कि पूर्णता का अर्थ है अगर कोई एक समाधान मिल जाए। एल्गोरिथम ध्वनि कहने का क्या मतलब है ।
एल्गोरिथम को साउंड और कम्प्लीट कहने का क्या मतलब है?
मैंने ध्वनि और पूर्ण की अलग-अलग व्याख्याएं सुनीं । मैं समझता हूं कि पूर्णता का अर्थ है अगर कोई एक समाधान मिल जाए। एल्गोरिथम ध्वनि कहने का क्या मतलब है ।
एल्गोरिथम को साउंड और कम्प्लीट कहने का क्या मतलब है?
जवाबों:
ये तर्क से संबंधित बहुत विशिष्ट शब्द हैं।
यहाँ कुछ शुरुआती बिंदु हैं:
http://en.wikipedia.org/wiki/Soundness
http://en.wikipedia.org/wiki/Completeness_(logic)
असल में, साउंडनेस (एक एल्गोरिथ्म) का अर्थ है कि एल्गोरिथ्म कोई परिणाम नहीं देता है जो असत्य हैं। यदि, उदाहरण के लिए, मेरे पास एक सॉर्टिंग एल्गोरिथ्म है जो कभी-कभी सॉर्ट की गई सूची को वापस नहीं करता है, तो एल्गोरिथ्म ध्वनि नहीं है।
दूसरी ओर, संपूर्णता का अर्थ है कि एल्गोरिथ्म सभी संभावित इनपुट को संबोधित करता है और कोई भी याद नहीं करता है। इसलिए, अगर मेरी सॉर्टिंग एल्गोरिथ्म कभी भी एक अनसुलझी सूची नहीं लौटाती है, लेकिन केवल उन सूचियों पर काम करने से इनकार कर दिया है जिसमें 7 नंबर शामिल है, यह पूरा नहीं होगा।
यह पूर्ण और ध्वनिपूर्ण है यदि यह सभी इनपुट पर काम करता है (कार्यक्रम की दुनिया में शब्दशः मान्य) और हमेशा उत्तर सही मिलता है।
मुझे लगता है कि एरिक डायट्रिच का उत्तर एक उलझन भरा है। निम्नलिखित बेहतर है:
एक एल्गोरिथ्म ध्वनि है अगर, कभी भी यह एक उत्तर देता है, तो यह उत्तर सही है। एक एल्गोरिथ्म पूरा हो गया है अगर यह किसी भी मनमाने इनपुट के लिए एक सही उत्तर देने की गारंटी देता है (या, यदि कोई जवाब मौजूद नहीं है, तो यह विफलता की वापसी की गारंटी देता है)।
दो महत्वपूर्ण बिंदु:
एक उदाहरण के लिए एक छँटाई एल्गोरिथ्म ए पर विचार करें जो इनपुट को संख्याओं की सूची के रूप में प्राप्त करता है। हम कहते हैं कि A ध्वनि है यदि हर बार यह परिणाम देता है तो परिणाम एक क्रमबद्ध सूची है। इसी तरह, हम कहते हैं कि A पूर्ण है यदि किसी भी समय छांटे गए सूची को वापस करने की गारंटी देता है, तो हम इसे संख्याओं की सूची देते हैं।
ये शब्द कम्प्यूटेशन सिद्धांत से आए हैं, इसलिए वे सॉफ्टवेयर इंजीनियरिंग के संदर्भ में गणना सिद्धांत के संदर्भ में अधिक सार्थक हैं
गणना के अधिकांश मानक मॉडल में, कंप्यूटिंग समस्याओं को भाषाओं के रूप में दर्शाया जाता है । एक भाषा तार का एक सेट है। एक एल्गोरिथ्म, तब, सिर्फ एक प्रणाली या प्रक्रिया है जो यह तय करती है कि क्या दी गई स्ट्रिंग किसी भाषा का सदस्य है (सही या गलत लौटाकर)। सॉफ्टवेयर इंजीनियरिंग के संदर्भ में, गणना सिद्धांत विशेष रूप से ऐसे कार्यों से संबंधित है जो इस तरह दिखते हैं, मान लेते हैं कि तार अपरिवर्तनीय हैं:
boolean some_function(string argument){...}
हम इस फ़ंक्शन को पूर्ण कहते हैं यदि यह हर तर्क के लिए सही है जो भाषा का सदस्य है। इसे हम ध्वनि कहते हैं यदि यह हर तर्क के लिए गलत है जो भाषा का सदस्य नहीं है।
दूसरे शब्दों में, यह तब पूरा होता है जब यह हमेशा सच हो जाता है जब हम चाहते हैं कि यह सच हो, और ध्वनि अगर यह हमेशा झूठी होती है जब हम इसे वापस लौटना चाहते हैं।
यह अन्य प्रकार के फ़ंक्शन में कैसे अनुवाद करता है? जैसा कि यह पता चला है, लगभग हमेशा एक स्ट्रिंग में डेटा की एक मनमानी मात्रा को सामान करना और इसे फ़ंक्शन के अंदर पुनर्गठित करना संभव है। इसलिए तर्क प्रकार और योग्यता पर प्रतिबंध एक सैद्धांतिक सरलीकरण से अधिक कुछ नहीं है। हालांकि, रिटर्न प्रकार पर प्रतिबंध अधिक महत्वपूर्ण है। जिन समस्याओं को बूलियन परिणाम कहते हैं, उन्हें निर्णय समस्याएं कहा जाता है । बहुत गणना सिद्धांत में निर्णय समस्याएं शामिल हैं; पी और एनपी सेट समस्याओं के लिए प्रतिबंधित हैं (और एनपी, कम से कम, इस प्रतिबंध के बिना यथोचित परिभाषित नहीं किया जा सकता है)। हॉल्टिंग समस्या एक भारी-भरकम अध्ययन समस्या का एक और उदाहरण है।
यह मेरी राय है कि ये शब्द निर्णय समस्याओं के क्षेत्र के बाहर सामान्यीकरण नहीं करते हैं, इसलिए सामान्य फ़ंक्शन पर चर्चा करते समय उनके बीच का अंतर वास्तव में सार्थक नहीं है।
कर रहे हैं अतः में काफी बेहतर जवाब । मूल रूप से, आप खोज करने के लिए कुछ डेटा संग्रह और मानदंड प्रदान करते हैं। ध्वनि एल्गोरिथ्म आपको केवल मछली पकड़ता है जो मानदंडों से मेल खाता है लेकिन यह कुछ डेटा आइटमों को याद कर सकता है। पूर्ण एल्गोरिथ्म अनुरोधित परिणामों के एक सुपरसेट का उत्पादन करता है, जिसका अर्थ है कि आपको अनुरोधित परिणामों के शीर्ष पर कुछ कचरा प्राप्त होता है। ध्वनि एल्गोरिथ्म अधिक रूढ़िवादी है।
सांख्यिकीविद् शायद कहेंगे कि ध्वनि एल्गोरिदम पक्षपाती तौलिए टाइप I त्रुटियाँ हैं (यह सही उम्मीदवारों को स्वीकार नहीं करता है), जबकि पूरा एल्गोरिथ्म टाइप II त्रुटियों (झूठे उम्मीदवारों को स्वीकार करने) के लिए पक्षपाती है।