Optimisation avec contraintes

26classeur1.xlsx (10.89 Ko)

Bonjour,

Afin que vous compreniez mon problème je vous est créé un exemple que j'ajoute en pièce jointe.

En partant des informations dans la zone en haut à gauche j'aimerais pouvoir à l'aide d'une macro ou de la fonction solver d'Excel,

Pouvoir calculer les valeur situées dans le tableau plus bas avec les contraintes suivantes :

_ La somme de chaque colonne doit être égale à la somme de la liste de base.

_ Chaque valeur ne peut être utilisée qu'une fois par ligne du tableau de résultat.

Ca à l'air simple mais j'ai essayé différentes solutions je n'y arrive pas...

Je ne vous donne aucune piste pour ne pas influencer les idées que vous pourriez avoir

Un grand merci à tous,

26classeur1.xlsx (10.89 Ko)

Girodo

bonjour,

Cela semble être le même problème qu'ici

Et ce problème ne me semble pas du tout niveau débutant. Je me demande même si ça ne fait pas appel à un algo récursif (itératif)

perso je me suis battu là-dessus toute la journée, mais bernique !

A+

Bonjour,

Merci pour le lien ! C'est vrai que le problème semble similaire ! Je vais creuser çà en rentrant du boulot !

Et pour ce qui est des boucles et du fonctionnement par itérations successives je maitrise !

En fait il semble que ce soit relativement simple.

