IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Livraisons par semaine à partir de prévisions


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2016
    Messages : 14
    Par défaut Livraisons par semaine à partir de prévisions
    Bonjour,
    j'ai un petit soucis d'algorithmie,.
    je dois distribuer équitablement sur 52 semaines (correspondant à 1 an ) une sortie annuelle de livraison.

    Par exemple: pour un bonbon, nous avons prévue de le recevoir 4 fois cette année donc nous nous le recevrons 1 fois tous les 13 mois ( je veux stocker ses valeurs dans un vecteur 52 lignes ou 52 colonnes)
    Code matlab : Sélectionner tout - Visualiser dans une fenêtre à part
    vecteur_livraison_par_semaine=(1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0  )
    j'ai essayé de le programmer sur matlab mais mon code est très aléatoire :

    Code matlab : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    function [livraison]= simulation_livraison(nombre_maximum_de_semaine_par_an,Sortie_annuelle_prevue)
     
     
    livraison=zeros(nombre_maximum_de_semaine_par_an,1);
     
     
     
         for k=1:nombre_maximum_de_semaine_par_an
     
                 if(rand<1/2 && Sortie_annuelle_prevue>0)
                    livraison(k,1)=livraison(k,1)+1;
                    Sortie_annuelle_prevue=Sortie_annuelle_prevue-1;
                 end
     
                 if(Sortie_annuelle_prevue>0)
                    if rand<1/2
                        livraison(k,1)=livraison(k,1)+1;
                        Sortie_annuelle_prevue=Sortie_annuelle_prevue-1;
                    end
                end
         end
    end

  2. #2
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 295
    Par défaut
    Bonjour

    j'ai essayé de le programmer sur matlab mais mon code est très aléatoire
    Autant que l'énoncé, je présume.

    je dois distribuer équitablement sur 52 semaines une sortie annuelle de livraison.
    Si la sortie est annuelle, une des semaines est à 1 et les autres à 0.
    N'importe quelle semaine convient.
    Le côté "équitable" n'a pas de sens.

    Par exemple: pour un bonbon, nous avons prévue de le recevoir 4 fois cette année donc nous nous le recevrons 1 fois tous les 13 mois
    Une année est composée de 12 mois, pas 13.
    De plus, s'il y a 4 livraisons, il en faut une tous les 3 mois pour les espacer au maximum en recommençant l'année suivante. (pas 13)

    Comme, ici, on parle d'algorithmes, on voit bien que tu appliques l'algorithme de la division. Un procédé appris dès l'école primaire.

    La division te pose-t-elle des problèmes ?
    Si oui, lesquels ?

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2016
    Messages : 14
    Par défaut
    Bonjour flodelarab 😊, je n'ai aucun soucis avec la divison mais le problème n'est pas si simple que ça dans le sens où la division peut très bien nous donner des chiffres à virgule. Si la division par 52 nous donne 3.135 par exemple,nous allons pas avoir 3.135 bonbon livrée par semaine, il faut dispatcher aussi les 0.135 dans le vecteur_livraison_par_semaine (on veut que des entiers dans le vecteurs ) et comment je dois faire pour avoir le dispatch dans le vecteur deja fait équitablement ? Ohlala je sens je me complique un peu la vie mais j'y arrive pas 😓

  4. #4
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 295
    Par défaut
    Il s'agissait de division euclidienne ou division entière. Il n'y a pas de chiffre après la virgule.

    N'aurais-tu pas un exemple de cas qui ne marche vraiment pas ?... car là, ce qui bloque est vraiment trop flou.

  5. #5
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 493
    Par défaut
    salut

    il suffit d’arrondir tes chiffre de livraison est de compléter sur la dernière livraison

    reprenons ton exemple
    on suppose que l'on a 13 Q a livrer sur 12 mois reparti en 4 fois
    13/(12/4) => 13/3 =>4,333 => ce qui va te donner
    2 livraison de 4 Q
    et 1 livraison de 5

    pour la dernier en faites c'est assez simple il te suffit de faire
    Qt-(Qi*(NbLiv-1))

  6. #6
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 236
    Par défaut
    Si tu dois commander 5 bonbons, tu peux répartir ces 5 bonbons en 4 livraisons
    semaine 13 : 1 bonbon
    semaine 26 : 1 bonbon
    semaine 39 : 1 bonbon
    semaine 52 : 2 bonbons

    ou bien tu peux faire quelque chose comme :
    semaine 10 : 1 bonbon
    semaine 20 : 1 bonbon
    semaine 31 : 1 bonbon
    semaine 41 : 1 bonbon
    semaine 52 : 1 bonbon

    Ou encore :
    semaine 01 : 1 bonbon
    semaine 14 : 1 bonbon
    semaine 27 : 1 bonbon
    semaine 40 : 1 bonbon
    semaine 52 : 1 bonbon


    Selon quel critère tu vas choisir entre ces différents scénarios ?

    Et si tu as 44 bonbons, tu fais 44 livraisons ? en sautant une semaine de temps en temps ? Ou tu fais moins de livraisons, en livrant 2 voire 3 bonbons à chaque fois ?

    Selon les réponses à ces questions ... et donc selon ce qu'il y a dans ton cahier des charges, tu vas pouvoir bâtir ton algorithme.
    Mais si tu n'as pas les éléments pour répondre à ces questions, tu peux faire tout et surtout n'importe quoi.

    Je ne comprend pas pourquoi tu as déjà commencé à programmer en Matlab, alors que tu ne sais toujours pas ce qu'on te demande.

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2016
    Messages : 14
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    Selon quel critère tu vas choisir entre ces différents scénarios ?

    Et si tu as 44 bonbons, tu fais 44 livraisons ? en sautant une semaine de temps en temps ? Ou tu fais moins de livraisons, en livrant 2 voire 3 bonbons à chaque fois ?
    Bonjour tbc92, si j'ai 5 bonbons je dois établir cette stratégie:
    -premièrement je fais 5 livraisons
    -partager équitablement en terme de semaine : c'est à dire 1 livraison environ Toutes les 5 semaines.
    Dans le cas où j'ai 44 bonbons, oui je fais 44 livraison. Tant que ma quantité de bonbons n'est pas supérieur à 52( nombre maximum de semaine), je fais 1 livraison par semaine .
    Si ma quantité de bonbon est supérieur à mon nombre de semaine, j'aurai des semaines à 2 livraison ainsi de suite..
    Merci d'avance 😊

    Citation Envoyé par anapurna Voir le message
    il suffit d’arrondir tes chiffre de livraison est de compléter sur la dernière livraison
    Bonjour anapurna,
    je dois partagé les Q annuelles en 52 ( mon nombre maximum de semaine choisi) de manière équitable ( pas forcement en terme de quantité mais en nombre de semaine)
    Je vous remercie d'avance

Discussions similaires

  1. Réponses: 0
    Dernier message: 13/08/2013, 09h33
  2. [requête] cumul d'horaires par semaine
    Par Toff !!!!! dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 02/11/2005, 11h42
  3. avoir un état par semaine
    Par rangernoir dans le forum Access
    Réponses: 3
    Dernier message: 27/09/2005, 16h08
  4. [CR]grouper des dates par semaines, mais semaines FR !
    Par neo.51 dans le forum SAP Crystal Reports
    Réponses: 11
    Dernier message: 18/05/2004, 20h43
  5. Réponses: 3
    Dernier message: 19/04/2002, 00h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo