|
SERRET Aurelie SHU Antoine TAO Xuyuan |
E3-2006/07 Recherche Opérationnelle |
|
|---|
La Société DEVCOT est une société de négoce de coton, qui prend en charge l'acheminement du coton brut (matière première) des fournisseurs vers ses clients (les filateurs). Cette entreprise a été créée en 1931 par Maurice DEVILDER et est aujourd'hui une société anonyme de type familiale.

Devcot S.A. a des partenaires d'affaires aux quatre coins du monde. La France n'étant pas productrice de coton, Devcot s'approvisionne dans des pays dont le climat est favorable à la culture du coton, tels que : l'Argentine, le Bénin, le Brésil, le Burkina Faso, le Cameroun, la Chine, la Côte d'Ivoire, l'Egypte, l'Espagne, les Etats-Unis, la Grèce, l'Inde, l'Israël, le Kazakhstan, l'Ile de Madagascar, le Mali, le Nigeria, le Pakistan, le Paraguay, le Pérou, la Syrie, le Tadjikistan, la Tanzanie, le Togo, le Turkménistan, la Turquie, l'Ouzbékistan et le Zimbabwe. Elle travaille dans le monde entier ce qui implique que sa marchandise est soumise à de nombreuses contraintes de coûts tout d'abord mais aussi de transports. Actuellement afin de pallier à toutes ces contraintes elle utilise son expérience acquise depuis des années.
L'entreprise Devcot est soumise à de nombreuses contraintes logistiques:
L'objectif de notre projet est d'arriver à réunir les différentes contraintes de l'entreprise et de les exprimer sous la forme d'un algorithme. Tout ceci dans le but de trouver une meilleure solution de transport. Le but ultime étant d'augmenter les bénéfices de l'entreprise à long terme alors que les contraintes sont à court terme.Cela, en mettant en oeuvre notre algorithme qui permet de trouver les frais minimum et qui dans le même temps permet d'afficher le nom de la compagnie maritime, le nom du transitaire ainsi que le cas échéant le nom du transporteur routier.
Les différentes fonctions se déclinent comme suit :
LeFraisM = FraisMaritime(port1, port2, nomM)LeFraisT,nomT = FraisTransitaire(port)LeFraisR =FraisRoutier (Lieu1, Lieu2, [Lieu3], nomR)lieuT=Depot(client, nomM)newCYM,newFraisM,newFraisR =FraisCarrier(portO, newPortD)Les différentes variables utilisées se déclinent comme suit :
client : le lieu où se situe le client
portO : le port d'origine
portD : le port de destination
newPortD : le nouveau port de destination
lieuT : le lieu terminal
newlieuT : le nouveau lieu terminal
Frais : la totalité des frais
newFrais : la totalité des nouveaux frais
FraisM : les frais maritimes
newFraisM : les nouveaux frais maritimes
CYM : la compagnie maritime
newCYM : la nouvelle compagnie maritime
nCYM : le nombre de compagnies maritimes
FraisT : les frais transitaires
newFraisT : les nouveaux frais transitaires
CYT : la compagnie transitaire
newCYT : la nouvelle compagnie transitaire
nCYT : le nombre de compagnies transitaires
FraisR : les frais routiers
newFraisR : les nouveaus frais routiers
CYR : la compagnie de transport routier
newCYR : la nouvelle compagnie de transport routier
nCYR : le nombre de compagnies de transports routiers
nPortD : nombre de ports de destination
nLieuT : nombre de lieux terminaux
Maxm: valeur très grande, supérieure à la totalité des frais
NAN: valeur nulle

