• Aucun résultat trouvé

IFT6575 – Méthodes de recherche opérationnelle

N/A
N/A
Protected

Academic year: 2022

Partager "IFT6575 – Méthodes de recherche opérationnelle"

Copied!
40
0
0

Texte intégral

(1)

IFT6575 – Méthodes de recherche opérationnelle

Cours 1, absent.

Cours 2, mercredi 5 septembre 2007

PL: 1

max

n j j

X j

c x

Polyèdre des contraintes: 1

n

ij j i

j

X a x b

 

  

où i=1,…,m

Polytope: Défini à partir de points, le plus petit polyèdre borné qui contient tous les points:

Première méthode intuitive: Dans un PL, le (la direction d'augmentation) est ici simplement la droite orthogonale (c1, c2) =

c

.

On suit donc c jusqu'à une contrainte, puis on prend la direction ayant l'angle aigü.

etc.

Second eméthode (simplexe-Dantzig):

On se déplace d'un extrémum à un autre. On part du côté formant un angle aigü (la première fois le plus aigü des deux), tant que possible.

ex.: max 3x1 + 5x2

s.à: x1 ≤ 4

2x2 ≤ 12 3x1 + 2x2 ≤ 18

-x1 ≤ 0

-x2 ≤ 0

On ajoute des variables d'écart et on conserve les inégalités assurant la non-négativités max 3x1 + 5x2

s.à: x1 + x3 ≤ 4

2x2 + x4 ≤ 12 3x1 + 2x2 + x5≤ 18

x1 ≥ 0

x2 ≥ 0

En gardant donc 3 égalités et 5 variables. On applique Gauss-Jordan et on obtient 3 variables dépendantes (base [B]) et puis 2 variables libres (hors base [NB]).

x3 = 4-x1

x1 =12-2x2  x2 ≤ 6 x5 = 18-3x1 – 2x2  x2 ≤ 9

Si on pivote sur x2, on vérifie la valeur maximale don’t on peut l'augmenter. À la fin il devient en base (nulle), ici x4 quitte la base.

x2 = 6 – ½ x4 B = {x2,x3,x5}

x3 = 4 – x1 NB = {x1, x4}

x5 = 18 – 3x1 -2 (6- ½ x4) = 6-3x1+x4

On est rendu avec un objectif de: max=3x1+5(6-1/2x4)=30+3x1-5/2x4

(2)

Tentons d'augmenter x1: (2) et (3) nous donnent que x1≤2

On poursuit jusqu'au moment où tous les coefficients restants sont négatifs. (Plus d'améliorations possibles) n.b.: S'assurer, au départ, que la première valeur est admissible.

Question: Cet algorithme converge-t-il? Oui puisque nous avons un nombre fini de choix de bases, soit

m n m

  

 

 

.

Ceci dit seulement si on évite les dégénéressences qui pourraient entraîner un cycle.

 Pour éviter ceci, on attribuera un  plutôt que des 0 quand on a un cas.

Notes: Cet algorithme est exponentiel, mais se comporte, en pratique, en temps polynomial (cubique).

Il existe une méthode de points intérieurs (Katchiang) en temps polynomial.

Il peut y avoir des des domaines réalisables non bornés entraînant des valeurs infinies. (Souvent le résultat d'une erreur d'analyse)

Trouver un point de départ n'est pas toujours trivial:

max cx

s.a: Ax ≤ b  Ax+y=b

quand on a toutes nos variables comme non négatives, ça va.

mais quand on a des variables négatives, on doti obtenir la forme Ax=b Prenons par exemple la Ai (ie ligne de la matrice): Aix ≥ bi  -Aix ≤ -bi

Aix = bi  double inégalités!

Aix ≤ bi  Aix + yi = bi et yi

