132 lines
5.4 KiB
Markdown
132 lines
5.4 KiB
Markdown
|
# 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 l’adéquation du résultat avec l’instance résolue (la solution obtenue fait-elle sens dans le contexte défini par l’énoncé ?)
|
|||
|
- Quelques éléments d’analyse, par exemple :
|
|||
|
- Pour PL : Les matrices de ces exemples sont-elles creuses ? (Dans la pratique, il est fréquent qu’une 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é `;(`
|