न्यूनतम संचयी सेट राशि


17

इस समस्या पर विचार करें: परिमित सेटों की सूची को देखते हुए, एक जो छोटा करता है ।| s 1 | + | s 1s 2 | + | s 1s 2s 3 | + s1,s2,s3,|s1|+|s1s2|+|s1s2s3|+

क्या इसके लिए ज्ञात एल्गोरिदम हैं? इसकी जटिलता क्या है? मैं अभी तक एक कुशल इष्टतम एल्गोरिथ्म के बारे में सोच नहीं पाया हूं, लेकिन यह स्पष्ट रूप से एनपी-हार्ड में भी नहीं है।


1
क्या आपने सभी स्पष्ट उम्मीदवार तरीकों को एक लालची एल्गोरिथ्म के साथ हल करने की कोशिश की है, यह देखने के लिए कि उनमें से कोई भी काम करता है? (ऑड्स यह है कि उनमें से कोई भी काम नहीं करेगा, लेकिन यह जांचने लायक है। आमतौर पर प्रत्येक उम्मीदवार लालची एल्गोरिथ्म के लिए जिसे आप ध्यान में रखते हैं, अगर यह काम नहीं करता है, तो आमतौर पर यह साबित करने वाला काउंटरएक्सप्ले खोजना आसान होता है।)
डीडब्ल्यू

मैंने पहले ही साबित कर दिया कि लालची एल्गोरिथ्म n 3 के लिए काम नहीं करता है । Counterexample: A = {0, 1} B = C = {2,3,4}। इष्टतम समाधान बी, सी, लागत 11 के साथ ए है, लालची एल्गोरिथ्म ए, बी, सी लागत 12 के साथ देता है। अब तक का सबसे अच्छा मैं आया हूं, एक सन्निकटन एल्गोरिदम है जिसका अनुपात , जो बहुत बुरा है। n + 2n+23
सुरमा

एक -समय गतिशील कार्यक्रम है, जहां सेट की संख्या है। एनO(2npoly(n))n

1
शायद यह cstheory के लिए बेहतर है।
युवल फिल्मस डे

5
किसी को भी विशेष मामला है जब सभी हल कर सकते हैं ? |si|=2
डोमटॉर्प

जवाबों:


6

यह समस्या वास्तव में एक शेड्यूलिंग समस्या से संबंधित है जिसे "पूर्व निर्धारित समय को कम करने के लिए पूर्व निर्धारित विवशता" के रूप में जाना जाता है। समस्या इस प्रकार है: नौकरियों के एक सेट को देखते हुए, जहां प्रत्येक नौकरी का प्रसंस्करण समय (पी) और वजन (डब्ल्यू) है और नौकरियों पर एक पूर्ववर्ती ग्राफ परिभाषित किया गया है। लक्ष्य एक मशीन (गैर-पूर्व-निक्षेपक) में नौकरियों को निर्धारित करना है, ताकि पूर्ववर्ती बाधाओं को संतुष्ट किया जा सके और भारित समय पूरा होने का योग कम से कम हो। समस्या एनपी-हार्ड है और एक 2-सन्निकटन ज्ञात है।

न्यूनतम संचयी राशि की समस्या से निवारण पूर्ववर्ती विवशता समस्या के लिए: प्रत्येक तत्व के लिए p = 1, w = 0. के साथ एक नौकरी बनाएँ। इसके अलावा प्रत्येक सेट के लिए p = 0, w = 1 के साथ एक नौकरी बनाएँ। पूर्वता ग्राफ बनाएँ, जैसे कि यदि तत्व , तो को से पहले निर्धारित किया जाना चाहिए । मुझे लगता है कि शेड्यूलिंग समस्या का यह विशेष मामला एनपी-हार्ड भी है।एसeSeS

निम्नलिखित लिंक देखें,

1) http://www.win.tue.nl/~gwoegi/papers/precsum.pdf

2) http://web.engr.illipedia.edu/~chekuri/papers/dam_sched.ps


मैं शेड्यूलिंग समस्या के लिए बेहतर सीमा, विशेष मामलों और कठोरता के परिणाम के लिए निम्नलिखित पेपर की भी सिफारिश करूंगा। people.idsia.ch/~monaldo/papers/MOR-schedprec-11.pdf । बंसल और खोत win.tue.nl/~nikhil/pubs/focs-09-version.pdf द्वारा अनूठे खेलों के एक संस्करण के तहत 2- \ epsilon कठोरता पर कागज भी देखें ।
चंद्र चकुरी