Si on a une variable libre (négatif ou positif), on prend alors x = x' – x'' où x' et x'' ≥ 0 !  ok

 Ces trucs augmentent peu la complexité (manuellement oui, mais pas en terme d'ordre) On va donc se donner un vecteur de variables artificielles, qu'on va tenter de sortir du problèmes en utilisant l'algorithme du simplexe, mais avec une fonction objective cherchant à les annuler (en en minimisant la somme.) On obtient alors une solution admissible (si elle existe).

Cours 3, mardi 11 septembre 2006 max 3x1 + 5x2

s.à: x1 + x3 ≤ 4

2x2 + x4 ≤ 12 3x1 + 2x2 + x5≤ 18

x1 ≥ 0

x2 ≥ 0

Dictionnaire: max 3 (4 – x3) + 5x2

x3 = 4 – x1

x4 = 12 – 2x2

x5 = 18 – 3x1 – 2x2

ou Tableau:

x1 x2 x3 x4 x5 b

1 1 4

2 1 12

3 2 1 18

3 5 0

x1 x2 x3 x4 x5 b

1 1 4

2 1 12

2 -3 1 18

5 -3 -12

(3)

Rappel, Lemme de Farkash: Sont équivalents:

(1) Mon vecteur objectif est coincé entre les deux vecteurs orthogonaux à mes contraintes formant mon point extrême maximal.

(2) Il n'y a plus de direction d'amélioration

 On obtient facilement des vecteurs orthogonaux en prenant les coefficient des contraintes.

Reste à déterminer que mon vecteur se trouve entre les deux vecteurs orthogonaux.

Pour ce faire, je n'ai qu'à déterminer qu'il en est une combinaison linéaire positive.

ex.: Ici, (3,5) entre (0,2) et (3,2) ? (3,5) = y2(0,2) + y3(3,2)

Ici, y3 = 1 et y2=3/2

On pourrait également exprimer z en fonction de toutes les contraintes (pas seulement les saturées):

(3,5) = y2(0,2) + y3(3,2) + y1(1,0) + y4(-1,0) + y5(0,-1) où y1, y4 et y5 = 0

1 2 3 4 5

0 2

3 2

(3,5) ( , , , , ) 1 0 1 0

0 1

y y y y y

 

 

 

 

     

  

 

c=yA où y≥0

Aix < bi  yi = 0

 Ax=comb.lin colonnes

y(Ax-b) = 0 yA=comb.lin.lignes

Optimalité: (1) Ax ≤ b (réalisable)

(2) yA = c  Conditions d'optimalité.

(3) y ≥ 0 y(Ax-b) = 0

Notons que y(Ax-b)  yAx – yb = cx-yb  cx=yb (4) cx=yb

comme y(Ax-b)=0  yb ≥ cx

0 max

x X

yA c yb cx

y

    

 

Autrement dit, yb représente une borne supérieure.

Une bonne borne supérieure sera la plus petite.

min yb

y yA = c y ≥ 0 Remarque: yb ≥ cx …

Si yb = cx  x = x*

Note: le dual du dual est le primal, comme suit:

(4)

dual du dual

max –yb min cu'-cu''+0v

yA ≤ c : u' Av' – Av'' – Iv = -b

-yA ≤ -c : u'' u', u'', v ≥ 0

-Iy ≤ 0 : v

min -c(u''-u') A(u''-u')+v=b u', u'', v ≥ 0

max cx

Ax+v = b x,v ≥ 0 Prenons un problème générique:

min cx

s.à: Ax = b x ≥ 0

Décomposons A comme suit: A = [B|N] où B est carrée et inversible.

Décomposons c comme suit: c = [cB|cN]

Décomposons x comme suit: x = [xB|xN] (en colonne)

min cBxB + cNxN

BxB + NxN = b  xB = B-1b – B-1NxN ≥ 0 xB, xN ≥ 0

min cBB-1b + (cN-cBB-1N)xN ( xN ≥ 0 )

xN = 0

xB = B-1b admissible si B-1b ≥ 0 z=cBB-1b

Soit j  B : c¯j < 0 xj ++

jN

xj = arg inf {t: (B-1b)i – t(B-1Aj)i ≥ 0 iB}

Cours 4, mercredi 12 septembre 2007

Solution de base:

1

0 x B b

  

 

B

0

N

x x

Soit jN tel que c¯j < 0

xB = B-1b – (B-1Aj)xj  colonne j de la matrice A

donc

1 1

1

( )

min : ( ) 0

( )

j

j j

B b i

x B A i

B A i

 

   

 

B+ = B  {j} – {î}

et terminaison si c¯j ≥ 0 j se souvenant que cN¯ = cN – cBB-1N c¯ = c – cBB-1A cB¯ = cB – cBB-1B = 0

(5)

Optimalité?: Ax=b avec x≥0 yA ≤ c

yb=cx (c-yA)x=0

note, à l'optimum, y = CBB-1

c¯ ≥ 0  c – yA ≥ 0  y admissible

( ) [

B

|

N

]

B B 1

[ | ]

B B B B B

0

N N

x x

c yA x c c c B B N c x c x

x x

 

 

         

   

note, en cas de choix entre deux variables qui peuvent quitter la base (même ratio), utiliser celle d'indice le plus faible.

p.s.: NR = Non réalisable / NB = Non borné

Ensemble convexe: X convexe si x,y  X et [0,1]  x + (1-)y  X ou x1,…,xk  X

1,…,ki ≥ 0, k = 1

 ixi  X (ici un triangle, mais décomposable en segments)

Fonction convexe:

- la dérivée première est monotone croissante (si différenciable une fois) - la dérivée seconde est positive ou nulle (si différenciable deux fois)

donc: f(x1 + (1-)x2) ≤ f(x1) + (1-)f(x2) propriété: tout minimum local est aussi global.

Cours 5, mardi 18 septembre 2007

Nous essayons toujours d'optimiser: max cx

s.à: Ax=b A=[B N]

x ≥ 0

max cBB-1b+(cN-cBB-1N)xN c¯=c-cBB-1A xN≥0 xB = B-1b-B-1NxN

mais au lieu de calculer y=cBB-1 on résoudra yB = cB

DUAL (min) fini -

(NB)

 (NR) Prima

l

fini x  

 (NB)   x

- (NR)  x x

(6)

Réseaux:

Ce dont on traite: min cx

xX coût: ca ou cij

conservation de flots

:

ji ij i

j j

i x x b

    

ou

:

a a i

a i a i

i x x b

    

ex.: [ Flot à coût minimum ]

(1,2) (1,3)(1,5) (2,4)(2,5) (3,4)(5,3) (5,4)

1 1 1 1

2 1 1 1

3 0 1 1 1

4 0 1 1 1

5 0 1 1 1 1

A

  

 

   

 

 

 

 

 

   

 

5 3 2 6 0 b

  

  

   

  

   

  c 1 10 3 7 9 3 4 2

dans un sous-exemple sur un cycle fondamental:

on avait: c¯=c-yA yB = cB

on a:

(1,2) (1,3) (1,4) (2,4)

1 1 1 1

2 1 1

3 1 1

4 1

B

  

 

  

 

  

 

 

y   y

1

y

2

y

3

y

4

y

5

y2 – y1 = c12 = 1 posons y1 = 0, on obtient: y2 = 1

y3 – y1 = 10 y3 = 10

y5 – y1 = 3 y4 = 8

y4 – y2 = 7 y5 = 3 …les coûts des arcs depuis l'origine

(7)

c¯ = c – yA  c¯ij = cij + yi – yj

donc: c¯53 = 4 + 3 – 10 = -3  coût relatif négatif  en tirer parti au maximum en résumé: choisir une solution de base

choisir une racine, poser son y à 0, puis calculer tous les autres y

choisir un arc hors base et calculer son c¯jk = cjk + yj – yk  prendre un négatif calculer les nouveaux flots

recommencer tant qu'il y a des coûts relatifs négatifs…

Cas particulier: le problème de transport à coût minimum:

notes:

 A permet de conserver des valeurs entière en tout temps (si au départ) parce que totalement unimodulaire, i.e. carrée et ne pouvant avoir que des déterminents =0, 1 ou -1

 pour trouver une solution de base (en cas de problème), se créer des arcs artificiels avec un grand coût (M) et s'en servir comme voulu, complétant ma base au beosin avec les arcs originaux.

 On peut s'inventer une super-source et une super-destination… et ensuite se créer un seul arc artificiel.

 Généralement, les variables sont également bornées supérieurement. On peut qunad même appliquer le simplexe réseau, mais simplement en tenant compte des limites implicitement.

Cours 6, mercredi 19 septembre 2007

Si on a des capacités sur les arcs:

Solution de base: iB

iB  xi=0 ou xi=ui

On a ici le cas où il y a un switch une variable d'une borne à l'autre.

Méthode primal affine:

max cx

s.a.: Ax=b x ≥ 0 Soit x¯:x¯j > 0 j

(8)

u¯ = X¯-1x¯ (on fait une mise à l'échelle) 

1 1 1 1

   

   

   

On est rendu avec: max cX¯u u AX¯u=b

……….

projection sur un hyperplan: p = (I-(AAt)A)y x+ = x+X(I-XAt(AX2At)-1AX)Xc où =0,99max par exemple

Théorie des jeux:

Fonction de gain: gain du joueur 1: f1(x1,x2) joueur 2: f2(x1,x2) Nash: Équilibre(x1*, x2*)

f1(x1*, x2*) ≥ f1(x1,x2*) x1

f2(x1*, x2*) ≥ f2(x1*,x2) x2  Équilibre de Nash Prenons un jeu matriciel à somme nulle (ce qui est gagné par un est perdu par l'autre):

l'équilibre de Nash sera trouvé s'il existe un point où aucun des deux joueurs n'aura intérêt à modifier son choix.

équilibre / point de selle (min ds un sens, max ds l'autre)  valeur du jeu

pas d'équilibre (cyclera)

Stratégie mixte: 1

m

1

i i

x

 

x≥0 joueur 1

1 n

1

i i

y

 

x≥0 joueur 2

La probabilité associé à un choix (croisement): xiyj

L'espérance de gain: ,

t i j ij i j

x y ax Ay

(9)

max

1 0

t x

i

x Ay x x

(joueur 1) versus (joueur 2) min

1 0

t y

j

x Ay y y

On a donc:

1 0 1 ...

...

1

i

t

x x

w Ay

x Ay w

   

  

   

 

versus

1 0 1 ...

...

1

j

t

t

y y

v A x

x Ay v

   

  

   

 

On cherche donc un x et un y qui satisfait simultanément les deux systèmes.

Échangeons les termes …

On a donc:

max 1 0

1 ... 0 ...

1

i

t

v x x

A x v

   

   

   

 

versus

min 1 0

1 ... 0 ...

1

i

w y y

Ay w

   

   

   

 

qui sont dual l'un de l'autre

max min ( ) 1, 0

t i i x

i

A x xx

(on se prémunie contre la pire action de l'adversaire)

Cours 7, mardi 25 septembre 2007

Petit retour sur l'écriture du problème Dual:

Primal Dual

max cx min yb

Ax≤b yA=c

y≥0

ex.: Primal Dual

min 2x1 – 3x2 + x3 -6x4 max y1 + 5y2

x1 + x2 + x3 + x4 = 1 y1 + y2 = 2 x1 – 3x2 + 2x4 ≥ 5 y1 – 3y2 ≤ -3

x2, x3 ≥ 0 y1 ≤ 1

x1, x4 libres y1 + 2y2 = -6 y1 libre règles simples: min  max y2 ≥ 0

=  libre

(10)

≤  ≥ 0

(11)

Suite sur les jeux matriciels:

point de selle, équilibre de Nash:

Stratégie mixte: x:xi=1 x≥0 y:yi=1 y≥0

1. Joueur ligne: 2. Joueur colonne:

maxx xtAy = ijxiyjaij yi=1

xi = 1 (w) y≥0

x≥0 v()≤Aty

xtAy=v xtAy=w

Le problème: max v

xi=1 x≥0

v(1…1)≤Atx mais on se retrouve à chercher le plus grand v qui est plus petit que tous les nombres dans Ai, donc le minimum…

donc: maxxmini{At,x}

xi=1 x≥0

donc les joueurs utilisent des stratégie minimax ou maximin… ils jouent comme des «peureux»

maxx min {2x1-7x3, -4x1+x2, …}

Programmation non-linéaire:

max f(x1, …, xn) g1(x1, …, xn) ≤ b1

gm(x1,…, xn) ≤ bm

Une condition d'optimalité sera que la dérivé =0

Ici, je cherche à déterminer que je n'ai pas de direction d'amélioration possible. Utilisons l'approximation de Taylor:

f(x) ~ f(x*)+f(x*)(x-x*)

Linéarisons: KKT

 

1

( *) ( *)

0

( *) 0 1,...,

m

i i

i

i i i

f x y g x

y

y g x b i m

  

  

Donc:

max ( *) ( *)( *) ( *) ( *)( *)

x

i i i

f x f x x x g x g x x x b

  

   

Prenons en le dual:

 

( *) ( *) 0

( *) ( *)( *) ( *) ( *) *

i i

i

y g x f x y

f x f x x x y b g x g x x

  

      

petit bug: on aurait dû éviter f(x*), qui est une constante…

(12)

Cas particulier (où seule la fonction objective est non-linéaire):

max f(x) Ax≤b

Prenons l'approximation linéaire:

max ( *) f x f x ( *)( x x *) Ax b

  

 x* devient:

max f x x ( *) Ax b

( *) 0

( *) 0

A f x y

y b Ax

 

 

( *)( *) 0 :

f x x x x Ax b

  

 

attention, parfois l'intuition créer des problèmes:

dans ces deux cas, l'approximation linéaire ne permet pas d'obtenir un bon résultat (les tangentes ne réflètent pas bien la réalité du problème)

qualifions donc les contraintes (constraint qualification) [régularité]:

1. gi linéaires

2. gi connexes et intérieur non-vide

3. les gradients des gi actifs sont linéairement indépendants.  (pas le cas ds nos deux exemples) Conditions suffisantes d'optimalité globales: (max local  max global)

o Sans contraintes: concavité de la fonction (et gradient nul).

o Avec contraintes: convexité de l'ensemble et concavité de l'objectif.

donc, dans un cas de min, on veut tout convexe.

Cours 8, mercredi 26 septembre 2007 maxxX f(x)

X={gi(x)≤0, i=1,…,m}

KKT: f(x*)=i=1 à m yi gi(x*)

gi(x*)≤0 i x* optimise quand  direction admissible:

yigi(x*)=0 i

y≥0 f'(x*,d)>0

Algorithmes:

max f(x) Ax≤b

On va utiliser un algorithme de montée (ou descente) qui revient à minimiser en une dimension mint≥0 f(x0+td) On minimise sur l'approximation de Taylor (à une dimension), ce qui nous donne une direction de montée.

Dans cette direction, on maximisera ensuite notre fonction originale.

(13)

Il s'agit ici de l'algorithme de Frank-Wolfe.

(14)

ex.: min ½(x12+x22) dans:

lorsque j'utilise la linéarisation,

je pourrai par exemple utiliser le simplaxe, qui me donnera soit B soit C, prenons B

par la suite je m'en approcherai jusqu'à ce que je sois au plus proche de l'origine, etc.

on zigzaguera entre aller vers B et C sans cesse, de moins en moins

efficacement pour nous rapprocher de l'origine

X={Ax=0}

projX(u) minX½||x-u||2

Ax=0 y ½||x-u||2 = (xj-uj)2 KKT: =x-u=Aty  x=u+Aty

Ax=0  A(u+Aty)=0

 Au+AAty=0

 y=-(AAt)-1Au

 x= [I-At(AAt)-1A]u  matrice de projection (nb: au carré reste même)

autre ex: min ½||x-u||2

j=1ànxj=1 xj≥0 j

simplexe unité…

Si on analyse les conditions KKT,

on remarque (par élimination) que: xj=max{0, uj-y}

Ensuite, comme xj=1, alors: max{0, uj-y}=1

Petits rappels de définitions pour la suite…

Ensembles…

Ensembles ouverts…

Ensembles fermés…

Ensembles bornés: A: ||x||≤A xX Ensembles compacts: dans n: fermé et borné

Point d'accumulation: il existe une suite ds l'ensemble qui s'approche de ce point.

Valeur propre: : si x tel que Ax=x (x est un vecteur propre) Matrice définie positive: xtAx>0 x0

Semi-définie positive: xtAx≥0 x0

Fonction unimodale: (min local  global)

(15)

Cours 9, mardi 2 octobre 2007

ex.: min x14+x24+12x12+x22-x1x2-x1-x2

x1+x2≥6 2x1-x2≥3 x1, x2 ≥0

=(4x13+24x1-x2-1 , 4x23+12x2-x1-1)

≤y1(1,1) + y2(2,-1) y1(x1+x2-6)=0

y2(2x1-x2-3)=0

x1(4x13+24x1-x2-1-y1-2y2)=0 x2(4x23+12x2-x1-1-y1+y2)=0

Vérifions par exemple si (3,3) répond aux conditions de KKT…

1- est-ce réalisable? oui

2- pour les 2 premières équations, c'est trivial puisqu'on est sur les contraintes.

3- pour les deux dernières, on met les valeurs de x, on se retrouve avec 2 équations et 2 inconnus…  y1=152, y2=12

4- On fini ensuite par vérifier l'inégalité… 176 ≤ y1+2y2 = 176, ok et 140 ≤ y1-y2=140, ok mémo: la somme des valeurs propres d'une matrice = la trace de la matrice (la somme des éléments diagonaux)

si les valeurs propres d'une matrice sont positives, alors la matrice est convexe.

ex.: max (x1-2)2+(x2-3)2

3x1 + 2x2 ≥ 6  -3x1-2x2≤-6 -x1 + x2 ≤ 3

x1 ≤ 2

=(2(x1-2), 2(x2-3)) = y1(-3, -2)+y2(-1,1)+y3(1,0)  = parce que pas de contrainte ≥0 ds primal y1, y2, y3 ≥ 0

y1(3x1+2x2-6)=0 y2(-x1+x2-3)=0 y3(x1-2)=0

cherchons un point où le gradient s'annule, essayons (2,3)… c un minimum, donc le bas et le haux du triangle devraient fonctionner puisqu'on maximise un carré…

(2,0), quand on le met dans les équations, ça marche, tout comme (2,6), ce qui nous donne notre 3e point de KKT. Reste à analyser (0,3), qui est aussi KKT, mais ici au lieu d'être global, ce maximum est local, pour un total de 4 points de KKT.

Fonction convexe: f(ixi)≤if(xi) f((x1+x2)/2) ≤ ½f(x1) + ½f(x2)

i=1

i≥0

Si f est convexe et différentiable, on a l'inégalité du gradient:

f(y) ≥ f(x) + f(x)(y-x)

Si 2f(x) est définie positive (toutes ses valeurs propres sont positives) xn  f est convexe.

Si f définie sur X convexe, alors f convexe  (f(x) - (y))(x-y) ≥ 0 x,y  X

ex. dans : x>y  f'(x) > f'(y)  la fonction f est croissante monotone

(16)

Théorème de Taylor: f(y)=f(x)+ f(x)(y-x)+½(y-x)t2f(x)(y-x)+o(||x-y||2)  approximation de Taylor de 2e degré.

où o est un reste négligeablement petit Algorithme:

x  A(x)  n X*={solution}

X: ensemble réalisable

Algorithmes de descente (pour une minimisation) pour la fonction Z.

(i) xX et yA(x)  yX (ii) xX* et yA(x)  Z(y) <Z(x) (iii) xX* et yA(x)  Z(y) ≤ Z(x)

Algorithme fermé:

xkX \ xkx \ ykA(xk) |  yA(x) yky /

Théorème de convergence globale:

A(x): algo de descente \

X compact |-> limk xn  X*

A(x) fermé xX* /

Ordre de convergence:

1 0

lim sup limsup *

*

k

p k p

k

r r r r

 



  

 

     

  

 

deux cas fondamentaux: 2: convergence quadratique 1: convergence linéaire

>1 , <2: superlinéaire

<1: sous-linéaire

 est le taux de convergence … Cours 10, mercredi 3 octobre 2007

1. minxX f(x)  direction de descente

2. min f(x+td)=(t)  minimiser f dans cette direction.

0≤t≤tmax

Hypothèse:  est unimodale et continue.

(17)

Section dorée:

a/1 = (1-a)/a  22=1-a  a=(5-1)/2~0,61

converge linéairement (l'erreur diminue *0,61) Newton:

min f'(x)=0 (pas sûr que c'est un min!) g''(x) ~ g(xk)+g'(xk)(x-xk)

x+=x-(g(x)/g'(x))

convergence quadratique sur une hypothèse de localité (danger de divergence sinon)

Plusieurs variables:

min f(x) xn

d=-f(x)  mint≥0f(x+td)  plus forte pente…

Lemme de Komtorovitch:

Si f est quadratique, ex: f(x)=½xtAx et A est définie positive.

f(xt) ≤ ((max-min)/(max+min))2f(x) min= plus petite valeur propre de A.

Newton à plusieurs variables:

min f(x) F(x)~F(xk)+F'(xk)(x-xk) 2f(x)

f(x)=0 =0

F(x)

F'(xk)(x-xk)=-F(xk) x=xk(F'(xk))-1F(xk)

Cours 11, mardi 9 octobre 2007

Newton: [On cherche uniquement à annuler le gradient, pas à résoudre notre objectif … par approximation linéaire]

(gradient projeté II)

F(x)=0 F(x)~F(xk)+F'(xk)(x-xk)

f(x)=0 xk+1=xk-[F'(xk)]-1F(xk) H(xk) f(xk) direction: d=-[F'(xk)]-1F(xk)

f(xk)d=-f(xk)[F'(xk)]-1f(xk) ≤0 si H est définie positive, si f est convexe.

H(xk)

Ordre de convergence: Hypothèse: F est monotone // monotone, i.e.: <F(x)-F(y),x-y>≥0 x,y (convexe) xk+1-x* = xk-x*-H-1(f(xk)-f(x*)) = H-1(f(x*)-f(xk)-H(x*-xk)) = …

(18)
(19)

KKT: AEty= d+f(x)

AEd = 0  hypothèse: plein rang min ½||d+f(x)||2 AIx>b

AEd=0 AEx=b 2 cas: 1) d0 d est direction descente

A=[ AE ] dtAEty=||d||2 + f(x)d

[ AI ] f(x)d=-||d||2 < 0

2) d=0

a) y≥0 KKT (yI=0) b) j : yj<0

on laisse tomber la contrainte j:

f(x)=A¯ty¯-d¯

A¯d¯=0 nb: A¯=AE-{Aj} d¯0

f(x)d¯=-||d¯||2<0

0>f(x)d¯=ytAEd¯ yj<0 =yjAj

 Ajd¯>0

donc on s'éloigne de la contrainte Donc, si on projette sur les contraintes actives et qu'on a une direction nulle, alors on laisse tomber la contrainte dont le coefficient est négatif… par contre si on en a plusieurs, on ne peut plus en être assuré.

Cet algorithme n'est pas fermé. On change souvent brutalement de direction. La convergence n'est pas toujours facile à démontrer. Aussi, en pratique, déterminer les contraintes actives, numériquement, n'Est pas toujours facile (imprécisions).

C'est donc une méthode des contraintes actives.

(gradient projeté I)

d=p(x)-x minxX f(x)

<f(x), x-y)> ≤ 0 y

min ½||p-(x-f(x))||2

<p-(x-f(x)), p-y> ≤ 0 yX note: p=x

 <f(x), p-y> ≤0 yX

 KKT ||p-x||2 + <f(x), p-x> ≤0  <f(x), p-x> ≤0

(20)

||p-x*||2 ≤ ||(x-f(x))-(x*-f(x*))||2

= ||x-x*||2 + 2||f(x)-f(x*))||2 - 2<f(x)-f(x*), x-x*>

