Regla de Johnson en la Programación de n Trabajos en 2 Máquinas

Una de las variantes de la Programación de Tareas es la asignación de 2 máquinas al procesamiento de n trabajos siguiendo un orden común. Una estrategia a aplicar es la Regla o Método de Johnson con el objetivo de minimizar el tiempo requerido para finalizar los n trabajos en el taller de trabajo (conocido también como makespan).

El Método de Johnson considera los siguientes pasos:

  1. Se anota el tiempo de operación de cada trabajo en ambas máquinas.
  2. Se elige el tiempo más breve.
  3. Si el tiempo breve es para la primera máquina, se hace el primer trabajo; si es para la segunda máquina, se hace el trabajo al último. En caso de empate (igualdad de tiempo) se hace el trabajo en la primera máquina.
  4. Repetir los pasos 2 y 3 con los restantes trabajos hasta completar la programación.

Ejemplo Método de Johnson

A continuación se presenta un ejemplo que considera 7 trabajos a programar en 2 máquinas. Para que un trabajo sea terminado debe pasar primero por la máquina A y luego por la máquina B. Nos interesa aplicar la Regla de Johnson para generar una asignación que tenga asociado el menor tiempo posible (en minutos) en procesar los 7 trabajos:

Tabla Regla de Johnson

Paso 1: Listo. Tiempos de procesamiento disponibles en la tabla.

Paso 2, 3 y 4: Se elige el tiempo más breve (Trabajo 4 Máquina B). Como el tiempo más breve es en la segunda máquina, el Trabajo 4 se hace al final. El siguiente tiempo más breve es en el Trabajo 7 Máquina A y se programa en primer lugar. Luego el Trabajo 6 y 1 tienen el tiempo más breve que sigue (10), sin embargo, dado el empate se hace el trabajo en la Máquina A y por tanto se programa el Trabajo 6 en segundo lugar. Ahora tomamos el Trabajo 1 y siendo su menor tiempo en la Máquina B se programa en penúltimo lugar. Sigue el Trabajo 2 el cual se programa en tercer lugar. Posteriormente el Trabajo 3 en antepenúltimo lugar y finalmente el Trabajo 5 en cuarto lugar.

La secuencia óptima luego de aplicar la Regla de Johnson sería: 7-6-2-5-3-1-4. Luego, para determinar el tiempo requerido para completar los 7 trabajos se puede construir una Carta Gantt que muestre dicha planificación. El tiempo requerido es de 119 minutos (makespan).

Carta Gantt Johnson

El software WINQSB entre sus distintas aplicaciones nos permite generar una programación de los trabajos siguiendo el Método de Johnson según se muestra en el siguiente tutorial:

Problema de Asignación en Programación Entera resuelto con Solver

Cuando necesitamos asignar recursos escasos a determinadas funciones y dichos recursos no son fraccionables, la utilización de modelos de Programación Entera resultan ser de utilidad para la toma de decisiones. En este contexto los problemas de asignación de personal a determinadas tareas es una aplicación típica de la Programación Entera que a continuación desarrollaremos a través de un ejemplo.

Problema de Asignación

Consideremos una empresa que dispone de 5 ingenieros que deben desarrollar 7 proyectos. La tabla a continuación resume el tiempo que demora cada ingeniero (en horas) en completar un determinado proyecto. El problema consiste en determinar una asignación óptima que permita realizar cada uno de los proyectos con la limitante que por motivos estratégicos cada ingeniero debe desarrollar al menos un proyecto y en ningún caso hacer más de 2 proyectos. Por supuesto se busca que el tiempo requerido para realizar los 7 proyectos sea el menor posible.

Tabla Asignación

Una alternativa sería buscar intuitivamente una asignación que cumpla con los requisitos de la empresa y tenga un bajo tiempo asociado. Sin embargo, este tipo de estrategias de resolución queda claramente acotada a problemas de tamaño menor y ni siquiera en ese tipo de situaciones nos asegura la mejor solución posible. Por ello definiremos el siguiente modelo de optimización de Programación Entera:

1. Variables de Decisión: Utilizamos las siguientes variables de decisión binarias

Variables de Decisión Asignación

2. Función Objetivo: Minimizar el tiempo total requerido para completar los proyectos

Función Objetivo Asignación

Donde Tij (parámetros) es el tiempo (en horas) requerido por el ingeniero i en realizar el proyecto j. Por ejemplo T(A,P5)=7.

3. Restricciones:

Cada proyecto debe ser realizado por un solo ingeniero:

Restricción Asignación

Cada ingeniero debe ser al menos un proyecto y no puede hacer más de 2:

Restricción Asignación Ingenieros

El siguiente tutorial muestra cómo resolver este problema de asignación con Solver de Excel:

Se puede observar que para efectos de Solver, las variables de decisión binarias se deben definir como una restricción adicional. También puede resultar que luego de resolver Solver no encuentre inmediatamente la mejor solución posible. Para enfrentar esta situación se puede «volver a resolver» sobre la solución que el programa nos haya proporcionado hasta el momento para verificar si se puede lograr algo mejor. Esta situación es la que sucedió en el tutorial y a continuación se muestra la solución óptima (final) encontrada por Solver.

Solución Óptima Problema de Asignación

En total se requieren 56 horas para realizar los 7 proyectos. El ingeniero A realiza el P7, el ingeniero B el P3 y P5, el ingeniero C el P6, el ingeniero D el P2 y P4 y el ingeniero E el P1. Notar que cada proyecto es realizado por un ingeniero y cada ingeniero al menos realiza un proyecto, pero no más de 2 proyectos.

Probabilidad de terminar un Proyecto en un tiempo determinado con PERT

