Minimiser les retards

Bonjour,

Je ne suis pas très bon avec les algorithmes et la VBA sous Excel..

Serait-il possible d'avoir un algorithme pour faire en sorte de trier la colonne "Ordre Tache" en minimisant mon nombre total de retard (Le nombre de "Oui" dans la colonne "Retard") ainsi que nombre de jours de retard par ligne ? En changeant l'ordre des ligne uniquement, trouver le bon ordre optimal

Voici le fichier en question :

9testalgov1.xlsm (13.37 Ko)

Si vous avez la moindre question, n'hésitez pas

Merci beaucoup par avance

Up ! S'il vous plait

La seul possibilité qui me vient quand je vois ton tableau c'est de suivre l'algorithme suivant :

  1. Calculer la taille de ton tableau : NB(A:A)
  2. Calculer le nombre de possibilité de rangement (factorielle): Fact(NB(A:A))
  3. Faire une boucle qui teste toutes les possibilités
    1. Changer l'ordre des tâches**, la durée et la date butoir, lancer le recalcul de tes colonnes calculées durée cumulée, date de fin estimé et nombre de retard
    2. Dès que le nombre de retard est inférieur à celui enregistrer
      1. Alors enregistré la combinaison des tâches
  4. Finir par mettre la dernière combinaison enregistrée avec toutes les colonnes qui vont bien

** Pour changer l'ordre du dois faire une boucle imbriqué dans l'autre afin de mettre la ligne Ln à chaque position et mettre les autres lignes dans l'ordre (si tu mets ta L1 en L3 ta L2 vient en 1 ta L3 en 2 donc Li devient Li-1)

Tu te rend très vite compte que ton programme va tester "8.8417619937397E+30" possibilité pour ton petit tableau de 29 lignes. Ce qui est énormément long même si tu l'optimises dans un variable tableau afin de gagner en vitesse.

Je t'avoue que j'avais commencé à écrire le code mais j'ai pas eu la foie de continuer trop de boucle imbriqué et différentes. C'est un bordel sans nom qui dépasse ma patience mais pas impossible ;)

Bonne chance

D'accord merci pour ton message

J'ai un algorithme possible, c'est l'algorithme de Moore Hodgson, mais je ne sais absolument pas comment le coder ou le traduire en VBA...

Up, personne ne sait m'aider sur ce sujet ?

bonjour,

une solution avec le solveur qui minimise le nombre de jours de retard, pas le nombre de "oui" en utilisant un algo evolutionnaire, donc pas de garantie d'avoir trouvé l'optimum, mais bon espoir d'avoir trouvé quelque chose de bien optimisé.

19testalgov1.xlsm (16.36 Ko)

Bonjour h2so4,

Waouh !

Impressionnant, c'est exactement ce que je cherche !

Penses-tu que c'est possible de rajouter des contraintes ?

Je voudrais que le solveur regroupe en plus un regroupement des couleurs du plus foncé au plus clair (plus petit au plus grand dans le tableau) tout en optimisant le nombre total de jours en retard, qu'il fasse un compromis, ou un tri ?

Est-ce possible tu crois ?

Merci en tout cas pour ton aide

15testalgov2.xlsm (16.68 Ko)

bonjour,

cela revient à lancer le solver pour chaque couleur.

Rechercher des sujets similaires à "minimiser retards"