Solution simplex pour les nuls. Un exemple de résolution d'un problème. Méthode simplexe pour résoudre LLP. Résoudre le problème en utilisant la méthode du simplexe tabulaire

Un exemple de résolution d'un problème à l'aide de la méthode du simplexe est considéré, ainsi qu'un exemple de solution double problème.

Condition problématique

Pour vendre trois groupes de biens, une entreprise commerciale dispose de trois types de ressources matérielles et monétaires limitées d'un montant de b 1 = 240, b 2 = 200, b 3 = 160 unités. Dans le même temps, pour la vente d'un groupe de marchandises pour 1 000 roubles. chiffre d'affaires des marchandises, la ressource du premier type est consommée à hauteur de 11 = 2 unités, la ressource du deuxième type à hauteur de 21 = 4 unités, la ressource du troisième type à hauteur de 31 = 4 unités. Pour la vente de 2 et 3 groupes de marchandises pour 1 000 roubles. le chiffre d'affaires est consommé en fonction de la ressource du premier type à hauteur de a 12 = 3, a 13 = 6 unités, la ressource du deuxième type à hauteur de a 22 = 2, a 23 = 4 unités, la ressource de le troisième type d'un montant de a 32 = 6, a 33 = 8 unités . Bénéficiez de la vente de trois groupes de produits pour 1 000 roubles. le chiffre d'affaires est respectivement c 1 = 4, c 2 = 5, c 3 = 4 (milliers de roubles). Déterminez le volume et la structure prévus du chiffre d'affaires commercial afin que le profit de l'entreprise commerciale soit maximisé.

Au problème direct de la planification du chiffre d'affaires, résolu par la méthode simplexe, composer double problème programmation linéaire.
Installer paires conjuguées de variables problèmes directs et doubles.
D'après des paires conjuguées de variables, de la solution du problème direct on obtient solution du double problème, dans lequel il est produit évaluation des ressources, dépensé pour la vente de biens.

Résoudre le problème en utilisant la méthode du simplexe

Soit x 1, x 2, x 3 le nombre de biens vendus, en milliers de roubles, respectivement 1, 2, 3 groupes. Alors modèle mathématique la tâche a la forme :

F = 4 x 1 + 5 x 2 + 4 x 3 ->max

0)))(~)" title="delim(lbrace)(matrix(4)(1)((2x_1 + 3x_2 + 6x_3= 0)))(~)">!}

Nous résolvons la méthode du simplexe.

Nous introduisons des variables supplémentaires x 4 ≥ 0, x 5 ≥ 0, x 6 ≥ 0 pour transformer les inégalités en égalités.

Prenons comme base x 4 = 240 ; x5 = 200 ; x6 = 160.

Nous entrons les données dans tableau simplexe

Tableau simplex n°1

Fonction objectif :

0 240 + 0 200 + 0 160 = 0

Nous calculons les estimations à l'aide de la formule :

Δ 1 = 0 2 + 0 4 + 0 4 - 4 = - 4
Δ 2 = 0 3 + 0 2 + 0 6 - 5 = - 5
Δ 3 = 0 6 + 0 4 + 0 8 - 4 = - 4
Δ 4 = 0 1 + 0 0 + 0 0 - 0 = 0
Δ 5 = 0 0 + 0 1 + 0 0 - 0 = 0
Δ 6 = 0 0 + 0 0 + 0 1 - 0 = 0

Puisqu’il existe des estimations négatives, le plan n’est pas optimal. Note la plus basse :

Nous introduisons la variable x 2 dans la base.

Nous définissons une variable issue de la base. Pour ce faire, on trouve le plus petit rapport non négatif pour la colonne x2.

= 26.667

Plus petit non négatif : Q 3 = 26,667. Nous dérivons la variable x 6 de la base

Divisez la 3ème ligne par 6.
De la 1ère ligne, soustrayez la 3ème ligne, multipliée par 3
De la 2ème ligne, soustrayez la 3ème ligne, multipliée par 2


On calcule :

Nous obtenons nouveau tableau:

Tableau simplex n°2

Fonction objectif :

0 160 + 0 440/3 + 5 80/3 = 400/3

