Динамичко програмирање — разлика између измена

Садржај обрисан Садржај додат
м Бот Мења: ko, ru, sl, uk, vi, zh
Нема описа измене
Ред 8:
Потпроблеме је потребно делити на пот-потроблеме, све док се не дође до једноставних случаја које је једноставно решити.
 
За разлику од неких алгоритама у којима се појаваљују потпроблеми који се понављају, код динамичког програмирања, један потпроблем се решава само једном. На пример, у Фибоначијевом низу F<sub>3</sub> = F<sub>1</sub> + F<sub>2</sub> andи F<sub>4</sub> = F<sub>2</sub> + F<sub>3</sub> - рачунање сваког броја захтева налажење F<sub>2</sub>. Како су F<sub>3</sub> и F<sub>4</sub> потребни за налажење F<sub>5</sub>, наивним приступом би за рачунање F<sub>5</sub> било потребно налажење F<sub>2</sub> неколико пута. Када се потпроблеми понављају више пута, наивним приступом се често изгуби доста времена на тражење њихових отималних решења, који су већ решени.
 
Како би се ово избегло, потребно је сачувати решења оних проблема који су већ решени, како би се могли касније искористити. Ово се још назива и ''мемоизација''. Уколико је очигледно да решени потпроблеми нису више потребни, могу се одбацити како би се сачувао меморијски простор.