Previous: 1 Qu'est-ce qu'un programme
Up: Recherche Opérationnelle
Next: 3 Quelques mots sur
  Contents
Subsections
L'objectif de cette section n'est pas l'efficacité du calcul (il y
a d'excellents logiciels pour cela) mais la compréhension des calculs
entrepris.
- Contrainte majoration. Une majoration est une inégalité
avec une constante positive. Dans le cas contraire,
on écrit l'inégalité sous la forme
,
avec à nouveau une constante positive et l'on parle
de minoration.
- Contrainte égalité. Une égalité
ne peut
pas être utilisée directement pour réduire le nombre de variables,
car il faut conserver la contrainte de positivité sur chaque variable.
- Variables de faces. Pour chaque contrainte majoration, on introduit
une variable supplémentaire, transformant
en
.
- Définition. Un système facile est, par définition, un système où il
n'y a que des contraintes majoration. Il peut alors se mettre sous
la forme d'un système d'égalités, avec uniquement des contraintes
de positivité sur les variables.
- Caractérisation. Un système facile est un système tel que l'origine
des coordonnées soit un points acceptable (c.à.d. vérifie l'ensemble
des contraintes).
Reprenons l'exemple du paragraphe 1.3.
- Nous réécrivons les données du problème en introduisant trois nouvelles
variables, déterminées par le système d'équations :
- Les contraintes s'écrivent maintenant
pour
: chaque
sert à contrôler que nous sommes dans le bon
demi-plan relatif à la contrainte correspondante. Le problème consiste
à partir d'une solution admissible évidente
et
à maximiser la fonction de bénéfice
.
- Du point de vue du sommet
, les variables principales
sont
et
, et le système s'écrit préférentiellement :
Nous avons le choix de modifier
ou
puisque
les deux coefficients
sont positifs.
Nous choisissons de modifier
, et donc de garder
.
Les contraintes de positivité imposent
et
.
Le meilleur mouvement est donc
, qui conduit au sommet
:
- Du point de vue de ce nouveau sommet, le système se réécrit
Vu les coefficients de
, le seul mouvement possible est celui
consistant à augmenter
(et donc à garder
).
Les contraintes de positivité imposent
et
.
Le meilleur mouvement est donc
, qui conduit au sommet :
- Du point de vue de ce sommet, le système se réécrit
La seule variable modifiable est
. Vu les contraintes
de positivité sur les trois autres variables, cette modification doit
vérifier
,
et
.
Le meilleur mouvement possible est donc
, qui conduit
au sommet :
- Une dernière réécriture conduit à :
Comme tous les coefficients de la fonction de bénéfice sont négatifs,
on est arrivé à un sommet optimal (et comme tous les coefficients
sont non nuls, ce sommet optimal est le seul). Le bénéfice maximal
escompté est donc
.
- Le résultat de ce calcul n'est pas la valeur du bénéfice escompté
(qui dépend de la validité du modèle et des diverses influences extérieures)
mais la décision conseillée, qui est
exo 6. Reprendre les calculs en commençant par modifier
au point 4 ci-dessus
exo 7. Maximiser
sous les contraintes
,
et
.
On se pose le problème suivant :
- On introduit une nouvelle variable par contrainte, et le système devient :
Les trois variables sont modifiables, et nous choisissons de modifier
(et donc de garder
). Les contraintes
de positivité imposent
et
.
Le meilleur mouvement est donc
, qui conduit au sommet
:
- Du point de vue de ce sommet, le système se réécrit :
Deux variables sont modifiables. Nous choisissons de modifier
(et de ne pas modifier
). Vu les contraintes de
positivité, cette modification doit vérifier
et
. Le meilleur mouvement possible est
donc
, qui conduit au sommet :
- Du point de vue de ce sommet, le système se réécrit :
correction d'une erreur : ce n'est pas
mais

