الرئيسية

مسابقة دكتوراه 2015Université des Sciences et de la Technologie Houari Boumediène (USTHB) — الموضوع 03

مسابقة تخصص · Recherche Opérationnelle

Formation Doctorale ROM, Concours d'accès — Épreuve de Réseaux et Optimisation, USTHB, Faculté de Mathématiques, Département de Recherche Opérationnelle — 18 Octobre 2015.

التمرين 1

Exercice 1 — Forêt de poids maximum et arbre de poids minimum

#graph-theory#maximum-forest#minimum-spanning-tree#polynomial-time

Soit R=(X,E,p)R=(X,E,p) un réseau connexe, avec p:EZp:E\to \mathbb{Z}.

Question 1. a) Décrire un algorithme de recherche d'une forêt de poids maximum, en précisant sa taille et sa complexité. b) Donner une formulation de ce problème sous forme d'un programme linéaire en 0-1. c) En déduire que ce problème est polynomial. d) Montrer que si tous les poids sont positifs, alors la forêt de poids maximum est un arbre. e) Comment modifier cet algorithme pour la recherche d'un arbre de poids maximum ?

Question 2. On suppose les distances positives. a) Donner une formulation du problème de recherche d'un arbre de poids minimum sous forme d'un programme linéaire en 0-1. b) Formuler une adaptation de l'algorithme décrit à la question 1 pour résoudre ce problème. c) En déduire que ce problème est polynomial. d) Sachant que le problème du voyageur de commerce est NP-Complet, montrer que le problème de recherche d'un arbre dont tous les sommets sont de degré au plus égal à 2 est NP-Complet.

الحل

1.

Algorithme glouton : trier les arêtes par poids décroissant, ajouter une arête si elle ne crée pas de cycle. Complexité O(mlogm)O(m\log m) avec structure union-find.

Formulation 0-1 : maximiser p(e)xe\sum p(e)x_e sous contraintes d'acyclicité eE(S)xeS1\sum_{e\in E(S)} x_e \leq |S|-1 pour tout SXS \subseteq X, xe{0,1}x_e \in \{0,1\}.

Si tous les poids sont positifs, une forêt maximum doit être connexe sinon on peut toujours ajouter une arête positive entre composantes.

2.

Même formulation avec minimisation et adaptation gloutonne : algorithme de Kruskal / Prim. Polynomial.

Le problème d'arbre de degré au plus 2 est équivalent à chercher un chemin hamiltonien ou un cycle hamiltonien selon les variantes, donc NP-Complet par réduction du TSP / Hamiltonien.

التمرين 2

Exercice 2 — Sac de regret minimal et programmation dynamique

#dynamic-programming#knapsack#regret-minimization

Soit nn objets, de poids respectifs pip_i et de regret rir_i, et soit PP un entier. On appelle regret d'un sac la somme des regrets des objets qui ne sont pas dans le sac. On cherche un sac de poids inférieur ou égal à PP qui soit de regret minimal.

  1. Modéliser ce problème à l'aide d'un programme mathématique.
  2. Définir un schéma de programmation dynamique.
  3. Notons Fk(E)F_k(E) le regret minimum d'un sac de poids inférieur ou égal à PEP-E parmi les objets {k,,n}\{k,\dots,n\}. Comment se définit la solution du problème initial par rapport à cette notation ?
  4. Que vaut Fn(E)F_n(E) ?
  5. Établir l'équation de récurrence satisfaite par les FkF_k.
  6. En déduire un algorithme pour résoudre le problème et donner sa complexité.
الحل

1.

Variables binaires xi{0,1}x_i \in \{0,1\} indiquant si l'objet est pris. Minimiser le regret des objets non pris :

mini=1nri(1xi)\min \sum_{i=1}^n r_i(1-x_i)

sous la contrainte de poids pixiP\sum p_i x_i \leq P.

2-5.

On pose Fk(E)F_k(E) = regret minimum à partir de l'objet kk avec capacité restante PEP-E.

Solution initiale : F1(0)F_1(0).

Cas terminal : Fn(E)=0F_n(E) = 0 si pnPEp_n \leq P-E et qu'on prend nn, sinon rnr_n.

Récurrence :

Fk(E)=min{rk+Fk+1(E),  Fk+1(E+pk)}F_k(E) = \min\{r_k + F_{k+1}(E), \; F_{k+1}(E+p_k)\}

si E+pkPE+p_k \leq P, sinon seulement le premier terme.

6.

Algorithme DP classique en O(nP)O(nP) temps et O(nP)O(nP) ou O(P)O(P) mémoire.