Formulación de un Problema de Programación de Explotación Forestal resuelto con Solver de Excel

En el artículo Problema de Planificación Forestal resuelto con Graphic Linear Optimizer (GLP) describimos un problema de explotación forestal reducido en términos de la complejidad de un caso de esta naturaleza (de modo de representarlo gráficamente), el cual a continuación extenderemos a través de la incorporación de una serie de decisiones en el tiempo respecto a la actividad de producción, planificación de personal, gestión de inventarios, compra, entre otros.  En este contexto considere el caso de una compañía forestal que cosecha (tala) árboles los primeros meses del año. La compañía tiene una serie de pedidos que debe satisfacer cada mes. Estos datos se resumen a continuación:

demanda-arboles

Al 1 de Enero hay un total de 40 trabajadores y no hay árboles en inventario. La jornada laboral es de 40 horas semanales y 4 semanas laborales al mes. Para cosechar un árbol se requiere 4 horas hombre. Independiente de lo anterior la forestal tiene una capacidad de cosecha de 3.000 árboles mensuales lo cual está dado por la maquinaria disponible.

El sueldo mensual de cada trabajador es de M$400 (el sueldo se paga de forma íntegra ante todo evento, es decir, trabajando la totalidad de horas al mes o menos). La política de la gerencia es no utilizar horas extraordinarias pero si podría comprar árboles a otra forestal cercana a un costo unitario de M$18. Adicionalmente se ha convenido no contratar trabajadores por una fracción de una jornada de trabajo normal (160[horas/mes]). Esto implica que si se contrata un trabajador debe ser por 160[horas/mes] a un costo de M$400 pero no es válido, por ejemplo, contratar un trabajador por 80[horas/mes] a un costo de M$200. El costo de contratar un trabajador es de M$200 y el costo de despedir un trabajador se estima en M$600.

Almacenar un árbol en bodega tiene un costo de M$10 de un mes a otro. Sin embargo, en la bodega no hay espacio para almacenar más de 500 árboles.

Formule y resuelva un modelo de Programación Entera para este problema que permita hallar una política óptima de explotación para la forestal. Indique claramente las variables de decisión del modelo y detalle explícitamente la función objetivo y cada una de las restricciones del modelo.

Variables de Decisión:

variables-forestal

Donde t=1,…,6 con t=1 Enero y t=6 Junio.

Función Objetivo: Minimizar los costos durante el período de planificación asociado a las remuneraciones, contratación, despido, compra y mantenimiento de inventario (respectivamente).

objetivo-forestal

Restricciones:

Balance de Trabajadores: Por ejemplo la cantidad de trabajadores disponibles al final del mes de Marzo para labores de cosecha son aquellos que terminaron trabajando al final del mes de Febrero, más los contratados en el mes de Marzo y menos los despedidos en Marzo.

balance-trabajadores

Satisfacer Demanda de Árboles: Donde D_{t} representa la demanda (parámetros) de árboles para el mes t.

demanda-arboles-restriccion

Capacidad Tala (Mano de Obra): Talar cada árbol requiere 4 horas hombre y un trabajador aporte 160 horas hombre en un mes. Luego, cada trabajador puede talar como máximo 40 árboles mensuales.

capacidad-personal-forestal

Capacidad Tala (Máquinas): Se puede talar como máximo 3.000 árboles mensuales dada la capacidad de las máquinas.

capacidad-tala-maquina

Capacidad Bodega: La bodega tiene una capacidad máxima de almacenamiento de 500 árboles.

capacidad-bodega-forestal

No Negatividad y Enteros: Se deben satisfacer las condiciones de enteros para las variables de decisión no negativas.

no-negatividad-forestal

Al implementar en Solver de Excel el modelo anterior se alcanza la solución óptima (celdas en color amarillo) con un valor óptimo de M$152.360.

solver-explotacion-forestal

Se recomienda al lector verificar que la solución alcanzada satisface las restricciones anteriormente expuestas. Notar adicionalmente que el plan óptimo actual no despide trabajadores durante la planificación y contrata trabajadores en Febrero y Abril (11 y 19, respectivamente), los mismos meses donde adicionalmente compra árboles (10 y 110) a la forestal cercana. Naturalmente al final de la planificación no existen incentivos para mantener árboles en bodega.

¿Quieres tener el archivo Excel con la implementación computacional de este ejemplo?

[sociallocker]

MUCHAS GRACIAS!. DESCARGA AQUÍ EL ARCHIVO

[/sociallocker]

