TP-recherche-operationnelle/docs/rapport.md
2021-11-23 20:22:30 +01:00

132 lines
5.4 KiB
Markdown
Executable file
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Rapport de TP de Recherche Opérationnelles
<u>Instructions:</u>
- 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.)
## Exercice 1 : Des voitures
```bash
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.
- On obtient comme solution: `nS` = 645 et `nL` = 426. Ce resultat est cohérent.
## Exercice 2 : Gestion de personnel
```bash
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)
- 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
```bash
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 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
```bash
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 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
```bash
glpsol -m exobonus/bonus.mod -d exobonus/bonus.dat -o exobonus/bonus.sol
```
marche pas mais on a cherché `;(`