Question 14
Le principe de l’algorithme est de déterminer pour chaque case de la matrice quelle est la plus grande valeur d’un chemin qui terminerait dans cette case. Cette valeur s’obtient en additionnant l’entier stocké dans la case et la plus grande valeur d’un chemin qui terminerait dans la case du haut (si elle existe) ou de gauche (si elle existe), en prenant le maximum quand il y a deux possibilités.
Trois éléments sont donc à initialiser : la première case, ainsi que les premières ligne et colonne.
\[\boxed{
\begin{cases}
s_{0,0}
&=m_{0,0}\\
s_{i,0}
&= m_{i,0} + s_{i-1,0}\\
s_{0,j}
&= m_{0,j} + s_{0,j-1}
\end{cases}
}
\]
Pour le cas général, on a vu que : \[\boxed{
s_{i,j}
=m_{i,j} + max(s_{i-1,j},s_{i,j-1})
}
\]