2012-01-07 5 views
15

समस्या इस प्रकार है (अनुवाद) को सुलझाने: परएक अनुकूलन (हर किसी को प्राप्त करने के लिए आवश्यक समय की है और एक पहाड़ के नीचे न्यूनतम राशि का पता लगाएं)

n रहे हैं (एन < = 25000) लोग एक पहाड़ के नीचे, और हर कोई पहाड़ के नीचे, ऊपर जाना चाहता है। 2 टूर गाइड हैं: एक व्यक्ति को पहाड़ पर जाने में मदद करने के लिए, एक व्यक्ति को नीचे जाने में मदद करने के लिए। जिस व्यक्ति को मैं लेता हूं (i) इस पर्वत पर चढ़ने का समय, और नीचे (i) इसे उतरने का समय। हालांकि, प्रत्येक गाइड केवल एक समय में 1 व्यक्ति की सहायता कर सकती है (जिसका अर्थ है कि अधिकतम 1 व्यक्ति चढ़ाई कर सकता है, और अधिकतर 1 व्यक्ति किसी भी समय पहाड़ पर उतर सकता है)। मान लें कि जब "अप" गाइड शीर्ष तक पहुंच जाता है, तो उसे तुरंत नीचे "नीचे" गाइड के साथ नीचे भेज दिया जाता है। हर किसी को ऊपर उठाने और पहाड़ पर वापस जाने के लिए कम से कम समय लगता है। इनपुट करने के लिए

3 persons 
person 1: up=6 minutes, down=4 minutes 
person 2: up=8 minutes, down=1 minutes 
person 3: up=2 minutes, down=3 minutes 

आउटपुट:: मेरे द्वारा

यहाँ एनोटेशन के साथ, समस्या के लिए एक नमूना इनपुट है (लोग पहाड़ यदि आवश्यक हो के शीर्ष पर एकत्र कर सकते हैं)

न्यूनतम समय 17 है। ऐसा इसलिए है क्योंकि यदि व्यक्ति 3 पहले जाता है, तो व्यक्ति 1, और फिर व्यक्ति 2 (और यह वही आदेश दोनों चढ़ाई और वंश दोनों के लिए उपयोग किया जाता है), यह कुल समय 17

देता है (एन

एक हे:

मैं कोशिश में कुछ एल्गोरिदम के साथ आ गया है, लेकिन यहाँ क्या मैं अब तक है है! * एन) एल्गोरिदम: अगली_प्रर्म्यूशन

एक लालची एल्गोरिदम: मैंने लोगों को अवरोही समय कम करके लोगों को हल किया है, और उन्हें एक साथ रखने की कोशिश की है, लेकिन इसका परिणाम सही समाधान नहीं हुआ है।

अन्य विचारों

मैं अब गतिशील प्रोग्रामिंग की ओर कर रहा हूँ, CLR के अनुसार के रूप में, अनुकूलन समस्याओं आमतौर पर लालची या गतिशील प्रोग्रामिंग (इस समस्या, मुझे लगता है, संतुष्ट इष्टतम उपसंरचना) कर रहे हैं।

मैंने देखा है कि न्यूनतम समाधान में, "अप" मार्गदर्शिका में तब तक आराम नहीं होगा जब तक कि हर कोई पहाड़ पर न हो। (इसलिए व्यक्ति 1 की चढ़ाई, व्यक्ति 2 की चढ़ाई, आदि के बीच कोई अंतराल नहीं है ..) शायद मूल समय के बीच अंतराल को कम करने के लिए समस्या को कम किया जा सकता है?

मुझे इस गतिशील प्रोग्रामिंग समस्या के लिए एक राज्य को चित्रित करने में परेशानी हो रही है, (मुझे नहीं लगता कि यह एकल आयामी है, क्योंकि मुझे नहीं लगता कि आप मेरे लिए इष्टतम समाधान को जानने के लिए इष्टतम समाधान पा सकते हैं। -1 व्यक्ति)।

