कई-कई सामान्यीकृत असाइनमेंट समस्या के लिए एल्गोरिदम


20

मुझे एल्गोरिदम पर कोई साहित्य नहीं मिल रहा है जिसका उपयोग कई-कई सामान्यीकृत असाइनमेंट समस्या (जीएपी) को हल करने के लिए किया जा सकता है, अर्थात ऐसे मॉडल जहां न केवल अधिक कार्यों को एक एजेंट को सौंपा जा सकता है, बल्कि कई एजेंट भी हो सकते हैं एक कार्य (एक-से-एक और एक-से-कई एपी को पेंटिको द्वारा एक पेपर में चर्चा की जाती है) को सौंपा गया है। मैं असाइनमेंट की समस्याओं के बारे में अगले-कुछ भी नहीं जानता, लेकिन मैं अपने शोध के दौरान इस तरह की समस्या पर आया था और उन्हें हल करने के तरीके के बारे में अधिक जानना चाहूंगा। क्या यह संभव है कि इस तरह के कई-से-कई जीएपी को एक और नाम के तहत जाना जाता है, या क्या एक अलग कारण है कि इस पर बहुत कम साहित्य पाया जा सकता है?

पेंटिको, डी। असाइनमेंट समस्याएं: एक स्वर्ण वर्षगांठ सर्वेक्षणयूरोपियन जर्नल ऑफ ऑपरेशनल रिसर्च (2007); 176 (2): 774-793।


1
हाय गेरिटजन। Scicomp में आपका स्वागत है! :) क्या आप सामान्यीकृत असाइनमेंट समस्या के लिए thes lagrangian heuristic से परिचित हैं? sciencedirect.com/science/article/pii/S0898122110002609 या irma-international.org/viewtitle/58969 या crcnetbase.com/doi/abs/10.1201/9781420010749.ch48 ?
पॉल

1
यह मुझे लगता है कि एक कार्य को कई एजेंटों को निर्दिष्ट करने के मामले को मॉडल किया जा सकता है, कम से कम उन मामलों में जहां लागत रैखिक रूप से विकीर्ण होती है, एक कार्य को मानकर जैसे कि यह कई उप-प्रकार होते हैं। अधिक विवरण के बिना यह जानना कठिन है कि सामान्यीकृत असाइनमेंट समस्याओं की तुलना में आपकी समस्याएं अधिक "सामान्य" कैसे हो सकती हैं। Wikipeida लेख विषय पर संदर्भ के एक जोड़े के लिए कुछ अच्छी प्रदर्शनी और संबंध हैं।
हार्डमैथ

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

1
@GerritJan: यह एक np-hard समस्या है, इसलिए इसके लिए एक अंदाजन योजना की आवश्यकता होगी। यदि आपको एक अच्छे सन्निकटन की आवश्यकता है, तो आपके एल्गोरिथ्म को थोड़ा जटिल होना पड़ सकता है।
पॉल

2
@GerritJan: इसका मतलब है कि सटीक 'इष्टतम' समाधान केवल सभी संभव कॉन्फ़िगरेशन की जांच करके गारंटी दी जा सकती है। ये संभव समाधान समय के साथ (कम से कम) तेजी से बढ़ते हैं, जिससे अपेक्षाकृत मामूली आकार की समस्याएं भी समय की उचित मात्रा में हल करना लगभग असंभव हो जाता है।
पॉल

जवाबों:


1

आपकी समस्या प्रतीत नहीं होती है, "कि" एजेंटों "की राशि को ऊर्जा के बिल्कुल असतत हिस्से की आपूर्ति करनी है या प्रत्येक एक मांग के लिए कुछ भी नहीं ...", ठीक है? या तुमने मुझे समझा नहीं। इसलिए मैं अपनी समस्या का बेहतर वर्णन करने की कोशिश करूंगा, क्योंकि मुझे इसका समाधान मिल गया है।

मेरी समस्या में, मेरे पास ऐसे एजेंटों का एक समूह है जहाँ हर एक के पास कुछ निश्चित संसाधनों का बजट होता है, जो कार्यों की लागत को साझा कर सकते हैं, जिन्हें 1 बार "निष्पादित" किया जाना चाहिए या नहीं (कई-से-कई-असाइनमेंट बिना आवश्यकता के) "हर कार्य" निष्पादित करें)। इसका अर्थ है: कार्य x के लिए एजेंटों के आंशिक समाधानों का योग, कार्य x की लागत से कम या बराबर होना चाहिए। उद्देश्य अधिकांश मूल्य वाले कार्यों के सेट को ढूंढना है जो एजेंट भुगतान कर सकते हैं।

मैं gams सॉफ़्टवेयर के साथ काम कर रहा हूं, इसलिए मैं इसे gams-style में वर्णित करता हूं: एक एजेंट, t कार्य पैरामीटर लागत (t), मान (t) पैरामीटर संसाधन (a) सेट करें

पॉजिटिव वैरिएबल y (a, t) (नॉन-इंट), एजेंट का हिस्सा जो टास्क टी उद्देश्य के लिए है:

maxvalue =e= sum((a,t), value(t) * y(a,t) / cost(t) );
agentresource_max_constraint(a).. sum(t, y(a,t)) =l= resources(a);
taskcost_max_constraint.. sum(a, y(a,t)) =l= cost(t);

जैसा कि मैंने लिखा था, मेरे पास एक समाधान था लेकिन आंशिक कार्य समाधानों को अलग करने का तरीका नहीं जानता था। लेकिन अब मुझे पता चला कि मैं एक बाधा का निर्माण कर सकता हूं

बाइनरी वेरिएबल z(t)

taskcost_bin_constraint z(t) =e= sum(a, y(a,t)) / cost(t);

sum(a, y(a,t)) / cost(t)समीकरण निर्माण में 0 और 1 के बीच कुछ होता है और इस बाधा से, z1 के लिए 1 और 1 से कम सभी के लिए 0 taskcost_bin_constraintहोता है। इस उद्देश्य के साथ होगा:

maxvalue =e= sum(t, value(t) * z(t));

मैं सोच रहा था लेकिन यह काम करता है और मुझे बाधा के तहत बेहतर समाधान देता है, एक कार्य को पूरा करने या न करने के लिए।

शायद आप भी इस तरह की बाधा जोड़ सकते हैं? मांगों को पूर्ण रूप से पूरा करने के लिए एक अवरोध, 0 और 1 के बीच के मूल्य के साथ एक अभिव्यक्ति में व्यक्त किया गया।


1

एक नियतात्मक annealing एल्गोरिथ्म है जो एक-से-एक असाइनमेंट समस्या को हल करता है या समकक्ष डायडिक मैट्रिक्स विभाजन समस्या को हल करता है।

हालाँकि पूर्णांक [0, 1] मानों का उपयोग करने के बजाय, भिन्नात्मक मानों का उपयोग किया जा सकता है (इसलिए एल्गोरिथ्म समान रहता है) या इसे एक से अधिक असाइनमेंट को संभालने के लिए विस्तारित करें (आंतरिक लूप जोड़कर और eseentially मैट्रिक्स हाइपर-आयामी सरणी बन जाता है या टेंसर)

पेपर यहाँ है: http://www.researchgate.net/publication/2382666_Pairwise_Data_Clustering_by_Deterministic_Annealing/file/d912f50c759455835b.pdf

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