कई दिनों के लिए असाइनमेंट की समस्या


10

मेरे पास एक समस्या है जिसे एक असाइनमेंट समस्या में कम किया जा सकता है। (एक पिछले प्रश्न में मुझे पता चला कि यह कैसे करना है।)

जिसका अर्थ है कि हमारे पास एजेंटों का एक सेट और कार्यों का एक सेट के साथ-साथ एक लागत फ़ंक्शन । हमें एक असाइनमेंट खोजने की आवश्यकता है ताकि कुल लागत कम से कम हो।ATc(i,j)

हंगेरी एल्गोरिथ्म कम से कम में सर्वोत्कृष्ट समाधान पा सकते हैं O(n4) । जो मुझे अच्छा लगता है।

मेरी नई समस्या है: दी गई दिनों की संख्या है। मुझे प्रत्येक दिन के लिए असाइनमेंट की समस्या को हल करना है ताकि हर कार्य हर दिन हो और कोई भी एजेंट एक ही कार्य को दो बार न करे

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

एक अन्य विचार यह है कि किसी भी तरह पिछले दिनों किए गए फैसलों को बदलने के लिए स्थानीय खोज को एकीकृत किया जाए। लेकिन मुझे लगता है कि हम इस पर भरोसा नहीं कर सकते।

मुझे जिन समस्याओं का सामना करना पड़ता है, वे कहीं न कहीं आसपास होंगी । लागत मैट्रिक्स में बहुत सारे मान होंगे (जैसे ज्यादातर 1 या अनंत, केवल कुछ 2 या 3)। इसलिए आयु एल्गोरिथ्म के दौरान एक ही दिन के लिए अलग-अलग इष्टतम समाधान बनाने के लिए बहुत सी जगह है।|A|=|T|=500C(i,j)

मुझे कुछ विचारों को सुनने में खुशी होगी या समस्या के लिए एक अच्छा समाधान खोजने की सलाह देंगे। अग्रिम में धन्यवाद।


1
यह एक बड़ा सवाल है! मेरा सुझाव है कि न्यूनतम लागत प्रवाह, हॉल की विवाह प्रमेय और अधिकतम द्विदलीय मिलान का उपयोग करें।
पीटर शोर

जवाबों:


6

बहुपद समय में इसका एक तरीका है। मैं एल्गोरिथ्म स्केच करूँगा (रिवर्स ऑर्डर में ... चरण 2 पहले और चरण 1 सेकंड)।

  1. अगर हम एजेंट-टास्क जोड़े का एक सेट पा सकते हैं जैसे कि प्रत्येक कार्य बिल्कुल जोड़े में है, प्रत्येक एजेंट बिल्कुल जोड़े में है, और कोई भी जोड़ी एक से अधिक बार दिखाई नहीं देती है, तो हम असाइनमेंट पा सकते हैं जो साथ में इन एजेंट-टास्क जोड़े को कवर करें । हम बार-बार अधिकतम द्विपद का उपयोग करके एल्गोरिथ्म का उपयोग करते हैं, जो कि संगत द्विपदीय आलेख में एक परिपूर्ण मिलान खोजने के लिए, और ग्राफ़ से उस असाइनमेंट को हटा देता है। हॉल की शादी की प्रमेय गारंटी हम यह कर सकते हैं।nk(i,j)kkknk

  2. हम न्यूनतम लागत -प्रवाह सेट का उपयोग करके चरण 1 में एजेंट-टास्क जोड़े के न्यूनतम-लागत सेट को पा सकते हैं । के साथ एक स्रोत एक नेटवर्क पर विचार करें , एक सिंक कार्यों के एजेंटों में से प्रत्येक और प्रत्येक के लिए, और नोड्स। क्षमता और लागत किनारे के साथ प्रत्येक एजेंट को स्रोत कनेक्ट करें । क्षमता और लागत किनारे के साथ प्रत्येक कार्य को सिंक से कनेक्ट करें । अब, एजेंट को टास्क से जिसकी क्षमता और लागतnkstk0k0ij1c(i,j)। इस नेटवर्क में न्यूनतम लागत प्रवाह को अभिन्न होने की गारंटी दी गई है (क्योंकि सभी क्षमताएं अभिन्न हैं, और एक प्रमेय है जो यह कहता है कि यह एक इष्टतम अभिन्न न्यूनतम लागत प्रवाह है), इसलिए प्रत्येक एजेंट-कार्य किनारे पर प्रवाह है या । प्रवाह साथ किनारों चरण 1 में जोड़े का सेट बनाते हैं।01(i,j)1

बहुत सारे एल्गोरिदम हैं जो न्यूनतम लागत प्रवाह को हल कर सकते हैं ; यह रैखिक प्रोग्रामिंग का एक विशेष मामला है। आपके आकार की समस्या के लिए, एल्गोरिथ्म I स्केच केवल बहुपद-समय नहीं होना चाहिए, बल्कि व्यावहारिक भी होना चाहिए।


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

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