यह समस्या, जिसे मैं CO को कॉलम ऑर्डरिंग के लिए कॉल करूंगा, NP- हार्ड है । यहां एनपी-हार्ड समस्या वर्टेक्स कवर (वीसी) से इसमें कमी आई है:
कुलपति और सीओ के निर्णय की समस्या
इनपुट वीसी इंस्टेंस होने दें । यह प्रश्न का प्रतिनिधित्व करता है: "ग्राफ को देखते हुए है, यह अधिक से अधिक का एक सेट का चयन करने के लिए संभव है से कोने ऐसी है कि हर बढ़त कम से कम एक चुने हुए शिखर पर घटना है?" हम CO के एक उदाहरण का निर्माण करेंगे जो प्रश्न का प्रतिनिधित्व करता है: "मैट्रिक्स को तत्वों के साथ देखते हुए , क्या यह संभव है कि के स्तंभों की अनुमति दी जाए जैसे कि 1 कम से कम पंक्तियों पर -1 से पहले दिखाई देता है ? " निर्णय समस्या में ये दो समस्याएं बताई गई हैं(V,E,k)(V,E)kVE(A,k′)A{−1,0,1}Ak′फार्म, जिससे प्रत्येक का उत्तर हां या नहीं: औपचारिक रूप से बोल रहा है, यह एनपी-पूर्ण (या नहीं) एक समस्या का रूप है। यह देखना बहुत मुश्किल नहीं है कि ओपी के प्रश्न में कहा गया अधिक प्राकृतिक अनुकूलन समस्या रूप जटिलता के संदर्भ में लगभग बराबर है: निर्णय समस्या सॉल्वर का उपयोग करके अनुकूलन समस्या को हल करने के लिए दहलीज पैरामीटर पर द्विआधारी खोज का उपयोग किया जा सकता है, जबकि एक ऑप्टिमाइज़ेशन प्रॉब्लम सॉल्वर का इन्वॉल्वमेंट, उसके बाद एक सिंगल कंपेरिजन, डिसिजन प्रॉब्लम को सॉल्व करने के लिए काफी है।
कुलपति के एक उदाहरण से सीओ के एक उदाहरण का निर्माण
चलोऔर। हम पंक्तियों और कॉलमों के साथ एक मैट्रिक्स बनाएंगे । शीर्ष पंक्तियाँ पंक्तियों के ब्लॉक से बनेगी, प्रत्येक ब्लॉक एक किनारे का प्रतिनिधित्व करता है जिसे कवर करने की आवश्यकता होती है । नीचे की पंक्तियों में वर्टेक्स "झंडे" होते हैं, जो एक निश्चित लागत को उठाने के लिए एक कॉलम (एक वर्टेक्स के अनुसार) का कारण बनेगा, अगर यह CO समाधान के बाएं-हाथ की तरफ (वर्टेक्स में शामिल किए जा रहे एक वर्टेक्स के अनुरूप) में शामिल है कुलपति समाधान का कवर)।n=|V|m=|E|A(n+1)m+nn+1(n+1)mmn+1n
प्रत्येक शीर्ष , एक कॉलम बनाएं जिसमें:vi
- शीर्ष के बीच पंक्तियाँ, के मई के ब्लॉक पंक्तियों सब एक +1 शामिल जब किनारे पर घटना है , और 0 अन्यथा, और(n+1)mjn+1ejvi
- नीचे पंक्तियाँ -th को छोड़कर सभी 0 हैं , जो -1 है।ni
एक और "बाड़" कॉलम बनाएं जिसमें -1 की प्रतियां हों, उसके बाद +1 की प्रतियां हों।(n+1)mn
अंत में, निर्मित CO उदाहरण के लिए थ्रेशोल्ड सेट करें : । दूसरे शब्दों में, हम सबसे पंक्तियों पर अनुमति देते हैं जिसमें -1 +1 से पहले दिखाई देता है। चलो एक सीओ समाधान की "लागत" उल्लंघन पंक्तियों की इस संख्या को कहते हैं।k′(n+1)m+n−kk
सबूत
CO उदाहरण के समाधान और मूल कुलपति उदाहरण में कोने के सेट के बीच का पत्राचार है: बाड़ के बाईं ओर स्थित प्रत्येक स्तंभ एक वर्टेक्स से संबंधित होता है जो सेट में होता है, और बाड़ के दाईं ओर स्थित प्रत्येक स्तंभ संगत होता है एक शिखर जो नहीं है।
सहज रूप से, "बाड़" कॉलम के शीर्ष में -1 s कॉलम के एक सबसेट के चयन को उसके बाईं ओर रखने के लिए मजबूर करता है जिसमें एक साथ इन सभी पदों में + 1 s होता है - हर कोने पर होने वाले वर्टीकल के उपसमूह के अनुरूप। धार। "बाड़" के बाईं ओर दिखाई देने वाले इन स्तंभों में से प्रत्येक के नीचे पंक्तियों में एक अलग पंक्ति पर -1 है , जिसकी लागत 1 है; "बाड़" के तल में + 1 s यह सुनिश्चित करता है कि सभी स्तंभों को इसके दाईं ओर रखा जाए ऐसी कोई लागत नहीं है।n
जाहिर है ज्यादा से ज्यादा का उपयोग कर एक कुलपति समाधान कोने ज्यादा से ज्यादा लागत के साथ निर्माण किया सीओ उदाहरण के लिए एक समाधान पैदावार : बस आदेश कॉलम मनमाने ढंग से शीर्ष कवर में कोने करने के लिए इसी, बाड़ स्तंभ के बाद, किसी भी क्रम में सभी शेष स्तंभ ।kk
यह दर्शाता है कि अधिकांश पर लागत के साथ सीओ उदाहरण के लिए एक समाधान सबसे कोने के साथ एक शीर्ष कवर से मेल खाती है ।kk
इसके विपरीत मान लीजिए कि CO के लिए एक समाधान मौजूद है जिसमें अधिकांश पर लागत है जो +1 के पहले -1 पंक्तियों के साथ कुछ पंक्तियाँ छोड़ता है । यह पंक्ति एक विशेष किनारे अनुरूप पंक्तियों के एक ब्लॉक से संबंधित है । मूल उदाहरण में इस ब्लॉक में हर पंक्ति निर्माण से समान है; अनुमति देने वाले कॉलम इन पंक्तियों को बदल सकते हैं, लेकिन इस तथ्य को प्रभावित नहीं करते हैं कि वे समान हैं। इस प्रकार इन समरूप पंक्तियों में से प्रत्येक में +1 से पहले समाधान में कम से कम की लागत होती है । लेकिन : विरोधाभास।k(n+1)m(n+1)uvAn+1n+1k≤n<n+1
में से प्रत्येक के बाद से शीर्ष में पंक्तियों की ब्लॉक है जो: पंक्तियों है एक -1 से पहले एक +1, इसी किनारों में से प्रत्येक के एक शीर्ष बाड़ के लिए छोड़ दिया करने के लिए एक स्तंभ के लिए इसी से आच्छादित है , कोने के सबसेट एक शीर्ष कवर का गठन किया। चूंकि शीर्ष पंक्तियों में से कोई भी +1 से पहले +1 नहीं है, एकमात्र स्थान जहां समाधान में लागत आ सकती है, नीचे पंक्तियों में है, बाड़ के बाईं ओर रखे गए स्तंभों से। इस तरह के प्रत्येक कॉलम की कीमत ठीक 1 है, इसलिए यह देखते हुए कि लागत अधिकांश , ऐसे कॉलम में अधिकांश पर होना चाहिए , और इसलिए कवर में अधिकांश कोने पर हैं।m(n+1)m(n+1)mnkkk
अंत में, यह स्पष्ट है कि सीओ इंस्टेंस का निर्माण वीसी उदाहरण से बहुपद समय में किया जा सकता है, जिसका अर्थ है कि यदि सीओ को हल करने के लिए एक बहुपद-काल एल्गोरिथ्म मौजूद है, तो किसी भी वीसी उदाहरण को पहले वर्णित सीओ उदाहरण का निर्माण करके बहुपद समय में हल किया जा सकता है। ऊपर और फिर इसे हल करना। चूंकि वीसी एनपी-हार्ड है, सीओ भी है।