पायथन में एकाधिक डिपो से अंतिम मील डिलीवरी

पीयूएलपी और वेरोविज़ का उपयोग करके गणितीय मॉडलिंग, समाधान और विज़ुअलाइज़ेशन

द्वारा फोटो मार्सिन जोज़विआकी on Unsplash

ऑनलाइन शॉपिंग की तीव्र वृद्धि के साथ, कंपनियों को त्वरित, कम लागत वाली डिलीवरी की लगातार बढ़ती मांगों का सामना करना पड़ रहा है। अंतिम मील वितरण आपूर्ति श्रृंखला के अंतिम चरण को संदर्भित करता है, जहां डिपो से ग्राहक के दरवाजे तक पैकेज वितरित किए जाते हैं। यह एक जटिल सामरिक समस्या है जिसमें संयुक्त रूप से यह निर्धारित करना शामिल है कि ट्रकों को पैकेज कैसे आवंटित किया जाए और ट्रकों को ग्राहकों तक कैसे पहुंचाया जाए। यह भी एक बहुत महंगी समस्या है हाल के अनुमानों अंतिम मील डिलीवरी को कुल शिपिंग लागत का 53% देना। यह कुशल वितरण योजनाएँ तैयार करने की आवश्यकता को रेखांकित करता है।

इस समस्या के क्लासिक रूप में एक एकल डिपो (आमतौर पर एक गोदाम) शामिल होता है जहां से सभी ट्रकों को लोड किया जाता है और उनकी डिलीवरी पर भेजा जाता है। अधिक जटिल संस्करण में एक-दूसरे के करीब कई डिपो शामिल होते हैं - उदाहरण के लिए, जब खुदरा श्रृंखलाएं स्टोर स्थानों से डिलीवरी करती हैं। इस मामले में, किसी ग्राहक को एक से अधिक डिपो द्वारा सेवा दी जा सकती है, इसलिए कंपनी को यह भी निर्धारित करना होगा कि कौन से डिपो किन ग्राहकों को सामान भेजेंगे। कभी-कभी किसी एक डिपो में ग्राहक के ऑर्डर की सभी वस्तुएं उपलब्ध नहीं होतीं, जिसके लिए ऑर्डर को कई डिपो में विभाजित करने की आवश्यकता होती है।

नीचे हम चर्चा करेंगे कि इस अधिक जटिल मल्टी-डिपो समस्या फॉर्म का उपयोग करके कैसे मॉडल बनाया जाए और हल किया जाए पूर्णांक प्रोग्रामिंग (आईपी)। इस समस्या के निम्नलिखित पहलू हैं:

  1. ट्रकों, डिपो, ग्राहकों और उत्पादों का एक समूह है।
  2. प्रत्येक ग्राहक ने प्रत्येक उत्पाद की एक विशिष्ट मात्रा का ऑर्डर दिया है, और प्रत्येक डिपो के पास प्रत्येक उत्पाद की एक निश्चित मात्रा उपलब्ध है।
  3. प्रत्येक ट्रक बिल्कुल एक डिपो पर आधारित होता है (अर्थात् उसका मार्ग हमेशा उसके आधार पर शुरू और समाप्त होता है)। इसके अलावा, ट्रकों का एक जैसा होना जरूरी नहीं है - प्रत्येक ट्रक की मात्रा क्षमता और प्रति मील लागत अलग-अलग हो सकती है।

इसका उद्देश्य एक साथ यह निर्धारित करना है कि 1) प्रत्येक डिपो से प्रत्येक ग्राहक को भेजे जाने वाले उत्पाद, 2) ट्रकों को पैकेज कैसे आवंटित करें, और 3) प्रत्येक ट्रक को उसके ग्राहकों तक कैसे पहुंचाया जाए, यह सब इस तरह से कि न्यूनतम कुल प्राप्त हो सके वितरण लागत संभव.

हम एक आईपी मॉडल लागू करेंगे और उसका समाधान करेंगे गूदा और उपयोग करें वेरोविज़ ट्रक मार्गों की कल्पना करने के लिए। आरंभ करने के लिए, हम आवश्यक पुस्तकालय आयात करते हैं:

