Répartition et optimisation selon de choix

Bonjour tout le monde,

J'avais déjà fait un post sur ce forum qui m'avait bien aidé, à propos de la même problématique. J'aimerais à présent améliorer mon outil

Je résume la situation: Je suis enseignant et dans mon école, tous les jeudis, nous proposons des ateliers (sportifs, créatifs, informatiques, etc.).

Concrètement, toutes les 3 semaines, les élèves reçoivent un listing d'ateliers auxquels s'inscrire. Il y a à peu près une trentaine d'ateliers disponibles, chacun avec une limite d'inscription (parfois max 15 élèves, parfois 24, parfois 60, ...). Chaque élève rempli une enquête dans laquelle ils sélectionne, par ordre de préférence, ses 4 ateliers auxquels il voudrait bien participer. (choix 1 > choix 2 > choix 3 > choix 4). Concrètement, c'est là que démarre mon travail. Je reçois le résultat de l'enquête avec pour chaque élève, ses 4 choix (sous forme de numéro, de 1 à 30 s'il y a 30 ateliers):

Élève 1 - Choix 1 - Choix 2 - Choix 3 - Choix 4
Élève 2 - Choix 1 - Choix 2 - Choix 3 - Choix 4
Élève 3 - Choix 1 - Choix 2 - Choix 3 - Choix 4
...

Le fichier excel que j'utilise (et qui m'a été proposé sur ce forum) me permet de remplir les ateliers (en fonction de leur capacité) grâce aux choix des élèves. Pour info, je mélange la liste des élèves pour que le premier de la liste (qui aura d'office son premier choix) ne soit pas toujours le même.

Les ateliers se remplissent petit à petit et lorsqu'un atelier est complet, on passe au choix suivant de l'élève. Le souci rencontré est qu'on a des ateliers qui remportent beaucoup plus de succès que d'autres. Par exemple, un atelier Football aura plus d'intéressés qu'un atelier Tricot... Forcément, je me retrouve avec une série d'élève qui n'ont pas pu être placés parce que les 4 ateliers de leurs choix ont été remplis par des élèves qui les précèdent dans la liste.

Mon outil n'optimise donc pas le placement de mes élèves. Dans un monde idéal, il me faudrait un outil qui optimise le placement pour que 100% des élèves ayant rempli l'enquête trouvent chaussure à leur pied (indépendemment de la hiérarchie de leurs choix donc...).

Dans le fichier ci-joint, vous trouverez dans le premier onglet, l'outil de placement en fonction de la capacité maximale des 30 ateliers proposés. Dans la colonne I, le numéro de l'atelier dans lequel l'élève est inscrit. Si au lieu d'un numéro, il est indiqué "FAUX", cela signifie que ses 4 choix sont déjà complets.

J'espère que ma problématique est claire et que quelqu'un pourra m'aider. Je sais même pas si c'est possible d'optimiser cela via Excel...

Merci d'avance,
monkeybe

Bonsoir,

Je propose une solution qui n'est pas parfaite, comme la problématique principale est de faire en sorte que tous les élèves aient un atelier qu'ils ont choisi, j'ai misé sur le fait de traiter les plus difficiles à placer en premier, à savoir ceux qui ont choisi uniquement des ateliers que beaucoup d'élèves veulent.

J'ai ensuite trié la liste par score du plus élevé au plus faible et le résultat semble prometteur, maintenant il restera peut-être à adapter ce calcul de score et à peut-être les convertir en tranches de difficulté pour intégrer un peu plus d'aléatoire dans l'affectation des ateliers, mais l'idée est là.

Merci beaucoup, je jette un oeil et je reviens vers toi :-) C'est super gentil déjà !

Re-bonjour Ausecour. C'est absolument brillant ce que tu m'as fait. Tu viens de nous faire gagner des heures de boulot pour les prochaines années :-)

1000 mercis !

Bonjour Ausecour et Monkeybe,

Et bravo Ausecour pour la solution, même si je comprends pas ta formule. J'imagine que tu attribue 100% au 1er choix de l'élève et 25% au 4éme choix...mais j'arrive pas à savoir comment tu obtiens 508.75 à la 1ere ligne quand j'obtiens 58.75 =(25*1)+(15*0,75)+(29*0,5)+(30*0,25).

Trés intéressant ce problème, moi j'aurais fait un tirage au sort avec excel pour avoir les élèves qui rentrent dans un des ateliers qui ont le plus de succès, puis en répartissant les non tirés sur leur 2ème choix.

Cdt

Bonjour Ausecour et Monkeybe,

Et bravo Ausecour pour la solution, même si je comprends pas ta formule. J'imagine que tu attribue 100% au 1er choix de l'élève et 25% au 4éme choix...mais j'arrive pas à savoir comment tu obtiens 508.75 à la 1ere ligne quand j'obtiens 58.75 =(25*1)+(15*0,75)+(29*0,5)+(30*0,25).

