Optimiser planning de réservations de chambres

SwimCoachNico79

XLDnaute Occasionnel
Bonsoir à tous,

Afin d’optimiser un planning de réservations de chambres, je cherche une formule ou un code vba qui me permette de réduire au maximum le nombre de chambres louées en optimisant les réservations

Exemple : la personne 1 loue la chambre 1 du 1er au 18 mais, la chambre 4 est louée par la personne 4 du 19 au 27 mai et pour finir la chambre 20 est louée par la personne 20 du 28 au 30 mai.
Comment faire pour optimiser la chambre 1 et permettre de la louer du 1er au 18 mai à la personne 1 puis du 19 au 27 mai à la personne 4 puis du 28 au 30 mai à la personne 20.

J'ai conscience que cela est simple à traiter manuellement quand on a quelques lignes, mais quid quand il y en a 250 ou plus ?

Quelqu'un a t il une idée.

En vous remerciant par avance.

SCN79
 

Pièces jointes

  • Exemple.xlsx
    8.9 KB · Affichages: 114
  • Exemple.xlsx
    8.9 KB · Affichages: 133
Dernière édition:

ODVJ

XLDnaute Impliqué
Re : Optimiser planning de réservations de chambres

Bonsoir à tous,

ça ressemble à un problème de coloration de graphe :
tu construis le graphe des incompatibilités et tu le colories.
tu lances après un solveur et tu attends, tu attends.... enfin, ça dépend de ton solveur. (10 mn chez moi)

et tu obtiens un résultat : 12 chambres suffisent
tu regroupes (1 et 15), (2 et 4), (3 et 9), (5 et 13), 6 tout seul, 7 tout seul, tu regroupes (8, 14, 19), tu laisses 10 tout seul, tu regroupes (11 et 17), (12 et 20) et tu termines en laissant 16 et 18 chacun tout seul.

sauf erreur, ça fait 12 chambres.

pour ce qui est d'une formule ou macro.... euh ....

il y a des heuristiques gloutonnes pour le nbre de couleurs, mais pour les solutions.... à voir...

cordialement
 
Dernière édition:

SwimCoachNico79

XLDnaute Occasionnel
Re : Optimiser planning de réservations de chambres

Bonjour ODVJ,
Bonjour le forum,

Je te remercie beaucoup pour ta réponse.

Ton résultat correspond pleinement à ce que je cherche à faire. Par contre est il envisageable que tu m'expliques pas à pas... les différentes étapes pour arriver à ton résultat ?

Cordialement,
SCN79
 

CPk

XLDnaute Impliqué
Re : Optimiser planning de réservations de chambres

Bonjour Swim OVDJ. faut-il mettre en place un système qui réorganisera les plannings une fois qu'ils auront été établi ou faut-il créer un système qui les organises correctement dès le départ ?
 

SwimCoachNico79

XLDnaute Occasionnel
Re : Optimiser planning de réservations de chambres

Bonjour CPk,

Dans mon cas présent, il s'agit plutôt du premier système.
Pour votre deuxième solution je ne vois pas trop à ce que cela pourrait ressembler (dans le fonctionnement).

Merci pour votre aide.
 

CPk

XLDnaute Impliqué
Re : Optimiser planning de réservations de chambres

Pour la deuxième solution, moi non plus car c'est à définir en fonction du fichier original. Pour ma part, je pense qu'il est mieux de faire bon du premier coup que de passer deux fois plus de temps sur un fichier (réservation + réorganisation).
 

SwimCoachNico79

XLDnaute Occasionnel
Re : Optimiser planning de réservations de chambres

Je suis d'accord avec vous.
La réponse d'ODVJ me semble bien correspondre (car exploitable dans d'autres situations que mon cas présent), malheureusement je ne sais pas comment faire pour construire le graph des incompatibilités puis utiliser le solveur (bien au-delà de mes compétences).
 

CPk

XLDnaute Impliqué
Re : Optimiser planning de réservations de chambres

Idem, mais un conseil, postez votre fichier original sans donnée confidentielles car une macro adaptée pour un bout de fichier il faudra la réadapter une nouvelle fois pour un autre fichier.
 

ODVJ

XLDnaute Impliqué
Re : Optimiser planning de réservations de chambres

Bonjour à tous,

pour le graphe d'incompatibilité, voilà comment faire.
c'est simple et c'est sur excel :
xld_planning_resa_chambre.jpg

pour le reste, il faut mettre en forme cette matrice pour l'injecter dans un modèle de solver qui n'est pas celui d'excel (GLPK pour info).
Le modèle est tout fait et peut s'utiliser même sans comprendre.
Il faut quand même investir du temps pour installer le solver et s'habituer à son maniement.

Il est aussi possible de rendre transparent cet échange d'information entre excel et GLPK mais pour cela, il faut du code.
C'est pas compliqué mais c'est long, en tout cas, pour moi.

Mais il faut peut-être attendre d'autres réponses des participants du forum car l'approche coloration de graphe n'est peut-être pas la meilleure.

En tout cas le modèle utilisé demande du temps pour trouver la solution, même pour cette petite instance.
il est possible d'utiliser d'autres solveur qui eux sont payants. Peut-être y as-tu accès?
Et là, les temps de réponses sont parfois décoiffants.

Cordialement
 

ODVJ

XLDnaute Impliqué
Re : Optimiser planning de réservations de chambres

re

Je confirme le côté décoiffant de certains solver : 0.2s avec Cplex au lieu des 10mn de GLPK.
Il faut dire que le programme est complètement différent (programmation par contraintes). D'où le résultat.

En même temps, si tu n'as pas accès à Cplex, ça te fait une belle jambe...

cdlt
 

ODVJ

XLDnaute Impliqué
Re : Optimiser planning de réservations de chambres

Bonjour,

GLPK, tu le télécharges, tu le dézippes et c'est tout.
Dans le dossier, tu as un exécutable, GLPSOL.EXE , de la doc, des dll, des exemples.

Tu y ajoutes xld_color.mod, tu ouvres une fenêtre DOS (cmd enter dans la ligne de commande du menu démarrer de windows).
Dans la fenêtre DOS, tu vas dans le bon directory et tu tapes glpsol.exe -m "xld_color.mod" -o "xld_color.out".
après quelques minutes tu peux ouvrir le fichier xld_color.out qui vient d'être créé et tu regardes la variable X[i,j] en fin de fichier.

Si tu veux plus de facilités pour son utilisation en direct, tu télécharges GUSEK qui est un IDE pour GLPK et là, tu es pris par la main.

je te joins le modèle pour que tu puisses tester.

cordialement
 

Pièces jointes

  • xld_color.zip
    18.6 KB · Affichages: 59
  • xld_color.zip
    18.6 KB · Affichages: 60

Discussions similaires

Statistiques des forums

Discussions
312 083
Messages
2 085 189
Membres
102 809
dernier inscrit
Sandrine83