एक उदाहरण परिदृश्य

एक फ़र्निचर कंपनी के फ्रेडरिक्सबर्ग, वीए क्षेत्र में दो डिपो हैं जिनमें आठ ग्राहकों के ऑर्डर वितरित किए जाने हैं। डेटा और मानचित्र नीचे दिखाए गए हैं। नोट: RSI नोड्सअरे वैरिएबल के साथ तैयार किया गया था वेरोविज़ स्केच टूल, जो स्थान डेटा के ग्राफिकल निर्माण और पायथन को निर्यात करने में सक्षम बनाता है।

परिदृश्य मानचित्र: नीला मार्कर डिपो को दर्शाता है और नारंगी मार्कर ग्राहकों को दर्शाता है।

समस्या का मॉडलिंग

हालाँकि इस समस्या से निपटने के कई तरीके हैं, हम एक पूर्णांक प्रोग्रामिंग मॉडल बनाएंगे और हल करेंगे। यह समस्या का एक सटीक गणितीय विवरण देता है और मध्यम आकार की समस्या के उदाहरणों को ऑफ-द-शेल्फ सॉल्वरों का उपयोग करके इष्टतम ढंग से हल करने की अनुमति देता है (हालांकि हमारे दायरे से परे, बड़े उदाहरणों को अक्सर ऑफ-द-शेल्फ सॉल्वरों के साथ जल्दी से हल नहीं किया जा सकता है और इसके लिए विशेष रूप से आवश्यकता होती है) -डिज़ाइन किए गए समाधान एल्गोरिदम)। हम मॉडल इनपुट से शुरू करते हैं:

इसके बाद, हम अपने निर्णय चर को परिभाषित करते हैं:

अंत में, हम अनुकूलन मॉडल को परिभाषित करते हैं:

इस मॉडल में, उद्देश्य फ़ंक्शन (1) जिसे हम कम करना चाहते हैं वह केवल सभी यात्रा लागतों का योग है। (2) में बाधाएं यह सुनिश्चित करती हैं कि प्रत्येक स्थान के लिए, यदि कोई विशेष ट्रक उस स्थान पर आता है, तो ट्रक भी चला जाता है। (3) में बाधाएं यह सुनिश्चित करती हैं कि कोई भी ट्रक ऐसे डिपो से प्रस्थान न करे जो उसका बेस नहीं है। (4) में बाधाएं यह सुनिश्चित करती हैं कि प्रत्येक ग्राहक को उनके द्वारा ऑर्डर किए गए सभी उत्पाद मिलें। (5) में बाधाएं सुनिश्चित करती हैं कि किसी भी मार्ग में कोई उप-सर्किट न हो। चूँकि सर्किट बनाने वाले स्थानों के समूह में नोड्स के समान किनारों की संख्या होगी, हम इसे प्रत्येक ट्रक के लिए ग्राहकों के हर संभावित गैर-रिक्त उपसमूह में होने से रोकते हैं। (6) में बाधाएं यह सुनिश्चित करती हैं कि प्रत्येक डिपो और उत्पाद के लिए, ट्रकों पर लोड किए गए और उस डिपो से ग्राहकों को भेजे गए उत्पाद की कुल इकाइयां डिपो में उपलब्धता से अधिक न हों। (7) में बाधाएं यह सुनिश्चित करती हैं कि किसी भी उत्पाद की कोई भी इकाई ट्रक पर लोड नहीं की जाती है और ग्राहक को नहीं भेजी जाती है जब तक कि ट्रक ग्राहक से मिलने न जाए। (8) में बाधाएं यह सुनिश्चित करती हैं कि प्रत्येक ट्रक के लिए, उसमें लदे उत्पादों की कुल मात्रा उसकी क्षमता से अधिक न हो। अंत में, (9-10) में बाधाएं निर्णय चर के लिए डोमेन निर्दिष्ट करती हैं (बाइनरी के लिए)। x चर; के लिए गैर-नकारात्मक पूर्णांक u चर)।

