2009-12-30 16 views
19

मैं एक सी ++ पुस्तकालय की तलाश में हूं, और मैं उत्तल उद्देश्य और बाधा कार्यों से निपट रहा हूं।एक अच्छा उत्तल अनुकूलन पुस्तकालय क्या है?

+4

आपने इसे अंतिम बार कहाँ देखा? –

+0

अधिकांश एलपी हलकों के पास समस्या सेट को परिभाषित करने का अपना तरीका होता है। इसके लिए प्रोग्रामेटिक इंटरफेस ज्यादातर चीनी कोटिंग है। –

+0

मैं cvxopt का उपयोग कर रहा हूं, और स्थापित करने के लिए मैंने बस http://www.lfd.uci.edu/~gohlke/pythonlibs/#cvxopt से प्रीकंपिल्ड लाइब्रेरी डाउनलोड की हैं, फिर पीआईपी इंस्टॉल (डाउनलोड व्हील) किया था, फिर आयात करना सुनिश्चित किया इसका उपयोग करने से पहले numpy। – Phylliida

उत्तर

12

मुझे लगता है कि आपकी समस्या गैर-रैखिक है। जहां मैं काम करता हूं, हम SNOPT, Ipopt और एक अन्य मालिकाना सॉल्वर (बिक्री के लिए नहीं) का उपयोग करते हैं। हमने Knitro के बारे में अच्छी चीजों की भी कोशिश की और सुना है।

जब तक आपकी समस्या उत्तल हो, तब तक ये सभी हलक अच्छी तरह से काम करते हैं।

उनके सभी का अपना एपीआई है, लेकिन वे सभी एक ही जानकारी के लिए पूछते हैं: मूल्य, पहले और दूसरे डेरिवेटिव।

1

जो मुझे पता है, से CPLEX सॉल्वर सबसे अच्छा उत्तल अनुकूलन सॉल्वर है। एलपी हलकों में कला की स्थिति है। उत्तल अनुकूलन वास्तव में अच्छी तरह से करता है। इसकी तलाश करते समय, मैं देखता हूं कि अब इसका आईबीएम सॉफ्टवेयर है। आप इसे यहां पा सकते हैं: http://www-01.ibm.com/software/integration/optimization/cplex/

+0

आप अन्य ओपन सोर्स सॉलर्स और उनके प्रदर्शन मानक यहां देख सकते हैं: http://plato.asu.edu/ftp/lpfree.html इसके अलावा, http://code.msdn.microsoft.com/solverfoundation –

+0

को देखना न भूलें रैखिक उत्तल का तात्पर्य है, न कि दूसरी तरफ। –

+0

cplex रैखिक रूप से या चौकोर रूप से बाधित उत्तल समस्या हल करता है। यह बहुत तेज़ है, लेकिन यह सामान्य उत्तल समस्याओं को संभाल नहीं करता है। –

4

आपकी समस्याओं का मानना ​​नॉनलाइनर है, आप सैंडिया लैब से उपलब्ध मुक्त और खुले स्रोत OPT++ का उपयोग कर सकते हैं। मैंने इसे सी ++ में एक प्रोजेक्ट में इस्तेमाल किया है और इसका उपयोग करना आसान था और अच्छी तरह से काम किया।

1

आप उपयोग कर सकते हैं GSL (GNU Scientific Library) the packageNLopt जो, स्वेच्छापूर्ण बाध्य विवश है, और सामान्य nonlinear असमानता की कमी के साथ एक nonlinear अनुकूलन पैकेज है साथ।

+0

दो टिप्पणियां: सबसे पहले, आप का क्या मतलब है कि आप जीएसएल और एनएलओपीटी (एनएलपीटी के साथ जीएसएल) का उपयोग कर सकते हैं? वे अलग परियोजनाएं प्रतीत होते हैं। उनके पास एक ही भावना है लेकिन वे स्वतंत्र हैं। दूसरा, एनएलओपीटी के लेखक वेबपृष्ठ से उत्तल समस्याओं के लिए एनएलओपीटी का उपयोग करने की अनुशंसा नहीं करते हैं: "एनएलओपीटी में केवल सामान्य विधियां शामिल हैं जो उत्परिवर्तन नहीं मानती हैं; यदि आपके पास पर्याप्त रूप से उत्तल समस्या है, तो आप एक अलग सॉफ़्टवेयर पैकेज से बेहतर हो सकते हैं , जैसे स्टैनफोर्ड से सीवीएक्स पैकेज। " http://ab-initio.mit.edu/wiki/index.php/NLopt_Introduction#Global_versus_local_optimization – alfC

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