Nous calculons les estimations à l'aide de la formule :

Δ 1 = 0 0 + 0 8/3 + 5 2/3 - 4 = - 2/3
Δ 2 = 0 0 + 0 0 + 5 1 - 5 = 0
Δ 3 = 0 2 + 0 4/3 + 5 4/3 - 4 = 8/3
Δ 4 = 0 1 + 0 0 + 5 0 - 0 = 0
Δ 5 = 0 0 + 0 1 + 5 0 - 0 = 0
Δ 6 = 0 (-1)/2 + 0 (-1)/3 + 5 1/6 - 0 = 5/6

Puisqu'il existe une estimation négative Δ 1 = - 2/3, le plan n'est pas optimal.

Nous introduisons la variable x 1 dans la base.

Nous définissons une variable issue de la base. Pour ce faire, on trouve le plus petit rapport non négatif pour la colonne x 1.

Le plus petit non négatif : Q 3 = 40. Nous dérivons la variable x 2 de la base

Divisez la 3ème ligne par 2/3.
De la 2ème ligne, soustrayez la 3ème ligne, multipliée par 8/3


On calcule :

On obtient un nouveau tableau :

Tableau simplex n°3

Fonction objectif :

0 160 + 0 40 + 4 40 = 160

Nous calculons les estimations à l'aide de la formule :

Δ 1 = 0 0 + 0 0 + 4 1 - 4 = 0
Δ 2 = 0 0 + 0 (-4) + 4 3/2 - 5 = 1
Δ 3 = 0 2 + 0 (-4) + 4 2 - 4 = 4
Δ 4 = 0 1 + 0 0 + 4 0 - 0 = 0
Δ 5 = 0 0 + 0 1 + 4 0 - 0 = 0
Δ 6 = 0 (-1)/2 + 0 (-1) + 4 1/4 - 0 = 1

Puisqu’il n’y a pas de notes négatives, le plan est optimal.

Solution au problème :

Répondre

x1 = 40 ; x2 = 0 ; x3 = 0 ; x4 = 160 ; x5 = 40 ; x6 = 0 ; Fmax = 160

Autrement dit, il est nécessaire de vendre le premier type de marchandises pour un montant de 40 000 roubles. Les produits des types 2 et 3 ne doivent pas être vendus. Dans ce cas, le profit maximum sera de F max = 160 000 roubles.

Solution du double problème

Le double problème a la forme :

Z = 240 ans 1 + 200 ans 2 + 160 ans 3 ->min

Titre="delim(lbrace)(matrix(4)(1)((2a_1 + 4a_2 + 4a_3>=4) (3a_1 + 2a_2 + 6a_3>=5) (6a_1 + 4a_2 + 8a_3>=4) (y_1, y_2, y_3>= 0)))(~)">!}

Nous introduisons des variables supplémentaires y 4 ≥ 0, y 5 ≥ 0, y 6 ≥ 0 pour transformer les inégalités en égalités.

Les paires conjuguées de variables des problèmes directs et duaux ont la forme :

A partir du dernier tableau simplexe n°3 du problème direct, on trouve la solution du problème dual :

Z min = F max = 160 ;
oui 1 = Δ 4 = 0 ; y 2 = Δ 5 = 0 ; y 3 = Δ 6 = 1 ; y 4 = Δ 1 = 0 ; y 5 = Δ 2 = 1 ; y 6 = Δ 3 = 4 ;

Considérons méthode simplexe pour résoudre des problèmes de programmation linéaire (LP). Il repose sur le passage d'un plan de référence à un autre, dans lequel la valeur fonction objectif augmente.

