Bonjour,
ça doit faire un moment maintenant que je planche sur un problème qui peut paraître simple, mais qui est pour le moins assez complexe : Optimiser le placement des invités d'un mariage afin qu'ils passent globalement une bonne soirée.
On sait tout a quel point c'est un calvaire à réaliser. L'objectif de mon programme est de prendre en entrée des données sur les invités, et faire une proposition de placement aux organisateurs.
Les données du problème
Voici les éléments dont je dispose :
- Type d’événement à organiser : une soirée de mariage
- Nombre d'invités :
$100 \leq N \leq 150$ - Nombre maximum de personnes par table :
$6 \leq max \leq 10$ - Caractéristiques connues de chaque invité :
- age (je pensais partir sur des fourchettes d'age)
- sexe (masculin, féminin)
- statut (étudiant, travailleur)
- orientation sexuelle (hétéro, bi, homo)
- langues parlées
- pays déjà visités (dont le nombre de temps qu'ont y a passé en gros)
- le domaine d'étude/travail (droit, informatique, marketing, social, finance, etc.)
Pour chaque invité, on sait aussi s'il existe des relations (couple, amis, patentée, fratrie, etc) entre eux.
L'objectif à atteindre
L'objectif est donc, à partir de ces informations, de modéliser une fonction qui permet de ranger chaque personne sur une table précise pour que la majorité des personnes assises passent une bonne soirée.
Le type d’événement étant un mariage, j'ai commencé à élaborer des règles que je pense pouvoir faire partie de la fonction de décision :
- La relation de couple est une relation très forte. Il est donc obligatoire que chaque couple soit sur la même table
- La relation d'amis est la deuxième relation prioritaire après celle du couple
- On essayera d'éloigner les invités qui sont en relation de parentés
- La relation de fratrie n'a pas beaucoup d'importance
- Chaque invité doit avoir le maximum de personnes qui parlent la même langue que lui sur sa table
- Les invités appartenant à une orientation sexuelle minoritaire (ex : homo) doivent être sur la même table (on paramètrera un homo comme étant autre chose si on sait qu'il ne veut absolument pas être régi par cette règle)
- On essayera de rassembler les invités qui ont déjà vécus dans les même pays sur plus de 6 mois
- On essayera de rassembler les invités dont le domaine est proche
Mes interrogations
Voyez-vous certaines règles que j'aurai pu oublier dans le lot ? Je mettrais à jour le premier topic pour intégrer vos propositions pertinentes.
Sous quelle forme vous modéliserez un problème du genre (programme linéaire, graphes, SAT, etc.) ?
Merci de m'avoir lu et pour vos retours qui me seront précieux.