Programmation linéaire Optimisation combinatoire Hervé Rivano 30 juin 2010
Router dans un réseau Un graphe : V sommets, E arcs c capacité Ensemble (source,destination) Router le plus de trafic possible Respect des capacité
Flot maximum
Flot maximum Max d s.t. f(v, s)+d f(s, v) =0 v v f(v, t) d f(t, v) =0 v v f(v, u) f(u, v) =0, u v v f(u, v) c(u, v), (u, v)
Programmation linéaire
L optimisation convexe La programmation linéaire La programmation linéaire en nombre entiers Dualité Génération de colonnes
Optimisation convexe Max f(z) s.t. z C Optimiser, c est possible Newton,... Optimiser et décider, c est «pareil» Dichotomie
Séparation Soit C un convexe fermé et z C H hyperplan séparant z et C
Séparation Soit C un convexe fermé et z C H hyperplan séparant z et C
Séparation Soit C un convexe fermé et z C H hyperplan séparant z et C Séparer = Optimiser Algorithme de l ellipsoïde Généralisation de la dichotomie
Séparation Soit C un convexe fermé et z C H hyperplan séparant z et C Séparer = Optimiser Algorithme de l ellipsoïde Généralisation de la dichotomie
Séparation Soit C un convexe fermé et z C H hyperplan séparant z et C Séparer = Optimiser Algorithme de l ellipsoïde Généralisation de la dichotomie
Programmation linéaire Forme particulière de programmation convexe Polytope défini par l intersection d hyperplan Optimisation d une forme linéaire Points extrémaux Algorithme du simplex
Programmation linéaire Forme particulière de programmation convexe Polytope défini par l intersection d hyperplan Optimisation d une forme linéaire Points extrémaux Algorithme du simplex
Programmation linéaire Forme particulière de programmation convexe Polytope défini par l intersection d hyperplan Optimisation d une forme linéaire Points extrémaux Algorithme du simplex
Programmation linéaire Forme particulière de programmation convexe Polytope défini par l intersection d hyperplan Optimisation d une forme linéaire Points extrémaux Algorithme du simplex
Programmation linéaire Forme particulière de programmation convexe Polytope défini par l intersection d hyperplan Optimisation d une forme linéaire Points extrémaux Algorithme du simplex
Programmation linéaire Forme particulière de programmation convexe Polytope défini par l intersection d hyperplan Optimisation d une forme linéaire
Programmation linéaire Forme particulière de programmation convexe Polytope défini par l intersection d hyperplan Optimisation d une forme linéaire
Programmation linéaire Forme particulière de programmation convexe Polytope défini par l intersection d hyperplan Optimisation d une forme linéaire
Programmation linéaire Forme particulière de programmation convexe Polytope défini par l intersection d hyperplan Optimisation d une forme linéaire Points extrémaux Algorithme du simplex
Ecriture matricielle s.t. pe Max p P f(p) f(p) c(e), e p P u f(p) d(u), u f(p) 0, p
Ecriture matricielle s.t. pe Max p P f(p) f(p) c(e), e p P u f(p) d(u), u f(p) 0, p Max c.x s.t. A.x b
Ecriture matricielle s.t. pe Max p P f(p) f(p) c(e), e p P u f(p) d(u), u f(p) 0, p Max c.x s.t. A.x b x R n c R n b R m A R m n
Ecriture matricielle s.t. pe Max p P f(p) f(p) c(e), e p P u f(p) d(u), u f(p) 0, p Max c.x s.t. A.x b Min c 2.x s.t. A 2.x b 2 x R n c R n b R m A R m n
Prog. Lin. en nb entiers Si les variables sont toutes dans Z : ILP Si certaines sont dans Z, les autres dans R : MILP En général NPdifficile, non approximable
Prog. Lin. en nb entiers Si les variables sont toutes dans Z : ILP Si certaines sont dans Z, les autres dans R : MILP s.t. c Min C y(c) x c (u) 1, u x c (u)+x c (v) 1, c, u, v y(c) x c (u) 0, c, u En général NPdifficile, non approximable
Intuition de la difficulté OPTIMUM FRACTIONNAIRE OPTIMUM ENTIER
Dualité Posons le problème de décision?x s.t. c.x C & Ax b
Dualité Posons le problème de décision Cherchons à prouver que non?x s.t. c.x C & Ax b x, Ax b c.x C
Dualité Posons le problème de décision Cherchons à prouver que non C est vrai si?x s.t. c.x C & Ax b x, Ax b c.x C y s.t. x c.x y.a.x & y.b C
Dualité Posons le problème de décision Cherchons à prouver que non C est vrai si Autrement dit?x s.t. c.x C & Ax b x, Ax b c.x C y s.t. x c.x y.a.x & y.b C y s.t. t At c & b.y C
Dualité Posons le problème de décision Cherchons à prouver que non C est vrai si Autrement dit?x s.t. c.x C & Ax b x, Ax b c.x C y s.t. x c.x y.a.x & y.b C y s.t. t At c & b.y C Conséquence
Dualité Posons le problème de décision Cherchons à prouver que non C est vrai si Autrement dit?x s.t. c.x C & Ax b x, Ax b c.x C y s.t. x c.x y.a.x & y.b C y s.t. t At c & b.y C Conséquence Max{c.x s.t. Ax b} Min b.y s.t. t Ay c
Retour au flot maximum Max d s.t. f(v, s)+d f(s, v) =0 v v f(v, t) d f(t, v) =0 v v f(v, u) f(u, v) =0, u v v f(u, v) c(u, v), (u, v)
Trichons un peu Max d s.t. f(v, s)+d v v... f(s, v) 0 f(v, u) f(u, v) 0, u v v f(u, v) c(u, v), (u, v) Min λ(e)c(e) e s.t. p s 1 λ(u, v) p u + p v 0, (u, v) p t =0
Trichons un peu Max d s.t. f(v, s)+d v v... f(s, v) 0 f(v, u) f(u, v) 0, u v v f(u, v) c(u, v), (u, v) DUAL : COUPE MINIMUM Min λ(e)c(e) e s.t. p s 1 λ(u, v) p u + p v 0, (u, v) p t =0
A quoi ça sert? Le dual donne une borne supérieure Algorithmes primal/dual : garantie sur la solution
A quoi ça sert? Le dual donne une borne supérieure Algorithmes primal/dual : garantie sur la solution Pb de décision : primal plein = dual vide Solution sous-optimale = contrainte duale violée
A quoi ça sert? Le dual donne une borne supérieure Algorithmes primal/dual : garantie sur la solution Pb de décision : primal plein = dual vide Solution sous-optimale = contrainte duale violée Génération de colonnes...
Génération de colonne Min c.x Ax b Max b t.y A t y c t
Retour sur le flot Max d s.t. f(v, s)+d f(s, v) =0 v v f(v, t) d f(t, v) =0 v v f(v, u) f(u, v) =0, u v v f(u, v) c(u, v), (u, v)
Retour sur le flot Max d s.t. f(v, s)+d f(s, v) =0 v v f(v, t) d f(t, v) =0 v v f(v, u) f(u, v) =0, u v v f(u, v) c(u, v), (u, v) s.t. pe Max p P f(p) f(p) c(e), e
Retour sur le flot Max d s.t. f(v, s)+d f(s, v) =0 v v f(v, t) d f(t, v) =0 v v f(v, u) f(u, v) =0, u v v f(u, v) c(u, v), (u, v) s.t. pe Max p P f(p) f(p) c(e), e NOMBRE EXPONENTIEL DE VARIABLES
Des colonnes de flot s.t. pe Max p P f(p) f(p) c(e), e
Des colonnes de flot Max p P f(p) Min e λ(e)c(e) s.t. pe f(p) c(e), e s.t. e p λ(e) 1, p
Des colonnes de flot Max p P f(p) Min e λ(e)c(e) s.t. pe f(p) c(e), e s.t. e p λ(e) 1, p Génération de colonnes : Démarrer avec un ensemble de chemins triviaux Calculer le flot sous optimal, récupérer les lambda Trouver un plus court chemin S il est trop court, on l insère et on boucle Sinon, l optimalité est prouvée
Application aux Mesh
Radio Mesh Networks 20
Model and objectives Synchronous network, periodic steady state Slotted network Throughput : #packets sent during each period/t Transport capacity Known demand, maximum concurrent flow Optim Throughput ==minimizing the period 21
Model and objectives Synchronous network, periodic steady state Slotted network Throughput : #packets sent during each period/t u V, D(u) Transport capacity P P u Φ(P ) T Known demand, maximum concurrent flow Optim Throughput ==minimizing the period 21
The Rounds Round : set of simultaneouly activable links Binary, distance-wise model Sending at distance r, jamming at distance r(1+ ) Signal to noise model Sending with power Pu, reception if Puα(u,v)>S (N +Pu α(u,v)) 22
Minimization MILP Objective : minimize nb of APs 23
Minimization MILP Objective : minimize nb of APs Admissibles calls Link capacities Routing Demand transport 23
Minimization MILP Objective : minimize nb of APs Admissibles calls Link capacities Routing Demand transport Very hard to solve! 23
Routing and scheduling Obj : minimize round activation = max Tput C w (e) Min w(r) R R C w (e) = w(r) P P,e P P P v Φ(P )=t(v) R R,e R Φ(P ) e E v V r 24
Routing and scheduling Obj : minimize round activation = max Tput Min R R w(r) C w (e) C w (e) = w(r) P P,e P P P v Φ(P )=t(v) R R,e R Φ(P ) e E v V r Activating rounds gives capacity In order to transport the flow And route the demand 24
Routing and scheduling Obj : minimize round activation = max Tput Min R R w(r) C w (e) C w (e) = w(r) P P,e P P P v Φ(P )=t(v) R R,e R Φ(P ) e E v V r Activating rounds gives capacity In order to transport the flow And route the demand Sets of rounds and paths are exponential Column generation is necessary 24
Dualité, encore C w (e) Min w(r) R R C w (e) = w(r) P P,e P P P v Φ(P )=t(v) R R,e R Φ(P ) e E v V r s.t. e R e p Min e λ(e)c(e) λ(e) 1, R λ(e) 1, p Génération de colonnes : Démarrer avec un ensemble de chemins et de rounds triviaux Calculer le RWP sous optimal, récupérer les lambda Trouver un plus court chemin ou un round le plus lourd Toute la difficulté est réduite au calcul du round 25
Max-flow & Min-cut V S G V D 26
Max-flow & Min-cut If it exists a flow Φ, V S G V D 26
Max-flow & Min-cut If it exists a flow Φ, Φ sends t(v) from Vs to Vd in G V S G V D 26
Max-flow & Min-cut If it exists a flow Φ, Φ sends t(v) from Vs to Vd in G S is a cut separating Vs and Vd : Cw(S) t(v) V S G V D 26
Max-flow & Min-cut If it exists a flow Φ, Φ sends t(v) from Vs to Vd in G S is a cut separating Vs and Vd : Cw(S) t(v) Cw(S) = δ(r,s)w(r) V S G V D 26
Round/Cut Formulation Obj : min round activation Min R R w(r) R R δ(r, S)w(R) t(s) S S 27
Round/Cut Formulation Obj : min round activation Min R R w(r) R R δ(r, S)w(R) t(s) S S providing enough capacity for the traffic 27
Round/Cut Formulation Obj : min round activation Min R R w(r) R R δ(r, S)w(R) t(s) S S providing enough capacity for the traffic Covering of the cuts by the rounds Set of the rounds : as before Set of the cuts : line generation 27
Line and column gen. Compute an initial set S Solve the primal with S 28
Line and column gen. Compute an initial set S Solve the primal with S 28
Line and column gen. Compute an initial set S Solve the primal with S Look for a violated constraint in the primal Compute a minimum cut, update S 28
Line and column gen. Compute an initial set S Solve the primal with S Look for a violated constraint in the primal Compute a minimum cut, update S 28
Line and column gen. Compute an initial set S Solve the primal with S Look for a violated constraint in the primal Compute a minimum cut, update S Optimal solution 28
Interest of two models Flow : control on the kind of paths Cut : zone constraints related to the problem Similar complexity for the whole network local optimization might be enough 29