Académique Documents
Professionnel Documents
Culture Documents
Faculte de Mathematiques
Master RO2MIR
Projet TP C++
Présenté par:
BOULAHRAM Lysa
SERHANE Hadjer
14 juin 2023
Contents
1 Atelier a cheminement unique (flow shop) 2
3 La question 1 5
4 La question 2 6
5 La question 3 6
1
1 Atelier a cheminement unique (flow shop)
Dans ce cas, toute tache ”doit” visiter chaque machine de l’atelier (les machin ^ es sont
placées en serie) et l’ordre de passage (sur les machines) est le m ème pout toutes les taches
(flot unidirectionnel, c’est-a-dire que Les taches sont enchaınees de maniére linéaire suivant
une chaine).
Ce probleme se rencontre souvent en pratique. Il correspond à une chaine de fabrication ou
de montage
2
Algorithm 1 Heuristique NEH
Debut
. Soit T1 , T2 , ..., Tn la liste de taches rangées dans l’ordre décroissant de leurs durées
globales.
. Placer la tache T1 dans la séquence Seq .
. Pour i = 2 à n faire
Cmax = ∞;
Pour k = 1 à i faire
Construire une solution partielle en mettant la tache Ti a la position k dans la
sequence Seq .
Calculer le makespan Cmax de cette solution partielle.
Si Cmax < Cmax ′ alors
best = k ;
′
Cmax = Cmax
Fsi
Finpour
Placer la tache Ti a la position best dans la sequence Seq .
Finpour
Appliquer cette sequence au problème ;
Fin de l’algorithme
3
La solution du F 2|prmt, li |Cmax , est obtenue à partir de l’ordre définit par la relation ≤
entre de tâches Ti et Ti′ ainsi,
4
3 La question 1
la fonction ordonnancer avec la matrice C en paramètre
ajouter une fonction saisire qui permet de remplir la matrice C avec des zéro comme suit :
5
on doit ajouter dans les paramèttre des autre fonction (NEH ,OPT ,BB ) la matrice C
en paramàtre vector<vector<int> c
4 La question 2
evaluer une solution pariel :
le contunue de sigma1 et calculer les temps de fin de traitement des tache de la solotion
pariel , en suit les utiliser dans les fonction NEH , LB en ajouton la matrice C en parametre
5 La question 3
l’écriture de programme avec std::list au lieu de vector
la déclaration d’une liste : std::list<int> nomlist ;
la déclaration d’une liste des liste (matrice) : std::list<list<int> > nomliste ;
on change la déclaration de tous les listes et les matices déclarie en vector on le déclare en
liste comme suit .
pour accedée au élément de la liste on doit faire une fonction qui récupère les élement
de la position que je veux modifier , et une fonction qui modifie l’élément
6
7