Trés intéressant ce problème, moi j'aurais fait un tirage au sort avec excel pour avoir les élèves qui rentrent dans un des ateliers qui ont le plus de succès, puis en répartissant les non tirés sur leur 2ème choix.

Cdt

Bonjour,

J'ai en effet utilisé une sorte de pourcentage, le calcul c'est: le nombre de personnes ayant choisi le même atelier que son premier choix x un coef dépendant de si c'est leur premier ou leur 4ème (1; 0.75; 0.5; 0.25) + nbPers ayant choisi le même atelier que son second choix x coef etc...
Ce qui donne pour le premier étudiant:
(93 x 1 + 18 x 0.75 + 20 x 0.5 + 14 x 0.25) + (56 x 1 + 43 x 0.75 + 35 x 0.5 + 41 x 0.25) + (27 x 1 + 42 x 0.75 + 45 x 0.5 + 58 x 0.25) + (75 x 1 + 64 x 0.75 + 74 x 0.5 + 69 x 0.25)
soit 120 + 116 + 95.5 + 177.25 = 508.75

Mais bon, c'est pas parfait comme système, une méthode permettant d'avoir un peu plus d'aléa ça aurait par exemple été de répartir les élèves par tranche de score pour avoir environ 25% des étudiants dans 4 groupes de difficulté, et ensuite piocher au hasard par groupe, du groupe le plus compliqué à placer au plus facile.

En tout cas c'est sûr que la problématique est intéressante et qu'on peut proposer de nombreuses solutions!

Bonjour à tous,

@Ausecour, j'adore le pseudo (j'ai pas trouvé la bouée de sauvetage dans les icônes )

Plus sérieusement je vois pas ou tu prends tous ces chiffres, par exemple de 18 à 14 pour les 1ers chiffres.

@monkeybe

Dans ton 1er post :

J'avais déjà fait un post sur ce forum qui m'avait bien aidé, à propos de la même problématique. J'aimerais à présent améliorer mon outil

Mais çà doit pas être sur ce forum, et j'aurais bien voulut avoir d'autres infos, et savoir si ces premiers tirages vont bien.

46tas-ateliers.xlsm (111.62 Ko)

Cdt

Bonjour à tous,

@Ausecour, j'adore le pseudo (j'ai pas trouvé la bouée de sauvetage dans les icônes )

Plus sérieusement je vois pas ou tu prends tous ces chiffres, par exemple de 18 à 14 pour les 1ers chiffres.

@monkeybe

Dans ton 1er post :

J'avais déjà fait un post sur ce forum qui m'avait bien aidé, à propos de la même problématique. J'aimerais à présent améliorer mon outil

Mais çà doit pas être sur ce forum, et j'aurais bien voulut avoir d'autres infos, et savoir si ces premiers tirages vont bien.

46tas-ateliers.xlsm (111.62 Ko)

Cdt

La première parenthèse ce sont les nombres de personnes qui se sont positionné sur le même atelier que le 1er choix de l'étudiant: sur leur premier choix + sur leur deuxième choix + sur leur troisième choix + sur leur quatrième choix, si par exemple c'est l'atelier 25 son premier choix, tu trouveras la somme en cumulant le nombre d'étudiants qui s'affichent en filtrant un à un les choix 1 à 4 en mettant 25 en atelier.

Je ne sais pas si j'ai été bien plus clair...

Bonjour à tous Ausecour, monkeybe,

Quelqu'un saurait-t-il recopier la formule sans que çà bug :

=SOMMEPROD((tableau[[C1]:[C4]]=[@C1])*{1.0,75.0,5.0,25})+SOMMEPROD((tableau[[C1]:[C4]]=[@C2])*{1.0,75.0,5.0,25})+SOMMEPROD((tableau[[C1]:[C4]]=[@C3])*{1.0,75.0,5.0,25})+SOMMEPROD((tableau[[C1]:[C4]]=[@C4])*{1.0,75.0,5.0,25})

dans mon appli.

Donc depuis le fichier d'ausecour copie-de-ateliers-du-jeudi-duplette-6-anaconda.xlsx , page "vote des élèves", colonne I "difficulté de placement",

à TAS.ateliers.xslm, page "recap1", colonne G "Diff.plact".

Merci

Bonjour,

Plusieurs problèmes faisaient que ça buguait:

  • Champ nommé à la place d'un tableau nommé, j'ai remis un tableau nommé (mettre sous forme de tableau)
  • problème de gestion des listes, j'avais mis des listes comme ça {1\0.75\0.5\0.25} et non comme ça {1,0.75,0.5,0.25}

Merci, j'y suis arrivé.

Bonjour,

Par contre çà ralentit trop l'application. Je préfèrerais une macro sur la formule sommeprod, dur dur.

image

Mais en remettant sous forme de champs, çà passe avec çà, et çà ralentit plus.

image

C'est l'inconvénient des grosses formules, sinon on passe les paramètres de calcul en manuel, ça évitera de recalculer les formules à chaque changement de valeur dans une cellule.

Rechercher des sujets similaires à "repartition optimisation choix"