≤ ||x-x*||2 + 2L||x-x*||2 -2||x-x*||2

n.b.: ||f(x)-f(y)|| ≤ L||x-y|| (Condition de Lipschitz, pente non  infinie…)

= (1+2L-2)||x-x*||2 convergence linéaire

<1 si <2/L2

En pratique: recherche linéaire.

Gradient réduit:

min f(x)

Ax=b A=[B N]

x≥0 x=[xB xN]

BxN + NxN = b  xB=B-1b – B-1NxN

 min g(xN) = f(B-1b-B-1NxN,xN) xB ≥ 0

c - cBB-1A gradient réduit: r(x) = f(x) - Bf(x)B-1A

rN(x) = g(xN) rB(x)=0 r(x)=0  KKT

jN: dj(x)=-rj(x) si rj(x)<0 ou xj > 0 jB: dB=-B-1NdN

dj=-rj(x)

Cours 12, mercredi 10 octobre 2007 Méthode de pénalité:

min f(x)  min f(x)+c(g(x))

g(x) ≤ 0 c>0

c

min f(x) xX

minX f(x)+cP(x) où P(x)=0 si xX P(x)>0 si xX Prenons: min f(x)

X={gi(x)≤0, iI}

P(x)=½iI[max{0, gi(x)}]2 ou P(x)=max{0,gi(x)} ? (chacune a ses avantages)

