RačunalnikiProgramiranje

Dinamično programiranje, temeljna načela

Da bi izbrali optimalno rešitev pri izvajanju so programski naloge včasih potrebno rešiti velike količine podatkov, kombinacij, ki naloži spomin na osebni računalnik. Takšne metode vključujejo, na primer, metoda programiranje "deli in vladaj". V tem primeru je algoritem zagotavlja problem ločevanja v ločene manjše podopravila. Ta metoda se uporablja le v primerih, ko gre za majhne podkoraki med seboj neodvisni. Da bi se izognili opravlja nepotrebno delo, če soodvisnih podsistemov nalog, uporablja dinamično metodo programiranja predlagani ameriški R.Bellmanom v 50-ih letih.

metoda

Dinamično programiranje je določiti optimalno rešitev problema n-dimenzionalni, delijo svoje n ločene faze. Vsak od njih je sub-nalogo v zvezi z eno spremenljivko.

Glavna prednost tega pristopa se lahko šteje, da so razvijalci, ki sodelujejo v enodimenzionalne problem optimizacije Podopravila namesto n-dimenzionalni problem, in naš glavni cilj bo "od spodaj navzgor".

Priporočljivo je uporabljati dinamično programiranje v tistih primerih, ko so medsebojno povezane na manjše naloge, tj imajo skupne module. Algoritem omogoča odločitev vsakega od podopravila enkrat, in odzivi varčevanja se izvaja v posebni tabeli. To omogoča, da se ne da izračunati odgovora, ko se ponovno srečali z istim sub-nalogo.

Dinamično programiranje naloga rešuje problem optimizacije. Avtor te metode je oblikoval R. Bellman principu optimalnosti: vse, kar je začetno stanje vsakega od korakov in rešitev, opredeljeno v tem koraku, vse naslednje, da izbere optimalni v odnosu do države, ki prejme sistem na koncu koraka.

Metoda izboljša izvajanje nalog s variant, ali rekurzije rešiti.

Zgradba naloga algoritem

Dinamično programiranje algoritem vključuje gradnjo takih nalog, da je naloga, da se razdeli na dva ali več podopravila svoje rešitve v sestavi optimalno rešitev za vse podopravila, vključuje. Nadalje je treba napisati ponavljanja razmerja in izračun optimalne vrednosti parametrov za nalogo kot celoto.

Včasih, na 3. korak je, da si zapomnimo nekaj dodatnih osnovne informacije o napredku pri vsaki nalogi. To se imenuje povratni hod.

način nanašanja

Dinamično programiranje se uporablja, kadar obstajata dve Značilnosti:

  • optimalna za podopravila;
  • Prisotnost na problem prekrivanja podprobleme.

Reševanje problema optimizacije z dinamično programiranje, morate najprej opisati strukturo rešitve. Naloga mora biti optimalna, če je raztopina, sestavljena iz najboljših odločitev svojih podopravila. V tem primeru je priporočljivo uporabljati dinamično programiranje.

Druga lastnost problem, bistveno pri tej metodi, - majhno število pod-nalog. Rekurzivno rešitev problema z uporabo enakih prekrivajoče podskupine probleme, katerih število je odvisno od velikosti začetnega informacij. Odgovor je shranjena v posebni tabeli, program prihrani čas z uporabo teh podatkov.

Še posebej učinkovita je uporaba dinamičnega programiranja, ko je v bistvu potrebnega naloga za sprejemanje odločitev v fazah. Za primer vzemimo preprost primer problema zamenjave in popravila opreme. Recimo na Livarski stroj tovarne za proizvodnjo pnevmatik hkrati, da pnevmatiko v dveh različnih oblikah. V primeru, da ena od oblik ne uspe, je treba razstaviti stroj. Razumljivo je, da je včasih bolj donosno za zamenjavo in drugo obliko, da bi razstaviti stroj v primeru, in ta oblika bo izvedljiv v naslednji fazi. Še posebej, ker je lažje zamenjati tako delovno obliko, preden začnejo na neuspeh. Dinamično programiranje metoda določa najboljše strategije v zadevi zamenjave teh oblik, ob upoštevanju vseh dejavnikov: koristi stalnih oblik izkoriščanja, izguba časa izpadov proizvodnje, stroški zavrženih gum in več.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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