4 Dynam
4 Dynam
4 Dynam
A. Principe général
B. Application
Triangle de Pascal
Série mondiale
Multiplication chaînée de matrices
Les plus courts chemins
Programmation dynamique
Principe général
• Idée de base :
Principe général
• Remarques
• Formules
Cnp = Cn-1p-1 + Cn-1p
0 1 2 3 4
0! 1
1! 1 1
2! 1 2 1
3! 1 3 3 1
4! 1 4 6 4 1
Programmation dynamique
• On a ainsi :
• P(0, 0) indéfini
• P(i, j) = q1*P(i-1, j) + q2*P(i, j-1) i, j > 0
Programmation dynamique
T(k) = 2T(k-1) + b
• Solution :
T(k) = C12k + C2
==> O(2k) = O(2i+j)
• P(n, n) = O(4n)
Programmation dynamique
• C'est O(n2)
Programmation dynamique
0 1 2 3 4
0 1 1 1 1
1 0 1/2 3/4 7/8 15/16
2 0 1/4 1/2 11/16 13/16
3 0 1/8 5/16 1/2 21/32
4 0 1/16 3/16 11/32 1/2
Programmation dynamique
0 1 3
∞ 0 1
1 3 0
Programmation dynamique
0 1 3
∞ 0 1
1 2 0
Programmation dynamique
• - Étape 2, construction de D2 :
0 1 2
∞ 0 1
1 2 0
Programmation dynamique
• - Étape 3, construction de D3 :
0 1 2
2 0 1
1 2 0
Programmation dynamique
D := L;
Pour k := 1 , n
Pour i := 1 , n
Pour j := 1 , n
D[i,j] := min ( D[i,j] , D[i,k] + D[k,j] )
Fpour
Fpour
Fpour
n 1 2 3 4 10 15
T(n) 1 1 2 5 4862 2 674 440
Nombres de Catalan.
avec T(1) = 1 on a T(10) = 4 862 et T(15) = 2 674 440, en fait ce
nombre croît en Ω(4n/n2)
• Pour s = 0 m[i,i] = 0
• Pour s = 1 m[i,i+1] = d[i-1] * d[i] * d[i+1]
• pour 1<s<n
m[i,i+s] = min (m[i,k]+m[k+1,i+s] + d[i-1]*d[k]*d[i+s])
≤ k ≤ i+s-1
i = 1, 2, …n-s
Programmation dynamique
• pour s = 2
m13=min(m11+m23+13*5*3, m12+m33 +13*89*3 )
=min(1350, 9256) = 1530
m24=min(m22+m34+5*89*34, m23+m44+5*3*34)
=min(24208, 1845) = 1845
Programmation dynamique
J=1 2 3 4
i= 1 0 5785 1530 2856
S=3
2 0 1335 1845
S=2
3 0 9078
S=1
4 0
S=0