Combinaison de valeurs pour atteindre une somme cible

Pico3003 Messages postés 6 Statut Membre -  
 Profil bloqué -
Bonjour à tous,
Pour commencer je tiens à préciser que je suis débutant en vba!
Voilà mon problème:
J'ai besoin de réaliser un programme pour mettre en place des trains de banches (=réaliser le plan de coffrage d'un bâtiment), à la main c'est laborieux et je pense qu'il est possible de l'automatiser.
J'ai déjà trouvé un programme qui permet d'atteindre une valeur cible à partir d'une liste mais mon problème même si il répond au même principe, est plus complexe. J'essaye de l'adapter depuis déjà trop longtemps mais sans succés.

Le principe consiste à partir d'une liste définit de banches (une dimension 1, une dimension 2) à atteindre la hauteur du mur et la longueur du mur.
Par exemple, si le mur à une longueur de 5m et une hauteur de 3m, il faut trouver la meilleurs combinaison (celle utilisant le moins de banches possible) pour atteindre ces valeurs.

De plus comme il n'y a pas un choix pléthorique de dimension de banche les solutions exactent sont rares, il faudrait donc un système d'approximation du résultat.

Problème
- Une banche est utilisable dans les deux sens, il faut donc trouver la meilleure combinaison qui permet d'atteindre les deux valeurs cible.
- Il est possible de superposer des banches de hauteur différente pour atteindre la hauteur souhaiter .

Le problème du programme ci joint c'est qu'il gère soit la hauteur soit la longueur mais pas les deux en même temps. https://www.cjoint.com/?0GekL2CFJtZ

Merci d'avance au personne qui vont se pencher sur mon problème.

Bonne journée à tous

4 réponses

Pico3003 Messages postés 6 Statut Membre
 
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Bonjour,

C'est assez complexe ta demande.
Sans engagement de ma part, je suppose qu'il n'y a pas toujours une solution exacte.
Dans ce cas de combien déborder maxi ?
Le débordement est-il à privilégier ou est-il interdit sur une des deux dimension ?

Je pense qu'il faut aussi introduire une notion de minimisation des débordements. Sinon le programme risque de répondre 'prend les plus grandes, c'est là où tu en auras le moins et fait pas ch...'.
Et là, la meilleure solution ne sera peut-être pas le minimum de banches... Si tu pouvais inventer des critères d'acceptabilité (peut-être que je m'égare, à toi de le dire).

Comment procèdes-tu manuellement, y'a-t'il des astuces, des trucs de métier ? Pour voir si on peut optimiser par un semblant d'algorithme plutôt que d'explorer tout.

eric

Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
0
Babar64420 Messages postés 96 Statut Membre 3
 
Bonsoir,

Eriic, on n'a pas déjà vu ce fichier quelque part ? Celui pour lequel on n'avait pas cité la source... http://cjoint.com/13jn/CFBpBf84L04.htmhttp://cjoint.com/13jn/CFBpBf84L04.htm

voir l'échange
https://forums.commentcamarche.net/forum/affich-28119307-scenarios-sous-excel

Mais là on fait dans le grandiose : Je laisse le soin à Pico3003 de calculer le nombre de combinaisons possible!

Attendons qu'il nous réponde, pour voir...

Cordialement
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Bonsoir,

Si si.
A une époque, plusieurs centaines de téléchargements pour une vingtaine de merci, je trouve ça un peu léger.
J'avais même mis un mot de passe à moment donné, là ils étaient bien obligés de dire merci s'ils voulaient l'utiliser...
eric
0
Profil bloqué
 
Salut ,

j'ai tombé dans le même problème et j'ai pas trouvé un algorithme qui résoudre ca , tu-peux m'envoyer un exemple SVP.

Merci d'avance.
0
Babar64420 Messages postés 96 Statut Membre 3
 
Re,

Donc,
D'abord : MERCI
Ensuite: Travailler son projet (tableau de valeurs, mise en forme, stratégie, etc.)
Enfin : Vérifier la faisabilité (l'analyse combinatoire, c'est des math et pas de la bureautique Excel!).

Alors, Pico3003, merci de commencer par là. On "fait du code" APRES.

Cordialement
0
Pico3003 Messages postés 6 Statut Membre
 
Bonjour,

Merci pour ton aide eriiic, mais j'ai finalement trouvé une solution à mon problème en utilisant le programme que j'ai joint, la magie des mathématiques et une bonne nuit de sommeil!

Je suis désolé si de ne pas te remercier t'as offensé, mais dans le feu de l'action de recherche d'une solution j'ai tendance a oublié la personne caché derrière chaque programme alors merci , ton programme fonctionne à merveille. ;)

Cordialement

Pico3003
0