Rapport - ESIEE Paris

Transcription

Rapport - ESIEE Paris
 PR-­‐3001M -­‐ Génie Industriel Lucky Dongang Alan Bragado Fernandez E3S
E3E
Projet dirigé par Mme Berraf-Belmoktar et Mr Ozturk
E S I E E -­‐ P A R I S / 2 0 1 4 -­‐ 2 0 1 5 111Shszdedfffefffffaaa Bragado Fernandez Alan E3E Dongang Lucky E3S Sommaire
I.Enoncé et objectif du problème ........................ 3 1.Enoncé .......................................................................................... 3 2.Objectif du problème ............................................................. 4 II.Démarche pour la résolution du problème ....... 5 1.Définition des mots clefs ...................................................... 5 2.Résolution du problème ....................................................... 6 III.Généralisation du modèle ............................... 9 1.Définition des mots clefs ...................................................... 9 2.Généralisation de la résolution au problème ........... 10 2 Bragado Fernandez Alan E3E Dongang Lucky E3S I. Enoncé et objectif du problème 1. Enoncé : Strasbourg Marseille Paris Nantes Toulouse Pour les ODIFs, on noteras la première lettre de la ville de départ suivie de la première lettre de la ville d’arrivée et enfin la lettre correspondant à l’option ( E pour éco et A pour affaire). Par exemple , MPE correspond au billant en partance de Marseille (M) arrivant à Paris (P) dans la classe Eco (E). De plus la capacité de l’avion est de 132 places. ODIF Départ Arrivée Option 1-­‐MPE Marseille Paris Eco 2-­‐MNE Marseille Nantes Eco 3-­‐MSE Marseille Strasbourg Eco 4-­‐MPA Marseille Paris Affaire 5-­‐MNA Marseille Nantes Affaire 6-­‐MSA Marseille Strasbourg Affaire 7-­‐TPE Toulouse Paris Eco 8-­‐TNE Toulouse Nantes Eco Marge Demande maximale 178 33 268 44 228 45 380 16 456 6 560 11 199 26 249 56 3 Bragado Fernandez Alan E3E Dongang Lucky E3S 9-­‐TSE 10-­‐TPA 11-­‐TNA 12-­‐TSA v
v
v
Toulouse Toulouse Toulouse Strasbourg Paris Nantes Strasbourg Eco 385 15 444 7 580 9 179 64 380 8 224 46 582 10 Affaire Nantes Eco 14-­‐PNA Paris Nantes Affaire 15-­‐PSE Paris Strasbourg Eco Strasbourg 39 Affaire Paris Paris 349 Affaire 13-­‐PNE 16-­‐PSA v
Toulouse Affaire La Résolution de ce problème se fait en 4 étapes : Identifier les variables de décisions du problème de la planification de l’offre tarifaire. Exprimer la fonction objectif qui permet de maximiser le revenu. Identifier les contraintes du problème. Programmer sous Matlab le modèle linéaire et résoudre l’instance de l’exemple donné. 2. Objectif du problème : le problème consiste à déterminer le nombre de billets à proposer pour chaque option possible de manière à avoir le maximum de billets vendus, dans le but de maximiser le revenu de la compagnie aérienne en proposant l’offre la plus intéressante pour ses finances, tout en étant attractif par rapport au marché. N.B : La démarche consiste à formuler le problème et non à trouver le résultat. 4 Bragado Fernandez Alan E3E Dongang Lucky E3S II.
Démarche pour la résolution du probème : 1. Définition des mots clefs : • Marge : bénéfice net que fait la compagnie en fonction de l’ODIF • ODIF : combinaison des trajets possibles en ayant pour départ Paris ou Marseille et Toulouse (avec escale forcée sur Paris) et pour arrivé Strasbourg et Nantes. • Demande maximale : (noté Dmi) : indicateur propre à chaque ODIF qui nous permet de connaître le nombre de billets vendus l‘année précédente et ainsi déterminer pour chaque ODIF par option une contrainte (ne pas dépasser cet indicateur) pour maximiser les revenus de la compagnie. • Capacité maximal de l’avion (noté Ca ) est fixé à 132. • Le nombre de place maximal en option Eco : est noté Neco. • Le nombre de place maximal en option Affaire est noté Naff. • Les variable de décisions respectives: (noté Xi) c’est le nombre billet vendu au client pour chaque ODIF i. • Marge respective : de chaque ODIF noté Mi 5 Bragado Fernandez Alan E3E Dongang Lucky E3S 2. Résolution du problème : v
v
Ils y a 16 variables de décisions Xi pour i ∈ [1,16] qui correspondent au nombre d’ODIF que propose la compagnie aérienne. La fonction objective qui permettra de de maximiser les revenus de la compagnies aérienne est donnée par l’expression suivante: fobj(X) = 𝑀𝑎𝑥(
!"
!!! 𝑀𝑖. 𝑋𝑖 ) La liste des contraintes du problème se segmente en 3 parties. v
Ø première partie : Correspond aux contraintes « implicites » au problème, où nous avons des contraintes sur la positivité de chaque variable de décision et également une contrainte sur chaque variable de décision par rapport à sa demande maximal associé. Voici leurs inéquations : • contrainte 1 : Xi > 0 pour i ∈ [1,16] • contrainte 2 : 𝑀𝑎𝑥( !"
!!! 𝑋𝑖) ≤ Dmi Ø Deuxieme partie : Correspond aux contraintes liées aux départs, en effets nous ne pouvons pas dépasser la capacité maximale de l’avion lié à chaque départ d’ODIF. Ainsi voici les équations : 6 Bragado Fernandez Alan E3E Dongang Lucky E3S • contrainte 3 : !!!! 𝑋𝑖 ≤ Ca (départ de Marseille) • contrainte 4 : !"
!!! 𝑋𝑖 ≤ Ca (départ de Toulouse) Ø Troisième partie : Correspond aux contraintes liées aux arrivées, en effets nous ne pouvons pas dépasser la capacité maximale de l’avion pour chaque arrivé. Ainsi voici les équations : • contrainte 5 : X3+ X6+X9+X12+X15+X16 ≤Ca (arrivé à Strasbourg) • contrainte 6 : X2+ X5+X8+X11+X13+X14 ≤ Ca (arrivé à Nantes) v
La programmation sous MatLab de notre modèle linéaire nous permettra d’accéder aux résultats que recherche la compagnie aérienne pour maximiser ses revenus. Voici son programme : % %------------------------------------------------------------------------%
% % Programmation LinÈaire afin de trouver le nombre de places ‡
ouvrir
% % pour chaque ODIF pour avoir une marge maximum.
% % by Lucky Dongang and Alan Bragado Fernandez
% %------------------------------------------------------------------------%
ODIF = { 'MPE', 'MNE', 'MSE', 'MPA', 'MNA', 'MSA', 'TPE', 'TNE',
'TSE', 'TPA', 'TNA', 'TSA', 'PNE', 'PNA', 'PSE', 'PSA'};
N=16; % N le nombre de variables de décision.
for d = 1:N % d allant de 1 ‡ N odif
eval([odif{d},' = ', num2str(d),';']);
% crÈer les odif en chaÓne de caractËre pour les indexer
par la suite
end
7 Bragado Fernandez Alan E3E Dongang Lucky E3S lb = zeros(size(odif));
% borne infÈrieur de chaque ODIF ‡ zÈro
ub([MPE, MNE, MSE, MPA, MNA, MSA, TPE, TNE, TSE, TPA, TNA, TSA, PNE,
PNA, PSE, PSA]) = [33,44,45,16,6,11,26,56,39,15,7,9,64,8,46,10];
%borne supÈrieure (demande maximale) de chaque ODIF
C =132;
% capacitÈ de chaque avion
A= zeros(4,N);
A(1,MPE) = 1; A(1,MSE) = 1; A(1,MNE) = 1; A(1,MPA) = 1; A(1,MSA)
1;A(1,MNA) = 1; b(1) = C; % dÈpart de Marseille
A(2,TPE) = 1; A(2,TSE) = 1; A(2,TNE) = 1; A(2,TPA) = 1; A(2,TSA)
1;A(2,TNA) = 1; b(2) = C; % dÈpart de Toulouse
A(3,MSE) = 1; A(3,TSE) = 1; A(3,MSA) = 1;A(3,TSA) = 1; A(3,PSE)
1;A(3,PSA) = 1; b(3) = C; % arrivÈe ‡ Strasbourg
A(4,MNE) = 1; A(4,TNE) = 1; A(4,MNA) = 1;A(4,TNA) = 1; A(4,PNE)
1;A(4,PNA) = 1; b(4) = C; % arrivÈe ‡ Nantes
% reprÈsente les 4 Èquations de contrainte de notre problËme.
=
=
=
=
Aeq= zeros(1,N); %Matrix for linear equality constraints
beq= zeros(1,1); %Vector for linear equality constraints
% Voici un autre moyen d'initialiser la matrice A et le vecteur B
sans
% avoir besoin d'Ègaliser nos Èquations de contraintes avec Aeq et
beq.
% A=[1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
%
0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0
%
0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 0
%
0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 1];
% B=[132;132;132;132];
f= zeros(size(odif));
f([MPE, MNE, MSE, MPA, MNA, MSA, TPE, TNE, TSE, TPA, TNA, TSA, PNE,
PNA, PSE,
PSA])=[178,268,228,380,456,560,199,249,349,385,444,580,179,380,224,5
82];
% la marge de chaque odif
% affiche les variables dans la fenÍtre de commandes:
[x fval] = linprog(-f,A,b,Aeq,beq,lb,ub);
for v = 1:N
fprintf('%12.2f \t%s\n',x(v),odif{v})
end
format long g % affiche la marge sans puissance de 10
Marge = -fval % affiche la marge
% %------------------------------------------------------------------------%
% % Fin du programme
% % by Lucky Dongang and Alan Bragado Fernandez
8 Bragado Fernandez Alan E3E Dongang Lucky E3S % %------------------------------------------------------------------------%
III. Généralisation du modèle : 1. Définition des mots clefs : • Nd : le nombre de villes de départs parcouru par l’indice i • Ne : le nombre de villes d’escales parcouru par l’indice j • Na : le nombre de villes d’arrivés parcouru par l’indice k • No : le nombre d’options disponibles parcouru par l’indice l • N : le nombre d’ODIF donné par la formule suivante : N = Nd*Na*No + Ne*Na*No + Nd*Ne*No Remarque : § Nous partons du principe que les 4 variables (Nd,Ne,Na,No) sont données par la compagnie. § Nous avons également voulu généraliser les options disponibles pour avoir une fonction la plus générale possible § Nous réutiliserons également les mots clefs definis en II.1 9 Bragado Fernandez Alan E3E Dongang Lucky E3S 2. Elaboration d’une Résolution du problème de façon générale : v
La fonction objective générale qui permettra de de maximiser les revenus de la compagnies aérienne est donnée par l’expression suivante: fobjG(X) = 𝑀𝑎𝑥(
+Mijkl.Xijkl))
!"
!!!
!"
!!!
!"
!!!
!"
!!!(Mijl.Xijl +Mjkl.Xjkl
N.B : lorsque l’on utilise moins de 4 indices (comme ci-­‐
dessus) on part du principe que l’indice manquant correspondant à un départ ou une arrivé, n’existe pas dans le parcours que fait l’avion. v
En respectant la segmentation de la II.2 nous avons comme contraintes Ø
première partie :
• contrainte 1 : Xi > 0 pour i ∈ [1, N ]
• contrainte 2 : 𝑀𝑎𝑥 !
!!! 𝑋𝑖 ≤ Dmi
Ø
deuxième partie :
10 Bragado Fernandez Alan E3E Dongang Lucky E3S • contrainte 3 :
Pour i = 1,
!"
!!!
!"
!!!
!"
!!!(Xijkl) ≤
Ca
!"
!!!
!"
!!!
!"
!!!(Xijkl) ≤
Ca
!"
!!!
!"
!!!(Xijkl) ≤
• contrainte 4 :
Pour i = 2,
• contrainte 5 :
Pour i = 3,
!"
!!!
Ca
• .
• .
• .
• contrainte Nd + 2 :
Pour i = Nd,
!"
!!!
!"
!!!
!"
!!!(Xijkl) ≤
Ca
Ø troisième partie :
• contrainte Nd + 3 :
Pour k = 1,
!"
!!!
• contrainte Nd + 4 :
• Pour k = 2,
!"
!!!
!"
!!!
!"
!!!(Xijkl) ≤
Ca
!"
!!!
!"
!!!(Xijkl) ≤
Ca
!"
!!!
!"
!!!(Xijkl) ≤
Ca
• contrainte Nd + 5 :
• Pour k = 3,
!"
!!!
11 Bragado Fernandez Alan E3E Dongang Lucky E3S • .
• .
• .
• contrainte Nd + Na +2 :
• Pour k = Na,
!"
!!!
!"
!!!
!"
!!!(Xijkl) ≤
Ca
Le nombre d’équations de contraintes est donc de Nd + Na + 2.
12 

Documents pareils