Simulación de una Línea de Espera M/M/1 (Teoría de Colas) en Excel

Un sistema de espera M/M/1 es aquel que considera un servidor, con tiempos exponenciales de servicio y entre llegadas de clientes. La implicancia que los tiempos de servicio se distribuyan exponencial es que existe una preponderancia de tiempos de servicio menores al promedio combinados con algunos pocos tiempos extensos. Un ejemplo de ello es lo que sucede en las cajas de los bancos donde la mayoría de las transacciones requieren poco tiempo de proceso por parte del cajero, no obstante algunas transacciones más complejas consumen bastante tiempo. Por otra parte afirmar que los tiempos entre llegadas se distribuyen exponencial implica una preponderancia de tiempos entre llegadas menores que el promedio en combinación con algunos tiempos más extensos. Lo anterior tiene relación con la aleatoriedad del proceso de llegada de clientes que permite establecer la Propiedad de Falta de Memoria o Amnesia de la Distribución Exponencial y con los conceptos presentados en el artículo Qué son las Líneas de Espera (Teoría de Colas), donde queda en evidencia que la formación de las colas o filas esta asociada a la variabilidad del sistema.

En este contexto consideremos la siguiente notación, donde valores usuales para A y B son M (distribución exponencial) y G (distribución general).

notacion-de-kendall

El siguiente ejemplo disponible en el artículo Qué es la Ley de Little y su aplicación en el análisis de Líneas de Espera, nos permitirá ilustrar la simulación en Excel del comportamiento de un sistema de espera M/M/1.

Simulación de una Línea de Espera M/M/1

Ejemplo: Un pequeño banco está considerando abrir un servicio para que los clientes paguen desde su automóvil. Se estima que los clientes llegarán a una tasa promedio de 15 por hora (λ=15). El cajero que trabajará en la ventanilla puede atender a los clientes a un ritmo promedio de uno cada tres minutos (es decir, la capacidad promedio del servidor es de µ=20). Suponga que el patrón de llegadas es Poisson y el patrón de servicios es Exponencial.

Al hacer uso de la Planilla de Fórmulas de Sistema de Espera, se alcanzan los resultados que se resumen en la imagen a continuación.

salida-planilla-linea-de-es

Con esto la utilización promedio del servidor es de un 75%, el número esperado de clientes en el sistema Ls es 3, el número esperado de clientes en la fila Lq son 2,5, el tiempo promedio que un cliente permanece en el sistema Ws (espera más atención) son 0,2 horas (0 12 minutos) y el tiempo promedio que un cliente permanece en la fila Wq (esperando su atención) es de 0,15 horas (o 9 minutos).

Otra alternativa es simular el comportamiento de la línea de espera con configuración M/M/1 haciendo uso de Excel. Para ello ingresamos en la planilla Queueing_Simulator el número de servidores (1), la distribución para el tiempo entre llegadas (exponencial con media de 4 minutos, esto es, si llegan en promedio 15 clientes por hora, entonces en promedio llega un cliente cada 1/15 de hora o equivalentemente cada 4 minutos) y una distribución para el tiempo de servicio también exponencial con media de 3 minutos. Finalmente ingresamos el número de llegadas que se desea simular (arbitrariamente se ha seleccionado 100.000 llegadas para evaluar un comportamiento del sistema en el largo plazo) y luego Run Simulation.

simulacion-mm1-excel

Se puede apreciar que los resultados obtenidos en la columna F son (aproximadamente) similares a los obtenidos utilizando los resultados que establece la Ley de Little. Por ejemplo, el número esperado de clientes en el sistema L es 3,0157; el número esperado de clientes en la fila Lq es 2,2665; el tiempo esperado que un cliente permanece en el sistema W son 12,0612 minutos y así sucesivamente.

Importante: Los resultados mostrados anteriormente corresponden a aquellos obtenidos con una simulación tipo. Si una vez alcanzados los resultados presionamos nuevamente Run Simulation obtendremos cambios en los resultados los cuales de todos modos deberían aproximar los resultados de la Ley de Little bajo el supuesto de considerar un número significativo de llegadas a simular.

¿Quieres tener el archivo Excel con la Simulación de una Línea de Espera M/M/1 utilizada en este ejemplo?

[sociallocker]

MUCHAS GRACIAS!. DESCARGA AQUÍ EL ARCHIVO

[/sociallocker]

Cómo Calcular Cp y Cpk con el Complemento SPC for Excel

