विभिन्न आर द्विघात प्रोग्रामिंग सॉल्वर के बीच अंतर क्या हैं?


9

मैं कुछ द्विघात अनुकूलन समस्याओं को हल करने में मेरी मदद करने के लिए एक पैकेज की तलाश में हूं और मुझे लगता है कि कम से कम आधा दर्जन विभिन्न पैकेज हैं। इस पृष्ठ के अनुसार :

QP (द्विघात प्रोग्रामिंग, 90C20): cplexAPI , kernlab , limSolve , LowRankQP , quadprog , Rcplex , Rmosek

इनमें से कुछ (Rmosek और cplexAPI) अन्य मालिकाना पैकेजों पर निर्भर करते हैं, इसलिए मुझे इसमें कोई दिलचस्पी नहीं है।

अन्य QP पैकेजों के बीच उल्लेखनीय अंतर क्या हैं?


क्या आपने दिए गए संदर्भ पत्रों को देखा है? एक ही प्रक्रिया / एल्गोरिदम में अलग-अलग कार्यान्वयन हो सकते हैं। यदि कोई भी आंतरिक बिंदु , विश्वास-क्षेत्र या सक्रिय-सेट विधियों का उपयोग करके QP समस्या को हल कर सकता है ।
us --r11852

1
इसमें ऑस्पैक पैकेज भी है - विरल प्रणालियों के लिए यह अब तक के सबसे तेज़ कार्यान्वयन R में उपलब्ध है ...
टॉम वेन्स्लेर्स

जवाबों:


11
  • Cplex (cplexAPI, Rcplex): खुला स्रोत नहीं है (लेकिन एक वार्षिक अक्षय मुक्त शैक्षणिक लाइसेंस है)। यह विरल मैट्रिस का समर्थन करता है। जब मैं इसे इस्तेमाल कर रहा था, तो क्यूपी के लिए मेरा गॉपट रैपर था। बीवर कि शैक्षणिक लाइसेंस कई कोर पर इसका उपयोग करने की अनुमति नहीं देता है (के माध्यम से कहते हैं mclapply())।
  • ipop (kernlab में एक) शुद्ध R में लागू किया गया है, जो इसे बड़े अनुप्रयोगों में अनावश्यक रूप से धीमा कर देता है। विरल मैट्रिक्स का समर्थन नहीं करता है।
  • limSolve पूर्ण विकसित क्यूपी को हल नहीं करता है, केवल उन जहां बाधाएं प्रकार की समानता हैं। सभी क्यूपी समस्याओं को इस तरह से तैयार नहीं किया जा सकता है, लेकिन जब हो सकता है, तो उनके पास एक स्पष्ट समाधान होता है। विरल मैट्रिस का समर्थन नहीं करता है।
  • LowRankQP: मेरे अनुभव में यह एक अच्छा है (दूसरे ओपन सोर्स वालों की तुलना में तेजी से)। विरल मैट्रिस का समर्थन नहीं करता है।
  • क्वाडप्रोग: गोल्डफर्ब और इदानी डुअल और प्राइमल-डुअल सॉल्वर का बेसलाइन कार्यान्वयन। विरल मैट्रेस का समर्थन नहीं करता है, लेकिन मध्यम आकार की समस्याओं के लिए शांत उपवास करता है।
  • Rmosek: कभी नहीं की कोशिश की।

संपादित करें।

जब से मैंने यह उत्तर लिखा है, एक नया पैकेज, ipoptr अब R-forge पर उपलब्ध है। यह R- ब्लॉगर पोस्ट इसे शुद्ध QP पर quadprog के साथ प्रदर्शन की तुलना करता है। संक्षेप में, ipoptr स्पार्स मैट्रिक्स ट्रिपलेट्स का समर्थन करता है और डिज़ाइन मैट्रिसेस स्पार्स होने पर क्वॉडप्रोड की तुलना में बहुत तेज़ हो जाता है। जब डिजाइन मैट्रिस घने होते हैं, तब भी क्वाडप्रोग काफी तेज प्रतीत होता है।


2
मेरा अनुभव है कि क्वाड्रप्रॉग छोटी-से-मध्यम समस्याओं के लिए अभी भी तेज है, और ipoptr तभी तेज होता है जब समस्या काफी बड़ी हो।
नील फुल्ट्ज़

2
इन विषयों पर ब्लॉग पोस्ट का एक हालिया सेट है। उदाहरण के लिए देखें, blog.ryanwalker.us/2015/02/…
chandler

1
यह भी देखें ब्लॉग .ryanwalker.us
chandler

1
यह भी ध्यान दें कि क्वाड्रप्रग को द्विघात रूप में सकारात्मक निश्चित मैट्रिक्स की आवश्यकता होती है ।
ae0709

इसमें ऑस्पैक पैकेज भी है - विरल प्रणालियों के लिए यह अब तक के सबसे तेज़ कार्यान्वयन R में उपलब्ध है ...
टॉम वेन्स्लेर्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.