एनपी में सुपर मारियो फ्लो?


15

अधिकतम-प्रवाह समस्या का एक शास्त्रीय विस्तार "अधिकतम-प्रवाह समय के साथ" समस्या है: आपको डिग्राफ दिया जाता है, जिसमें से दो नोड्स स्रोत और सिंक के रूप में प्रतिष्ठित होते हैं, जहां प्रत्येक चाप के दो पैरामीटर होते हैं, एक क्षमता-प्रति -सुनाई-समय और देरी। आपको एक समय क्षितिज भी दिया जाता है । लक्ष्य समय के साथ एक प्रवाह की गणना करना है जो स्रोत से अधिकतम मात्रा में समय टी द्वारा सामग्री प्राप्त करता है । न्यूनतम मूल्य-प्रवाह के लिए एक चतुर शास्त्रीय कमी के द्वारा बहुपद समय में अधिकतम मूल्य के प्रवाह की गणना की जा सकती है।TT

मुझे इस मॉडल के विस्तार में दिलचस्पी है जहां किनारों का तीसरा "जीवन-काल" पैरामीटर है। एक चाप जीवन-अवधि है , और टी जल्द से जल्द समय जिस पर सकारात्मक प्रवाह चाप के माध्यम से भेजा जाता है, तो हम समय में चाप को नष्ट टी + । आप सुपर मारियो ब्रदर्स में प्लेटफ़ॉर्म की तरह इस बारे में सोच सकते हैं जो आप पर कदम रखने के कुछ ही समय बाद गिर जाते हैं / नष्ट हो जाते हैं, या आप उन पर विचार कर सकते हैं क्योंकि किनारों को बिजली देने के लिए बैटरी की आवश्यकता होती है, जिसे चालू करने के बाद उन्हें बंद नहीं किया जा सकता है। । ( संपादित करें :) निर्णय की समस्या है, जब एक प्रवाह मान को कम बाउंड बी दिया जाता है , चाहे एक प्रवाह बैठक दोनों समय क्षितिज ऊपरी बाध्य और प्रवाह मान कम बाउंड शेड्यूल कर सकते हैं।tt+B

अब तक मैं देख सकता हूं कि यह समस्या एनपी-हार्ड (3-विभाजन के माध्यम से) है। लेकिन, मुझे वास्तव में नहीं पता है कि क्या यह एनपी में है: क्या किसी समाधान को स्पष्ट रूप से व्यक्त करने के तरीके की कोई गारंटी है? शास्त्रीय संस्करण में, इस समस्या को दरकिनार करने के लिए कुछ विशेष प्रकार के इष्टतम प्रवाह का उपयोग किया जाता है।

नोट: ऊपर दिया गया मॉडल थोड़ा अंडरस्क्राइब्ड है, क्योंकि आप नोड्स पर प्रवाह के भंडार को अनुमति या अस्वीकार कर सकते हैं, और आपके पास एक असतत समय मॉडल या एक निरंतर हो सकता है। इनमें से किसी भी मॉडल के लिए प्रश्न को हल करना उत्कृष्ट होगा।


1
मुझे यकीन नहीं कि मैं समझा हूँ। किसी विशेष प्रवाह योजना को कॉम्पैक्ट रूप से व्यक्त करने और यह पुष्टि करने में समस्या क्यों है कि कुल प्रवाह पाली समय में कम से कम एफ है?
सुरेश वेंकट

3
आप सोच रहे होंगे कि यह कैसे साबित किया जाए कि ऑप्टिमाइज़ेशन समस्या का आउटपुट, जिसका आउटपुट समयबद्ध प्रवाह है, पॉली टाइम में इष्टतमता के लिए जाँच की जा सकती है। हालाँकि, अक्सर एक दिखाता है कि निर्णय की समस्याएं केवल हां / ना में कोई जवाब नहीं हैं, और ऑप्टिमाइज़ेशन समस्याएं जो प्रवाह की तरह कुछ फ़ंक्शन को अधिकतम करती हैं, आमतौर पर इनपुट में कम बाध्य मान B जोड़कर निर्णय समस्या में बदल जाती हैं, और निर्णय समस्या बन जाती है "क्या कम से कम बी के मूल्य के साथ कोई समाधान है?"
andy_fingerhut

