पायथन में रैखिक बाधाओं के साथ कम से कम वर्गों की समस्या का समाधान


12

मुझे हल करने की जरूरत है

minxAxb22,s.t.ixi=1,xi0,i.

मुझे लगता है कि यह एक द्विघात समस्या है जिसे CVXOPT के साथ हल किया जाना चाहिए , लेकिन मैं कैसे काम नहीं कर सकता।


मुझे उम्मीद है कि यह प्रश्न compsci के लिए भी विशिष्ट नहीं है।
tillsten

ज्योफ ऑक्सबेरी: बस एक जिज्ञासा है, लेकिन आपने रैखिक-भाग को क्यों संपादित किया? मुझे लगता है कि यह समस्या के विवरण का एक नपुंसक हिस्सा है, गैर-रैखिक कम से कम वर्गों के अनुकूलन के लिए समाधान काफी अलग होगा।
tillsten

Btw, अन्य संपादन महान हैं!
tillsten

आप इसे बहुत ही कुशल तरीके से अपने कोड द्वारा आसानी से हल कर सकते हैं। CVXOPT के लिए कोई ज़रूरत नहीं है।
रॉय

जवाबों:


11

मैंने CVXPY की खोज करने से पहले एक पूर्ण उत्तर (लाइन के नीचे) लिखा था , जो (MATLAB के लिए CVX की तरह) आपके लिए सभी कठिन चीजें करता है और यहाँ आपके लिए लगभग समान उदाहरण है । आपको केवल संबंधित पंक्ति को बदलने की आवश्यकता है

 p = program(minimize(norm2(A*x-b)),[equals(sum(x),1),geq(x,0)])

मेरा पुराना जवाब, यह CVXOPT के साथ कठिन तरीका है:

अपने उद्देश्य कार्य को पूरा करने के लिए ज्योफ के सुझाव के बाद

Axb22=xTATbT,Axb=xTATAxbTAxxTAbbTb

बेशक, सभी शब्द स्केलर हैं, इसलिए आप तीसरे को स्थानांतरित कर सकते हैं और पिछले एक को छोड़ सकते हैं (क्योंकि यह पर निर्भर नहीं करता है और इसलिए यह नहीं बदलेगा कि कौन आपको न्यूनतम देता है, हालांकि आपको इसे वापस जोड़ने की आवश्यकता होगी अपने उद्देश्य का सही मूल्य प्राप्त करने के लिए हल करने के बाद) यह प्राप्त करने के लिए (आपकी बाधाओं सहित) एक द्विघात कार्यक्रम का रूप है, जैसा कि इसमें दिया गया है यहाँ CVXOPT प्रलेखन , जहाँ इस तरह की समस्या को हल करने के लिए उदाहरण कोड भी है।xx

xTATAxbT(A+AT)x

4

आपके द्वारा हल की गई समस्या के बजाय, हल करें

minxAxb22,s.t.ixi=1,xi0,i.

यह समस्या एक अलग, उत्तल, अशुभ अनुकूलन समस्या है जिसे CVXOPT, IPOPT या किसी अन्य उत्तल अनुकूलन सॉल्वर में हल किया जा सकता है।

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