मैं ऐसे एप्लिकेशन पर काम कर रहा हूं जहां मुझे घूर्णन अनुसूची पर सदस्यों के लिए स्वचालित रूप से नौकरियां निर्धारित करने की आवश्यकता है। मैं नियमों को समझाने में बहुत अच्छा नहीं हूं, इसलिए यहां कुछ डेटा है:जॉब शेड्यूलिंग समस्या
पद: सोमवार और बुधवार साप्ताहिक जैसे नियमों के साथ नौकरी का शीर्षक।
श्रेणियाँ: पदों का एक सेट
समूह: पदों का एक और सेट। उसी समूह में स्थितियों को उसी दिन
सदस्यों को असाइन नहीं किया जा सकता है: उपयोगकर्ता किसी दिए गए दिनांक पर पदों पर असाइन किए जाते हैं।
महीने में प्रत्येक तारीख के लिए, सदस्यों को पदों (आरोही क्रम में दोनों) को सौंपा जाता है। यदि किसी सदस्य को एक श्रेणी में किसी स्थिति में असाइन किया जाता है, अगली बार उसी श्रेणी में एक स्थिति आती है, तो अगला सदस्य वर्णानुक्रम (या सूची की शुरुआत) असाइन किया जाता है।
सदस्य: एम 1, M2, एम 3, एम 4
श्रेणी सी 1 में पद: P1, P2, पी 3
स्थिति P1 में सदस्य: एम 1, M2, एम 3, एम 4 स्थिति P2 में
सदस्य: एम 1, M2, एम 3
स्थिति पी 2 में सदस्य: एम 1, एम 3, एम 4
यदि एम 1 को पी 1 के लिए असाइन किया गया है, यदि पी 2 अगला आता है, तो एम 2 असाइन किया जाएगा। जटिलता की एक अतिरिक्त परत पेश की जाती है, जहां यदि पी 3 इसके बजाए आता है, तो एम 3 असाइन किया जाता है। सिस्टम को इस तथ्य का ट्रैक रखना है कि एम 2 'छोड़ा गया' था और उपलब्ध होने पर एम 2 को आवंटित करता है, फिर एम 4 को आवंटित करें, या जब तक यह एम 2 उपलब्ध न हो, तब तक प्रतीक्षा करें (यह अतिरिक्त जटिल हो जाता है जब कई 'छोड़े जाते हैं 'सदस्य)।
एक सदस्य को भी छोड़ दिया जाएगा यदि उसने संकेत दिया है कि वह उस तारीख पर उपलब्ध नहीं होगा। सिस्टम को छोड़ने वाले सदस्यों पर प्राथमिकता रखने की आवश्यकता है, किसी भी तरह उन्हें पहचानते समय पहचानें और फिर सूची में अगले तार्किक व्यक्ति पर जाएं। छोड़ने की तिथि के कारण समूहों पर भी छोड़ना समूह पर लागू होता है।
मेरे पास पहले से ही एक अस्थायी [और गन्दा] समाधान है जिसे मैं अब समझ नहीं पा रहा हूं, भले ही मेरे पास प्रत्येक चरण को समझाते हुए बहुत सारी टिप्पणियां हों। इसकी कमजोरियां छोड़ने वाले सदस्यों से निपटने में हैं।
यदि आप कोड करने जा रहे थे तो आप इसके बारे में कैसे जाएंगे? मैं इसे PHP में कार्यान्वित कर रहा हूं लेकिन छद्म कोड भी काम करेगा।
क्या उन पदों के लिए घंटों हैं जिन पर विचार करने की आवश्यकता है? जब आप कहते हैं कि उसी समूह में पदों को उसी दिन असाइन नहीं किया जा सकता है, तो क्या आपका मतलब है कि उन्हें किसी को भी असाइन नहीं किया जा सकता है (यानी किसी समूह से केवल एक ही स्थिति को किसी दिए गए दिन भर दिया जा सकता है) या किसी एक को सौंपा गया किसी समूह में किसी अन्य को असाइन नहीं किया जा सकता है? – outis
मेरा मतलब था कि कोई भी उसी दिन दो पदों को भर सकता है जब तक कि वे एक ही समूह में गिरने न हों। – Zahymaka