मुझे एक वास्तविक दुनिया की समस्या है जो मैं प्रतिनिधित्व और स्वचालित करने की कोशिश कर रहा हूं। मैंने सरलीकृत किया है और इसे निम्न में सारगर्भित किया है:
- काम के n स्थान हैं (P1, P2, ..., Pn)।
- प्रत्येक जगह, Pn के पास एक कुंजी है, Kn।
- एम वर्कर्स हैं, (W1, W2, ..., Wm)।
- Pn में काम करने के लिए, एक कर्मी को Kn को पकड़ना चाहिए।
- प्रत्येक कुंजी या तो एक कार्यकर्ता द्वारा आयोजित की जा सकती है, या एक्सचेंज, ई पर छोड़ दी जा सकती है।
एक कार्यकर्ता किसी भी समय पर कुछ लावारिस चाबियों को लेने या दूसरों के उपयोग के लिए कुछ चाबियों को छोड़ने के लिए एक्सचेंज की यात्रा कर सकता है।
अब, एक बाहरी कार्य शेड्यूल है जिसे एक सख्त क्रम में पूरा किया जाना चाहिए। उदाहरण के लिए:
- 2016-04-21 W1 को P6 पर काम करना चाहिए
- 2016-04-21 W2 को P3 पर काम करना चाहिए
- ** आवश्यक कुंजियों का आदान-प्रदान **
- 2016-04-22 W3 को P3 पर काम करना चाहिए
- 2016-04-22 W2 को P6 पर काम करना चाहिए
किसी भी संख्या में श्रमिकों को अपने समय में कुछ बिंदु पर Pn पर काम करना पड़ सकता है, हालांकि कभी भी एक ही दिन नहीं
हम जानते है:
- सभी कुंजियों का प्रारंभिक स्थान, या तो श्रमिकों के साथ या ई पर
- भविष्य के काम के आदेश हैं कि प्रत्येक कार्यकर्ता को पूरा करना होगा
इसलिए, मैं इस पूरी स्थिति के लिए संघर्ष कर रहा हूं। क्या आप उन डेटा संरचनाओं और एल्गोरिदम का सुझाव दे सकते हैं, जिन्हें देखने के लिए मुझे एक पकड़ चाहिए और प्रत्येक कार्यकर्ता के लिए एक्सचेंजों के लिए ट्रिप का अनुकूलन शुरू करना चाहिए?
क्या मैं कम से कम यात्रा करना चाहता हूं। ई के लिए कुल संख्या में यात्राएं हैं। एक माध्यमिक लक्ष्य यह सुनिश्चित करना होगा कि कोई भी कार्यकर्ता यात्रा की संख्या में कमी न करे।
अग्रिम में धन्यवाद!!