Capítulo 4: Secuenciación de tareas y asignación de...

31
Modelo PSSA (Makespan) 60 Capítulo 4: Secuenciación de tareas y asignación de personal con tiempos de proceso controlables (enfocado en el tiempo de finalización), PSSA(Makespan) 4.1. Introducción Este capítulo desarrolla un modelo enfocado a empresas encargadas de la realización de proyectos con múltiples tareas. Cada una de ellas deberá ser realizada, a su vez, por personal con determinadas habilidades. Aparece entonces la problemática de analizar cuál debe ser el orden de ejecución de las tareas y cuáles son los empleados más indicados para realizarlas en cada instante de tiempo. Se trata, por tanto, de la integración de dos problemas diferentes: Programación de las tareas del proyecto. Asignación de personal a cada una de las tareas. Principalmente, el objetivo de este tipo de problemas de decisión es el de minimizar los costes de asignación y mano de obra o la reducción al máximo de la fecha de finalización del proyecto, puesto que retrasos en las fechas de entrega conllevan grandes incrementos en los gastos. En nuestro caso, emplearemos como función objetivo la minimización del tiempo de terminación, como se verá más adelante.

Transcript of Capítulo 4: Secuenciación de tareas y asignación de...

Page 1: Capítulo 4: Secuenciación de tareas y asignación de ...bibing.us.es/proyectos/abreproy/70317/fichero/Capitulo+4.pdf · 4.7.2. Tiempo de Comienzo Tendremos en cuenta que las tareas

Modelo PSSA (Makespan)

60

Capítulo 4: Secuenciación de tareas y

asignación de personal con tiempos de

proceso controlables (enfocado en el

tiempo de finalización), PSSA(Makespan)

4.1. Introducción

Este capítulo desarrolla un modelo enfocado a empresas encargadas de la realización de

proyectos con múltiples tareas. Cada una de ellas deberá ser realizada, a su vez, por

personal con determinadas habilidades. Aparece entonces la problemática de analizar cuál

debe ser el orden de ejecución de las tareas y cuáles son los empleados más indicados para

realizarlas en cada instante de tiempo. Se trata, por tanto, de la integración de dos

problemas diferentes:

Programación de las tareas del proyecto.

Asignación de personal a cada una de las tareas.

Principalmente, el objetivo de este tipo de problemas de decisión es el de minimizar los

costes de asignación y mano de obra o la reducción al máximo de la fecha de finalización

del proyecto, puesto que retrasos en las fechas de entrega conllevan grandes incrementos

en los gastos. En nuestro caso, emplearemos como función objetivo la minimización del

tiempo de terminación, como se verá más adelante.

Page 2: Capítulo 4: Secuenciación de tareas y asignación de ...bibing.us.es/proyectos/abreproy/70317/fichero/Capitulo+4.pdf · 4.7.2. Tiempo de Comienzo Tendremos en cuenta que las tareas

Modelo PSSA (Makespan)

61

Al tratarse la programación de las tareas de un proyecto, resulta fundamental introducir

relaciones de precedencia entre las tareas, ya que para la realización de algunas de ellas

puede ser imprescindible que otras hayan sido terminadas de antemano. Adicionalmente,

se permite que las tareas puedan comenzar en cualquier instante de tiempo siempre que sea

posterior a su tiempo de comienzo y, una vez que comienzan, deben ser ejecutadas de

manera continua (enfoque no-preemptitve).

En cuanto a la asignación de tareas a empleados, se realiza en función de las habilidades.

Así, cada tarea necesitará de determinadas habilidades para su desarrollo que serán

ejecutadas por empleados capaces de realizarlas. Por tanto, sólo se le podrá asignar un

empleado a una tarea si tiene una de las habilidades que se requieran. Además, cada tarea

tendrá un número óptimo de empleados por habilidad para ser asignados (ver 4.7.6). Un

excedente o deficiente de trabajadores asignados iría en detrimento de la efectividad y, en

consecuencia, de los tiempos de proceso de cada tarea (ver 4.7.7).

A nuestro entender, se trata de la primera vez que se analiza la programación de tareas y

asignación de personal con tiempos de proceso que dependan de la cantidad de

trabajadores que se le asignan a las tareas en la literatura. Hasta la fecha, el número de

trabajadores asignados a cada tarea siempre había sido tratado en la literatura como un dato

de entrada y nunca como una variable. A esto hay que sumar otro tipo de restricciones tales

como: relaciones de preferencia; habilidades; tiempo de terminación; preemptive

assumption; etc.

En la siguiente figura, se presenta un resumen genérico de la función objetivo y las

restricciones del modelo a modo aclaratorio. Más adelante, se mostrará el modelo y se

explicarán sus variables y datos de entrada:

Page 3: Capítulo 4: Secuenciación de tareas y asignación de ...bibing.us.es/proyectos/abreproy/70317/fichero/Capitulo+4.pdf · 4.7.2. Tiempo de Comienzo Tendremos en cuenta que las tareas

Modelo PSSA (Makespan)

62

Ilustración 4-I: Resumen modelo PSSA (Makespan)

4.2. Índices

j: Índice para las tareas. j=1…J.

t: Índice que indica el periodo de tiempo. t=1…T.

e: Índice que identifica al empleado. e=1…E.

s: Índice identificativo de las habilidades de los empleados. s=1…S.

4.3. Datos

T: Horizonte temporal formado por los periodos.

E: Número total de empleados que se consideran en la programación.

J: Número de tareas en el proyecto.

S: Número total de habilidades consideradas.

rj: Tiempo de comienzo. Fecha a partir de la cual se puede comenzar a realizar la tarea j.

Page 4: Capítulo 4: Secuenciación de tareas y asignación de ...bibing.us.es/proyectos/abreproy/70317/fichero/Capitulo+4.pdf · 4.7.2. Tiempo de Comienzo Tendremos en cuenta que las tareas

Modelo PSSA (Makespan)

63

