सिंप्लेक्स विधि द्वारा कम से कम पूर्ण विचलन कैसे हल करें?


12

यहाँ संबंधित के तहत सबसे कम पूर्ण विचलन समस्या है:। मुझे पता है कि इसे एलपी समस्या के रूप में फिर से व्यवस्थित किया जा सकता है:argminwL(w)=i=1n|yiwTx|

mini=1nui

uixTwyii=1,,n

ui(xTwyi)i=1,,n

लेकिन मेरे पास इसका कोई उपाय नहीं है कि मैं इसे कदम से कदम मिलाऊं, क्योंकि मैं एलपी के लिए नौसिखिया हूं। क्या तुम्हारे पास कोई विचार है? अग्रिम में धन्यवाद!

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

यहाँ नवीनतम चरण मैं इस समस्या पर पहुँच गया है। मैं इस नोट के बाद समस्या को हल करने की कोशिश कर रहा हूं :

चरण 1: इसे एक मानक रूप में तैयार करना

minZ=i=1nui

xTwui+s1=yii=1,,n

xTw+ui+s2=yii=1,,n

s_1 \ ge 0 के अधीन s10;s20;ui0 i=1,...,n

चरण 2: एक प्रारंभिक झांकी का निर्माण

           |      |    0      |    1   |  0  |   0   |   0    
 basic var | coef |  $p_0$    |  $u_i$ |  W  | $s_1$ | $s_2$ 
      $s_1$| 0    |  $y_i$    |   -1   |  x  |   1   |   0
      $s_2 | 0    |  $-y_i$   |    1   |  x  |   0   |   1
      z    |      |    0      |    -1  |  0  |   0   |   0

चरण 3: बुनियादी चर चुनें

ui को इनपुट बेस वेरिएबल के रूप में चुना जाता है। यहाँ एक समस्या आती है। आउटपुट बेस वैरिएबल चुनते समय, यह स्पष्ट है yi/1=yi/1=yi । नोट के अनुसार, यदि yi0 , समस्या का हल नहीं है।

मैं यहां पूरी तरह से खो गया हूं। मुझे आश्चर्य है कि अगर कुछ गलत है और मुझे निम्नलिखित चरणों को कैसे जारी रखना चाहिए।


2
व्यावहारिक रूप से, आप अपने स्वयं के लिखने के बजाय एक रैखिक कार्यक्रम सॉल्वर का उपयोग करते हैं। मैं गॉरोबी को रिजेक्ट करता हूं।
मैथ्यू ड्र्यू

1
@MatthewDrury आपके उत्तर के लिए धन्यवाद। लेकिन मैं यह जानना चाहता हूं कि एलपी इस समस्या में कैसे काम करता है, बजाय केवल जवाब लेने के।
दक्षिणावर्त

1
क्या आप जानते हैं या आपने Google 'सिंप्लेक्स विधि' की थी?

2
रैखिक कार्यक्रम कुछ रैखिक बाधाओं के अधीन रैखिक लक्ष्य फ़ंक्शन के अधिकतम (या कम से कम) के संदर्भ में आपकी समस्या का एक सूत्रीकरण है। यह खुद को "हल" नहीं करता है। एल्गोरिदम का एक समूह है जो इन विशेष रूप से तैयार किए गए कार्यक्रमों को हल करता है, सबसे अधिक इस्तेमाल में से एक सिम्पलेक्स है
7ukasz ग्रैड

1
@fcop हां, वास्तव में मैंने सिम्पलेक्स विधि के कुछ नोट्स पढ़े हैं। लेकिन मुझे नहीं पता कि इस समस्या को कैसे उत्पन्न किया जाए। जैसा कि उन नोटों में उदाहरण बहुत ही सरल और विशिष्ट हैं। मैं सामान्य समस्याओं के साथ शुरुआत नहीं कर सकता। मैंने पहले ही इस समस्या में दो रातें बिताई हैं, लेकिन अभी भी भ्रमित हो रहा है। माफ़ करना।
दक्षिणावर्त

जवाबों:


5

आप रैखिक प्रोग्रामिंग द्वारा कम से कम पूर्ण विचलन को हल करने के लिए एक उदाहरण चाहते हैं। मैं आपको आर। में एक सरल कार्यान्वयन दिखाऊंगा। क्वांटाइल प्रतिगमन कम से कम पूर्ण विचलन का एक सामान्यीकरण है, जो क्वांटाइल 0.5 का मामला है, इसलिए मैं क्वांटाइल प्रतिगमन के लिए एक समाधान दिखाऊंगा। फिर आप आर quantregपैकेज के साथ परिणाम देख सकते हैं :

rq_LP  <-  function(x, Y, r=0.5, intercept=TRUE) {
    require("lpSolve")
    if (intercept) X  <-  cbind(1, x) else X <-  cbind(x)
    N   <-  length(Y)
    n  <-  nrow(X)
    stopifnot(n == N)
    p  <-  ncol(X)
    c  <-  c(rep(r, n), rep(1-r, n), rep(0, 2*p))  # cost coefficient vector
    A  <- cbind(diag(n), -diag(n), X, -X)
    res  <-  lp("min", c, A, "=", Y, compute.sens=1)
### Desempaquetar los coefs:
    sol <- res$solution
    coef1  <-  sol[(2*n+1):(2*n+2*p)]
    coef <- numeric(length=p)
    for (i in seq(along=coef)) {
         coef[i] <- (if(coef1[i]<=0)-1 else +1) *  max(coef1[i], coef1[i+p])
    }
    return(coef)
    }

फिर हम एक साधारण उदाहरण में इसका उपयोग करते हैं:

library(robustbase)
data(starsCYG)
Y  <- starsCYG[, 2]
x  <- starsCYG[, 1]
rq_LP(x, Y)
[1]  8.1492045 -0.6931818

तो आप खुद के साथ चेक कर सकते हैं quantreg


2
+1 मैं चीजों को मैन्युअल रूप से करने और फिर अलग-अलग तुलना करने का बहुत बड़ा प्रशंसक हूं!
हायताओ डु

3
थोड़ी और व्याख्या के साथ एक पोस्ट के लिए क्वांटाइल रिग्रेशन
फास्ट

2

रैखिक प्रोग्रामिंग को उत्तल अनुकूलन के साथ सामान्यीकृत किया जा सकता है, जहां सिम्प्लेक्स के अलावा, कई और अधिक विश्वसनीय एल्गोरिदम उपलब्ध हैं।

मैं आपको सुझाव दूंगा कि वे उत्तल ऑप्टिमाइज़ेशन बुक और CVX टूलबॉक्स की जांच करें, जो उन्होंने प्रदान किया है। जहां आप नियमितीकरण के साथ आसानी से कम से कम पूर्ण विचलन तैयार कर सकते हैं।

https://web.stanford.edu/~boyd/cvxbook/bv_cvxbook.pdf

http://cvxr.com/cvx/


2
आपके उत्तर के लिए धन्यवाद। लेकिन जब मैं पुस्तक में "सिम्प्लेक्स विधि" शब्द को खोजने की कोशिश करता हूं, तो मुझे कोई नहीं मिल सकता है। और CVX टूलबॉक्स एलपी समस्या के रूप में इनपुट लेने और एल्गोरिथ्म चलाने के लिए सिर्फ एक उपकरण है। लेकिन मैं वास्तव में क्या चाहता हूं कि एल्गोरिथ्म इस समस्या में कैसे काम करता है। न तो अंतिम परिणाम, और न ही समस्या को कैसे तैयार किया जाए। लेकिन परिणाम पाने के लिए कदम। धन्यवाद
southdoor
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.