Algoritmo per determinare la disponibilità ottimale per la pianificazione degli appuntamenti con diverse risorse

4

Sto lavorando su un sistema in cui sono pianificate diverse risorse (utenti, stanze e attrezzature). Ogni appuntamento è programmato per un utente e può anche richiedere una stanza e / o un'attrezzatura. Gli appuntamenti sono programmati nel tempo, riempiendo lentamente il calendario. Non è quindi un classico problema di pianificazione in cui è possibile pianificare tutto in una volta.

Il mio problema è determinare "ottimale" slot di disponibilità che i clienti possono scegliere quando si prenota un appuntamento.

È facile determinare tutti gli slot di disponibilità: è la sovrapposizione della disponibilità per l'utente / i richiesto / i / le apparecchiature / i. Tuttavia, voglio evitare di introdurre intervalli di 5/10 minuti nella pianificazione che non possono essere compilati in seguito.

Le proprietà rilevanti del sistema sono:

  • Viene utilizzato un intervallo di 5 minuti
  • Diversi tipi di appuntamenti hanno lunghezze diverse (predefinite) (multipli di 5 minuti)
  • Gli utenti / sale / attrezzature possono eseguire / avere diversi tipi di appuntamenti con diverse lunghezze

Il sistema dovrebbe tenerne conto al momento di determinare gli slot di disponibilità offerti per le prenotazioni di appuntamenti.

Penso che non ci sia una soluzione "reale" ottimale per questo, dal momento che ci sono molti fattori e non è noto in anticipo quali tipi di appuntamenti saranno pianificati in seguito. Tuttavia, voglio evitare di offrire slot di disponibilità che introducono vuoti inutili (o altre situazioni non ottimali) nel programma.

Ho creato una soluzione che prende in considerazione solo la disponibilità di una risorsa (utenti). Determina innanzitutto il minimo comune multiplo (LCM) delle durate degli appuntamenti che l'utente può eseguire. Quindi genera intervalli di disponibilità nel tempo totale disponibile per quell'utente, utilizzando il LCM come dimensione del passo. Ciò sembra migliore rispetto alla semplice offerta di tutte le opzioni di disponibilità ad ogni passo di 5 minuti, sebbene non sia l'ideale. (Ad esempio, se l'LCM è elevato, verranno offerte poche opzioni.) Inoltre, non tiene conto delle altre risorse (stanze / attrezzature).

Esistono algoritmi / metodi / best practice noti per determinare gli slot di disponibilità in una situazione del genere?

    
posta Jonathan 21.11.2017 - 11:50
fonte

2 risposte

2

Poiché hai a che fare con l'incertezza, dovrai ricorrere alla previsione

Stai vendendo qualcosa per cui la chiave è ridurre la combinazione di sale e attrezzature per redditività

Ecco un semplice esempio

  1. Alex vuole prenotare una determinata stanza per 2 ore il più presto possibile
  2. Beatrice solitamente prenota la stessa stanza nell'ora successiva, per 3 ore

La nostra tariffa abituale è $ 15 all'ora

Analizzando la cronologia delle prenotazioni, ci rendiamo conto che

  • Alex non ha mai prenotato nulla
  • C'è una probabilità dell'80% che Beatrice prenoti quella stanza

La matematica è semplice,

  • Alex ci porterà 1 x $15 x 2h = $30
  • Beatrice 0.8 x $15 x 3h = $36

Non ovvio, ma funzionerà per noi a lungo termine. Quindi, ecco le nostre opzioni

  1. Possiamo aumentare il prezzo per Alex
  2. Possiamo imporre un minimo di 2 ore e 30 minuti ad Alex in modo che superi Beatrice
  3. Possiamo offrire una stanza diversa e renderla non disponibile

Spero che questo aiuti

    
risposta data 21.11.2017 - 18:53
fonte
2

Questo mi ricorda un sistema di prenotazione alberghiera che abbiamo sviluppato per un resort di destinazione utilizzando l'intelligenza artificiale negli anni '80. In questo sistema, ci siamo completamente rifiutati di accettare qualsiasi prenotazione che lasciasse un intervallo inferiore a due notti. Ciò ha aumentato il tasso di occupazione della stagione di picco dal 93% a oltre il 100% (hanno messo i letti a scomparsa nelle stanze per superare il 100%). Questa strategia ha funzionato perché sapevamo che l'hotel era molto richiesto durante l'alta stagione.

Un altro approccio che può funzionare bene per la pianificazione incrementale è implementare una strategia di pricing, una sorta di gestione del rendimento. Se un cliente prende una risorsa che lascia un gap e tale divario può essere lasciato invenduto come risultato, aggiungi una parte del prezzo del gap al costo della risorsa. Nel limite, al 100% del costo del divario, non si avrà alcuna perdita a causa di alcun programma. La matematica per questo è simile all'uso di una funzione obiettivo in un problema di ottimizzazione.

    
risposta data 22.11.2017 - 23:57
fonte

Leggi altre domande sui tag