सुरेश: असतत मॉडल में कहें, एक प्रवाह योजना को व्यक्त करने का प्राकृतिक तरीका प्रत्येक चाप के लिए पूर्णांक लेता है , लेकिन यह बहुपद नहीं है, यह इनपुट आकार में केवल छद्म-बहुपद है। इसी तरह के निरंतर मॉडल में मैं यह नहीं देखता कि इसे कैसे संपीड़ित किया जाए। T
daveagp

एंडी: आप सही हैं, औपचारिक रूप से मेरे लिए यह एक समय क्षितिज के अतिरिक्त एक मूल्य कम बाध्यता के साथ निर्णय समस्या के रूप में बताना बेहतर है, फिर यह कुछ ऐसा है जिसके लिए हम पूछ सकते हैं कि क्या यह एनपी में निहित है।
daveagp

1
@daveagp: क्या आपने अपनी समस्या के लिए QBF को कम करने के लिए PSPACE- कठोरता की कोशिश की?
योशियो ओकामोटो

जवाबों:


13

यह एक लंबा समय रहा है लेकिन मुझे पूरा यकीन है कि यह समस्या पी में है।

मैंने 1995 में इस बारे में अपनी पीएचडी शोध प्रबंध लिखा। ब्रूस होप द्वारा कॉर्नेल सीएस विभाग को प्रस्तुत "कुशल गतिशील नेटवर्क प्रवाह एल्गोरिदम" देखें। Http://dspace.library.cornell.edu/bitstream/1813/7181/1/95-15-15.df पर ऑनलाइन

"नश्वर किनारों" के बारे में अध्याय 8 "एक्सटेंशन" खंड 8.1 देखें


3
"यह एक अंधेरी और तूफानी रात थी। जैक अपने केबिन में निश्चिंत होकर लेटा था - उसके पेट को छोड़कर, जो उसके पेट में एक पागल कार्निवाल की सवारी की तरह चुभ रहा था ..." (पृष्ठ xiii, जहां लेखक व्यावहारिक अनुप्रयोगों पर चर्चा करता है)।
नील युवा

अच्छी बोली, नील! :) BTW daveagp निर्णय प्रवाह का जवाब देने वाले "प्रवाह" को संग्रहीत करने के लिए छद्म-बहुपद स्थान की आवश्यकता के बारे में एक अच्छा बिंदु बनाता है। न केवल इष्टतम प्रवाह को खोजने के लिए, बल्कि यह भी दर्शाया गया है कि पी में प्रवाह मेरे शोध प्रबंध का 1-7 अध्याय है
ब्रूस होप्पे

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

2

संपादित करें: जवाब गलत है। मैंने (मूर्खतापूर्ण) अंतर्निहित धारणा बनाई कि जब एक पथ-प्रवाह समय s पर शुरू होता है और समय t पर समाप्त होता है और किनारे से होकर गुजरता है, तो यह इस अवधि के लिए किनारे e को अवरुद्ध करता है। वैसे यह सत्य नहीं है। देख *।

नोट: शायद यह दृष्टिकोण अनावश्यक रूप से जटिल या गलत है। हालांकि मैंने सत्यापित करने का प्रयास किया, और इसे सावधानीपूर्वक लिखा - मैंने इस पर बड़ी मात्रा में समय नहीं बिताया।

मान लें कि 'स्टॉकपिलिंग' की अनुमति नहीं है, जैसे प्रवाह को तुरंत स्थानांतरित किया जाना है। चलो किनारों की संख्या AND दर्शा एन इनपुट लंबाई। मैंने निरंतर या असतत समय निर्दिष्ट नहीं किया, क्योंकि मैंने इसे ध्यान में नहीं रखा था। यह असतत विचार के लिए काम करना चाहिए, निरंतर के लिए मैं निश्चित हूं।mN

फिर, हम समाधान का वर्णन स्रोत से सिंक तक "पथ-प्रवाह" के सेट के रूप में कर सकते हैं। एक पथ-प्रवाह एक चौगुनी है जिसमें निम्नलिखित शामिल हैं: स्रोत से सिंक करने के लिए एक सरल पथ पी ; पथ-प्रवाह एस का समय शुरू करना ; पथ के माध्यम से प्रवाह की मात्रा ; थ्रूपुट दर आर(P,s,a,r)Psar