आसानी और पुन: प्रयोज्यता के लिए, हम विशिष्ट इनपुट डेटा का उपयोग करने के लिए इस मॉडल के उदाहरण बनाने के लिए एक पायथन फ़ंक्शन बनाएंगे गूदा:

उदाहरण परिदृश्य समस्या का समाधान

अब जब हमारे पास मॉडल तैयार हो गया है, तो हम इसका उपयोग अपने परिदृश्य के लिए इष्टतम समाधान खोजने के लिए कर सकते हैं। नीचे हम सीबीसी सॉल्वर का उपयोग करते हैं जो इसमें शामिल है गूदा. इष्टतम समाधान खोजने में 15-45 सेकंड लग सकते हैं। यदि आपके पास अधिक शक्तिशाली तक पहुंच है सीप्लेक्स सॉल्वर, आप अधिक तेजी से समाधान प्राप्त करने के लिए इसके बजाय टिप्पणी की गई पंक्तियों का उपयोग कर सकते हैं।

इसे चलाने से हमें निम्नलिखित आउटपुट संदेश मिलता है:

ट्रक यात्रा कार्यक्रम निकालना और देखना

अब हमें हल किए गए मॉडल में निर्णय चर से ट्रक यात्रा कार्यक्रम निकालने की जरूरत है। प्रत्येक ट्रक के लिए, हम उसके स्टॉप जानना चाहते हैं और प्रत्येक स्टॉप पर कौन से उत्पाद वितरित करने हैं। यह जानकारी प्राप्त करने के लिए, हमें गैर-शून्य निर्णय चर को छानना होगा।

यह निम्नलिखित ट्रक यात्रा कार्यक्रम बनाता है:

ध्यान दें कि ग्राहक C1 पर दो ट्रक (T2 और T4) आते हैं - इसलिए, एक विभाजित ऑर्डर। ग्राहकों की एक साथ मांग और उपलब्ध संसाधनों को देखते हुए, यह एक इष्टतम निर्णय साबित होता है। यह तब भी आवश्यक हो सकता है जब, उदाहरण के लिए, किसी ऑर्डर में उन वस्तुओं का एक सेट शामिल होता है जो किसी एक डिपो में नहीं मिलते हैं।

ट्रक मार्गों की कल्पना

अपने अंतिम चरण के रूप में, हम उपयोग करते हैं वेरोविज़ ट्रक मार्गों के लिए एक अच्छा विज़ुअलाइज़ेशन बनाने के लिए:

निष्कर्ष

हालाँकि इस समस्या पर कई भिन्नताएँ संभव हैं, यह उदाहरण दिखाता है कि हम पूर्णांक प्रोग्रामिंग का उपयोग करके ऐसी समस्या को कैसे मॉडल और हल कर सकते हैं। यह यह भी दिखाता है कि शक्तिशाली घटकों को एक साथ जोड़ने के लिए पायथन का उपयोग कैसे किया जा सकता है गूदा और वेरोविज़ शीघ्रता से उपयोगी निर्णय समर्थन प्रणालियाँ बनाने के लिए। शुभ वितरण!

स्रोत कोड को एक नोटबुक में देखा जा सकता है यहाँ उत्पन्न करें या डाउनलोड किया गया यहाँ उत्पन्न करें.

पायथन में एकाधिक डिपो से अंतिम मील डिलीवरी स्रोत से पुनर्प्रकाशित https://towardsdatascience.com/last-mile-delivery-from-multiple-depots-in-python-26c4325407b4?source=rss—-7f60cf5620c9—4 https:// के माध्यम से wardsdatascience.com/feed

<!–

->

समय टिकट:

से अधिक ब्लॉकचेन कंसल्टेंट्स

एथेरियम के सह-संस्थापक विटालिक ब्यूटिरिन ने एथेरियम पीओडब्ल्यू फोर्क को नीचा दिखाया, उम्मीद है कि 'लोगों के पैसे खोने का परिणाम नहीं होगा'

स्रोत नोड: 1616315
समय टिकट: अगस्त 9, 2022