Solveur Excel / maths

Bonjour à tous,

Je suis en train de chercher à optimiser un problème depuis quelques heures mais je n’arrive pas à traduire une contrainte

Voici le problème :

image

Chaque piste doit être traité à une certaine vitesse en km / H
et chaque personne a une vitesse objectif en km /H.

Le but est d’affecter a chaque personne un nombre de piste qui lui permettra d’atteindre au mieux ses objectifs de vitesse.

J’ai donc utilisé le solveur avec pour objectif de minimiser l’écart entre la vitesse réel et la vitesse objectif.

Chaque piste doit être traité par une et une seule personne et chaque personne doit au moins avoir une piste, jusque la pas de problème.

Le souci est que je n’arrive pas à traduire mathématiquement la contrainte suivante :

les pistes attribuées à une personne doivent être côte à côte par exemple piste 1,2,3 OK mais piste 1,3,5,6 NON OK car elles ne sont pas côte à côte.

Pour écrire cette contrainte j'ai fait ça :

J'ai mit dans des cellules , pour chaque coureur, le minimum des numéros de piste qu'il court, le maximum, et le nombre de pistes.
Et en contrainte j'ai mit : nombre de piste = maxi-mini+1.

Souci : le problème n'est plus linéaire et je n'obtiens aucun résultat même en mettant GRG non linéaire.

Ce que je ne comprends absolument pas c'est qu'en réalité il y a énormément de solution possible que je trouve moi même mais j'aimerai la meilleure solution sauf que le solveur Excel ne veut rien savoir.

Une personne d’entre vous aurait une solution ou bien ce problème est impossible à résoudre ?

Merci à vous

Bonjour,

merci de mettre ton fichier, plutôt qu'une image. L'objectif de vitesse tel qu'exprimé me parait très bizarre. (somme de vitesse ?)

As-tu essayé l'algo évolutionnaire (pas de garantie de trouver l'optimum). Sinon la contrainte sur les pistes me semble très forte et il devrait être possible d'obtenir un résultat rapidement en force brute avec vba, si c'est une option envisageable.

f

Bonjour h2so4,

Merci de ta réponse je viens de mettre le fichier mais je n'ai pas essayé d'algorithme, je pensais pouvoir faire ça avec le solveur d'excel. Je ne suis pas très bon en algorithme et vba.

8exomaths.xlsx (14.28 Ko)

re-bonjour,

mais je n'ai pas essayé d'algorithme,

je voulais dire la méthode du solveur utilisant l'algorithme évolutionnaire.

Oui j’ai utilisé les 3 options …

bonjour,

une proposition via VBA (force brute)

10exomaths.xlsm (23.09 Ko)

Bonsoir,

Parfait merci beaucoup je viens d'essayer et ça fonctionne !!!!

J'ai une dernière contrainte à ajouter :

-> rendre incompatible 2 pistes par exemple la 6 et la 7 donc une personne ne peut pas faire ces 2 pistes tout en respectant les autres contraintes déjà cité et prises en compte par ton programme. Saurais-tu intégrer ça à ton programme ?

Egalement STP pourrais tu ajouter des commentaires au VBA pour que je puisse comprendre ta logique et adapter le VBA en fonction de l'énoncé (si j'ai d'autres pistes / personnes)

En tout cas merci beaucoup !

bonsoir,

avec la contrainte sur la piste 7 et les commentaires voir code vba.

11exomaths.xlsm (27.61 Ko)

Bonjour,

je te remercie énormément !

Il me reste plus qu'a comprendre ton code et l'adapter.

Merci beaucoup !!!

Bonne journée

Bonjour h2so4,

En fait je viens de me rendre compte en analysant le fichier qu'il y a 2 points qui ne vont pas (dont un qui est de ma faute car je me suis mal exprimé) :

- le premier c'est que dans l'excel tu as mis "ABS" or moi je ne veux pas qu'une personne est une vitesse qui soit supérieure à sa vitesse objective. C'est à dire si une personne veut faire du 55km / H max alors on lui affecte au maximum un total de 55 km/H or en testant je suis tombé sur une affectation > à l'objectif...

- deuxième point (ma faute), je ne veux pas forcément que chaque personne ait une piste, par exemple si je mets que l'objectif de vitesse d'une personne est de 0 alors elle participe pas et dans le tableau on lui affecte rien pour que sa vitesse soit de 0.

Je sais pas si tu as compris

En tout cas je te remercie bcp pour ton aide

bonjour,

une nouvelle version, c'est ma dernière contribution sur le sujet. Il reste que je trouve très bizarre de faire un objectif sur une somme de vitesses (je me serais attendu à objectif sur une vitesse moyenne).

5exomaths-v2.xlsm (28.52 Ko)

Parfait merci beaucoup.

Oui tu as raisons c'est plus logique une moyenne des vitesses mais dans mon cas j'ai vraiment besoin des sommes.

Merci encore pour ta participation active

Bonne soirée

Rechercher des sujets similaires à "solveur maths"