L'algorithme de la méthode simplexe est le suivant :

  1. Nous traduisons le problème initial en vue canonique en introduisant des variables supplémentaires. Pour les inégalités de forme ≤, les variables supplémentaires sont introduites avec un signe (+), mais si de forme ≥, alors avec un signe (-). Des variables supplémentaires sont introduites dans la fonction objectif avec des signes correspondants avec un coefficient égal à 0 , parce que la fonction cible ne doit pas changer sa signification économique.
  2. Les vecteurs sont écrits P jeà partir des coefficients des variables et de la colonne des termes libres. Cette action détermine le nombre de vecteurs unitaires. La règle est qu’il doit y avoir autant de vecteurs unitaires qu’il y a d’inégalités dans le système de contraintes.
  3. Après cela, les données source sont saisies dans un tableau simplex. Des vecteurs unitaires sont introduits dans la base, et en les excluant de la base, la solution optimale est trouvée. Les coefficients de la fonction objectif s'écrivent avec le signe opposé.
  4. Un signe d'optimalité pour un problème LP est que la solution est optimale si dans f– dans la ligne tous les coefficients sont positifs. Règle pour trouver la colonne d'activation - consultée f– une chaîne et parmi ses éléments négatifs, le plus petit est sélectionné. Vecteur P je son contenant devient permissif. La règle de choix d'un élément de résolution - les rapports des éléments positifs de la colonne de résolution aux éléments du vecteur sont compilés P 0 et le numéro qui donne plus petit rapport devient un élément résolvant par rapport auquel la table simplexe sera recalculée. La ligne contenant cet élément est appelée ligne d'activation. S’il n’y a aucun élément positif dans la colonne résolution, alors le problème n’a pas de solution. Après avoir déterminé l'élément résolvant, procédez au recalcul nouveau simplexe– des tableaux.
  5. Règles pour remplir un nouveau tableau simplex. L'unité est mise à la place de l'élément de résolution, et les autres éléments sont supposés égaux 0 . Le vecteur de résolution est ajouté à la base, dont le vecteur zéro correspondant est exclu, et les vecteurs de base restants sont écrits sans modifications. Les éléments de la ligne de résolution sont divisés par l'élément de résolution et les éléments restants sont recalculés selon la règle du rectangle.
  6. Ceci est fait jusqu'à f– tous les éléments de la chaîne ne deviendront pas positifs.

Envisageons de résoudre le problème en utilisant l'algorithme discuté ci-dessus.
Donné:

Nous mettons le problème sous forme canonique :

On compose les vecteurs :

Remplissez le tableau simplexe :

:
Recalculons le premier élément du vecteur P 0, pour lequel on fait un rectangle de nombres : et on obtient : .

Nous effectuons des calculs similaires pour tous les autres éléments de la table simplex :

Dans le plan reçu f– la ligne contient un élément négatif – ​​(-5/3), vecteur P1. Il contient dans sa colonne un seul élément positif, qui sera l'élément habilitant. Recalculons le tableau concernant cet élément :

Aucun élément négatif dans f– la ligne signifie trouvé plan optimal:
F* = 36/5, X = (12/5, 14/5, 8, 0, 0).

  • Ashmanov S.A. Programmation linéaire, M : Nauka, 1998,
  • Ventzel E.S. Recherche opérationnelle, M : Radio soviétique, 2001,
  • Kuznetsov Yu.N., Kuzubov V.I., Volochenko A.B. Programmation mathématique, M : Ecole Supérieure, 1986.

Solution de programmation linéaire personnalisée

Vous pouvez commander tous les devoirs dans cette discipline sur notre site Internet. Vous pouvez joindre des fichiers et spécifier des délais à

Si vous avez besoin de résoudre un problème de programmation linéaire à l'aide de tables simplexes, alors notre service en ligne je te donnerai grande aide. La méthode simplex implique une énumération séquentielle de tous les sommets de la région valeurs acceptables afin de trouver le sommet où la fonction prend une valeur extrême. Lors de la première étape, une solution est trouvée, qui est améliorée à chaque étape suivante. Cette solution est dite basique. Voici la séquence d'actions lors de la résolution d'un problème de programmation linéaire à l'aide de la méthode du simplexe :

Premier pas. Dans le tableau compilé, vous devez tout d’abord regarder la colonne avec les membres libres. S'il contient des éléments négatifs, il est alors nécessaire de passer à la deuxième étape, sinon à la cinquième.

Deuxième étape.