(21)

Lemme: c2>c1 x1=x(c1) x2=x(c2) 1) f(x2)+c2P(x2) ≥ f(x1)+c1P(x1)

2) f(x2)>f(x1) 3) P(x2)≤P(x1)

1) Évident

2) f(x1) ≤ f(x2) + c1(P(x2)-P(x1)) ≤ f(x2) 3) f(x1)+c1P(x1) ≤ f(x2)+c1P(x2)

f(x2)+c2P(x2) ≤ f(x1)+c2P(x1) en additionnant les deux  c1P(x1)+c2P(x2) ≤ c1P(x2)+c2P(x1)  P(x2) ≤ P(x1)

Méthode de barrière:

B(x) ≥ - si xX B(x)   si xX

minX f(x)+(1/c)B(x)

B(x)=-1/gi(x) c

ou

B(x)=-ilog(-gi(x))

Retour à la méthode par pénalités:

min f(x)+cP(x)

f(x)+½c(max{0,gi(x)})2

à l'optimum:f(x)+cg+(x)g(x)=0

KKT: f(x)+yigi(x)=0 gi(x)≤0

yigi(x)=0 limc cgi(x(c)) = yi*

ex.:

Points intérieurs:

min f(x) KKT: f(x)-yig(x) ≥ 0 gi(x)=0

