Mga computerProgramming

Dynamic programming, ang mga pangunahing mga prinsipyo

Upang piliin ang mga sulit na solusyon kapag isinasagawa ang mga gawain programming ay minsan kinakailangan upang maipagsama-sama ng malalaking halaga ng mga kumbinasyon ng data na naglo-load sa memory ng personal computer. Ang ganitong mga pamamaraan isama, halimbawa, ang mga programming paraan ng "hatiin at panuntunan". Sa kasong ito ang algorithm ay nagbibigay paghihiwalay problema sa magkahiwalay na mas maliit na mga subtask. Ang pamamaraan na ito ay naaangkop lamang sa mga kaso kung saan ang mga maliliit na mga subtask ay kapwa malaya. Upang maiwasan ang pagsasagawa ng mga hindi kinakailangang trabaho kung interdependent sub-gawain, ay gumagamit ng mga dynamic na paraan ng programming iminungkahi Amerikanong R.Bellmanom sa 50s.

ang pamamaraan ng

Dynamic programming ay upang matukoy ang optimal sa solusyon ng n-dimensional problema, pagbabahagi ng kanyang n hiwalay na yugto. Ang bawat isa sa mga ito ay isang sub-gawain na may paggalang sa isang variable.

Ang pangunahing bentahe ng diskarteng ito ay maaaring ituring na ang mga developer kasangkot sa isa-dimensional problema sa pag-optimize subtask sa halip ng isang n-dimensional problema, at ang aming pangunahing layunin ay pagpunta sa "bottom-up".

Ito ay ipinapayong upang ilapat dynamic programming sa mga kasong iyon kung saan ang mga sub-gawain ay interrelated, ibig sabihin, ibahagi ang mga karaniwang mga module. algorithm ay nagbibigay ng ang desisyon ng bawat isa sa mga subtask nang isang beses, at pag-save kasagutan ay ginanap sa isang espesyal na mesa. Ginagawa nitong posible na hindi makalkula ang sagot kapag sila ay matugunan muli gamit ang parehong mga sub-gawain.

Dynamic programming gawain malulutas nito ang problema ng pag-optimize. Ang may-akda ng ang paraan na ito ay formulated sa pamamagitan R. Bellman optimality prinsipyo: ano man ang paunang estado ng bawat isa sa mga hakbang na ito at ang solusyon na tinukoy sa hakbang na ito, lahat ng mga sumusunod na piliin ang optimal na may kaugnayan sa estado, na kung saan ay tumatanggap sistema sa dulo ng hakbang.

Ang pamamaraan ay nagpapabuti sa pagganap ng mga gawain malulutas sa pamamagitan ng variant, o recursion.

Building gawain algorithm

Dynamic programming algorithm ay nagsasangkot sa pagtatayo ng naturang mga gawain na gawain sa gayon ay nahati sa dalawa o higit pang mga subtask sa kanyang solusyon ay binubuo ng isang pinakamainam na solusyon sa lahat ng mga subtask, kasama dito. Dagdag dito, ito ay kinakailangan upang magsulat ng isang pagbabalik-ugnayan, at pagkalkula ng pinakamainam na mga parameter na halaga para sa mga gawain bilang isang buo.

Minsan, sa ika-3 hakbang ay upang kabisaduhin ang ilang mga karagdagang background na impormasyon sa pag-usad ng bawat gawain. Ito ang tinatawag na return stroke.

Ang pamamaraan application

Dynamic programming ay inilapat kapag may mga dalawang katangian na mga tampok:

  • pinakamainam para sa subtask;
  • presence sa problema ng mga nagpapang-abot subproblems.

Paglutas ng mga problema sa pag-optimize sa pamamagitan ng dynamic programming, kailangan mo munang upang ilarawan ang istraktura ng solusyon. Ang gawain ay dapat na pinakamainam kung ang solusyon ay binubuo ng ang pinakamahusay na mga desisyon ng kanyang mga subtask. Sa kasong ito, ito ay ipinapayong gumamit ng mga dynamic programming.

Ang pangalawang ari-arian ng ang problema, mahalaga sa ang paraan na ito, - isang maliit na bilang ng mga sub-gawain. Recursive solusyon ng problema gamit ang parehong o-overlap na mga sub-problema, ang bilang ng kung saan ay depende sa laki ng mga paunang impormasyon. Ang sagot ay naka-imbak sa isang espesyal na talahanayan, ang programa ay nagse-save ng oras sa pamamagitan ng paggamit ng data.

Lalo na epektibong ay ang paggamit ng mga dynamic programming kapag ang gawain ay mahalagang kailangan upang gumawa ng mga pagpapasya sa yugto. Halimbawa, isaalang-alang ang isang simpleng halimbawa ng mga problema ng mga pagpapalit at pagkukumpuni ng kagamitan. Sabihin natin sa factory paghahagis machine para sa produksyon ng mga gulong sa parehong oras gawin ang mga gulong sa dalawang magkaibang mga form. Sa kaganapan na ang isa sa mga paraan nabigo, ito ay kinakailangan upang i-disassemble ang makina. Ito ay naiintindihan na minsan mas malaking kita upang palitan at isang pangalawang form upang i-disassemble ang makina sa kaso at ang form na ito ay hindi maayos na maisasagawa sa susunod na stage. Lalo na dahil ito ay mas madali upang palitan ang parehong nagtatrabaho hugis bago sila magsimulang mabibigo. Dynamic programming pamamaraan ay tumutukoy sa mga pinakamahusay na diskarte sa bagay ng ang kapalit ng mga form, nang isinasaalang-alang ang lahat ng mga kadahilanan: ang mga benepisyo ng patuloy na mga anyo ng pagsasamantala, pagkawala ng machine downtime, ang gastos ng tinapon gulong at higit pa.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 tl.delachieve.com. Theme powered by WordPress.