Bonjour a tous!
Je pose sur ce forum (Salon mathematique) car je ne savais pas trop si c’etait niveau Lycee ou Superieur. Ca fait quelques temps que je n’ai plus fait de maths (depuis ma prepa, soit 11 ans!!).
Je vais essayer de respecter au mieux les notations, excusez moi par avance si je fais des erreurs.
Je vais commencer par proposer mon debut de solution (car oui j’ai quand meme cherche avant) et je vous montrerai la ou je bloque.
Situation:
Une entreprise e-commerce recoit chaque jour des commandes clients a preparer et a envoyer (comme Amazon).
En debut de chaque journee, il peut parfois y avoir un certain nombre de commandes qui n’ont pas pu etre envoyees la veille, on appelle ca le “backlog”.
L'entreprise a une capacite d'envoi, c'est a dire un quantite maximale de commande qu'elle peut envoyer, elle est fixe.
Par exemple. Le jour i-1 j’ai recu 100 commandes, mais ma capacite maximale est 80, j’en ai donc envoye 80, et alors, le jour i j’ai 20 de backlog.
L'entreprise s'engage a envoye la commande au maximum 2 jours apres creation. Donc si un client fait une commande le Lundi, Mercredi au maximum, c'est envoye
Notations et remarques:
(l'editeur d'equation n'a pas l'air de marcher pour moi, j'en suis desole)
d[i] = la quantite de nouvelles commande le jour i (d[i] > ou = 0)
B[i] = le backlog au jour i (B[i] > ou = 0)
B[0] = 0 effectivement, il n'y a pas de backlog le premier jour
Q[i] = la quantite de commandes a envoyer le jour i
C = la capacite, la quantite maximale de commandes que l'entreprise peut envoyer par jour (C>0)
On a donc les relations suivantes:
B[i] = max(Q[i-1]-C ; 0) effectivement, le backlog du jour i c'est le maximum entre la quantite de commandes qu'on devait traiter le jour precedent moins la capacite et zero!
Q[i] = d[i]+B[i]
= d[i]+max(Q[i-1]-C ; 0)
= max(Q[i-1]+d[i]-C ; d[i])
Question:
quelle est, en fonction des d[i], la capacite minimale C necessaire pour respecter l'engagement d'envoyer une commande au plus tard 2 jours apres jour de creation?
Mon debut de solution:
En gros, il faut que chaque Q[i] soit < ou = a 3C:
Q[i] = max(Q[i-1]+d[i]-C ; d[i]) <= 3C
On a donc une suite Q[i]
La facon dont j'ai procede est de commencer par Q[0], puis Q[1] etc... pour voir si on pouvait generaliser une formule a Q[n]. Je trouve une relation qui peut se demontrer facilement par recurrence:
Q[n] = max(d[n]+d[n-1]+...+d[1]-(n-1)C ; d[n]+d[n-1]+...+d[2]-(n-2)C ; ... ; d[n]+d[n-1]-C ; d[n])
ca donne donc: (pour que ce soit plus lisible je mets une image)
c'est donc une fonction max avec n termes a comparer:
1er terme: d[n]+d[n-1]+...+d[1]-(n-1)C
2eme terme: d[n]+d[n-1]+...+d[2]-(n-2)C
...
n-1eme terme: d[n]+d[n-1]-C
neme terme: d[n]
Sachant ca il faut ensuite comparer chaque Q[i] a 3 fois la capacite C:
Q[1]<=3C
Q[2]<=3C
...
Q[n]<=3C
pour respecter l'engagement il faut donc prendre la maximum de ces Q[i], ainsi, l'engagement sera toujours respecte.
Mais je coince, j'ai exprime mon Q[n] mais je ne sais pas comment trouver mon C en fonction des d[i].
Merci de votre aide!!
Vanhoa