TP-recherche-operationnelle/README.md
2021-11-23 21:09:30 +01:00

6.2 KiB
Executable file
Raw Blame History

Rapport de TP de Recherche Opérationnelles

Instructions:

  • Ce qui à motivé votre choix de format (lp ou mod/dat) de la modélisation
  • Quelques détails sur les points clés et non triviaux de votre modélisation (ce que représentent vos variables de décisions, une contrainte élaborée...)
  • Une courte argumentation de ladéquation du résultat avec linstance résolue (la solution obtenue fait-elle sens dans le contexte défini par lénoncé ?)
  • Quelques éléments danalyse, par exemple :
    • Pour PL : Les matrices de ces exemples sont-elles creuses ? (Dans la pratique, il est fréquent quune contrainte ne rassemble que de 5 à 10 variables.)
    • Pour PLNE : En combien ditérations est trouvée la solution optimale continue ? Combien de fois GLPK a amélioré la meilleure solution entière ? Combien ditérations du simplexe ont été nécessaires ? Combien de nœuds de larbre ont été explorés ?

Exercice 1 : Des voitures

glpsol --lp exo1/voitures.lp -o exo1/voitures.sol
  • Nous avons choisi d'utiliser un .lp pour résoudre ce problème puisque celui-ci est simple et ses données ne changent pas.
  • Voici comment nous avons choisi de modéliser le problème:
    • nS `\in \N` modélise le nombre de voiture Standard produit par semaine.
    • nL `\in \N` modélise le nombre de voiture de Luxe produit par semaine.
    • On cherche à maximiser Benefice.
    • CapaciteParking modélise la surface maximale du parking.
    • TempsTravail modélise le temps de travail maximal de employés.
    • LimiteLuxe limite le nombre de voiture de Luxe produisable.
  • 3 itérations sont nécéssaires pour résoudre le problème du simplex. 4 itérations sont nécéssaires pour trouver la meilleure solution entière. 3 noeuds de l'arbre ont été explorés.
  • On obtient comme solution: nS = 645 et nL = 426. Ce resultat est cohérent.

Exercice 2 : Gestion de personnel

glpsol -m exo2/personnel.mod -d exo2/personnel.dat -o exo2/personnel.sol
  • Nous avons choisi de modéliser ce problème en utilisant un .mod et un .dat puisque l'input de matrices de se fait plus simplement dans un .dat. De plus, il est dépendant de N donc il est suceptible d'évoluer doncs seul le fichier .dat sera à modifier car le fichier .mod est plus général.
  • Voici comment nous avons choisi de modéliser le problème:
    • $($perm`)_{i,j} \in M_2(\{0,1\})` modélise l'association d'un travail à une personne.
    • perm modélise les association qui doivent être uniques ; donc c'est une matrice de permutation. (ie. chaque ligne et chaque colonne ne doit contenir un seul 1)
  • 10 itérations sont nécéssaires pour résoudre le problème du simplex. 10 itérations sont nécéssaires pour trouver la meilleure solution entière. 1 noeud de l'arbre à été exploré.
  • Pour les données que l'on a fournis, on obtient la solution : $\left( \begin{array}{cccc} 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \end{array} \right)$

Cette solution est bien la meilleur solution car chaque personne est associé au travail ou il est le plus efficace en vu des paramètres que nous avions posés.

Exercice 3 : En bourse

glpsol --lp exo3/bourse.lp -o exo3/bourse.sol
  • Nous avons choisi d'utiliser un .lp pour résoudre ce problème puisque celui-ci est simple et ses données ne changent pas.
  • Voici comment nous avons choisi de modéliser le problème:
    • p1 modélise le produit financier n°1: Crédits commerciaux
    • p2 modélise le produit financier n°2: Obligations de sociétés
    • p3 modélise le produit financier n°3: Stocks d'Or
    • p4 modélise le produit financier n°4: Stocks de Platine
    • p5 modélise le produit financier n°5: Titres hypotécaires
    • p6 modélise le produit financier n°6: Prếts de construction
    • On cherche à maximiser Interets.
    • SommeP contraint d'investir l'ensemble du budget.
    • InvestissementProduit_i limite l'investissement dans un même produit à 25%.
    • Risque limite le risque global de l'investisement à 2,0.
    • MetauxPrecieuxMin contraint d'investir au moins 30% dans les métaux précieux.
    • CreditsMin contraint d'investir au moins 45% dans les crédits commerciaux et obligations.
  • On note 10 rows, 6 columns, 22 non-zeros, la matrice de résolution est creuse et remplie à 36%.
  • On obtient comme solution:
    • p1 = 0.2
    • p2 = 0.25
    • p3 = 0.107692
    • p4 = 0.192308
    • p5 = 0.25
    • p6 = 0

Exercice 4 : En optimisation pour l'e-commerce

glpsol -m exo4/ecommerce.mod -d exo4/ecommerce.dat -o exo4/ecommerce.sol
  • Nous avons choisi de modéliser ce problème en utilisant un .mod et un .dat puisque l'input de matrices de se fait plus simplement dans un .dat. De plus, il est dépendant de N donc il est suceptible d'évoluer doncs seul le fichier .dat sera à modifier car le fichier .mod est plus général.
  • Voici comment nous avons choisi de modéliser le problème:
    • $($coef`)_{i,j,k} \in M_3(\R_+)` modélise l'association d'un trvail à une personne.
    • Chaque coefficient de coef doit être compris entre 0 et 1 puisque ce sont des proportions.
    • La somme des coefficients de coef selon l'axe k doit faire 1.
    • La répartions des commandes ne doit pas dépasser la limite des stocks.
  • On note 23 rows, 12 columns, 45 non-zero, la matrice de résolution est creuse et remplie à 16%.
  • On obtient la solution : (C'est la répartition de chaque fluides de chaque commande sur chaque magasin) $\left( \begin{array}{c} \left( \begin{array}{c} 3/4 \\ 1/4 \\ 0 \end{array} \right) & \left( \begin{array}{c} 1 \\ 0 \\ 0 \end{array} \right) \\ \left( \begin{array}{c} 1 \\ 0 \\ 0 \end{array} \right) & \left( \begin{array}{c} 1/3 \\ 1/3 \\ 1/3 \end{array} \right) \end{array} \right)$

Cette solution est bien la meilleur solution car chaque personne est associé au travail ou il est le plus efficace en vu des paramètres que nous avions posés.

Exercice bonus : Des composants

glpsol -m exobonus/bonus.mod -d exobonus/bonus.dat -o exobonus/bonus.sol

marche pas mais on a cherché ;(