22

मैं पूर्णांक रैखिक प्रोग्रामिंग के लिए नौसिखिया हूँ। मैं अपनी संयोजी अनुकूलन समस्या को हल करने के लिए एक पूर्णांक रैखिक प्रोग्रामिंग सॉल्वर का उपयोग करने की योजना बना रहा हूं। मैं आईडीई पर सी ++/ऑब्जेक्ट उन्मुख प्रोग्रामिंग से अधिक परिचित हूं। अब मैं अपने अनुप्रयोगों को अधिकतर समय लिखने के लिए सिगविन के साथ नेटबीन का उपयोग कर रहा हूं।एक पूर्णांक रैखिक प्रोग्रामिंग सॉल्वर कैसे चुनें?

क्या मैं पूछ सकता हूं कि मेरे लिए आईएलपी सॉल्वर का आसान उपयोग है या नहीं? या यह उस समस्या पर निर्भर करता है जिसे मैं हल करना चाहता हूं? मैं कुछ संसाधन मैपिंग अनुकूलन करने की कोशिश कर रहा हूं। यदि कोई और जानकारी आवश्यक है तो कृपया मुझे बताएं।

आपको बहुत धन्यवाद, कैसी।

उत्तर

1

Linear Programming विकिपीडिया से कुछ अलग-अलग एल्गोरिदम शामिल हैं जो आप कुछ खोदने के लिए देख सकते हैं जो आपके लिए सबसे अच्छा काम कर सकता है। क्या इससे मदद मिलती है या आप कुछ और विशिष्ट चाहते हैं?

4

बड़ी समस्याओं के लिए, आप AMPL पर देख सकते हैं, जो कई backend solvers के साथ एक अनुकूलन दुभाषिया है। यह a separate process के रूप में चलता है; इनपुट डेटा लिखने के लिए सी ++ का उपयोग किया जाएगा।

फिर आप विभिन्न अत्याधुनिक हलकों को आजमा सकते हैं।

8

यदि आप जो चाहते हैं वह रैखिक मिश्रित पूर्णांक प्रोग्रामिंग है, तो मैं सिक्का-ओआर (और विशेष रूप से मॉड्यूल सीबीसी) को इंगित करता हूं। यह मुफ्त सॉफ्टवेयर (भाषण के रूप में) आप या तो इसे किसी विशिष्ट भाषा के साथ उपयोग कर सकते हैं, या C++ का उपयोग कर सकते हैं।

सी ++ का उपयोग करें यदि आपको डेटा को बहुत से प्रीप्रोकैसिंग की आवश्यकता होती है, या यदि आप अपने हाथों को सॉल्वर में रखना चाहते हैं (पिवट पॉइंट, कॉलम पीढ़ी, कटौती और अन्य जोड़ना ...)।

एकीकृत भाषा का उपयोग करें यदि आप ब्लैक बॉक्स के रूप में सॉल्वर का उपयोग करना चाहते हैं (आप केवल परिणाम में रूचि रखते हैं और समस्या ट्विकिंग के बिना सुलझाने के लिए पर्याप्त या क्लासिक पर्याप्त है)।

लेकिन टैग में आप अनुवांशिक एल्गोरिदम और ग्राफ़ एल्गोरिदम का उल्लेख करते हैं। हो सकता है कि आप अपनी समस्या defing बेहतर से शुरू कर देना चाहिए ... रेखांकन के लिए मैं एक बहुत बूस्ट :: ग्राफ़

+0

बहुत बहुत धन्यवाद। मेरी समस्या मूल रूप से शेड्यूलिंग के लिए कार्य ग्राफ़ पर मशीनों पर मैपिंग नौकरियां है। तो मान लीजिए मेरे पास एक कार्य ग्राफ है। प्रत्येक नोड एक नौकरी का प्रतिनिधित्व करता है जिसे मशीन पर संचालित करने की आवश्यकता होती है। मशीनों के लिए नौकरियों के अलग-अलग मानचित्रण के परिणामस्वरूप महत्वपूर्ण पथ पर अलग-अलग कुल शेड्यूलिंग समय होते हैं। मेरा लक्ष्य कुछ नौकरियों से मशीन असाइनमेंट के न्यूनतम समय निर्धारण समय को ढूंढना है। तो क्या किसी को किसी भी आसान उपयोग सॉल्वर को पता है जिसके लिए मेरे लिए उपयोग करने के लिए मजबूत प्रोग्रामिंग बैकगाउंड की आवश्यकता नहीं है? आपका बहुत बहुत धन्यवाद।कैसी – Cassie

+2

ठीक है, इस प्रकार का शेड्यूलिंग स्वयं पर एक संपूर्ण शोध डोमेन है। कुछ समस्याओं को सबसे कम पथ एल्गोरिदम द्वारा हल किया जा सकता है (यदि आपके पास एक साथ कार्यों पर कोई बाधा नहीं है)। यदि आपकी मशीनें पूर्वदर्शी हैं, तो सरल बहुपद एल्गोरिदम हैं। अन्यथा, संभावनाएं अच्छी हैं कि आपको एक कठिन समस्या है। एक ब्लैकबॉक्स के रूप में सीबीसी का उपयोग करने का प्रयास करें (लेकिन आपको सीखना होगा कि रैखिक मॉडल में उन समस्याओं का मॉडल कैसे करें), या अपने स्वयं के ब्रांचिंग कोड को कोड करने का प्रयास करें :) –

8

मैं lp_solve (http://lpsolve.sourceforge.net/5.5/) का इस्तेमाल किया है सफलता के साथ अवसरों के एक जोड़े पर पसंद है। यह परिपक्व है, समृद्ध फीचर है और बहुत अच्छी सलाह के साथ बहुत अच्छी तरह से प्रलेखित है यदि आपके रैखिक प्रोग्रामिंग कौशल जंगली हैं। पूर्णांक रैखिक प्रोग्रामिंग सिर्फ एक ऐड नहीं है लेकिन इस पैकेज के साथ दृढ़ता से जोर दिया जाता है।

बस ध्यान दिया कि आप कहते हैं कि आप इस पर 'नौसिखिया' हैं। खैर, तो मैं दृढ़ता से इस पैकेज की अनुशंसा करता हूं क्योंकि दस्तावेज उदाहरणों और सभ्य ट्यूटोरियल से भरा है। मैंने कोशिश की अन्य पैकेजों में बहुत सारे उपयोगकर्ता को लगता है।

2

GLPK पर देखें। कुछ उदाहरणों के साथ आता है, और एएमपीएल के सबसेट के साथ काम करता है, हालांकि मॉडल सेटअप के लिए सी/सी ++ पर चिपकने पर आईएमएचओ सबसे अच्छा काम करता है। बहुत बड़े मॉडल के साथ भी copes।

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