Aller au contenu principal

Cours · Bac+5 (ingénieur/expert)

Recherche opérationnelle

Fiches de cours et sous-notions liées à ce chapitre.

Connecte-toi pour t'entraîner

Pas assez de questions pour un entraînement ciblé sur cette notion.

Programmation linéaire

Non commencé

Définitions

Programmation linéaire (PL) : mincTx\min c^Tx sous contraintes linéaires AxbAx \leq b, x0x \geq 0. Région réalisable = polyèdre convexe. Théorème fondamental : optimum atteint en sommet (extrême point) si borné. Simplexe : parcours arêtes améliorant cTxc^Tx.

Dual : maxbTy\max b^Ty s.c. ATycA^Ty \leq c ; faible/forte dualité. Variables duales = prix ombre contraintes. Applications : allocation ressources, flux, planification.

PL : mincTx\min c^Tx s.c. AxbAx\leq b, x0x\geq 0. Optimum en sommet. Simplexe. Dualité faible/forte ; prix ombre.

Applications : allocation, transport, planning.

Pourquoi c’est central : cette notion structure les preuves et calculs du programme ; maîtriser définitions et hypothèses évite les applications hors cadre.

Formules

  • mincTx s.c. Axb, x0\min c^Tx \text{ s.c. } Ax \leq b,\ x \geq 0
  • maxbTy s.c. ATyc, y0\max b^Ty \text{ s.c. } A^Ty \leq c,\ y \geq 0
  • Dualiteˊ faible : cTxbTy\text{Dualité faible : } c^Tx \geq b^Ty
  • Optimum PL : sommet polyeˋdre\text{Optimum PL : sommet polyèdre}

Exemples

Exemple 1

Dualité faible.

Méthode

(1) Lire l'énoncé et repérer les hypothèses / la forme utile. (2) Pour xx et yy faisables : cTxbTyc^Tx\geq b^Ty. (3) Vérifier le résultat (ordre de grandeur, cas particulier, ou dérivation/substitution).

Résultat

cTxbTyc^Tx\geq b^Ty.

Exemple 2

Où est l'optimum ?

Méthode

(1) Lire l'énoncé et repérer les hypothèses / la forme utile. (2) Si le polyèdre est non vide et le problème borné : sommet optimal. (3) Vérifier le résultat (ordre de grandeur, cas particulier, ou dérivation/substitution).

Résultat

Optimum en sommet.

À retenir

Flots

Non commencé

Définitions

Théorie des flots : réseau G=(V,E)G=(V,E), capacités c(u,v)c(u,v), source ss, puits tt. Flot ff respecte capacité et conservation. Valeur flot f=f(s,v)|f| = \sum f(s,v). Max-flow min-cut : flux max = capacité coupe min. Ford-Fulkerson : chemins augmentants ; Edmonds-Karp O(VE2)O(VE^2).

Couplage biparti réduit à flot. Applications : réseaux transport, assignation, connectivité.

Flots : capacités, conservation, valeur. Max-flow min-cut. Ford-Fulkerson / Edmonds-Karp. Couplage biparti via flot.

Pourquoi c’est central : cette notion structure les preuves et calculs du programme ; maîtriser définitions et hypothèses évite les applications hors cadre.

Formules

  • 0f(u,v)c(u,v);vf(u,v)=0 si u{s,t}0 \leq f(u,v) \leq c(u,v) \quad ; \quad \sum_v f(u,v) = 0 \text{ si } u \notin \{s,t\}
  • f=vf(s,v)uf(u,s)|f| = \sum_{v} f(s,v) - \sum_u f(u,s)
  • maxf=minScap(S,Sˉ)\max |f| = \min_{S} \mathrm{cap}(S, \bar{S})
  • Couplage max biparti = flot max sur graphe transformeˊ\text{Couplage max biparti } = \text{ flot max sur graphe transformé}

Exemples

Exemple 1

Théorème max-flow min-cut.

Méthode

(1) Lire l'énoncé et repérer les hypothèses / la forme utile. (2) Valeur max du flot == capacité min d'une coupe ss-tt. (3) Vérifier le résultat (ordre de grandeur, cas particulier, ou dérivation/substitution).

Résultat

maxf=mincap(S,Sˉ)\max|f|=\min\mathrm{cap}(S,\bar S).

Exemple 2

Couplage biparti.

Méthode

(1) Lire l'énoncé et repérer les hypothèses / la forme utile. (2) Réduire à un flot unitaire sur graphe transformé. (3) Vérifier le résultat (ordre de grandeur, cas particulier, ou dérivation/substitution).

Résultat

Couplage max = flot max.

À retenir

Programmation dynamique

Non commencé

Définitions

Programmation dynamique (PD) : problème avec sous-structure optimale — optimum global construit d'optima sous-problèmes. Bellman : V(i)=minj{cij+V(j)}V(i) = \min_j \{ c_{ij} + V(j) \}. Mémoïsation ou tabulation bottom-up. Sac à dos 0-1 : O(nW)O(nW) pseudo-polynomial.

Plus court chemin : Bellman-Ford, Floyd-Warshall. PD stochastique pour décisions séquentielles sous incertitude.

PD : sous-structure optimale + recouvrement. Bellman. Sac à dos O(nW)O(nW). Floyd-Warshall, distances d'édition.

Pourquoi c’est central : cette notion structure les preuves et calculs du programme ; maîtriser définitions et hypothèses évite les applications hors cadre.

Formules

  • V(n)=optx{g(x)+V(n1,next(x))}V(n) = \mathrm{opt}_{x} \{ g(x) + V(n-1, \mathrm{next}(x)) \}
  • Sac aˋ dos : V(i,w)=max(V(i1,w),vi+V(i1,wwi))\text{Sac à dos : } V(i,w) = \max(V(i-1,w), v_i + V(i-1, w-w_i))
  • Floyd : dij(k)=min(dij(k1),dik(k1)+dkj(k1))\text{Floyd : } d_{ij}^{(k)} = \min(d_{ij}^{(k-1)}, d_{ik}^{(k-1)} + d_{kj}^{(k-1)})
  • Complexiteˊ sac : O(nW)\text{Complexité sac : } O(n \cdot W)

Exemples

Exemple 1

Sac à dos 0-1 : récurrence.

Méthode

(1) Lire l'énoncé et repérer les hypothèses / la forme utile. (2) V(i,w)=max(V(i1,w),vi+V(i1,wwi))V(i,w)=\max(V(i-1,w), v_i+V(i-1,w-w_i)) si wiww_i\leq w. (3) Vérifier le résultat (ordre de grandeur, cas particulier, ou dérivation/substitution).

Résultat

Récurrence standard O(nW)O(nW).

Exemple 2

Floyd-Warshall.

Méthode

(1) Lire l'énoncé et repérer les hypothèses / la forme utile. (2) dij(k)=min(dij(k1),dik(k1)+dkj(k1))d_{ij}^{(k)}=\min(d_{ij}^{(k-1)}, d_{ik}^{(k-1)}+d_{kj}^{(k-1)}). (3) Vérifier le résultat (ordre de grandeur, cas particulier, ou dérivation/substitution).

Résultat

Plus courts chemins tous couples O(n3)O(n^3).

À retenir