gi(x)=0 iI <x, f(x)-yig(x)> = 0 f(x)-yigi(x)=s

x≥0 gi(x) = 0 sjxj = 0

x ≥ 0 min f(x) - µjlog(xj)

Posons sj=µ/xj

gi(x)=0

f(x)-yigi(x)=s sjxj

(22)

Programmation linéaire:

min cx Ax=b

Ax=b Aty+s=c

x≥0 Xs=µe

direction de Newton: F(x)=0

F(xk)+F'(xk)(x-xk)=0 dk=x-xk=-(F'(xk))-1F(xk) F'(xk)dk=F(xk)

F(x,y,s)  dy = -(AS-1XAt)-1AS-1(µe-XSe) ds = -Atdy

dx = S-1(µe-XSe) – S-1Xds

µk+1 = µk

 = 0,99

Cours 13, mardi 16 octobre 2007 Programmation en nombres entiers:

Branch & Bound Coupes

Programmation dynamique min cx

Ax=b x≥0 x

Formulations

l'enveloppe convexe règlerait notre problème…

mais elle est difficile à trouver… on va donc s'en bâtir une bonne, même si non parfaite.

Problème du sac à dos: max  cjxj cj  valeur

 wjxj ≤ b wj  poids xj

Si on n'avait pas de problème d'intégrité, ce serait facile… et ça nous odnne une borne supérieure…

