शिक्षण एनपी-पूर्णता - ट्यूरिंग कटौती बनाम कार्प कटौती


25

मैं इस सवाल में दिलचस्पी रखता हूं कि कंप्यूटर विज्ञान की बड़ी कंपनियों को एनपी-पूर्णता कैसे सिखाना है। विशेष रूप से, क्या हमें इसे करप कटौती या ट्यूरिंग कटौती का उपयोग करके सिखाना चाहिए?

मुझे लगता है कि एनपी-पूर्णता और कटौती की अवधारणाएं कुछ ऐसी हैं जो प्रत्येक कंप्यूटर विज्ञान प्रमुख को सीखना चाहिए। हालांकि, एनपी-पूर्णता सिखाते समय, मैंने देखा है कि कार्प की कटौती के उपयोग में कुछ गिरावट है।

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

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

अंत में, एक छात्र के रूप में, मुझे याद है कि जब मैं "टॉटोलॉजी" जैसी समस्या से घबरा गया था - उदाहरण के लिए, एक बूलियन फॉर्मूला दिया, तो जांचें कि क्या यह एक टॉटोलॉजी है। क्या भ्रामक था कि यह समस्या स्पष्ट रूप से कठिन है: इसके लिए कोई भी बहुपद-काल एल्गोरिदम का अर्थ होगा कि P=NP; और इस समस्या को हल करना स्पष्ट रूप से कठिन है क्योंकि टॉटोलॉजी समस्या को हल करना। हालाँकि, भले ही सहज रूप से टॉटोलॉजी संतोषजनकता के समान कठिन हो, लेकिन टॉटोलॉजी एनपी-हार्ड नहीं है। हां, मुझे आज समझ में आया कि यह मामला क्यों है, लेकिन उस समय मुझे याद आया कि इससे हैरान हूं। (आखिरकार मुझे समझ में आने के बाद मेरे सिर से क्या गुजर रहा था: हम एनपी-हार्ड और को-एनपी-हार्ड के बीच इस अंतर को क्यों खींचते हैं, वैसे भी? यह कृत्रिम लगता है और अभ्यास से बहुत अच्छी तरह से प्रेरित नहीं है। हम एनपी पर ध्यान केंद्रित क्यों करते हैं? सह-एनपी की तुलना में; वे समान रूप से स्वाभाविक लगते हैं। व्यावहारिक दृष्टिकोण से, सह-एनपी-कठोरता अनिवार्य रूप से एनपी-कठोरता के समान ही व्यावहारिक परिणाम हैं, इसलिए हम सभी को इस अंतर पर क्यों लटका दिया जाता है? हां, मुझे पता है? जवाब, लेकिन एक छात्र के रूप में, मुझे याद है कि इसने इस विषय को और अधिक रहस्यमय और खराब रूप से प्रेरित महसूस किया।)

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


संबंधित: यहां और यहां देखें , जिसमें उल्लेख किया गया है कि इस कारण से कि हम साहित्य में करप कटौती का उपयोग करते हैं क्योंकि यह हमें एनपी-कठोरता और सह-एनपी-कठोरता के बीच अंतर करने में सक्षम बनाता है। हालाँकि, यह किसी भी उत्तर को देने के लिए नहीं लगता है, जो कि शैक्षणिक क्षमता के एल्गोरिदम वर्ग के सीखने के उद्देश्यों के लिए महत्वपूर्ण है, जो कि प्रत्येक सीएस प्रमुख द्वारा लिया जाना चाहिए। यहां देखें cstheory.SE पर , जिसकी इसी तरह की चर्चा है।


प्रेरक अवलोकन: एनपी में एक समस्या के ट्यूरिंग-कम कर देता है मतलब है ज्ञात नहीं है XNP

1
@ रिकीडेमर, समझ गया - लेकिन जब हम किसी समस्या को प्रदर्शित करने की कोशिश कर रहे हैं तो कठिन है, हम वास्तव में परवाह नहीं करते हैं कि एनपी में है या नहीं, ताकि मुझे सुपर-प्रभावी रूप से प्रेरित न करें। और, एक समस्या दिखा कठिन एनपी, एनपी पूर्णता, एनपी कठोरता, आदि का मुख्य आवेदन किया जाता हैX
DW

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

जवाबों:


10

मैं कहूँगा कि निश्चित रूप से Karp (कई-एक) कटौती का उपयोग करके पढ़ाया जाएगा। पॉली-टाइम ट्यूरिंग रिडक्शन (कुक) का उपयोग करने के लाभों के बावजूद, करप कटौती मानक मॉडल है।

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

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


7

दोनों को पढ़ाना बेहतर है ! एक कंप्यूटर विज्ञान प्रमुख को इन दोनों के बारे में जानना चाहिए।