El Cálculo de los índices Cp y Cpk en el Control Estadístico de Procesos permite evaluar que tan bien el proceso se apega a las especificaciones técnicas deseadas o equivalentemente determinar si el proceso cumple el objetivo funcional para el cual fue diseñado. En el siguiente artículo mostraremos cómo obtener de forma rápida y sencilla dichos indicadores haciendo uso del complemento SPC for Excel, el cual puede ser descargado en el enlace anterior por un período de prueba de 20 días. Una vez que el complemento SPC for Excel haya sido correctamente descargado y activado será visible en en una de las pestañas del menú de Excel como se muestra (en un extracto) a continuación:

menu-spc-for-excel

Para ilustrar su utilización consideremos la información relativa a un proceso del cual se tienen 15 muestras, cada una de ellas con 4 observaciones, donde se ha registrado la información de las lecturas en OHMS de cierto dispositivo electrónico. La especificación nominal o deseada del dispositivo es de 1.000 OHMS y se permite una variabilidad de +- 25 OHMS con lo cual se definen los límites de especificación.

datos-para-calculo-de-cp-y-

A continuación seleccionamos la opción Cpk del menú de SPC for Excel (visible en la imagen anterior) y seleccionamos el rango de los datos. Notar que en el ejemplo la información cuantitativa de las muestras esta contenido en el rango que conforma la matriz de la celda C3 a la F17 (es decir, 60 celdas: 15 filas y 4 columnas). Adicionalmente ingresamos el Límite de Especificación Inferior (LEI) o Lower Specification Limit (LSL) de 975 OHMS (1.000 – 25) y Límite de Especificación Superior (LES) o Upper Specification Limit (USL) de 1.025 OHMS (1.000 + 25). Recordar que la especificación nominal es de 1.000 OHMS.

capacidad-del-proceso-spc

Una vez ingresados los datos atingentes al ejemplo y habilitando los resultados de capacidad (en su opción Yes) seleccionamos OK. Esto dará origen a una nueva hoja en nuestro archivo Excel con los resultados del análisis de capacidad tal como se muestra a continuación:

cp-y-cpk-spc-para-excel

Observar que los resultados son consistentes con los alcanzados preliminarmente en el artículo al cual hacemos referencia al inicio de este tutorial. Adicionalmente se obtienen una serie de estadísticas complementarias que permite tener una visión más general del comportamiento del proceso.

calculo-cp-y-cpk-control-es

Qué son las Líneas de Espera (Teoría de Colas)

En el artículo Qué es la Ley de Little y su aplicación en el análisis de Líneas de Espera describimos algunos elementos básicos asociados al estudio de líneas de espera como la población de referencia (finita o infinita), distribución de los tiempos entre llegadas (usualmente se distribuyen de forma exponencial, satisfaciendo la Propiedad de Falta de Memoria o Amnesia de la Distribución Exponencial), disciplina del servicio (FIFO, Prioridad, etc), entre otros elementos. A continuación buscaremos ahondar en dichos fundamentos buscando responder ¿Qué son las Líneas de Espera?.

En dicho contexto considere la siguiente pregunta: Un pequeño almacén tiene un solo vendedor que atiende en promedio a 12 clientes por hora (es decir su capacidad es µ=12[/c/h]), atendiendo de un cliente a la vez. La llegada de los clientes al almacén es a una tasa promedio de 10 clientes por hora (λ=10[/c/h]). ¿Hay filas en el almacen? (clientes esperando por su atención). Probablemente muchas personas respondan que no, pero la respuesta correcta es: depende.

linea-de-espera-llegada

Un ejemplo que permite evidenciar lo anterior es el siguiente. Un proceso como el que se describió en la pregunta anterior (almacén) que recibe 12 clientes por hora (λ). La columna Arrival Time detalla el minuto en el cual el cliente llega al almacén (asumamos que estamos evaluando desde las 07:00 a las 08:00, es decir, el primer cliente llega a las 07:00, el segundo a las 07:07 y así sucesivamente). Finalmente la columna Service Time detalla el tiempo que el vendedor se demora en atender al cliente (al calcular el promedio de los valores de dicha columna se observa que es 4,083 minutos, es decir, µ=14,69[/c/h] aproximadamente). Luego la utilización promedio del servidor (vendedor) es ρ=λ/µ=0,8167< 1. Los detalles de este procedimiento se puede consultar en el artículo Cómo calcular la Utilización de un servidor, Tiempo de Espera y Tiempo de Flujo de una Línea de Espera.

llegada-de-clientes

No obstante si analizamos en detalle del proceso de espera anterior podemos observar lo siguiente:

