Metode si Tehnici de programare - limbajul C++Adrian Runceanu |
Capitolul 11 - METODA PROGRAMĂRII DINAMICE A.Consideratii teoretice
Pentru aplicarea metodei este necesara indeplinirea principiului optimalitatii: daca d1, d2, …, dn, este un sir optim de decizii care transforma starea initiala s0 in starea finala sn trecand prin starile intermediare s1, . . . , sn-1, atunci sirul de decizii d2, …, dn, este optim pentru s1 ca stare initiala si sn ca stare finala. Dupa ce principiul a fost verificat, metoda consta in a scrie relatiile de recurenta corespunzatoare si a le rezolva. Aceste relatii sunt de doua tipuri: - fiecare decizie di depinde de deciziile di+1, . . . , dn, aici aplicandu-se metoda inainte, iar deciziile se iau în ordinea dn, dn-1, . . . , d1; - fiecare decizie di, depinde de deciziile d1, d2, …, di-1, aici aplicandu-se metoda înapoi, iar deciziile se iau în ordinea d1, d2, …, dn. In programarea dinamica se rezolva problema combinand solutiile problemelor ca si la Divide et Impera Cand subproblemele contin subprobleme comune, in locul metodei Divide et Impera este mai avantajos sa aplicam metoda programarii dinamice. B.Exemple de programe
C.Exercitii si teme
|
Copyright adrian.runceanu.ro: 2009-2016 |