जैसा कि हर किसी ने कहा है, रैखिक प्रोग्रामिंग ऑप्टिमाइज़ेशन समस्याओं को हल करने का एक तरीका है, जिसमें शर्तें रैखिक हैं।
यह समझना महत्वपूर्ण है समस्याओं के प्रकार क्या एल.पी.
एक उदाहरण मैं कहाँ का उपयोग किया है रैखिक प्रोग्रामिंग एक रेस्तरां अनुसूची बनाने जा रहा है के समाधान में मदद कर सकते हैं।एक रेस्तरां में आप कौशल सेट है:
- कुक्स
- सर्वर
- डिशवाशर
- मेजबान
- Bussers
- प्रबंधक आदि
और तुम कर्मचारी हैं, जिनमें से प्रत्येक के साथ एक या अधिक कौशल सेट। प्रत्येक कर्मचारी की एक विशिष्ट उपलब्धता भी होती है। उदाहरण के लिए, बॉब रविवार सुबह काम नहीं कर सकता क्योंकि वह स्थानीय चर्च में पादरी है। कर्मचारियों के पास भी एक लागत है। बॉब $ 10.50/घंटा हो सकता है जबकि सूजी $ 5.15/घंटा है। अंत में कर्मचारियों के पास न्यूनतम गारंटीकृत घंटे हो सकते हैं। चूंकि बॉब 15 साल तक एक कर्मचारी रहा है, बॉस का कहना है कि उसे हमेशा कम से कम 35 घंटे मिलेंगे।
रेस्तरां की मांग है। उदाहरण के लिए इसमें 3 बदलाव हैं: सुबह, दोपहर और रात, और इनमें से प्रत्येक शिफ्ट में कर्मचारियों की आवश्यकताओं का एक सेट है: हमें 1 कुक, 1 सर्वर, 1 प्रबंधक सुबह, 3 कुक, 2 सर्वर, 2 होस्ट, 2 की आवश्यकता है शाम को दोपहर में प्रबंधकों, और 4 कुक, 4 सर्वर, 3 मेजबान, 2 प्रबंधक, 2 bussers। प्रत्येक शिफ्ट की अवधि होगी, और आप कर्मचारी की प्रति घंटा मजदूरी की अवधि को गुणा करके प्रत्येक शिफ्ट की लागत का आकलन कर सकते हैं।
अंततः हमारे पास राज्य और संघीय कानून हैं, और कुछ बुनियादी "व्यवसाय" नियम हैं: कोई भी कर्मचारी ओवरटाइम में बिना 8 घंटे से अधिक समय तक काम कर सकता है। कोई भी कर्मचारी कम से कम 2 घंटे के लिए निर्धारित किया जा सकता (क्योंकि यह एक 2 घंटे की पारी के लिए 30 मिनट की लघुकरण बनाने के लिए चूसना होगा), कर्मचारियों, दो ओवरलैप पाली, आदि
अब दिए गए सभी इन आवश्यकताओं को काम नहीं कर सकता देना मुझे एक कार्यक्रम है जो सभी आवश्यकताओं को पूरा करता है, और सबसे कम श्रम लागत पैदा करता है।
यह एक रैखिक प्रोग्रामिंग अनुकूलन समस्या का एक उदाहरण है।
एक उद्देश्य समारोह, चर, चर सीमा, और बाधाओं:
एक रेखीय कार्यक्रम आम तौर पर होते हैं।
चूंकि हम लागत को कम करना चाहते हैं, इसलिए हमारा उद्देश्य कार्य उन कर्मचारियों को शामिल करने जा रहा है जो कर्मचारी काम करते हैं, और संबंधित लागत (शिफ्ट अवधि * मजदूरी)।
इस मामले में चर, प्रत्येक कर्मचारी काम कर सकते हैं कि बदलाव हैं।
इन चरों पर सीमाएं 0 और 1 के बीच पूर्णांक हैं, क्योंकि कोई कर्मचारी शिफ्ट (1) काम कर रहा है, या कर्मचारी शिफ्ट (0) काम नहीं कर रहा है। यह, वैसे, एक विशेष कार्यक्रम है, जिसे बाइनरी इंटीजर प्रोग्राम या बीआईपी संक्षिप्त कहा जाता है, क्योंकि सभी चर पूर्णांक (कोई अंशकालिक मान नहीं होते हैं) और सभी मान या तो 0 या 1.
बाधाएं समानता/उपरोक्त आवश्यकताओं के आधार पर असमानता बाधाएं।
उदाहरण के लिए, यदि ऊपर वर्णित सीमाओं के कारण बॉब और सूजी सुबह में कुक के रूप में काम कर सकते हैं, तो Bob_Morning_Cook1_Shift + Suzy_Morning_Cook1_Shift = 1
, Bob_Morning_Cook_Shift = {0,1}
और Suzy_Morning_Cook_Shift = {0,1}
के साथ। सूचना के ये तीन टुकड़े बताते हैं कि अधिकतर एक कर्मचारी को पहली सुबह पकाने के रूप में असाइन किया जा सकता है।
तो एक बार जब आप अपनी समस्या का समाधान करने वाली सभी बाधाओं को परिभाषित कर लेते हैं, तो आप समस्या को हल करना शुरू कर सकते हैं।यदि कोई समाधान पाया जा सकता है (और बाधाओं के आधार पर समस्या असुरक्षित हो सकती है), तो यह आपको कर्मचारी असाइनमेंट देगा जो सबसे कम साप्ताहिक श्रम लागत का उत्पादन करेगी।
बहुत सरलता से, यह आपकी समस्या को रैखिक समीकरणों के सेट के रूप में फिर से लिखने और फिर उन समीकरणों को हल करने के बारे में है। – FrustratedWithFormsDesigner
आप किस "अन्य विधि" के बारे में बात कर सकते हैं? –
अच्छा सवाल, मैं इसके बारे में भूल गया (जब से कैल्क हमने रैखिक प्रोग्रामिंग के बजाय इसे "अनुकूलन" कहा था) –