2009-07-23 16 views
16

इसलिए मुझे वेबशॉप सिस्टम के लिए शिपिंग मॉड्यूल बनाने का कार्य दिया गया है। यह थोड़ा अधिक हो सकता है, लेकिन मैं वास्तव में एक ऐसा बनाना चाहता हूं जो सबसे अनुकूलित तरीके से पार्सल को पैक करने का तरीका समझ सके। इसे करने से प्रोग्रामिंग सीखने के बाद, यह एक ऐसा क्षेत्र है जहां मुझे कोई ज्ञान नहीं है - अभी तक! वैसे भी मैं केवल वास्तविक समस्या का संक्षिप्त विवरण दे सकता हूं।पायथन में एक अनुकूलित पैकिंग फ़ंक्शन कैसे बनाएं?

तो जब वेबशॉप पर सामान से उपयोगकर्ता के पास उनके कार्ट में एक्स उत्पाद संभवतः विभिन्न आकार और वजन के साथ होंगे। तो मैं फ़ंक्शन में उत्पादों की उस सूची को देना चाहता हूं और यह पता लगाने देता हूं कि इन उत्पादों को पार्सल में कैसे पैक किया जाना चाहिए। पार्सल का

  • अधिकतम लंबाई: पार्सल की 100
  • अधिकतम चौड़ाई: पार्सल के 50
  • अधिकतम ऊंचाई: पार्सल के 50
  • अधिकतम वजन: 20

हर उत्पाद एक वजन है लंबाई, चौड़ाई और ऊंचाई भी।

चूंकि पार्सल और उत्पाद मूल रूप से बक्से हैं, इसलिए मुझे लगता है कि यह जटिल होगा, क्योंकि पार्सल के अंदर उत्पादों को डालने के विभिन्न तरीके हैं। मेरा लक्ष्य सही पैकेजिंग फ़ंक्शन नहीं बनाना है, लेकिन जब तक सीमा सीमित नहीं हो जाती है, तब तक मैं सिर्फ पार्सल के अंदर उत्पादों को डालने से बेहतर कुछ करना चाहूंगा।

अब, मुझे उम्मीद नहीं है कि आप लोग मेरे लिए यह करें, लेकिन मैं जो पूछना चाहूंगा वह तीन चीजें हैं।

  1. मुझे अच्छे ऑनलाइन संसाधन कहां मिल सकते हैं जो मुझे मूलभूत बातें सिखाएंगे?
  2. क्या कुछ देशी पायथन उपकरण हैं जिनका उपयोग करना अच्छा होगा?
  3. मैं क्या के बारे में पता करने की आवश्यकता है के कुछ संकेत दिए गए, नुकसान आदि

जैसा कि मैंने कहा, मैं इस सही और 100% अनुकूलित होने के लिए योजना नहीं है, लेकिन मैं कुछ के साथ खत्म करना चाहते हैं वह करीब आ जाएगा। अगर मुझे लगता है कि भेजने का शुल्क वास्तविक से बहुत अधिक होगा तो मुझे नफरत होगी।

+0

वाह - आप के लिए एक नेप्सेक समस्या हल करने के लिए अपने दिन का काम? मैं आपको ईर्ष्या देता हूं :-) –

उत्तर

5

तथ्य यह है कि आपके पास ऊंचाई, लंबाई और चौड़ाई है, यह एक साधारण knapsack समस्या से कठिन है। 3D knapsack problem की एक दिलचस्प चर्चा यहां दी गई है।

यहां एक ही व्यक्ति द्वारा paper on the topic है।

6

यह आपका विशिष्ट knapsack problem है। विभिन्न भाषाओं के लिए कई समाधान Rosetta Code पर पाए जा सकते हैं।

+0

यह नहीं है? Knapsack समस्या निर्दिष्ट करती है कि आपके पास कंटेनर x का आकार है, और आपको आइटम प्रॉपर्टी वाई के योग को अधिकतम करने में आइटमों को फिट करने की आवश्यकता है। क्या googletorp चाहता है कि आइटम प्लेसमेंट समेत सबसे प्रभावशाली तरीके से इसे कैसे पैक किया जाए। – Yacoby

+0

यह एक दिलचस्प पढ़ा गया था, लेकिन यह ठीक से हल नहीं करेगा जो मैं देख रहा हूं क्योंकि यह केवल वॉल्यूम को देखता है। 51x26x26 हैं जो 7 उत्पादों को देखते हुए मैं केवल पार्सल में से किसी एक को फिट करने में सक्षम हूं, लेकिन वॉल्यूम गणना का उपयोग करके सभी 7 एक पार्सल में फिट होंगे। – googletorp

+1

ठीक है, "सामान्य" knapsack समस्या में केवल एक आयाम (वॉल्यूम) है। यहां दिखाए गए समस्या में चार आयाम होंगे, अंतरिक्ष के लिए तीन और वजन के लिए एक होगा। यह अभी भी knapsack समस्या है, केवल थोड़ा और जटिल है। – Bombe

2

यह एक अच्छी समस्या है जिसमें the simplex algorithm या genetic algorithm लागू करने के लिए एक अच्छी समस्या है। यदि आपने बाद के बारे में कभी नहीं सुना है, तो मैं आपको उनके बारे में पढ़ने की सलाह देता हूं। जैसा कि मैं आपके प्रश्न से देख सकता हूं, आप इस वृद्धि को कर रहे हैं क्योंकि आप चीजों को बेहतर तरीके से काम करना पसंद करते हैं, और इसलिए नहीं क्योंकि आपको ऐसा करने के लिए कहा गया था। कल्पना करें कि जब आप उन्हें बताएंगे तो आपने उनकी समस्या को हल करने के लिए एक आर्टिफिशियल इंटेलिजेंस तकनीक लागू की है!

आपकी समस्या का समाधान करने वाले कई सीधा-आगे एल्गोरिदम हैं, लेकिन यह कुछ विकासवादी गणना सीखने का एक शानदार अवसर हो सकता है। आनुवंशिक एल्गोरिथम [सब लोग, संपादित करें और जोड़ने के लिए स्वतंत्र महसूस] के बारे में कुछ दिलचस्प लिंक: उस के साथ

  1. These pages introduce some fundamentals of genetic algorithms.
  2. Genetic Algorithms in Plain English

लक!
मैनुअल

+0

मुझे यकीन नहीं है कि वह आनुवांशिक एल्गोरिदम का उपयोग करने से भी परेशान क्यों होगा, क्योंकि बेहतर एल्गोरिदम जो उसकी विशेष स्थिति के लिए उपयुक्त हैं। – pg1989

0

यह एक पुरानी सवाल, लेकिन सिर्फ मामले में किसी को इस अजगर pyshipping बुलाया पुस्तकालय ... है कि वहाँ इस समस्या का हल ठोकर:

https://pypi.python.org/pypi/pyShipping

संबंधित मुद्दे