အပလီကေးရှင်း၏ရည်ရွယ်ချက်မှာ linear optimization အတွက် အရာဝတ္ထုများ ဖန်တီးခြင်းနှင့် ဖြေရှင်းခြင်းအတွက် အဆင်ပြေသောကိရိယာများကို ပံ့ပိုးပေးရန်ဖြစ်သည်။
linear programming (LP) ဟုလည်းခေါ်သော linear optimization သည် သင်္ချာပုံစံတစ်ခုတွင် အများဆုံး(အနည်းဆုံး)အမြတ် သို့မဟုတ် အနိမ့်ဆုံးကုန်ကျစရိတ်ကဲ့သို့) အကောင်းဆုံးရလဒ်ကိုရရှိရန် နည်းလမ်းတစ်ခုဖြစ်ပြီး လိုအပ်ချက်များနှင့် ရည်မှန်းချက်များကို မျဉ်းရိုးဆက်နွယ်မှုဖြင့် ကိုယ်စားပြုပါသည်။ Linear programming သည် သင်္ချာဆိုင်ရာ ပရိုဂရမ်ရေးသားခြင်း၏ အထူးကိစ္စရပ် (သင်္ချာပိုကောင်းအောင်ပြုလုပ်ခြင်းဟုလည်း ခေါ်သည်)။
Linear ပရိုဂရမ်များ(ဤအက်ပ်၏သဘောအရ မော်ဒယ်များ) သည် စံဖော်မတ်များ(Wikipedia) တွင် ဖော်ပြနိုင်သော ပြဿနာများဖြစ်သည်-- vector x ကိုရှာပါ။ - ၎င်းသည် (အနည်းဆုံး) Z = cx; - Ax မှ Subject <=b – in maximizes( Ax>=b – in minimizes );- နှင့် x>=0။ ဤတွင် x ၏ အစိတ်အပိုင်းများသည် ဆုံးဖြတ်ရမည့် ကိန်းရှင်များဖြစ်သည်၊ c နှင့် b ကို vector များပေးထားပြီး A သည် ပေးထားသော matrix ဖြစ်သည်။
အပလီကေးရှင်း၏ ကနဦးလုပ်ဆောင်ချက်မှ - App Linear Optimization မော်ဒယ်များကို ဖန်တီးခြင်း၊ တည်းဖြတ်ခြင်း၊ ဖြေရှင်းခြင်းနှင့် ဖျက်ခြင်းအတွက် လုပ်ဆောင်ချက်များ ပါဝင်သည်။ မော်ဒယ်များကို linearProgramming.db အမည်ဖြင့် SQLite data base တွင် သိမ်းဆည်းထားသည်။ အပလီကေးရှင်းတွင် စက်၏ ဒေါင်းလုဒ်လမ်းညွှန်တွင် ဒေတာဘေ့စ်ကို သိမ်းဆည်းခြင်းနှင့် ပြန်လည်ရယူခြင်းအတွက် လုပ်ဆောင်ချက်များ ပါဝင်သည်။
ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်းပုံစံတစ်ခုကို ဖန်တီးသောအခါတွင် ကန့်သတ်ချက်နှစ်ခုကို ထည့်သွင်းသည် (တစ်လိုင်းနားပုံစံ လုပ်ဆောင်ချက်) - ဝက်ဘ် x ကိန်းရှင်အရေအတွက်နှင့် ကန့်သတ်အရေအတွက် (ဤသည်မှာ ကိန်းရှင်များအတွက် ကန့်သတ်ချက်များမပါဝင်ပါ) - ဆိုလိုသည်မှာ မက်ထရစ် A ၏အတန်းများ။ ဤဒေတာများကို ထည့်သွင်းပြီး – Linear Model ခလုတ်ကို နှိပ်ပြီးနောက်၊ သင်သည် Linear Model Creation လုပ်ဆောင်ချက်မှ မော်ဒယ်ဒေတာကို ထည့်သွင်းရန် ဆက်လက်လုပ်ဆောင်ပါ။
vector x coefficients c ကို အညွှန်းများ ၏ ရှေ့ တွင် အညွှန်း Z= အညွှန်း ဖြင့် ထည့် သည် ။
matrix А ၏ အစိတ်အပိုင်းများကို အကွက်အညွှန်း *Xi+ ၏ရှေ့ရှိ ကန့်သတ်ချက်များဟု အမည်ပေးထားသော ဇယားတွင် ထည့်သွင်းထားသည်။ အညွှန်း <= ပြီးနောက် matrix ၏ အတန်းတစ်ခုစီ၏ နောက်ဆုံးအကွက်တွင်၊ ကန့်သတ်ချက်များ၏ ဘောင်များကို b ကိုလည်း ထည့်သွင်းပါသည်။ ဤဒေတာများကို ထည့်သွင်းပြီး OK ခလုတ်ကို နှိပ်ပြီးနောက်၊ ၎င်းသည် မော်ဒယ်အမည်အတွက် မဖြစ်မနေအကွက်တစ်ခုနှင့် သိမ်းဆည်းရန်အတွက် ခလုတ်တစ်ခု ပေါ်လာသည့် - Linear Model လုပ်ဆောင်ချက်သို့ ပြန်သွားပါသည်။
မော်ဒယ်တစ်ခုအား သိမ်းဆည်းသောအခါ၊ အပလီကေးရှင်း၏ ကနဦးလုပ်ဆောင်ချက်တွင် ပြသထားသော မော်ဒယ်များစာရင်းတွင် ၎င်း၏အမည်ကို ပေါ်လွင်စေသည်။ စာရင်းထဲမှ ရွေးချယ်ထားသော မော်ဒယ်ကို တည်းဖြတ်နိုင်သည် (ခလုတ်တည်းဖြတ်ရန်) သို့မဟုတ် ဖြေရှင်းနိုင်သည် (တွက်ချက်ရန်ခလုတ်)။ တည်းဖြတ်ပြီး သိမ်းဆည်းပြီးနောက်၊ တည်းဖြတ်ထားသောဗားရှင်းကို မော်ဒယ်အသစ်အဖြစ် သိမ်းဆည်းထားပြီး ဒေတာဘေ့စ်တွင် အဟောင်းကို မပြောင်းလဲပါ။ ဒါမှ မော်ဒယ်နှစ်မျိုးလုံးကို ဖြေရှင်းနိုင်ပြီး ရလဒ်တွေကို နှိုင်းယှဉ်နိုင်ပါတယ်။ တချို့က မလိုအပ်ရင် ဖျက်နိုင်ပါတယ်။
မော်ဒယ်တစ်ခုကို ဖြေရှင်းသည့်အခါ၊ ရလဒ်သည် ပစ်မှတ်လုပ်ဆောင်ချက် Z ၏ အမြင့်ဆုံးနှင့် အနိမ့်ဆုံးကို ပြသပြီး ၎င်းဖြစ်ပေါ်သည့် vector x ၏ အစိတ်အပိုင်းများ၏ တန်ဖိုးများနှင့် ကန့်သတ်ချက်များကိုလည်း ပြသသည်။
linear programming မော်ဒယ်များကို အသုံးပြုသည့် လုပ်ငန်းများတွင် သယ်ယူပို့ဆောင်ရေး၊ စွမ်းအင်၊ ဆက်သွယ်ရေးနှင့် ကုန်ထုတ်လုပ်မှုတို့ ပါဝင်သည်။ စီစဉ်ခြင်း၊ လမ်းကြောင်းသတ်မှတ်ခြင်း၊ အချိန်ဇယားဆွဲခြင်း၊ တာဝန်ပေးအပ်ခြင်းနှင့် ဒီဇိုင်းရေးဆွဲခြင်းများတွင် မတူကွဲပြားသော ပြဿနာအမျိုးအစားများကို ပုံဖော်ရာတွင် အသုံးဝင်ကြောင်း သက်သေပြခဲ့သည်။
အပလီကေးရှင်းသည် စံပြစာကြည့်တိုက် org.apache.commons:commons-math:3.6.1 မှ ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်းအတန်း SimplexSolver အတွက် အသုံးပြုသည်။
အပ်ဒိတ်လုပ်ခဲ့သည့်ရက်
၂၀၂၅ အောက် ၁၄