Make or buy problem

Les modèles LP peuvent être formulés pour résoudre les problèmes du nombre d'unités qu'un fabricant doit produire et du nombre d'unités à acheter auprès du fournisseur.

Dans de tels cas, LP joue un rôle constructif dans la résolution des problèmes de sélection des fournisseurs et du nombre d'unités à commander auprès de quel fournisseur. Une telle formulation de modèle est illustrée dans l'exemple suivant.

L'entreprise de fabrication de machines d'emballage produit deux pièces (P1 et P2) utilisées dans l'assemblage de sa ligne de machines d'emballage de savon. La demande hebdomadaire de P1 était estimée à 10 000 unités, alors que celle de P2 était de 8 000 unités. 

La capacité de cette ligne à produire ces deux pièces sur une base hebdomadaire était de 5 000 et 4 500 unités, respectivement, à un coût de 1,5 $ et 1,6 $ l'unité. 

Pour répondre à la demande non satisfaite, l'entreprise a décidé d'acheter certaines unités des deux pièces auprès de trois fournisseurs (S1, S2 et S3). 

Ainsi, la demande pour chaque pièce est satisfaite par la fabrication en interne et l'achat auprès de sources extérieures. S1 peut fournir un maximum de 3 000 unités de P1 et 2 200 unités de P2 à un coût de 1,7 $ et 1,9 $. La capacité de production de S2 permet de fabriquer un maximum de 2 000 unités de P1 et 1 500 unités de P2 à un coût de 1,8 $ et 1,2 $, respectivement. S3 fabrique et fournit un maximum de 3 500 unités de P1 au coût de 1,4 $ l'unité et un maximum de 1 700 unités de P2 au coût de 1,8 $ l'unité.

L'entreprise, pour répondre à ses exigences, commande des pièces auprès des quatre sources, c'est-à-dire son usine de fabrication interne et trois fournisseurs. Formuler un modèle LP pour estimer : le nombre total d'unités de P1 et P2 fabriquées et achetées auprès de trois fournisseurs ; coût minimum total, et enfin la partie qui encourrait le moins de coût en suivant cette stratégie.

Cela nous a conduit à définir les variables de décision suivantes :

  • x11 = Nombre d'unités de la pièce P1 produites par le fabricant.
  • x12 = Nombre d'unités de la pièce P1 produites par le fournisseur S1,
  • x13 = Nombre d'unités de la pièce P1 produites par le fournisseur S2,
  • x14 =Nombre d'unités de la pièce P1 produites par le fournisseur S3,

Modèle Mathématique

Objective function
Minimize Z
\begin{equation} \begin{aligned} Z = 1.5 x_{11} + 1.7 x_{12} + 1.8 x_{13} + 1.4 x_{14} \end{aligned} \end{equation}
Contraintes:
contrainte1:

Demande de 10000.

\begin{equation} x_{11} + x_{12} + x_{13} + x_{14} = 10000 \end{equation}
contrainte2:

Capacité de fabricant.

\begin{equation} x_{11} \leq 5000 \end{equation}
contrainte3:

Capacité du fournisseur S1.

\begin{equation} x_{12} \leq 3000 \end{equation}
contrainte4:

Capacité du fournisseur S2.

\begin{equation} x_{13} \leq 2000 \end{equation}
contrainte5:

Capacité du fournisseur S3.

\begin{equation} x_{14} \leq 3500 \end{equation}

Résultat avec solveur Excel

Télécharger le fichier Excel: click ici

Code Cplex avec language OPL

//Déclaration des constantes
int a11 = 5 ;
int a12 = 6;
int a13 = 9;
int a14 = 9;


//Déclaration des variables de décisions
dvar int+ x11;
dvar int+ x12;
dvar int+ x13;
dvar int+ x14;

//Fonction Objective
maximize a11*x11+a12*x12+a13*x13+a14*x14;

//Contraintes
subject to{

  x11+x12+x13+x14==10000;
  x11<=5000;
  x12<=3000;
  x13<=2000;
  x14<=3500;
}
//Affichages
execute {

write("x11: "+x11+"\n");
write("x12: "+x12+"\n");
write("x13: "+x13+"\n");
write("x14: "+x14+"\n");


}
 

Vidéo Cplex