Skip to main content

Ano ang Dynamic Programming?

Dynamic programming, kapag tinutukoy ang larangan ng science sa computer, ay naglalarawan ng isang pangkat ng mga katulad na mga algorithm ng computer na nangangahulugang malutas ang mga kumplikadong problema sa pamamagitan ng pagsira sa problema sa mga hanay ng mga mas maliit na problema.Una na nilikha ni Richard Bellman noong 1950s, ang mga dynamic na programming ay gumagana sa mga problema na alinman sa pag -overlay ng mga subproblem o pinakamainam na mga substructure.Upang maunawaan kung paano gumagana ang mga dynamic na programming, pinakamahusay na maunawaan ang konsepto sa likod ng dalawang term na ito.Halimbawa, ang isang equation ng matematika na sinabi upang makalkula ang lahat ng posibleng mga resulta gamit ang isang hanay ng mga numero ay maaaring makalkula ang parehong resulta nang maraming beses habang kinakalkula ang iba pang mga resulta lamang sa isang beses.Sasabihin ng dinamikong programming ang problemang ito na pagkatapos ng pagkalkula ng resulta sa unang pagkakataon ay dapat itong i -save ang resulta na iyon at isaksak ang sagot sa equation mamaya sa halip na makalkula muli ito.Kapag nakikitungo sa mahabang kumplikadong mga proseso at equation, nakakatipid ito ng oras at lumilikha ng isang mas mabilis na solusyon gamit ang mas kaunting mga hakbang.Matapos masira ang isang kumplikadong problema sa mas maliit na mga problema, ang computer pagkatapos ay gumagamit ng isang sistema ng matematika upang matukoy kung ano ang pinakamahusay na sagot para sa bawat problema.Kinakalkula nito ang sagot sa orihinal na problema mula sa mas maliit na mga sagot.Ang mga bahid ay umiiral sa prosesong ito.Habang binibigyan nito ang solusyon na gumagana ang pinakamahusay na matematika, maaaring o hindi ito ang pinakamahusay na solusyon sa totoong buhay, depende sa uri ng problema at kung paano ito nauugnay sa totoong mundo.Sinusubukan ng Algorithm na hanapin ang pinakamaikling landas sa solusyon.Maaari itong tumagal ng isa sa dalawang diskarte upang gawin ito.Ang top-down na diskarte ay sumisira sa equation pababa sa mas maliit na mga equation at muling ginagamit ang mga sagot para sa mga equation na ito kung kinakailangan.Ang diskarte sa ilalim-up ay sumusubok na malutas ang pinakamaliit na halaga ng matematika pagkatapos masira ang equation pababa at pagkatapos ay gumagana hanggang sa pinakamalaking mula doon.Ang parehong mga diskarte ay makatipid ng oras, ngunit ang mga dynamic na programming ay gumagana lamang kapag ang orihinal na problema ay maaaring masira sa mas maliit na mga equation na sa ilang mga punto ay muling ginagamit upang malutas ang equation.