Dans un deuxième temps, il est nécessaire de décider quelle variable exclure de la base et laquelle inclure afin de recalculer le tableau simplex. Pour ce faire, nous parcourons la colonne avec les termes libres et y trouvons un élément négatif. La ligne avec un élément négatif sera appelée leader. On y trouve l'élément négatif maximum en module, la colonne correspondante est celle esclave. S'il y a des valeurs négatives parmi les termes libres, mais pas dans la ligne correspondante, alors un tel tableau n'aura pas de solutions. La variable de la première ligne située dans la colonne des termes libres est exclue de la base, et la variable correspondant à la première colonne est incluse dans la base.

Tableau 1. Membres gratuits sous restrictions Variables non fondamentales
x1 x2 ... xl ... xn
xn+1 b1 un 11 un 12 ... un 1l ... un 1n
xn+2 b2 un 21 un 22 ... un 2l ... un 2n
. . . . . . . .
. . . . . . . .
. . . . . . . .
xn+r b2 un r1 un r2 ... un rl ... arn
. . . . . . . .
. . . . . . . .
. . . . . . . .
xn+m bm un m1 un m2 ... un ml ... une minute
F(x)max F 0 -c 1 -c 2 ... -c 1 ... -c n

Troisième étape. À la troisième étape, nous recalculons la table simplex entière en formules spéciales

, ces formules peuvent être vues en utilisant .

Quatrième étape. Si après recalcul il reste des éléments négatifs dans la colonne des termes libres, alors passez à la première étape s'il n'y en a pas, puis à la cinquième ; Cinquième étape. Si vous avez atteint la cinquième étape, alors vous avez trouvé une solution acceptable. Toutefois, cela ne signifie pas qu’il soit optimal. Ce ne sera optimal que si tous les éléments de la chaîne F sont positifs. Si ce n'est pas le cas, alors il faut améliorer la solution, pour laquelle on retrouve pour le prochain recalcul la première ligne et la première colonne selonà l'algorithme suivant

+
- . Dans un premier temps, on trouve le minimum + nombre négatif - à la ligne F, à l'exclusion de la valeur de la fonction. La colonne avec ce numéro sera la première. Afin de trouver la première ligne, on trouve le rapport du terme libre correspondant et de l'élément de la première colonne, à condition qu'ils soient positifs. Le ratio minimum vous permettra de déterminer la ligne directrice. Nous recalculons à nouveau le tableau en utilisant les formules, c'est-à-dire passez à l'étape 3. = 1
. Dans un premier temps, on trouve le minimum3 nombre négatif + x1 = 15
- 2 . Dans un premier temps, on trouve le minimum + nombre négatif + x2 = 4



S1
S2
S3

Une variable est dite de base pour une équation donnée si elle est incluse dans cette équation avec un coefficient de un et n'est pas incluse dans les équations restantes (à condition qu'il y ait un nombre positif à droite de l'équation).
Si chaque équation a une variable de base, alors le système est dit avoir une base.
Les variables qui ne sont pas basiques sont dites libres. (voir système ci-dessous)

L'idée de la méthode simplexe est de passer d'une base à une autre, en obtenant une valeur de fonction qui n'est au moins pas inférieure à celle existante (chaque base correspond à une seule valeur de fonction).
Évidemment, le nombre de bases possibles pour tout problème est fini (et pas très grand).
Dans la ligne en surbrillance, sélectionnez le plus grand coefficient positif.
Ceci est nécessaire pour obtenir une valeur de fonction qui soit au moins inférieure à celle existante.
Colonne sélectionnée. Pour les coefficients positifs de la colonne sélectionnée, on calcule le rapport Θ et choisit plus petite valeur
. Ceci est nécessaire pour qu'après la transformation la colonne des termes libres reste positive.
Ligne sélectionnée.


+
- . Dans un premier temps, on trouve le minimum + nombre négatif - à la ligne F, à l'exclusion de la valeur de la fonction. La colonne avec ce numéro sera la première. Afin de trouver la première ligne, on trouve le rapport du terme libre correspondant et de l'élément de la première colonne, à condition qu'ils soient positifs. Le ratio minimum vous permettra de déterminer la ligne directrice. Nous recalculons à nouveau le tableau en utilisant les formules, c'est-à-dire passez à l'étape 3. + L’élément qui servira de base a donc été déterminé. Ensuite, nous comptons. = 1
. Dans un premier temps, on trouve le minimum3 nombre négatif + x1 = 15
- 2 . Dans un premier temps, on trouve le minimum + nombre négatif + x2 = 4

