Simulation d'un atelier : temps de cycle et files d'attente
Terminale Technologique · Mathématiques STI2D Terminale
À retenir
• = m/T doit rester nettement inférieur à 1 : au-delà, la file s'allonge indéfiniment. • Temps de cycle = attente en file + durée de préparation ; c'est l'indicateur vu par le client. • La durée exponentielle de moyenne m se tire par m 1/1-u avec u uniforme sur [0\,;\,1[. • Le poste sert une pièce en attente à (libre, arrivée) : sans cela l'attente ressort négative. • Cinq indicateurs : pièces traitées, occupation, cycle moyen, cycle maximal, file maximale.
Le cours
1. Le modèle du poste On modélise un poste unique de préparation, alimenté par un flux régulier : une pièce est présentée toutes les T secondes. La préparation d'une pièce dure une durée aléatoire, ici exponentielle de moyenne m (une loi de Pareto ou un uniforme serait aussi possibles). Trois indicateurs structurent l'étude : • le taux d'occupation \ = /T : il doit rester nettement inférieur à 1, sinon la file s'allonge sans fin. • le temps de cycle d'une pièce : durée d'attente en file + durée de préparation. C'est l'indicateur que subit le client. • la file d'attente : son effectif maximal sert de capacité tampon à prévoir. Amont une pièce toutes les 30 s File d'attente au plus 3 pièces Poste unique préparation exponentielle moyenne 12 s Panne de 4 min toutes les 3 h Temps de cycle = attente en file + durée de préparation. Taux d'occupation = temps de service / temps d'ouverture. Sortie : 960 pièces en 8 h, soit une pièce toutes les 30 s. 2. L'algorithme événementiel On avance dans le temps, pièce par pièce. La variable `libre` contient l'instant où le poste sera disponible ; tant que la file n'est pas vide et que le poste est libre avant la prochaine arrivée, on sert la première pièce en attente. from random import Random from math import log def atelier(T, m, H, graine): r = Random(graine) file, libre, occupation = [], 0.0, 0.0 cycles, traites, maxi_file = [], 0, 0 for arrivee in range(0, H + 1, T): while file and libre <= arrivee: depart = max(libre, file[0]) # le poste ne peut pas servir avant l'arrivee duree = m * log(1 / (1 - r.random())) # exponentielle de moyenne m libre = depart + duree occupation += duree cycles.append(libre - file.pop(0)) traites += 1 maxi_file = max(maxi_file, len(file)) file.append(arrivee) maxi_file = max(maxi_file, len(file)) return traites, occupation / H, sum(cycles) / len(cycles), max(cycles), maxi_file print(atelier(30, 12, 8 * 3600, 2024)) # (960, 0.418, 14.459, 95.949, 3) La ligne depart = max(libre, file[0]) est indispensable : une pièce arrivée pendant l'occupation du poste ne peut pas être préparée avant son arrivée, sinon le temps d'attente ressort négatif. Le drainage de la file après la dernière arrivée est à oublier également, sinon l'on perd les pièces en attente à la fin de la campagne. 3. Méthode : les cinq indicateurs à relever IndicateurSimulé sur 8\\ \hLecture Pièces traitées960une pièce toutes les 30,0\\ \s Taux d'occupation41,8\\ \%contre \ = \12/30 = 40\\ \% attendu Temps de cycle moyen14,46\\ \s12\\ \s de préparation + attente Cycle le plus long95,9\\ \shuit fois la préparation moyenne File maximale3 piècestampon de 3 places suffisant Le taux d'occupation simulé est un excellent contrôle : il doit retrouver \ à moins d'un point près, car le temps de service total est la somme de 960 durées indépendantes de moyenne m. 4. Pièges • Juger l'atelier sur le nombre de pièces produites : tant que le flux amont reste le facteur limitant, ce nombre ne change pas, même quand le poste s'arrête deux heures. Il faut regarder le temps de cycle et la file. • Compter les arrêts comme du temps d'occupation : le taux d'occupation se calcule sur le temps de service seul, mais il faut aussi annoncer le temps d'indisponibilité pour que le client comprenne la cadence obtenue. • Oublier de vider la file après la dernière arrivée, ou oublier la dernière pièce non terminée : le nombre de pièces traités est alors sous-estimé d'une unité ou plus, ce qui fausse la cadence moyenne.
Dans ce chapitre
- Épreuve de Bernoulli et loi binomiale de classe de Terminale
- Loi uniforme sur un intervalle et espérance de classe de Terminale
- Calcul d'une moyenne et d'un écart-type de classe de 3e
- Générateur de nombres pseudo-aléatoires et principe de reproductibilité
- Simulation d'une variable uniforme sur un intervalle
- Estimation d'une probabilité par fréquence sur N simulations
- Intervalle de fluctuation d'un estimateur
- Méthode de Monte-Carlo pour le calcul d'une aire
- Simulation d'un atelier : temps de cycle et files d'attente
- Nombre de simulations nécessaire pour une précision donnée
- Convergence et vérification d'un résultat simulé
- Générateur congruentiel simple et périodicité d'une suite pseudo-aléatoire
- Interprétation d'un histogramme issu d'une simulation
- Bilan : Synthèse et méthode sur Méthode de Monte-Carlo et simulation stochastique d'un procédé