Cuando se utiliza el método PERT (Program Evaluation and Review Technique) uno de los principales objetivos es considerar la incertidumbre en el tiempo de duración de cada una de las actividades de modo de poder estimar la probabilidad de completar el proyecto en un tiempo determinado. Este tipo de análisis resulta de bastante utilidad en aplicaciones prácticas dado que se entiende que en todo Proyecto existen imprevistos o circunstancias que pueden afectar la duración de una actividad y su impacto se puede traspasar al inicio o termino de otras actividades.

Probabilidad de completar un Proyecto en un tiempo determinado utilizando PERT

Para introducir este concepto consideraremos nuevamente nuestro ejemplo de un proyecto que consta de 9 actividades y que contempla las siguientes secuencias y tiempos estimados para cada uno de sus 3 escenarios:

Tiempo esperado PERT

Luego de obtener la duración del proyecto utilizando la Metodología de PERT y el software WINQSB, se determina que el tiempo estimado para completar el proyecto es de 21,5 semanas y las actividades de la ruta crítica son D-F-G. El paso siguiente es determinar la sumatoria de las varianzas de las actividades que pertenecen a la ruta crítica. La varianza se obtiene como:

Varianza Actividades

Donde b es el tiempo pesimista y a es el tiempo optimista. La siguiente tabla muestra el cálculo de la varianza redondeando a 5 decimales (decisión arbitraria para efectos de desarrollar el ejemplo). Se ha marcado con verde las actividades de la ruta crítica para las cuales en la celda H13 se ha calculado la suma de sus varianzas.

Varianza para PERT

Consideremos ahora que para este proyecto nos interesa calcular la probabilidad de poder terminarlo en 23 semanas o menos. Para ello desarrollamos el siguiente procedimiento que nos indica que dicha probabilidad es un 86,86%:

Probabilidad PERT

Esta probabilidad también se puede obtener con la función de Excel: =DISTR.NORM.ESTAND(1,12)

El siguiente tutorial muestra cómo calcular la probabilidad de terminar el proyecto en 23 semanas o menos utilizando WINQSB. Notar que el resultado es levemente diferente sólo por efecto de aproximación:

Cómo obtener la duración de un Proyecto con PERT y WINQSB

A diferencia del Método de Ruta Crítica o CPM la metodología de PERT (Program Evaluation and Review Technique) considera que el tiempo de duración de las actividades que comprenden un proyecto es estocástico.

Este supuesto implica que para cada actividad tendremos distintos escenarios de ocurrencia sobre el tiempo requerido para llevarla a cabo. Estos escenarios se denominan usualmente como Optimista (a) (el menor tiempo posible), Más Probable (m) y Pesimista (b) (el mayor tiempo en el peor de los casos).

Cada uno de estos escenarios descritos se pondera en 1/6, 2/3 y 1/6, respectivamente para obtener el Tiempo Esperado t_{e} de cada actividad: t_{e}=(1/6*a+2/3*m+1/6*b) y luego obtener el tiempo de duración del proyecto (notar que la suma de las probabilidades de ocurrencia de cada escenario es igual a 1 o un 100%).

Duración de un Proyecto con PERT

En la siguiente tabla se muestra cómo calcular el tiempo esperado para cada actividad de un Proyecto, por ejemplo, el tiempo esperado de la actividad A es de 6 semanas ((1/6)*5+(2/3)*6+(1/6)*7) según se aprecia en la fórmula:

Tiempo esperado PERT

Para poder determinar la duración de un proyecto utilizando PERT consideramos los tiempos esperados para cada actividad y seguimos un procedimiento similar al del Método de la Ruta Crítica o CPM. Otra alternativa equivalente es utilizar un software especializado como WINQSB para obtener la duración del proyecto según se muestra en el siguiente tutorial:

El tiempo estimado para completar el proyecto es de 21,5 semanas y la ruta crítica esta determinada por la secuencia D-F-G. Se puede comprobar que si aplicamos el método de la ruta crítica con los tiempos esperados de cada actividad como tiempo determinista, se obtienen los mismos resultados.

PERT en WINQSB

Cómo resolver un modelo de Programación Lineal con el Método Simplex

Existen algunas herramientas en Internet que permiten resolver modelos de Programación Lineal utilizando el Método Simplex. Este tipo de aplicaciones resultan de bastante utilidad para los estudiantes de ingeniería que desean verificar si los resultados que obtienen en la aplicación manual del método resultan ser correctos.

En esta oportunidad revisaremos la interfaz para resolver modelos de Programación Lineal con el Método Simplex disponible en el sitio web ProgramacionLineal.net. Para ello utilizaremos un modelo lineal en 2 variables que previamente resolvimos gráficamente con el complemento Solver de Excel y el software Geogebra.

Cómo resolver un modelo de Programación Lineal con el Método Simplex

Modelo de Programación Lineal

El siguiente tutorial muestra cómo implementamos este modelo de optimización con la herramienta de resolución del Método Simplex:

La última tabla del Método Simplex luego de la resolución con esta aplicación y eliminando la columna p (no es necesaria) es la siguiente:

Tabla Optima Metodo Simplex

La Solución Óptima (que corresponde a una solución básica factible óptima) es x=100 e y=350 (x e y son las variables básicas de las filas 1 y 3 respectivamente). El valor óptimo es V(P)=3.100. Notar que la solución óptima corresponde al vértice C de la representación gráfica del problema propuesto que se muestra a continuación:

resolver pl con geogebra

Importante: Las variables s1 y s3 son variables no básicas en la actual solución óptima y por tanto su valor es cero. La variable s2 es la variable básica de la fila 2 y toma el valor de 400. Notar que las variables s1, s2 y s3 son inicialmente las variables de holgura necesarias para llevar el modelo de Programación Lineal a su forma estándar.