Je veux résoudre ce problème sur OPL IBM ILOG CPLEX Optimisation Studio
On a m = 3 Entrepôts, n = 12 Clients et v = 6 Véhicules
Chaque Client ou Entrepôt passe une commande, Chaque commande est caractérisée par un poids, Un volume et un montant
Chaque véhicule est caractérisé par :
-
Une capacité volumique maximale.
-
Une capacité maximale du poids.
-
Un montant minimal pour qu’il puisse démarrer.
-
Un cout fixe pour chaque utilisation.
-
Un cout de distance (Pour chaque unité du distance).
Dat :
Dans le fichier Dat on a :
PO : Une liste linéaire qui contient le poids de la commande pour chaque Entrepôt ou Client.
VO : Une liste linéaire qui contient le volume de la commande pour chaque Entrepôt ou Client.
M : Une liste linéaire qui contient le montant de la commande pour chaque Entrepôt ou Client.
CPV : Une liste linéaire qui contient la capacité maximale du poids pour chaque véhicule.
CVV : Une liste linéaire qui contient la capacité volumique maximale pour chaque véhicule.
MO : Une liste linéaire qui contient le montant minimal pour chaque véhicule (pour qu’il puisse démarrer).
Cf : Une liste linéaire qui contient le cout fixe pour chaque véhicule.
Cv : Une liste linéaire qui contient le cout de distance pour chaque véhicule (par unité du distance).
D : la matrice des distances entre tous les entrepôts et les clients .
Objective :
L’objective du programme : est de minimiser le cout totale ( la somme des couts liés a l’utilisation des véhicules) ou :
Le cout total pour chaque véhicule et la somme de son cout fixe et de son cout distanciel multiplié par la distance qu’il a parcouru parcouru.
Ct[j] = Cf[j] + Cv[j]*dist[j]
Contraintes :
-
Tous les Entrepôts et les Clients ayant une commande de Poids non nul et Volume non nul et montant non nul, doivent être servi.
-
Chaque Entrepôt ou client ayant une commande (d’un poids nul ou d’un volume nul ou d’un montant nul) ne sera pas servi
-
Chaque véhicule utilisé doit avoir un seul parcours séquentiel qui commence obligatoirement par l’un des entrepôts et qui fini obligatoirement par cet même entrepôt.
-
Pour qu’un véhicule puisse démarrer il faut que :
<code> - la somme des poids des commandes qui lui sont affectés ne dépasse pas sa capacité maximale du poids- la somme des volumes des commandes qui lui sont affectés ne dépasse pas sa capacité volumique maximale- La somme des montants des commandes qui lui sont affectées ne soit pas inférieure a son montant minimal ( MO[j] )</code><code> - la somme des poids des commandes qui lui sont affectés ne dépasse pas sa capacité maximale du poids - la somme des volumes des commandes qui lui sont affectés ne dépasse pas sa capacité volumique maximale - La somme des montants des commandes qui lui sont affectées ne soit pas inférieure a son montant minimal ( MO[j] ) </code>- la somme des poids des commandes qui lui sont affectés ne dépasse pas sa capacité maximale du poids - la somme des volumes des commandes qui lui sont affectés ne dépasse pas sa capacité volumique maximale - La somme des montants des commandes qui lui sont affectées ne soit pas inférieure a son montant minimal ( MO[j] )
-
Les sous tours doivent être éliminés
-
Chaque client servi n’est visité qu’une seule fois par un seul véhicule
-
Si un entrepôts effectue une commande (d’un poids non nul et d’un volume non nul et d’un montant non nul) il ne peut pas être servi par lui même, il doit être servi par l’un des autres entrepôts ( comme tout autre client )
Affichage :
Le mod doit être clôturé par un script d’affichage qui affiche :
-
La valeure du cout total
-
le parcours séquentiel de chaque véhicule utilisé.
J’ai essayé de l’implémenter sur OPL IBM ILOG CPLEX Optimisation Studio.
user24447424 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.