कमी यह साबित करने के लिए अन्य दिशा में जाने के लिए नहीं है कि संचयी योग समस्या एनपी हार्ड है?
सुरमा

कोई बात नहीं, मुझे लगता है कि मैं देखता हूं कि कैसे कटौती दोनों तरीकों से होती है।
एंटिमोनी

1

शालमोली गुप्ता ने पहले ही समझाया कि सामान्य समस्या एनपी-हार्ड है, इसलिए मैंने जांच करने का फैसला किया कि क्या कोई विशेष मामले बहुपद घुलनशील हैं। आखिरकार, मुझे एक सेट के विशेष मामले का समाधान मिला जो एक पेड़ का प्रतिनिधित्व करता है, या अधिक आम तौर पर, सभी अतुलनीय सेटों के साथ उप-समावेश द्वारा एक श्रृंखला के समानांतर क्रम से असहमति होती है।

एक संपत्ति जो चीजों को आसान बनाती है, अगर सेट की सूची चौराहे के नीचे बंद है। यदि है, तो, वहाँ एक इष्टतम आदेश जिसमें है से पहले आता है । हम डब्ल्यूएलओजी मान सकते हैं कि इष्टतम आदेश, उप-समावेश द्वारा दिए गए आंशिक आदेश का एक रैखिक विस्तार है।s 1 s 2s1s2s1s2

चूँकि सेट के सभी उपसमुच्चय क्रम में इसके सामने आते हैं, इसका मतलब यह है कि किसी दिए गए सेट द्वारा रनिंग योग में जोड़ी गई राशि को निर्धारित किया जाता है, चाहे वह कहीं भी दिखाई दे। यदि सेट्स की सूची है, तो एक सेट की वृद्धिशील लागत उन तत्वों की संख्या है जो किसी भी सबसेट में नहीं हैं जो में दिखाई देता है । यदि एक ही सेट में कई बार दिखाई देता है , तो हम मनमाने ढंग से पहले जाने के लिए एक का चयन कर सकते हैं और दूसरों को 0 खर्च करने दें।एस एसSSS

इसका मतलब है कि यह समस्या एकल मशीन शेड्यूलिंग में पूर्ववर्ती बाधाओं के साथ न्यूनतम भारित समय पूरा करने की समस्या के बराबर है। इस समस्या में, वज़न के साथ नौकरियों का एक सेट दिया गया है और टाइम्स , और नौकरियों पर एक आंशिक आदेश , हम उन नौकरियों का क्रम खोजना चाहते हैं जो भारित कुल पूरा होने के समय को कम करता है, अर्थातटी जे पीwjtjP

i=1nwji(k=1itjk)

पूर्वता के अधीन बाधाओं । चौराहे बंद सेट के साथ न्यूनतम संचयी सेट समस्या को प्रत्येक सेट के लिए एक नौकरी बनाकर इसे चालू किया जा सकता है, जहां प्रत्येक नौकरी का वजन 1 है, ऊपर परिभाषित लागत के बराबर समय, और उप-समावेश द्वारा दिया गया आदेश है।पीPP

जैसा कि यह पता चला है, यह समस्या सामान्य लिए एनपी-हार्ड भी है। हालाँकि, कुछ विशेष रूपों को बहुपद समय में हल किया जा सकता है।पीPP

