universelle pour construire des algorithmes. Il y a cependant quelques grandes méthodes : la méthode incrémentale • c'est l'idée de résoudre un problème à partir d'une solution de ; c'est typiquement une méthode par récurrence, qui peut donner lieu aussi bien à des programmes itératifs qu'à des programmes récursifs ; dans le cas d'un problème d'optimisation, la méthode vorace consiste à construire une solution de en prolongeant une solution de par un choix localement optimal la méthode << diviser pour régner >> • c'est une méthode descendante, qui conduit à décomposer un problème en sous-problèmes et à construire une solution du problème en composant les solutions de ces sous- problèmes, typiquement en transformant un problème en deux problèmes la programmation dynamique • c'est une méthode ascendante, utilisable pour des problèmes d'optimisation, qui consiste à construire la solution d'un problème à partir des solutions de tous les sous-problèmes ; elle s'applique quand toute sous-solution d'une solution optimale est optimale pour le sous-problème correspondant