Le pseudo code à été écrit en fonction du schéma de l'algorithme ci-dessus.
//Début
//Initialisation des variables
portO=portD=newPortD=NAN
lieuT=newlieuT=NAN
client=NAN
CYM=CYT=CYR=NAN
newCYM=newCYT=newCYR=newCYR=NAN
Frais=FraisM=FraisT=FraisR=Maxm
newFrais=newFraisM=newFraisT=newFraisR=Maxm
nLieuT=nPortD=nCYM=nCYT=nCYR=0
//Saisir le client, le port d'origine et le nombre de port de destination
client
portO
nPortD
// Si le client ne peut pas accepter le container directement, aller à l'étape 4
// Etape 1
DO (nPortD) // faire l'itération pour tous les ports de destination
newPortD // choisir un nouveau port de destination
newFrais=0
Si la compagnie maritime travaille sous la façon « Merchant », aller à l'étape 2. Sinon, aller à l'étape 3.
// Etape 2 : Si la compagnie maritime travaille sous la façon « Merchant »
newCYM,newFraisM = FraisMaritime (portO, newPortD)
// trouver la compagnie maritime qui offre le fret le plus bas en fonction du port de destination
newFraisT,newCYT = FraisTransitaire (newPortD)
// trouver les frais de transits et la compagnie de transit en fonction du port de destination
DO (nLieuT) // faire l'itération pour tous les lieux terminaux
newlieuT= Depot (client, newCYM)
// choisir un dépôt proche du client en fonction de la compagnie maritime
DO (nCYR) // faire l'itération pour toutes les compagnies de transport routier
newCYR, newFraisR = FraisRoutier (newPortD, client, newlieuT)
// trouver la compagnie de transport routier qui offre les frais les plus bas
en fonction du port de destination et du lieu terminal
newFrais=newFraisM+newFraisT+newFraisR
IF (newFrais < Frais) THEN
Frais=newFrais // mise à jour des données
PortD=newPortD // mise à jour des données
CYM=newCYM // mise à jour des données
CYT=newCYT // mise à jour des données
CYR=newCYR // mise à jour des données
lieuT=newlieuT // mise à jour des données
FraisM=newFraisM // mise à jour des données
FraisT=newFraisT // mise à jour des données
FraisR=newFraisR // mise à jour des données
ENDIF
END DO
END DO
END DO
Aller à l'étape 4
// Etape 3 : la compagnie maritime travaille sous la façon « Carrier »
newCYM, newFraisM, newFraisR = FraisCarrier (portO, newPortD)
// trouver le fret maritime, le transport routier et la compagnie
maritime qui offre les frais les plus bas en fonction du port de destination
newFraisT, newCYT = FraisTransitaire (newPortD)
// trouver les frais de transits et la compagnie de transit en fonction du port de destination
newFrais=newFraisM+newFraisT+newFraisR
newCYR=newCYM
IF (newFrais < Frais) THEN
Frais=newFrais // mise à jour des données
PortD=newPortD // mise à jour des données
CYM=newCYM // mise à jour des données
CYT=newCYT // mise à jour des données
CYR=newCYR // mise à jour des données
lieuT=newlieuT // mise à jour des données
FraisM=newFraisM // mise à jour des données
FraisT=newFraisT // mise à jour des données
FraisR=newFraisR // mise à jour des données
ENDIF
END DO
Aller à l'étape 4
// Etape 4
DO (nPortD) // faire l'itération pour tous les ports de destination
newPortD// choisir un nouveau port de destination
newFrais=0
newCYM,newFraisM = FraisMaritime (portO, newPortD)
// trouver la compagnie maritime qui offre les frais les plus bas en fonction du port de destination
newFraisT, newCYT = FraisTransitaire (newPortD)
// trouver les frais de transits et la compagnie de transit en fonction du port de destination
DO (nCYR)// faire l'itération pour toutes les compagnies de transports routiers
newCYR, newFraisR = FraisRoutier (newPortD, client)
// trouver la compagnie de transport routier qui offre les frais les plus bas
en fonction du port de destination et du lieu terminal
newFrais=newFraisM+newFraisT+newFraisR
IF (newFrais < Frais) THEN
Frais=newFrais // mise à jour des données
PortD=newPortD // mise à jour des données
CYM=newCYM // mise à jour des données
CYT=newCYT // mise à jour des données
CYR=newCYR // mise à jour des données
FraisM=newFraisM // mise à jour des données
FraisT=newFraisT // mise à jour des données
FraisR=newFraisR // mise à jour des données
ENDIF
END DO
END DO
Afficher le résultat
//FIN