क्या कोई मदद कर सकता है?

+0

सिर्फ एक अंतर्ज्ञान जो दूसरों का उपयोग कर सकता है: उस समस्या को किसी अन्य तरीके से सोचना बेहतर हो सकता है: डाउन गाइड के निष्क्रिय समय को कम करें (ऊपर मार्गदर्शिका कभी नहीं रुक जाती है)। – GameAlchemist

+0

गाइड समस्या के लिए, मैं यही सोच रहा था, नीचे गाइड को उन लोगों को शीर्ष पर ले जाना चाहिए जिनके पास सबसे कम समय है। अप गाइड को व्यक्ति को सबसे कम समय के साथ ले जाना चाहिए, सिवाय इसके कि इसे किसी ऐसे व्यक्ति को नहीं लेना चाहिए जो ऊपर जाने से कम समय लेता है, जब तक कि शीर्ष पर प्रतीक्षा करने वाले लोगों की कतार के साथ समय अंतर नहीं बनाया जा सकता है या उन लोगों को लेने के अलावा कोई अन्य विकल्प नहीं है जो कम समय से नीचे जा रहे हैं। –

+0

मुझे लगता है कि यह प्रकार लोगों की संख्या और कितने समय पर निर्भर करता है पर निर्भर करता है। यदि आपको शीर्ष पर कतार नहीं है, तो डाउन गाइड होने से सबसे लंबा समय व्यक्ति पहले बेहतर हो सकता है। दिलचस्प विचार अभ्यास। –

उत्तर

5

यह समस्या के बाद व्यस्त रखने के लिए हर समय है n- के बराबर कार्य उद्देश्य के साथ नौकरी 2-मशीन प्रवाह की दुकान समस्या (एन/2/एफ/सी अधिकतम)। Johnson's algorithm एक सटीक समाधान पाता है।

-1

केवल अवरोही मार्गदर्शिका निष्क्रिय समय वास्तव में मायने रखती है। और इसे कुछ विचार देने के बाद, मुझे लगता है कि यहां मुख्य मुद्दा चढ़ाई करने वाले पहले व्यक्ति को चुन रहा है, क्योंकि पहले पर्वतारोही का समय अवरोही मार्गदर्शिका के लिए निश्चित देरी है।

समाधान उन है कि down(i) > up(i) है और से बाहर सबसे कम up(i) के साथ एक लेने के लिए हो सकता है तो आप down(i) > up(i) साथ हर किसी को प्राथमिकता देते हैं, तो down(i) = up(i) पर चढ़ने के लिए है, तो सब आराम। उतरने के लिए आप बस सबसे लंबे समय तक लोगों को प्राथमिकता दें (i)।

क्या इस को प्राप्त होता है:

  1. आप उतरते देरी शुरू
  2. कम से कम मार्गदर्शन तुम उसे कि
+0

"केवल अवरोही मार्गदर्शिका निष्क्रिय समय वास्तव में मायने रखती है। और इसे कुछ विचार देने के बाद, मुझे लगता है कि यहां मुख्य मुद्दा चढ़ाई करने वाला पहला व्यक्ति चुन रहा है, क्योंकि पहले पर्वतारोही का समय अवरोही मार्गदर्शिका के लिए निश्चित देरी है।" -> यह बहुत अधिक मतलब है कि एक अप गाइड हमेशा काम कर रहा है, है ना? –

+0

मैंने इस एल्गोरिदम को लागू करने का प्रयास किया है, लेकिन यह काफी काम नहीं करता है। यद्यपि उसे व्यस्त रखने के विचार सही के बारे में लगता है .. –

+0

क्या आप एक उदाहरण प्रदान करेंगे कि वास्तव में क्या काम नहीं करता है? और किस डेटा नमूने के लिए यह गलत परिणाम देता है? – Ranty

संबंधित मुद्दे