Il suffit de générer chaque ligne successivement (dans une boucle Do... Loop en vérifiant à chaque fois l'absence de doublon dans chaque colonne. S'il n'y a pas de doublon ni de de blanc on passe à la ligne suivante sinon on efface toute la ligne et on recommence en comptant les essais. Une difficulté semble être de prévoir au bout de combien d'essais on doit effacer la ligne (100 parait un chiffre raisonnable)

Je ne suis pas certain qu'il ne faille pas un deuxième compteur de sécurité qui stoppe la machine infernale disons à 20 000...

Malheureusement, je ne pourrais pas gratter dessus cet après midi, je suis de corvée...

A+

Bonjour,

si j'ai bien compris, voir feuil2 en pj

14classeur1-1.xlsx (10.70 Ko)

L'exemple que je donne au départ n'est pas bon ... Ma matrice est un cas particulier: Elle fait 5 x 5 ! Donc facile à résoudre...

Je remet un exemple avec 6x5 que vous compreniez la problématique !

21classeurtest.xlsx (10.86 Ko)

Hum...

Là ça devient carré-ment... incompréhensible !

A+

J'ai essayé de rendre mon exemple explicite en rajoutant des unités et des commentaires !

Merci d'avoir pris le temps de regarder

14classeur1.xlsx (10.94 Ko)

Bonsoir,

proposition de solution

lancer la macro vasy et voir résultats en feuil3

2235-heures.xlsm (20.34 Ko)

je te joins les 262 combinaisons possibles ...

https://www.cjoint.com/c/ECAgcMjIFN7

Merci pour la réactivité !

Pour ce qui est de la proposition çà me frustre ! La macro plante au moment de l'affichage du résultat !

Erreur d'éxécution 1004 sur la ligne suivante :

erreur exe

Pour les différentes combinaisons j'avais réeussi à calculer çà aussi mais c'est surtout le rangement avec contraintes qui me posait souci !

MERCI ENCORE !!


Autant pour moi si on lance ta macro depuis la feuill3 çà fonctionne parfaitement !

UN GRAND MERCI !! J'ai passé des heures à chercher là dessus ! Je vais décortiquer ton code dans tous les sens pour le comprendre en détail !!

Girodo a écrit :

Merci pour la réactivité !

Pour ce qui est de la proposition çà me frustre ! La macro plante au moment de l'affichage du résultat !

Erreur d'éxécution 1004 sur la ligne suivante :

Pour les différentes combinaisons j'avais réeussi à calculer çà aussi mais c'est surtout le rangement avec contraintes qui me posait souci !

MERCI ENCORE !!


Autant pour moi si on lance ta macro depuis la feuill3 çà fonctionne parfaitement !

UN GRAND MERCI !! J'ai passé des heures à chercher là dessus ! Je vais décortiquer ton code dans tous les sens pour le comprendre en détail !!

problème erreur 1004 devrait être résolu dans la version ci-jointe

1335-heures.xlsm (18.07 Ko)

Je suis étonné du nombre de propositions car je n'en trouve que 262 ! et sans même tenir compte de la contrainte Chaque valeur ne peut être utilisée qu'une fois par ligne du tableau de résultat

262 c'est le nombre de solutions qui donnent 35h si on résout l'équation avec les données que je vous ai donné.

Ensuite il y'a une étape qui constitue à ranger ces solution et en combiner 6 pour obtenir le planning !

Et il y'a plus de 1000 plannings qui correspondent aux critères !

Les deux résultats me paraissent donc cohérents !

Bonjour

voici mon raisonnement, peut-être me trompé-je quelque part :

il y a 8 manières différentes d'obtenir 35 avec les heures indiquées

tâche 1:02 tâche 1:02 tâche 1:02 tâche 1:02 tâche 2:03 tâche 2:03 tâche 2:03 tâche 3:06

tâche 1:02 tâche 2:03 tâche 2:03 tâche 3:06 tâche 2:03 tâche 3:06 tâche 4:08 tâche 3:06

tâche 4:08 tâche 3:06 tâche 4:08 tâche 4:08 tâche 3:06 tâche 3:06 tâche 4:08 tâche 3:06

tâche 5:11 tâche 6:12 tâche 5:11 tâche 4:08 tâche 5:11 tâche 4:08 tâche 4:08 tâche 3:06

tâche 6:12 tâche 6:12 tâche 5:11 tâche 5:11 tâche 6:12 tâche 6:12 tâche 4:08 tâche 5:11

il y a 60 permutations possibles pour chaque colonne de 1 à 6 et 5 pour chacune des 2 dernières, ce qui donnent 370 manières différentes d'obtenir 35 h avec les valeurs données.

Ce qui donne 60x60x60x60x5x5 possibilités parmi lesquelles il faut trouver celles qui donnent des valeurs uniques sur chaque ligne. je n'ai pas fait ce calcul.

Girodo a écrit :

262 c'est le nombre de solutions qui donnent 35h si on résout l'équation avec les données que je vous ai donné.

Ensuite il y'a une étape qui constitue à ranger ces solution et en combiner 6 pour obtenir le planning !

Et il y'a plus de 1000 plannings qui correspondent aux critères !

Les deux résultats me paraissent donc cohérents !

Hum, cela me tracasse, me tracasse, me tracasse, me tracasse, ... car j'avais vérifié que dans les 262 il y avait les combinaisons différentes possibles par attribution des tâches aux différentes personnes.

Grrr je vais revoir et étudier ma copie !

ben mince, mes solutions sont les suivantes et comprennent bien les permut' ! je continue d'investiguer en comparant les résultats ...

Ce que je viens de voir ! c'est basique mon cher acide ... je continue de mon côté même s'il faut y passer la nuit !


ok je retrouve les 370 (mes formules n'allaient pas jusqu'à la 7776ème combinaison) ! je vais m'infliger un gage .

combinaisons

Je remet le sujet en non résolu :'(

Après avoir regardé ton code je vois que tu testes l'ensemble des solutions et ensuite tu fais un classement.

En fin de compte tu en est rendu au point qui me fait bloquer !

Mon problème : En réalité j'ai vais travailler sur 7 jours et j'aimerai pouvoir gérer jusqu'à 15 salariés.

Le nombre de possibilité est tellement important qu'il devient très compliqué et LONG à gérer :/

Mon code bien que beaucoup moins propre que le tiens n'est jamais parvenu à une solution. C'est ce point d'optimisation qui fait fumer mon cerveau !

Rechercher des sujets similaires à "optimisation contraintes"