Immagina una piccola impresa locale (nel mio caso un asilo nido per cani) con poche decine di impiegati part-time. L'obiettivo è creare automaticamente programmi settimanali per il personale. La mia domanda riguarda gli approcci algoritmici da esplorare per questo problema.
Vi sono molti vincoli da tenere a mente, principalmente (1) la disponibilità del personale e (2) le esigenze di ciascun turno, non solo la quantità di personale per ciascun turno ma le competenze necessarie per ciascun turno (ad esempio per un determinato turno, potresti aver bisogno di qualcuno che sappia guidare per fare pick-up / drop-off dei cani, per un altro, qualcuno che sappia fare il bagno ai cani, ecc.).
Altri vincoli includono cose come evitare o richiedere determinate combinazioni di personale - forse a causa di conflitti di personalità da un lato, o necessità di formazione da parte dell'osmosi da personale senior a personale junior dall'altro.
Inoltre, ci sono preferenze da tenere in considerazione. Alcuni membri del personale preferiscono la mattina, circa due giorni di fila piuttosto che dire lunedì e giovedì, ecc. Sappiamo che non possiamo sempre soddisfare le preferenze di tutti. In effetti, disponiamo di una gerarchia in cui i dipendenti ottengono le prime osservazioni sulle loro scelte.
Ho la sensazione che ci sia un modo per ridurre o esprimere questo problema in un algoritmo esistente, già risolto. Ma non so quali algoritmi esplorare. Quali algoritmi specifici esistenti sarebbero più promettenti?