Probleme de math calcul duree d'execution!!!!
totorleplusfort
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
sisoi -
sisoi -
bonjour voici mon probleme:
A quel heures les 600 pieces seront terminées. Sachant qu'un ouvrier fabrique en moyenne 90 pieces/h. et que les ouvriers plannifiés a l'excution de cette tache le sont de cette maniere:
Ouvrier 1: commence le travail a 10:00 et fini a 18:00
Ouvrier 2: commence le travail a 12:00 et fini a 14:00
Ouvrier 3: commence le travail a 11:00 et fini a 15:00
L'objectif est de trouve une (ou plusieur) formule qui permet de calcul la duree exact de cette tache. Cela fait maintenant 3 semaines que je cherche et je n'arrive toujours pas a trouve! l'objectif final etant de final etant de faire un programme sous excel.
Merci d'avance de votre aide
A quel heures les 600 pieces seront terminées. Sachant qu'un ouvrier fabrique en moyenne 90 pieces/h. et que les ouvriers plannifiés a l'excution de cette tache le sont de cette maniere:
Ouvrier 1: commence le travail a 10:00 et fini a 18:00
Ouvrier 2: commence le travail a 12:00 et fini a 14:00
Ouvrier 3: commence le travail a 11:00 et fini a 15:00
L'objectif est de trouve une (ou plusieur) formule qui permet de calcul la duree exact de cette tache. Cela fait maintenant 3 semaines que je cherche et je n'arrive toujours pas a trouve! l'objectif final etant de final etant de faire un programme sous excel.
Merci d'avance de votre aide
A voir également:
- Probleme de math calcul duree d'execution!!!!
- Formule math - Télécharger - Études & Formations
- Calcul moyenne excel - Guide
- Calcul km marche à pied gratuit - Télécharger - Sport
- Durée lien wetransfer - Accueil - Services en ligne
- Calcul charpente bois gratuit - Télécharger - Architecture & Déco
7 réponses
Salut,
à midi, l'ouvrier 1 a construit 180 pièces (2*90) et l'ouvrier 3 en a construit 90. Donc à midi, il y a eu 270 pièces de construites.
600-270 = 330.
En 1 heure, les 3 ouvriers construisent 270 pièces donc pour construire les 330 pièces il faut 330/270 = 1.222 heure c'est-à-dire 73 minutes (environ)
Donc le travail sera fini à 13h13
CQFD
à midi, l'ouvrier 1 a construit 180 pièces (2*90) et l'ouvrier 3 en a construit 90. Donc à midi, il y a eu 270 pièces de construites.
600-270 = 330.
En 1 heure, les 3 ouvriers construisent 270 pièces donc pour construire les 330 pièces il faut 330/270 = 1.222 heure c'est-à-dire 73 minutes (environ)
Donc le travail sera fini à 13h13
CQFD
Copie du message de totorleplusfort (mardi 30 janvier 2007 à 21:53:00)
Ce message était posté en dehors du post initial.
A+
je suis tout a fait d'accord avec toi, le seul petit hic c qu'il faut que j'en tire une ( ou des)formule valable pour les cas de figures: changement du nombre de piece a faire mais aussi changement du planning. Dans tous les cas j'apprecie ton aide
Ce message était posté en dehors du post initial.
A+
En fait, tu veux un algorithme plutôt qu'une formule, non ?
Une formule unique ne peut pas exister...
Voilà ce que je te propose.
La fonction f(t) qui donne le nombre de pièces construites au temps t est une fonction affine par morceaux : sa représentation serait une suite de segments connexes.
Soit la fonction g(t) qui donne, à un instant t, le nombre d'ouvriers en oeuvre. Soit A le rythme de confection des pièces.
A tout moment, la dérivée f' de f est telle que f'(t) = g(t)*A (en prenant t en heures)
Il n'est pas trop compliqué de définir g(t) : c'est une fonction par palliers, qui vaut 0 à t=0, dont la valeur augmente de 1 chaque fois qu'un ouvrier arrive et diminue de 1 quand un ouvrier part.
Décrivons tout cela de façon informatique (je ne prétends pas optimiser la complexité de l'algorithme)
Définissons un objet HEURE.
HEURE contient deux valeurs :
- H, qui est l'heure en elle-même,
- Type, qui vaut +1 si c'est une heure d'arrivée, et -1 si c'est une heure de départ.
Soit PALLIERS() la liste ordonnée des HEURE de rotation (donc, toutes les heures de début et toutes les heures de fin)
Soit la fonction g, qui prend en paramètre une heure, et renvoie un nombre.
Tout le problème me semble formalisé. Le principe, donc, globalement : parcourir toutes les heures "spéciales" dans l'ordre, et ajouter à chaque fois la quantité produite : quand on dépasse, on regarde plus précisément pour trouver le moment où cela a dépassé.
Si tu a un langage précis dans lequel tu veux que je traduise l'algorithme, ça peut se faire.
En espérant t'avoir plus aidé que saoûlé ;)
Xavier
Une formule unique ne peut pas exister...
Voilà ce que je te propose.
La fonction f(t) qui donne le nombre de pièces construites au temps t est une fonction affine par morceaux : sa représentation serait une suite de segments connexes.
Soit la fonction g(t) qui donne, à un instant t, le nombre d'ouvriers en oeuvre. Soit A le rythme de confection des pièces.
A tout moment, la dérivée f' de f est telle que f'(t) = g(t)*A (en prenant t en heures)
Il n'est pas trop compliqué de définir g(t) : c'est une fonction par palliers, qui vaut 0 à t=0, dont la valeur augmente de 1 chaque fois qu'un ouvrier arrive et diminue de 1 quand un ouvrier part.
Décrivons tout cela de façon informatique (je ne prétends pas optimiser la complexité de l'algorithme)
Définissons un objet HEURE.
HEURE contient deux valeurs :
- H, qui est l'heure en elle-même,
- Type, qui vaut +1 si c'est une heure d'arrivée, et -1 si c'est une heure de départ.
Soit PALLIERS() la liste ordonnée des HEURE de rotation (donc, toutes les heures de début et toutes les heures de fin)
Soit la fonction g, qui prend en paramètre une heure, et renvoie un nombre.
g(T) : { renvoie (somme de HEURE.Type pour toutes les HEURE où HEURE.H < T) }Soit la fonction heureFinale(), qui fait ce que tu veux. Elle prend un argument entier (le nombre d'objets), et renvoie l'heure où c'est atteint.
heureFinale(QTE) : { PiecesCreees = 0; HeurePrecedente = 0; Pour chaque PIVOT dans PALLIERS() { PiecesCreeesDuPallier = A*g(PIVOT.H)*(PIVOT.H-HeurePrecedente); SI (PiecesCreees + PiecesCreeesDuPallier >=QTE) { Renvoie (PIVOT.H + (QTE-PiecesCreees) / (A*g(PIVOT.H)) ) } HeurePrecedente = PIVOT.H PiecesCreees = PiecesCreees + PiecesCreeesDuPallier } Renvoie -1 }Pfiou, voilà :)
Tout le problème me semble formalisé. Le principe, donc, globalement : parcourir toutes les heures "spéciales" dans l'ordre, et ajouter à chaque fois la quantité produite : quand on dépasse, on regarde plus précisément pour trouver le moment où cela a dépassé.
Si tu a un langage précis dans lequel tu veux que je traduise l'algorithme, ça peut se faire.
En espérant t'avoir plus aidé que saoûlé ;)
Xavier
j'avoue que ton niveau en math et en informatique m'impression! Mais malheursement j'ai pas tout compris, d'ailleur je ne pensais pas que mon probleme etait de ce niveau la! le truc comme je le dit precedement c qu'il faut que je rentre tout cela sur excel (et moi qui penser avoir un bon niveau sous excel). pour le moment ma feuille excel ressemble assez a l'ennoncé (avec des calcul en plus mais qui ne peuvent que compliqué le probleme).
Donc le probleme pour moi c de traduire l'algorithme ( et le programme que tu as trouvé) sous un language que excel peux comprendre!
Voila, je suis tres reconnaissant de ce que tu as fait pour moi! ET te redit houaou pour cette demonstration!
Donc le probleme pour moi c de traduire l'algorithme ( et le programme que tu as trouvé) sous un language que excel peux comprendre!
Voila, je suis tres reconnaissant de ce que tu as fait pour moi! ET te redit houaou pour cette demonstration!
MMh, sous excel, en VB script alors ?
Je vois que les heures sont toutes entières, je présume que les minutes n'interviennent pas ! Donc il n'y a que 24h dans la journée.
Je te le fais en vieil algo. Particularité : O.debut c'est l'heure ou commence l'ouvrier, et .fin ... t'a compris. Les variables commencent par $ (overdose de PHP) :
Tu dira pas que c'est moi qui t'ai aidé hein ?
Je vois que les heures sont toutes entières, je présume que les minutes n'interviennent pas ! Donc il n'y a que 24h dans la journée.
Je te le fais en vieil algo. Particularité : O.debut c'est l'heure ou commence l'ouvrier, et .fin ... t'a compris. Les variables commencent par $ (overdose de PHP) :
$Nb = pièces à produire $Rendement = pièces / heure Pour $H allant de 0 à 24 Pour chaque ouvrier $O Si $H >= $O.debut && $H < $O.fin Alors $Nb = $Nb - $Rendement FinPour Si $Nb <= 0 Aller à FIN FinPour FIN: Les pièces sont prêtes à l'heure $H
Tu dira pas que c'est moi qui t'ai aidé hein ?
Ta solution masque quand même le fait que si les employés arrivent à heure pile, l'heure de fin du travail peut ne pas être sur une heure "pile" ! Ca dépend un peu de ce dont on a besoin... Mais au moins, c'est simple et clair :)
Un peu plus que mon explication :p
Un peu plus que mon explication :p
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut.
l'on fait remarquer les autres, c''est simplement l'intégrale de la fonction de production. la fonction de production, c'est N(t)*D où N est le nombre d'ouvier et D le débit du travail. Donc, le nombre de piece produite c'est :
NP=int_0^t(N(t).dt)
l'inconnue est t, et comme N est une fonction discontinue, il est impossible de résoudre exactement, ou alors seulement si le nomre d'ouvrier reste constant sur la tranche horaire considérer.
l'on fait remarquer les autres, c''est simplement l'intégrale de la fonction de production. la fonction de production, c'est N(t)*D où N est le nombre d'ouvier et D le débit du travail. Donc, le nombre de piece produite c'est :
NP=int_0^t(N(t).dt)
l'inconnue est t, et comme N est une fonction discontinue, il est impossible de résoudre exactement, ou alors seulement si le nomre d'ouvrier reste constant sur la tranche horaire considérer.
salut,
encore quelques petites choses:
-malheureusement non les ouviers ne commence pas forcement a l'heure pile (cela varie de 5 minutes en 5 minutes).
-"l'inconnue est t, et comme N est une fonction discontinue, il est impossible de résoudre exactement, ou alors seulement si le nomre d'ouvrier reste constant sur la tranche horaire considérer. " ben alors pourquoi en cherchant heure par heure on arrive a trouve le resultat?
encore quelques petites choses:
-malheureusement non les ouviers ne commence pas forcement a l'heure pile (cela varie de 5 minutes en 5 minutes).
-"l'inconnue est t, et comme N est une fonction discontinue, il est impossible de résoudre exactement, ou alors seulement si le nomre d'ouvrier reste constant sur la tranche horaire considérer. " ben alors pourquoi en cherchant heure par heure on arrive a trouve le resultat?
Ooooh....
Ce que Char Sniper veut dire par "impossible" c'est que la solution de l'intégrale est impossible à déterminer sous forme de fonction [ f(probleme) = solution ].
Donc il faut nécessairement un algorithme pour résoudre cette intégrale.
Il faut utiliser la solution des pivots, qui est excellente.
Ce que Char Sniper veut dire par "impossible" c'est que la solution de l'intégrale est impossible à déterminer sous forme de fonction [ f(probleme) = solution ].
Donc il faut nécessairement un algorithme pour résoudre cette intégrale.
Il faut utiliser la solution des pivots, qui est excellente.