Modelización del problema
Partimos del objetivo de organizar la disposición horaria semanal asignada a los \(w\) trabajadores de una tienda. Para ello, debemos asignar a cada uno de los empleados disponibles qué días trabaja, a qué hora y en qué lugar.
Con el fin de abordar este problema hemos modelado el siguiente problema de programación lineal:
Consideramos un comercio que funciona un número d de días semanales, donde, en cada día, se trabaja un número \(h\) de tramos horarios. En cada tramo horario necesitaremos trabajadores que atiendan a los clientes así como otros que organicen el almacén. Denotaremos a dichas necesidades, respectivamente, por: \( b_{i,j} \) y \(c_{i,j}\), donde \(i\) hace referencia al día y \(j\) al tramo horario. Todos estos datos son conocidos.
Consideraremos para cada día \(i\), cada tramo horario \(j\) y cada trabajador \(k\), las variables de decisión: \(t_{i,j,k}\) y \(a_{i,j,k}\), que tomarán los valores 0 ó 1 dependiendo de si se da lugar esa combinación o no. Donde \(t\) son los trabajadores en tienda y \(a\) los que se trabajan en el almacén.
Nuestra función objetivo consistirá en minimizar la suma de tramos horarios totales trabajados semanalmente por cada trabajador; es decir: $$ \min \sum_{i=1}^{h}\sum_{j=1}^{d}\sum_{k=1}^{w}(t_{i,j,k}+a_{i,j,k}) $$.
Es importante notar que, aunque partamos de una demanda laboral mínima (la suma de los \( b_{i,j,k}\) y \(c_{i,j,k}\) ), dicho mínimo no tiene por qué alcanzarse. Dado un número específico \(w\) de trabajadores, puede que los puntos que lo alcancen queden fuera de la región factible.
Además, deberemos tener en cuenta a la hora de formular el problema, las siguientes restricciones:
$$\sum_{k}t_{i,j,k} \geq b_{i,j}$$
$$\sum_{k}a_{i,j,k} \geq c_{i,j}$$
Ya que debe satisfacerse la demanda horaria impuesta.
$$t_{i,j,k}+a_{i,j,k} \leq 1$$ para cada \(i,j,k\)
Independientemente de estas restricciones fijadas, podrá haber otras como un número máximo de horas por día para los trabajadores (\(hmax\)), un mínimo de horas semanales (\(hmin\)) o no trabajar a primera y última hora del día:
$$\sum_{i,j}t_{i,j,k}+a_{i,j,k} \leq hmax$$
$$\sum_{i,j}t_{i,j,k}+a_{i,j,k} \geq hmin$$
$$t_{i,1,k} + a_{i,1,k} + t_{i,h,k} + a_{i,h,k} \leq 1$$ para todo día \(i\) y para todo trabajador \(k\) .