Dynamic Programming သည်လက်တွေ့ကျသောပြ problems နာများစွာကိုဖြေရှင်းရန်အသုံးပြုနိုင်သည့်အများအားဖြင့်အသုံးပြုသော algorithmic ဟူသောစိတ်ကူးဖြစ်သည်။ ဤဆောင်းပါးသည်အရှည်ဆုံးတိုးချဲ့မှုပြ problem နာကိုဖြေရှင်းရန်နှင့်သတ်သတ်မှတ်မှတ်သင်္ကေတများပေးရန် Dynamic programming algorithms ကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။
အရှည်ဆုံးအမြင့်ဆုံး sequence subence ပြ problem နာသည်သတ်မှတ်ထားသောကိန်းဂဏန်းတွင် sub-sequence ကိုရှာဖွေခြင်းကိုရည်ညွှန်းသည်။ ဥပမာအားဖြင့်, [10, 22, 9, 9, 33, 21, 41, 41, 61, 60, 80], အရှည်ဆုံး ascender sequence သည်အသက် 6 နှစ်ရှိပြီဖြစ်သော ascender sequence ဖြစ်သည်။
Dynamic Programming algorithms သည်များသောအားဖြင့်အောက်ခြေမှချဉ်းကပ်မှုများကိုကျင့်သုံးပြီးပထမ ဦး ဆုံးပြ problems နာများကို ဦး စွာဖြေရှင်းပြီးပြ problems နာများကိုတဖြည်းဖြည်းဖြေရှင်းခြင်း။ အရှည်ဆုံးတက်ခြင်း sub-sequence ကိုပြ problem နာအတွက် DP [i] သည် i-th element နှင့်အဆုံးသတ်သည့်အရှည်ဆုံး sub-sub-sequence ကိုကိုယ်စားပြုရန် DP [i] ကိုသတ်မှတ်နိုင်သည်။ ထို့နောက်နိုင်ငံတော်အသွင်ကူးပြောင်းမှုညီမျှခြင်းမှာ -
DP [i] = max (dp [j]) + 1, 0 ≤≤≤ <)
ပထမ ဦး စွာကျွန်ုပ်တို့သည် array dp ကိုသတ်မှတ်ပြီးဒြပ်စင်အားလုံးကို 1 သို့စတင်ပါ။ ထို့နောက် left မှညာသို့ left မှညာသို့ travers ကိုဖြတ်ပြီး, element nums [i] အဘို့, ထို့နောက် elment nums [j] ကို travers [j] travers [j] ကို travers [j] ကို travers] အကယ်. Nums [J] <Nums [i] သည်ကျေနပ်ရောင့်ရဲပါက DP ၏တန်ဖိုးကိုနောက်ဆုံးအခြေအနေ။ နောက်တစ်ခုက DP array တစ်ခုလုံးကိုတဆင့်ဆက်သွယ်ဖို့လိုတယ်, အဲဒါကအကြီးမားဆုံး avestending ရဲ့အရှည်ဆုံးကိုရှာဖို့လိုတယ်။
function ကို longoflis ($ nums) { $ n = ရေတွက် ($ nums); $ dP = array_filte (0, $ n, 1); အတွက် ($ i = 1; $ i <$ n; $ i ++) { ($ j = 0; $ j $ i <$ i; $ j ++) လျှင် ($ nums [$ j] <$ nums [$ 1]) { $ dP [$ i] = မက်စ် ($ DP [$ i], $ DP [$ j] + 1); } } } $ maxlen = 0; အတွက် ($ i = 0; $ i <$ n; $ i ++) { $ maxlen = max ($ maxlen, $ dp [$ 1); } $ maxlen ပြန်လာ; } $ nums = array (10, 22, 9, 33, 6, 21, 6, 61, 60, 80); $ ရလဒ် = laxoflis ($ nums); ECHO "အရှည်ဆုံး ascender sequence ၏အရှည်သည်" ။ $ ရလဒ်,
အထက်ပါကုဒ်တွင် function longoflis သည်အငြင်းပွားဖွယ်ရာအရေအတွက်ကိုအငြင်းပွားဖွယ်ရာအဖြစ်ယူပြီးအရှည်ဆုံးအမြင့်ဆုံးသောနောက်ဆက်တွဲကိုပြန်ပို့သည်။ ပေးထားသောဥပမာတွင် output သည် 6 ဖြစ်သည်။
dynamic programming algorithms မှတဆင့်ကျွန်ုပ်တို့သည်အရှည်ဆုံးတက်ကြွသောနောက်ဆက်တွဲပြ the နာကိုထိရောက်စွာဖြေရှင်းနိုင်သည်။ လက်တွေ့ကျသောအပလီကေးရှင်းများ၌ဤ algorithm ကိုရှာဖွေရေးအင်ဂျင်များ,
ဤဆောင်းပါးသည်သင့်အားပြောင်းလဲနေသောပရိုဂရမ်းမင်း algorithms များကိုနားလည်ရန်နှင့်လက်တွေ့ပြ problems နာများကိုပြောင်းလွယ်ပြင်လွယ်လျှောက်လွှာတင်ရန်ကူညီနိုင်သည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။