मैं किसी को भी नहीं जानता जो एनपी-पूर्णता, जटिलता सिद्धांतकारों को पढ़ाने के लिए कुक कटौती का उपयोग करता है, स्पष्ट रूप से नहीं, गैर-जटिलता सिद्धांतकार आमतौर पर करप के पेपर के बाद से मानक परिभाषा का पालन करते हैं और सभी पाठ्यपुस्तकों में उपयोग किया जाता है (जो मुझे पता है)। यदि आप मानक शब्दावली का पालन नहीं करते हैं तो यह बाद में उनके लिए बहुत भ्रम पैदा करेगा।

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

मैं कुक कटौती के बाद कार्प में कमी और एक विशेष प्रकार की कुक कटौती के रूप में पेश करता हूं। मुझे लगता है कि वे एन पी के अध्ययन के लिए आवश्यक हैं । यह N P और P N P के बीच का अंतर है । मुझे लगता है कि यह स्पष्ट है कि एन पी इसकी सत्यापनकर्ता परिभाषा को देखते हुए बहुत अधिक स्वाभाविक है।NPNPPNPNP

NPcoNPNPNPNPPNP

xAf(x)B


2
NPNPNPNP

@DW का मतलब आपकी टिप्पणी में "(दूसरा और तीसरा)" कार्प "के स्थान पर" कुक "था? आप अभी भी यह साबित कर सकते हैं कि कुक का उपयोग करके समस्याएं कठिन हैं, यह मुद्दा नहीं है। मुद्दा यह है कि एनपी उनके तहत बंद नहीं है, अर्थात कुक की कमी समस्याओं की कुशलता से पुष्टि नहीं करती है।
केव

2
उफ़, हाँ, मेरा मतलब कुक था, कार्प नहीं। (argh!) मैं समझता हूं कि कुक कटौती के तहत एनपी बंद नहीं है, लेकिन क्या आप इस बात पर विस्तार से बता सकते हैं कि समस्या क्यों है, इस दृष्टिकोण से कि हम एल्गोरिदम को कैसे अंडरग्रेजुएट्स को पढ़ाते हैं? शैक्षणिक या वैचारिक समस्याएं क्या पैदा करती हैं? यदि हम उस तरह के एल्गोरिदम सिखाते हैं, तो नकारात्मक परिणाम क्या होगा और सिर्फ स्वीकार / स्वीकार किया जाएगा कि एनपी कुक कटौती के तहत बंद नहीं है? उदाहरण के लिए, क्या यह छात्रों के बीच कुछ समस्याग्रस्त वैचारिक गलतफहमी पैदा करेगा?
DW

-3

एक कमी की सहज धारणा है "यदि मेरे पास समस्या एक्स को हल करने के लिए एक एल्गोरिथ्म है, तो मैं इसे समस्या वाई को हल करने के लिए भी उपयोग कर सकता हूं,"।

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

इसलिए, सिद्धांत हमें गणना को मौलिक रूप से एक प्रक्रिया के रूप में देखने का तरीका बता रहा है जो कुछ परिस्थितियों में एक उत्तर दे सकता है। अन्य परिस्थितियों में, यह नहीं हो सकता है। एनपी पूर्णता और निर्णायकता के लिए, मौलिक और सबसे सामान्य प्रश्न है, "क्या एक एल्गोरिथ्म है जो Yपी समय में लौटता है"। लेकिन यह एक एल्गोरिथ्म के बारे में कुछ नहीं कहता है जो Nपी समय में वापस आता है। एक एल्गोरिथ्म YP समय में एक उदाहरण के लिए वापस आ सकता है लेकिन अन्य उदाहरणों पर उत्तर नहीं लौटा सकता है। सिद्धांत हमें बता रहा है कि वास्तव में यहां एक अलग अंतर है जिस पर हमें ध्यान देना है। यदि इसके अचूक, इसका मतलब है कि हमारे मौलिक अंतर्ज्ञानों को पुनःप्रकाशित किया जाना चाहिए (जैसा कि सैद्धांतिक शिक्षण में अक्सर होता है)।


दूसरे शब्दों में, जाहिरा तौर पर वहाँ एल्गोरिदम मौजूद हो सकते हैं जो YP समय में लौटते हैं लेकिन P को वापस आने के लिए P समय से अधिक "लंबे समय तक" लगते हैं Nऔर यह सिद्धांत उस उत्तर के आसपास / उन्मुख / केंद्रित पर आधारित है जो उत्तर देने में समय लेता है Y
vzn

1
कोई भी छात्र जिसने पांच से अधिक कार्यक्रम लिखे हैं, वह प्रत्यक्ष व्यक्तिगत अनुभव से "एक एल्गोरिथ्म जो रुक नहीं जाता है" की अवधारणा से परिचित है।
डेविड रिचेर्बी

रोज़मर्रा के अनुभव / उपमाओं के आधार पर अनुरोध करने के लिए एक अधिक सहज तरीके से कोएनपी को परिभाषित करने की कोशिश में सिर्फ एक छुरा लेना। हमेशा यह खुद को भी unintuitive पाया है। किसी को भी एक बेहतर तरीका है?
vzn
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.