Professional Documents
Culture Documents
2019
Programare Dinamică - Prezentare generală Programare Dinamică - Discuţii şi probleme Tehnica memoizării Concluzii
Contents
3 Tehnica memoizării
4 Concluzii
Programare Dinamică - Prezentare generală Programare Dinamică - Discuţii şi probleme Tehnica memoizării Concluzii
Problema triunghiului
Problema triunghiului
Problema triunghiului
1
35
243
5163
s1 = 1 + 3 + 2 + 5 = 11
s2 = 1 + 3 + 2 + 1 = 7
s3 = 1 + 3 + 4 + 1 = 8
s4 = 1 + 3 + 4 + 6 = 14
s5 = 1 + 5 + 4 + 1 = 11
s6 = 1 + 5 + 4 + 6 = 16
s7 = 1 + 5 + 3 + 6 = 15
s8 = 1 + 5 + 3 + 3 = 12
Programare Dinamică - Prezentare generală Programare Dinamică - Discuţii şi probleme Tehnica memoizării Concluzii
Problema triunghiului
Problema triunghiului
Problema triunghiului
v = {6, 2, 3, 1, 8, 9, 7, 8, 10}
v (8) = 10, L(8) = 1, s(8) = 8
v (7) = 8, L(7) = 1 + max{L(8)} = 2, s(7) = 8
v (6) = 7, L(6) = 1 + max{L(7), L(8)} = 3, s(6) = 7
v (5) = 9, L(5) = 1 + max{L(8)} = 2, s(5) = 8
v (4) = 8, L(4) = 1 + max{L(5), L(7), L(8)} = 3, s(4) = 5
v (3) = 1, L(3) = 1 + max{L(j), 4 ≤ j ≤ 8} = 4, s(3) = 4
v (2) = 3, L(2) = 1 + max{L(j), 4 ≤ j ≤ 8} = 4, s(2) = 4
v (1) = 2, L(1) = 1 + max{L(2), L(4), L(5), L(6), L(7), L(8)} =
5, s(1) = 2
v (0) = 6, L(0) = 1 + max{L(j), 4 ≤ j ≤ 8} = 4, s(0) = 4
Valoarea soluţiei optime este 5 = lungimea celui mai lung subşir
crescător. O soluţie optimă: 2, 3, 8, 9, 10
Programare Dinamică - Prezentare generală Programare Dinamică - Discuţii şi probleme Tehnica memoizării Concluzii
Algoritmul Floyd-Warshall
Programare Dinamică - Prezentare generală Programare Dinamică - Discuţii şi probleme Tehnica memoizării Concluzii
Algoritmul Floyd-Warshall
Subşir comun maximal
Programare Dinamică - Prezentare generală Programare Dinamică - Discuţii şi probleme Tehnica memoizării Concluzii
Algoritmul Floyd-Warshall
Subşir comun maximal
Problema sumei în dreptunghi
Programare Dinamică - Prezentare generală Programare Dinamică - Discuţii şi probleme Tehnica memoizării Concluzii
Algoritmul Floyd-Warshall
Subşir comun maximal
Problema sumei în dreptunghi
Problema rucsacului - varianta discretă
Programare Dinamică - Prezentare generală Programare Dinamică - Discuţii şi probleme Tehnica memoizării Concluzii
Algoritmul Floyd-Warshall
Subşir comun maximal
Problema sumei în dreptunghi
Problema rucsacului - varianta discretă
Problema plata unei sume date
Programare Dinamică - Prezentare generală Programare Dinamică - Discuţii şi probleme Tehnica memoizării Concluzii
Tehnica memoizării
Tehnica memoizării
Tehnica memoizării
Tehnica memoizării
Tehnica memoizării
Tehnica memoizării
Tehnica memoizării
Tehnica memoizării
Tehnica memoizării
Tehnica memoizării
Avantaje:
timp salvat şi spaţiu salvat, nu se recalculează valorile
calculate deja;
Dezavantaje:
Programare Dinamică - Prezentare generală Programare Dinamică - Discuţii şi probleme Tehnica memoizării Concluzii
Avantaje:
timp salvat şi spaţiu salvat, nu se recalculează valorile
calculate deja;
oferă întotdeauna soluţie optimă.
Dezavantaje:
Programare Dinamică - Prezentare generală Programare Dinamică - Discuţii şi probleme Tehnica memoizării Concluzii
Avantaje:
timp salvat şi spaţiu salvat, nu se recalculează valorile
calculate deja;
oferă întotdeauna soluţie optimă.
Dezavantaje:
lipsa unor "reţete de rezolvare" generalizate;
Programare Dinamică - Prezentare generală Programare Dinamică - Discuţii şi probleme Tehnica memoizării Concluzii
Avantaje:
timp salvat şi spaţiu salvat, nu se recalculează valorile
calculate deja;
oferă întotdeauna soluţie optimă.
Dezavantaje:
lipsa unor "reţete de rezolvare" generalizate;
de obicei, problemele rezolvabile cu PD sunt de o
complexitate ridicată.