ex.: max 2x1+3x2+7x3

3x1+4x2+8x3≤14 xj

(23)

Modèles:

Affectation des équipages aux vols T: ensemble des rotations possibles

T(i): ensemble des rotations contenant le segment i cj: coût de la rotation j xj=1 si  rotation j

min j cjxj  coûts de tous les segments

jT(i)xj≥1 pour couvrir tous les segments «problème de couverture» "set covering"

xj{0,1}

Systèmes linéaires par parties:

x = iiai

f(x)=iif(ai)

i=1 0≤y1

i≥0 1≤y1+y2

i≤yi+yi+1 i  {1..n-1}

n≤yn

Remarque:

permet d'utiliser yi[0,1] puisque la variable s'accotera toujours à une extrémité…

* Contraintes logiques Forme algébrique binaire p1 v p2 = V x1 + x2 ≥ 1

p1 (+) p2 = V x1 + x2 = 1 p1p2 x2 ≥ x1

x 1-x

p1  p2 = V x1 + x2 = 2 ou ≥2 Problème de localisation:

min aiyi + bixij + cijxij

xij ≤ viyi

xij=dj

xij≥0 yi{0,1}

Truc: xy=0 ??  x ≤ Mu où u{0,1}

y ≤ M(1-u)

(24)

Stratégies de résolution:

max 2x1+3x2+7x3

3x1+4x2+8x3≤14 xj

Relaxation linéaire: RL

RL0: (0,0,14/8) Z=12,25 non-admissible, mais on a une borne max.

RL1: (0,3/2,1) Z=11 ½ sondé: non-réalisable

RL2:(2/3,1,1) Z=11 1/3 après #5: sondé: déjà max 11

RL4:(1,3/4,1) Z=11 1/4 RL3:(0,1,1) Z=10 [adm+min]

RL5: (2,0,1) Z=11 après #5: sondé: déjà max 11 [adm+min]

Cours 14, mercredi 17 octobre 2007 3 critères d'arrêt: 1. Solution entière

2. Solution non-réalisable

3. Relaxation linéaire moins bonne qu'une des solutions réalisables

n.b.: Si tout est entier, on peut réduire à un entier toutes mes relaxation linéaires… (12,2512) n.b.: Une borne max sert ds le sous-arbre… une borne min est valable pour l'ensemble [logiquement]

 Best first search: On analyse en premier le sommet ayant la meilleure borne supérieure

 En profondeur: Plus facile de recalculer puisqu'on n'ajoute qu'une contrainte à la fois (et donc le dual permet de réoptimiser en une itération).

Coupes (de Gomery):

max 4x1 + 5/2x2 on trouve: x1 = 15/4 + 5/4x3 – 1/4 x1 + x2 ≤ 6 x2 = 9/4 – 9/4x3 + 1/4x4

9x1+5x2 ≤ 45 x1, x2  

On veut couper de manière à exclure notre solution optimale non-entière du domaine réalisable sans enlever une seule solution entière.

On prend les équations et on remplace les valeurs fractionnaires par la somme de leur partie entière et leur partie fractionnaire.

x1 = 3 + ¾ + x3 + 1/4x3 – x4 +3/4x4  x1-x3+x4-3 = 3/4 + 1/4x3 + 3/4x3

3/4 + 1/4x3 + 3/4x4 ≥ 1

… et on peut obtenir une coupe avec x2= et aussi … de même qu'avec le plafond plutôt que le plancher…

x3+3x4 ≥ 1

6-x1-x2+3(45-9x1-5x2) ≥ 1

(25)

Programmation dynamique:

max 2x1 + 3x2 + 7x3

3x1 + 4x2 + 8x3 ≤ b  Z(b) (valeur optimale) xi

Essayons: Z(0)=0 Z(1)=0

… Z(3)=2

Z(k)=maxj {cj + Z(k-wj)}

k Z(k) j(k)

0 0 -

1 0 -

2 0 -

3 2 1

4 max{2+Z(4-3), 3+Z(4-4)}=3 2

5 max{2+Z(2), 3+Z(1)}=3 2

6 max{2+Z(3), 3+Z(2)}=4 1

7 max{2+Z(4), 3+Z(3)}=5 1,2

8 9 10 11 12 13

14 etc.

note: il y a plusieurs façon de limiter le nombre de calculs nécessaires… voir les notes.

ex.: Gestion de stock

sk: niveau d'inventaire xk: commande au début de k dk: demande

ck(s): coût d'achat hk(s): coût d'inventaire

f[k](s): coût d'une politique optimale débutant au début de période k f[n+1](s) = 0 (après (ici 4) on s'en fout!)

f[n+1](s) = 0

f[k](s) = minx admissible {ck(x) + hk(s+x+sk)/2 + f[k+1](sk)}

Cours 15, mardi 30 octobre 2007 min cx

Ax ≤ b

y≥0 : minx cx+y(Ax-b)  borne inférieure

La meilleure borne inférieure : maxy≥0 minx cx+y(Ax+b)

(26)

min f(x) g(x) ≤0 min f(x)+yg(x)

pour y≥0

L(x,y) = f(x) + yg(x)  Lagrangien

Borne inférieure : maxy≥0 minx f(x)+yg(x)

¯¯¯¯¯¯¯¯ fonction lagrangienne (duale) (y)

(y) ≤ min f(x) G(x)≤0 PL :maxy≥0 minx cx+y(Ax-b)

(c+yA)x –yb

Point de selle du lagrangien:

f(x*)+yg(x*)≤f(x*)+y*g(x*)≤f(x)+y*g(x) y KKT x

minxX cx Ax≤b

Dualisons les contraintes emmerdantes : maxy≥0 minxX cx+y(Ax-b)

Plus court chemin:

 0,1 ,

min

ij ij ij

x i j

c x xij{0,1}

1:

1:

0 :sin

ji ij

i i

si i s

x x si i t

on

 

 

    

 

 

