Cours & Tutoriels

Cours récents

Apprenez le développement informatique à votre rythme.

475 cours
Diviser pour régner Programmation dynamique

Rappel sur l'approche récursive

La récursivité est un concept fondamental en informatique et en programmation. Elle consiste à définir une fonction en utilisant une ou plusieurs instances de cette même fonction. En d'autres termes, une fonction récursive est une fonction qui s'appelle elle-même à l'intérieur de sa propre définition. Cela permet de résoudre des problèmes complexes en les divisant en sous-problèmes plus simples, qui sont ensuite résolus en appelant la fonction récursive sur les sous-problèmes.

Programmation dynamique

Méthodes de la programmation dynamique : Mémoisation et tabulation

La programmation dynamique est une technique d'optimisation qui résout des problèmes complexes en les décomposant en sous-problèmes plus simples, et en stockant les résultats intermédiaires pour éviter les calculs répétitifs. Mémoisation et tabulation sont deux approches couramment utilisées pour optimiser les solutions de programmation dynamique. Elles permettent de résoudre les problèmes plus efficacement en stockant les résultats intermédiaires pour éviter les calculs répétitifs.

Programmation dynamique

Le concept de sous-structure optimale

Le concept de sous-structure optimale fait référence à une propriété des problèmes d'optimisation où une solution optimale du problème global peut être construite à partir de solutions optimales de ses sous-problèmes. Cette propriété est essentielle pour appliquer la programmation dynamique et les algorithmes gloutons.

Programmation dynamique

Le concept de sous-problèmes superposés

Le concept de sous-problèmes superposés fait référence à une situation dans laquelle un problème peut être décomposé en sous-problèmes plus petits, mais certains de ces sous-problèmes sont résolus plusieurs fois lors de la résolution du problème initial. Cette répétition de sous-problèmes identiques est une caractéristique essentielle qui permet d'appliquer la programmation dynamique pour résoudre efficacement le problème.

Système d'exploitation

Les files d'attente d'ordonnancement

Le système d'exploitation maintient tous les PCB (Process Control Blocks) dans des files d'attente d'ordonnancement. Le SE maintient une file d'attente séparée pour chacun des états de processus et les PCB de tous les processus dans le même état d'exécution sont placés dans la même file d'attente.

Système d'exploitation

États des processus et transitions d'état

Un système d'exploitation utilise la notion d'état de processus pour garder une trace de ce qu'un processus fait à tout moment. Le noyau utilise des états de processus pour simplifier son propre fonctionnement, de sorte que le nombre d'états de processus et leurs noms peuvent varier selon les systèmes d'exploitation.