क्या यह परिमित ग्राफ समस्या निर्णायक है? क्या कारक एक समस्या को निर्णायक बनाते हैं?


17

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

इनपुट: एक निर्देशित और परिमित ग्राफ , और साथ कोने के रूप में प्रश्न: क्या में साथ एक पथ प्रारंभिक शीर्ष और रूप में अंतिम शीर्ष के रूप में मौजूद है?जीvयू
जीयूv


जवाबों:


18

किसी भी समस्या के लिए केवल एक निश्चित मात्रा में डेटा की जांच करना आवश्यक है, क्योंकि एक एल्गोरिथ्म है जिसमें सभी संभावित समाधानों को शामिल करना शामिल है। यह हास्यास्पद रूप से धीमा हो सकता है, लेकिन यह प्रासंगिक नहीं है: यदि कोई एल्गोरिथ्म है, तो यह निर्णायक है।

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

संयोग से, इस संपत्ति को कनेक्टिविटी कहा जाता है

यह दृष्टिकोण आम है, जिसे कमी कहा जाता है । एक समस्या को देखते हुए, जो सीधी नहीं है, हमने इसे एक समस्या में घटा दिया जिसे हम जानते थे कि कैसे हल करना है।

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

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


15

समस्या तुच्छ रूप से निर्णायक है, जैसा कि गिल्स ने एक टिप्पणी में बताया है। अपने अन्य प्रश्न के लिए के रूप में ...

कुछ (जो यहाँ प्रदान की गई है ) को छोड़कर अधिकांश समस्याएं और एल्गोरिदम निर्णायक हैं ?

नहीं। वास्तव में, अधिकांश समस्याएं अनिर्दिष्ट हैं। वास्तव में, बेशुमार समस्याएं (भाषाएं) हैं, लेकिन केवल गिनती योग्य कई ट्यूरिंग मशीनें हैं, जिसका अर्थ है कि अधिकांश गणना योग्य कई विकट समस्याएं हैं।


8

हां, यह निर्णायक है, क्योंकि आप सभी संभावित रास्तों की विस्तृत खोज कर सकते हैं। किसी भी मार्ग को देखने की आवश्यकता नहीं है जो एक शीर्ष को दोहराते हैं, क्योंकि "चक्कर" को छोड़ दिया जा सकता है। लेकिन किसी भी गैर-दोहराए जाने वाले मार्ग की लंबाई ग्राफ के आकार से बंधी होती है, जो कि परिमित है, और इसलिए केवल बहुत से ऐसे रास्ते हैं, जिन्हें एक-एक करके चेक किया जा सकता है।

जी


क्या यह इनपुट पर निर्भर नहीं करता है? मेरा मतलब है कि जब दी गई जानकारी उत्तर का पता लगाने के लिए पर्याप्त नहीं है, तो क्या मुझे यह कहना चाहिए कि यह अविश्वसनीय है?
गिगिली

मुझे यकीन नहीं है कि आप क्या पूछ रहे हैं; समस्या के लिए आपने वर्णित इनपुट उत्तर खोजने के लिए पर्याप्त है।
कार्ल मम्मर्ट

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

@ZachLangley: सही है, मैं सामान्य मामला पूछ रहा था। यदि इनपुट के रूप में दी गई जानकारी समस्या को हल करने के लिए पर्याप्त नहीं है, तो क्या समस्या अनिर्णायक है?
गिगिली

यूvयूv

7

कोई विधि नहीं है जो आपको बताती है कि क्या कोई विशिष्ट समस्या निर्णायक है या नहीं। समय के साथ, आप एक अच्छा "कूबड़" प्राप्त कर सकते हैं या नहीं, एक विशेष समस्या विकट है।

आमतौर पर मैं निम्नलिखित कार्य करता हूं:

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

लगभग हमेशा, जब एक अनिर्णायक समस्या के लिए चरण (1) करने की कोशिश की जाती है, तो आपको अनंत चीजों की जांच करने के लिए अपने कार्यक्रम की आवश्यकता होगी । यह आमतौर पर एक संकेत है कि समस्या निर्णायक नहीं है।

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