Si cij > 0, la contrainte xij≥0 est inutile (peut être remplacée par xij≥0) Attention aux cycles négatifs…

Algorithme générique:

1. B{s}

y0 yt+∞

2. Si B= STOP Sinon choisir iB 3. Balayer :

(i,j)A faire :

Si yi+cij<yj alors : yjyi+cij

BBu{j}

pred(j)i 4. BB\{i}

goto 2

(27)

ex. :

B{1}

y{0,∞ ,∞ ,∞ ,∞ ,∞}

balayer 1

y1+c13=0+1<∞  B{1,3} y31 pred(3)1 y1+c12=0+5<∞  B{1,3,2} y25 pred(2)1 B{3,2}

balayer 2 balayer 3 balayer 5 balayer 6 balayer 4

Dijkstra:

À chaque étape on balais le plus petit…

Théorème : Une fois i balayé, yi ne bouge plus. «Label setting»

O(mlg(n)) ou O(n2) … selon … Ford-Bellman-Moore:

B : FIFO O(n3) Floyd-Marshall:

wij[k] = min {wij[k-1], wik[k-1] + wkj[k-1]} O(n3)

donne TOUS les pcc, mais difficilement «améliorable» ! Mieux : 1x FBM, puis Dijkstra donne O(n3) (i,j)

Cours 16, mercredi 31 octobre 2007

Arbre sous-tendant minimum (Shortest spanning tree):

Kruskal, Prim, Borůka

Sous forme de programme mathématique:

min

c xij ij

ij

1

i j

x   n



xij{0,1}

Plus court chemin:

(28)

 

[ ]k

min

[k 1]

i j ij j

ycy

, la plus petite distance de i vers t en utilisant au plus k arcs.

ex. :

(on rempli à partir de la droite …) Complexité : O(n3)

Note: ici contrairement à Warshall, si d’une itération à l’autre il n’y a pas d’amélioration, on termine!

Flot maximal:

(Ford-Fulkerson) Programme : max v

0 sin

ij ji

j j

v i s

x x v i t

on

 

     

 

 

xij  0 xij  uij

Peut s’exprimer comme un problème de circulation (par des coûts nuls partout, et -1 sur un arc (t,s)) Si on note S un ensemble de sommets comprenant s, mais pas t.

Si on prend la coupe (S,S¯) de tous les couples (i,j) avec iS et jS¯, la capacité de (S,S¯) est la somme des capacités des Uij(S,S¯)

Donc la capacité de la plus petite coupe est le flot maximum.

Ici, si on prend tous les sommets atteignable lors de la dernière itération, on obtient S={1,2} et la coupe nous donne 6.

On a ici évidemment une expression de dualité linéaire.

Voici le dual, le problème de coupe minimum :

min  u

ij

ij   associé à xijuij

i\k 5 4 3 2 1 0

1   

2 7 (4)  

3 6 (5)  

4 3 (5) 6 (6) 

5 6 (6) 6 (6) 

6 0 (6) 0 (6) 0 (6)

(29)

yi-yj+ij  0  yi associé aux équations de conservation de flot

ij0 -ys+yt  1 max-cut : NP-ardu

Cours 17, mardi 6 novembre 2007 absent

Cours 18, mardi 13 novembre 2007 Chaînes de Markov :

{xt}

10 11 12 13

20 21 22 23

1 0 0 0

0 0 0 1

P P P P

P P P P P

 

 

 

  

 

 

clairement, 0 et 3 sont absorbant

ui=P{xt=0|x0=i} i=1,2

la probabilité, selon le point de départ, d’être absorbé …

µi = E[T|x0=i] i=1,2

L’espérence avant d’être absorbé.

Analyse sur une étape: (ouvrant à une récursivité) u1 = P101 + P11u1 + P12u2 + P130

u2 = P201 + P21u1 + P22u2 + P230 Espérence de temps avant d’être absorbé:

µ1 = P101 + P11µ1+P12µ2+P131 µ2 = P201 + P21µ1+P22µ2+P231

uik=P{xt=k|x0=1} i=0,…,r-1 k=r,…,n-1

uik=j=0 à n-1P{xt=k|x0=i,x1=j}Pij = Pik+j=r à n-1, jkPij0+j=0 à rPijujk

donc U=R+QU ou U(I-Q)=R ou U(I-Q)-1R

on dira de (I-Q)-1 qu’elle est la matrice fondamentale du système de la chaîne de Markov

(30)

Si on part d’un état déterminé par un vecteur de probabilité p, alors on a que les probabilité d’absorbtion sont défini par : p(I-Q)-1R

Définissons: g(i): gain

wi=E[n=0 à T-1 g(xn) | x0=i] espérence des gains

wi=g(i)+j=0 à r-1 Pijwj

w=g+Qw w=(I-Q)-1g

Si on pose g(i) I, alors w est le temps moyen avant absorbtion (w sont les positions de départ) n.b. : g(i)=ik={0 si ik et 1 si i=k} (c’est le delta de Krunecker)

wi=P{xT=i}

ex.:

7 : Bouffe 8 : Choc

u0 = 1/2u1 + 1/2u2

u1 = 1/3u0 + 1/3u3 + 1/31 u2 = 1/30 + 1/3u0 + 1/3u3

notons :u3=1/2 u0=u6=1/2 u1=u4

u2=u5

u1=1-u2

etc. (par symétrie)

Testons pour 2 étapes (P2): Et pour n étapes?

2 2

0

Q QR R

P I

  

  

 

1

2 ...

0

n n

Q I Q Q R

P I

   

  

 

 

on y voit une progression géométrique… d’où QS=Q+Q2+…+Qn=S+Qn-I

(I-Q)S=I-Qn

S=(I-Q)-1(I-Qn)  (n)  (I-Q)-1

2 1

2

( )

0

Q I Q R

P I

 

  

 

(quand n)

0 1 2 3 4 5 6 7 8

0 1/2 1/2

1 1/3 1/3 1/3

2 1/3 1/3 1/3

3 1/4 1/4 1/4 1/5

4 5 6 7 8

(31)

Marche aléatoire:

q=1-p

uk=P{xT=0 | x0=k}

uk = puk+1+quk-1 k=1,…,n u0=1 un+1=0 (probabilité que je sois ruiné) Posons: xk=uk-uk-1

uk=puk+quk

