Le problème de transport est un problème d'optimisation linéaire qui
consiste à déterminer le transport optimal de produits depuis
plusieurs sources vers plusieurs destinations, en minimisant les coûts de transport. cette méthode consiste à sélectionner à chaque étape la case de coût minimum dans une matrice de coûts, et à y allouer la quantité minimale entre l'offre et la demande.
Le code commence par importer la bibliothèque NumPy pour
effectuer des calculs matriciels. Ensuite, la fonction "least_cost_method" est définie pour résoudre le problème de transport. Elle prend en entrée les vecteurs d'offre et de demande, ainsi qu'une matrice de coûts. Elle retourne une matrice d'allocation qui contient la quantité à allouer de chaque source à chaque destination.
La fonction utilise une boucle "while" pour continuer l'allocation tant
qu'il y a des offres ou des demandes non satisfaites. Elle trouve la case de coût minimum dans la matrice de coûts à l'aide de la fonction "np.min" et la fonction "np.where". Elle alloue ensuite la quantité minimale entre l'offre et la demande à cette case, met à jour les offres et les demandes soustrayant, et remplace les cases remplies par 0 dans la matrice de coûts.
Ensuite, le code définit un exemple d'utilisation de la fonction
"least_cost_method" en définissant les vecteurs d'offre et de demande ainsi qu'une matrice de coûts. La fonction est appelée avec ces entrées, et la matrice d'allocation résultante est imprimée.
Enfin, le code calcule le coût total de l'allocation en multipliant la
matrice d'allocation par la matrice de coûts d'origine. Les indices des cases allouées sont stockés dans une liste "indices" pour une utilisation ultérieure. Le coût total est imprimé, ainsi que les indices des cases allouées et leur correspondance avec les usines et les chantiers.