grafico-clientes-en-el-sist

Los clientes 3, 4, 5, 6, 7, 8 y 9 debieron esperar antes de ser atendidos por el vendedor aun cuando la utilización (promedio) del mismo es menor a 1. En el gráfico de barras adicionalmente se observa la cantidad de clientes en el sistema para un instante del tiempo dado (esto considerando tanto el cliente que eventualmente pueda estar siendo atendido más los que eventualmente están esperando por su atención). Por ejemplo a las 07:31 se esta atendiendo al cliente 5 y están esperando en fila los clientes 6, 7 y 8 (es decir, hay 4 clientes en el sistema). Luego la conclusión que podemos generalizar en este caso es:

Si existe variabilidad en las llegadas de los clientes al sistema y/o en las atenciones (tiempos de servicio), entonces hay colas o filas (aunque de largo finito). Esto a pesar de que λ<µ, o sea, de que ρ< 1. Si λ>µ el sistema es inestable (se generan colas infinitas).Dicho de otra modo la existencia de colas o filas en un sistema se deben a la variabilidad y no al hecho de que λ>µ (ρ> 1).

Cómo Resolver Gráficamente un Modelo de Programación Lineal con TORA

El software TORA es una excelente herramienta para resolver de forma intuitiva distintos modelos y aplicaciones de la Investigación Operativa. TORA está incluido en un CD (Compact Disc) adjunto al libro Investigación de Operaciones de Hamdy Taha y es compatible aún con las últimas versiones disponibles de Windows. Al respecto en el siguiente artículo se muestra su uso en un computador con sistema operativo Windows 7 Home Premium de 64 bits. para abordar la pregunta Cómo Resolver Gráficamente un Modelo de Programación Lineal con TORA. Adicionalmente el libro de Investigación de Operaciones de Hamdy Taha puede ser adquirido en sus versiones en español e inglés a precios convenientes desde distintos portales de comercio electrónico como Amazon.

Luego de su instalación y previo a su utilización es necesario realizar un ajuste a la resolución de pantalla seleccionando alguno de las 2 opciones recomendadas: 800×600 o 1024×786 pixeles (en realidad en este último caso 1024×768 como se podrá observar abajo). Para ello se debe ir al Panel de Control.

configurar-resolucion-tora

A continuación seleccionamos la resolución 1024×768 pixeles y Aplicar.

resolucion-monitor

Luego se despliega una ventana que nos solicita confirmar nuestra selección anterior. En este caso debemos Conservar Cambios.

conservar-cambios-resolucio

Una vez que el cambio en la resolución de pantalla ha sido ejecutado abrimos el programa TORA y se procede seleccionando el botón Click Here.

tora

Una vez en el menú principal podemos seleccionar un importante número de funcionalidades relativas a la Investigación Operativa que se tratan en el libro de Hamdy Taha y donde TORA resulta ser un excelente complemento para el aprendizaje de los estudiantes. En esta oportunidad mostraremos cómo resolver un modelo de Programación Lineal por ello seleccionamos la opción Linear Programming.

menu-tora

En el menú que se despliega ingresamos el nombre o título del problema, la cantidad de variables y restricciones (aquellas adicionales a las de no negatividad).

variables-y-restricciones-t

En este tutorial utilizaremos el mismo ejemplo que implementamos en el artículo Cómo Resolver Gráficamente un Modelo de Programación Lineal con IORTutorial, un problema que tiene 2 variables de decisión y 5 restricciones (donde 2 de ellas son las de no negatividad).

modelo-lineal-cambio-lado-d

Luego se completan los parámetros de la grilla con la información relativa al ejemplo que nos interesa resolver tal como se observa en la siguiente imagen:

input-grid-tora

Una vez ingresados los datos del problema se selecciona Solve Menu, Solve Problem y Graphical.

solve-tora-grafico

En la ventana a continuación se nos pide confirmar la cantidad de decimales. En este caso mantendremos los valores que ofrece el programa por defecto y seleccionamos Go To Output Screen.

opciones-salida-tora

Finalmente llegamos a la interfaz que permite realizar una representación gráfica del modelo lineal. Para graficar las restricciones se debe seleccionar cada una de ellas de forma individual y finalmente marcar la función objetivo que mostrará el desplazamiento de la curva de nivel que permite alcanzar la solución óptima y valor óptimo (visible en la esquina inferior izquierda de la siguiente imagen). En próximos artículos seguiremos mostrando funcionalidades adicionales de TORA, hasta entonces.

solucion-grafica-tora