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