Cet exemple illustre comment s'effectue le choix de l'itinéraire et des compagnies de transport (maritime et du transporteur). On suppose que la marchandise doit partir d'ABIDJAN et arriver chez le client situé à NOVA PARKA. Dans la base de données il n'y a que deux choix de port: Les compagnies maritimes en partance d'ABIDJAN proposent 2 ports de destination : soit le port de DUNKERQUE, soit le port de HAMBOURG. Le tableau suivant donne la liste des compagnies maritimes avec leurs tarifs selon le port de destination
| DEPART | ABIDJAN | ABIDJAN |
| DESTINATION | Hambourg | Dunkerque |
| COMPAGNIE MARITIME 1 | 1 881,60 USD | non desservi |
| COMPAGNIE MARITIME 2 | 2 209,60 USD | 2 209,60 USD |
| COMPAGNIE MARITIME 3 | 2 097,60 USD | non desservi |
| COMPAGNIE MARITIME 4 | 2 528,00 USD | 1 630,40 USD |
| COMPAGNIE MARITIME 5 | 1 675,20 USD | 1 675,20 USD |
| COMPAGNIE MARITIME 6 | 1 864,00 USD | 1 811,20 USD |
Les compagnies maritimes travaillent selon deux modes :
Quelque soit le mode utilisé, des frais de réception (THC et douane) sont à inclure dans le coût total de transport. S'il y a rupture de charge, les frais sont plus importants car il faut dépoter le conteneur pour charger la marchandise dans un camion. Dans le cas où tout s'effectue par conteneur, les frais de transit se traduisent de la façon suivante:
Si on passe par un transporteur routier il y a alors des frais supplémentaires qui s'ajoutent:
Le tableau suivant présente les tarifs de transit en fonction du lieu et de la compagnie:
| lieu | compagnie | tarif |
|---|---|---|
| DUNKERQUE | TRANSIT 1 | 862,40 USD |
| DUNKERQUE | TRANSIT 2 | 1574,4 USD |
| HAMBOURG | TRANSIT 3 | 457,60 USD |
| De : Hambourg à : Nova parka | ||
|---|---|---|
| Compagnie routière | coût fret | matériel |
| COMPAGNIE MARITIME 1 | 1 568,00 Euros | container |
| COMPAGNIE MARITIME 2 | 2 660,80 Euros | container |
| COMPAGNIE MARITIME 3 | 2 294,40 Euros | container |
| De : Dunkerque à : Nova parka | ||
|---|---|---|
| Compagnie routière | coût fret | matériel |
| TRANSPORT ROUTIER 1 | 1 392,00 Euros | Semi-Remorque |
| TRANSPORT ROUTIER 2 | 1 584,00 Euros | Semi-Remorque |
| TRANSPORT ROUTIER 3 | 1 664,00 Euros | Semi-Remorque |
| TRANSPORT ROUTIER 4 | 1 648,00 Euros | Semi-Remorque |
Notre exemple permet d'illustrer l'algorithme décrit plus haut [Schéma de l'algorithme]. Aussi, nous faisons les suppositions suivantes:
On note C comme étant le prix de la devise européenne en dollars américain (USD). Le taux C est approximativement de 1,32 USD/Euro
La première action dans l'algorithme est le choix du port. Dans la base de données il n'y a que 2 ports d'arrivée pour les bateaux en partance d'ABIDJAN: soit DUNKERQUE soit HAMBOURG
Aussi l'exemple est découpé en deux parties, l'une concernant le port de DUNKERQUE et l'autre concernant le port d'HAMBOURG.
| Sélection possible | Les prix | |
|---|---|---|
| compagnie maritime | COMPAGNIE MARITIME 2 | 1 630,40 USD |
| compagnie de transit | TRANSIT 1 | 2 209,60 USD |
| transporteur routier | TRANSPORT ROUTIER 1 | 1 392,00 Euros |
| sélection possible | Les prix | |
| compagnie maritime | COMPAGNIE MARITIME 4 | 1 630,40 USD |
| compagnie de transit | TRANSIT 1 | 862,40 USD |
| transporteur routier | TRANSPORT ROUTIER 1 | 1 392,00 Euros |
| sélection possible | Les prix | |
| compagnie maritime | COMPAGNIE MARITIME 5 | 1 675,20 USD |
| compagnie de transit | TRANSIT 1 | 862,40 USD |
| transporteur routier | TRANSPORT ROUTIER 1 | 1 392,00 Euros |
| sélection possible | Les prix | |
| compagnie maritime | COMPAGNIE MARITIME 6 | 1 811,20 USD |
| compagnie de transit | TRANSIT 1 | 862,40 USD |
| transporteur routier | TRANSPORT ROUTIER 1 | 1 392,00 Euros |
Les valeurs du tableau se trouvent dans les tableaux de la section III.1.
Le tableau ne montre pas une liste exhaustive des possibilités, en effet il a été fait l'hypothèse que sur le port de DUNKERQUE, l'ensemble des compagnies maritimes acceptent les deux modes carrier et merchant. Or nous n'avons listé que les compagnies maritimes avec la compagnie de transit et le transporteur routier les moins chers. Par ailleurs, nous n'avons pas les données des transporteurs allant de DUNKERQUE à NOVA PARKA, donc nous ne pouvons pas lister les coûts de transport dans les cas du mode merchant ou camion, ce qui par rapport à l'algorithme revient à suivre les étapes 1, 2 et 4. Avec ces données, on fait le calcul du coût total de chacune des possibilités de transport, et en comparant ces valeurs on trouve alors la sélection la moins coûteuse.
En notant CT le coût total on a alors : CT=1 392*C+(862,4+ 1 630,4) Pour C=1,32USD/Euro, le coût total est de 4330,24 USD
Après avoir déterminé le coût total de transport avec les 4 compagnies maritimes. Il a été déterminé que le cheminement le plus économique est le suivant:
| NOM | Les prix | |
|---|---|---|
| port de départ | ABIDJAN | |
| port d'arrivée | DUNKERQUE | |
| Ville d'arrivée | NOVA PARKA | |
| compagnie maritime | COMPAGNIE MARITIME 4 | 1 630,40 USD |
| compagnie de transit | TRANSIT 1 | 862,40 USD |
| transporteur routier | TRANSPORT ROUTIER 1 | 1 392,00 Euros |
| sélection possible | Les prix | |
|---|---|---|
| compagnie maritime | COMPAGNIE MARITIME 1 | 1 881,60 USD |
| compagnie de transit | TRANSIT 3 | 457,60 USD |
| transporteur routier | COMPAGNIE MARITIME 1 | 1 568,00 Euros |
| sélection possible | Les prix | |
| compagnie maritime | COMPAGNIE MARITIME 2 | 2 209,60 USD |
| compagnie de transit | TRANSIT 3 | 457,60 USD |
| transporteur routier | COMPAGNIE MARITIME 2 | 2 660,80 Euros |
| sélection possible | Les prix | |
| compagnie maritime | COMPAGNIE MARITIME 3 | 2 294,40 USD |
| compagnie de transit | TRANSIT 3 | 457,60 USD |
| transporteur routier | COMPAGNIE MARITIME 3 | 1 568 Euros |
Les valeurs du tableau se trouvent dans les tableaux de la section III.1.
Nous avons uniquement les données de COMPAGNIE MARITIME 1, COMPAGNIE MARITIME 2, COMPAGNIE MARITIME 3, prenant en charge le transport de HAMBOURG à NOVA PARKA, ce qui par rapport à l'algorithme correspond aux étapes 1, 3 et 4.Après le calcul du coût total de transport, parmi ces trois compagnies maritimes, COMPAGNIE MARITIME 3 a les prix les moins élevés. L'exemple du calcul du coût total de transport pour COMPAGNIE MARITIME 1 est le suivant:1568*C+( 457,6+1 881,6)=Coût total en Dollars Pour C=1,32USD/Euro, le coût total est de 4408,96 USD
| NOM | Les prix | |
|---|---|---|
| port de départ | ABIDJAN | |
| port d'arrivée | HAMBOURG | |
| compagnie maritime | COMPAGNIE MARITIME 1 | 1 881,60 USD |
| compagnie de transit | TRANSIT 3 | 457,60 USD |
| transporteur routier | COMPAGNIE MARITIME 1 | 1 568,00 Euros |
Il est donc plus intéressant (plus économique) de passer par un transport routier que de tout faire via la compagnie maritime, le tableau suivant récapitule les choix de transport
| Le Choix | Les prix | |
|---|---|---|
| Ville d'arrivée | NOVA PARKA | |
| Ville de départ | ABIDJAN | |
| Port d'arrivée | DUNKERQUE | |
| compagnie maritime | COMPAGNIE MARITIME 4 | 1 392 USD |
| compagnie de transit | TRANSIT 1 | 862,40 USD |
| transporteur routier | TRANSPORT ROUTIER 1 | 1630,40 Euros |
La méthode de calcul utilisé permettrait à l'entreprise de pouvoir choisir ses compagnies maritimes et routières en fonction du prix de chacune d'entre elle.
Par la suite il serait aussi intéressant d'intégrer au programme les autres critères de choix de la compagnie comme la capacité de transports par exemple.
Il serait aussi intéressant pour l'entreprise grâce à ce type de méthode de connaître les ports par lesquels elle n'est jamais passés. Ainsi il pourrait apprendre à connaître de nouveaux ports et optimiser leurs transports avec une plus large gamme de choix.