R1
x 1 = 0 x 2 = 0 S 1 = 0
S 2 = 15 S 3 = 4 R 1 = 1

=> W = 1
. Dans un premier temps, on trouve le minimumnombre négatifà la ligne F, à l'exclusion de la valeur de la fonction. La colonne avec ce numéro sera la première. Afin de trouver la première ligne, on trouve le rapport du terme libre correspondant et de l'élément de la première colonne, à condition qu'ils soient positifs. Le ratio minimum vous permettra de déterminer la ligne directrice. Nous recalculons à nouveau le tableau en utilisant les formules, c'est-à-dire passez à l'étape 3.x1x2L’élément qui servira de base a donc été déterminé. Ensuite, nous comptons.Étape #1 Θ
-1 1 -1 0 0 1 1 1: 1 = 1
1 3 0 1 0 0 15 15: 3 = 5
-2 1 0 0 1 0 4 4: 1 = 4
1 -1 1 0 0 0 St. membre
-1 1 -1 0 0 1 1
4 0 3 1 0 -3 12
-1 0 1 0 1 -1 3
0 0 0 0 0 1 F-1


+
- . Dans un premier temps, on trouve le minimum + nombre négatif - à la ligne F, à l'exclusion de la valeur de la fonction. La colonne avec ce numéro sera la première. Afin de trouver la première ligne, on trouve le rapport du terme libre correspondant et de l'élément de la première colonne, à condition qu'ils soient positifs. Le ratio minimum vous permettra de déterminer la ligne directrice. Nous recalculons à nouveau le tableau en utilisant les formules, c'est-à-dire passez à l'étape 3. = 1
4 . Dans un premier temps, on trouve le minimum 3 à la ligne F, à l'exclusion de la valeur de la fonction. La colonne avec ce numéro sera la première. Afin de trouver la première ligne, on trouve le rapport du terme libre correspondant et de l'élément de la première colonne, à condition qu'ils soient positifs. Le ratio minimum vous permettra de déterminer la ligne directrice. Nous recalculons à nouveau le tableau en utilisant les formules, c'est-à-dire passez à l'étape 3. + x1 = 12
- . Dans un premier temps, on trouve le minimum + à la ligne F, à l'exclusion de la valeur de la fonction. La colonne avec ce numéro sera la première. Afin de trouver la première ligne, on trouve le rapport du terme libre correspondant et de l'élément de la première colonne, à condition qu'ils soient positifs. Le ratio minimum vous permettra de déterminer la ligne directrice. Nous recalculons à nouveau le tableau en utilisant les formules, c'est-à-dire passez à l'étape 3. + x2 = 3



=> W = 1
. Dans un premier temps, on trouve le minimumnombre négatifà la ligne F, à l'exclusion de la valeur de la fonction. La colonne avec ce numéro sera la première. Afin de trouver la première ligne, on trouve le rapport du terme libre correspondant et de l'élément de la première colonne, à condition qu'ils soient positifs. Le ratio minimum vous permettra de déterminer la ligne directrice. Nous recalculons à nouveau le tableau en utilisant les formules, c'est-à-dire passez à l'étape 3.x1x2Étape #1 Θ
-1 1 -1 0 0 1
4 0 3 1 0 12 12: 4 = 3
-1 0 1 0 1 3
4 0 1 0 0 W-0
-1 1 -1 0 0 1
1 0 3/4 1/4 0 3
-1 0 1 0 1 3
4 0 1 0 0 W-0
0 1 -1/4 1/4 0 4
1 0 3/4 1/4 0 3
0 0 7/4 1/4 1 6
0 0 -2 -1 0 F-1

F-13
S 1 = 0 S 2 = 0
x 1 = 3 x 2 = 4 S 3 = 6
=> F - 13 = 0 => F = 13 Il n'y a aucun coefficient positif parmi les coefficients de ligne sélectionnés. On retrouve donc valeur la plus élevée

