Bonjour,
@bsalv, je n'ai pas regardé vos derniers fichiers 🙁
J'ai essayé de retoucher votre fichier (du post 24 je crois) pour appliquer ce que je disais précédemment
Une stratégie serait de décomposer chaque boucle en 2 étapes :
Etape 1 : faire un traitement aléatoire pour affecter uniquement les élèves de E3 (facteur limitant)
Etape 2 : faire un traitement aléatoire pour affecter uniquement les élèves des autres établissements.
en pj le fichier mais je ne fais pas mieux que votre 58 - 30 - 8 si le but est de maximiser les 111 prioritairement.
J'ai fait un 57 - 32 - 7 (avec 89 pour 111 + 110, 88 pour vous).
Pas mieux avec une dizaine de tests (de 1000 boucles).
Mais il n'y a peut-être pas mieux avec le jeu d'essai actuel (bricolé aléatoire)
Quelques explications :
Dans la feuille, j'ai ajouté des paramètres sur lesquels on peut jouer :
- Limite et type Lim (voir commentaires de cellule)
- Points si KO (voir commentaires de cellule)
J'ai modifié la formule de calcul des points (colonne Points de Tabel2) qui s'appuie sur les paramètres i2:i4 (i3 et i4 sont calculés).
En jouant sur tous les paramètres, selon que l'on décide de privilégier les 111 ou les 111 + 110, on aboutit à des best différents.
J'ai enrichi la barre d'état pour savoir où on en est en cours de traitement
La 1ère étape dans chaque boucle fait les affectations pour les élèves de E3.
On teste le résultat intermédiaire en fonction des paramètres (Limite, Type Lim)
Si ko, on passe directement à la boucle suivante (ces boucles avortées durent chez moi 0.3 secondes). Ce qui permet de gagner du temps et donc d'y aller fort sur le nombres de boucles mais si on est trop restrictif, on peut passer à côté de solutions au final meilleures.
Si ok, on poursuit la boucle,
étape 2 avec les affectations des élèves des autres établissements en tenant compte pour le Best des paramètres Points KO en i2:i4. Chaque boucle complète dure cher moi 1.2 secondes.
J'ai masqué les colonnes A,B,C, mis en commentaires l'autofit des solutions .... pour avoir tous les tableaux sur la même page (plus pratique pour la mise au point). A remettre donc en place.
Dans le tableau Tabel4, comme je l'ai déjà dit, le poids me parait inutile (non confirmé), j'ai remplacé la formule =PUISSANCE(10;[@count]-5) par 1 sur les count > 1.
Les commentaires dans le code sont les miens pour me repérer dans le code de
@bsalv qui a mis les siens dans une version que je n'ai pas utilisée.
Ajout d'une feuilles avec quelques stats.
Pour ma part, je pense avoir fait le tour de la question.
@andco a à sa disposition nos fichiers.
"Mon" fichier est le fichier de @bsalv 😍 sur lequel je n'ai fait que quelques adaptations
Il pourra avec des vœux réels et en jouant sur les paramètres, en s'aidant de trèfles à 4 feuilles, fers à cheval ... essayer de trouver la meilleure solution.