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