fonctions F.

Étape 0. Étape préparatoire. Nous réduisons le problème LP à (15).

formulaire spécialÉtape 1. Compilation tableau simplexe

, correspondant à la forme spéciale :
A noter que ce tableau correspond à une solution de base admissible

problèmes (15). La valeur de la fonction objectif sur cette solutionÉtape 2.

Contrôle d'optimalité
Si parmi les éléments de la ligne d'index il y a des tables simplex
, il n'y a pas un seul élément positif alors solution optimale

Problèmes LP trouvés :. L'algorithme se termine.Étape 3.

Contrôle d'indécidabilité
Si parmi
il y a un élément positif
, et dans la colonne correspondante
il n'y a pas un seul élément positif , alors la fonction objectif L

est illimité par le bas sur l’ensemble admissible. Dans ce cas, il n’existe pas de solution optimale. L'algorithme se termine.Étape 4. Sélection d'une colonne principale

q
Parmi les éléments
choisir l'élément positif maximum

.Nous déclarons cette colonne comme étant la colonne principale (permissive).Étape 5. Sélection de la ligne principale

p
Parmi les éléments positifs de la chronique
trouver l'élément

.

, pour lequel l'égalité est vraie Sélection de la ligne principale Chaîne
Nous déclarons qu'il est leader (permettant). Élément

Nous déclarons qu'il est le leader (si nous le permettons).Étape 6.

Conversion de tables recto

Nous créons une nouvelle table simplexe dans laquelle : a) au lieu de la variable de base écrire a) au lieu de la variable de base ;

, au lieu d'une variable non basique
;

b) l'élément leader est remplacé par la valeur inverse
c) tous les éléments de la première colonne (sauf
;

) multiplier par
d) tous les éléments de la ligne directrice (sauf ;

) multiplier par

e) les éléments restants du tableau simplex sont transformés selon le schéma « rectangle » suivant.

Le produit de trois facteurs est soustrait de l'élément :

le premier est l'élément correspondant de la première colonne ;

le second est l'élément correspondant de la ligne directrice ;
.

L'élément transformé et les trois facteurs qui lui correspondent sont précisément les sommets du « rectangle ».

Étape 7 Le passage à l'itération suivante s'effectue en revenant à l'étape 2.

2.3. Algorithme de la méthode simplex pour le problème maximum

L'algorithme de la méthode simplex pour le problème maximum ne diffère de l'algorithme pour le problème minimum que par les signes de la ligne d'index des coefficients de la fonction objectif
, à savoir :

À l'étape 2 :
:

À l'étape 3
. La fonction objectif est illimitée d'en haut sur l'ensemble admissible.

À l'étape 4:
.

2.4. Un exemple de résolution d'un problème en utilisant la méthode du simplexe

Résolvez le problème écrit sous la forme (15).

Créons un tableau simplexe :

Puisque les coefficients de la droite de la fonction objectif sont non négatifs, la solution de base initiale n’est pas optimale. La valeur de la fonction objectif pour cette base L=0.

Sélectionnez la première colonne - c'est la colonne correspondant à la variable .

Sélectionnez la ligne directrice. Pour ce faire, nous trouvons
. Par conséquent, la ligne directrice correspond à la variable .

On transforme la table simplex en introduisant une variable dans la base et en sortant la variable de la base. On obtient le tableau :

Une itération de la méthode est terminée. Passons à une nouvelle itération. Le tableau résultant n’est pas optimal. La solution de base correspondant au tableau a la forme . La valeur de la fonction objectif sur cette base L= -2.

La première colonne ici est la colonne correspondant à la variable . Ligne directrice – la ligne correspondant à la variable . Après avoir effectué les transformations, on obtient un tableau simplexe :

Une autre itération terminée. Passons à une nouvelle itération.

La ligne de la fonction objectif ne contient pas de valeurs positives, ce qui signifie que la solution de base correspondante est optimale et l'algorithme se termine.



Des questions ?

Signaler une faute de frappe

Texte qui sera envoyé à nos rédacteurs :