uk = puk + quk = puk+1 + quk-1  p(uk+1-uk) = q(uk-uk-1) xk+1 xk

 xk+1 = (q/p)xk = … = (q/p)kx1

0 1

1

0 0 1

1 0

1

1

0

1 1/ 2

1 1 1

k

j k

j

k k j

k j

j j

n

k k

n

x u u

u u x u x p

q u

k si p q

n u p

q si p q q

p

 

        

 

   

 

   

 

    

    

  

  

  

 

résumé : une marche aléatoire sera toujours un dépalcement sur un ruban (gauche ou droite)

Branchement :

xn : population à la génération n x0=1

P{=k}=pk (probabilité du nombre d’enfants) µ=E[]

2=Var[]

M(n) = E[xn] V(n)=Var[xn]

M(n+1)=µM(n)=µn+1 espérence de la population à l’itération n) V(n+1)= 2M(n)+V(n)µ2=2µn+12(2M(n-1))+µ2v(n-1))…

V(n)= 2µn-1{n si µ=1 (1-µn)/(1-µ) si µ1}

0 1 2 n+1

0 1 0 0 0 0 0

1 q 0 p

2 q 0 p

q 0 p

q 0 p

n+1 0 0 0 0 0 1

(32)

N : instant d’extinction un = P{Nn}=P{xn=0}

1

0

k

n k n

k

u

p u

 

et si n, (extinction à un moment donné)  u = pkuk

Cours 19, mercredi 14 novembre 2007

Livre : Taylor & Karlin (~Introduction to stochastics models)

1 0

k

n k n

k

u

p u

 

Voyons 0: u0=0 (on a un individu, il existe bel et bien, donc 0% de chance d’extinction) ex.: p0=1/4 et p2=3/4

u0=0

u1=1/4u00+3/4u01=1/4 (on défini 00 comme valant 1) u2=1/4+3/4u11=1/4+3/41/4=7/16

µ=3/4

Cherchons les «points fixes» :

( ) k k k

u

u p u



il y a «1» qui est trivial, mais quoi d’autre?

Notons que si la dérivée en 1 est inférieure à 1, comme en 0 on est >, on doit donc recroiser!

(u)=kpkuk

’(u)=k1kpkuk-1

’(1)=k0kpk=E[]=µ

et si µ=1? va s’éteindre sauf si la variance =0.

Fonction génératrice des moments:

(s)=E[s]=k0pksk

Propriétés des fonctions génératrices: Si on la dérive, on obtient E[]

(d/ds)n (s) , nous donne E[(-1)…(-n+1)]

’’(1)=E[(-1)]=E[2]-µ=22-µ pk=(1/k!)(d/ds)k(s) en s=0

x+y(s)=x(s)y(s) (la fonction génératrice d’une somme est la somme des fonctions génératrices)

(33)

Comportement asymptotique:

Cas agréable: k : Pij(k)>0

 ¶ : limnPij(k)j>0

Théorème : ¶=¶P Quand il existe des probabilités limites, alros elles se trouvent en résolvant ce système

k=0àNk=1

¶0 Pij(n)=k=0àNPij(n-1)Pkj

jk ¶=¶P

Regardons (pour prouver l’unicité) le système d’équation : x=xP

xk=1

Prenons : x=xP=xP2=xPn

xj=k=0àNxkPkj(n)jkxkj j … notons qu’ici ¶ représente la fraction de temps que l’on passerait à long terme dans l’état j.

Échantillonnage continu :

En phase 1 : combien d’items ok de suite avant de passer en phase 2. (i) En phase 2 : à chaque combien d’items j’en teste un, si pas ok alors retour en phase 1. (r)

Et on a p, inconnu, défini comme p=P{défectueux}

1/r=P{testé en phase II}

On essai, par exemple, de réduire en deça de 1% le taux de défectuosité en bout de chaîne de montage.

États : Ek : k produits testés négatifs k=0,1,…,k

Ei : phase II

0 0

1 0 1

/ 0

1 /

jk

p j i k

p j i k j

P p r j i k

p r j i k i

  

      

     

   

qui est régulière

=P

k=1 Comme il y a dépendance, on peut laisser tomber une colonne, ici 0, pour simplifier.

k=(1-p)k-1 k=1,…,i-1

i=(1-p)i-1+(1-p/r)I  i=r/p(1-p)i0

i=1

0+i0i=1

0[1 + (1-p) + … + (1-p)i-1] + r/p(1-p)i0=1

alors on isole 0, qui sert à calculer ensuite tous les k :

k

i

(1 )

0 1

1 ( 1)(1 ) (1 )

( )

1 ( 1)(1 )

k i i

i

p p

r p k i

p p

r p k i

    

  

  

  

0 1 2 i-1 i

0 p 1-p 0 0 0 0

1 p 0 1-p 0 0 0

2 p 0 0 … 0 0

… 0 0 0 1-p 0

i-1 p 0 0 0 0 1-p

i p/r 0 0 0 0 1-p/r

Références

Documents relatifs

Toute utilisation commerciale ou impression systématique est constitutive d’une infraction pénale. Toute copie ou impression de ce fichier doit contenir la présente men- tion

Si, en particulier, on suppose que l'un des cercles considérés a son rayon nul, on voit sans difficulté que : Les 2 7 points de contact d'une courbe de classe v avec les

 pour trouver une solution de base (en cas de problème), se créer des arcs artificiels avec un grand coût (M) et s'en servir comme voulu, complétant ma base au beosin avec les arcs

Nous signalons que les valeurs limites X^) correspondent aux deux côtés de tout arc &lt;?A qui sont disposés par rapport à la direction de l'arc comme les demi-.. ., ^n)

Toute utilisation commerciale ou impression systé- matique est constitutive d’une infraction pénale.. Toute copie ou impression de ce fi- chier doit contenir la présente mention

Il serait d'ailleurs aisé d'étendre cette conclusion au cas où l'un des nombres | û^ ou &amp;,» (ou les deux à la fois) ne serait pas supérieurement borné ; de même. Montel

On obtient donc le raccordement par deux arcs de cercle dont la différence des rayons est minimum en mettant au cercle F 3 la tangente parallèle à la bissec- trice de Vangle ACB,

D´emonstration. — En raisonnant par l’absurde, on suppose les s´eries formelles χ, ϕ et ψ non toutes inversibles.. Le lemme suivant est le r´esultat cl´e pour la preuve de