Optimisation Combinatoire 2A Applications des plus courts chemins Zoltán Szigeti Ensimag INP Grenoble Z. Szigeti (Ensimag) OC 2A / 3
Problème du sac à dos Etant donnés un sac à dos de volume K et 2 des objets O i de volume a i et d utilité u i (i =,2,...,l), 2 il faut choisir quelques uns des objets de telle sorte que la somme de leurs volumes soit inférieure ou égale à K et 2 que la somme de leurs utilités soit maximum. Solution par programmation dynamique S(i,L) on ne peut prendre que les premiers i objets et le volume du sac à dos est L. 2 Formule recursive : S(i,L) = max{s(i,l),s(i,l a i )+u i }. Z. Szigeti (Ensimag) OC 2A / 3
Solution (G := (V,A),c) où V := {v i,j : i l, j K} {v,,v l+,k } et 2 A := l i= A i l i= A i A l où A i := {v i,jv i+,j : j K} et 2 A i = {v i,jv i+,j+ai+ : j K a i+} pour i l et 3 A l := {v l,j v l+,k : j K}. { si e l 3 c(e) := i= A i u i+ e A i. 2 On cherche un plus long chemin de s := v, à t := v l+,k. v, Objets sac O O 2 O 3 Volumes 7 2 4 Valeurs? 3 7 3 7 7 7 7 v l+,k Z. Szigeti (Ensimag) OC 2A 2 / 3
Problème du sac à dos Etant donnés un sac à dos de volume K et 2 des objets O i : de volume a i et d utilité u i (i =,2,...,l), 2 il faut choisir quelques uns des objets de telle sorte que la somme de leurs volumes soit inférieure ou égale à K et 2 que la somme de leurs utilités soit maximum. Remark Taille du problème : log(k)+l(log(a)+log(u)). 2 Taille du graphe : V = l(k +)+2. 3 La taille du graphe est exponentielle en la taille du problème! 4 Cette solution n est pas acceptable théoriquement! Z. Szigeti (Ensimag) OC 2A 3 / 3
Approximation d une fonction linéaire par morceaux: Soit f (x) une fonction linéaire par morceaux définie par N points successifs (x i,y i ) où x < x 2 < < x N. En choisissant certains de ces points (de l indice = i < < i j < < i l = N) on a une autre fonction linéaire par morceaux f 2 (x) dont le stockage est moins coûteux mais dont l erreur de précision est plus coûteuse. Il s agit de trouver une telle approximation f 2 (x) de f (x) de coût minimum où le coût de f 2 (x) est l j=2 (α+β i j k=i j f (x k ) f 2 (x k ) ). Z. Szigeti (Ensimag) OC 2A 4 / 3
Solution (G := (V,A),c) où V := {v,...,v N } et 2 A := {v a v b : a < b N}, 3 c(v a v b ) := α+β b k=a+ f (x k ) f 2 (x k ). 2 On cherche un plus court chemin de v à v N. Z. Szigeti (Ensimag) OC 2A 5 / 3
Transport maritime: Une compagnie maritime offre des transports réguliers entre les différentes villes autour du Lac Balaton en Hongrie. On sait que le voyage de la ville i à la ville j dure t ij minutes et rapporte p ij Forints. Le rapport moyen d une tournée C est ij C p ij ij C t ij. Le problème du directeur de la compagnie est de décider s il existe une tournée (un circuit) dont le rapport moyen est supérieur à une valeur fixée R. Keszthely Badacsony BALATON Fonyód Almádi Füred Szántód Siófok Kenese Z. Szigeti (Ensimag) OC 2A 6 / 3
Solution (G := (V,A),c) où V := {les villes autour de Balaton} et 2 A := {ij,ji : i,j V}, 3 c(ij) := Rt ij p ij. 2 On cherche un circuit C tel que ij C pij > R ij C tij 2 > ij C (Rt ij p ij ) = ij C c(ij) = c(c) 3 il est absorbant. Z. Szigeti (Ensimag) OC 2A 7 / 3
Système d inéquations formé de différences: Étant donné un système d inéquations dont toutes les inégalités sont de la forme x jk x ik b k, décider s il existe une solution. Si oui, trouver une telle solution et 2 si non, trouver les contraintes contradictoires. Exemple x 3 x 4 5 x 4 x x x 3 8 x 2 x x 3 x 2 2 Circuit absorbant 4 8 2 5 3 2 Contradiction x x 3 8 x 2 x x 3 x 2 2 Z. Szigeti (Ensimag) OC 2A 8 / 3
Introduction aux flots Problème Combien de camions peut-on envoyer d un point de départ à un point de destination satisfaisant les contraintes de capacité des rues? Modélisation Étant donnés un graphe orienté G= (V,A), 2 départ s V et destination t V, 3 une capacité g sur chaque arc, 2 trouver un ensemble P de chemins tels que chaque arc e appartienne à au plus g(e) chemins de P. 3 On verra qu il suffit de savoir le nombre x(e) de chemins contenant e pour chaque arc e. 4 Cette fonction x : A R s appelle flot. Z. Szigeti (Ensimag) OC 2A 9 / 3
Définition des flots Définition Étant donnés un graphe orienté G = (V,A), 2 s,t V tels que δ (s) = = δ + (t), 3 une capacité non-négative g sur les arcs, 2 une fonction x sur les arcs est un flot de s à t si la conservation du flot est vérifiée : = uv Ax(v) x(v) v V \{s,t}. vu A 2 réalisable si la contrainte de capacité est vérifiée : x(e) g(e) e A. Z. Szigeti (Ensimag) OC 2A / 3
Notation Exemple (,) (2,3) s (,) t (x(e),g(e)) (2,3) (,) Notation Étant donnés un flot x et une capacité g sur les arcs, s Z V \{t}, d x + (Z) = e δ + (Z) x(e), 2 Conservation du flot : dx (v) = d x + (v), 3 Valeur du flot : val(x) = d x + (s), 4 Capacité d une coupe δ + (Z) : cap(z) = d g + (Z). Z. Szigeti (Ensimag) OC 2A / 3
Valeur du flot Lemme Pour tout flot x de s à t et tout ensemble Z de sommets séparant s de t : val(x) = d + x (Z) d x (Z). Démonstration val(x) = d + x (s) = v Z s = v Z s +(d + x (s) ) (d + x (v) d x (v))+(d + x (s) d x (s)) = v Z(d + x (v) d x (v)) = d + x (Z) d x (Z). Z. Szigeti (Ensimag) OC 2A 2 / 3
Flot max Coupe min Lemme Pour tout flot réalisable x de s à t et toute coupe δ + (Z) séparant s de t : val(x) cap(z). Démonstration val(x) = d x + (Z) dx (Z) d g + (Z) d (Z) = d g + (Z) = cap(z). Z. Szigeti (Ensimag) OC 2A 3 / 3