Scheduling optimization
The engine assigns shifts while meeting coverage, availability, rest and fairness.
Presiona Resolver para ver el solver en acción.
Con Explicar activado, el solver pausa en cada paso y explica qué cambió y por qué — como quien te enseña a resolver un cubo de Rubik. Desactívalo para ver la animación continua.
¿Cómo funciona este solver?
Fase 1 — Asignación voraz: Para cada turno·rol·día requerido, asigna un empleado disponible que cumpla las restricciones (rol, horas máximas, descanso mínimo, día libre). Sin optimizar — solo factibilidad.
Fase 2 — Búsqueda local: Itera mejorando la solución con dos operaciones: (a) intercambio — dos empleados se cambian de turno el mismo día si el score mejora; (b) relleno de huecos — si un turno tiene cobertura insuficiente, busca un empleado libre que pueda cubrirlo.
Función objetivo (minimizar): faltantes×100 + día_libre_violado×5 + turno_no_preferido×2 + desviación_horas×1.
Producción: Google OR-Tools CP-SAT. Este demo usa un solver JavaScript equivalente para mostrar el proceso en vivo en el navegador.