यह पेपर श्रृंखला के समानांतर आदेश (जिसमें पेड़ों का महत्वपूर्ण मामला भी शामिल है के मामले में एक एल्गोरिथ्म देता है । दुर्भाग्य से, मैं उस कागज तक नहीं पहुंच सका, इसलिए मैंने इसे स्वतंत्र रूप से मजबूत करने की कोशिश करने का फैसला किया। यहाँ मैं क्या लेकर आया हूँ।पीO(nlogn)P

इस समस्या को हल करने के लिए, कई टिप्पणियों की आवश्यकता होती है।

सबसे पहले, किसी भी पूर्वता की कमी के अभाव में, इष्टतम समाधान केवल बढ़ती नौकरियों के क्रम में नौकरियों को सॉर्ट करने के लिए है । सादगी के लिए, मैं इसे नौकरी के मूल्य के रूप में संदर्भित करूंगा, संक्षिप्त । ध्यान दें कि चूंकि छंटाई , इसलिए इस जटिलता से बेहतर करना असंभव है। v(j)O(nlogn)tjwjv(j)O(nlogn)

नियम 1 चलो और ऐसी है कि नौकरियों होना और ख एक को शामिल किया गया। यदि , तो हम इष्टतम आदेश या उद्देश्य मूल्य को प्रभावित किए बिना बाधा को गिरा सकते हैं ।एक < पी वी ( एक ) < वी ( ) एक < baba<bPv(a)<v(b)a<b

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

इसी तरह, हम इस मामले में बाधा को गिरा सकते हैं कि जब तक हम यह सुनिश्चित करते हैं कि मूल्य के अनुसार छँटाई के बाद, हम मूल (सरलीकृत) समस्या के पूर्ववर्ती संबंधों से परामर्श करके संबंध तोड़ लेते हैं। यह सुनिश्चित करता है कि आराम की समस्या के लिए पाया गया इष्टतम समाधान भी मूल समस्या का एक इष्टतम समाधान है।v(a)=v(b)

इसलिए, जब भी b a और को कवर करता है , हम बाधा हटाकर समस्या को सरल कर सकते हैं ।एक < bv(a)v(b)a<b

नियम 2 मान लीजिए कि हम जानते हैं कि बी एक इष्टतम समाधान के तुरंत बाद होता है। हम उचित रूप से अनुबंधित करते हुए और साथ एक नए नोड c में विलय कर सकते हैं ।टी सी = टी + टी बी पीwc=wa+wbtc=ta+tbP

नई समस्या का इष्टतम उद्देश्य मान मूल उद्देश्य मान (विशेष रूप से ) से एक निरंतर भिन्न होता है , हालांकि यह निरंतरता आदेश पर निर्भर नहीं करती है और इसलिए इष्टतम आदेश प्रभावित नहीं होता है। हम नई समस्या के लिए सर्वोत्कृष्ट समाधान लेने से बदलकर इसे पुरानी समस्या को सर्वोत्कृष्ट समाधान ठीक हो सकता है के साथ । c a bwatbcab

3 नियम मान लीजिए कि एक समस्या उदाहरण के लिए सर्वोत्कृष्ट समाधान में, से ठीक पहले आता है और । अब मान लें कि हम श्रृंखला के साथ नए पॉज़ेट या मूल के साथ समानांतर रचना के साथ नई नौकरियों को जोड़कर एक बड़ी समस्या बना रहे हैं। वहाँ हमेशा बड़ा समस्या जहां के लिए सर्वोत्कृष्ट समाधान हो जाएगा से ठीक पहले आता है ।b v ( a ) > v ( b ) a babv(a)>v(b)

मान लीजिए अन्यथा। इष्टतम समाधान में । चूँकि को श्रृंखला समांतर रचना द्वारा बनाया गया था, हम जानते हैं कि सभी s और लिए अतुलनीय हैं । नियम 2 का उपयोग करके सभी नोड्स को एक नए नोड में मर्ज करें। अब विचार करें । अगर तो हम स्वैप कर सकते हैं और उद्देश्य मूल्य वृद्धि के बिना। इसी तरह, यदि , हम और स्वैप कर सकते हैं । इसलिए, । लेकिनपी एक्स आईबी एक्स मैं,एक्स1,एक्स2,...,पीएक्समैंएक्समैं वी ( एक्स ' ) वी ( एक्स ' ) वी ( एक ) एक्स ' एक वी ( एक्स ' ) वी ( ) एक्स 'वी ( एक ) < वी ( एक्स ' )एक्स'v(एक्स')v(एक्स')v()एक्स'v(एक्स')v()एक्स'v ( a ) > v ( b )v()<v(एक्स')<v()v(a)>v(b), एक विरोधाभास।

नियम 2 और नियम 3 का उपयोग करते हुए, हम पहले से ही एक सरल लेकिन सबॉप्टिमल एल्गोरिदम प्राप्त कर सकते हैं। चूंकि एक श्रृंखला समानांतर क्रम है, इसलिए मान लें कि इनपुट में का एक पेड़ प्रतिनिधित्व है जहां प्रत्येक नोड श्रृंखला संरचना या समानांतर रचना का प्रतिनिधित्व करता है, और पत्तियां व्यक्तिगत नौकरियां हैं। हम पेड़ के प्रीऑर्डर ट्रैवर्सल के साथ एक इष्टतम समाधान प्राप्त कर सकते हैं, जिससे यह सुनिश्चित किया जा सके कि प्रत्येक उप-उत्पाद का इष्टतम समाधान बढ़ते मूल्य क्रम में एक श्रृंखला है।पी पीO(n2)पीपी

मान लीजिए पॉस और साथ उपप्रकारों की श्रृंखला रचना है । चलो इष्टतम समाधान और आदेश दे । का इष्टतम समाधान स्पष्ट रूप से इन जंजीरों का संघटन है। हालांकि, यह संभव है कि में पहली नौकरी में अंतिम नौकरी से । जब तक कि समाधान एक सॉर्ट की गई श्रृंखला नहीं होती है, तब अपरिवर्तनीय बनाए रखने के लिए, हम एंडपॉइंट्स को मर्ज करने के लिए नियम 3 + नियम 2 का उपयोग करते हैं जब तक कि वे क्रमबद्ध क्रम में नहीं होते हैं।P 1 P 2 C 1 C 2 P C 2 C 1पीपी1पी2सी1सी2पीसी2सी1

यदि एक समानांतर रचना है, तो हम बस और श्रृंखलाओं को और उन्हें एक नई क्रमबद्ध श्रृंखला में मिला देते हैं। इनवाइट के लिए धन्यवाद, यह मान्य है।एस 1 एस 2पीएस1एस2

दुर्भाग्य से, यह एल्गोरिथ्म । एल्गोरिथ्म प्राप्त करने के लिए , हमें नियम 1 का उपयोग करके श्रृंखलाओं को आलसी रूप से गणना करने की आवश्यकता है।O ( n l o g n )हे(n2)हे(nएलजीn)

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

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

पहले की तरह, हम एक प्रीवार्ड ट्रैवर्सल करते हैं। जहां एक श्रृंखला रचना है, हम पहली ढेर जोड़ी की अधिकतम नौकरी और दूसरी ढेर जोड़ी की न्यूनतम नौकरी की जांच करते हैं। यदि उनके मूल्य क्रम से बाहर हैं, तो हम उन्हें नियम 2 और 3 का उपयोग करके उन्हें बंद कर देते हैं और फिर नए बनाए गए जॉब की तुलना नए एंडपॉइंट्स से करते हैं और जब तक वे ऑर्डर से बाहर होते हैं तब तक पॉपिंग और विलय जारी रखते हैं। एक बार जब एंडपॉइंट्स ऑर्डर क्रम से बाहर नहीं होते हैं, तो हम नियम 1 के लिए श्रृंखला पूर्वता प्रतिबंध के लिए सुरक्षित रूप से भूल सकते हैं। फिर हम नव निर्मित नौकरियों को धक्का देते हैं यदि कोई ढेर पर है, तो ढेर जोड़ी बनाने के लिए ढेर का विलय करें समाधान का प्रतिनिधित्व करते हुए करने के लिए ही।पीपीपी

एक समानांतर रचना के लिए, हम बस ढेर जोड़े को मिलाते हैं। नया मिन हीप प्रत्येक सबप्रोबलम से मिन हीप का मर्ज है और इसी तरह अधिकतम हीप होता है। ध्यान दें कि फिबोनाची ढेर लगातार समय में विलय योग्य हैं।

एक बार जब हमारे पास पूरी समस्या के समाधान का प्रतिनिधित्व करने वाली एक ढेर जोड़ी होती है, तो हम मिन हीप को खाली करने तक वास्तविक समाधान का आदेश दे सकते हैं जब तक कि यह खाली न हो। उसके बाद हम मूल समस्या का समाधान पाने के लिए सभी नियम 2 प्रतिस्थापनों को पूर्ववत करते हैं।

प्रत्येक कार्य जो ढेर से पॉप अप किया जाता है, या तो तुरंत एक नई नौकरी में विलय कर दिया जाता है, कुल नौकरी की संख्या को कम करता है, या अंत में एक बार ठीक से पॉप किया जाता है। इसलिए ढेर पॉपों में से एक सबसे अधिक संख्या में है, जिससे समय खत्म हो गया है। अन्य ऑपरेशन प्रति नोड या नौकरी के लिए निरंतर समय हैं और इसलिए सभी पर रैखिक हैं।हे(nएलजीn)

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