Simplex method convergence Convergence when the problem is non degenerate • Non degeneracy assumption: all the basic variables are stricly positive at each iteration • Theorem: Consider a linear programming problem in standard form. min z c T x Subject to Ax b x0 c, x R n , b R m A m n matrix If the matrix A is of full rank, and if the non degeneracy assumption is verified, then the simplex algorithm terminates in a finite number of iterations. • Proof: Since the rank of matrix A is equal to m, then each basic feasible solution includes m basic variables strictly positive (non degeneracy assumption). But there is a finite number of ways to select m columns among the n columns of A to specify an m m sub matrix of A : n! n m m ! (n m)! But the feasible basis of A are a subset of these. Then n! n m m ! (n m)! is an upper bound on the number of feasible basis of A. • The influence of pivoting on the objective function during an iteration of the simplex r.h.s. Deviding row r basic var. by ars br → z a rs cs Substact from br z z z cs z a rs since c s 0, a rs 0, et br 0 under the non degeneracy ass. br z z z cs z a rs since c s 0, a rs 0, et br 0 under the non degeneracy ass. Then z z and the value of the objective function decreases stricly at each iteration. Consequently, the same basic feasible solution cannot repeat during the completion of the simplex algorithm. Since the number of basic feasible solution is bounded, it follows that the simplex algorithm must be completed in a finite number of iterations. An exemple of a problem where the simplex algorithm cycles x5 x6 x7 z x1 1 4 1 2 0 3 4 x1 x1 1 x6 0 x7 0 z 0 x2 x3 1 60 25 1 90 50 0 1 1 150 50 x2 x4 x5 x6 x7 z 9 1 0 0 0 0 3 0 1 0 0 0 0 0 0 1 0 1 6 0 0 0 1 0 x5 x6 x7 4 0 0 0 0 2 1 0 0 0 0 0 1 0 1 3 0 0 1 0 x3 x4 4 240 36 25 3 30 15 50 0 1 0 7 30 33 50 z x1 x1 1 x6 0 x7 0 z 0 x2 x3 x4 4 240 36 25 3 30 15 50 0 1 0 7 30 33 50 x1 x2 x1 1 0 x2 0 1 x7 0 0 z 0 0 z x5 x6 x7 4 0 0 0 0 2 1 0 0 0 0 0 1 0 1 3 0 0 1 0 x3 x4 x5 8 84 12 25 1 1 1 500 2 15 1 0 0 2 18 1 25 x6 x7 z 8 0 0 0 1 30 0 0 0 0 1 0 1 1 0 1 0 x1 x2 x1 1 0 x2 0 1 x7 0 0 z 0 0 x3 x2 x7 z x1 25 8 1 160 25 8 1 4 x2 0 1 0 0 x3 x4 x5 8 84 12 25 1 1 1 500 2 15 1 0 0 2 18 1 25 x6 x7 z 8 0 0 0 1 30 0 0 0 0 1 0 1 1 0 1 0 x3 x4 x5 x6 525 75 1 25 2 2 1 1 1 0 40 120 60 525 75 0 25 2 2 0 3 2 3 x7 z 0 0 0 0 0 0 1 0 1 0 1 0 x3 x2 x7 z x3 x4 x7 z x1 25 8 1 160 25 8 1 4 x2 0 1 0 0 x3 x4 x5 x6 525 75 1 25 2 2 1 1 1 0 40 120 60 525 75 0 25 2 2 0 x1 x2 x3 125 10500 1 2 1 40 0 4 125 10500 0 2 1 120 0 2 3 2 z x7 3 0 0 0 0 0 0 1 0 1 0 1 0 x7 z x4 x5 x6 0 50 150 0 0 0 1 1 3 2 3 0 0 0 0 50 150 1 0 1 0 1 1 0 1 0 x3 x4 x7 z x5 x4 x7 z x1 x2 x3 125 10500 1 2 1 40 0 4 125 10500 0 2 1 120 0 2 x1 5 4 1 6 0 7 4 x2 210 30 0 330 x3 1 50 1 150 1 1 50 z x4 x5 x6 x7 0 50 150 0 0 0 1 1 3 2 3 0 0 0 0 50 150 1 0 1 0 1 1 0 1 0 x4 x5 x6 x7 z 0 1 3 0 0 0 1 0 0 0 0 0 0 1 3 0 1 0 1 0 0 2 1 0 0 x5 x4 x7 z x5 x6 x7 z x1 5 4 1 6 0 7 4 x1 1 4 1 2 0 3 4 x2 210 30 0 330 x2 x3 1 50 1 150 1 1 50 x3 1 60 25 1 90 50 0 1 1 150 50 x4 x5 x6 x7 z 0 1 3 0 0 0 1 0 0 0 0 0 0 1 3 0 1 0 1 0 0 2 1 0 x4 x5 x6 x7 z 9 1 0 0 0 0 3 0 1 0 0 0 0 0 0 1 0 1 6 0 0 0 1 0 0 Graphic illustration of degeneracy x y 2 x 8 2 2 x xyy10 2 x y 10 Min 3 x 2 y s. t. à x 2y 26 Sujet x y 3 x y 2 2 x y 10 x, y 0 Min 3 x 2 y s. t. à Sujet x 2y s1 x y s2 x y s3 2x y s4 x, y, s1 , s 2 , s3 , s 4 0 26 3 2 10 y6 Graphic illustration of degeneracy x y 2 x 8 2 2 x xyy10 2 x y 10 Min 3 x 2 y s. t. à x 2y 26 Sujet x y 3 x y 2 2 x y 10 x, y 0 y6 s2 s3 s1 Min 3 x 2 y s. t. à Sujet x 2y s1 x y s2 x y s3 2x y s4 x, y, s1 , s 2 , s3 , s 4 0 26 3 2 10 s4 8 6 8 6 6 5 0 0 Min 3x 2 y s. t. à x 2y 26 Sujet x y 3 x y 2 2 x y 10 6 x 5 y 18 x, y 0 Min 3x 2 y Sujet s. t. à x 2y s1 x y s2 x y s3 2x y s4 6x 5 y s5 x, y, s1 , s 2 , s3 , s 4 , s5 0 s2 26 3 2 10 18 8 6 s4 s5 s3 s1 Min 3x 2 y s. t. à x 2y 26 Sujet x y 3 x y 2 2 x y 10 6 x 5 y 18 x, y 0 Min 3x 2 y Sujet s. t. à x 2y s1 x y s2 x y s3 2x y s4 6x 5 y s5 x, y, s1 , s 2 , s3 , s 4 , s5 0 s2 26 3 2 10 18 8 6 s4 s5 s3 s1 8 6 6 5 0 0 0 Bland’s criteria to preserve convergence even when degenerary exists Entering criterion: The entering variable xs is the non basic variable having the smallest index among those with a negative relative cost ; i.e., s Min j : c j 0 . j 1, , n Leaving criterion: The leaving variable x jr (x jr being the basic variable in the r th row of the tableau) is the basic variable having the smallest index among those candidate the leave; i.e., bl bi jr Min jl : als 0, Min : ais 0 . l 1, , m als i 1, , m ais Leaving criterion: The leaving variable x jr (x jr being the basic variable in the r th row of the tableau) is the basic variable having the smallest index among those candidate the leave; i.e., bl bi jr Min jl : als 0, Min : ais 0 . l 1, , m als i 1, , m ais Important remark: When bi bl Min : ais 0 als i 1, , m ais is reaches for several indices l , then the variable x jr selected according to Bland's criterion becomes the leaving variable taking the value 0. But the other variables x jl where the Min is reached remains basic but there values becomes also equal to 0, inducing degeneracy. x5 x6 x7 z x1 1 4 1 2 0 3 4 x1 x1 1 x6 0 x7 0 z 0 x2 x3 1 60 25 1 90 50 0 1 1 150 50 x2 x4 x5 x6 x7 z 9 1 0 0 0 0 3 0 1 0 0 0 0 0 0 1 0 1 6 0 0 0 1 0 x5 x6 x7 4 0 0 0 0 2 1 0 0 0 0 0 1 0 1 3 0 0 1 0 x3 x4 4 240 36 25 3 30 15 50 0 1 0 7 30 33 50 z x1 x1 1 x6 0 x7 0 z 0 x2 x3 x4 4 240 36 25 3 30 15 50 0 1 0 7 30 33 50 x1 x2 x1 1 0 x2 0 1 x7 0 0 z 0 0 z x5 x6 x7 4 0 0 0 0 2 1 0 0 0 0 0 1 0 1 3 0 0 1 0 x3 x4 x5 8 84 12 25 1 1 1 500 2 15 1 0 0 2 18 1 25 x6 x7 z 8 0 0 0 1 30 0 0 0 0 1 0 1 1 0 1 0 x1 x2 x1 1 0 x2 0 1 x7 0 0 z 0 0 x3 x2 x7 z x1 25 8 1 160 25 8 1 4 x3 x4 x5 8 84 12 25 1 1 1 500 2 15 1 0 0 2 18 1 25 x2 0 1 0 0 x6 x7 z 8 0 0 0 1 30 0 0 0 0 1 0 1 1 0 1 0 x3 x4 x5 x6 525 75 1 25 2 2 1 1 1 0 40 120 60 525 75 0 25 2 2 0 3 2 3 x7 z 0 0 0 0 0 0 1 0 1 0 1 0 x3 x2 x7 z x3 x4 x7 z x1 25 8 1 160 25 8 1 4 x2 0 1 0 0 x3 x4 x5 x6 525 75 1 25 2 2 1 1 1 0 40 120 60 525 75 0 25 2 2 0 x1 x2 x3 125 10500 1 2 1 40 0 4 125 10500 0 2 1 120 0 2 z x7 0 0 0 0 0 0 1 0 1 3 0 1 0 x7 z 3 2 x4 x5 x6 0 50 150 0 0 0 1 1 3 2 3 0 0 0 0 50 150 1 0 1 0 1 1 0 1 0 x1 x2 125 x3 10500 2 1 x4 40 4 125 x7 10500 2 1 z 120 2 x3 x4 x5 x6 x7 z 1 0 50 150 0 0 0 0 1 1 3 2 3 0 0 0 0 0 50 150 1 0 1 0 0 1 0 1 0 x3 x1 0 x2 0 x3 1 x4 0 2 0 x1 1 168 0 z 0 36 0 x4 0 1 x5 0 2 1 15 100 0 125 175 0 125 x6 0 1 5 300 125 275 125 x7 z 1 0 1 0 250 2 0 125 1 1 125 1 1 250 1 125 1 125 x3 x1 0 x2 0 x3 1 x4 0 2 0 x1 1 168 0 z 0 36 0 x3 x1 0 x2 0 x3 1 x5 0 15 0 x1 1 180 z 0 15 x4 0 x7 z 1 0 1 0 250 2 0 125 1 1 125 x5 0 2 1 15 100 0 125 175 0 125 x6 0 1 5 300 125 275 125 x4 0 15 2 x5 0 0 6 0 0 21 2 0 x6 x7 z 0 1 0 3 3 0 2 100 150 5 0 125 125 1 1 1 10 20 1 1 1 250 1 125 1 125 1 3 100 5 125 1 20 Bland’s proof of the simplex convergence Théorème 4.2: En utilisant les critères d'entrée et de sortie de Bland, l'algorithme du simplexe doit être complété en un nombre fini d'itérations. Preuve. (Preuve par contradiction) Supposons qu'au contraire pour un certain problème, l'algorithme ne soit pas complété en un nombre fini d'itérations. Or étant donné qu'il existe un nombre fini de solutions de base réalisables, il s'ensuit que certaines solutions de base réalisables sont répétées au cours de la résolution avec l'algorithme du simplexe; i.e., l'algorithme cycle. Preuve. (Preuve par contradiction) Supposons qu'au contraire pour un certain problème, l'algorithme ne soit pas complété en un nombre fini d'itérations. Or étant donné qu'il existe un nombre fini de solutions de base réalisables, il s'ensuit que certaines solutions de base réalisables sont répétées au cours de la résolution avec l'algorithme du simplexe; i.e., l'algorithme cycle. Considérons une solution de base d'une itération quelconque. Alors ou bien cette solution réalisable est optimale, ou bien nous décelons que le problème n'est pas borné inférieurement, ou bien les critères d'entrée et de sortie de Bland déterminent de façon unique l'élément du tableau sur lequel le pivot est complété. Considérons une solution de base d'une itération quelconque. Alors ou bien cette solution réalisable est optimale, ou bien nous décelons que le problème n'est pas borné inférieurement, ou bien les critères d'entrée et de sortie de Bland déterminent de façon unique l'élément du tableau sur lequel le pivot est complété. Par conséquent si l'algorithme cycle, alors le cycle des solutions de base réalisables qui sont répétées est unique. Dénotons par 1, , n l'ensemble des indices des variables d'entrée au cours des itérations du cycle. Donc si j , alors x j demeure une variable de base au cours de toutes les itérations du cycle ou elle demeure un variable hors base au cours de toutes les itérations du cycle. En somme son statut ne change pas au cours des itérations du cycle. Par conséquent si l'algorithme cycle, alors le cycle des solutions de base réalisables qui sont répétées est unique. Dénotons par 1, , n l'ensemble des indices des variables d'entrée au cours des itérations du cycle. Donc si j , alors x j demeure une variable de base au cours de toutes les itérations cycle ou elle demeure un variable hors base au cours de toutes les itérations du cycle. En somme son statut ne change pas au cours de itérations du cycle. Dénotons également g Max j , j et utilisons l'indice supérieur pour désigner les éléments du tableau du simplexe à l'itération où xg devient variable d'entrée. Dénotons également g Max j , j et utilisons l'indice supérieur pour désigner les éléments du tableau du simplexe à l'itération où xg devient variable d'entrée. xg xn z a12 a11 a1g a1n 0 b1 a22 a21 a2 g a2 n 0 b2 am 1 am 2 amg 0 amn bm c1 cg cn z x1 x2 c2 1 Dénotons par hT R n1 la dernière ligne du tableau: hT = c1 c2 cg cn 1 . xg xn z a12 a11 a1g a1n 0 b1 a22 a21 a2 g a2 n 0 b2 am 1 am 2 amg 0 amn bm c1 cg cn z x1 x2 c2 1 Dénotons par hT R n1 la dernière ligne du tableau: hT = c1 c2 cg cn 1 . Puisque xg est la variable d'entrée, il découle du critère d'entrée que toutes les variables ayant un indice plus petit que g ont un coût relatif plus grand ou égal à 0. De plus puisque g Max j j alors hg cg 0 et h j cj 0 j , j g . (2.1) x1 x2 xg xn z a22 a21 a2 g a2 n 0 b2 A 0 bm am 1 am 2 amg amn c c c1 c2 cg cn 1 z 1 2 cg cn Dénotons par hT R n1 la dernière ligne du tableau: a12 a11 a1g a1n 0 b1 0 0 0 1 hT = c1 c2 cg cn 1 . Puisque le tableau précédent a été obtenu du tableau original à l'aide d'une suite de pivots, il s'ensuit que le vecteur hT est une combinaison linéaire des lignes de cette matrice et qu'il appartient donc à l'espace engendré par les lignes de cette dernière. Puisque xg est variable d'entrée à une certaine itération du cycle, elle doit être variable de sortie à une autre itération du cycle. Utilisons l'indice supérieur pour désigner le tableau du simplexe associé à cette itération. Dénotons par x j1 , , x jr , x jm où x jr xg les variables de base à cette itération. Dénotons également par xs la variable d'entrée identifiée avec le critère de Bland. Ainsi est l'élément de pivot. ars x1 x jr xs xj x jm xn z x j1 a11 0 a1s 1 0 a1n 0 b1 x jr ar1 1 ars 0 0 arn 0 br x jm am 1 0 ams 0 1 amn 0 bm z c1 0 cs 0 0 cn 1 z 1 Définissons un vecteur v R n 1 à partir des éléments dans la colonne de la variable d'entrée xs dans le tableau précédent: v ji ais i 1, , m Par rapport au tableau illustré plus vs 1 haut le vecteur v prend la forme vn 1 cs vj 0 autres indices j vT 0 ars 1 a1s ams 0 cs x j1 x jr x jm xn z 1 1 a1s 0 a1n 0 b1 ars 0 arn 0 br amn 0 x1 x jr xs a11 0 ars a1s 0 ar1 0 1 ars x jm am 1 z c1 0 0 ars 0 xj 1 0 ams 1 a1s ams ams 1 0 cs 0 1 a1s 0 cs 0 cs bm 0 cn 1 z ams 0 cs Le produit scalaire du vecteur v avec chaque ligne du tableau précédent est égal à 0. Ainsi v est perpendiculaire a chaque vecteur ligne du tableau. Par rapport au tableau illustré plus haut le vecteur v prend la forme vT 0 ars 1 a1s ams 0 cs x1 x jr xs xj x jm xn z x j1 a11 0 a1s 1 0 a1n 0 b1 x jr ar1 1 ars 0 0 arn 0 br x jm am 1 0 ams 0 1 amn 0 bm z c1 0 cs 0 0 cn 1 z 1 A c c 1 2 cg 0 0 0 cn 1 Puisque le tableau précédent a été obtenu du tableau original à l'aide d'une suite de pivots, il s'ensuit que le vecteur v est perpendiculaire aux lignes de cette matrice et qu'il est donc orthogonal à l'espace engendré par les lignes de cette dernière. Donc il s'ensuit que hT v 0. hT = c1 c2 cg cn 1 v ji ais Donc il s'ensuit que ,m vs 1 n 1 vn 1 cs l 1 vj 0 hT v hl vl 0. i 1, autres indices j Notons d'abord que hn 1vn 1 1 cs 0. Par conséquent, il doit exister au moins un indice j 1 j n tel que h j v j 0. Or si h j 0, alors x j est une variable hors base dans le tableau d'indice supérieur si v j 0, alors x j est une variable de base dans le tableau d'indice supérieur , ou j s. hT = c1 c2 cg 1 cn Donc il s'ensuit que v ji ais ,m vs 1 vn 1 cs vj 0 hT v 0. i 1, autres indices j Or si h j 0, alors x j est une variable hors base dans le tableau d'indice supérieur si v j 0, alors x j est une variable de base dans le tableau d'indice supérieur , ou j s. Donc l'indice j doit appartenir à et alors Mais puisque hg cg 0 il s'ensuit que j g. et j g. vg ars 0, hT = c1 c2 cg 1 cn v ji ais i 1, ,m vs 1 vn 1 cs Donc il s'ensuit que vj 0 hT v 0. autres indices j Mais puisque hg cg 0 et vg ars 0, j g. il s'ensuit que Il découle donc de (2.1) hg cg 0 et h j cj 0 j , j g. que hj 0 et ainsi v j 0. (2.1) Donc x j est une variable de base dans le tableau d'indice supérieur . hT = c1 c2 cg cn Donc il s'ensuit que hT v 0. 1 v ji ais i 1, ,m vs 1 vn 1 cs vj 0 autres indices j v j 0. Donc x j est une variable de base dans le tableau d'indice supérieur . Soit j j p tel que aps v j 0. Donc x j est une variable de base dans le tableau d'indice supérieur . Soit j j p <g tel que aps v j 0. x1 x jr xs xj x jm xn z x j1 a11 0 a1s 1 0 a1n 0 b1 x jr ar1 1 ars 0 0 arn br x j p ap1 1 aps 0 0 apn x jm am 1 0 ams 0 1 z c1 0 cs 0 0 1 0 0 bp amn 0 bm cn 1 z Au cours des itérations du cycle, chaque variable conserve la même valeur. En effet, si à une itération du cycle une variable d'entrée augmentait d'une valeur positive, alors la valeur de la fonction économique diminuerait strictement et alors l'algorithme ne pourrait cycler. En particulier, xj 0 j au cours de toutes les itérations du cycle. Par conséquent x j p bp =0. En somme, nous venons d'établir les deux faits suivants: Donc x j est une variable de base dans le tableau d'indice supérieur . Soit j j p <g tel que aps v j 0. x j p bp 0. et que x j1 x1 x jr xs xj x jm xn z a11 0 a1s 1 0 a1n 0 x jr ar1 1 b1 Ainsi cette variable x j p br aurait dû être variable de sortie à l'itération 1 ars x jp ap1 1 aps 0 x jm am 1 0 ams 0 1 amn 0 z c1 0 cs 0 0 cn 1 z 0 0 arn 0 apn 0 0 b0p bm selon le critère de sortie de Bland. En somme, nous venons d'établir les deux faits suivants: Donc x j est une variable de base dans le tableau d'indice supérieur . Soit j j p <g tel que aps v j 0. et que x j p bp 0. Ainsi cette variable x j p aurait dû être variable de sortie à l'itération selon le critère de sortie de Bland. Ceci est une contradiction au fait que nous ayons retenu plutôt xg comme variable de sortie. Donc en utilisant les critères d'entrée et de sortie de Bland, l'algorithme du simplexe ne peut cycler. La décroissance stricte de la valeur de la fonction économique au cours des itérations où il n'y a pas dégénérescence nous assure que l'algorithme du simplexe doit être complété en un nombre fini d'itérations.
© Copyright 2026 Paperzz