La seule variable modifiables est
. Les contraintes de
positivité imposent
et
.
Le meilleur mouvement possible est donc
, qui conduit
au sommet :
- Du point de vue de ce sommet, le système se réécrit :
La seule variable modifiable est
, avec pour contraintes
et
.
Le meilleur mouvement est donc
, conduisant au sommet :
- Du point de vue de ce sommet, le système se réécrit :
Il ne reste plus de variables modifiables, provoquant l'arrêt de
l'algorithme. La décision proposée est donc
qui vérifie toutes les contraintes et conduit à un bénéfice prévisionnel
de
.
- exo 8. Reprendre les calculs en commençant par modifier
au point 1 ci-dessus
- Si l'origine n'est pas un point acceptable, un travail supplémentaire
doit être effectué. Il faut ou bien trouver un sommet acceptable,
ou bien démontrer qu'il n'en existe pas. Dans le premier cas, on pourra
partir de ce sommet et appliquer l'algorithme décrit ci-dessus. Dans
le deuxième cas, il faut évidemment obtenir une démonstration de non
existence, et pas seulement un constat d'échec.
- Méthode des variables auxiliaires. En plus des variables naturelles
du problème, on introduit autant de variables
que d'inégalités (comme ci-dessus), puis autant de variables
que de relations non satisfaites par l'origine (contraintes égalité
ou minoration). Ainsi
devient
(contrainte majoration)
devient
(contrainte égalité)
devient
(contrainte majoration)
- Un sommet acceptable du problème initial est caractérisé par
,
et nous sommes dans une situation où l'origine ne vérifie pas cette
condition
- Nous nous posons alors un nouveau problème, dont
- les variables principales sont les
et les
issues d'une contrainte minoration.
- les équations linéarisées sont celles du problème initial
- la fonction de bénéfice est
- La nouvelle origine (la dimension ayant augmenté, ce n'est plus le
même espace) est un point acceptable pour le nouveau problème.
- Si l'on arrive à
, nous aurons montré que le problème
initial est insoluble (contraintes contradictoires).
- Si l'on arrive à
, nous aurons nécessairement
puisque ces variables sont positives. Et alors les variables
et
sont caractéristiques d'un sommet acceptable du problème
initial.
Une optimisation évidente de cet algorithme consiste à confier le
soin des additions et multiplications à un ordinateur. On sera néanmoins
attentif à ne pas sous-traiter la réflexion, qui constitue le coeur
du métier d'ingénieur.
Le premier programme mk_simplex (ALG. 1)
a pour objectif de créér toutes les variables auxiliaires nécessaires
de façon à transformer les inéquations en équations et les contraintes
non satisfaites par l'origine du problème initial en contraintes satisfaites
par l'origine d'un problème de plus grande taille. Pour des raisons
de commodité, les trois sortes de variables s'appellent toutes
,
l'indice variant de
à
pour les variables naturelles,
de
à
pour les variables "
"
et de
à la fin pour les variable"s
".
En sortie,
contient les équations réécrites,
est l'ensemble de toutes les variables,
est l'ensemble
des variables "
" et
est la liste
des coordonnées dont l'égalité à
caractérise le point où
l'on se trouve.
Le programme pt_vue (ALG. 2) est un programme
"cosmétique" destiné à réécrire l'ensemble des équations
du point de vue du sommet où l'on se trouve. L'écriture effective
de ce programme est tout à fait simple (on utilise
pour
résoudre), mais est loin d'être optimale. En effet, une étape est
caractérisée par l'échange de rôles entre une variable "actuellement
principale" et une variable "actuellement auxiliaire"
: une résolution de proche en proche serait plus rapide.
Le programme avance (ALG. 3) exécute le
déplacement consistant en l'échange des rôles entre la variable principale
, choisie par l'utilisateur, et la variable auxiliaire exerçant
la contrainte la plus forte. Le cas exceptionnel où l'on trouve un
mouvement
ne se produit qu'en présence de contraintes
redondantes.
Enfin, le programme randavance (ALG. 4)
détermine quels sont les pivots possibles (variables ayant une influence
positive sur la fonction de bénéfice) et en choisit un aléatoirement.
- Considérons le problème
- La procédure mk_simplex permet de le réécrire en :
Les variables
sont les variables de contrôle
des faces et les variables
ont été introduites
pour tenir compte du non respect des contraintes par le point
.
Le problème comportant le même nombre d'équations qu'avant, le nombre
de variables principales augmente de
, et l'on part du point
.
- On choisit la variable
comme pivot, et on obtient :
- La variable
s'impose comme pivot, et on obtient :
- Puis,
étant pris comme pivot :
Le fait remarquable n'est pas que
(cette égalité
à lieu depuis le début, puisque c'est la définition de
!)
mais que ces deux variables (qui expriment la violation des contraintes)
soient enfin nulles.
- Ainsi, nous venons d'atteindre un sommet admissible pour le problème
initial, à savoir
. Nous pouvons donc nous débarrasser
des variables "
" (i.e.
et
)
et revenir au problème initial, qui s'écrit désormais :
et se résout par la méthode usuelle.
- On trouve, en une étape,
La décision à recommander est donc
et
,
pour un bénéfice escompté de
.
- Reprenons le système du paragraphe précédent, à savoir :
- Si nous choisissons maintenant
comme pivot, au lieu de
, nous obtenons :
Une fois arrivé là, il n'est plus possible de bouger. En effet, la
variable
est la seule à influer positivement sur la fonction
de bénéfice, et d'autre part
avec
et
,
impose
.
- L'équation
exprime que
l'information véhiculée par la contrainte
est une
simple conséquence des contraintes
et
.
On peut donc se ramener à un système avec une inconnue de moins et
une contrainte de moins par la substitution
,
. Il vient :
exo 9. Résoudre le système ci-dessus. Vérifier qu'il conduit
au résultat déja obtenu.
exo 10. Représentation et résolution graphiques de ce système
Previous: 1 Qu'est-ce qu'un programme
Up: Recherche Opérationnelle
Next: 3 Quelques mots sur
  Contents
douillet@ensait.fr
2003-01-19