Ajout du graphe et quelques ajouts commentés et correction de faute de frappe
This commit is contained in:
parent
a137e62450
commit
55e99dd4ac
@ -434,7 +434,14 @@ courts en appliquant deux changements~:
|
|||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
%Deuxième cours
|
%Deuxième cours
|
||||||
\section{Problème d'orgonnancement de projets}
|
\section{Problèmes d'ordonnancement de projets}
|
||||||
|
|
||||||
|
%%%
|
||||||
|
%Théorie des graphes -> cas déterministe.
|
||||||
|
%Un projet -> plusieurs tâches.
|
||||||
|
%Toutes ces tâches sont liées par des \textbf{contraintes}.
|
||||||
|
%\underline{But :} terminer au plus tôt, en respectant les contraintes.
|
||||||
|
%%%
|
||||||
|
|
||||||
Le but est de trouver l'ordonnancement au plus tôt de toutes les tâches.
|
Le but est de trouver l'ordonnancement au plus tôt de toutes les tâches.
|
||||||
|
|
||||||
@ -444,7 +451,7 @@ Gantt calés à gauche.
|
|||||||
Le deuxième objectif est de déterminer le chemin critique~: tout retard sur une
|
Le deuxième objectif est de déterminer le chemin critique~: tout retard sur une
|
||||||
tâche critique se représente sur la durée totale du projet.
|
tâche critique se représente sur la durée totale du projet.
|
||||||
|
|
||||||
POiur les tâches non-critiques, on peut calculer la marge totale et la marge
|
Pour les tâches non-critiques, on peut calculer la marge totale et la marge
|
||||||
libre.\\
|
libre.\\
|
||||||
|
|
||||||
Il existe deux méthodes principales pour calculer les crontraites de type
|
Il existe deux méthodes principales pour calculer les crontraites de type
|
||||||
@ -452,7 +459,7 @@ Il existe deux méthodes principales pour calculer les crontraites de type
|
|||||||
dans ce cours).
|
dans ce cours).
|
||||||
|
|
||||||
Les seules contraintes sont du type~: \og la tâche B ne peut démarrer que 3
|
Les seules contraintes sont du type~: \og la tâche B ne peut démarrer que 3
|
||||||
jours après la tâche A\fg.
|
jours après la tâche A\fg, contraintes de succession.
|
||||||
|
|
||||||
\paragraph{Remarque} les contraintes les plus dures ne sont pas prises en
|
\paragraph{Remarque} les contraintes les plus dures ne sont pas prises en
|
||||||
compte~: on parle de type cumulatif.
|
compte~: on parle de type cumulatif.
|
||||||
@ -460,11 +467,30 @@ compte~: on parle de type cumulatif.
|
|||||||
Lorsque les ressources sont limités, les interactions sont très fortes entre
|
Lorsque les ressources sont limités, les interactions sont très fortes entre
|
||||||
les tâches.
|
les tâches.
|
||||||
|
|
||||||
|
%Permet au tableau d'être où il faut.
|
||||||
|
\newpage
|
||||||
\subsection{Méthode portentiels-tâches}
|
\subsection{Méthode portentiels-tâches}
|
||||||
|
|
||||||
|
%2 opérations :
|
||||||
|
%\underline{1 - Ordonnancement au plus tôt}
|
||||||
|
%On calcule les dates de début au plus tôt de toutes les tâches
|
||||||
|
%=> diagramme de GANT calé à gauche.
|
||||||
|
%
|
||||||
|
%=> il y a 2 sortes de tâches :
|
||||||
|
% *les tâches critiques.
|
||||||
|
% *les tâches non-critiques.
|
||||||
|
%Une tâche critique est une tâche qui ne souffre d'aucun retard.
|
||||||
|
%-> tout retard sur le démarrage d'une tâche critique se répercurte
|
||||||
|
%\underline{sur la date de fin du projet}.
|
||||||
|
%Pour les tâches non critiques, il existe des marges totales/libres.
|
||||||
|
%\underline{2 - Ordonnancement au plus tard}
|
||||||
|
%\underline{hypothèse :} la durée minimale du projet est respectée.
|
||||||
|
%On cherche \underline{la date de début au plus tard} de chaque tâche
|
||||||
|
%non-critique, qui soit compatible avec cette durée minimale du projet.
|
||||||
\paragraph{Exemple} On a un problème à 7 tâches ($a$, $b$, $c$, $d$, $e$, $f$
|
\paragraph{Exemple} On a un problème à 7 tâches ($a$, $b$, $c$, $d$, $e$, $f$
|
||||||
et $g$)~; les contraintes sont de type portentiel seulement.
|
et $g$)~; les contraintes sont de type portentiel seulement.
|
||||||
|
|
||||||
|
|
||||||
Soit le tableau des contraintes suivantes~:
|
Soit le tableau des contraintes suivantes~:
|
||||||
|
|
||||||
\begin{figure}[h]
|
\begin{figure}[h]
|
||||||
@ -560,7 +586,7 @@ On commence par dresser le tableau suivant~:
|
|||||||
\paragraph{Initialisation} Le projet démarre à la date 0. Il s'agit de la date
|
\paragraph{Initialisation} Le projet démarre à la date 0. Il s'agit de la date
|
||||||
de début au plus tôt de $\alpha$~; ici {\color{mauve} 0}.
|
de début au plus tôt de $\alpha$~; ici {\color{mauve} 0}.
|
||||||
|
|
||||||
\paragraph{Deuxième phase} {\color{mauve} Mmouvement de haut en bas.}\\
|
\paragraph{Deuxième phase} {\color{mauve} Mouvement de haut en bas.}\\
|
||||||
Dès que l'on connaît une date de début au plus tôt (1\iere ligne du tableau),
|
Dès que l'on connaît une date de début au plus tôt (1\iere ligne du tableau),
|
||||||
on la répercute dans la deuxième ligne du tableau partout où la tâche concernée
|
on la répercute dans la deuxième ligne du tableau partout où la tâche concernée
|
||||||
apparaît.
|
apparaît.
|
||||||
@ -568,7 +594,7 @@ apparaît.
|
|||||||
\subparagraph{Ensuite} {\color{dkgreen} mouvement de bas en haut.}\\
|
\subparagraph{Ensuite} {\color{dkgreen} mouvement de bas en haut.}\\
|
||||||
Dès que l'on connaît les dates de début au plus tôt de tous les prédécesseurs
|
Dès que l'on connaît les dates de début au plus tôt de tous les prédécesseurs
|
||||||
d'une tâche, on dit que la colonne est complète, et on calcule la date de
|
d'une tâche, on dit que la colonne est complète, et on calcule la date de
|
||||||
dévbut au plus tôt de la tâche en tête de colonne (première ligne) par la
|
début au plus tôt de la tâche en tête de colonne (première ligne) par la
|
||||||
formule de Bellman~:
|
formule de Bellman~:
|
||||||
|
|
||||||
$$t_j=\max[t_i+v_{ij}]\qquad i\in(\Gamma^{-1}(j))$$
|
$$t_j=\max[t_i+v_{ij}]\qquad i\in(\Gamma^{-1}(j))$$
|
||||||
@ -633,7 +659,7 @@ toutes les tâches non critiques.
|
|||||||
|
|
||||||
\subparagraph{Hypothèse} La durée minimale du projet est respectée.
|
\subparagraph{Hypothèse} La durée minimale du projet est respectée.
|
||||||
|
|
||||||
Pour les tâches croitiques, la date de début au plus tard est égale à la date
|
Pour les tâches critiques, la date de début au plus tard est égale à la date
|
||||||
de début au plus tôt.
|
de début au plus tôt.
|
||||||
|
|
||||||
Quelles sont les dates de début au plus tard des tâches non critiques~?
|
Quelles sont les dates de début au plus tard des tâches non critiques~?
|
||||||
@ -684,7 +710,8 @@ graphe.
|
|||||||
\paragraph{Initialisation} On numérote les sommets, le sommet racine prennant
|
\paragraph{Initialisation} On numérote les sommets, le sommet racine prennant
|
||||||
le numéro 1. On essaye de respecter autant que possible la numérotation
|
le numéro 1. On essaye de respecter autant que possible la numérotation
|
||||||
topologique des sommets.
|
topologique des sommets.
|
||||||
|
Les arcs de numérotation non topologique risquent d'entrainer
|
||||||
|
des retours en arrière ce qui impliquerait des retards.
|
||||||
\begin{figure}[h]
|
\begin{figure}[h]
|
||||||
\centering
|
\centering
|
||||||
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=2.5cm,
|
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=2.5cm,
|
||||||
@ -700,6 +727,52 @@ topologique des sommets.
|
|||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%À mettre en page ou à supprimer
|
||||||
|
\begin{figure}[h]
|
||||||
|
\centering
|
||||||
|
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=2.5cm,
|
||||||
|
thick,main node/.style={circle,fill=blue!20,draw,font=\sffamily\Large\bfseries}]
|
||||||
|
\node[main node] (1) {$1$};
|
||||||
|
\node[main node] (2) [below right of=1] {$2$};
|
||||||
|
\node[main node] (3) [right of=2] {$3$};
|
||||||
|
\node[main node] (4) [below left of=1] {$4$};
|
||||||
|
\node[main node] (5) [below left of=2] {$5$};
|
||||||
|
\node[main node] (6) [below right of=2] {$6$};
|
||||||
|
\node[main node] (7) [right of=6] {$7$};
|
||||||
|
\node[main node] (8) [right of=7] {$8$};
|
||||||
|
\node[main node] (9) [right of=8] {$9$};
|
||||||
|
\node[main node] (10) [below right of=7] {$10$};
|
||||||
|
\node[main node] (11) [right of=5] {$11$};
|
||||||
|
\node[main node] (12) [right of=4] {$12$};
|
||||||
|
\node[main node] (13) [right of=1] {$13$};
|
||||||
|
|
||||||
|
\path[every node/.style={font=\sffamily\small}]
|
||||||
|
(1) edge [right] node[right] {2} (2)
|
||||||
|
edge [right] node[right] {10} (3)
|
||||||
|
edge [bend left] node[right] {1} (4)
|
||||||
|
(2) edge [bend right] node[right] {3} (6)
|
||||||
|
edge [bend left] node[right] {20} (5)
|
||||||
|
(3) edge [bend right] node[right] {40} (5)
|
||||||
|
edge [bend left] node[right] {20} (4)
|
||||||
|
(4) edge [bend right] node[right] {3} (10)
|
||||||
|
edge [bend left] node[right] {5} (11)
|
||||||
|
(5) edge [bend right] node[right] {20} (6)
|
||||||
|
edge [right] node[right] {35} (7)
|
||||||
|
edge [bend left] node[right] {20} (9)
|
||||||
|
(6) edge [bend right] node[right] {5} (7)
|
||||||
|
(7) edge [bend left] node[right] {10} (8)
|
||||||
|
(8) edge [bend right] node[right] {45} (9)
|
||||||
|
edge [right] node[right] {20} (12)
|
||||||
|
(9) edge [bend left] node[right] {40} (12)
|
||||||
|
edge [bend right] node[right] {45} (11)
|
||||||
|
(10) edge [bend right] node[right] {45} (13)
|
||||||
|
(11) edge [right] node[right] {10} (10)
|
||||||
|
(12) edge [bend right] node[right] {10} (13)
|
||||||
|
;
|
||||||
|
\end{tikzpicture}
|
||||||
|
\caption{Graphe page 106}
|
||||||
|
\end{figure}
|
||||||
Voir graphe page 106.
|
Voir graphe page 106.
|
||||||
|
|
||||||
On cherche le chemin le plus court allant du sommet 1 vers tous les autres
|
On cherche le chemin le plus court allant du sommet 1 vers tous les autres
|
||||||
|
Reference in New Issue
Block a user