{ Si el empleado puede realizar la habilidad

en caso contrario

{

1 si i precede a

0 si no existe relación de precedencia entre y

1 si j precede a

Rjs: Número de empleados óptimos que deben realizar la tarea j con la habilidad s.

pdj: Duración de la tarea j para el número de empleados óptimos (Rj).

LVjs: Máximo número de trabajadores que pueden faltar para llegar al óptimo de

empleados en cada tarea j con habilidad s.

UVjs: Máximo número de trabajadores que puede haber por encima del óptimo en cada

tarea j con habilidad s.

kd, kn: Constantes que determinan la inclinación de las líneas que definen los tiempos de

proceso.

4.4. Variables

{1 si la tarea comienza en el periodo

0 en caso contrario

{1 si la tarea tiene lugar en el periodo

0 en caso contrario

{1 si el empleado realiza la tarea en el periodo con la habilidad

0 en caso contrario

Periodo de tiempo en el que la tarea comienza.

Periodo de tiempo en el que la tarea finaliza.

trabajadores por encima del óptimo que realizan la tarea con

la habilidad .

con la habilidad .

Cj: Tiempo de terminación de la tarea.

Cmax: Máximo tiempo de terminación de todas las tareas.

Duración de la tarea .

4.5. Variables auxiliares

Page 5: Capítulo 4: Secuenciación de tareas y asignación de ...bibing.us.es/proyectos/abreproy/70317/fichero/Capitulo+4.pdf · 4.7.2. Tiempo de Comienzo Tendremos en cuenta que las tareas

Modelo PSSA (Makespan)

64

: Variable auxiliar para conseguir que la restricción 9 se cumpla para el caso en el

que sea igual a cero

4.6. Modelo

(1)

(2) ∑

(3) ( )

(4)

(5)

(6)

(7) ∑

( )

(8) ∑

( )

(9) ∑

(

)

(10) ( )

(11) ( )

(12) ,s

(13) ,s

(14) ,s

(15) ,s

(16) ∑∑

(17) ( ( ∑

))

Page 6: Capítulo 4: Secuenciación de tareas y asignación de ...bibing.us.es/proyectos/abreproy/70317/fichero/Capitulo+4.pdf · 4.7.2. Tiempo de Comienzo Tendremos en cuenta que las tareas

Modelo PSSA (Makespan)

65

(18) ∑

(19)

(20) ∑

(21)

(22)

,t

(23)

(24) { }

(25) { }

(26) { }

(27)

(28)

(29)

(30)

4.7. Descripción del Modelo

4.7.1. Función Objetivo

La función objetivo viene dada por la expresión (1):

Se trata de una función objetivo muy utilizada en la literatura [7, 18, 65, 87]. Consiste en

minimizar el tiempo máximo de terminación de las tareas. Es decir, la tarea que acabe más

tarde, deberá terminar lo más pronto posible. Resulta muy útil, ya que en muchas empresas

el tiempo de realización y entrega de los pedidos o proyectos resulta fundamental a la hora

de capturar clientes. Con lo que intentan, por todos los medios, reducir los tiempos para

que el proyecto se realice lo más pronto posible.

Page 7: Capítulo 4: Secuenciación de tareas y asignación de ...bibing.us.es/proyectos/abreproy/70317/fichero/Capitulo+4.pdf · 4.7.2. Tiempo de Comienzo Tendremos en cuenta que las tareas

Modelo PSSA (Makespan)

66

4.7.2. Tiempo de Comienzo

Tendremos en cuenta que las tareas pueden requerir de un tiempo de comienzo a partir del

cual pueden empezar a ejecutarse (enfoque también realizado por [20, 40, 41, 87]). La

realización de la tarea antes del tiempo de comienzo será impedida por el modelo lo que

podría ser debido, en empresas de servicio, a: disponibilidades del cliente; disponibilidades

de los recursos; coordinación con empresas subcontratadas;… Antes de introducir esta

restricción en el modelo, es necesario asegurar que todas las tareas comiencen únicamente

en un periodo de tiempo. Hecho que viene determinado por la ecuación:

( ) ∑

Con esto, ya si se puede obligar a que no se ejecute ninguna tarea antes del tiempo

establecido para tal efecto (release time):

( ) ( )

Para tiempos inferiores al tiempo de comienzo (t<rj), la inecuación quedaría:

negativo ( ) . Siendo la única posibilidad para que se cumpliese que xjt sea

igual a 0. Así, queda constatado el hecho de que antes del tiempo de comienzo no se puede

ejecutar la tarea. Se puede comprobar también fácilmente como para tiempo mayores que

este, el xjt puede ser 0 ó 1 pudiéndose ejecutarse la tarea en cualquier momento.

4.7.3. Tiempo de Terminación

Como se comentó al hablar de la función objetivo, el modelo que aquí se presenta trata de

minimizar el tiempo máximo de terminación. Por lo tanto, debe ser necesario conocer tanto

el tiempo de terminación de cada tarea, así como el máximo tiempo de terminación, es

decir, cuando acaba la tarea que termina más tarde. De esto se encargan el conjunto de

restricciones siguiente:

Page 8: Capítulo 4: Secuenciación de tareas y asignación de ...bibing.us.es/proyectos/abreproy/70317/fichero/Capitulo+4.pdf · 4.7.2. Tiempo de Comienzo Tendremos en cuenta que las tareas

Modelo PSSA (Makespan)

67

( )

( )

El conjunto de restricciones (4) es el encargado de la obtención del tiempo de terminación

de cada tarea Cj. Esto se realiza observando cuál es el último instante de tiempo en el que

la tarea tiene lugar. El conjunto (5) será el encargado de ver cuál de todos estos tiempos de

terminación será el mayor, denominado Cmax.

4.7.4. Habilidades

En el modelo se tendrán en cuenta las habilidades del personal y de las tareas. No todos los

empleados podrán realizar las mismas tareas, sino que cada uno estará especializado en

algunas de ellas dependiendo de sus características. Este hecho vendría dado por:

En dónde es un número binario que valdrá uno si el empleado e está capacitado en la

habilidad s, y cero si no la puede realizar. Con la restricción anterior, se obligaría a que en

caso de que no esté capacitado, entonces la asignación de ese empleado a la habilidad

(variable ) sea siempre cero independientemente de la tarea y el instante de tiempo.

Sin embargo, esta restricción no aparece tal cual en el modelo, sino que se muestra esta

otra:

( )

Se han añadido dos nuevos términos a la expresión ( ), para reducir el número de

restricciones del modelo con objeto de alcanzar mejores tiempo de computación. No

obstante, esta nueva restricción incluye también el caso, que acabamos de ver, de

impedimento del personal para ejecutar determinadas habilidades: si , entonces

siempre será cero.

Page 9: Capítulo 4: Secuenciación de tareas y asignación de ...bibing.us.es/proyectos/abreproy/70317/fichero/Capitulo+4.pdf · 4.7.2. Tiempo de Comienzo Tendremos en cuenta que las tareas

Modelo PSSA (Makespan)

68

El término se obtiene del estudio de los requisitos en habilidades de las tareas. Nuestro

modelo tiene en cuenta el número óptimo de empleados que se necesitan para realizar una

habilidad concreta de una tarea. Para lograrlo, se introduce en el modelo dicho término

que indica el número ideal de empleados que debe realizar la habilidad s en la tarea j. El

caso quiere decir que la tarea j no requiere la habilidad s por lo que, en esta

situación, el modelo deberá obligar a que no se asigne ningún empleado a esa habilidad de

la tarea. Esto explica el hecho por el que la restricción que acabamos de ver: ,

pasaría ahora a ser , que no es más que la unión de las dos siguientes

restricciones:

}

La adición de la variable a la restricción será vista más adelante (en “Empleados

asignados a tareas”).

4.7.5. Relaciones de Precedencia

Como se comentó con anterioridad, en el modelo se realiza la programación de tareas

pertenecientes a empresas de proyectos, así como la asignación de personal a las mismas.

A la hora de secuenciar dichas tareas, tendremos que considerar si existen relaciones de

precedencia entre algunas de ellas. Éste es uno de los aspectos más importante en la

programación de tareas.

En nuestro modelo, las relaciones de precedencia vienen dadas por los siguientes conjuntos

de restricciones:

( ) ∑

( )

( ) ∑

( )

Page 10: Capítulo 4: Secuenciación de tareas y asignación de ...bibing.us.es/proyectos/abreproy/70317/fichero/Capitulo+4.pdf · 4.7.2. Tiempo de Comienzo Tendremos en cuenta que las tareas

Modelo PSSA (Makespan)

69

Las dos inecuaciones son muy similares y podrían haber sido puestas en una única

inecuación si en vez de para todo j, i>j, hubiesen sido para todo (i,j) que formen un arco en

los dos sentidos. Sin embargo, esta segunda forma obliga a tener que introducir los datos

de las relaciones de precedencia con riguroso detalle ya que si j precede a ’, entonces ’ no

puede preceder nunca a j. Esto obligaría a que prij fuese una matriz completa (salvo la

diagonal) en la que todos los elementos fuesen importantes. Veamos un ejemplo de cómo

sería esta matriz en donde prij=1 indica que i precede a j y prij=0 indica que no hay relación

de precedencia entre ambos nodos:

Ilustración 4-II: Matriz de relaciones de precedencia no simétrica

Si en la zona naranja de la figura hay un elemento de valor 1, entonces por concordancia,

obligatoriamente su simétrico de la zona morada debe ser 0. Sin embargo, en caso de ser

cero, entonces el simétrico puede ser 0 o 1. Igual ocurre para la zona morada.

Al introducir los dos conjuntos de restricciones (7) y (8), se está simplificando la captura

de datos para las relaciones de precedencia, prij. En este caso, la matriz prij será totalmente

simétrica:

Page 11: Capítulo 4: Secuenciación de tareas y asignación de ...bibing.us.es/proyectos/abreproy/70317/fichero/Capitulo+4.pdf · 4.7.2. Tiempo de Comienzo Tendremos en cuenta que las tareas

Modelo PSSA (Makespan)

70

Ilustración 4-III: Matriz simétrica de las relaciones de precedencia

Con esta forma de presentar los datos, nos evitamos la problemática que vimos más arriba.

La relación entre i y j se realizará con un único elemento prij (con el método anterior, la

relación i con j era el elemento prij, mientras que la j con la i, era el elemento prji). En este

caso, cada pivote de la matriz podrá tomar tres valores según la relación que entre las

tareas:

1: j va después de i.

0: No existe relación de precedencia entre i y j.

-1: i después de j.

Dada la clara similitud entre los dos conjuntos de inecuaciones (7) y (8), procederemos a

explicar en detalle solamente uno de ellos (7):

( ) ∑

( )

El termino izquierdo de la inecuación indica la diferencia de tiempo existente entre el

comienzo de la tarea j y el comienzo de la tarea i. Por otro lado el término derecho indica

cuál es la mínima diferencia de tiempo que puede haber entre los comienzos de las dos

tareas. Existen dos posibilidades para este término; o bien es igual a pi o bien igual a un

número grande negativo. En el primer caso (igual a pi), la inecuación indicaría que la tarea

j no puede comenzar antes que la tarea i más su duración, es decir, la tarea j debe comenzar

Page 12: Capítulo 4: Secuenciación de tareas y asignación de ...bibing.us.es/proyectos/abreproy/70317/fichero/Capitulo+4.pdf · 4.7.2. Tiempo de Comienzo Tendremos en cuenta que las tareas

Modelo PSSA (Makespan)

71

cuando acabe la i. Por el contrario, el segundo caso (lado derecho igual a un número alto

negativo) estará diciendo que la tarea j puede comenzar en cualquier instante

independientemente de la tarea i. A continuación, veremos esto más claramente analizando

todas las posibilidades. Recordemos que el prij, que indica la relación de precedencia entre

las tareas i y j, sólo puede tomar tres valores (-1,0,1). Analizaremos, por tanto, lo que

ocurre en cada uno de estos tres casos:

Caso prij=1:

Las inecuaciones (7) y (8) quedan:

( ) ∑

( ) ∑

La primera de ellas indica que la tarea j debe realizarse al finalizar la tarea i. En el caso de

la segunda inecuación, la diferencia entre el comienzo de las tareas i y j debe ser mayor

que un número alto negativo. Con lo que, esta segunda relación se cumplirá siempre y,

para este caso, no aporta nada adicional.

Resumiendo, el caso prij=1 trata de la relación de precedencia entre i y j cuando j debe

realizarse después de i.

Caso prij=0:

Este caso quedaría como sigue:

( ) ∑

Page 13: Capítulo 4: Secuenciación de tareas y asignación de ...bibing.us.es/proyectos/abreproy/70317/fichero/Capitulo+4.pdf · 4.7.2. Tiempo de Comienzo Tendremos en cuenta que las tareas

Modelo PSSA (Makespan)

72

( ) ∑

Tenemos dos inecuaciones en las que el lado izquierda debe ser mayor o igual que un

número elevado negativo. Por lo que las dos inecuaciones se cumplen siempre

independientemente de los valores de las variables. El caso prij=0 deja, entonces, total

libertad a las tareas i y j para poder comenzar en el momento que mejor convenga sin

existir relaciones entre las dos.

Caso prij=-1:

( ) ∑

( ) ∑

Podemos observar como se trata de un caso análogo al de prij=1 si intercambiásemos la i

por la j. Así, la inecuación (7) se cumplirá siempre al ser el lado derecho un número alto

negativo mientras que la (8) nos indica que el comienzo de la tarea i debe ser mayor que el

comienzo de la tarea j más su duración. Es decir, indica que la tarea i debe ejecutarse

después de la j.

4.7.5.1. Desfases Temporales

En el caso de que fuese necesario incluir periodos de tiempo entre que acaba una tarea y

comienza la siguiente (desfases temporales), sería muy sencillo mediante el conjunto de

restricciones que acabamos de ver. Únicamente habría que añadir un término en cada uno

de los conjuntos. De esta forma, denominando al desfase temporal entre la tarea i y la

tarea j, tendríamos las siguientes restricciones:

Page 14: Capítulo 4: Secuenciación de tareas y asignación de ...bibing.us.es/proyectos/abreproy/70317/fichero/Capitulo+4.pdf · 4.7.2. Tiempo de Comienzo Tendremos en cuenta que las tareas

Modelo PSSA (Makespan)

73

( ) ∑

( ) ( )

( ) ∑

( ) ( )

Se puede observar como, por ejemplo, en el caso de tendríamos las siguientes

ecuaciones:

( ) ∑

( ) ∑

En dónde la restricción (7) indicaría, en este caso, que la tarea j debe esperar para

comenzar hasta que la tarea i finalice más un tiempo extra . Idénticamente se podría

proceder para obtener el razonamiento equivalente cuando . Con lo que las

restricciones que acabamos de ver describirían perfectamente el caso de relaciones de

precedencia con desfases temporales.

4.7.6. Empleados asignados a tareas

Como se ha comentado a lo largo de esta sección, la asignación de empleados a tareas no

es fija. Se propone mediante la variable un número óptimo de empleados para realizar

una determinada habilidad de una tarea ([10, 50]). Sin embargo, se deja abierta la

posibilidad de que se asigne mayor o menor cantidad de empleados según convenga, bien

para acabar antes la tarea o bien por falta de recursos. Esta desviación de recursos sobre el

óptimo conllevará una penalización en la eficiencia de los empleados en la tarea, que será

vista en 4.7.7. Denominando al número de empleados por encima del óptimo y

al

número de los mismos que harían faltar para llegar al óptimo, sería lógico pensar que la

siguiente restricción definiría la asignación de empleados en el modelo:

Page 15: Capítulo 4: Secuenciación de tareas y asignación de ...bibing.us.es/proyectos/abreproy/70317/fichero/Capitulo+4.pdf · 4.7.2. Tiempo de Comienzo Tendremos en cuenta que las tareas

Modelo PSSA (Makespan)

74

(

)

Sin embargo, esta restricción se comporta bien únicamente allí donde . Si no

estamos en ese caso, esta ecuación presenta un problema al no ser las holguras función del

tiempo. Por lo que tomando un instante de tiempo ’ donde , entonces ∑

(

) . Si tomamos otro instante de tiempo ’’ en el que la misma tarea j sí se esté

ejecutando , obtendremos que ∑ (

) . El problema sucede

cuando el término (

) es distinto de 0. Como este término no depende del tiempo,

tendremos que siempre será distinto de cero, también en el caso . En el caso de ser

negativo el término, esto conllevará a que para el caso ’ los empleados podrían estar

asignados a la tarea j ( ) aunque la tarea no se está ejecutando ( ). De ser

positivo el término, daría un problema de infactibilidad, siendo imposible cumplir la

restricción.

Es necesario, entonces, modificar la restricción para solucionar estas deficiencias. A

continuación, se proponen tres posibles alternativas:

1. Multiplicar el término (

) por :

(

)

Con esto se consigue solventar el problema que teníamos cuando . Sin

embargo, se introducen no linealidades al estar multiplicado el término de

holguras por la variable binaria .

2. Poner las holguras en función del tiempo ( ):

(

)

Page 16: Capítulo 4: Secuenciación de tareas y asignación de ...bibing.us.es/proyectos/abreproy/70317/fichero/Capitulo+4.pdf · 4.7.2. Tiempo de Comienzo Tendremos en cuenta que las tareas

Modelo PSSA (Makespan)

75

Con esto se consigue que las holguras puedan ser cero en el caso de que .

Sin embargo, no se está obligando a que lo sean y esto podría ocasionar

problemas de incoherencia en determinados momentos. Se puede solucionar

fácilmente si añadiésemos un par de inecuaciones más:

donde N es un número alto

De esta forma, se soluciona matemáticamente el problema presentado, cuando

, añadiendo el tiempo a las holguras y sin incluir, además, ninguna no

linealidad.

Pasando a analizar ahora, más en detalle, el aspecto real de las ecuaciones y

variables, la consecuencia de aplicarlo sería que las holguras pueden ser diferentes

en distintos tiempos. Es decir, para realizar la habilidad s de la tarea j puede que

se utilicen en el instante t1 un número de empleados diferente que en el instante t2.

Esto permite demasiados movimientos, lo que va contra la lógica del modelo, en

el que se desea que el número de empleados asignados a una habilidad sea

siempre el mismo durante toda su ejecución.

3. Introducción de la variable auxiliar

El objetivo de este caso es introducir una nueva variable con el fin de

solucionar los problemas de no linealidad de la primera forma y los de

movimientos de la segunda. Dicha variable será dependiente de la habilidad, de la

tarea y del tiempo. Lo que se intenta es que esta variable tome los valores del

término (

) para cuando y que sea cero cuando para que

no influya en el valor de . Además, habrá que obligar a que cuando

. Todo esto se consigue con los siguientes conjuntos de restricciones:

Page 17: Capítulo 4: Secuenciación de tareas y asignación de ...bibing.us.es/proyectos/abreproy/70317/fichero/Capitulo+4.pdf · 4.7.2. Tiempo de Comienzo Tendremos en cuenta que las tareas

Modelo PSSA (Makespan)

76

( ) ∑

(

)

( ) ( )

( ) ( )

La restricción (9) es exactamente igual que ∑ (

) ,

exceptuando la nueva variable auxiliar que sólo afectará en el caso de que

. Hecho que viene determinado por las inecuaciones (10 y 11) donde se

obliga que sea 0 allí dónde . La última restricción es la que fuerza a que

cuando . Esta restricción se podría añadir tal cual al modelo. Sin

embargo, para simplificar el número de restricciones se añade a la restricción (6)

que pasará a ser:

}

Pasando de restricciones a únicamente . En el

modelo presentado en el trabajo, se hace uso de este procedimiento para evitar las

posibles infactibilidades producidas cuando .

Una vez solucionado este problema, se añaden al modelo limitaciones superiores e

inferiores en las holguras para que no se puedan ir a valores muy altos o bajos en los cuales

resulte imposible realizar el trabajo. Así, son añadidas los dos siguientes grupos de

restricciones:

( )

( )

Además, como se comentó con anterioridad, es necesario asegurar que cuando una tarea no

requiere de una determinada habilidad ( ) , entonces las holguras asociados al

Page 18: Capítulo 4: Secuenciación de tareas y asignación de ...bibing.us.es/proyectos/abreproy/70317/fichero/Capitulo+4.pdf · 4.7.2. Tiempo de Comienzo Tendremos en cuenta que las tareas

Modelo PSSA (Makespan)

77

sobrante o deficiente de trabajadores sobre el óptimo (en este caso el óptimo es cero)

deberán ser obligatoriamente cero. Esto se consigue con las siguientes restricciones:

con N un número suficientemente alto.

Puesto que de las restricciones (12) y (13) las holguras y

no pueden ser mayores

que y respectivamente, el número alto N puede ser sustituido por estos valores

quedando las restricciones reformuladas de la siguiente forma:

( )

( )

Por último, quedará añadir una restricción para limitar a uno el número de habilidades que

puede realizar un empleado como máximo en cada periodo de tiempo:

( ) ∑∑

4.7.7. Tiempos de proceso controlables (CPT)

4.7.7.1. Introducción

El aspecto fundamental del modelo es la inclusión de CPT para que los tiempos de proceso

de las tareas puedan ser modificados automáticamente en la programación sin tener que

estar fijados al inicio. En este caso, estos tiempos dependerán de los recursos (personal)

asignados a las tareas de manera lineal a trozos. Según ([10, 50]) existe un valor óptimo de

empleados que deben ser asignados a una tarea para lograr la máxima eficiencia de los

mismos. Como se vio en el estado del arte, en la literatura las duraciones de las tareas se

han estudiado como función de los recursos asignados a las mismas y como función de la

Page 19: Capítulo 4: Secuenciación de tareas y asignación de ...bibing.us.es/proyectos/abreproy/70317/fichero/Capitulo+4.pdf · 4.7.2. Tiempo de Comienzo Tendremos en cuenta que las tareas

Modelo PSSA (Makespan)

78

experiencia de los trabajadores que las realizan. Atendiendo a la primera forma, la relación

estudiada entre recursos y tiempos se ha analizado, principalmente, con dos enfoques

diferentes (si exceptuamos el caso constante):

Lineal Puro: Relación completamente lineal entre las duraciones de las tareas y

sus recursos ([39]). Llamando p a las duraciones, u a los recursos y siendo a y b

constante para la definición de la curva se tiene la fórmula:

Convexa: Relación inversamente proporcional entre la duración y los recursos

([78]). En este caso, se llama W a la carga de trabajo de la tarea y k es una

constante de definición de la curvatura.

(

)

Sin embargo, ninguno de los dos enfoques se ajusta a las necesidades del modelo. En el

primer caso, al ser lineal puro se aleja de la realidad en valores no muy lejanos al óptimo

teórico dándose el caso, por ejemplo, que para cantidades de recursos que duplicasen el

óptimo, la duración de la tarea se iría al valor nulo (con lo que en la realidad este debería

ser el óptimo ocasionando una incongruencia). Por tanto, el modelo lineal puro nos daría

soluciones para nuestro modelo desvirtuadas.

En cuanto al segundo caso, se trata de una relación mucho más realista entre recursos y

duraciones de las tareas en donde, para c=1, un aumento del doble de los recursos

conllevaría exactamente una disminución del tiempo a la mitad y viceversa. Este hecho se

debe a que, en este caso, tenemos una relación inversamente proporcional pura, una subida

de los recursos implicará una bajada proporcional de las duraciones. Sin embargo, según

[58] la relación convexa entre tiempos de proceso y recursos asignados no se ajusta a la

realidad puesto que debe haber una penalización al asignar mayor o menor cantidad de

empleados sobre el óptimo. De esta forma, cualquier punto flexible debe estar situado por

encima de la recta convexa (exceptuando el óptimo). Con lo que, a pesar de ajustarse

mucho mejor la relación convexa que la lineal, no está del lado de la seguridad ya que no

Page 20: Capítulo 4: Secuenciación de tareas y asignación de ...bibing.us.es/proyectos/abreproy/70317/fichero/Capitulo+4.pdf · 4.7.2. Tiempo de Comienzo Tendremos en cuenta que las tareas

Modelo PSSA (Makespan)

79

se corresponde con la realidad. Sin embargo, nos será muy útil como ayuda en las

representaciones gráficas puesto que todo punto que caiga por debajo de ella será

inadmisible. El segundo problema que presenta este caso es la no linealidad que

imposibilitaría el uso de un modelo lineal y que incrementaría considerablemente los

tiempos de resolución del modelo resultante.

En conclusión, cualquier punto situado por debajo de la curva convexa es irrealizable

(región no admisible, marcada en tono rosado en la Ilustración 4-IV) bajo las hipótesis

vistas en la demostración. Por tanto, la curva convexa de c=1 se corresponde con el

contorno ideal que relaciona la duración de una tarea con sus recursos asignados. En dicha

ilustración se muestra un ejemplo de dicho resultado en donde se muestra el tiempo de

procesamiento de una tarea que sigue una relación lineal pura, lineal a trozos y convexa

con c=0.5 y c=1.

Ilustración 4-IV: Zona inadmisible entre empleados y tiempos de proceso.

Como solución se propone un modelo lineal a trozos que resolverá ambas problemáticas en

dónde la relación duración/recursos se parecerá bastante a la convexa y en dónde existirá

un punto óptimo de recursos, de forma que si se utilizan más o menos se estará perdiendo

eficacia en el equipo de trabajo.

Page 21: Capítulo 4: Secuenciación de tareas y asignación de ...bibing.us.es/proyectos/abreproy/70317/fichero/Capitulo+4.pdf · 4.7.2. Tiempo de Comienzo Tendremos en cuenta que las tareas

Modelo PSSA (Makespan)

80

Considerando Rj como la cantidad óptima de recursos asignados a la tarea j; pdj como el

tiempo óptimo de procesamiento de la tarea j; y kd y kn como parámetros que definen las

pendientes de las líneas, entonces la relación lineal a trozos puede ser escrita como sigue:

A la izquierda del óptimo: (

)

A la derecha del óptimo: (

)

Teniendo en cuenta ahora como el número de trabajadores por debajo del óptimo

( ) y como el número de trabajadores por encima del óptimo

:

A la izquierda del óptimo: (

)

A la derecha del óptimo: (

)

La expresión que usaremos en el modelo es obtenida si consideramos habilidades para

cada tarea:

A la izquierda del óptimo: ( ∑

)

A la derecha del óptimo: ( ∑

)

A continuación, veremos mediante un ejemplo estos enfoques. Supongamos una tarea para

la que el número óptimo de recursos (que da la máxima eficiencia) es 5 y el tiempo de

proceso correspondiente a estos recursos será 10. Sabiendo esto, forzaremos a que tanto el

enfoque convexo como el lineal pasen por el punto óptimo. Para la relación convexa,

estudiaremos el caso c=1 y c=0.5 (según [68] c=1 se corresponde con gobiernos actuales y

operaciones industriales mientras que c=0.5 se corresponde con la integración en escala

muy grande de sistemas de circuitos). En el caso lineal puro, tomaremos un b=p*/u* para

que los recursos queden normalizados y tengan unidades de tiempo. Con esto, tanto el caso

lineal puro como el convexo están completamente definidos si se hacen pasar por el punto

óptimo. Quedarán de la siguiente forma:

Lineal puro: (

)

Page 22: Capítulo 4: Secuenciación de tareas y asignación de ...bibing.us.es/proyectos/abreproy/70317/fichero/Capitulo+4.pdf · 4.7.2. Tiempo de Comienzo Tendremos en cuenta que las tareas

Modelo PSSA (Makespan)

81

Relación convexa: (

) para c=1 y (

)

para c=0.5.

Lineal a trozos (para k=kd=kn=2.5):

Si u<u*: (

)

Si u=>u*: (

)

Para poder relacionar mejor las ecuaciones, representaremos en la Ilustración 4-V todos

estos enfoques. El eje vertical se corresponde con el tiempo de proceso y el horizontal con

la cantidad de recursos asignados a la tarea. El punto en el que se cruzan todas las curvas

es el punto óptimo y las curvas que han sido representadas son:

Relación convexa entre recursos y duraciones con c=1 (en rojo).

Relación convexa entre recursos y duraciones con c=0.5 (en azul).

Relación lineal pura (línea negra discontinua).

Relación lineal a trozos (línea verde).

Ilustración 4-V: Ejemplo de tiempos de proceso dependientes de la cantidad de recursos

En la figura, se puede observar como el caso lineal puro está situado en todo momento por

debajo de la curva convexa c=1, en la zona admisible. Dándose, por ejemplo, que si en vez

de cinco empleados asignásemos siete, se reduciría la duración del proyecto a más de la

mitad y si asignásemos el doble de empleados, la duración de la tarea sería cero, lo cual es

Page 23: Capítulo 4: Secuenciación de tareas y asignación de ...bibing.us.es/proyectos/abreproy/70317/fichero/Capitulo+4.pdf · 4.7.2. Tiempo de Comienzo Tendremos en cuenta que las tareas

Modelo PSSA (Makespan)

82

totalmente inadmisible. Así, únicamente da buenos resultados en las cercanías del punto

óptimo y va empeorando a medida que se aleja. Por el contrario, el caso convexo de c=1 se

corresponde a una subida inversamente proporcional pura de la duración al aumentar los

recursos y viceversa. De esta forma, todo lo situado por encima de esa línea es un enfoque

más conservador en el que se incluyen perdidas de eficacia. En esta zona se observa que es

en la que se encuentra el modelo lineal a trozos que presentamos para cantidades de los

recursos situadas entre 2 y 8. Sin embargo, si nos alejamos algo más, se cortarán ambas

curvas (lineal a trozos y convexa) pasando la lineal a trozos a representar un caso irreal. La

siguiente gráfica mostrará únicamente ambas curvas con una ventana de representación

más amplia para que se puedan ver los puntos de corte:

Ilustración 4-VI: Diferencia entre relación convexa y lineal a trozos

De la figura observamos como los puntos de corte se dan para la cantidad de dos y de doce

con cinco recursos. Entre estas dos cantidades, la relación lineal a trozos está por encima

de la relación convexa y presenta un resultado algo más realista. No ocurre así fuera de

este intervalo en dónde la línea verde pasará a estar por debajo de la curva roja. Esto indica

resultados no realistas llegando, por ejemplo, a ser la duración de la tarea cero para una

cantidad de recursos de 17,5. No obstante, no tiene mucho sentido que una tarea cuyo

número óptimo de trabajadores sea 5, se ejecute con menos de 2 o más de 12 trabajadores.

Será necesario, entonces, poner un límite superior e inferior del número de empleados que

Page 24: Capítulo 4: Secuenciación de tareas y asignación de ...bibing.us.es/proyectos/abreproy/70317/fichero/Capitulo+4.pdf · 4.7.2. Tiempo de Comienzo Tendremos en cuenta que las tareas

Modelo PSSA (Makespan)

83

pueden realizar una tarea para evitarnos este problema. Siguiendo con el ejemplo anterior,

se podría poner como límite inferior 3 y como límite superior 11 con lo que quedaría:

Ilustración 4-VII: Diferencia entre relación convexa y lineal a trozos II

Para este intervalo, la relación lineal a trozos se sitúa en todo momento por encima de la

relación convexa evitando, con esto, el problema desarrollado en el párrafo anterior.

Conseguimos además mejorar la relación convexa al presentar un resultado mucho más

realista, puesto que únicamente existe una cantidad de recursos óptima penalizando que se

asignen diferente cantidad de empleados.

Sin embargo, aún no podemos utilizar esta representación en el modelo. Al tratarse de un

modelo de programación lineal entera, las duraciones de las tareas deben ser dadas con

números enteros, por lo que las representaciones anteriores no serán válidas para nuestro

modelo. Habrá que redondear las duraciones a números enteros para obtener la siguiente

figura, que ya sí, será la curva lineal a trozos que consideraremos (se representa junto con

el resto de relaciones analizadas):

Page 25: Capítulo 4: Secuenciación de tareas y asignación de ...bibing.us.es/proyectos/abreproy/70317/fichero/Capitulo+4.pdf · 4.7.2. Tiempo de Comienzo Tendremos en cuenta que las tareas

Modelo PSSA (Makespan)

84

Ilustración 4-VIII: Relación lineal a trozos con tiempos de proceso redondeados

4.7.7.2. Configuración de los parámetros kd y kn

Como se vio en el punto anterior, la relación lineal a trozos viene dada por las ecuaciones:

A la izquierda del óptimo de recursos:

(

)

A la derecha del óptimo:

(

)

En dónde y son el tiempo de proceso óptimo y el número de recursos óptimos

respectivamente. El problema radica en la obtención de los parámetros kd y kn. Para

entender el significado de estos parámetros es necesario apoyarnos en las pendientes de las

rectas de la relación lineal a trozos:

Pendiente recta izquierda

Page 26: Capítulo 4: Secuenciación de tareas y asignación de ...bibing.us.es/proyectos/abreproy/70317/fichero/Capitulo+4.pdf · 4.7.2. Tiempo de Comienzo Tendremos en cuenta que las tareas

Modelo PSSA (Makespan)

85

Pendiente recta derecha

Puesto que el óptimo del problema no se puede modificar ( y será dato para cada

tarea), las pendientes de las rectas dependerán exclusivamente de los parámetros kn y kd.

Será entonces importante elegir adecuadamente sus valores para reflejar, con la mayor

exactitud posible, la realidad. Cuanto mayor sean los mismos, estaremos más del lado de la

seguridad. En el extremo, si tomásemos valores extremadamente altos para los parámetros,

entonces el modelo sería equivalente a un modelo sin CPT. Por el contrario, si son

demasiado bajos, se corre el peligro de obtener soluciones infactibles al situarnos por

debajo de la relación convexa. Volviendo al mismo ejemplo del punto anterior,

observaremos las relaciones lineales a trozos para diferentes valores de los parámetros.

Ilustración 4-IX: Definición de kd y kn

La figura se enmarca entre la mitad de la cantidad de recursos óptima y el doble. Valores

fuera de dicho intervalo no resulta realista considerarlos. Comenzando con la línea verde

(kd=kn=2), se sitúa siempre por encima de la relación convexa salvo en los extremos y en

Page 27: Capítulo 4: Secuenciación de tareas y asignación de ...bibing.us.es/proyectos/abreproy/70317/fichero/Capitulo+4.pdf · 4.7.2. Tiempo de Comienzo Tendremos en cuenta que las tareas

Modelo PSSA (Makespan)

86

el punto óptimo. El problema que conllevaría tomar estos valores de los parámetros sería

que la optimización tendería a usar, además del punto óptimo, los extremos del intervalo al

corresponderse con puntos de óptimos (en la relación convexa). Por debajo de estos

valores, no podemos tomar los parámetros puesto que darían lugar a infactibilidades, al

situarnos bajo línea roja. Por tanto, la otra posibilidad que queda será analizar los valores

superiores a kd=kn=2. Como observamos de la figura, a medida que incrementan el valor

de los parámetros, nos estaremos alejando más de la relación convexa. Sin embargo, como

se comentó con anterioridad, no tiene sentido valores muy elevados puesto que impedirían

que variase la cantidad de trabajadores asignados a las tareas, provocando así que los

tiempos de proceso no fuesen variables. Habrá que quedarse con una solución intermedia.

En este trabajo, se tomará la configuración kd=kn=2.5 para favorecer la posibilidad de que

las duraciones de las tareas sean variables y puesto que, al situarnos en todo momento por

encima de la línea convexa, estaremos presentando una solución que estará más del lado de

la seguridad que la anterior.

4.7.7.3. Aplicación en el modelo

Con la representación lineal a trozos se ha pretendido conseguir que si, para una tarea, se

decide utilizar una cantidad de recursos diferente de la óptima, conlleva entonces una

penalización en la eficacia que ocasionará una penalización en los tiempos de proceso.

Con anterioridad, se presentó la fórmula de los CPT a la izquierda y derecha del óptimo.

Sin embargo, para introducirla en el modelo deberá ser integrada de forma que solamente

una ecuación defina dichos tiempos:

( ) ( ( ∑

))

Los parámetros kd y kn serán los encargados de definir las pendientes de las líneas que

forman la relación lineal a trozos. Además, las holguras se suman en s (habilidad) para

obtener el valor general de los empleados sobrantes o deficientes sobre el deseado.

Page 28: Capítulo 4: Secuenciación de tareas y asignación de ...bibing.us.es/proyectos/abreproy/70317/fichero/Capitulo+4.pdf · 4.7.2. Tiempo de Comienzo Tendremos en cuenta que las tareas

Modelo PSSA (Makespan)

87

Puesto que pj es una variable entera positiva, necesitamos que el término derecho de la

ecuación sea un entero y, puesto que hay divisiones entre números enteros, esto no va a

ocurrir la mayoría de las veces. Por eso, se añade el término “round” que indica que la

duración de la tarea será igual al número entero más cercano al término de dentro de los

paréntesis.

En el caso de que el programa para la resolución utilizado (CPLEX, gurobi, lingo…) no

permitiese la inclusión de este tipo de terminología, se puede sustituir dicha restricción por

las dos restricciones siguientes que obtendrían el mismo resultado:

( ∑

)

( ∑

)

Así, quedarían definidas completamente las duraciones de las tareas. Únicamente para

cerrar las restricciones del modelo, quedan por tratar las inecuaciones encargadas de la

definición de zjt. Recordemos que zjt es una variable binaria que será igual a uno solamente

cuando se ejecute la tarea j en el instante t. Sabiendo esto, las inecuaciones encargadas de

cumplir la definición serán las siguientes:

( ) ∑

( )

( ) ∑

( )

( )

( )

Page 29: Capítulo 4: Secuenciación de tareas y asignación de ...bibing.us.es/proyectos/abreproy/70317/fichero/Capitulo+4.pdf · 4.7.2. Tiempo de Comienzo Tendremos en cuenta que las tareas

Modelo PSSA (Makespan)

88

Para la definición de zjt son imprescindibles las seis restricciones. Esto es debido a que

utilizamos CPT y a que el tiempo de comienzo de cada tarea es variable y no es ningún

dato de entrada. En caso contrario, todas estas restricciones habrían podido ser

simplificadas, simplemente, en las siguientes dos ecuaciones:

En nuestro caso no podemos simplificar las restricciones con lo que será necesario utilizar

las seis restricciones (18, 19, 20, 21, 22, 23) mostradas más arriba. Comenzando por la

restricción 18, será la encargada de establecer que la tarea debe procesarse ( debe ser

uno) en tantos periodos como duración tenga la misma. En la restricción 19 se obliga a que

la tarea j debe ser ejecutada obligatoriamente dónde xjt=1, es decir, el periodo de tiempo

dónde comienza la tarea. Con esto conseguimos que zjt comience dónde empieza la tarea.

A continuación, son necesarios en las siguientes restricciones los tiempos en los que

comienza y termina cada tarea, los cuales vendrán dados respectivamente por las

restricciones (20) y (21).

Las restricciones (22) y (23) serán las encargadas de forzar a que las tareas se realicen de

manera continua. Una vez que se comienza con la tarea, se tiene que trabajar en ella hasta

que se acaba, es decir, se fuerza a que los unos de la variable zjt sean consecutivos. Para

ayudar a entender tanto estas dos últimas restricciones (22 y 23) como la definición de zjt,

mostraremos un pequeño ejemplo en donde se muestran los valores que tendrán las

variables zjt y xjt para una tarea con duración de cuatro periodos empezando en el tiempo 2.

TIEMPO 0 1 2= 3 4 5=

6 7 8

xjt 0 0 1 0 0 0 0 0 0

zjt 0 0 1 1 1 1 0 0 0 Tabla 4-I: Ejemplo de variables xjt y zjt

Así, la restricción (22) obliga a que una vez que se sobrepase el tiempo final de la tarea, no

se siga procesando la misma (se obtienen los ceros de zjt de la derecha de ), mientras que

la restricción (23) fuerza a que antes de que comience la tarea, no se esté procesando la

misma (hace cero la variable zjt si t es menor que ).

Page 30: Capítulo 4: Secuenciación de tareas y asignación de ...bibing.us.es/proyectos/abreproy/70317/fichero/Capitulo+4.pdf · 4.7.2. Tiempo de Comienzo Tendremos en cuenta que las tareas

Modelo PSSA (Makespan)

89

Hemos definido los tiempos de proceso como función de los recursos asignados a la tarea.

Estos tiempos serán variables en el modelo que serán calculadas y modificadas en cada una

de las iteraciones, para la obtención de soluciones. Esto origina un gran incremento de

dificultad en la definición del modelo, pues todas las restricciones en las que haya

sumatorios cuyos límites dependen de las duraciones de las tareas deben ser modificadas,

al ser estas duraciones variables. Igual ocurre si las duraciones de las tareas se encuentran

indicando el número de restricciones que definen determinado conjunto de restricciones.

La mejor forma de ver esto es mediante un ejemplo, como el que aquí se presenta para el

siguiente conjunto de restricciones:

[ ]

Se observa que el número de restricciones depende de la duración de la tarea, pj, y, por

tanto, al variar la misma se modifica el número de restricciones que compondrán el

conjunto. Esto conlleva que no se puedan dejar las restricciones tal cual y haya que buscar

conjuntos análogos cuyo número de restricciones no sea dependiente de las duraciones de

las tareas. Así para este ejemplo, habría que reemplazar el conjunto anterior por los

siguientes:

( )

( )

( ) ( )

Con lo que un conjunto de restricciones muy sencillo para un caso normal como es el de

se convierte, al introducir los CPT, en cinco conjuntos de restricciones con,

además, cada uno de ellos más restricciones que el original, pasando a tener ahora más de

cinco veces el número de restricciones que teníamos antes.

4.8. Modelo sin habilidades

Page 31: Capítulo 4: Secuenciación de tareas y asignación de ...bibing.us.es/proyectos/abreproy/70317/fichero/Capitulo+4.pdf · 4.7.2. Tiempo de Comienzo Tendremos en cuenta que las tareas

Modelo PSSA (Makespan)

90

La notación del modelo que se ha presentado incluye la utilización de habilidades para

cada una de las tareas de forma que una tarea se subdivide en habilidades que son

necesarias para su ejecución. Un enfoque alternativo del problema sería la sustitución de

dichas habilidades por sub-tareas dentro de las denominadas tareas. Pasaríamos entonces a

tener un problema análogo con muchas más tareas que el anterior en el que la capacidad de

un empleado para realizar una habilidad sería sustituida por la capacidad para realizar

determinadas tareas (las que se correspondiesen con la habilidad en cuestión). Ambos

enfoques resuelven el mismo problema, su principal diferencia es el tratamiento de los

datos de entrada, mucho más sencillos en el caso de usar el modelo con habilidades. Sin

embargo, la mayoría de la literatura utiliza este segundo enfoque por lo que las baterías de

problemas presentadas en ellos están diseñadas acordes con éste. La representación de

cómo quedaría el modelo sin habilidades es mostrada en el Anexo I.