Combinaison de valeurs pour atteindre une somme cible

Fermé
Pico3003 Messages postés 6 Date d'inscription jeudi 4 juillet 2013 Statut Membre Dernière intervention 9 juillet 2013 - 4 juil. 2013 à 10:39
 Profil bloqué - 25 juil. 2013 à 01:59
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 Date d'inscription jeudi 4 juillet 2013 Statut Membre Dernière intervention 9 juillet 2013
4 juil. 2013 à 10:59
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 209
Modifié par eriiic le 5/07/2013 à 11:56
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 95 Date d'inscription mardi 13 décembre 2011 Statut Membre Dernière intervention 8 janvier 2019 3
6 juil. 2013 à 23:52
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 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 209
7 juil. 2013 à 00:06
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é
25 juil. 2013 à 01:59
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 95 Date d'inscription mardi 13 décembre 2011 Statut Membre Dernière intervention 8 janvier 2019 3
7 juil. 2013 à 00:19
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 Date d'inscription jeudi 4 juillet 2013 Statut Membre Dernière intervention 9 juillet 2013
7 juil. 2013 à 16:51
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