पथ-प्रवाह के एक सेट द्वारा समाधान दिया जाए । हम चाहे समाधान इन के द्वारा दिए गए पथ-बहती है में समय बहुपद में सही है की पुष्टि कर सकते |Fऔर एन :|F|N

  • प्रत्येक किनारे और समय टी के एक पल के लिए , सभी पथ-प्रवाह की प्रवाह दर को ई में जोड़ेंete समय में । हर पथ प्रवाह प्रारंभ और समाप्ति समय है, इसलिए हम केवल जब एक पथ-प्रवाह के संबंध में शुरू होता है या समाप्त हो जाती है (इन क्षणों में कुछ भी नहीं परिवर्तन के बीच से अधिक बढ़त पथ-बहती है जो चलते-समय के क्षणों विचार करने की आवश्यकता te
  • हर पथ-प्रवाह के लिए हम यह सत्यापित कर सकते हैं कि क्या यह सभी प्रवाह से पहले सिंक में आता है ।T
  • प्रत्येक किनारे के लिए हम यह सत्यापित कर सकते हैं कि कोई पथ-प्रवाह नष्ट होने के बाद गुजरता है या नहीं।
  • प्रवाह निचले भाग को हम केवल प्रवाह-पथों के प्रवाह की मात्राओं को जोड़कर जांच सकते हैं।B

अब, हमें 'बस' यह दिखाने की जरूरत है कि पथ-प्रवाह की संख्या में बहुपद है ।N

किसी दिए गए समाधान के लिए हम समय निर्धारित कर सकते हैं कि कुछ प्रवाह एक किनारे से गुजरता है और जब किनारे को नष्ट कर दिया जाता है। इसे समतुल्य समाधान के साथ एक समस्या में परिवर्तित करें: प्रत्येक किनारे पर कठोर सीमाएं होती हैं जब इसका उपयोग किया जा सकता है और जब नहीं - एक शुरुआत और अंत समय। चलो इन सभी के सेट को निरूपित करते हैं।{t1,...,tk}

कुछ गैर-कॉम्पैक्ट समाधान और (शुरू में) पथ-प्रवाह का एक खाली सेट पर विचार करें। विचार यह है कि हम इसे गैर-कॉम्पैक्ट समाधान में एक पथ-प्रवाह पाते हैं, इसे हटा दें और इसे पथ-प्रवाह के हमारे सेट में संग्रहीत करें।

पता लगाएं कि आरंभ और अंत पथ-बहती के बीच और टी जे , मैं < j लेकिन किसी भी के बीच न करना पड़े टी पी और टी क्यू ऐसी है कि [ टी पी , टी क्यू ] [ टी मैं , टी जे ] । चलो एफ मैं , जे के सेट को निरूपित के बीच पथ-बहती टी जे और टी जेtitji<jtptq[tp,tq][ti,tj]Fi,jtjtj गुण ऊपर वर्णित के रूप में के साथ।

मान लें कि हमने पहले से ही सभी छोटे अंतरालों के लिए सभी पथ-प्रवाह हटा दिए हैं । लालच से पथ-प्रवाह का पता चलता है जो शुरू होता है और [ t i , t j ] में समाप्त होता है । जब हम एक खोज करते हैं, तो इस प्रवाह को समाधान से हटा दें और तदनुसार कोने के प्रवाह दर को समायोजित करें और प्रवाह की मात्रा स्रोत से भी भेजें। इस पथ-प्रवाह के लिए हम थ्रूपुट को अधिकतम करते हैं। इसका मतलब यह है कि कम से कम एक किनारे के लिए हम इसकी अधिकतम प्रवाह दर तक पहुँच चुके हैं या इस पथ-प्रवाह को हटाने के बाद इस किनारे पर कोई अधिक प्रवाह नहीं है। ध्यान दें कि यह अवधि [ t i + 1 , t j] के लिए है[i,j][ti,tj][ti+1,tj1] । दोनों ही मामलों में, कोई और प्रवाह इस किनारे से नहीं जाता है और हम इसका निष्कर्ष निकाल सकते हैं |Fs,t|m

(*) पिछला दावा सही क्यों है? ठीक है, में हर दूसरे पथ प्रवाह से पहले शुरू होता है टी मैं + 1 और बाद समाप्त हो जाती है टी जे - 1 । इसलिए, समय के साथ ओवरलैप करना होगा कि वे एक निश्चित बढ़त का उपयोग करें। चूंकि पथ-प्रवाह के लिए थ्रूपुट को अधिकतम किया जाता है, इसलिए एक किनारा होना चाहिए जहां यह तंग है।Fti,tjti+1tj1

इसी से यह इस प्रकार है कि कुछ निरंतर के लिए सी और दावा है कि यह एनपी में इस प्रकार है।i,j[k]|Fi,j|cm3c


मेरे लिए अपघटन बाध्य दोषपूर्ण लगता है, मैं एक उदाहरण देने के लिए प्रयास करूँगा। मान लीजिए कि नेटवर्क सिर्फ एक स्रोत है-> क्षमता 100 के किनारे, विलंब 0, जीवन काल 100। अब इस प्रवाह अनुसूची पर विचार करें: समय अंतराल में [0, 1) 1 की दर से प्रवाह भेजें; [१, २) में २ की दर से, १०० की दर से [९९, १०० में]। किसी भी अपघटन की आवश्यकता है> = 100 पथ-प्रवाह जो आपके दावे का खंडन करते हैं जैसे कि मैं इसे समझता हूं। मुझे यह उल्लेख करना चाहिए कि फोर्ड और फुलकर्सन एक विशिष्ट प्रकार के इष्टतम समाधान पर विचार करके अपने शास्त्रीय समाधान (जीवन-स्पैन के बिना) में इस बाधा से बचते हैं, एक मनमाने ढंग से नहीं।
21

यह संभवतः प्रवाह के 'जीवनकाल' को अधिकतम करने से भी बचा जा सकता है, लेकिन सबूत में एक और समस्या है, मैंने इसे स्पष्ट करने के लिए इसे संपादित किया है।
रूब

1

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


मैं नहीं समझ सकता कि आपका दावा क्या है।
त्सुयोशी इतो

मुझे नहीं लगता कि यह सही है। उदाहरण के लिए, तीन नोड्स, स्रोत s, टर्मिनल t और एक और नोड v के साथ एक नेटवर्क की कल्पना करें, जिसमें तीन आर्क्स a1 = (s, v), a2 = (s, v), a3 = (v, t) हों। आर्क्स की क्षमता सभी 1 हैं, और यात्रा का समय ए 1 और ए 3 के लिए 0, और ए 2 के लिए 100 निर्धारित किया गया है। जीवन-विस्तार 1 के लिए 1, और 1000 a2 और a3 के लिए हैं। फिर, समय 0 पर s1 से a1 और a3 के माध्यम से प्रवाह की एक इकाई भेज सकता है, और a2 के माध्यम से प्रवाह की एक इकाई भेजना शुरू कर देता है। 1 से 99 के दौरान, a3 कोई प्रवाह नहीं करता है, क्योंकि a1 चला गया है, लेकिन समय 100 पर, a2 से प्रवाह v पर आता है, और a3 का फिर से उपयोग किया जाता है।
योशियो ओकामोटो

अगर मैं सही तरीके से समझूं, तो आप इस भाग में दावा करते हैं कि एक बार किनारों के जन्म / मृत्यु का समय तय हो जाने के बाद, शेष समस्या को समय के साथ-साथ शास्त्रीय अधिकतम-प्रवाह का उपयोग करके हल किया जा सकता है, लेकिन मैं यह नहीं देखता कि यह कैसा मामला है।
22

@ योशियो: उस स्थिति में, यदि, a2 के साथ प्रवाह की एक इकाई को तुरंत भेजने की शुरुआत करने के बजाय, आपने प्रवाह को पूरी तरह से भेजना बंद कर दिया है, तो एक समय के बाद a1 का एक बार इस्तेमाल किया जा सकता है, और इससे बेहतर समाधान निकलेगा।
लिएंड्रो एम।

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