Page 1 sur 1

Plan de table

Posté : 13 janv. 2015, 17:08
par nagstef
Bonjour,

Responsable d'une résidence de vacances, j'ai un listing en base de données avec des familles (de 1 à 6 personnes) sur une période donnée.
A coté de cela, j'ai une salle de restaurant, dans laquelle j'ai des tables, sauf que ces tables ne sont pas de la même taille : table de 10, 12, 14, 20 personnes etc ..

Je voudrais savoir s'il existe un algorithme ou une fonction afin de positionner au mieux toutes les familles en optimisant les remplissage des tables.

Merci de votre aide.

Stéphane

Re: Plan de table

Posté : 13 janv. 2015, 18:33
par @rthur
Problématique intéressante dont je n'ai pas la solution mais qui m'intéresse :)

Une question : qu'entends-tu par "optimiser le remplissage des tables" ?
Est-ce que l'objectif est de remplir au maximum un minimum de table ou de répartir le plus possible sur l'ensemble des tables existantes ?


Un exemple : si j'ai 3 familles de 4 personnes et 3 tables de 12 places est-ce qu'il vaut mieux avoir 1 famille par table ou les 3 familles sur la même table (et donc 2 tables de vide) ?

Re: Plan de table

Posté : 13 janv. 2015, 18:38
par nagstef
Dans MA logique, sur ce point précis, je souhaite remplir au mieux les tables afin d'en laisser le maximum vides.

De toute façon, si une solution m'est proposée via le forum, je pense qu'ensuite, il ne restera plus qu'a réfléchir pour un autre mode d'optimisation.

Re: Plan de table

Posté : 13 janv. 2015, 20:04
par @rthur
Bon alors j'ai beau me creuser la tête, je ne vois pas de solution simple pour modéliser ton problème.

Et soudainement, je suis tombé sur une thèse dédiée à ton sujet :
http://tidel.mie.utoronto.ca/pubs/These ... to.phd.pdf
Bon courage pour la lecture :D

Re: Plan de table

Posté : 14 janv. 2015, 10:40
par sirakawa
Il s'agit d'une solution par programmation sous contraintes mais dont les contraintes sont très supérieures à celles que je suppose être celles d'un logis de vacances:

tables combinables
service à des tables séparées pour des groupes séparés;
plusieurs services à des heures imprédictibles dans un intervalle donné;
possibilité de réserver ou non...

Ca n'empeche qu'on doit pouvoir se servir de programmation sous contrainte dans ton cas... ou par contraintes

Re: Plan de table

Posté : 14 janv. 2015, 17:31
par sirakawa
Tout le monde mange à la même heure? (Il y a un seul service)
Il faut mettre sur la même table les gens du même groupe?
Un Tableau des tables:
$tables = array ( 1=> 30, 2=>16, 3=>4, 4=>4); //ordre sans importance
IUn tableau des groupes à caser :
$groupe = array ( 1=> 6, 2=>6, 3=>4, 4=>4, 5 =>2);//ordre important
Je fais la somme des gens à placer pour voir s'ils ne tiendraient pas sur une seule table.
1 Je case le plus gros groupe sur la plus grande table.
A Je cherche si un groupe complète exactement cette table:
si oui je le loge et je repars en 1avec le table suivante
si non je case le plus grand qui tient
si la table n'est pas complète je repars en A sinon en 1avec le table suivante