সিমপ্লেক্স পদ্ধতিতে কীভাবে সর্বনিম্ন নিরঙ্কুশ বিচ্যুতিটি সমাধান করবেন?


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
@ ম্যাথিউড্রুরি আপনার উত্তর দেওয়ার জন্য ধন্যবাদ। তবে আমি জানতে চাইছি এলপি কীভাবে এই সমস্যায় কাজ করে কেবল উত্তর না দিয়ে।
দক্ষিণাঞ্চল

1
আপনি কি জানেন বা গুগল 'সিমপ্লেক্স পদ্ধতি' করেছেন?

2
রৈখিক প্রোগ্রাম হ'ল কিছু রৈখিক সীমাবদ্ধতার সাপেক্ষে রৈখিক লক্ষ্য ফাংশনের সর্বাধিক (বা হ্রাস) এর ক্ষেত্রে আপনার সমস্যার একটি সূত্র মাত্র। এটি নিজেই "সমাধান" করে না। বেশ কয়েকটি অ্যালগরিদম রয়েছে যা এই বিশেষভাবে তৈরি করা প্রোগ্রামগুলি সমাধান করে, সর্বাধিক ব্যবহৃত একটি হ'ল সিম্প্লেক্স
ইউকাসজ গ্র্যাড

1
@ এফসিওপি হ্যাঁ, প্রকৃতপক্ষে আমি সিমপ্লেক্স পদ্ধতির কয়েকটি নোট পড়েছি। তবে কীভাবে এই সমস্যাটি তৈরি করতে হয় সে সম্পর্কে আমার কোনও ধারণা নেই। যেহেতু As নোটগুলির উদাহরণগুলি খুব সাধারণ এবং নির্দিষ্ট। আমি সাধারণ সমস্যা নিয়ে আরম্ভ করতে পারি না। আমি ইতিমধ্যে এই সমস্যাটিতে দুটি রাত কাটিয়েছি, তবে এখনও বিভ্রান্ত হয়ে পড়েছি। দুঃখিত।
দক্ষিণাঞ্চল

উত্তর:


5

রৈখিক প্রোগ্রামিং দ্বারা সর্বনিম্ন নিখুঁত বিচ্যুতি সমাধানের জন্য আপনি একটি উদাহরণ চান want আমি আপনাকে আর। এ একটি সাধারণ বাস্তবায়ন দেখাবো কোয়ান্টাইল রিগ্রেশন হ'ল ন্যূনতম পরম বিচ্যুতির একটি সাধারণীকরণ, যা কোয়ান্টাইল ০.০ এর ক্ষেত্রে, তাই আমি কোয়ান্টাইল রিগ্রেশন এর সমাধান দেখাব। তারপরে আপনি আর 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

লিনিয়ার প্রোগ্রামিং উত্তল অপ্টিমাইজেশনের মাধ্যমে সাধারণীকরণ করা যায়, যেখানে সিমপ্লেক্স ছাড়াও আরও অনেক নির্ভরযোগ্য অ্যালগরিদম উপলব্ধ।

আমি আপনাকে পরামর্শ দিচ্ছি যে তারা প্রদত্ত উত্তল অপ্টিমাইজেশন বুক এবং সিভিএক্স টুলবক্সটি পরীক্ষা করে দেখুন। যেখানে আপনি নিয়মিতকরণের মাধ্যমে সহজেই সর্বনিম্ন নিরঙ্কুশ বিচ্যুতি সূচনা করতে পারেন।

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

http://cvxr.com/cvx/


2
আপনার উত্তরের জন্য ধন্যবাদ. কিন্তু যখন আমি বইটিতে "সিমপ্লেক্স পদ্ধতি" শব্দটি অনুসন্ধান করার চেষ্টা করি তখন আমি কোনও খুঁজে পাই না। সিভিএক্স টুলবক্সটি এলপি সমস্যা হিসাবে ইনপুট নেওয়ার এবং অ্যালগরিদম চালানোর জন্য কেবল একটি সরঞ্জাম। তবে আমি যা চাই তা হল এই সমস্যাটিতে অ্যালগরিদম কীভাবে কাজ করে। না হয় চূড়ান্ত ফলাফল, না কীভাবে সমস্যাটি তৈরি করা যায়। তবে ফল পাওয়ার পদক্ষেপ। ধন্যবাদ
দক্ষিণাঞ্চল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.