Quale algoritmo dovrei utilizzare per creare una funzione di pianificazione del personale automatica?

15

Immagina una piccola impresa locale (nel mio caso un'asilo nido per cani) con poche decine di dipendenti part-time. L'obiettivo è creare automaticamente orari settimanali per il personale. La mia domanda riguarda quali approcci algoritmici esplorare per questo problema.

Ci sono molti limiti da tenere a mente, principalmente (1) la disponibilità del personale e (2) i bisogni di ogni turno, non solo il numero di dipendenti per turno, ma le competenze necessarie per ogni turno (ad es. certo turno, potresti aver bisogno di qualcuno che sappia guidare per fare pick-up / drop-off di cani, per un altro, qualcuno che sa come dare bagni ai cani, ecc.).

Altri vincoli includono cose come evitare o richiedere alcune combo del personale - forse a causa di conflitti di personalità, da un lato, o necessità di formazione per osmosi da uno staff senior a uno junior dall'altro.

Inoltre, ci sono preferenze da prendere in considerazione. Alcuni membri del personale preferiscono le mattine, alcuni due giorni consecutivi piuttosto che dire il lunedì e il giovedì, ecc. Sappiamo che non possiamo sempre soddisfare le preferenze di tutti. In effetti, abbiamo una gerarchia di cui i dipendenti ottengono i primi dibs sulle loro scelte.

Ho la sensazione che esista un modo per ridurre o esprimere questo problema in un algoritmo esistente già risolto. Ma non so quali algoritmi esplorare. Quali algoritmi esistenti e specifici sarebbero i più promettenti?

    
posta Ghopper21 22.04.2014 - 21:20
fonte

1 risposta

13

Algoritmi come Ricerca locale ( Ricerca tabu , Ricottura simulata , Accettazione legale ) funzionano molto bene su questi problemi.

Come suggerisce Bob, se lavori in Java, dai un'occhiata a OptaPlanner (apri fonte). Guarda questo video su turni dei dipendenti .

    
risposta data 25.04.2014 - 18:50
fonte

Leggi altre domande sui tag