Métodos Cuantitativos para la Toma de Decisiones Daniel Serra de La Figuera.
Enviado por disectoresdec9 • 3 de Abril de 2016 • Informe • 34.858 Palabras (140 Páginas) • 517 Visitas
Métodos Cuantitativos para la Toma de Decisiones Daniel Serra de La Figuera Octubre 2002 2 3 Prólogo Este libro se refiere al uso de modelos cuantitativos en la resolución de problemas de gestión y administración de sistemas complejos, con especial énfasis en la toma de decisiones. Ha sido escrito para dos tipos de usuarios: el administrador general o administrador en potencia, que puede sacar provecho de su uso en la comprensión y aplicación de los modelos cuantitativos para la toma de decisiones; o para estudiantes de estudios en donde la toma de decisiones juega un papel fundamental, como son los de gestión y administración y economía entre otros. El libro no pretende ser exhaustivo en cuanto a las técnicas existentes, ya que existe un sinfín de excelentes manuales de técnicas cuantitativas y de investigación operativa (algunos de ellos se citan al final del libro). La gran diferencia entre este libro y los manuales clásicos radica en que el nivel de complejidad matemática se mantiene al mínimo nivel posible, y se hace especial énfasis en el planteamiento de modelos y en explicar como algunas de las técnicas existentes pueden ayudar a solucionar problemas que aparecen en cualquier organización. Por ello, para su lectura no se necesita una formación matemática previa; incluso se puede decir que en todo el libro no se utilizan mas que las cuatro operaciones aritméticas básicas: sumar, restar, multiplicar y dividir. También se incluye la posibilidad de obtener todos los problemas resueltos así como una explicación de cómo resolver cualquier formulación presentada en este libro con la popular hoja de cálculo Microsoft Excel 97 en la dirección electrónica siguiente: http://www.econ.upf.es/~serra/libro.htm Sobre el autor. Daniel Serra de La Figuera es licenciado en Ciencias Económicas y Empresariales por la Universidad Autónoma de Barcelona, Master en Análisis de sistemas para la toma de decisiones y Doctor (Phd) por la Universidad Johns Hopkins de EEUU. Actualmente es Catedrático de Universidad de Organización de Empresas del departamento de Economía y Empresa en la Universidad Pompeu Fabra. Ha realizado diversos trabajos para el sector público y para el sector privado en el campo de la toma de decisiones y logística, tanto dentro del ámbito sanitario como el de transporte y distribución. Ha publicado varios artículos en prestigiosas revistas científicas internacionales e imparte clases en diversos masters y cursos de postgrado relacionados con la gestión y administración. Actualmente es director del Instituto de Estudios Territoriales de la Universidad Pompeu Fabra, investigador del Centre de Recerca en Economia i Salud y vicerrector de Economía, Promoción y Servicios de la misma universidad. Agradecimientos Este libro ha recibido el apoyo de la Fundación Banco Bilbao Vizcaya y del Centre de Recerca en Economia i Salud (CRES) de la Universidad Pompeu Fabra. EL autor también agradece a las profesoras Rosa Colomé Perales y Helena Ramalhinho Lourenço por su ayuda y aportaciones al texto. Prohibida su reproducción sin el consentimiento del autor. Para entrar en contacto, enviar un mensaje a: daniel.serra@econ.upf.es 4 5 Tabla de Contenidos 1 Programación Lineal I: Formulación de Problemas ____________________ 9 1.1 Introducción _______________________________________________ 9 1.2 Orígenes de la Programación Lineal ___________________________ 10 1.3 Formulación de Modelos_____________________________________ 12 1.3.1 Un Problema de asignación de personal __________________________ 12 1.3.2 Un problema de asignación de recursos __________________________ 13 1.3.3 Un problema de transporte ____________________________________ 15 1.3.4 Un problema de Programación Financiera ________________________ 17 1.4 Tres ejemplos de Aplicación de la Investigación Operativa en el Ámbito Sanitario _______________________________________________________ 19 1.4.1 Planificación y asignación de recursos en un sistema de salud mental____ 19 1.4.2 Programación de Servicios de Salud a Domicilio ___________________ 20 1.4.3 Fabricación de Válvulas Cardiacas ______________________________ 21 1.5 Problemas ________________________________________________ 23 2 Programación Lineal II: Métodos de Resolución ______________________ 29 2.1 El método gráfico __________________________________________ 29 2.2 El Método Simplex _________________________________________ 32 2.3 Adaptación a otro tipo de modelos _____________________________ 44 2.3.1 Restricciones con igualdad ____________________________________ 44 2.3.2 Restricciones con dirección . _________________________________ 45 2.3.3 Minimización ______________________________________________ 46 2.3.4 Variables no acotadas________________________________________ 47 2.4 Situaciones especiales en el método Simplex _____________________ 47 2.5 Soluciones con Ordenador ___________________________________ 48 2.6 Ejercicios _________________________________________________ 54 3 Programación Lineal Entera ______________________________________ 59 3.1 Introducción ______________________________________________ 59 3.2 El algoritmo de bifurcación y acotamiento_______________________ 59 3.3 Programación Entera y Solver ________________________________ 62 3.4 Programación Entera Binaria I: El Problema de la Mochila ________ 63 3.5 El Problema de Asignación___________________________________ 65 3.6 Problemas de Localización de Servicios_________________________ 67 3.6.1 Modelos de Cobertura _______________________________________ 68 3.6.2 Modelo de Localización P-Mediano ____________________________ 72 3.6.3 El Problema de Localización de Plantas con Capacidad ______________ 74 6 3.7 Conclusiones ______________________________________________ 75 3.8 Problemas ________________________________________________ 77 3.9 Anexo: Datos de la red de 20 nodos ____________________________ 79 4 Programación Multiobjetivo ______________________________________ 81 4.1 Introducción ______________________________________________ 81 4.2 Espacio de Decisiones y Espacio de Objetivos ____________________ 81 4.3 Métodos de Resolución ______________________________________ 84 4.3.1 El Método de la restricción____________________________________ 84 4.3.2 El Método de los Pesos_______________________________________ 87 4.3.3 Extensiones de la programación multiobjetivo._____________________ 89 4.4 Problemas ________________________________________________ 90 5 Gestión de Colas________________________________________________ 93 5.1 Descripción de un sistema de colas _____________________________ 93 5.2 Objetivos de la gestión de colas________________________________ 95 5.3 Medidas del sistema_________________________________________ 96 5.4 Un sistema de colas elemental: tasa de llegada y de servicio constantes 96 5.4.1 No hay cola, tiempo ocioso del servidor __________________________ 96 5.4.2 No hay cola ni tiempo ocioso del servidor. ________________________ 96 5.4.3 Formación de cola y sin tiempo ocioso en el servidor ________________ 97 5.5 Las distribuciones de Poisson y Exponencial _____________________ 97 5.5.1 La distribución de Poisson ____________________________________ 97 5.5.2 La distribución Exponencial ___________________________________ 98 5.6 Modelo de colas simple: Llegadas en Poisson y tiempos de servicio exponencialmente distribuidos. _____________________________________ 99 5.7 Modelo múltiple de colas: Llegadas en Poisson y tiempos de servicio exponencialmente distribuidos. ____________________________________ 102 5.8 Limitaciones de los modelos de gestión de colas__________________ 104 5.9 Ejemplo de simulación de un sistema de colas. __________________ 104 5.9.1 Recogida de datos__________________________________________ 104 5.9.2 Simulación de llegadas. _____________________________________ 105 5.9.3 Simulación de los tiempos de servicio __________________________ 106 5.9.4 Simulación conjunta del sistema_______________________________ 107 5.10 Problemas _______________________________________________ 111 6 Gestión y Administración de Proyectos (PERT/CPM) __________________ 113 6.1 Definición de la Gestión y Administración de Proyectos___________ 113 6.2 Representación gráfica de un Proyecto ________________________ 115 6.3 Planificación Temporal del Proyectos (CPM) ___________________ 120 6.3.1 Primera fase: análisis temporal de los sucesos ____________________ 120 7 6.3.2 Segunda fase: análisis temporal de las actividades _________________ 122 6.3.3 Tercera fase: análisis más detallado de los márgenes _______________ 123 6.4 El Gráfico Gantt __________________________________________ 124 6.5 El PERT_________________________________________________ 125 6.5.1 Ejemplo de PERT__________________________________________ 126 6.6 Planificación de Recursos: Tiempo-Coste ______________________ 128 6.7 Conclusiones _____________________________________________ 129 6.8 Problemas _______________________________________________ 131 7 Bibliografía __________________________________________________ 135 8 9 1 Programación Lineal I: Formulación de Problemas 1.1 Introducción El desarrollo de la investigación operativa, según muchos autores, ha representado uno de los avances científicos más importantes desde mediados del siglo XX. Actualmente es una herramienta utilizada en muchos campos de la administración, de la economía y de la ingeniería. Existen muchos libros de texto sobre el tema y miles de artículos científicos en revistas especializadas. La investigación operativa tiene como base el método científico para investigar y ayudar a tomar decisiones sobre los problemas complejos de las organizaciones de hoy en día. Básicamente la investigación operativa sigue los pasos siguientes: (1) la observación de un problema, (2) la construcción de un modelo matemático que contenga los elementos esenciales del problema, (3) la obtención, en general con la utilización de un ordenador, de las mejores soluciones posibles con la ayuda de algoritmos exactos o heurísticos y finalmente (5), la calibración y la interpretación de la solución y su comparación con otros métodos de toma de decisiones. Un ejemplo simple, el problema de la asignación, nos puede servir para ilustrar la dificultad esencial de la investigación operativa. Un hospital tiene 70 trabajadores con calificaciones diferentes (médicos, enfermeros, ATS, personal de administración, etc.) que hemos de asignar a 70 actividades también diferentes. Si pudiéramos determinar un valor que reflejase la asignación de un trabajador a una tarea determinada, tendríamos que escoger una entre 70! formas posibles de permutación de las asignaciones que maximice el valor total. Cómo que 70! es aproximadamente igual a 10100, necesitaríamos un ordenador que ejecutase 1.000.000 de operaciones por segundo durante aproximadamente 1087 años (muchas veces la vida proyectada del universo) para examinar todas las permutaciones. Problemas de decisión como éste son muy comunes y se tienen que desarrollar modelos de programación matemática, métodos matemáticos para obtener soluciones a los modelos, y algoritmos de ordenador (procedimientos paso a paso) muy eficientes. Se dice que la investigación operativa constituye el 25% del tiempo total utilizado por los ordenadores para resolver problemas científicos. La investigación operativa ha tenido un impacto impresionante en la mejora de la eficiencia de numerosas organizaciones en todo el mundo. Existen inúmeras aplicaciones con éxito en todos los campos en donde la toma de decisiones es compleja y que pueden implicar para la organización grandes inversiones o cambios en la organización que determinen su futuro. La programación lineal es la herramienta básica más utilizada dentro de la investigación operativa, debido tanto a su inmenso abanico de aplicaciones como a su simplicidad de implementación. Efectivamente, el desarrollo de la programación lineal, según muchos autores, ha representado uno de los avances científicos más importantes desde mediados del siglo XX. Actualmente es una herramienta utilizada en muchos campos de la administración, de la economía y de la ingeniería. Existen muchos libros de texto sobre el tema y miles de artículos científicos en revistas especializadas. 10 La programación lineal es un caso especial de la programación matemática, en donde todas las funciones que hay en el modelo son lineales: siempre tenemos una función objetivo lineal a optimizar (maximizar o minimizar), sujeta a restricciones lineales individuales. Las variables del modelo, que son continuas, únicamente pueden coger valores no negativos. Si bien puede parecer que estos supuestos quitan realismo al problema porque el modelador está limitado al uso de ecuaciones que quizás no son frecuentes en el mundo real, las técnicas de programación lineal se utilizan en un amplísimo espectro de problemas como, entre otros, de planificación y gestión de recursos humanos y materiales, de transporte, de planificación financiera y de organización de la producción. En definitiva, una extensa gama de problemas que aparecen en las áreas de tipo industrial, económico, administrativo, militar... El término programación tiene su origen en la planificación de las actividades que se realizan en una organización tal como una fábrica, un hospital, una compañía aérea o un organismo público, en dónde hay un objetivo a optimizar (maximización de beneficios, minimización de costes, maximización de la cobertura sanitaria, etc.). No tenemos que confundir este término con la “programación” en referencia a la preparación de una serie de ordenes e instrucciones de un lenguaje informático en un ordenador. 1.2 Orígenes de la Programación Lineal La programación lineal, si bien actualmente se utiliza frecuentemente para resolver problemas de decisión, era casi desconocida antes de 1947. Ninguna investigación significativa fue realizada antes de esta fecha, si bien hay que mencionar que, alrededor de 1823, el matemático francés Jean Baptiste Joseph Fourier parecía conocer el potencial del tema. Un matemático ruso, Leonid Vitalievitx Kantorovitx, que publicó una extensa monografía en 1939, Matematitxeskie Metodi Organisatsi i Planirovaniia Proisvodstva (Métodos matemáticos para la organización y planificación de la producción) fue el primer investigador en reconocer que una amplia gama de problemas de producción y distribución tenían una estructura matemática y, que por lo tanto, se puedan formular con un modelo matemático. Desgraciadamente sus propuestas fueron desconocidas tanto en Unión Soviética como en el occidente durante dos décadas. Durante este periodo, la programación lineal experimentó un gran desarrollo tanto en Estados Unidos como en Europa. Después de la segunda guerra mundial, funcionarios del gobierno americano consideraron que la coordinación de las energías de toda una nación debido al peligro de una guerra nuclear requeriría la utilización de técnicas científicas de planificación. Con la aparición del ordenador esto se hizo posible. Se crearon instituciones como la Corporación RAND en donde ingenieros y matemáticos se pusieron a trabajar intensamente en la formulación y resolución de problemas matemáticos aplicados a la toma de decisiones. Entre otros, se propuso un modelo de programación lineal por su simplicidad y aplicabilidad, sin dejar de dar un marco lo suficientemente amplio para representar actividades interdependientes que han de compartir recursos escasos. El sistema (como, por ejemplo, la producción industrial) se compone de diversas actividades relacionadas entre ellas (formación, fabricación, almacenaje, transporte, distribución y venta). Este fue el primer modelo de programación lineal conocido. ¿En qué consiste la Programación Lineal? La Programación lineal (PL de ahora en adelante) consiste en encontrar los valores de unas variables que maximizan o minimizan un único objetivo sujeto a una serie de restricciones. Las principales características de PL son: 11 1. Un único objetivo lineal a optimizar (maximizar o minimizar) 2. Unas variables de decisión que siempre son continuas1 y no negativas 3. Una o más restricciones lineales 4. Un conocimiento exacto de los parámetros y recursos utilizados en la construcción del modelo. Si todas estas condiciones se cumplen, existen varios métodos de obtención de soluciones que nos dan la solución óptima con un coste computacional relativamente reducido. Como veremos más adelante, incluso la más popular de las Hojas de Cálculo, Excel, incorpora una herramienta para resolver programas lineales. A continuación analizaremos con más detalles estas características y lo que ocurre si una o varias de ellas no se cumplen. En primer lugar, cabe destacar que en la PL todas las funciones utilizadas tanto en el objetivo como en las restricciones son lineales. Es decir, las restricciones consisten en la suma de variables multiplicadas por sus respectivos parámetros, siendo esta función menor, igual o mayor que un determinado recurso. El objetivo también es lineal, si bien desconocemos a priori su valor. En caso de que tanto el objetivo como una o más restricciones no fueran lineales, sería necesario el introducir métodos de programación no-lineal, que son mucho más complejos de resolver y cuya optimalidad no siempre está garantizada. En segundo lugar, la PL considera que las variables de decisión son continuas. Desde el punto de vista matemático de obtención de soluciones, esta característica no ofrece problemas. Ahora bien, en muchas situaciones, la interpretación económica de la solución de un problema de PL no tiene sentido si obtenemos fracciones en las variables. Por ejemplo, si estamos asignando trabajadores a tareas, no tiene sentido un resultado que en un momento determinado asigne 3,4 trabajadores a una determinada tarea. Por otro lado, y como veremos más adelante, si uno opta por redondear al entero más próximo se puede cometer un grave error. Para poder obtener soluciones enteras en problemas que lo requieren, se utiliza la Programación lineal Entera, que será objeto de estudio en el capítulo cuarto de este libro. En tercer lugar, los modelos de PL consideran que hay un único objetivo a maximizar o minimizar. Muchas veces podemos tener que resolver problemas que tienen más de un objetivo. Por ejemplo, por un lado podemos querer maximizar la cobertura de un determinado servicio sanitario, mientras que por el otro queremos reducir los costes generales. Ambos objetivos son conflictivos, en el sentido de que aumentar la cobertura significaría un aumento en la necesidad de recursos con el consecuente incremento de costes en el sistema. Esta conflictividad se resuelve utilizando métodos de Programación Multicriterio o multiobjetiva, presentados en el capítulo quinto de este libro. Finalmente, en la PL se considera que los parámetros utilizados en la construcción del modelo se conocen con exactitud, o en términos más técnicos, son determinísticos. Sin embargo, existen situaciones en las que uno o más parámetros tienen un componente estocástico, o en palabras menos técnicas, tienen una variabilidad (que en algunos casos puede ser representada por una distribución estadística). Si esto acontece, la PL ya no es un buen instrumento para la obtención de soluciones. Es necesario utilizar técnicas de Programación Estocástica, que quedan fuera del alcance de este libro. 1 Por continuas se entiende que pueden tomar valores fraccionados 12 1.3 Formulación de Modelos En esta sección se presentan algunos ejemplos de los problemas con los cuales se puede encontrar una organización y como la programación lineal puede expresarlos matemáticamente. 1.3.1 Un Problema de asignación de personal El hospital Optsalud ha decidido ampliar su servicio de urgencias (abierto las 24 horas) con la consiguiente necesidad de nuevo personal de enfermería. La gerencia del hospital ha estimado las necesidades mínimas de personal por tramos horarios para poder cubrir las urgencias que se presenten. Se definieron 6 tramos de 4 horas. La necesidad mínima de personal en cada tramo se indica en el Cuadro 1.1. Por otro lado, el departamento de recursos humanos ha informado a gerencia que los contratos laborales han de ser de ocho horas seguidas, según el Convenio firmado con los sindicatos, independientemente de los horarios de entrada y salida del personal. El problema es encontrar el número mínimo de personal necesario para cubrir la demanda. Cuadro 1.1: Necesidades de personal por tramos horarios Tramos Horarios J 1 0:00-4:00 2 4:00-8:00 3 8:00-12:00 4 12:00-16:00 5 16:00-20:00 6 20:00-24:00 Personal Nj 9 5 3 7 5 6 Formulación del problema: En primer lugar, se tienen que definir las variables del modelo que queremos desarrollar. Como hemos de controlar en número de personal en cada turno, definimos Xj como la cantidad de personal que entra a trabajar en el turno j, en donde j=1,...,6. Es decir, hay una variable para cada turno. Las restricciones del modelo tienen que reflejar la necesidad de que la cantidad de personal que entren en el periodo j más el número de personas que entraron a trabajar en el turno j-1 sean suficientes para cubrir las necesidades del turno j (Nj). Esta situación queda reflejada en el Cuadro 1.2. En esta tabla, un trabajador que entra a trabajar, por ejemplo, a las 4:00, trabajará en los turnos 2 y 3, y por tanto, contribuirá a cubrir las necesidades de estos dos turnos. En otras palabras, el turno j estará siendo atendido por Xj-1 y Xj. En consecuencia, tendremos que Xj-1 + Xj (el personal que trabaja durante el turno j) tiene que ser, como mínimo, igual a Nj, que es el número mínimo de personal de enfermería necesario para este turno. En términos matemáticos la restricción es la siguiente: Xj-1 + Xj Nj Habrá una restricción para cada horario de entrada. El objetivo de la gerencia consiste en la minimización del número total de personal de enfermería necesario para cubrir las necesidades diarias. Este número será igual a X1 +X2 +X3 +X4 +X5 +X6 que representa la suma del número de personal que entra en cada periodo. Finalmente, el modelo matemático es el siguiente: 13 Sujeto a: X6 + X1 9 X1 + X2 5 X2 + X3 3 X3 + X4 7 X4 + X5 5 X5 + X6 6 Xj 0, j= 1,...,6 Cuadro 1.2: Necesidades de personal Tramos Horarios 1 0:00-4:00 2 4:00-8:00 3 8:00-12:00 4 12:00-16:00 5 16:00-20:00 6 20:00-24:00 0:00 X1 X1 4:00 X2 X2 8:00 X3 X3 12:00 X4 X4 16:00 X5 X5 20:00 X6 X6 Personal Nj 9 5 3 7 5 6 1.3.2 Un problema de asignación de recursos El gerente del hospital Muchsalud ha observado que algunos de sus servicios tienen capacidad ociosa. Siguiendo una propuesta realizada por el equipo médico, esta capacidad ociosa podría aprovecharse para introducir dos tipos nuevos de cirugía, A y B. Tanto los pacientes de tipo A como los de tipo B tienen que pasar primero por una sala de pre-cirugía y, una vez pasado por el quirófano tienen que estar en observación en una sala postoperatoria, que no existe de momento. El equipo médico ha estimado el tiempo medio que necesita cada paciente de tipo A y de tipo B en cada uno de los servicios pre-quirúrgico (PQ), quirúrgico (QI) y postoperatorio (PO). La experiencia en un hospital similar muestra que por cada tres pacientes de tipo A que llegan al hospital como mínimo llega uno de tipo B. Por otra parte, se ha estimado el coste de cada paciente en los diferentes servicios. El Cuadro 2.3 muestra los datos del problema, teniendo en cuenta que la capacidad ociosa es en horas mensuales y el coste por paciente en . å= = 6 j 1 min Z X j 14 Cuadro 2.3: Estimaciones horarias de las cirugías A y B Horas Necesarias de Cirugía Capacidad Ociosa A B Sala PQ 1 3 144 Sala QI 3 2 162 Sala PO 4 2 Coste 13 18 Como el servicio postoperatorio (PO) aún no existe, el gerente argumenta que para justificar su creación tiene que utilizarse durante un mínimo de 135 horas al mes. Por otra parte, el presupuesto mensual asignado a las nuevas cirugías es de 982 . El gerente quiere saber cual será el número máximo de pacientes que podrán ser operados al mes. Formulación matemática del problema: Primero definimos las variables del modelo. Sean X1 y X2 el número total de pacientes por mes que pueden ser tratados con la cirugía A y B respectivamente. A continuación se presentan las restricciones. Se ha establecido que en la sala PQ se disponen de 144 horas. En otras palabras, la utilización de esta sala no puede sobrepasar las 144 horas. Como cada uno de los pacientes de tipo A y de tipo B consumen 1 hora y 3 horas en esta sala respectivamente, el número total de horas mensuales consumidas en PQ para los dos tipos será igual a X1 + 3X2. Este número tiene que ser inferior o igual a las 144 horas. La restricción será la siguiente: X1 + 3X2 144 El mismo razonamiento puede ser utilizado para determinar el número límite de horas en la sala QI. Como el total de horas consumidas será igual a 3X1 + 2X2, y hay un máximo de 162 horas disponibles, la restricción sobre QI será: 3X1 + 2X2 162 El gerente ha determinado que, para viabilizar los nuevos tratamientos, se tiene que ocupar la nueva sala PO durante un mínimo de 135 horas al mes. Como el número de horas mensuales que se utilizará en PO es igual a 4X1 + 2X2, tendremos que: 4X1 + 2X2 135 La experiencia en otros hospitales muestra que, por cada 3 pacientes de tipo A, viene como mínimo un paciente de tipo B. Matemáticamente, esto se expresa como: X1/3 X2 que es equivalente a: X1 - 3X2 0 Finalmente, el gasto mensual realizado en las dos cirugías no puede exceder 982 . Como cada paciente de tipo A y de tipo B cuesta 13 Euros y 18 Euros respectivamente, el gasto total mensual será de 13X1 + 18X2, cantidad que no puede exceder 982 , tendremos que: 15 13X1 + 18X2 982 Ahora se necesita formular el objetivo. El gerente quiere saber el número máximo de enfermos de tipo A y de tipo B que se puede atender cada mes. Simplemente, tendremos que si Z es este número, el objetivo se expresará como: Max Z = X1 + X2 En resumen, la formulación del problema es la siguiente: Max Z = X1 + X2 s.a. (1) X1 + 3X2 144 (2) 3X1 + 2X2 162 (3) 4X1 + 2X2 135 (4) X1 - 3X2 0 (5) 13X1 + 18X2 982 X1, X2 0 1.3.3 Un problema de transporte El hospital Saludmuch pertenece a la Compañía de Seguros Todosalud SA. Esta sociedad tiene un Centro de Asistencia Primaria (CAP) en n pueblos y ciudades de una región (un CAP en cada centro urbano). Para obtener un buen funcionamiento global del servicio y poder planificar el número de visitas en función del personal previsto en cada CAP y de su dimensión, Todosalud S.A. ha decidido organizar el servicio de tal forma que todos sus asegurados tengan un CAP de referencia asignado, pero que sea éste el más cercano posible a su lugar de residencia. En la región hay m ciudades y pueblos (siendo m mucho mayor que n) y la compañía sabe cuantos asegurados tiene en cada uno de ellos. Los CAP tienen una capacidad máxima de pacientes que pueden soportar. El objetivo es asignar a los asegurados a los CAPs minimizando el coste o la distancia total. Si no existiera el problema de capacidad, el modelo sería trivial, ya que bastaría asignar cada ciudad al CAP más cercano, obteniéndose el coste de transporte más barato. Al tener límites en la capacidad, puede ser que no todas las ciudades tengan asignado el centro más cercano, ya que esto implicaría una sobre utilización. Entonces, puede ser que alguna ciudad, o parte de ella tenga asignada CAP que no es el más cercano, en función de la disponibilidad o holgura del sistema. En caso de que queramos asignar un único CAP a cada ciudad, se tiene que formular un problema diferente, El Problema de Asignación, que se describirá en el Capítulo 4. En primer lugar se definen los parámetros necesarios para formular el modelo. Sea ai el número de asegurados en el centro urbano i, i = 1,...,m. Sea bj el número total de asegurados que el CAP j puede tener asignados como máximo, j = 1,...,n. Se define cij como el coste de desplazamiento entre i y j. 16 Como se necesita conocer cuantas personas del centro urbano i serán asignadas al centro j, se define la variable Xij como el número de personas que provienen del centro urbano i que serán atendidas por el CAP j. Una vez definidos los parámetros y las variables, necesitamos definir las restricciones del modelo. En este problema hay dos tipos de restricciones. La primera viene definida por la capacidad de atención máxima de los CAPs. El número total de asegurados asignados al CAP j no puede exceder su capacidad bj. Para un CAP determinado j, no podemos asignar las población que la que determina su capacidad máxima X1j + X2j + ... + Xij + ... + Xmj bj En términos matemáticos: X b j n j n j ij 1, , 1 å £ = K = El segundo grupo de restricciones tiene que considerar que hemos de asignar la totalidad de los asegurados de Todosalud SA de cada centro urbano i a los CAPs existentes. X ai i m n j ij 1, , 1 å = = K = Finalmente, se tiene que formular el objetivo de minimización total de la distancia o coste total del sistema. Este viene definido por: c11X11 + c12X12 + ... + c1nX1n + ... + cijXij + ... + cm1Xm1 + ... + cmnXmn que podemos re-escribir en forma compacta como: En resumen, la formulación completa del modelo es la siguiente: X b j n j n j ij 1, , 1 å £ = K = X ai i m n j ij 1, , 1 å = = K = Xij 0, i = 1,...,m j = 1,...,n Se tiene que observar que este problema presenta una peculiaridad que no está en la formulación. Para que el problema tenga una solución factible, el número total de asegurados no puede exceder la capacidad total de los CAPs. Es decir, existe la siguiente restricción implícita en el modelo: å å= = = m i ij ij n j min Z c X 1 1 åå= = = m i ij ij n j min Z c X 1 1 17 å å = = £ n j j m i i a b 1 1 Si esto no se verificara, el problema no tendría solución. 1.3.4 Un problema de Programación Financiera La compañía de seguros Todosalud SA está preparando su plan de inversiones para los próximos dos años. Actualmente, la empresa tiene 1,5 millones de euros para invertir y espera ingresar, gracias a inversiones pasadas, un flujo de dinero al final de los meses, 6 12 y 18 próximos. Por otra parte, la empresa quiere expandirse y tiene dos propuestas sobre la mesa. La primera es asociarse con la empresa Sanimas SA y la segunda con la empresa Buenavida SA. En el Cuadro 2.4 es muestra el flujo de caja de Todosalud SA si entrara con un 100% en cada uno de los proyectos. Cuadro 2.4: Flujo de Caja de Todosalud SA (miles de ) Inicial 6 meses 12 meses 18 meses 24 meses Inversiones Pasadas 500 400 380 Sanimas SA -1.000 -700 1.800 400 600 Buenavida SA -800 500 -200 -700 2.000 Debido al actual nivel de endeudamiento, a Todosalud SA no se le permite pedir préstamos. Pero si que puede, a cada seis meses, invertir sus fondos excedentes (es decir, aquellos que no ha invertido en ningún proyecto) en un fondo que le daría un 7% cada seis meses. Por otro lado, Todosalud SA puede participar en cada uno de los proyectos con un nivel inferior al 100% y, consecuentemente, el flujo de caja se reducirá en la misma proporción. Es decir, que si decide entrar por ejemplo con el 50% en el proyecto de Buenavida, el flujo correspondiente también se reducirá en la misma proporción. El problema que se plantea Todosalud SA es cuanto invertir en cada proyecto para maximizar el dinero en efectivo que tendrá la empresa en dos años. Formulación matemática del problema: Siguiendo nuestro esquema habitual, una vez el problema ha sido identificado y los parámetros del modelo han sido definidos, se tienen que definir las variables. Sea X1 el porcentaje de participación en el proyecto Sanimas y X2 el porcentaje de participación en el proyecto Buenavida SA (0 X1 1, 0 X2 1). Por otro lado, sean S0, S6, S12 y S18 el dinero que se depositará en el fondo en los periodos 0, 6 12 y 18 respectivamente. Para formular las restricciones del modelo se utilizará un razonamiento secuencial. La empresa dispone de 1,5 millones de pesetas hoy (periodo 0) y las quiere gastar considerando las opciones siguientes: 1. participar en el proyecto Sanimas, que implicaría desembolsar 1.000.000X1 pesetas en el periodo 0; 2. participar en el proyecto Bonavida, teniendo que gastar 800.000X2; 3. depositar el dinero al 7% Estas opciones no son excluyentes entre ellas. Por lo tanto, se tiene que cumplir la siguiente ecuación de equilibrio: 18 1.500 = 1.000X1 + 800X2 + S0 Al cabo de seis meses, la empresa ingresará 500.000 ptas. gracias a inversiones realizadas anteriormente. También el dinero depositado en el fondo en el periodo anterior estará a disposición junto con los intereses: S0 + 0,07S0 . Por otra parte, el proyecto Buenavida dará una entrada de dinero igual a 500.000X2. Con este dinero tendrá que hacer frente al compromiso adquirido con Sanimas, 700.000X1, y depositar lo que quede al 7% una vez más. Matemáticamente: 500 + 500X2 + 1,07S0 = 700X1 + S6 En el periodo 12, la empresa recibirá 400.000 ptas. de inversiones anteriores, 1.800.000X1 del proyecto Sanimas y el dinero del fondo junto con los intereses. Con estos ingresos tendrá que cubrir el compromiso del proyecto Buenavida, 200.000X2 y depositar S12 ptas. en el fondo. En términos matemáticos: 400 + 1.800X1 + 1,07S6 = 200X2 + S12 En el periodo 18, los ingresos que tendrá la empresa vendrán de inversiones anteriores (380.000 ), del proyecto Sanimas (400.000X1) y del depósito realizado en el periodo anterior incluyendo los intereses (1,07 S12 ). Con este dinero tendrá que realizar un gasto de 700.000 X2 en el proyecto Buenavida y el resto puede volver a ponerlo en el fondo (S18). Es decir: 380 + 400X1 + 1,07S12 = 700X2 + S18 Finalmente, al cabo de dos años (periodo 24), la empresa tendrá únicamente ingresos y no tendrá ningún gasto. Los ingresos provienen de los dos proyectos (600.000 X1 + 2.000.000 X2) y del dinero depositado en el periodo anterior, 1,07 S18. Si se define Z como los ingresos realizados en el periodo 24 en miles de , tendremos que: Z = 600X1 + 2.000X2 + 1,07S18 que no es más que el objetivo del problema: Maximizar los ingresos al cabo de dos años. Finalmente, como solo se puede invertir un máximo de 100% en cada proyecto, las variables X1 y X2 no pueden exceder la unidad. Por lo tanto, hay que añadir las restricciones siguientes: X1 1 X2 1 En resumen, reordenando los términos tendremos que el programa lineal se escribe de la forma siguiente: Max Z = 600X1 + 2.000X2 + 1,07S18 s.a. 1000X1 800X2 + S0 = 1.500 700X1 -500X2 -1,07S0 + S6 = 500 -1.800X1 200X2 -1,07S6 + S12 = 400 -400X1 700X2 -1,07S12 + S18 = 380 X1 1 X2 1 X1, X2, S0, S6, S12, S18 0 19 1.4 Tres ejemplos de Aplicación de la Investigación Operativa en el Ámbito Sanitario 1.4.1 Planificación y asignación de recursos en un sistema de salud mental2 El organismo responsable del sistema de salud mental de un país, región o ciudad tiene, entre otras, la responsabilidad de planificar un programa de apoyo e integración de enfermos mentales de esa región, y gestionar los recursos y servicios de tratamiento para este grupo de enfermos. Este ha sido el tema principal del trabajo desarrollado por H. Stephen Leff, Maqbool Dada y Stephen C. Graves (1986) que se ofrece a continuación. En este estudio se presenta un modelo general para la representación del problema de planificación y asignación de recursos de un sistema de salud mental, basado en técnicas cuantitativas tales como el relativo a cadenas de Markov y a la programación lineal y lineal entera. Este modelo es utilizado como una herramienta de ayuda a la decisión para los responsables del sistema de salud mental, permitiendo hacer un uso más efectivo de los recursos, simular escenarios futuros y dar respuesta a preguntas del tipo “¿qué pasaría sí...?”. Su implementación se ha realizado a través de los Sistemas de Apoyo Comunitario (Community Support Systems), responsables del Sistema de Salud Mental, en los Estados Unidos. Las principales respuestas del modelo se dirigen a la planificación y asignación de recursos a lo largo del tiempo y a la asignación de servicios a categorías de enfermos, respetando la cantidad de recursos disponible y que cada enfermo reciba un tratamiento adecuado a su categoría. Además, el modelo permite hacer un seguimiento y evaluación del programa. La construcción del modelo multi-periodo tiene tres fases: 1. Definir las categorías de enfermos. Se pretende obtener una clasificación de los enfermos en función de sus necesidades y de su respuesta a determinado tratamiento. 2. Definir un conjunto de servicios. Obtener una lista de servicios de acuerdo con las necesidades de los enfermos y con la disponibilidad de los recursos, basada en la experiencia y conocimientos médicos. 3. Planificar y asignar los recursos. El objetivo es asignar los conjuntos de servicios a las distintas categorías de enfermos a lo largo del tiempo, usando solamente los recursos disponibles en cada periodo y minimizando (o maximizando) un determinado objetivo. La metodología usada en la primera fase se basa en técnicas estadísticas, para la recogida de datos y la determinación del historial del enfermo. Las categorías de los enfermos se definen en base a la experiencia y conocimientos médicos. A lo largo del tiempo, los enfermos pueden salir del sistema, nuevos enfermos pueden entrar, y también los enfermos pueden cambiar de categoría como repuesta positiva o negativa a un tratamiento. Las cadenas de Markov son una técnica estadística muy estudiada que permite la representación de estos cambios por medio de las probabilidades de transición. La segunda fase, se hará con base a la experiencia y conocimientos médicos. En la tercera fase, relativa a la planificación y asignación de recursos, la metodología usada se basa en técnicas de programación lineal y programación lineal entera. La técnica cuantitativa de programación lineal es una de las más usadas para la asignación óptima de recursos en una organización. El problema se formula como un modelo multi-periodo de programación lineal, 2 H. Stephen Leff, Maqbool Dada y Stephen C. Graves (1986), An LP planning model for a mental health community support system, Management Science, 32, no.2, 139-155. 20 definiendo la función objetivo de minimización (o maximización); por ejemplo, minimizar el número de enfermos en determinadas categorías al final del horizonte temporal, construyendo las restricciones relativas a la disponibilidad de los recursos y garantías de que todos los enfermos tengan tratamiento. El paso siguiente es la resolución del problema mediante un programa informático para la obtención de la solución óptima. También se pueden simular diferentes escenarios cambiando las restricciones y/o la función objetivo en el modelo multiperiodo. En el estudio comentado, los autores citan que muchos responsables de sistemas de salud han usado este modelo con éxito en la toma de decisiones estratégicas y en la definición de políticas relacionadas con la planificación y asignación de recursos en un sistema de salud. Por ejemplo, con este tipo de modelos se pueden obtener distintos escenarios variando el presupuesto y estudiar el impacto de estos cambios, sabiendo que para cada presupuesto se hace el mejor uso de los recursos disponibles, o analizar las consecuencias de abrir nuevos servicios. Con esta herramienta de ayuda a la decisión, las decisiones son basadas en la mejor asignación posible de los recursos disponibles, usando técnicas cuantitativas y simulación de escenarios, y no simples decisiones subjetivas. 1.4.2 Programación de Servicios de Salud a Domicilio3 En la actualidad, existen diversas organizaciones que ofrecen servicios de salud en el domicilio de los pacientes, tales como servicios de enfermería. El principal objetivo de estas organizaciones es hacer un uso eficiente de sus recursos para mejorar la calidad del servicio e incrementar la productividad, pero al mismo tiempo reduciendo costes. El principal recurso de estos servicios de salud es el personal de enfermería que se desplaza al domicilio de los pacientes. De este modo, uno de sus principales problemas es hacer la programación semanal y diaria de las visitas de cada enfermera disponible al domicilio de los pacientes y determinar el orden de las visitas, minimizando costes y garantizando una determinada calidad de servicio. Begur, Miller & Weaver (1997) presentan un sistema de ayuda a la decisión para la programación semanal y diaria de las visitas de personal de enfermería a pacientes en su propio domicilio. El proyecto ha sido realizado por la Universidad de Alabama, EEUU, y por la “Visiting Nurses Association” que está usando el sistema. En los Estados Unidos existen más de 10.000 organizaciones que ofrecen servicios de enfermería o salud en general a domicilio, y siendo su tendencia la de crecer en el futuro próximo. El sistema de ayuda a la decisión tiene las siguientes componentes: una base de datos, un sistema de información geográfico, un sistema de programación semanal y diario de visitas, y un sistema de "interface" visual. El sistema de bases de datos incorpora todos los datos relativos al personal, los enfermos, las visitas realizadas y a realizar, y un análisis de productividad. En algunos casos, también se ha incorporado una conexión al sistema informático de contabilidad de la organización. La información obtenida en este sistema sirve de base para el sistema de programación y de interface visual. Una de características que más facilitan el uso de todo el sistema es la incorporación de un Sistema de Información Geográfica (SIG). El software escogido es el MAPINFO. Este sistema permite visualizar la programación del personal en global o en particular para cada categoría de 3 S.V. Begur, D.M. Miller and J.R. Weaver (1997), A Integral Spacial DSS for Scheduling and Routing Home-Health-Care Nurses, Interfaces, 27: 4, 35-48. 21 profesionales, mediante mapas digitalizados de la región. Además, la modificación de los planes se torna muy sencilla y fácil de hacer. El problema de programación semanal y diario de las visitas se resuelve mediante técnicas cuantitativas de optimización combinatoria, conocidas como heurísticas. Estas técnicas permiten obtener el orden de visitas y el horario para cada enfermero, minimizando los costes de viaje, o sea de trabajo no productivo, y garantizando que se respeta el horario de trabajo de los enfermeros y los requisitos especiales de cada paciente, en términos de tiempo y servicio de enfermería adecuado. La heurística implementada se basa en una adaptación al problema específico de la conocida heurística de Clark & Wright para problemas de ruteo de vehículos. Finalmente, el sistema de interface visual permite al usuario ver la programación diaria en un mapa, y también otro tipo de información como, por ejemplo, el orden de las visitas a realizar en determinado día para cada enfermera/o, el horario de las visitas y su carga horaria total. También permite al usuario modificar la programación de una forma muy fácil y sencilla, y hacer análisis de distintos escenarios. El sistema de ayuda a la decisión para la programación de las visitas ha sido adoptado por la “Visiting Nurses Association” y otras instituciones, y ha substituido la programación manual que era la herramienta más usada hasta ese momento. Para utilizar este sistema se necesita un PC lo que permite hacer la programación en muy poco tiempo, de una forma consistente y fiable, y ahorrando tiempo de personal cualificado en la preparación de los planes. Las soluciones iniciales obtenidas por el sistema reducen de forma significativa los tiempos de viaje. El sistema de información geográfica y el interfase gráfico han permitido una fácil aceptación y aprendizaje del uso del sistema. Además, permite al usuario hacer análisis de diferentes escenarios, cambiando la solución inicialmente propuesta por el sistema. Otra prestación del sistema es la obtención de la documentación de cada enfermero, indicando para cada uno el orden de las visitas, horario y mapas con la ubicación de los domicilios a visitar, ahorrando de este modo la pérdida de tiempo en la búsqueda de los domicilios de los pacientes. Los autores calculan que para un escenario con 7 enfermeros y 40 visitas por día, se ahorra con este sistema cerca de 20.000 dólares al año en costes de viajes, de personal y preparación de la documentación. 1.4.3 Fabricación de Válvulas Cardiacas4 En el laboratorio American Edwards fabricaron en 1981 una nueva válvula cardiaca biológica para ser utilizada en seres humanos. Las válvulas se fabricaban utilizando corazones de cerdo comprados a varios distribuidores. Como no siempre las válvulas cardiacas de cerdo compradas tenían el mismo tamaño que las válvulas humanas, la empresa tenía dificultades para mantener un stock suficiente para poder satisfacer la demanda (a veces recibía un envío de corazones de cerdo que era inservible). Sid Hilal y Warren Erikson desarrollaron un programa lineal para seleccionar la combinación de proveedores que se acercaría más a la medida correcta de las válvulas cardiacas humanas. Resultado: una reducción de stock valorada en 1,9 millones de dólares y ahorros anuales de 1,5 millones de dólares. En el laboratorio American Edwards, la disponibilidad del producto era de una importancia capital y la política del a empresa descartaba el uso de cualquier método tradicional de gestión de stock para controlar el margen de seguridad de la válvulas cardiacas almacenadas. El objetivo de la empresa era siempre tener el volumen de demanda de seis a doce meses en stock de seguridad. Conseguir este objetivo era difícil porque no podían comprar las válvulas con 4 S. Hilal y W. Erikson (1981): “Matching supplies to save lives: Linear Programming and the Prodution of Heart Valves”. Interfaces 11(6), 48-56. 22 medidas específicas. Se desconocía la medida de una válvula dentro de una carga hasta que no se procesaba todo en envío en el laboratorio. El resultado es que a veces la carga era inservible. El estudio realizado por Hilal y Erikson mostró que la mayoría de los distribuidores entregaban los corazones de cerdo con una distribución del tamaño de las válvulas bastante estables. Estas distribuciones se utilizaron dentro de un programa lineal para seleccionar la mejor combinación de distribuidores. La mejor manera de explicar el modelo es utilizando un ejemplo simple. Supongamos que la compañía compra a dos proveedores A y B y en su pedido se pueden encontrar tres tamaños de válvulas 1,2 y3. Los datos históricos muestran que los envíos del proveedor A tienen un 30% de medida 1, un 50% de medida 2 y un 20% de medida 3. La distribución del proveedor B es 10%, 60% y 30% respectivamente. Supongamos que los costes totales de compra y manipulación para las medidas 1, 2 y 3 son 10, 14 y 12 dólares respectivamente. El valor esperado del coste de una válvula del proveedor A es 0,3(10)+0,5(14)+0,2(12)=12,4. El coste esperado para el proveedor B es 0,1(10)+0,6(14)+0,3(12)=13. El objetivo del programa lineal es: Min Z = 12,4A + 13B en donde A y B representan la cantidad de corazones comprados a cada proveedor. Si la demanda para los tres tamaños es igual a 100, 300 y 250 unidades, las restricciones serán: 0,3A + 0,1B 100 0,5A + 0,6B 300 0,2A + 0,3B 250 El modelo real implementado por los autores tenía más de 20 proveedores y 30 medidas de válvulas. Pero la estructura del modelo era básicamente igual a la de nuestro ejemplo. El objetivo era la minimización de los costes de compra de los cerdos, con restricciones en el número de corazones de cada medida que se tenían que comprar. El programa lineal permitió que la compañía cumpliese la demanda comprado menos corazones que antes. El modelo también sirvió para fijar precios, programar la producción y analizar el diseño de las válvulas nuevas. 23 1.5 Problemas 1.1. El menu de hoy del hospital Optsalud tiene dos platos de marisco con la siguiente composición: · Plato I: 5 langostinos, 4 gambas y una ostra · Plato II: 3 langostinos, 3 gambas y 3 ostras. El responsable de compras, esta mañana ha comprado 30 langostinos, 24 gambas y 18 ostras. El coste del plato I es de 80 y del plato II es de 60 . ¿Cuantos platos se deben preparar para obtener el coste mínimo? 1.2. Una compañía de seguros sanitarios ha decidido atender dos nuevos tipos de pacientes en sus ambulatorios A, B y C que tienen capacidad sobrante. Las previsiones indican que pueden venir un total de 100 pacientes de tipo 1 y 150 de tipo 2. Estos pacientes pueden ser atendidos en cualquier ambulatorio, excepto en el ambulatorio A, en donde no pueden atender a pacientes de tipo 2 por falta de equipos adecuados. La empresa quiere saber a cuantos pacientes podrá atender en cada uno de los ambulatorios para minimizar los costes totales de atención. Los costes de atención por paciente y ambulatorio se indican en la tabla siguiente: Coste por Paciente Capacidad ociosa Ambulatorio Pacientes 1 Pacientes 2 (ambos pac.) A B C 26 28 24 - 33 28 80 50 120 Definir las variables y formular el problema. 1.3. El ministerio de sanidad decide hacer una campaña anti-tabaco mediante anuncios en la radio y la televisión. Su presupuesto limita los gastos de publicidad a 1.000.000 ptas. por mes. Cada minuto de anuncio en la radio cuesta 5.000 ptas. y cada minuto en la televisión cuesta 100.000 ptas. El ministerio desearía utilizar la radio cuando menos dos veces más que la televisión. La experiencia pasada muestra que cada minuto de publicidad por televisión generará en términos generales 25 veces más impacto que cada minuto de publicidad por la radio. Formular el problema que determine la asignación óptima del presupuesto mensual para anuncios en radio y televisión que maximiza el impacto total. 1.4. Una compañía de productos tecnológicos médicos produce dos tipos de equipos de laparoscopia, el ASTRO y el COSMO. Hay dos líneas de producción, una para cada tipo de aparato, y dos departamentos que intervienen en la producción de cada aparato. La capacidad de la línea de producción ASTRO es de 90 equipos diarios y la de la línea COSMO es de 60. En el departamento A se fabrican los cinescopios. En este departamento los aparatos ASTRO requieren 1 hora de trabajo y los COSMO, 2 horas. Actualmente, en el departamento A se puede asignar un máximo de 120 horas de trabajo por día a la producción de ambos tipos de aparato. En el departamento B se construye el chasis. En este departamento los ASTRO requieren 2 horas de trabajo y los COSMOs 1 hora. En la actualidad se puede asignar un máximo de 180 horas de trabajo diario al departamento B para la producción de ambos tipos de laparoscopios. La utilidad por aparato es de 20 y 15 , respectivamente, por cada aparato ASTRO y COSMO. Si la compañía puede vender todos los aparatos que se produzcan, ¿cuál debe ser el plan de producción diaria de cada aparato? 1.5. Una compañía de motores tiene tres plantas y tres almacenes. Las plantas pueden producir por día 10, 80 y 15 motores respectivamente. Y las necesidades de los almacenes para mañana son: 75, 20 y 50 para el almacén 1, 2 y 3 respectivamente. En la tabla siguiente se indican todos los costos de transporte por motor para cada combinación planta-almacén La compañía desea determinar cuántas motores debe transportar mañana de cada planta a cada almacén minimizando los costos. 24 Costo de embarque por motor: Almacén Planta 1 2 3 1 5 1 7 2 6 4 6 3 3 2 5 1.6. Un laboratorio farmacéutico produce en sus laboratorios los medicamentos Gramax (G), Neutrolín (N) y Sabatox (S) a partir de dos tipos diferentes de ingredientes C1 y C2. Los laboratorios están dotados de dos tipos de tecnologías, la tecnología nueva (Tn) utiliza por cada sesión de mezcla 7 unidades de C1 y 12 de C2 para producir 8 unidades de G, 6 de N y 5 de S, mientras que con la tecnología antigua (Ta) se obtiene en cada sesión de mezclas 10 unidades de G, 7 de N y 4 de S, con un gasto de 10 unidades de C1 y 8 de C2. Teniendo en cuenta los estudios de demanda de los tres productos para el mes próximo, la compañía estima que debe producir al menos 900 unidades de G, 300 de N y entre 800 y 1700 de S. La disponibilidad del ingrediente C1 es de 1400 unidades y de C2 de 2000 unidades. Los beneficios por unidad producida de los tres productos en unidades monetarios son 4, 6 y 7 por unidad del producto G, N y S respectivamente. El problema que se plantea es, como utilizar ambos los procesos de mezcla y los medicamentos disponibles, para que el beneficio sea lo mayor posible. 1.7. Una fábrica produce tejido para vendas y tiritas de 500 metros de longitud y 1 metro de ancho. Se ha estimado que la demanda para el mes próximo es de (todas bobinas de 500 metros): · 500 bobinas de 20 cm de ancho · 400 bobinas de 30cm de ancho · 250 bobinas de 40 cm de ancho · 300 bobinas de 70cm de ancho El fabricante debe cortar las bobinas de 1 metro de acuerdo con el ancho de las peticiones para satisfacer la demanda, pero también desea que el corte sea tal que el número de bobinas que fabrique (de 1 metro) sea mínimo (con el objeto de que la producción de papel sea mínima y así el gasto que este produce). 1.8. El hospital Optsalud ha comprado tres máquinas nuevas de diferentes tipos. Existen cuatro lugares dentro de la planta de quirófanos en donde se podría instalar cada una de estas máquinas. Algunos de ellos son más adecuados que otros para una máquina en particular por su cercanía a las mesas de cirugía que tendrían un flujo intenso de trabajo hacia estas máquinas y desde ellas. Por lo tanto el objetivo es asignar las nuevas máquinas a los lugares disponibles de manera que se minimice el costo total del manejo de materiales. En la tabla siguiente se proporciona el coste estimado por unidad de tiempo del manejo de los materiales en cuestión con cada una de las máquinas en los sitios respectivos. El lugar 2 no se considera adecuado para la máquina 2. No habrá flujo de trabajo entre las nuevas máquinas. Coste estimado por unidad de tiempo Ubicación 1 2 3 4 1 13 16 12 11 2 15 - 13 20 Máquinas 3 5 7 10 6 1.9. EQUISA produce dos líneas de equipo pesado. Una de estas líneas de productos (llamada equipo para remoción de escombros) se destina esencialmente a aplicaciones de construcción. La otra línea (llamada equipos forestales) está destinada a la industria maderera. El miembro más grande de la línea de equipos para remover escombro (el E-9) y el miembro mayor de equipos forestales (el F-9) se producen en el mismo departamento y con el mismo equipo. Haciendo uso de las predicciones económicas para el 25 próximo mes, el director de marketing de EQUISA juzga que durante ese periodo será posible vender todos los E-9 y F-9 que la empresa pueda producir. La administración debe ahora recomendar una meta de producción para el próximo mes. En la toma de decisión, los principales factores a considerar sol los siguientes: EQUISA tendrá una utilidad de 18 M. por cada E-9 que se venda y de 6 M. por cada F -9. Cada producto pasa por operaciones mecánicas tanto en el departamento A como en el departamento B. Para la producción del próximo mes, estos dos departamentos tienen disponibles 800 y 142 horas, respectivamente. Cada E-9 consume 42,8 horas de operación mecánica en el departamento A y 20 horas en el departamento B, mientras que cada F-9 consume 100 horas en el departamento A y 6 horas en el departamento B. Con el objetivo de cumplir un compromiso con el Sindicato del sector, el total de horas de trabajo que se dedicarán a la verificación de los productos acabados del próximo mes no puede ser menor en 10% a una meta establecida de 150 horas. Esta verificación se realiza en un tercer departamento que no tiene relación con las actividades de los otros departamentos A y B. Cada E-9 requiere 30 horas de comprobación y cada F-9, 10 horas. Puesto que el 10% de 150 horas es 15, el total de horas de trabajo destinadas a la verificación no puede ser de menos de 135. Con el objetivo de mantener su posición actual en el mercado, la alta gerencia ha decretado es necesario construir al menos un F-9 por cada 3 E-9s. Un consumidor importante ha ordenado un total de por lo menos 4 unidades (en cualquier combinación de E-9 y F-9) para el próximo mes, así es que por lo menos debe producirse esta cantidad. Dadas las consideraciones, el problema del director de producción es determinar el plan óptimo de producción. 1.10. La clínica Coratac ofrece cuatro tipos de servicios: cirugía plástica, dermatología, cirugía ortopédica y neurocirugía. Después de examinar los archivos contables se ha calculado que cada paciente, en cada una de las especialidades, contribuye al beneficio de la clínica de la manera siguiente: plástica, 100; dermatología, 200; ortopedia, 150; y neurocirugía, 180. Los médicos están convencidos de que el número de pacientes de cada especialidad que se atienden semanalmente no es el adecuado. La clínica quiere saber cual sería el volumen semanal óptimo de pacientes en cada especialidad teniendo en cuenta los recursos de la clínica. Horas necesarias por paciente Especialidad Laborat. Rayos X Terapia Cirugía Médicos Plástica Dermatología Ortopedia Neurocirugía 5 5 2 4 2 8 1 5 1 10 0 8 4 8 16 10 10 14 8 12 Horas Disponibles Semanales 200 140 110 240 320 La clínica no tiene ningún problema con la demanda de sus servicios y tiene acceso a tantos pacientes como quiera. Adicionalmente, ha decidido que limitará sus servicios de plástica y ortopedia combinados a un máximo de 120 pacientes. Formular el problema. 1.11. El laboratorio MacAsp prepara dos tipos de medicinas para el dolor de cabeza: el fantástico Resacón y el magnífico Jaquecón. Los dos se venden en forma de jarabe en frascos de 100mg y se obtienen mezclando ácido acetil-salicílico (A) y paracetamol (P). El laboratorio se permite una cierta flexibilidad en las formulas de estos productos. De hecho, las restricciones son: (1) el Resacón tiene que tener un máximo de 75% de A; (2) el Jaquecón ha de tener un mínimo de 25% de A y un mínimo de 50% de P. El departamento comercial piensa poder vender como máximo 400 frascos de Resacón y 300 de Jaquecón. El precio de venta es de 150 ptas. por un frasco de Resacón y de 200 ptas. por un de Jaquecón. 26 Los costes de los componentes son: 80 ptas. Por 100 mg de A y 120 ptas. por 100 mg de P. El laboratorio quiere maximizar el ingreso neto por venta. Formular el problema. 1.12. La red de hospitales Salutmolt ha detectado que podría atender a más pacientes y ha decidido ampliar sus servicios con tres nuevas especialidades X, Y y Z en tres hospitales A, B y C. Los beneficios esperados por paciente en cada especialidad X, Y y Z son 420, 360 y 300 euros respectivamente. Los hospitales tienen capacidad de recursos humanos para atender 700, 800 y 450 pacientes independientemente de la especialidad. Un problema grave para el hospital es el número de horas disponibles de quirófano. Actualmente, se ha calculado que la capacidad ociosa es de 13, 12 y 5 horas de quirófano por día en A, B y C y cada especialidad necesita un máximo de 2, 1,5 y 1,2 horas por las cirugías X, Y y Z respectivamente. Para poder mantener una carga equilibrada de atención entre los diferentes hospitales, la gerencia ha decidido que la cantidad de pacientes asignados a cada hospital utilice el mismo porcentaje de capacidad adicional disponible. El gerente quiere saber cuantos pacientes podrán ser atendidos en cada hospital. Formular el problema de decisión. 1.13. El departamento de finanzas de la mutua Hospimás ha decidido invertir 10 millones en fondos de inversión y ha considerado 20 fondos diferentes, cada uno de ellos con tipo de interés anual esperado diferente ri , i = 1,...,20. Es decir, si la mutua pone x ptas., recibirá al cabo de un año x(1+ ri). Para mantener un equilibrio en la inversión y diversificar el riesgo, la mutua ha adoptado las siguientes reglas: 1. No invertir más de dos millones en un fondo único 2. Si pone dinero en un fondo, lo tiene que hacer con un mínimo de 0,5 millones de ptas. El objetivo es la maximización del rendimiento anual esperado. Formular el problema definiendo las variables de decisión. 1.14. Una compañía de fabricación de envases opera una laminadora y dos impresoras. La laminadora fabrica tres tipos de envases de aluminio, que se procesan en su taller de maquinado antes de enviarse a las impresoras. Los envases procesados utilizan las impresoras para manufacturar diversos envases (latas) de bebidas. Al inicio de cada trimestre, la empresa prevé sus necesidades de envases y las someten a la consideración de la laminadora. Después, el gerente de la laminadora traza un plan de producción que está restringido fundamentalmente por la capacidad de procesamiento del taller. En caso de falta de materia prima, se realiza la compra a otra empresa a un precio muy elevado. Una comparación entre el coste por envase cuando se fabrica en la laminadora y su precio de compra en el exterior figura en la tabla que sigue. Sin embargo, la administración señala que esta escasez no es frecuente, y se puede determinar que ocurrirá más o menos el 5% de las veces. Envases Coste interno de fabricación (mil unidades) () Precio de compra (por mil unidades) () 1 90 108 2 130 145 3 180 194 27 Los tiempos de proceso en las cuatro máquinas herramienta del taller de laminación son: Tipo de Tiempo de proceso máquina Envase 1 Envase 2 Envase 3 Número de Máquinas Horas disponibles por máquina y por mes 1 1 5 7 10 320 2 0 4 6 8 310 3 6 3 0 9 300 4 3 6 9 5 310 La demanda de envases de las dos laminadoras en los tres meses siguientes es como se aprecia en la tabla siguiente. Demanda en número de envases (miles de unidades) Mes Laminadora 1 Laminadora 2 Envase 1 Envase 2 Envase 3 Envases 1 Envases 2 Envases 3 1 50 20 40 20 10 0 2 0 30 50 30 20 20 3 10 0 30 0 40 20 Elabore un programa de producción para el taller de procesamiento. 1.15. Un empresa farmacéutica tiene m laboratorios. Todos los laboratorios producen el mismo medicamento. La gerencia quiere planificar la producción para los próximos T trimestres. En cada periodo t, cada laboratorio tiene una capacidad de producción igual a li t , i = 1,...,m. La compañía envía el medicamento a n almacenes de distribución. Para poder atender la demanda, los requisitos mínimos de stock en cada almacén j y en cada periodo t son iguales a rj t . Para cada laboratorio, almacén y periodo, la empresa quiere determinar las variables siguientes: · Xi t = cantidad producida en i y enviada a los almacenes en el periodo t. · Si t = cantidad producida en i y almacenada en el propio laboratorio en el periodo t. · Zij t = cantidad transportada del laboratorio i al almacén j en el periodo t. · Wj t = cantidad almacenada en el almacén j al final del periodo t. La empresa quiere que, para la suma de todos los periodos, la producción total conjunta de los laboratorios 1, 2 y 4 no sea superior a la producción conjunta de los laboratorios 3, 5 y 6. A causa del límite en la capacidad de stock de los laboratorios, no se pueden almacenar más de si medicamentos en cada periodo. Los costes de producción unitarios de los medicamentos son iguales a pi . Los costes de almacenaje de un medicamento en el laboratorio i al final del periodo t es ki t y el coste de almacenaje al final del periodo t es hj t . El coste de transporte por medicamento es igual a cij entre el laboratorio i y el almacén j (suponer que el tiempo de transporte es virtualmente 0 comparado con la duración de un trimestre o, en otras palabras, lo que sale en el periodo t llega siempre en el mismo periodo t). Diseñar un programa de planificación de la producción y stock de las fábricas y de stocks de almacenes que minimice el coste total de producción y transporte. 28 29 2 Programación Lineal II: Métodos de Resolución Hasta ahora hemos formulado matemáticamente algunos problemas de gestión y administración de recursos y de dinero. Pero un modelo matemático de decisión, por muy bien formulado que esté, no sirve de nada sino podemos encontrar una solución satisfactoria. Una de las características de la programación lineal es que, gracias a sus propiedades matemáticas, se consigue la solución óptima sin muchas dificultades. En esta sección examinaremos en primer lugar el método gráfico, un sistema limitado a problemas con dos variables, y a continuación el método Simplex, el algoritmo más común para solucionar problemas lineales con muchas variables y restricciones. 2.1 El método gráfico Este método es muy simple de utilizar, pero solo puede ser aplicado a problemas con dos variables. Por otro lado, es muy útil para entender las propiedades matemáticas de la programación lineal. Consideremos el problema lineal siguiente, correspondiente el problema de asignación de recursos del apartado 1.2, sin la restricción del los recursos necesarios mínimos en la sala post-operatoria (PO) y sin la restricción de la demanda: Max Z = X1 + X2 s.a. X1 + 3X2 144 Recursos de sala PQ 3X1 + 2X2 162 Recursos del QI 13X1 + 18X2 982 Presupuesto X1, X2 0 En primer lugar, se dibuja en un gráfico cartesiano las restricciones del modelo pero con signo de igualdad. Como se puede observar en la figura 2.1, la recta X1 + 3X2 = 144 separa el plano en dos semiplanos. Los puntos que corresponden al semiplano S1 cumplen la restricción 2X1 + 3X2 144. Es decir, este semiplano contiene todas las combinaciones de X1 y X2 que satisfacen la restricción. Si dibujamos todas las restricciones y sus semiplanos correspondientes encontraremos que la región que forma la intersección de todos los semiplanos incluye todas las combinaciones de X1 y X2 que satisfacen todas las restricciones del modelo. Esta región se presenta en la figura 2.2 (el área entre los puntos A, B, C, D y E) y se conoce como la región factible o espacio de soluciones y es un conjunto convexo5 . Cualquier problema de optimización con restricciones lineales tiene una región factible convexa. Cualquier solución de la región factible es conocida como Solución factible. Si la región está vacía no existen soluciones factibles (ver el ejemplo de la figura 2.4). Ahora se tiene que escoger la solución factible que optimice nuestra función objetivo, que es Z = X1 + X2. Obsérvese que normalmente existen infinitas soluciones factibles y será la función objetivo quién escoja aquella que optimiza su valor. En la programación lineal la función 5 Para cualquier pareja de puntos dentro del espacio factible, el segmento de línea que los une también se encuentra dentro del conjunto. 30 objetivo también tiene forma lineal. Se trata de determinar el valor máximo de Z que cumpla todas las restricciones o, en otras palabras, encontrar los valores de X1 y X2, puntos dentro de la región factible, que maximicen Z. Figura 2.1: Visualización de una restricción La mecánica para lograr encontrar el punto óptimo se basa en la linealidad del objetivo. En este ejemplo, el objetivo se puede re-escribir de la forma siguiente: X2 = -X1 + Z A medida que Z aumenta, la recta se desplaza paralelamente hacia fuera, ya que la pendiente es constante (en este caso igual a -1). Se trata de encontrar el valor de Z máximo, pero con la condición de que tiene que haber como mínimo un punto de la recta que atraviese la región factible. En el gráfico 2.2 esta recta se presenta para el valor de Z = 62, valor óptimo del problema, en donde X1 = 34 y X2 = 30. Para cualquier valor de Z superior a 62, no existirá ninguna solución factible ya que la recta correspondiente a la función objetivo se desplaza hacia el exterior, y consecuentemente no tocaría ninguna parte de la región factible. Para valores de Z inferiores a 62, existen muchas soluciones factibles, pero ninguna de ellas es óptima. Intuitivamente se puede ver que la solución óptima siempre se producirá en un punto extremo o vértice, que en el gráfico no es más que el punto de intersección de dos o más restricciones. X1 + 3X2 = 144 X1 X2 S1 S2 31 Figura 2.2: Solución gráfica del ejemplo Más formalmente, un punto de un conjunto convexo es un punto extremo si no hay ningún par de puntos del conjunto convexo en donde el segmento de línea que los une pase por el punto en cuestión. Otra forma de obtener el óptimo es calcular el valor del objetivo en cada uno de los puntos extremos y escoger aquel punto extremo que da el mejor valor. Este punto dará el valor óptimo. Existen situaciones en donde no hay una única solución, si no que pueden haber infinitas soluciones, o por el contrario, no existir solución alguna. Examinemos el primer caso con la ayuda de la figura 2.3. La recta correspondiente al objetivo tiene la misma pendiente que una de las restricciones. Es decir, que todas las combinaciones de las dos variables entre los puntos A y B cumplen las restricciones y maximizan el beneficio. Por otro lado, la figura 2.4 muestra una situación en donde no hay soluciones. La representación gráfica (figura 2.4) corresponde al programa lineal siguiente: Max Z = X1 + 2X2 s.a. X1 6 X1 8 X1, X2 0 X1 X2 X1 + 3X2 = 144 3X1 + 2X2 = 162 13X1 + 18X2 = 982 A B C D E Z = 64 32 Figura 2.3: Infinitas Soluciones Figura 2.4: Inexistencia de soluciones El método gráfico es sencillo de aplicar para encontrar la solución óptima de un programa lineal de optimización, pero únicamente cuando éste solo tiene dos variables de decisión. Desgraciadamente, la gran mayoría de problemas lineales aplicados tienen muchas más variables (algunos llegan a tener millones de ellas) y por lo tanto se hace inviable su utilización. En la sección siguiente se desarrolla un método bastante eficiente para encontrar soluciones óptimas de programas lineales con muchas variables y restricciones. 2.2 El Método Simplex El primer método formal para encontrar soluciones óptimas –el método Simplex- fue desarrollado por Dantzig en 1947 y mejorado por Charnes entre 1948 y 1952. Actualmente es el método más utilizado en la búsqueda de soluciones óptimas de programas lineales. En este apartado se examina su funcionamiento de forma simple e intuitiva. X1 X2 X1 X2 Max Z Región Factible A B 6 8 33 En primer lugar recordemos como encontrábamos soluciones con el método gráfico. Primero formábamos un conjunto convexo con las restricciones del modelo. Segundo, se dibujaba la función objetivo fuera del conjunto convexo dando un valor arbitrario al propio objetivo y se iba desplazando ésta paralelamente (ya que su pendiente es siempre constante) hasta encontrarse con un punto extremo. Intuitivamente, podemos ver que sea cual sea la función objetivo lineal, la solución óptima se encontrará en un punto extremo, como mínimo6 . Esto reduce bastante el espectro de soluciones del problema, limitando la búsqueda del óptimo a los puntos extremos. Aún así, pueden haber muchísimos puntos extremos en un problema. Por ejemplo, un problema grande con 2000 variables y 4000 restricciones tiene exactamente 2 2000 puntos extremos, es decir, aproximadamente 10600. Por lo tanto, tenemos que encontrar un método para reducir el número de soluciones factibles posibles de ser óptimas. Dantzig hizo estas mismas suposiciones (o eso creemos) y observó primero las características matemáticas siguientes: 1. El conjunto formado por las restricciones es convexo 2. La solución siempre ocurre en un punto extremo 3. Un punto extremo siempre tiene como mínimo dos puntos extremos adyacentes7 Y a partir de ellas desarrolló el método siguiente: Encontrar una solución inicial factible en uno de los puntos extremos del conjunto convexo y calcular el valor de la función objetivo. Examinar un punto extremo adyacente al encontrado en la etapa 1 y calcular el nuevo valor de la función objetivo. Si este nuevo valor mejora el objetivo, guardar la nueva solución y repetir la etapa 2. En caso contrario, ignorar la solución nueva y volver a examinar otro punto extremo. Regla de parada: cuando no existe ningún extremo adyacente que mejore la solución, nos hallamos en el óptimo Es decir, que vamos de punto extremo a punto extremo adyacente siempre que podamos mejorar la solución, hasta llegar a un punto en donde no existe ningún punto extremo adyacente al que nos encontramos. Esta solución es la óptima. Observemos de nuevo problema lineal presentado en la sección 2.1 y su correspondiente solución gráfica presentada en la Figura 2.2. Para encontrar una solución inicial en un punto extremo podemos fijar X1 = 0 y X2 = 0 y el valor del objetivo Z será igual a 0, solución que corresponde al punto extremo A en la Figura 2.2. Ahora examinamos el punto extremo adyacente B, que corresponde a los puntos X1 = 0 y X2 = 48 y Z = 48. Como el objetivo ha mejorado, mantenemos esta solución y volvemos a examinar los puntos extremos adyacentes a B. Como el punto A ya lo hemos visitado (y era claramente inferior), nos queda por ver el punto C. En este punto extremo X1 = 17 , X2 = 42,3 y Z = 59,3. De nuevo la solución ha mejorado y la guardamos como la mejor hasta ahora encontrada. Finalmente, D es el único punto extremo que nos queda por examinar y como en este punto X1 = 34 y X2 = 30 y Z = 7,8 el algoritmo se para y estamos en el óptimo, ya que no existe ningún punto extremo adyacente que mejore el objetivo. Dantzig y más tarde Charnes desarrollaron un método matemático para poder efectuar estas operaciones, es decir, encontrar los valores de los puntos extremos adyacentes. Para poder ver como funciona, es necesario realizar las consideraciones siguientes: Como hemos visto, un programa lineal está compuesto por una función objetivo que queremos optimizar (maximizar o minimizar), unas variables que denominaremos estructurales y un 6 Decimos como mínimo, porque como hemos visto pueden existir (raramente) situaciones en donde hay más de una solución óptima; aún así, siempre habrá un punto extremo que dé el valor óptimo. 7 Un punto extremo A es adyacente a un punto extremo B si no existe ningún punto extremo entre ellos. Por ejemplo, en la figura 3.2. los puntos B y D son adyacentes al punto C. 34 conjunto de restricciones. En general, podemos encontrar tres tipos de restricciones en función de la dirección de la desigualdad: , ó =. Toda restricción con los sentidos ó pueden transformarse en una restricción con igualdad añadiendo una variable. Si la desigualdad tiene la dirección , podemos añadir una variable de holgura. Por ejemplo, la restricción X1 + 3X2 144 se puede transformar en X1 + 3X2 + X3 = 144. Si en la solución final del modelo la restricción se cumple con igualdad dados unos valores finales de X1 y X2 entonces la variable de holgura asociada a la restricción es igual a 0. En otras palabras, la variable de holgura mide la diferencia entre los recursos utilizados realmente y los discursos disponibles. Así mismo, si la restricción tiene la dirección , podemos añadir una variable de exceso para obtener una ecuación lineal. Por ejemplo, una restricción de tipo X1 + X2 12 puede transformarse en X1 + X2 – X3 = 12. La interpretación es la misma que en el caso anterior: si en la solución final X3 = 0, la restricción se cumplirá con igualdad. En este caso, la variable de exceso mide el consumo adicional que realizamos de un recurso disponible. Con estas consideraciones, cualquier programa lineal con restricciones de desigualdad puede transformarse en un problema lineal con todas las restricciones con forma de igualdad sin alterar la naturaleza matemática del problema. Esta transformación se denomina la forma canónica o forma aumentada de un programa lineal. Si tenemos n variables y m restricciones con desigualdad, cuando escribimos la forma canónica del problema lineal tendremos m nuevas variables de holgura o exceso, es decir, un total de m + n variables y m restricciones. En resumen, tendremos que el conjunto de restricciones forma un conjunto de ecuaciones lineales con más variables que ecuaciones. En este caso, existen infinitas soluciones del sistema y nuestro objetivo es escoger entre ellas la que optimice el valor de la función objetivo. Por otro lado, si tenemos un programa lineal con n variables, m restricciones con desigualdad y r restricciones con igualdad, tendremos m+n variables y m+r restricciones con igualdad en la forma canónica. En este caso, para que el problema sea factible, se tiene que cumplir lo siguiente: m+n m+r, el número de restricciones no puede superar el número de variables. Si utilizamos el ejemplo de la sección 3.1, la forma canónica del problema será la siguiente: Max Z = X1 + X2 s.a. X1 + 3X2 + X3 = 144 3X1 + 2X2 + X4 = 162 13X1 + 18X2 + X5 = 982 Los valores de las variables en los puntos extremos se presentan en el Cuadro 2.1. Cuadro 2.1: Puntos extremos del ejemplo X1 X2 X3 X4 X5 Número de Variables Positivas Valor Del Objetivo A B C D E A 0 0 16,8 34 54 0 0 48 42,4 30 0 0 144 0 0 20 90 144 162 66 26,8 0 0 162 982 118 0 0 280 982 3 3 3 3 3 3 0 48 59,2 64 54 0 35 Diremos que una solución aumentada es una solución de la forma canónica del programa lineal. Una solución básica factible es una solución aumentada en un punto extremo. En nuestro ejemplo, los puntos A, B, C, D, y E son soluciones básicas factibles. A continuación examinaremos las propiedades algebraicas de las soluciones básicas. Obsérvese que en nuestro ejemplo tenemos dos variables estructurales X1 y X2 y tres variables de holgura X3 , X4 y X5, que suman un total de cinco variables, y tres restricciones con igualdad o ecuaciones. Tenemos por lo tanto dos grados de libertad para encontrar soluciones. Para obtener una solución determinada tenemos que fijar a priori dos variables para determinar entonces un sistema con tres variables y tres ecuaciones, que tendrá una solución única. En el método Simplex, siempre se fija el valor de dos variables en 0. Estas variables se denominan variables no básicas y las restantes, variables básicas. La solución de este sistema de ecuaciones es una solución básica. Si todas las variables básicas son no-negativas, tenemos una solución básica factible. En el ejemplo tenemos que en cualquier punto extremo factible siempre tendremos dos variables iguales a 0 y 3 no-negativas. La explicación intuitiva de esta situación es la siguiente: si observamos un punto extremo en la Figura 3.2 veremos que en él pasan dos rectas correspondientes a dos restricciones con signo igual. Por lo tanto, dos variables de holgura asociadas a estas restricciones son iguales a 0. Estas son nuestras variables no-básicas. Si miramos el Cuadro 2.1, veremos que en cada punto extremo siempre hay tres variables positivas y dos con valor 0. El Cuadro 2.1 nos puede ayudar a entender como funciona el algoritmo Simplex y el vocabulario algebraico definido en este capítulo. Escojamos como punto de partida el punto extremo A. Como hemos mencionado anteriormente, el método Simplex se mueve de punto extremo a punto extremo adyacente siempre que el objetivo mejore. El punto A tiene dos puntos extremos adyacentes. Ambos mejoran el objetivo. Escogemos arbitrariamente el punto B. En el punto A teníamos una solución básica factible (dos variables con valor 0, X1 y X2 , y las otras con valores positivos). Cuando pasamos al punto extremo B, observamos que una variable estrictamente positiva en A pasa a tener el valor 0 (la variable X3 ) mientras que una de las variables con valor 0 pasa a tener un valor estrictamente positivo (la variable X2 ). Este proceso se repite cada vez que pasamos de punto extremo a punto extremo adyacente: una de las variables básicas (con valor positivo) pasa a ser no-básica (valor 0) y una variable no-básica pasa a ser positiva (variable básica). En el punto D, dos variables que tenían valor positivo en el punto extremo adyacente anterior pasan a tener un valor 0. En otras palabras, dos soluciones básicas son adyacentes si todas, menos una de sus variables no-básicas, son las mismas. Entonces, pasar de una solución básica factible a una adyacente implica el cambio del estado básico de una variable a uno no básico, y viceversa. En términos generales, el número de variables no básicas de una solución básica siempre es igual a los grados de libertad del sistema de ecuaciones de la forma canónica. El número de variables básicas siempre es igual al número de restricciones funcionales. Propiedades de las soluciones factibles en un punto extremo Si existe una única solución óptima, entonces ésta tiene que ser obligatoriamente una solución factible en un punto extremo (una solución básica factible). Si hay varias soluciones óptimas, entonces, como mínimo, tiene que haber dos que sean factibles en puntos extremos adyacentes. Existe un número finito de soluciones factibles en los puntos extremos 36 Si una solución en un punto extremo es igual o mejor (según el valor del objetivo Z) que todas las soluciones de los puntos extremos adyacentes, entonces ésta es igual o mejor que todas las otras soluciones en todos los puntos extremos; es decir, es óptima. Ahora que ya conocemos los pasos que efectúa el método Simplex para buscar una solución óptima de un programa lineal, hace falta estudiar cómo se realizan éstos. Para entender la mecánica del método, tenemos que dar respuestas a las preguntas siguientes: Paso inicial: ¿Cómo seleccionamos la solución factible inicial en un punto extremo (la solución básica factible inicial)? Paso Iterativo: Cuando buscamos un traslado a una solución factible en un punto extremo adyacente (una solución básica factible adyacente): a) ¿Cómo se selecciona la dirección del traslado? (¿Qué variable no básica se escoge para transformarla en básica?) b) ¿Adónde se realiza el traslado? (¿Qué variable básica se transforma en no-básica?) c) ¿Cómo identificamos la nueva solución? Prueba de Optimalidad: ¿Cómo determinamos que la solución factible en un punto extremo (solución básica factible) no tiene soluciones factibles en un punto extremo adyacente (soluciones básicas adyacentes) que mejoren el objetivo? Para responder a estas preguntas, de momento consideraremos únicamente el caso de un programa lineal con restricciones de tipo “menor o igual” (). Más adelante ampliaremos el análisis cuando el problema también contiene los otros tipos de restricciones. En primer lugar re-escribimos nuestro ejemplo en la forma canónica equivalente: Max Z s.a. (0) Z -X1 - X2 = 0 (1) X1 + 3X2 + X3 = 144 (2) 3X1 + 2X2 + X4 = 162 (4) 13X1 + 18X2 + X5 = 982 Obsérvese que ahora la ecuación (0) del objetivo está incluida dentro del sistema de ecuaciones y que podemos considerar Z como una variable adicional. 1. Paso Inicial Este paso inicial consiste en encontrar cualquier solución básica factible. Una manera fácil de hacerlo es igualando las variables estructurales del modelo a 0. Si observamos la forma canónica equivalente tendremos que igualando X1 y X2 a 0 las variables de holgura automáticamente cogen valores no-negativos (X3 = 144, X4 = 162, X5 = 982) correspondiente al punto extremo A. Por lo tanto, la solución factible será (0,0,144,162,982). La razón por la cual la solución encontrada se deduce rápidamente es debido a que cada ecuación tiene una única variable básica con un coeficiente asociado a ella igual a +1, y que esta variable básica no aparece en ninguna otra ecuación del sistema. Pronto observaremos que, 37 cuando el conjunto de variables básicas cambia, el algoritmo Simplex utiliza un método algebraico llamado eliminación de Gauss para poner las ecuaciones en esta forma tan conveniente para obtener las soluciones básicas factibles subsecuentes. Esta forma funcional (una variable básica por ecuación con coeficiente +1) se denomina forma apropiada de eliminación gausiana. 2) Paso iterativo: En cada iteración, el método Simplex se mueve desde una solución básica factible a una solución básica factible adyacente que mejora el objetivo. Este movimiento consiste en convertir una variable no-básica (llamada variable básica entrante) en una variable básica y, al mismo tiempo, convertir una variable básica (llamada variable básica saliente) en variable nobásica, y a identificar la nueva solución básica factible. Pregunta a): ¿Cuál es el criterio para seleccionar la variable básica entrante? Las candidatas para la variable básica entrante son las n variables no básicas actuales. Esta variable, que escogeremos para pasar de no-básica a básica, pasará de tener un valor 0 a tener un valor positivo, mientras que las restantes seguirán con valor 0. Como el método Simplex requiere que este cambio implique una mejora en el objetivo, es necesario que la tasa de cambio en Z al aumentar el valor de la variable básica entrante, sea positivo. Observemos la ecuación (0) del sistema. Esta expresión refleja el valor de Z en función de las variables no-básicas, y por lo tanto el coeficiente asociado a estas variables es la tasa de cambio del valor del objetivo. Si, por ejemplo, X2 pasa de ser 0 a ser 1, el objetivo aumentará en una unidad. Como criterio, escogeremos la variable cuyo coeficiente aumente más el objetivo al pasar a ser básica8 . En nuestro ejemplo, las dos variables no-básicas son candidatas a entrar en la base ya que aumentarían el valor del objetivo. Escogemos arbitrariamente X2 ya que tiene el mismo coeficiente en la ecuación (0) que X1. Pregunta b): ¿Cómo identificamos la variable básica saliente? Si ignoramos las variables de holgura, al aumentar el valor de X2 manteniendo X1 igual a 0 nos desplazamos por el eje de las ordenadas (que corresponden precisamente a los valores de X2 ). La solución adyacente se alcanza en el punto B, que viene determinada por la restricción X1 + 3X2 144, que se cumplirá con igualdad y por lo tanto acotará en 48 el valor de X2, ya que X1 sigue siendo igual a 0. Cuando escribimos el problema en forma canónica, las soluciones factibles tienen que cumplir tanto las restricciones funcionales como las de no-negatividad de todas las variables, incluidas las de holgura. Cuando vamos aumentando el valor de X2 manteniendo X1 = 0 (variable nobásica), algunas de las variables en la base actual (X3, X4, X5, X6) también van cambiando de valor para mantener válido el sistema de ecuaciones. Algunas de estas variables se reducirán al aumentar X2. La solución básica adyacente se alcanza cuando la primera variable básica que tenía valor positivo pasa a ser igual a cero (recordemos las restricciones de no-negatividad). Esta variable será la que sale de la base y por lo tanto se transformará en no-básica. Por lo tanto, una vez escogida la variable que entrará en la base , la variable que sale de la base será aquella que llegue primero a 0. La variable básica actual con la cota superior más pequeña junto con la restricción su no-negatividad será la escogida. 8 Este criterio es subjetivo y no implica que la solución óptima sea alcanzada más rápidamente 38 Examinemos esta cuestión en nuestro ejemplo. Tenemos que las variables básicas candidatas a salir de la base (es decir, a ser iguales a 0) son X3, X4, y X5. En el Cuadro 2.2 Se presentan los cálculos para identificar cual es la variable básica saliente. Recordemos que X1 sigue siendo igual a 0. Cuadro 2.2: Cálculos para obtener la variable saliente Variable Básica Ecuación Cota Superior Para X2 X3 X4 X5 X3 = 144 - X1 - 3X2 X4 = 162 - 3X1 - 2X2 X5 = 982 - 13X1 - 18X2 X2 144/3 = 48 mínimo X2 162/2 = 81 X2 982/18 = 54,6 Como X1 es una variable no-básica, tendremos que X1 = 0 en la segunda columna del Cuadro 2.2. La tercera columna indica las cotas superiores para X2 antes de que la variable básica correspondiente a la primera columna sea negativa. Por ejemplo, X3 = 0 si X2 = 48 (mientras que X3 > 0 si X2 < 48, y X3 < 0 cuando X2 > 48). Como en este caso X3 (la variable de holgura correspondiente a la restricción X1 + 3X2 144) impone la cota negativa más pequeña sobre X2, la variable básica saliente será X3, de manera que en la nueva situación tendremos que X3 = 0 (no-básica) y X2 = 48 (básica), que corresponde al punto extremo B. Pregunta c): ¿Cómo podemos identificar de manera convincente la nueva solución básica factible? Después de haber identificado las variables entrantes y salientes de la base (incluyendo el valor de la variable básica entrante), necesitamos conocer cual es el valor nuevo del resto de variables básicas. Para poder calcular estos valores, el método Simplex utiliza la forma apropiada de eliminación de Gauss que teníamos en el paso inicial (aquella en la cual cada ecuación tiene únicamente una variable básica con coeficiente +1, y esta variable básica aparece en una única ecuación). Se trata de encontrar la nueva forma apropiada después del cambio de base. Se necesita realizar dos operaciones algebraicas normalmente utilizadas para resolver sistemas de ecuaciones lineales. Estas operaciones son: 1. Multiplicar (o dividir) una ecuación por una constante diferente de 0. 2. Sumar (o restar) un múltiple de una ecuación con otra ecuación Estas operaciones son legítimas porque implican únicamente: 1) multiplicar cosas iguales (los dos lados de la ecuación) por una constante y 2) sumar cosas iguales con cosas iguales. Por lo tanto, una solución que cumple un sistema de ecuaciones determinado también lo hará después de la transformación. Vamos a ver como funciona en nuestro ejemplo. Consideremos en sistema de ecuaciones originales, en el cual se muestran las variables básicas en negrita. El problema se puede escribir de la forma siguiente: (0) Z -X1 - X2 = 0 (1) X1 + 3X2 + X3 = 144 (2) 3X1 + 2X2 + X4 = 162 (3) 13X1 + 18X2 + X5 = 982 39 Ahora X2 ha substituido a X3 como variable básica el la ecuación (1). Entonces tenemos que resolver este sistema de ecuaciones para encontrar los valores de las variable básicas X2 , X4 , X5 (recordemos que ahora X1 y X3 = 0) y de Z. Como que X2 tiene un coeficiente igual a +3 en la ecuación (2), necesitamos realizar una transformación para que su coeficiente sea 1. Para ello basta multipliucar ambos lados de la ecuación por 1/3. Una vez realizada la operación, la nueva ecuación (1) es la siguiente: 1/3X1 + X2 + 1/3X3 = 48 El paso siguiente es eliminar X2 de las otras ecuaciones. Comencemos por la ecuación (0). Tenemos que realizar la operación siguiente: Ec. (0) nueva = ec. (0) antigua + ec.(2) nueva Es decir: Z -X1 - X2 = 0 +( 1/3X1 + X2 + 1/3X3 = 48) Z -2/3X1 + 1/3X3 = 48 Tenemos que realizar el mismo procedimiento para las ecuaciones (2) y (3). Lo haremos a continuación para la ecuación (2). Para eliminar X2 de la ecuación (2), tenemos que realizar la operación siguiente: Ec. (2) nueva = ec. (2) antigua – 2 [ec.(1) nueva] 3X1 + 2X2 + X4 = 162 -( 2/3X1 + 2X2 + 2/3X3 = 96) 7/3X1 - 2/3X3 + X4 = 66 Para la ecuación (3), tenemos que realizar una operación similar: Ec. (3) nueva = ec. (3) antigua – 18 [ec.(1) nueva] 13X1 + 18X2 + X5 = 982 -( 6X1 + 18X2 + 6X3 = 864) 7X1 -6X3 + X5 = 118 Por lo tanto, la nueva forma gausiana del sistema de ecuaciones es la siguiente: 40 (0) Z -2/3X1 + 1/3X3 = 48 (1) 1/3X1 + X2 +1/3X3 = 48 (2) 7/3X1 - 2/3X3 + X4 = 66 (3) 7X1 - 6X3 + X5 = 118 En negrita figuran las variables básicas, que aparecen únicamente en una ecuación y con un coeficiente igual a 1. Por lo tanto, si comparamos este nuevo sistema de ecuaciones con el anterior, veremos que sigue teniendo la forma apropiada de eliminación de Gauss que permite obtener inmediatamente el valor de las variables en la solución (recordemos que X1 = 0 y X3 = 0 ya que son las variables no básicas). Hay que observar que en la ecuación (0) siempre están únicamente la variables no-básicas. Ahora tenemos una nueva solución básica factible igual a (0,48,0,96,114) que corresponde al punto extremo B. El valor del objetivo es igual a 48. El siguiente paso es ver si esta nueva solución es la óptima. Para ello examinamos en la siguiente ecuación (que corresponde a la ecuación (0)) los coeficientes de las variables no básicas: Z = 48 + 2/3X1 – 1/3X3 Como la variable no-básica X1 tiene un coeficiente positivo (2/3), si la variable pasa a tener valores positivos, el objetivo aumentará. Por lo tanto no estamos en la solución óptima y hay que realizar de nuevo el proceso, en donde X1 entrará en la base y otra variable básica dejará de serlo. Segunda iteración ß Paso 1. Como que la ecuación (0) actual es Z = Z = 48 + 2/3X1 – 1/3X3, la función solo aumentará si X1 aumenta. Ya tenemos la variable que entrará en la base. ß Paso 2. El límite superior sobre X1 antes de que las variables básicas sean negativas está indicado en el Cuadro 2.3: Cuadro 2.3: Cálculos para obtener la variable saliente Variable Básica Ecuación Cota Superior Para X1 X2 X4 X5 X2 = 48 – 1/3X1 – 1/3X3 X4 = 66 – 7/3X1 + 2/3X3 X5 = 114 – 7X1 + 6X3 X1 48*3 = 144 X1 66*(3/7)= 198/7 X1 118/7 mínimo Escogeremos X5 como la variable básica saliente ya que es la cual que, a medida que aumenta el valor de X1, X5 alcanza primero el valor 0. ß Paso 3. Ahora hay que eliminar X1 de todas las ecuaciones para encontrar la nueva solución de todas las variables y del objetivo. Volvemos a realizar la transformación gausiana. 41 Primero tenemos que transformar la ecuación correspondiente a la variable entrante, para que tenga un coeficiente 1. Para ello tenemos que dividir la ecuación (3) por 7. El resultado es el siguiente: (3) X1 - 6/7X3 + 1/7X5 = 118/7 Con esta ecuación, volvemos a transformar las otras en la forma gausiana apropiada: Ec. (0) nueva = ec. (0) antigua + 2/3 [ec.(3) nueva] Es decir: Z -2/3X1 + 1/3X3 = 48 +( 2/3X1 - 4/7X3 + 2/21X5 = 236/21) Z - 5/21X3 + 2/21X5 = 1244/21 Tenemos que realizar el mismo procedimiento para las ecuaciones (1) y (2). Lo haremos a continuación para la ecuación (1). Para eliminar X2 de la ecuación (1), tenemos que realizar la operación siguiente: Ec. (1) nueva = ec. (1) antigua – 1/3 [ec.(3) nueva] 1/3X1 + X2 + 1/3X3 = 48 -( 1/3X1 - 2/7X3 + 1/21X5 = 118/21) + X2 + 13/21X3 -1/21X5 = 890/21 Para la ecuación (2), tenemos que realizar una operación similar: Ec. (2) nueva = ec. (2) antigua – 7/3 [ec.(3) nueva] 7/3X1 - 2/3X3 + X4 = 66 -( 7/3X1 - 2X3 + 1/3X5 = 118/3) 4/3X3 + X4 -1/3X5 = 80/3 Por lo tanto, la nueva forma gausiana del sistema de ecuaciones es la siguiente: (0) Z - 5/21 X3 + 2/21X5 = 1244/21 (1) + X2 + 13/21X3 - 1/21X5 = 890/21 (2) 4/3X3 + X4 - 1/3X5 = 80/3 (3) X1 - 6/7X3 + 1/7X5 = 118/7 42 La solución básica factible siguiente es (118/7; 890/21; 0; 80/3; 0) y el valor del objetivo es Z = 1244/21. · Prueba de Optimalidad. Tenemos que verificar si las variables no-básicas del objetivo tienen coeficientes que permitan aumentar el valor del objetivo si éstas cogen valores positivos. El nuevo objetivo es: Z = 1244/21 + 5/21X3 - 2/21X5 Como una de las variables no-básicas tiene un coeficiente positivo, el valor del objetivo puede aumentar si esta variable pasa a ser básica. Por lo tanto, aún no hemos alcanzado el óptimo, y es preciso realizar una nueva iteración del algoritmo Simplex. Ahora la variable X3 entrará en la base, y tenemos que escoger una variable básica para salir de la base. Tercera iteración ß Paso 1. Como que la ecuación (0) actual es Z = 1244/21 + 5/21X3 - 2/21X5, la función solo aumentará si X3 aumenta. Ya tenemos la variable que entrará en la base. ß Paso 2. El límite superior sobre X3 antes de que las variables básicas sean negativas está indicado en el Cuadro 2.4: Cuadro 2.4: Cálculos para obtener la variable saliente Variable Básica Ecuación Cota Superior Para X3 X1 X2 X4 X1 = 118/7 + 6/7X3 - 1/7X5 X2 = 890/21 – 13/21X3 + 1/21X5 X4 = 80/3 - 4/3X3 + 1/3X5 infinita X3 (890/21)*(21/13)= 890/13 X3 (80/3)*(3/4) = 20 mínimo Escogeremos X4 como la variable básica saliente ya que es la cual que, a medida que aumenta el valor de X3, X4 alcanza primero el valor 0. Por otro lado, al aumentar el valor de X3 el valor de X1 también aumenta. De aquí que no exista una cota superior. ß Paso 3. Ahora hay que eliminar X3 de todas las ecuaciones para encontrar la nueva solución de todas las variables y del objetivo. Volvemos a realizar la transformación gausiana. Primero tenemos que transformar la ecuación correspondiente a la variable entrante, para que tenga un coeficiente 1. Para ello tenemos que multiplicar la ecuación (2) por 3/4. El resultado es el siguiente: (2) X3 + 3/4X4 - 1/4X5 = 20 Con esta ecuación, volvemos a transformar las otras en la forma gausiana apropiada: Ec. (0) nueva = ec. (0) antigua + 5/21 [ec.(2) nueva] 43 Es decir: Z -5/21X3 + 2/21X5 = 1244/21 +( 5/21X3 + 5/28X4 - 5/84X5 = 100/21) Z + 5/28X4 + 1/28X5 = 64 Tenemos que realizar el mismo procedimiento para las ecuaciones (1) y (3). Lo haremos a continuación para la ecuación (1). Para eliminar X3 de la ecuación (1), tenemos que realizar la operación siguiente: Ec. (1) nueva = ec. (1) antigua – 13/21 [ec.(2) nueva] + X2 + 13/21X3 - 1/21X5 = 890/21 -( 13/21X3 + 13/28X4 - 13/84X5 = 435/42) + X2 - 13/28X4 + 9/28X5 = 30 Para la ecuación (3), tenemos que realizar una operación similar: Ec. (3) nueva = ec. (3) antigua + 6/7 [ec.(2) nueva] X1 -6/7X3 +1/7X5 = 118/7 + ( + 6/7X3 + 9/14X4 - 3/14X5 = 120/7) + 9/14X4 -1/14X5 = 34 Por lo tanto, la nueva forma gausiana del sistema de ecuaciones es la siguiente: (0) Z + 5/28X4 + 1/28X5 = 64 (1) + X2 -13/28X4 + 3/28X5 = 30 (2) X3 +3/4X4 - 1/4X5 = 20 (3) X1 + 9/14X4 - 1/14X5 = 34 La solución básica factible siguiente es (34; 30; 20; 0; 0) y el valor del objetivo es Z = 64. · Prueba de Optimalidad. Tenemos que verificar si las variables no-básicas del objetivo tienen coeficientes que permitan aumentar el valor del objetivo si éstas cogen valores positivos. El nuevo objetivo es: Z = 64 - 5/28X4 - 1/28X5 44 Como ninguna de las variables no-básicas tiene un coeficiente positivo, el valor del objetivo no puede aumentar si cualquiera de las variables no básicas pasa a ser básica. Por lo tanto, hemos alcanzado el óptimo, ya que no podemos pasar a un punto extremo adyacente que mejore el valor del objetivo. En resumen, el método Simplex tiene los pasos siguientes: 1. Introducir las variables de holgura para obtener la forma canónica del programa 2. Encontrar una solución inicial de un punto extremo y realizar la prueba de optimalidad. 3. Si no estamos en el óptimo: a) Determinar la variable básica entrante: seleccionar la variable no básica que, al aumentar su valor, aumente más rápidamente el valor del objetivo. b) Determinar la variable básica saliente: ésta es la que alcanza el valor 0 más rápidamente a medida que aumentamos la variable entrante. c) Una vez que sabemos cual es la variable básica que sale de la base, se determina la nueva solución básica factible: a partir del conjunto actual de ecuaciones se aíslan las variables básicas y Z en términos de las variables no-básicas utilizando el método de eliminación de Gauss. Las variables no-básicas se igualan a 0; cada variable básica junto con Z es igual al nuevo lado derecho de la ecuación en la cual aparece con coeficiente +1. 4. Examinamos si la nueva solución encontrada es óptima: únicamente necesitamos examinar los coeficientes de las variables no básicas que están en el objetivo. Si todos los coeficientes son negativos, estamos en el óptimo. Por otro lado, si como mínimo uno de los coeficientes asociados a las variables básicas es positivo, tenemos que repetir los pasos 2 y 3. 2.3 Adaptación a otro tipo de modelos Hasta ahora hemos estudiado el método Simplex para problemas de maximización con restricciones con la desigualdad . Pero hay otros casos como los problemas de minimización y la existencia de restricciones con igualdad o con desigualdad . A continuación veremos como adaptar la formulación del modelo con alguna de estas características para poder utilizar el método Simplex. 2.3.1 Restricciones con igualdad El problema básico con las restricciones de igualdad es la obtención de una solución básica factible inicial. Supongamos que, en nuestro ejemplo, tenemos una restricción adicional que se tiene que cumplir con igualdad (X1 + X2 = 7). En este caso, en principio no hay que introducir una variable de holgura para formar la forma canónica. Si procedemos a encontrar una solución inicial factible igualando X1 y X2 a 0 nos encontramos con el problema de que esta nueva restricción no se cumple. Para poder obtener una solución 45 inicial factible, nos vemos obligados a introducir una nueva variable no-negativa, denominada artificial, S3 de la siguiente forma: X1 + X2 + S3 = 7 Gracias a la introducción de esta variable artificial S3 ya podemos encontrar una solución inicial factible en donde S3 es una variable básica igual a 7. De hecho, hemos aumentado el número de variables añadiendo una que no tiene ninguna interpretación económica, pero que nos sirve para encontrar una solución inicial factible. Es meramente un artificio matemático. Pero, en la solución final, queremos que S3 tenga el valor 0 (sea no básica), ya que, si esto no es así, el problema no tendría sentido (la restricción no se cumpliría con igualdad).. Para poder conseguirlo, añadimos esta variable artificial en el objetivo, pero con un coeficiente negativo de valor muy elevado (respecto a los otros), que llamaremos M: Z = X1 + X2 - MS3 Como este valor penaliza la variable en el objetivo, el método Simplex escogerá esta variable para salir de la base y nunca más volverá a entrar (es decir, se quedará con el valor 0). Por lo tanto, en la solución final S3 tendrá el valor 0. Si esto no fuera así, el problema sería infactible. En la próxima sección veremos como eliminar esta variable del objetivo. 2.3.2 Restricciones con dirección . Supongamos ahora que añadimos la restricción (3) del problema de la sección 2.2.2: 4X1 + 2X2 135 En este caso tenemos que encontrar una solución inicial de la misma forma que hacíamos anteriormente para poder ejecutar el método Simplex. Ahora bien, en este caso añadimos una variable de exceso no-negativa, E3, que mide la diferencia entre el valor del lado izquierdo de la ecuación (4X1 + 2X2) y el lado derecho (135). Esta variable tendrá un signo negativo en la ecuación: 4X1 + 2X2 - E3 = 135 Ahora bien, al fijar inicialmente X1 y X2 iguales a 0, E3 se igualará a –135, por lo que tendrá un valor negativo, incumpliendo las condiciones de no-negatividad de todas las variables en el método Simplex. De nuevo, tenemos que recurrir al artificio de introducir una variable artificial que nos permita obtener una solución factible inicial S3: 4X1 + 2X2 - E3 + S3 = 135 En este caso escogemos S3 como variable básica inicial correspondiente a la restricción (3). Como en el caso anterior (restricciones con igualdad), añadiremos la variable artificial S3 en el objetivo con un coeficiente –M. Si esta variable continua con valor positivo al final del método Simplex, el problema es infactible. El hecho de añadir la variable artificial en el objetivo implica que, al iniciar el método Simplex, el cuadro inicial no esté en la forma apropiada de eliminación gausiana, ya que esta forma requiere que todas las variables básicas tengan un coeficiente 0 en la ecuación (0) correspondiente al objetivo, y en este caso la variable básica S3 tiene un coeficiente igual a - M. Entonces, para poder iniciar el método Simplex, tanto si tenemos restricciones con igualdad o desigualdad , tenemos que transformar esta ecuación (0) en la forma apropiada de 46 eliminación de Gauss, para poder así determinar tanto la variable que entrará en la base como el test de optimalidad. De nuevo, el procedimiento es el de siempre: el método de eliminación de Gauss. En este caso, el procedimiento es muy similar al utilizado hasta ahora en el método Simplex. Tendremos que realizar la operación siguiente: Ec. (0) nueva = ec. (0) antigua – M * ec.(3) Es decir: Z -X1 - X2 +M S3 = 0 -M( 4X1 + 2X2 - E3 + S3 = 135) Z (-1 –4M)X1 (-1-2M) X2 +M E3 = - 135M Ahora ya podemos proceder con el método Simplex ya que todas las variables básicas en la ecuación (0) tienen un coeficiente asociado igual a 0. Ahora tenemos que decidir que variable no-básica tiene que entrar en la base. Escogeremos aquella cuyo coeficiente aumente más el objetivo. En este caso, escogeríamos E3 como variable básica entrante y procederíamos a buscar la variable básica saliente de la misma forma que lo hicimos anteriormente. Hemos de observar que cuando E3 entra en la base y otra variable sale de la base (es decir, nos desplazamos a un nuevo punto extremo adyacente), el coeficiente de E3 en el objetivo tomará el valor 0. A medida que el procedimiento continua, las variables con el valor M en el objetivo van entrando en la base y llegará un punto en que M desaparecerá del sistema. Si en la solución final aún tenemos M en la ecuación (0), el sistema no tiene solución. Si tenemos más de una restricción con igualdad, el procedimiento es exactamente el mismo. Cada una de las variables artificiales tendrá un coeficiente –M en el objetivo y tendremos que encontrar la forma apropiada de eliminación de Gauss. 2.3.3 Minimización Hasta ahora, hemos examinado el método Simplex cuando estamos maximizando el objetivo. Pero, en muchos casos, tenemos que minimizar el objetivo (por ejemplo, minimizar costes, minimizar el grado de contaminación o minimizar la mortalidad). Lo más sencillo es multiplicar el objetivo por –1. Por ejemplo: Min Z = 3X1 + 4X2 es equivalente a: Max -Z = -3X1 - 4X2 Una vez hecha esta transformación, podemos aplicar el método Simplex descrito en esta sección. La causa de esta equivalencia es que, cuanto menor es Z, mayor es –Z. Otra manera de operar con un objetivo de minimización es seleccionar la variable no-básica entrante que reduzca en mayor grado el valor del objetivo. 47 2.3.4 Variables no acotadas Puede ocurrir que en algunas formulaciones las variables puedan coger valores negativos. En este caso, hay que modificar el modelo para poder utilizar en método Simplex, ya que éste únicamente permite que las variables tomen valores positivos o cero. Supongamos que la variable Xi no está acotada inferiormente. Para poder resolver el problema, tendremos que sustituir esta variable en todas las ecuaciones por dos variables Xi + y Xi - de la manera siguiente: Xi = Xi + - Xi - en donde Xi + 0 y Xi - 0. Como estas dos variables pueden coger cualquier valor no-negativo, su diferencia puede ser cualquier valor (positivo o negativo). Ahora ya podemos aplicar el método Simplex. En la solución final, debido a las propiedades geométricas de la solución factible en un punto extremo, nunca tendremos las dos variables con valores positivos. O únicamente una de ellas tiene valor estrictamente positivo y la otra igual a 0 (o viceversa), o las dos son iguales a 0. 2.4 Situaciones especiales en el método Simplex ¿Qué pasa cuando vamos a escoger la variable no-básica entrante y hay un empate en el criterio? ¿Cómo detectamos problemas sin solución? ¿I si la solución es infinita? A continuación examinaremos como el método Simplex lidia con estas situaciones. Empate en la variable entrante Si hay dos variables que tienen el coeficiente más grande (en valor absoluto) igual en la ecuación (0), se escoge arbitrariamente una de ellas para entrar en la base. Empate en la variable saliente Supongamos que ahora el empate se produce entre dos o más variables básicas al examinar el criterio de salida. Si esto sucede, todas las variables alcanzan el valor 0 al mismo tiempo cuando aumenta el valor de la variable entrante. Entonces, las variables básica que no habíamos escogido como salientes de la base también tendrán valor 0 en la solución. Este tipo de soluciones se llaman degeneradas. Incluso, si una de estas variables continua con el valor 0 hasta que se selecciona como variable saliente en una iteración posterior, la variable no-básica entrante también se quedará con valor 0 y el valor del objetivo no cambiará. Puede pasar que, si Z se queda igual, en vez de mejorar el objetivo en cada iteración, el método Simplex entre en un ciclo que repite periódicamente las mismas soluciones, en vez de ir cambiando para aumentar el valor del objetivo. De hecho, se han elaborado programas lineales con ciclos infinitos. Por suerte, en la práctica esta situación es casi inexistente y normalmente los empates se rompe arbitrariamente. No hay variable básica saliente: Z no acotado ¿Qué pasa cuando no hay variables básicas candidatas a salir en la base? O, en otras palabras, ¿qué hacemos cuando todos los cocientes calculados para seleccionar la base son de tal manera que no hay ninguno es positivo? Recordemos que, a medida que aumentábamos el valor de la 48 variable no-básica entrante, había como mínimo variable básica que iba disminuyendo hasta llegar a tener un valor 0, que determinaba automáticamente el nuevo valor de la variable entrante. Pues bien, pueden haber situaciones en donde a medida que aumento el valor de la variable entrante todas las variables básicas también aumentan de valor (o no cambian). Simplemente, el problema tiene una solución infinita, ya que no hay ninguna restricción que acote el objetivo. Soluciones óptimas múltiples Como hemos visto, el método Simplex se para cuando encuentra una solución óptima. Pero, como hemos visto en el método gráfico, pueden haber situaciones en las que hay soluciones óptimas múltiples... Siempre que el problema tiene más de una solución óptima factible, como mínimo una variable no-básica tiene el coeficiente igual a 0 en la ecuación (0) final, de manera que si su valor aumenta, Z no cambia. Si esta situación aparece, podemos encontrar otra solución óptima introduciendo esta variable no-básica en la base. Así podemos encontrar otras soluciones que, sin cambiar el valor del objetivo, nos ayuden a tomar una decisión en función del valor de las variables en el óptimo. 2.5 Soluciones con Ordenador Por ahora hemos visto dos métodos para encontrar soluciones de programas lineales. Pero todos ellos son muy ineficientes si se tiene que hacer los cálculos con lápiz y papel incluso para problemas pequeños. Actualmente, existen un sinfín de programas de ordenador que resuelven problemas lineales muy eficientemente, incluso programas con miles de variables y restricciones. Los programas de hoja de cálculo también están incorporando métodos para obtener soluciones de programas lineales. En esta sección describiremos como programar y solucionar un modelo de programación lineal en la hoja de cálculo Excel 97 de Microsoft9 . Utilizaremos mismo ejemplo de las secciones anteriores. También supondremos que se tienen conocimientos básicos de funcionamiento de este programa. La formulación del problema de asignación de recursos de la sección 2.2.2 es: Max Z = X1 + X2 s.a. (1) X1 + 3X2 144 (2) 3X1 + 2X2 162 (3) 4X1 + 2X2 135 (4) X1 - 3X2 0 (5) 13X1 + 18X2 982 X1, X2 0 En primer lugar reordenamos el conjunto de restricciones en función de la dirección del signo (, =, ). El sistema queda así: 9 La versión que se utiliza en este apartado corresponde a Office 2000, aunque en versiones anteriores también existe el módulo de programación lineal 49 Max Z = X1 + X2 s.a. (1) X1 + 3X2 144 (2) 3X1 + 2X2 162 (4) X1 - 3X2 0 (5) 13X1 + 18X2 982 (3) 4X1 + 2X2 135 X1, X2 0 Esto simplificará considerablemente la introducción de datos en la hoja Excel y en el módulo solver. Obsérvese que el conjunto de restricciones puede representarse de formal matricial solo con los coeficientes de las variables: X1 X2 Recurso 1 3 144 3 2 162 1 -3 0 13 18 982 4 2 135 La primera columna corresponde a los coeficientes de X1 y la segunda a los coeficientes de X2. Precisamente vamos a escribir esta matriz en las celdas de la hoja de calculo En la Figura 3.5 hemos escrito el planteamiento del problema. En los rangos B12-B16 y C12-C16 hemos escrito los coeficientes de X1 y X2 en las restricciones. En el rango D12-D16 figuran los valores de los recursos (lado derecho de las restricciones y en las celdas B5 y C5 los coeficientes de las variables en el objetivo. Ahora tenemos que escribir las fórmulas correspondientes a las restricciones y a la función objetivo. Las celdas B8 y C8 representarán los valores de las variables de decisión X1 y X2. La fórmula de la función objetivo está escrita en la celda E2. La fórmula es la siguiente: =B8*$B$5+C8*$C$5. Las formulas del lado izquierdo de las restricciones están escritas en el rango E12-E16. Estas son: =B12*$B$8+C12*$C$8 =B13*$B$8+C13*$C$8 =B14*$B$8+C14*$C$8 =B15*$B$8+C15*$C$8 =B16*$B$8+C16*$C$8 Ahora ya tenemos preparado el modelo. Obsérvese que por el momento las celdas con fórmulas tienen el valor 0. Esto es debido a que por ahora las celdas asociadas a las variables de decisión están vacías. 50 El siguiente paso es indicar a la hoja de cálculo donde está en problema. Entramos en la opción Herramientas y escogemos en el menú el Solver. Entonces aparecerá un recuadro como el de la Figura 3.6. Figura 3.5: Ejemplo en Excel Figura 3.6: Cuadro de la Opción Solver 51 Ahora tenemos que indicar las celdas en donde están las fórmulas. En la casilla “Celda objetivo” ponemos la referencia de la celda en donde está la función objetivo ($E$2). Luego indicamos que es un problema de maximización. Las referencias de las variables se indican en el recuadro “Cambiando las celdas” (B8;C8). Finalmente tenemos que introducir las restricciones. Para ello entramos en la opción Agregar y saldrá el recuadro de la Figura 3.7. En él tenemos que indicar donde está el lado izquierdo (la fórmula) de cada restricción, el signo de la desigualdad y el lado derecho de cada restricción. Cada vez que entramos una restricción adicional escogemos la opción agregar. Ahora bien, si hemos ordenado las restricciones en función de su dirección, no hace falta entrar en el una a una en el recuadro. Basta con seleccionar el rango en función de cada una de las agrupaciones realizadas. Después de haber entrado las restricciones correspondientes, Excel también exige poner las restricciones de nonegatividad. Para ello seguimos agregando dos restricciones, una para cada variable. Para ello tenemos que indicar en el lado izquierdo la referencia de la celda correspondiente a la variable de decisión, y en el lado derecho pondremos el valor 0, habiendo escogido previamente el sentido de la desigualdad ( ). La Figura 3.8 muestra el resultado final de introducir el problema. Figura 3.7.: Introducción de las restricciones 52 Figura 3.8: Resultado final de la programación Ahora ya podemos resolver el problema. Escogemos la opción Resolver y al cabo de unos breves momentos saldrá una pantalla indicando que la solución ha sido encontrada. La solución óptima de las variables de decisión y el valor del objetivo ahora aparecen en las celdas (ver Figura 3.10). La opción Solver también permite obtener automáticamente informes sobre la solución final. 53 Figura 3.9: Resultado del Solver Figura 3.10: Solución óptima 54 2.6 Ejercicios Cierto/falso 1. En un programa lineal, todas las funciones que forman el conjunto de restricciones y el objetivo son lineales 2. El método gráfico es muy útil porque permite encontrar soluciones de cualquier programa lineal 3. Cualquier solución que cumple, como mínimo, una restricción de un programa lineal, pertenece a la región factible 4. Una solución óptima no utiliza necesariamente todos los recursos disponibles en el problema 5. La intersección de dos restricciones cualquiera es un punto extremo de la región factible 6. Una restricción con igualdad en general acota más la región factible que una con desigualdad 7. Una solución de un programa lineal siempre se encuentra en un punto extremo 8. Si hay más de una solución de un programa lineal, entonces hay infinitas soluciones 9. Cualquier restricción con desigualdad en un programa lineal añade exactamente una variable al método Simplex 10. Cada solución factible encontrada por el algoritmo Simplex corresponde a un punto extremo 11. Las variables artificiales se añaden al modelo para encontrar una solución inicial 12. En un programa lineal de maximización sin restricciones la solución es infinita 13. La forma gausiana de un programa lineal es útil para encontrar soluciones en puntos extremos 14. Si hay un empate en el criterio de escoger la variable básica saliente, la solución es infinita 15. Si no tenemos ninguna variable candidata a salir de la base, la solución es no acotada 16. Si una variable básica tiene el coeficiente del objetivo igual a 0 en una iteración del método Simplex antes de llegar al óptimo, entonces hay infinitas soluciones óptimas 17. En una restricción con igualdad añadimos una variable de holgura 18. Para identificar una variable básica saliente, hay que saber antes qué variable no-básica va a entrar en la base 19. Una variable no-básica es siempre igual a 0 en cualquier solución 20. En la solución final de un programa lineal todas la variables básicas siempre tienen valores nonegativos Elección Múltiple 1. ¿Qué no es esencial en un programa lineal? a) Tenemos que tener un objetivo bien definido b) Los problemas tienen que ser de maximización c) Los recursos tienen que ser limitados d) Las variables son continuas 55 2. En la programación lineal, no-negatividad implica que una variable no puede tener: a) Un coeficiente negativo en la función objetivo b) Un coeficiente negativo en las restricciones c) Un valor fraccional d) Ninguna de las anteriores 3. Si tenemos un programa lineal de maximización con todas las restricciones con dirección : a) El problema no es factible b) La solución es infinita c) El algoritmo Simplex hace tantas iteraciones como variables en el problema d) Ninguna de las anteriores 4. La intersección de las restricciones de un programa lineal forma: a) Un conjunto convexo b) El espacio factible de soluciones c) Los puntos extremos d) Todas las anteriores 5. Para poder encontrar una solución inicial de un programa lineal, las restricciones con dirección se han de transformar en igualdad añadiendo: a) Una variable de exceso b) Una variable artificial c) Una variable de holgura y una artificial d) Ninguna de las anteriores 6. Supongamos un programa lineal con dos variables y una única restricción. Si estamos maximizando y la restricción es : a) Las dos variables tendrán valores positivos b) En general, una variable será positiva y la otra cero c) El problema no tiene solución d) Ninguna de las anteriores 7. Supongamos un programa lineal con dos restricciones , una restricción con = y tres variables. Cuando construimos la forma canónica para encontrar una solución inicial, tendremos un total de: a) 3 variables estructurales, 2 de holgura y 1 de exceso b) 3 variables estructurales, 2 de exceso y 1 artificial c) 3 variables estructurales, 2 de holgura y 1 artificial d) Ninguna de las anteriores 8. Si tenemos la solución óptima de un programa lineal con dos variables de decisión, ¿cuál de las opciones es la correcta? a) El problema tiene una única solución b) La solución óptima se encuentra en un punto extremo o a lo largo de una recta que conecta dos puntos extremos c) Todos los recursos se han consumido en la solución óptima d) Todas las anteriores 9. En una solución básica factible: a) Todas las variables son positivas b) Estamos en el óptimo c) Las variables no-básicas son 0 d) Ninguna de las anteriores 10. En un punto extremo de la región factible: a) Hay una solución básica factible b) Coinciden dos o más restricciones c) Podemos encontrar el óptimo 56 d) Todas las anteriores 11. En cada iteración del algoritmo Simplex, tenemos que: a) Como mínimo, una de las variables que tienen un valor positivo en la solución anterior coge el valor 0 b) Una variable no-básica se transforma en básica c) El valor del objetivo mejora d) Todas las anteriores 12. Si en la solución óptima la variable de holgura X , correspondiente a una restricción con dirección y lado derecho (recurso) R, está en la base, entonces: a) El problema no es factible b) No se ha consumido todo el recurso R c) Se ha consumido todo el recurso R d) Se puede obtener un solución mejor si el valor de R aumenta 13. Si tenemos una solución óptima degenerada: a) Hay soluciones alternativas óptimas b) La solución no sirve de nada c) La solución no es factible d) Ninguna de las anteriores 14. Si tenemos que en la ecuación (0) de la solución final del método Simplex hay el coeficiente –M asociado a una variable artificial, sabemos que el problema es: a) Un problema de maximización b) Un problema de minimización c) No es factible d) Ninguna de las anteriores 15. Si hay un valor negativo en los coeficientes de la ecuación (0) del método Simplex, sabemos que: a) La solución es óptima b) Hemos cometido un error c) El problema no tiene límites d) Ninguna de las anteriores Problemas 2.1 Considerar el programa lineal siguiente: Max Z = X1 + 2X2 s.a. 2X1 + 8X2 16 X1 + X2 5 X1, X2 0 a) Utilizar en método gráfico para encontrar una solución b) Cambiar la función objetivo por Z = X1 + 6X2 y volver a solucionar el problema c) ¿Cuántos puntos extremos tiene la solución factible? Encontrar los valores de X1 y X2 en cada punto extremo 57 2.2 Supongamos el programa lineal siguiente: Max Z = 4X1 + X2 + X3 s.a. X1 + 4X2 + X3 12 5X1 - 2X2 + 4X3 11 2X1 + 3X2 + 3X3 20 X1, X2 , X3 0 Encontrar dos puntos extremos factibles. 2.3 Utilizar el método Simplex algebraico para solucionar el problema siguiente: Max Z = -X1 + X2 + 2X3 s.a. 2X1 + 8X2 - X3 20 -2X1 + 4X2 + 2X3 60 2X1 + 3X2 + X3 50 X1, X2 , X3 0 2.4 Considerar el problema siguiente: Max Z = 2X1 + 4X2 + 3X3 s.a. X1 + 3X2 + 2X3 30 X1 - X2 + X3 24 3X1 + 5X2 + 3X3 60 X1, X2 , X3 0 Sabemos que, en la solución óptima, X1, X2 , X3 > 0. a) Describir como se puede utilizar esta información para adaptar el método Simplex de manera que el número de iteraciones sea mínimo (comenzando en la solución básica factible inicial normal). No vale hacer ninguna iteración. b) Utilizar el procedimiento desarrollado para solucionar el problema. 58 2.5 Considerar el problema siguiente: Max Z = X1 + X2 + X3 + X4 s.a. X1 + X2 3 X3 + X4 2 X1, X2 , X3 , X4 0 Utilizar el método Simplex para encontrar todas las soluciones factibles óptimas. 2.6 Considerar el programa siguiente: Max Z = 2X1 - 4X2 + 5X3 - 6X4 s.a. X1 + 4X2 - 2X3 + 8X4 3 - X1 + 2X2 + 3X3 + 4X4 2 X1, X2 , X3 , X4 0 Determinar el número máximo de soluciones básicas posibles y la solución básica factible óptima. 2.7 Formular y encontrar la solución óptima del problema 1.1 2.8 Formular y encontrar la solución óptima del problema 1.2. 2.9 Formular y encontrar la solución óptima del problema 1.3. 2.10 Formular y encontrar la solución óptima del problema 1.4. 2.11 Formular y encontrar la solución óptima del problema 1.5. 59 3 Programación Lineal Entera 3.1 Introducción Los modelos de programación lineal consideran que las variables de decisión son continuas, es decir, que pueden tomar en la solución final valores fraccionados. Pero, en muchos casos, una solución óptima de un programa lineal puede ser inservible si presenta fracciones. Supongamos, por ejemplo, que hemos construido un modelo para asignar personal médico a departamentos dentro de un hospital. En este caso, las variables de decisión (asignar personas a departamentos) tienen que ser enteras en la solución final. ¡No tendría sentido una solución en la cual 2,3 médicos fuesen asignados a la sección de dermatología! Para poder encontrar soluciones de problemas en los cuales algunas o todas las variables tienen que ser enteras, se utiliza la programación entera, que no es más que una extensión de la programación lineal. Otro tipo de modelos entran dentro de la programación entera binaria, que es un caso especial en donde todas o algunas de las variables representan acciones binarias, es decir, “hacer o no hacer”. En este caso, las variables únicamente pueden adoptar los valores 0 ó 1. Este tipo de problemas es muy común en la toma de decisiones, en donde muchas veces tenemos que decidir si, por ejemplo, tenemos que construir un nuevo centro, si tenemos que invertir en un nuevo departamento, o si tenemos que modificar una estrategia de planificación de un servicio. Cuando nos encontramos con este tipo de problemas, la formulación matemática no se ve alterada; únicamente en las restricciones de no-negatividad hay que indicar qué variables tienen que tomar valores enteros. El problema reside en encontrar soluciones que sean factibles, ya que el algoritmo Simplex no garantiza una solución adecuada al problema. En este capítulo, examinaremos en primer lugar como podemos modificar el algoritmo Simplex para poder obtener soluciones óptimas. A continuación, examinaremos algunos problemas de programación entera cuyas variables de decisión son binarias (decisiones “hacer o no hacer”). 3.2 El algoritmo de bifurcación y acotamiento El Algoritmo de Bifurcación y Acotamiento10 (ABA) se basa en el algoritmo Simplex para poder obtener soluciones enteras. En primer lugar, se aplica el algoritmo Simplex para obtener una solución inicial. Si en la solución obtenida al final del algoritmo Simplex todas las variables especificadas como enteras tienen valores enteros, no hace falta seguir ya que se ha obtenido el óptimo; en caso contrario, es necesario aplicar el ABA. Básicamente, en cada iteración del ABA se escoge una variable que presenta una solución no-entera y se divide el problema en dos sub-problemas, añadiendo en cada uno de ellos una nueva restricción que acota esta variable por su valor entero superior en un caso, y por el valor su valor inferior entero por el otro. Cada sub-problema se resuelve con el método Simplex y se verifica si la solución es entera. En caso, contrario, se vuelve a bifurcar el sub-problema en otros dos y se sigue procediendo hasta que se encuentra una solución entera. El proceso se realiza en todas las ramificaciones del árbol. Aunque este algoritmo pueda parecer complejo, el proceso es bastante sencillo. A continuación examinaremos con un ejemplo el ABA. 10 en inglés, “branch and bound algorithm” 60 Supongamos que tenemos que encontrar la solución al problema lineal siguiente: Max Z = X1 + 1,4X2 s.a. X1 + 0,5X2 6 0,5X1 + X2 5,5 X1 + X2 6,8 1,4X1 + X2 9 X1, X2 enteras En primer lugar utilizamos el método Simplex para obtener una solución del programa lineal relajado (sin considerar las restricciones que fijan las variables como enteras). La solución obtenida es Z = 8,5; X1 = 2,6 y X2 = 4,2. Tenemos que las dos variables ofrecen soluciones fraccionadas. Hay que aplicar el ABA. Definamos el problema original como P0. Escogemos X1 y creamos dos sub-problemas P1 y P2 a partir del programa original. El primer sub-problema, P1, consistirá en el programa original P0 más la restricción X1 2. El segundo sub-problema, P2, consistirá en el programa original más la restricción X1 3. Es decir, estamos diciendo que X1 no puede coger valores entre dos y tres. Solucionamos P1 y P2. P1 = P0 + X1 2. Solución: Z1 = 8,3; X1 = 2 y X2 = 4,5 P2 = P0 + X1 3. Solución: Z2 = 8,3; X1 = 3 y X2 = 3,8 Los dos sub-problemas obtienen el mismo valor del objetivo que, como era de esperar, es inferior al objetivo inicial Z. Sin embargo, ambos problemas siguen incumpliendo las condición de soluciones enteras. Tenemos que seguir ramificando. Cogemos el problema P1 y lo subdividimos en dos nuevos sub-problemas P11 y P12 añadiendo las restricción X2 4 en uno y X2 5 (manteniendo todas las restricciones anteriores, incluida X1 2). Los resultados son los siguientes: P11 = P1 + X2 4. Solución: Z11 = 7,6; X1 = 2 y X2 = 4 P12 = P1 + X2 5. Solución: Z12 = 8,0; X1 = 1 y X2 = 5 En estos dos sub-problemas hemos encontrado soluciones enteras. Como Z11 es inferior a Z12 podemos descartar P11 como solución válida. Por ahora ya hemos encontrado una solución que tiene valores enteros con el problema P12, cuyo objetivo es igual a 8,0. Sin embargo, aún no hemos acabado el algoritmo. Recordemos que habíamos subdividido el problema original en dos sub-problemas. Aún no hemos explorado el segundo sub-problema P2. El valor del objetivo al solucionar P2 era 8,3, aunque la variable X2 seguía sin ofrecer un valor entero. Como estamos maximizando, podría ser que ramificando P2 en dos sub-problemas se encontrara una solución entera superior a la que hemos encontrado con el sub-problema P12. La ramificación es la siguiente: P21 = P2 + X2 3. Solución: Z21 = 8,0; X1 = 3,8 y X2 = 3 P22 = P2 + X2 4. Sin Solución. El problema P22 queda descartado por no tener una solución factible. Los problemas que aún están activos son P12 y P21 y ambos tienen el mismo valor del objetivo. Pero mientras que P12 tiene soluciones enteras, P21 sigue con soluciones fraccionadas. Por lo tanto, podemos descartar P21 ya que, si ramificáramos este problema, al añadir una nueva restricción el valor 61 del objetivo sería inferior (o igual), pero nunca superior. En otras palabras, nunca podríamos encontrar una solución mejor que la que tenemos con P12. Como P12 es la única rama activa, ya tenemos la solución óptima de nuestro problema. Si P21 hubiera dado un valor del objetivo superior a 8,0 con alguna solución fraccionada, tendríamos que seguir bifurcando este subproblema. El flujo del algoritmo se muestra en la Figura 3.1. Figura 3.1: Árbol del ABA aplicado al ejemplo En realidad, con este proceso lo que se está haciendo es seccionar en cada ramificación el espacio de soluciones para explorar si existe una solución entera. Este proceso puede ser observado en la Figura 3.2, en donde, para cada sub-problema, se muestra el segmento del espacio de soluciones explorado. El algoritmo de bifurcación y acotamiento también se utiliza para resolver los problemas de programación entera binaria.. La única diferencia es que las variables están acotadas por 0 y 1. Si en un sub-problema una variable teóricamente binaria X es igual a 0,6, éste se subdivide en dos problemas: el primero añadirá la restricción X = 0 y el segundo la restricción X = 1. P0 Z = 8,5; X1 = 2,6 X2 = 4,2 P2 P0 + X1 3 Z2 = 8,3 X1 = 3 X2 = 3,8 P1 P0 + X1 2 Z1 = 8,3 X1 = 2 X2 = 4,5 P11 P1 + X2 4 Z11 = 7,6 X1 = 2 X2 = 4 Descartado Z12 < Z11 P12 P1 + X2 5 Z12 = 8,0 X1 = 1 X2 = 5 Óptimo P21 P2 + X2 3 Z21 = 8,0 X1 = 3,8 X2 = 3 Descartado Sol. no entera P22 P1 + X2 4 Descartado Sol. no factible 62 Figura 3.2: Espacio de soluciones de los sub-problemas 3.3 Programación Entera y Solver Por suerte, hoy en día cualquier programa de ordenador para resolver problemas de programación lineal incluyen un modulo para resolver situaciones en donde una o más variables tienen que ser enteras o enteras binarias en la solución final. Este es el caso del módulo Solver incluido en la hoja de cálculo Excel de Microsoft. Supongamos que las variables de ejemplo del capítulo anterior tinen que ser enteras (ver Sección 3.5) . Cuando se introducen las restricciones, tenemos que añadir una en donde se escoge las variables en cuestión y se indica que seon enteras, seleccionando “int11” en el menú de opciones de la dirección de la restricción (ver Cuadro 3.1). En caso de que tengan que ser binarias, se escoge la opción “Bin”. 11 “Int” vinen de “integer”, que en ingles quiere decir “Entero”. X1 X2 2 4 P11 X1 X2 1 5 P12 X1 X2 3,8 3 P21 X1 X2 P22 No factible X1 X2 2 4,5 P1 X1 X2 3 3,8 P2 X1 X2 2,6 4,2 P0 63 Cuadro 3.1: Soluciones enteras con Excel 3.4 Programación Entera Binaria I: El Problema de la Mochila El problema de la mochila es un clásico de la investigación operativa. En esencia, el problema consiste en llenar una mochila con objetos con pesos diferentes y con valores también diferentes. El objetivo es la maximización del valor total de la mochila con la restricción de que el peso de ésta no puede sobrepasar un límite predeterminado. Este problema ha sido utilizado en muchas aplicaciones diferentes. Una de ellas consiste en la asignación de pacientes a una unidad (un ambulatorio, un quirófano, etc.) que tiene una capacidad límite. Cada paciente tiene asociado dos parámetros: el primero mide la gravedad del paciente respecto a los otros en términos relativos, y el segundo mide el tiempo de utilización del servicio. El problema consiste en encontrar qué pacientes podrán ser atendidos y cuales habrá que derivar a otro centro. Es evidente que en este problema el número de pacientes a ser atendidos es más elevado que la capacidad del centro. En este tipo de problemas nos encontramos con la disyuntiva de tenemos que, por un lado, dar prioridades para intentar atender el máximo de pacientes, y por el otro lado atender a aquellos que presentan más gravedad. Formulación del problema Supongamos que tenemos m pacientes a ser programados en un centro. Los parámetros que tenemos que conocer a priori son: · gi = valor cardinal de la gravedad del paciente i · ti = duración en minutos de la intervención del paciente i · T = tiempo total disponible en el centro y las variables de decisión son: 64 · Xi = 1, si se atiende al paciente i; 0, si no se le atiende. En este caso todas la variables son binarias y tendremos una para cada paciente. Una vez definidos los parámetros y las variables, podemos construir en modelo. Este modelo tiene una única restricción que, básicamente, define que el total de minutos que los pacientes atendidos en el centro consumirán no puede exceder el tiempo total disponible T. Como Xi solo puede ser igual a 0 ó 1, el tiempo total consumido por el paciente i será igual a tiXi. Si sumamos tiXi para todos los pacientes, tendremos el tiempo total consumido por ellos, que no puede ser superior a T. En términos matemáticos: El objetivo consiste en la maximización de la “gravedad total” del sistema. En otras palabras, queremos atender a aquellos pacientes más necesitados. Tenemos que observar que el problema no es tan trivial, ya que no vale ordenar los pacientes en función de la gravedad e ir llenando “la mochila” del centro hasta agotar la capacidad, porque un paciente j que presenta un nivel de gravedad gj puede tener asociado un tiempo de atención tj muy superior al tiempo conjunto de dos pacientes k y l (tj > tk + tl), que tienen una menor gravedad, pero cuya gravedad conjunta es superior a la del primero (gj < gk + gl). En este caso, sería mejor incluir a los dos pacientes k y l y no al paciente j. El objetivo vendrá definido por la función lineal siguiente: En definitiva, la formulación final del modelo será: s.a. Xi = (0,1) i = 1,..., m Este problema es fácil de resolver utilizando el algoritmo ABA ya que únicamente tiene una restricción. Supongamos ahora que algunos tratamientos son incompatibles con otros. Por ejemplo, si se trata de un quirófano, podríamos tener que si operamos al paciente i también podremos operar al paciente j porque tendremos recursos disponibles (quirófano preparado, personal adecuado), pero si no se opera a ningún paciente de tipo i entonces no se podrá operar al paciente j. Para poder introducir esta consideración tendríamos que añadir la siguiente restricción: Xi Xj Es decir, si operamos al paciente i, Xi = 1, lo que implica que Xj quedará libre para coger el valor 0 ó 1 (será el modelo quien lo decida). Por otro lado, si Xi = 0, la variable Xj será siempre igual 0, y por lo tanto el paciente j no podrá ser operado. t i X i T i m £ = å 1 Max Z gi Xi i m = = å1 t i Xi T i m £ = å 1 65 Supongamos ahora que el paciente j únicamente podrá ser operado si tanto el paciente i como el k son operados. En cualquier otro caso el paciente j no podrá ser atendido. Para formular este tipo de restricciones a veces es muy útil la utilización de la “tabla de la verdad”. En esta tabla se introduce las combinaciones de las X que son factibles. Esta tabla se representa en el Cuadro 3.2. Cuadro 3.2: Tabla de la Verdad Xi Xk Xj 0 1 0 1 0 0 1 1 0 0 0 1 La ecuación de esta restricción que tendrá que añadirse al modelo es: Xi + Xk 2 Xj Si Xi y Xk son ambas iguales a 1, Xj podrá ser igual a 0 ó 1. En cualquier otro caso, Xj siempre será igual a 0. Como hemos visto en este ejemplo, el uso de variables binarias puede ser muy útil para modelizar situaciones en donde la decisión es “hacer o no hacer”. 3.5 El Problema de Asignación El problema de asignación es otro clásico en los modelos de decisión. En esencia, consiste en asignar recursos a tareas en función de un objetivo ligado a la eficiencia del sistema. Un ejemplo típico es el de asignación de personas a turnos horarios. Otro ejemplo es el de asignar personas a máquinas, o el de asignar regiones a Centros de Atención Primaria. En este apartado se presenta el Problema de asignación como una variante del Problema de Transporte examinado en el Apartado 2.2.3. Como vimos anteriormente (apartado 1.2.3) la Compañía de Seguros Todosalud S.A. tiene Centros de Asistencia Primaria (CAPs) distribuidos en m pueblos y ciudades de una región (un CAP en cada centro urbano). Para obtener un buen funcionamiento global del servicio y poder planificar el número de visitas en función del personal previsto en cada CAP y de su dimensión, Todosalud S.A. ha decidido organizar el servicio de tal forma que todos sus asegurados tengan un CAP de referencia asignado, pero que sea éste el más cercano posible a su lugar de residencia. En la región hay m ciudades y pueblos (siendo m bastante mayor que n) y la compañía sabe cuantos asegurados tiene en cada uno de ellos. El objetivo es asignar cada una de las m ciudades a un único CAP, minimizando el coste o la distancia total. La diferencia básica entre este problema y el Problema de Transporte es que en este caso cada pueblo o ciudad (con la totalidad de sus habitantes) es asignado a un único CAP, mientras que en el otro problema podría darse lugar a que una parte de la población de una ciudad estuviera asignada a un CAP y la otra a otro diferente. A continuación examinados los parámetros y variables necesarios para la formulación. En primer lugar se definen los parámetros necesarios para formular el modelo. Sea: ß ai : número de asegurados en el centro urbano i, i = 1,...,m. 66 ß bj : número total de asegurados que el CAP j puede tener asignados como máximo, j = 1,...,n. ß cij :coste de desplazamiento entre i y j. Las variables que se utilizará son de tipo binario: ß Sea Xij =1, si el área i está asignada al CAP j; y 0 en caso contrario. Una vez definidos los parámetros y las variables, necesitamos definir las restricciones del modelo. Como en el Problema de Transporte, en esta formulación hay dos tipos de restricciones. La primera viene definida por la capacidad de atención máxima de los CAPs. El número total de asegurados asignados al CAP j no puede exceder su capacidad bj. Para un CAP determinado j, no podemos asignar las población que la que determina su capacidad máxima a1X1j + a2X2j + ... + aiXij + ... + amXmj bj Para todos los CAPs, tendremos que: a X b j n j m i i ij 1, , 1 å £ = K = El segundo grupo de restricciones tiene que considerar que hemos de asignar la totalidad de los asegurados de Todosalud SA de cada centro urbano i a un único CAP. Para cada área, tendremos que: Xi1 + Xi2 + ... + Xij + ... + Xin = 1 Es decir, una única variable asociada a cada área i puede ser igual a 1. Para todas las áreas: X i m n j ij 1 1, , 1 å = = K = Finalmente, se tiene que formular el objetivo de minimización total de la distancia o coste total del sistema. Este viene definido por: c11X11 + c12X12 + ... + c1nX1n + ... + cijXij + ... + cm1Xm1 + ... + cmnXmn que podemos re-escribir en forma compacta como: En resumen, la formulación completa del modelo es la siguiente: å å= = = m i ij ij n j min Z c X 1 1 67 a X b j n j m i i ij 1, , 1 å £ = K = X i m n j ij 1 1, , 1 å = = K = Xij = (0, 1) i = 1,...,m j = 1,...,n Se tiene que observar que este problema presenta la misma peculiaridad que el problema de Transporte. Para que el problema tenga una solución factible, el número total de asegurados no puede exceder la capacidad total de los CAPs. Es decir, existe la siguiente restricción implícita en el modelo: Si esto no se verificara, el problema no tendría solución. 3.6 Problemas de Localización de Servicios ¿Cuántas ambulancias se necesitan en una área geográfica, y dónde deberían ubicarse para asegurar un buen servicio a las llamadas por urgencias? ¿En dónde deberían localizarse las Centros de atención Primaria en una región para minimizar el tiempo de desplazamiento de los usuarios? ¿En dónde tenemos que localizar almacenes para optimizar la distribución de productos farmacéuticos en un país? Estas cuestiones, relacionadas con el diseño y la operación de los servicios de.atención y de distribución, han sido estudiadas durante los últimos 25 años por un gran número de investigadores. Los planificadores tienen que responder a preguntas como éstas cuando se enfrentan al diseño o a la reconfiguración de los servicios de urgencias médicas, de ambulatorios, de operaciones de distribución, o de redes hospitalarias. Por ejemplo, la velocidad de reacción de un sistema de emergencia a una llamada es el criterio principal para juzgar el desempeño de los servicios de emergencia. Otra medida es la habilidad del personal para lidiar efectivamente con la situación una vez llegado a la escena. La localización inicial de los servidores (parques de bomberos, garajes de ambulancias, etc.) influencia poderosamente la eficiencia de la respuesta. Esto se refleja en la gran cantidad de modelos desarrollados para ayudar a los planificadores de servicios de urgencias. El problema básico trata de localizar servicios que van a permanecer en su ubicación por un largo tiempo una vez decidida su localización. En otras palabras, su ubicación será, sino definitiva, constante durante un largo periodo de tiempo. La localización de estos servicios puede ser determinante en la evaluación de la eficiencia de su "desempeño" en la oferta del servicio en cuestión. å å = = ³ m i n j bi a j 1 1 åå= = = m i ij ij n j min Z c X 1 1 68 Efectivamente, el auge de la investigación operativa en los años sesenta provocó la aparición de un campo especifico dedicado a la localización de servicios de en regiones y en zonas urbanas. En general, estos modelos optimizan uno o varios objetivos en función de unos recursos limitados y/o criterios de cobertura y de atención. Estos modelos se pueden agrupar en tres categorías en función del objetivo principal. La primera categoría corresponde a modelos cuyo objetivo principal es la maximización de la cobertura de la población siguiendo un criterio ``estándar'' (per ejemplo, maximizar la población cubierta por el servicio de ambulancias en un tiempo máximo de 10 minutos). El segundo grupo corresponde a modelos de localización cuyo objetivo es la minimización de la distancia o tiempo medio de acceso a la población. El tercero consiste en la minimización los de costes de transporte de mercancías o de personas y de localización de centros. Entre estos modelos se han realizado diversas variaciones para intentar reflejar algunos aspectos específicos del problema de localización. Por ejemplo, hay modelos que no tan solo localizan ambulancias, sino que también determinan para cada estación cual es la combinación óptima de vehículos, materiales y recursos humanos. Otros modelos estudian el problema de la localización teniendo en cuenta el grado de congestión del servicio, intentando obtener un conjunto de localizaciones que no tan solo optimice la cobertura, sino que de alguna forma considere la situación de que un servicio está ocupado atendiendo una llamada y en su estación se produzca otra llamada (modelos de ``backup'' o servicios auxiliares). Otra línea de trabajo estudia la situación en donde la demanda de servicio tiene elementos probabilísticos en función de la hora del día. En esta sección formularemos tres modelos básicos de localización de servicios. 3.6.1 Modelos de Cobertura Los modelos de cobertura suelen fijar una distancia estándar D entre un servicio y la población usuaria. Esta distancia (o tiempo de desplazamiento) se considera como la distancia máxima entre usuario y servicio para ofrecer una atención correcta. Esta distancia estándar se utiliza como criterio básico para obtener la ubicación óptima de servicios. El Problema de Localización de Servicios con Cobertura12 El Problema de Localización de Servicios con Cobertura (PLSC), en palabras, es el siguiente: ¿Cuál es el número mínimo de centros y dónde tenemos que localizarlos para que toda la población esté cubierta dentro de la distancia estándar D? El PLSC puede ser formulado de la siguiente forma. Supongamos una red de transporte en donde existen m nodos o áreas, cada uno con una demanda (o población) determinada del servicio, y conectados entre ellos por "arcos" (carreteras, calles, etc.), cada uno de ellos con un tiempo de desplazamiento o una distancia asociados. La localización de los servicios se realiza exclusivamente en los nodos. En otras palabras, únicamente los nodos de la red son candidatos a obtener una localización de los servicios, y por otro lado, los nodos también representa los centros de demanda de los servicios. Muchas veces, en algunas aplicaciones, no todos los nodos de demanda son candidatos a obtener un centro de servicio (a veces en un nodo se encuentra un edificio de interés cultural, o simplemente no existe terreno disponible para ubicar un servicio); por ello siempre en la formulación del modelo se diferencia entre la demanda (nodos que requieren del servicio) y la oferta (nodos candidatos a recibir el servicio). En la Figura 3.3 se 12 En inglés: “Location Set Covering Problem” 69 representa ejemplo de red de 20 nodos con la cual formularemos algunos modelos de localización. Figura 3.3.: Red de 20 nodos En esta Figura, los nodos están representados por círculos y también se indican las distancias entre los nodos que están directamente conectados. El Cuadro A3.1 del anexo 3.A. contiene la matriz de distancias dij entre todos los pares de nodos (i,j) de la red. Esta matriz es fundamental en los modelos de localización. En general, esta matriz se obtiene calculando, para cada par de nodos, el “camino más corto” entre ellos, es decir, la distancias más corta que los une. Ahora es necesario conocer, para cada nodo de demanda, cuáles son las ubicaciones potenciales donde, si se abre un centro en ellas, el nodo de demanda estará cubierto dentro de la distancia estándar D. Por ejemplo, si D = 10, el centro de demanda 4 tiene, como ubicaciones potenciales de cubrirlo, los nodos 3, 4 y 7. En el Cuadro 3.3. se indican, para cada nodo, las ubicaciones potenciales de cobertura. Cuadro 3.3.: Ubicaciones potenciales de cobertura por nodo. D = 10 Nodo a Cubrir Ubicaciones Potenciales Nodo a Cubrir Ubicaciones Potenciales 1 2 3 4 5 6 7 8 9 10 1,2,8,10 1,2,3,5,8 2,3,4,5 3,4,17 2,3,5,6,8,11 5,6,7,11,12 4,6,7,9 1,2,5,8,10,11 7,9,12 1,8,10,11,14 11 12 13 14 15 16 17 18 19 20 5,6,8,10,11,13,14 6,9,12,15,16 11,13,14,16,17 10,11,13,14,17 12,15 12,13,16 13,14,17,19 18,19 17,18,19 20 Por ejemplo, si ubicamos un centro en el nodo 8, los nodos 1, 2, 5, 8, 10 y 11 estarán cubiertos, ya que él está incluido en el conjunto de ubicaciones potenciales de cada uno de estos nodos de demanda. Definamos Xj como una variable binaria (0 ó 1) que, si es igual a 1, indicará que estamos abriendo un centro en el nodo j, y que, en caso contrario (igual a 0), el nodo j estará vacío. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 16 15 17 18 19 20 9 8 5 6 8,5 7,5 6,2 11 8,7 8,2 13 7,5 12 6,8 7 10 11 11,2 12 12,2 9 6 8 10 14 13,5 10,5 10 9 8 6 13 7 6,5 9 5 11 4 5,2 7 5 9 10 70 Tendremos tantas variables como ubicaciones potenciales. Podemos utilizar estas variables para formular el modelo. Por ejemplo, tenemos que, para el nodo 4, podemos escribir la siguiente restricción: X3 + X4 + X7 1 que indica que como mínimo una de las tres variables tiene que ser igual a 1, o, en otras palabras, que para que el nodo 4 esté cubierto tenemos que abrir como mínimo un centro en 3, 4, ó 7. Si definimos Ni como el conjunto de ubicaciones potenciales que cubrirán el nodo i dentro de la distancia estándar D, (Ni = {j / dij D}, para cada nodo demanda i podemos escribir la restricción siguiente: Este conjunto de restricciones forzarán a que cada nodo esté cubierto. Ahora falta formular el objetivo. Como queremos minimizar en número de centros a ubicar, cuantas menos Xj sean igual a 1, mejor. Por lo tanto, el objetivo lo podemos formular de la siguiente forma: Si definimos m como el número total de nodos de demanda y n como el número de total de ubicaciones potenciales, la formulación final del Problema de Localización con Cobertura es: s.a. Xj = (0,1) j = 1,...,n En el archivo mlcp.xls está formulado el problema para nuestro ejemplo, y también se incluye la matriz de distancias. Se puede utilizar el módulo Solver de Excel para resolver el problema con distancias estándar diferentes. En el Cuadro 3.4 se presentan algunos resultados para coberturas diferentes: Cuadro 3.4: Resultados con diferentes coberturas Distancia Estándar D Número mínimo De Centros Ubicaciones Finales 15 12 11 10 9 8 3 4 5 6 8 9 8,9,19 3,8,15,17 3,10,12,18,20 4,8,12,17,18,20 4,8,12,15,17,18,19,20 4,5,8,9,13,15,18,19,20 X i j j Ni ³ = = å 1 1,...,20 Min Z X j j = = å 1 20 Min Z X j j 1 n = = å X j i m j Ni ³ = = å 1 1,..., 71 Este problema suele tener a veces bastante soluciones óptimas alternativas. El PLSC puede modificarse para considerar, por ejemplo, la minimización del presupuesto. Si cada nodo potencial de obtener un servicio tiene asociado un coste fijo de apertura fj , podemos reformular el objetivo del problema de la siguiente forma: En este caso estamos minimizando el coste total de apertura de centros. Es muy improbable que aparezcan soluciones alternativas óptimas. En este problema, la fijación de la distancia estándar D es determinante de los resultados, por lo que hay ir con mucho cuidado al determinarla. Supongamos que, en nuestro ejemplo, la distancia estándar está fijada en 10. Al resolver el PLSC encontramos que la solución óptima es igual a 6 centros, ubicados en los nodos 4, 8, 12, 17, 18 y 20. Pero el sistema no tiene suficiente presupuesto para construir 6 centros. Únicamente tiene un presupuesto para 4 centros. Como el número mínimo de centros para cubrir la población es igual a 6, con 4 centros no podremos cubrirla por completo. En este caso, si fijamos en número de centros, podemos intentar encontrar sus ubicaciones de forma a maximizar la cobertura de la población. Este problema es conocido como el Problema de Localización con Cobertura Máxima (PLCM). El Problema de Localización con Cobertura Máxima (PLCM). Este problema puede ser descrito de la siguiente forma: ¿Dónde tenemos que localizar p centros para maximizar la cobertura de la población dentro de la distancia estándar D? Este problema es una extensión del PLSC. Para formular el modelo tenemos que añadir un nuevo grupo de variables binarias Yi, que denominaremos de cobertura, que serán igual a 1 si el nodo i está cubierto por un centro dentro de la distancia estándar D; e igual a 0 si no lo está. Como en la solución final algunos nodos de demanda quedarán descubiertos (ya que no tenemos suficientes centros para cubrir toda la población), algunas de estas variables serán 0. Cojamos de nuevo como ejemplo el nodo 4. Para que el esté cubierto se tiene que localizar como mínimo un centro en uno de los nodos 3, 4 o 7. Ahora tendremos que escribir la restricción siguiente: X3 + X4 + X7 Y4 Si como mínimo una de las variables de localización X es igual a 1, la variable Y4 podrá ser también igual a 1, y por lo tanto el nodo de demanda 4 estará cubierto. Si, en cambio, todas las variables X de la restricción son iguales a 0, la variable de cobertura Y4 será forzosamente igual a 0 y el nodo 4 no estará cubierto. Para cada nodo de demanda escribiremos la siguiente restricción: Otra restricción es la limitación del número de centros a localizar. En nuestro ejemplo hemos fijado el número de centros en 4. Esto quiere decir que únicamente cuatro variables de ubicación Xj podrán ser igual a 1. LA restricción, en términos matemáticos, es: Min Z f j X j j 1 20 = = å X Y i j i j Ni ³ = = å 1,...,20 72 Finalmente, el objetivo consiste en la maximización de la cobertura de la población de la región en cuestión. En el modelo PLSC todos los nodos quedaban cubiertos, por lo que no hacía falta preocuparse de la población. En el nuevo modelo, como algunos nodos de demanda quedarán descubiertos, tenemos que considerar la población de cada uno de ellos. El modelo intentará cubrir, en primer lugar, aquellos nodos con mayor población (o demanda). El objetivo se formula matemáticamente de la forma siguiente: En donde ai es un parámetro que denota el volumen de demanda (en nuestro ejemplo, población) asociada al nodo i. Contra más Yi sean igual a 1, más cobertura obtendremos. La formulación final del problema es: s.a. Xj, Yi = (0,1) j = 1,...,n i = 1,...,m En el archivo plcm.xls está formulado el problema de máxima cobertura para nuestro ejemplo, con D = 10 y p = 4. Las poblaciones de cada uno de los nodos se indica en el Cuadro 3A.1 del anexo. El resultado final se presenta en el Cuadro 3.5. Cuadro 3.5: Resultados del PLCM en el ejemplo Número de Centros Distancia estándar 4 10 Población Cubierta Ubicaciones Nodos no cubiertos 88% 4,8,12,17 18,20 Vemos que con 4 centros pasamos a cubrir el 88% de la población. En otras palabras, mientras que el número mínimo de centros necesarios para cubrir toda la población era igual a 6, con 4 centros cubrimos el 88% de ella y únicamente dos nodos no están cubiertos. 3.6.2 Modelo de Localización P-Mediano El modelo P-Mediano de localización (MPML) tienen que objetivo principal la minimización de la distancia media entre los nodos de demanda y los centros. El problema, en palabras, es el siguiente: ¿Dónde se ubicarán p centros de forma a minimizar la distancia media entre éstos y los nodos de demanda? X j j = = å 4 1 20 Max Z aiYi i = = å1 20 Max Z aiYi i m = = å1 X p j j n = = å 1 X j Yi i m j Ni ³ = = å 1,..., 73 Para formular este problema necesitamos conocer, como en el problema anterior, la matriz de distancias y la demanda que se genera en cada uno de los nodos. En este caso no se utiliza una distancia estándar. Las variables de modelo serán: · Xij = 1, si el nodo de demanda i es atendido por el centro ubicado en j; 0, en caso contrario · Wj = 1; si ubicamos un centro en j; 0, en caso contrario A continuación definimos las restricciones. En primer lugar, un nodo de demanda tiene que estar asignado a un único centro. Para forzar esta situación, para cada nodo de demanda i, la suma de las Xij con respecto a l índice j tiene que ser igual a 1. En términos matemáticos: Ahora bien, el nodo i no podrá ser asignado al nodo j si no existe un centro en j. Como la variable Wj indica si existe un centro en j o no, tendremos que: Si no existe ningún centro en j, Wj = 0, lo que implica que ningún nodo de demanda podrá ser asignado a j. En este caso, todas las variables Xij serán igual a 0. Finalmente, tenemos que fijar el número de centros a abrir. La siguiente restricción tiene que ser añadida al modelo: Finalmente, tenemos que formular el objetivo de distancia media. Tenemos que aidij será la distancia total entre la población (o demanda) en i y el centro en j. Si sumamos aidij para todas las i tendremos toda la demanda asignada a j. Luego tenemos que sumar para todas las j, y tendremos la distancia total del sistema. El objetivo es: Una vez obtenido el valor de Z, tenemos que dividirlo por la demanda (o población) total del sistema para obtener la distancia media entre la demanda y los centros. En resumen, la formulación del problema P-mediano es: s.a. Xij i m j n = = = å 1 1 1 ,..., X W i m j n ij £ j = 1,..., = 1,..., W p j j n = = å1 Min Z ai d X j n ij i m = ij = = åå 1 1 Min Z ai d X j n ij i m = ij = = åå1 1 Xij i m j n = = = å 1 1 1 ,..., Xij £ Wj i = 1,...,m j = 1,...,n W p j j n = = å1 74 Esta formulación suele tener muchas variables y restricciones. Por ejemplo, si m=n=100 tendremos 10.100 variables y 10.101 restricciones. Existen varias formas de reducir el número de variables y restricciones, pero aún así este modelo suele ser bastante grande. Se han desarrollado varios métodos heurísticos para poder encontrar soluciones del MPML. Una excelente referencia se encuentra en el libro de Daskin (1995). 3.6.3 El Problema de Localización de Plantas con Capacidad En muchos casos el objetivo principal es encontrar una serie de ubicaciones que minimicen tanto los costes de transporte como el coste de apertura de los centros. El modelo de Localización de Plantas con Capacidad (MLPC) se describe de la forma siguiente: ¿Cuántos centros se necesitan y dónde hay que ubicarlos para minimizar los costes totales del servicio sin exceder su capacidad? Para poder formular el modelo, necesitamos los siguientes parámetros: · ai = demanda en el nodo i · dij = distancia entre el nodo de demanda i y el nodo de ubicación potencial j. · fj = coste de apertura de un centro en el nodo j · cij = coste de transporte por unidad de demanda y unidad de distancia · Cj = capacidad de un centro si se ubica en j y las variables que a continuación se describen: · Xij = demanda del nodo i atendida por el centro en j · Wj = 1, si ubicamos un centro en j; 0, en caso contrario. Un vez definidos los parámetros y las variables del modelo, se tienen que formular las restricciones. En primer lugar, no podemos exceder la capacidad de cada centro. Para que esto se cumpla, la demanda asignada a cada uno de los centros potenciales j no puede exceder su capacidad. En términos matemáticos: Por otro lado, la demanda de cada uno de los nodos tiene que ser atendida. Es decir: Finalmente, un nodo de demanda i no puede ser servido por j si no existe un centro en j. Matemáticamente, en donde M es un parámetro con un valor muy elevado (por ejemplo, 1010). Si Wj es igual a 0, forzosamente todas las Xij serán igual a 0. En caso contrario, si Wj es igual a 1, las variables Xij podrán tomar cualquier valor, ya que no tendrán ninguna cota superior. X C j n ij j i m £ = = å 1 1 ,..., Xij ai i m j n = = = å 1 1 ,..., X MW j n ij i m j = å £ = 1 1,..., 75 Ahora falta definir el objetivo. Por un lado tenemos los costes de apertura, o costes fijos. Por otro lado, tenemos que minimizar los costes de distribución o transporte. Estos dos tipos de costes juegan un papel opuesto en relación al número de centros a ubicar. Mientras que, contra más centros abramos, menor será el coste de transporte al reducirse las distancias, por otro lado los costes de apertura aumentarán considerablemente. El modelo buscará el número de centros que minimice los costes totales. El objetivo se define matemáticamente como: El primer término de del lado derecho de la ecuación refleja los costes de apertura. El segundo término formula los costes totales de transporte. En resumen, el modelo se formula de la siguiente forma: s.a. Este problema es de programación lineal entera mixta, ya que mientras que algunas de las variables son enteras (en este caso las Wj son binarias), otras son continuas (las Xij pueden tomar cualquier valor no-negativo). Este problema es muy utilizado para ubicar plantas de producción y depósitos de distribución. Existe un sinfín de problemas de localización basados en este modelo. 3.7 Conclusiones En este capítulo hemos examinado como formular algunos problemas de programación entera mixta y binaria y como resolverlos con el algoritmo de bifurcación y acotamiento. Mientras que algunos problemas son relativamente fáciles de resolver con este algoritmo, otros pueden ser extremadamente “caros” en términos de tiempo de ordenador, ya que la ramificación es exponencial, y en cada rama del árbol del algoritmo tenemos que resolver un programa lineal. La mayoría de programas lineales incorporan un modulo de programación entera por lo que no hay que realizar el algoritmo; el propio programa se encarga del proceso. En la hoja de cálculo Excel, para resolver programas con algunas o todas las variables enteras, basta declararlas como Min Z f jWj cijdij Xij j n i m j n = + = = = å åå 1 1 1 Min Z f jWj cijdij Xij j n i m j n = + = = = å åå 1 1 1 X C j n ij j i m £ = = å 1 1 ,..., Xij ai i m j n = = = å 1 1 ,..., X MW j n ij i m j = å £ = 1 1,..., X W i m j n ij ³ 0; j = (0,1) = 1,..., = 1,..., 76 enteras o binarias (si procede) dentro de la ventana de restricciones (ver archivos de ejemplo plcm.xls y plsc.xls). 77 3.8 Problemas 3.1 Resolver el problema siguiente con el algoritmo de bifurcación y acotamiento: Max Z = X1 + 2X2 s.a. 2.1X1 + 8X2 15,5 X1 + 1,2X2 5,6 X1, X2 0 Programar el problema en la hoja de cálculo Excel y resolverlo. 3.2 Resolver el problema siguiente con el algoritmo de bifurcación y acotamiento. En cada iteración del algoritmo, utilizar la hoja de calculo Excel para resolver el sub-problema correspondiente. Max Z = 4X1 + X2 + X3 s.a. X1 + 4X2 + X3 11,5 5X1 - 2X2 + 4X3 10,2 2,1X1 + 3X2 + 3X3 20 X1, X2 , X3 0 3.3 Resolver el problema siguiente con el algoritmo de bifurcación y acotamiento. En cada iteración del algoritmo, utilizar la hoja de calculo Excel para resolver el sub-problema correspondiente. Max Z = X1 - X2 + X3 s.a. X1 + 4X2 20 X1 + X2 + X3 > 10 -2X1 + 4X2 + 2X3 60 2X1 + 3X2 + X3 50 X1, X2 , X3 0 3.4. Una red de atención sanitaria tiene m ambulatorios y que atienden a n pueblos de una región rural. La gerencia no está satisfecha con la asignación actual entre pueblos y ambulatorios, y quiere reorganizar la asignación de forma a minimizar los costes de desplazamiento totales del sistema, siempre que no se exceda la capacidad de cada uno de los centros. Sean cij el coste de transporte entre el pueblo i y el ambulatorio j, ai la población del pueblo i, y aj la capacidad del ambulatorio j Formular un modelo de programación entera que asigne cada pueblo a un único ambulatorio sin exceder la capacidad. 3.5. Una ciudad quiere rediseñar su sistema de ambulancias y mejorar el servicio, sobre todo en lo que se refiere a tiempos de atención. Para ello ha decidido reubicar los garajes. Se tiene la siguiente información: la ciudad está dividida en 20 áreas. En el Cuadro A3.1 del anexo se presentan los tiempos de desplazamiento entre todas las áreas y la frecuencia de llamadas por semana en cada una de ellas 78 (archivo pob.). Por ahora se dispone de 4 ambulancias ubicadas actualmente en los nodos 5, 7, 16 y 17, y no se pueden comprar más. El alcalde considera que se tendría que maximizar la cobertura en un tiempo de 10 minutos, pero también que toda la ciudad tendría que estar cubierta en 15 minutos. Formular el problema y resolverlo con ayuda del ordenador. ¿En cuánto a mejorado la cobertura respecto a la situación inicial? Suponer ahora que solo se tiene presupuesto para reubicar dos de las cuatro ambulancias. Reformular el problema para que el modelo escoja cuales se tienen que reubicar. 79 3.9 Anexo: Datos de la red de 20 nodos Cuadro 3A.1.: Población de cada nodo y distancias entre nodos 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Pob. 34 65 99 85 95 75 32 34 28 53 52 21 39 98 69 67 22 54 76 90 1 0,0 5,0 12,5 21,2 13,0 18,2 23,5 8,0 27,5 9,0 15,0 25,0 21,5 18,0 35,0 28,5 27,0 40,5 37,0 32,0 2 5,0 0,0 7,5 16,2 8,5 13,7 18,5 6,0 22,5 12,0 13,0 20,5 19,5 21,0 30,5 26,5 27,5 38,5 37,5 35,0 3 12,5 7,5 0,0 8,7 6,2 11,4 11,0 11,2 15,0 17,2 15,2 18,2 21,7 25,2 27,0 27,2 29,7 38,0 39,4 39,2 4 21,2 16,2 8,7 0,0 14,9 15,7 8,2 19,9 12,2 25,9 20,7 19,2 27,2 30,7 24,2 28,2 35,2 35,2 40,4 44,7 5 13,0 8,5 6,2 14,9 0,0 5,2 12,7 5,0 16,7 11,0 9,0 12,0 15,5 19,0 22,0 21,0 23,5 33,0 33,2 33,0 6 18,2 13,7 11,4 15,7 5,2 0,0 7,5 10,2 11,5 13,0 5,0 6,8 11,5 15,0 16,8 15,8 19,5 27,8 28,0 29,0 7 23,5 18,5 11,0 8,2 12,7 7,5 0,0 17,7 4,0 20,5 12,5 11,0 19,0 22,5 16,0 20,0 27,0 27,0 32,2 36,5 8 8,0 6,0 11,2 19,9 5,0 10,2 17,7 0,0 21,7 6,0 7,0 17,0 13,5 15,0 27,0 20,5 21,5 32,5 31,5 29,0 9 27,5 22,5 15,0 12,2 16,7 11,5 4,0 21,7 0,0 24,5 16,5 7,0 18,0 24,0 12,0 16,0 26,0 23,0 28,2 36,5 10 9,0 12,0 17,2 25,9 11,0 13,0 20,5 6,0 24,5 0,0 8,0 23,0 14,5 9,0 33,0 21,5 18,0 33,5 28,0 23,0 11 15,0 13,0 15,2 20,7 9,0 5,0 12,5 7,0 16,5 8,0 0,0 11,8 6,5 10,0 21,8 13,5 14,5 25,5 24,5 24,0 12 25,0 20,5 18,2 19,2 12,0 6,8 11,0 17,0 7,0 23,0 11,8 0,0 11,0 17,0 10,0 9,0 19,0 21,0 21,2 29,5 13 21,5 19,5 21,7 27,2 15,5 11,5 19,0 13,5 18,0 14,5 6,5 11,0 0,0 6,0 18,2 7,0 8,0 19,0 18,0 18,5 14 18,0 21,0 25,2 30,7 19,0 15,0 22,5 15,0 24,0 9,0 10,0 17,0 6,0 0,0 24,2 13,0 9,0 25,0 19,0 14,0 15 35,0 30,5 27,0 24,2 22,0 16,8 16,0 27,0 12,0 33,0 21,8 10,0 18,2 24,2 0,0 11,2 24,2 11,0 21,0 34,5 16 28,5 26,5 27,2 28,2 21,0 15,8 20,0 20,5 16,0 21,5 13,5 9,0 7,0 13,0 11,2 0,0 13,0 12,0 12,2 23,5 17 27,0 27,5 29,7 35,2 23,5 19,5 27,0 21,5 26,0 18,0 14,5 19,0 8,0 9,0 24,2 13,0 0,0 20,0 10,0 10,5 18 40,5 38,5 38,0 35,2 33,0 27,8 27,0 32,5 23,0 33,5 25,5 21,0 19,0 25,0 11,0 12,0 20,0 0,0 10,0 23,5 19 37,0 37,5 39,4 40,4 33,2 28,0 32,2 31,5 28,2 28,0 24,5 21,2 18,0 19,0 21,0 12,2 10,0 10,0 0,0 13,5 20 32,0 35,0 39,2 44,7 33,0 29,0 36,5 29,0 36,5 23,0 24,0 29,5 18,5 14,0 34,5 23,5 10,5 23,5 13,5 0,0 80 81 4 Programación Multiobjetivo 4.1 Introducción Como bien cita Romero (1993), el gran economista de la escuela de Chicago Milton Friedman, en el primer capítulo de su libro “Teoría de los Precios” (1962), enfatiza el carácter multicriterio de los problemas económicos al considerar como económicos sólo los problemas en los que subyace la existencia de criterios múltiples. Por el contrario, cuando el problema de decisión se establece en base a un solo criterio, nos encontramos ante lo que Friedman llama un problema tecnológico, en el que no existen problemas de elección propiamente dichos. Efectivamente, en muchas ocasiones, el tomador de decisiones se enfrenta a situaciones en donde existen varios objetivos a maximizar o minimizar. Por ejemplo, en una organización sanitaria, por un lado se puede querer maximizar una medida del bienestar de la población y por el otro minimizar los costes de implantación del servicio. O una empresa farmacéutica puede querer maximizar beneficios, aumentar cuota de mercado, aumentar la tasa de retorno y minimizar el volumen de stocks. Cuando tenemos más de un objetivo en un problema, podemos utilizar la programación multiobjetivo. En este caso, como la optimización simultánea de todos los objetivos es normalmente imposible, - ya que en la vida real entre los objetivos que pretende optimizar un centro decisor suele existir un cierto grado de conflicto- el enfoque multiobjetivo , en vez de intentar determinar un no existente óptimo, pretende establecer el conjunto de soluciones eficientes o Pareto óptimas. 4.2 Espacio de Decisiones y Espacio de Objetivos Supongamos el programa lineal bicriterio siguiente: Max Z1 = 2X1 - X2 Max Z2 = -X1 + 5X2 s.a. X1 + X2 8 - X1 + 2X2 7 X1 6 X2 4 X1, X2 0 El conjunto de restricciones sigue formando, como en el caso monocriterio, una región factible convexa, que nos indica todas las combinaciones de las variables de decisión X1 y X2 que cumplen todas las restricciones del problema. Este conjunto convexo es conocido como el espacio de decisiones. Los puntos extremos también pertenecen al espacio de decisiones. Como explicamos en el capítulo 3, el valor óptimo del objetivo siempre corresponderá al valor de las variables en uno de estos puntos extremos. En el cuadro 4.1 se presentan los valores de las variables y de los objetivos en cada uno de los puntos extremos del ejemplo. 82 Cuadro 4.1: Valores de las variables y objetivos en los puntos extremos Puntos Extremos X1 X2 Z1 Z2 A B C D E F 0 0 1 4 6 6 0 3 4 4 2 0 0 -3 -2 4 10 12 0 15 19 16 4 -6 En la Figura 4.1 tenemos dibujado el espacio de decisiones del ejemplo. Los puntos A, B, C D y F corresponden a los puntos extremos del problema, y el punto G es una solución factible. . Como para cada valor de X1 y de X2 podemos encontrar el valor de los objetivos, podemos también representar en un gráfico los valores de los objetivos que corresponden a cada uno de estos valores de X1 y X2 que son factibles para el problema. En la Figura 5.2 se representa la región factible en el espacio de objetivos. Por ejemplo, cada punto extremo en el espacio de decisiones corresponde también a un punto extremo en el espacio de objetivos. Si estuvieramos únicamente maximizando el primer objetivo, éste sería igual a 10 y X1 = 6 y X2 = 2, que corresponde a punto extremo E. En este punto extremo el valor del segundo objetivo no es óptimo, ya que es igual a 4, mientras que el valor óptimo se alcanza en el punto extremo C, y es igual a 19. Por lo tanto, una solución óptima para uno de los objetivos nos da una solución muy deficiente para el segundo. Pero, por otro lado, tenemos que encontrar una solución única de las variables de decisión que a su vez determinará el valor de los dos objetivos. En este caso, tenemos que encontrar una solución de compromiso para los dos objetivos. Esta solución puede no dar un resultado óptimo de los objetivos, pero tiene que ser una solución satisfactoria para ambos. Para ello se define el concepto de no-inferioridad o de eficiencia. Diremos que una solución es no-inferior (o eficiente) si no existe ninguna otra solución del problema que de un valor mejor de los objetivos, o que mejore un objetivo dejando al otro igual. Observemos las Figuras 4.1 y 4.2. El punto H sería el punto ideal, ya que es donde ambos objetivos alcanzan su valor óptimo. Sin embargo, este punto no es factible. El punto G es factible pero es un punto inferior porque podemos encontrar otro punto factible que da un mayor valor de ambos objetivos (por ejemplo, el punto extremo D). Por otro lado, el punto D es noinferior, porque no podemos encontrar otra solución factible del problema sin tener que empeorar uno de los objetivos. Recordemos que estamos maximizando ambos objetivos. Ahora podemos definir el conjunto de puntos no-inferiores. Gráficamente, este conjunto corresponde al borde de la región factible en el espacio de decisiones entre los puntos extremos C-D-E-F. Cualquier valor de Z1 y de Z2 situado sobre esta frontera corresponde a un punto noinferior. Cualquier punto situado en el interior del conjunto será una solución inferior, y por lo tanto no nos interesa considerarla. 83 Figura 4.1: Espacio de decisiones Figura 4.2: Espacio de objetivos Una vez obtenido el conjunto de puntos no-inferiores en el espacio de objetivos, tenemos que escoger uno que nos dé la solución final del problema. Aquí es donde entran las consideraciones subjetivas del decisor ya que, en muchos casos, las unidades de los objetivos son diferentes, El decisor comparará los diferentes puntos eficientes y los intercambios que se producen al pasar de un punto no-inferior a otro punto. En otras palabras, al pasar del punto D al punto E en nuestro ejemplo, el decisor valorará la diferencia entre el beneficio adicional que obtiene al aumentar Z1 con la reducción del valor de Z2. Esta es una de las grandes ventajas de la programación multiobjetivo, ya que ofrece al decisor diferentes soluciones alternativas eficientes. El decisor escogerá aquella que crea mejor y se puede apoyar en otros métodos para poder discriminar entre las diferentes soluciones. Hasta ahora hemos examinado el problema de maximización de dos objetivos. Pero en muchas situaciones tenemos que maximizar un objetivo y minimizar el otro, o minimizar los dos X1 + X2 8 X2 4 X1 6 - X1 + X2 A B C D E F X1 X2 Región factible en el espacio de decisiones G A B C D E F Z1 Z2 Región factible en el espacio de objetivos Puntos no-inferiores G Punto ideal H 84 objetivos. En este caso, la frontera de eficiencia adopta formas diferentes en función de la característica de los objetivos. En la Figura 4.3 se muestran estas formas diferentes. Figura 4.3: Fronteras de eficiencia 4.3 Métodos de Resolución Existen dos métodos clásicos para poder generar las soluciones no-inferiores de un problema multiobjetivo: el método de los pesos y el método de las restricciones. Ambos métodos intentan generar todos los puntos no inferiores del espacio de objetivos, si bien que, una vez aplicados, no garantizan la obtención de todos ellos. 4.3.1 El Método de la restricción El método de la restricción consiste básicamente en la transformación del problema multiobjetivo en un problema con un único objetivo a maximizar o minimizar, para poder así utilizar los métodos de resolución clásicos como el Simplex. En esencia, todos los objetivos del problema, menos uno, se introducen en el conjunto de restricciones fijando arbitrariamente el lado derecho de cada nueva restricción (una por objetivo) Marglin (1967) demostró que la solución de este nuevo problema también da una solución eficiente. El procedimiento paso a paso es el siguiente para un problema bi-objetivo en donde los dos objetivos son de maximización: En primer lugar, solucionamos el problema con el primer objetivo Z1 y, una vez obtenido el valor de las variables de decisión, calculamos el valor del segundo objetivo Z2 . A continuación, solucionamos el problema con el segundo objetivo Z2 y una vez obtenido el valor de las variables de decisión, calculamos el valor del primer objetivo Z1 . Por ahora ya tenemos dos puntos eficientes del espacio de objetivos. El siguiente paso es escoger una de las funciones objetivo (por ejemplo, escogemos Z2) y ponerla como restricción. Supongamos que L2 corresponde al valor de Z2 cuando maximizamos Z1 . Si añadimos la restricción Z2 L2 y solucionamos el problema, volveríamos a obtener la misma solución para Z1 . Pero si añadimos la siguiente restricción Z2 L2 + º, en donde º es un valor positivo relativamente pequeño, y Max Max Min Max Max Min Max Min 85 solucionamos el problema, es posible que la nueva solución de Z1 sea inferior o igual, pero obviamente nunca superior, ya que al añadir una nueva restricción, estamos reduciendo el espacio de decisiones factible. Por lo tanto, a medida que vamos incrementando el valor de º y resolviendo nuevas instancias del problema, vamos generando nuevas soluciones de Z1 . El proceso se para cuando el lado derecho de la restricción, L2 + º, alcanza el valor óptimo de Z2. El problema reside en encontrar el valor de º adecuado para poder generar el máximo número de puntos eficientes en el espacio de objetivos. En otras palabras, se trata de encontrar el número adecuado de problemas lineales a resolver. A continuación vamos a exponer como se resuelve el ejemplo multiobjetivo de este capítulo. El modelo original es el siguiente: Max Z1 = 2X1 - X2 Max Z2 = -X1 + 5X2 s.a. X1 + X2 8 - X1 + 2X2 7 X1 6 X2 4 X1, X2 0 Si resolvemos el problema únicamente con el primer objetivo, Z1 , tendremos que la solución de las variables de decisión correspondiente es X1, = 6 , X2 = 0, Z1 = 12 y, Z2 = -6, que corresponde al punto extremo E. Por el contrario, si resolvemos el problema únicamente con el segundo objetivo, Z2 , tendremos que la solución de las variables de decisión correspondiente será X1, = 1 , X2 = 4, Z1 = -2 y, Z2 = 19, correspondiente al punto extremo D. Ya tenemos dos punto extremos eficientes. Ahora se trata de generar otros puntos extremos eficientes del problema. Siguiendo lo expuesto anteriormente, introducimos la ecuación del segundo objetivo como restricción adicional del modelo, con el lado derecho igual a –6+ º, de la siguiente forma: -X1+ X2 -6+ º que, multiplicando ambos lados por –1, es equivalente a: X1 - X2 6- º Supongamos ahora que vamos aumentando arbitrariamente el valor de º en cinco unidades (º = 5,10,15,20,..) hasta llegar a º = 25, ya que en este punto el lado derecho será igual al valor óptimo de Z2 (19). Para cada valor de º resolvemos el problema utilizando el método Simplex. En el Cuadro 4.2 se exponen los resultados: 86 Cuadro 4.2: Resultados del método de la restricción, ejemplo 4.2 å 6- å X1 X2 Z1 Z2 Puntos de la frontera 0 5 10 15 20 25 6 1 -4 -9 -14 -19 6 6 6 5,7 4,3 1 0 1 2 2,8 3,7 4 12 11 10 7,5 5 -2 -6 1 4 9 14 19 F T E U V C Como podemos ver en esta tabla, a medida que incrementamos el valor de º, el valor del primer objetivo se va reduciendo debido a la nueva restricción, que cada vez más acota el espacio factible de decisiones. Por otro lado, como es de esperar, el segundo objetivo aumenta al incrementar º, hasta alcanzar su valor óptimo cuando incluimos la restricción X1 - X2 -25, que es equivalente a -X1 + X2 25. La pregunta que a continuación nos hacemos es: ¿hemos escogido unos valores aceptables de º? O, en otras palabras, ¿hemos generado todos los puntos extremos eficientes en el espacio de objetivos? La respuesta, en este caso, es negativa. Esto lo podemos observar en la Figura 4.4. Como podemos ver, hemos generado todos los puntos extremos que conocíamos anteriormente, excepto el punto D. Esto es debido a que el incremento de º aplicado al lado derecho de la restricción cuando estábamos en el punto V ha sido superior al valor del segundo objetivo en el punto D. Efectivamente, en el punto V, Z2 = 14 y al aumentar º en cinco unidades, estábamos acotando por debajo en 19 la restricción correspondiente al segundo objetivo. En este caso, nunca podríamos encontrar el valor de Z2 correspondiente al punto D. Figura 4.4: Puntos eficientes del ejemplo 4.2 Como hemos visto, el método de la restricción no garantiza la obtención de todos los puntos extremos en el espacio de objetivos. Es importante escoger valores de º adecuados para poder generar el máximo de puntos eficientes posibles. Puntos no-inferiores A B C D E F Z1 Z2 Solución eficiente no V encontrada U T 87 Si el objetivo que escogemos para incluirlo en el conjunto de restricciones es de minimización, tendremos que cambiar la dirección de la desigualdad. En este caso tendremos que acotar la ecuación de la siguiente forma: Z2 L- º. 4.3.2 El Método de los Pesos El método de los pesos es otro procedimiento similar al de la restricción para generar los puntos eficientes del espacio de objetivos. También se trata de transformar el programa multiobjetivo en un programa con un único objetivo para poder utilizar el método Simplex y generar así soluciones eficientes. En este caso, básicamente se forma un único objetivo sumando los dos objetivos del modelo ponderados por unos pesos relativos. Para obtener diferentes puntos eficientes estos pesos relativos se van modificando. En cada modificación se resuelve el problema con el nuevo objetivo resultante. Volvamos al ejemplo de la sección anterior. Los objetivos son los siguientes: Max Z1 = 2X1 - X2 Max Z2 = -X1 + 5X2 Ahora tenemos que formar un único objetivo. Si definimos w1 y w2 como los pesos asociados al primer y segundo objetivo respectivamente, podemos escribir el nuevo objetivo de la siguiente forma: Max Z = w1Z1 + w2Z2 Si fijamos w1=1 y w2=0 estaremos resolviendo únicamente el problema con el primer objetivo. Si, al contrario, fijamos w1=0 y w2=1 encontraremos la solución del problema de maximización con el segundo objetivo exclusivamente. Si fijamos valore intermedios, iremos obteniendo soluciones intermedias eficientes. Esto es debido a que, al cambiar los pesos relativos, estamos modificando la pendiente del nuevo objetivo, y podemos ir encontrando puntos extremos diferentes en el espacio de decisiones. Una vez obtenida la solución de las variables de decisión, podemos calcular el valor de cada uno de los objetivos. Como la nueva función objetivo también encuentra su máximo en un punto extremo (propiedad básica que hemos visto en el capítulo de métodos de solución), los puntos obtenidos en el espacio de objetivos también serán eficientes. A continuación resolveremos nuestro ejemplo con el método de los pesos. En primer lugar formamos la nueva función objetivo: Max Z = w1(2X1 – X2)+ w2(-X1 + 5X2) que es equivalente a: Max Z = (2w1 – w2) X1 + (-w1 + 5w2) X2 sujeto al conjunto de restricciones original. Ahora se trata de ir fijando valores a los pesos arbitrariamente para ir encontrando soluciones diferentes del problema. En el Cuadro 4.5 se presentan los resultados obtenidos. Como podemos ver, a medida que aumentamos el valor de w2 y reducimos el valor de w1 vamos dando más importancia al segundo objetivo en detrimento del primero. Los valores obtenidos para los objetivos son eficientes, como podemos observar en la Figura 4.5, si bien que no hemos 88 conseguido generar todos los puntos eficientes del espacio de objetivos. Como en el método anterior, el procedimiento de los pesos no garantiza la obtención de todos los puntos eficientes. Cuadro 4.5: Resultados del método de la restricción, ejemplo 4.1 W1 w2 X1 X2 Z1 Z2 Puntos de la frontera 1 0.80 0.60 0.4 0.2 0 0 0.2 0.4 0.6 0.8 1 6 6 4 4 1 1 0 2 4 4 4 4 12 10 4 4 -2 -2 -6 4 16 16 19 19 F E D D C C Un problema adicional de este método es el fijar unos valores relativos de los pesos, debido a que las unidades de los objetivos suelen ser diferentes. Por ejemplo, si por un lado estamos maximizando la cobertura de la población y por el otro maximizamos los beneficios, los pesos relativos que apliquemos tienen que reflejar la relación de estas unidades. Si la cobertura de la población en cuestión está en torno a 10.000 de personas y los beneficios entorno a 10.000.000 de pesetas, tenemos que la relación es de 1 a 1.000. En este caso, el valor del peso asociado al primer objetivo tiene que reflejar esta relación, ya que si no el segundo objetivo siempre tendrá una importancia muy superior y “pesará” siempre mucho más que el primer objetivo cuando utilizamos este método. En este caso fijaríamos valores de w1 cercanos a 1.000 y de w2 cercanos a 1. Figura 4.5: Solución obtenida con el método de los pesos Si tenemos que Z1 es de maximización y Z2 es de minimización, el nuevo objetivo sería el siguiente: Max Z = w1Z1 - w2Z2 Por el contrario, si ambos objetivos son de minimización, tendremos que minimizar el siguiente objetivo: Min Z = w1Z1 + w2Z2 A B C D E F Z1 Z2 Solución eficiente no encontrada 89 4.3.3 Extensiones de la programación multiobjetivo. Hasta ahora nos hemos ocupado del caso de problemas con dos objetivos; pero en muchas situaciones podemos tener más de dos objetivos. Los métodos de la restricción y de los pesos siguen siendo válidos, aunque dejan de ser bastante eficientes ya que el número de combinaciones que tenemos que realizar aumenta exponencialmente. Por ejemplo, si utilizamos el método de los pesos en una formulación con cuatro objetivos, tendremos que definir cuatro pesos y asignarles muchas combinaciones de valores diferentes. Lo mismo sucede con el método de la restricción. Existen otras técnicas, como la programación por metas, que permite definir prioridades entre los diferentes objetivos y así eliminar muchas combinaciones diferentes de problemas a solucionar. En la programación multiobjetivo es muy importante que exista una gran interacción entre el decisor y el problema. El decisor tiene que escoger una única solución eficiente entre muchas y es por esto que la curva de intercambio (o de eficiencia) es muy útil, porque permite realizar un análisis marginal, preguntándose cuestiones del tipo ¿si voy del punto D al punto E, ¿me compensa el aumento del primer objetivo la pérdida que pasa en el segundo? Esta interacción puede ser muy útil también en situaciones con múltiples objetivos. El decisor puede fijar a priori algunos de los pesos, o dar algún límite inferior o superior para acotar así el campo de soluciones diferentes en el espacio de objetivos. Otro problema de la programación multiobjetivo es la representación del espacio de decisiones. Como hemos visto en este cápitulo, en problemas bi-objetivos esta representación es relativamente sencilla, ya que se puede realizar en un simple gráfico cartesiano. Si pasamos a tener tres objetivos, al querer realizar una representación cartesiana, tendríamos que definir un gráfico de tres dimensiones, que complica bastante el asunto. Con más de tres objetivos, este tipo de representaciones ya no es factible. Sin embargo, existe otro tipo de representaciones que pueden ser útiles para mostrar el espacio de objetivos. En las Figura 4.6 se muestran dos de estos tipos de representaciones para tres soluciones diferentes de un problema con cinco objetivos. Figura 4.6: Representaciones gráficas de soluciones Z1 Z5 Z4 Z3 Z2 Z1 Z2 Z3 Z4 Z5 Tela de araña Barras verticales 90 4.4 Problemas 4.1 Considerar el programa lineal bi-objetivo siguiente: Max Z = -2X1 + X2 Max Z = 3X1 - 2X2 s.a. X1 + 4X2 8 X1 + X2 5 X1, X2 0 Utilizar en método gráfico para encontrar el espacio dedecisiones y el espacio de objetivos. Señalar cuales son las soluciones eficientes. 4.2 Supongamos el programa lineal bicriterio siguiente: Max Z1 = X1 + 2X2 - X3 Max Z2 = -X1 + 4X2 + X3 s.a. X1 + 4X2 + X3 12 5X1 - 2X2 + 4X3 11 2X1 + 3X2 + 3X3 20 X1, X2 , X3 0 Solucionar el problema bi-objetivo con el método de los pesos y encontrar todas las soluciones eficientes. 4.3 Utilizar el método de los pesos para solucionar el problema siguiente: Max Z1 = -X1 + X2 + 2X3 Min Z2 = X1 +5X2 + -X3 s.a. 2X1 + 8X2 - X3 20 -X1 + X2 + X3 30 2X1 + 3X2 + X3 50 X1, X2 , X3 0 91 4.4 Considerar el programa lineal bi-objetivo siguiente: Max Z = -3X1 +2X2 Max Z = X1 - 2X2 s.a. X1 + 4X2 8 3X1 + 2X2 9 2X1 + X2 8 X1 + X2 5 X1, X2 0 Solucionar el problema con el método de las restricciones 4.5 Utilizar el método de los pesos para solucionar el problema siguiente: Min Z1 = 2X1 + 3X2 - 2X3 Min Z2 = 4X1 -5X2 + 7X3 s.a. 2X1 + 8X2 - X3 20 -X1 + X2 + X3 30 2X1 + 3X2 + X3 50 7X1 - 3X2 + 2X3 54 2X1 + 9X2 - X3 37 X1, X2 , X3 0 92 93 5 Gestión de Colas En la mayoría de las organizaciones existen ejemplos de procesos que generan colas de espera. Estas colas suelen aparecer cuando un usuario, un empleado, una máquina o una unidad tiene que esperar a ser servidas debido a que la unidad de servicio, operando a plena capacidad, no puede atender temporalmente a este servicio. Un típico ejemplo de colas de espera que ilustra el problema es un viaje en avión. Primero, para comprar el billete podemos tener que hacer cola en la ventanilla correspondiente. Una vez obtenido el billete, tendremos que hacer cola para facturar el equipaje y obtener las tarjetas de embarque. Después hacemos cola para pasar por el detector de metales y finalmente esperamos en cola en la sala de embarque. Una vez dentro del avión, tendremos que esperar a que los pasajeros coloquen sus bolsas de mano para poder llegar a nuestro asiento. Cuando el avión se dirige hacia la pista de despegue puede encontrar con una cola de aviones esperando su turno para despegar. Cuando llega a su destino, puede dar unas cuantas vueltas antes de tener permiso para aterrizar. Y finalmente, cuando se asigna una puerta de desembarque para el avión, tendremos que esperar a que lleguen las maletas. En este viaje, es posible que hayamos sido miembros de por lo menos diez colas. Y eso sin considerar la experiencia en colas de la propia compañía aérea para este mismo viaje. El avión en el cual viajábamos tiene que esperar en cola para repostar, ser inspeccionado, asignarle una puerta determinada, una tripulación, una carga de comidas, una ruta específica, etc. De ahí que las compañías aéreas se preocupan de gestionar sus operaciones lo más eficientemente posible, y tratar de reducir al mínimo el tiempo de espera en realizar dichas operaciones. Los sistemas sanitarios también se enfrentan a este tipo de problemas. Las listas de espera son muy comunes en muchos procesos quirúrgicos dentro de una red sanitaria, y a nivel ambulatorial es muy común la existencia de personas esperando a ser atendidas en un Centro de Asistencia Primaria. Los sistemas de urgencias muchas veces se ven congestionados siendo el tiempo de espera crucial. Los modelos de gestión de colas intentan simular el sistema en donde puede existir congestión (y por lo tanto, colas) y generan una serie de parámetros –que veremos en este capítulo- que permiten evaluar el sistema actual y evaluar la realización de modificaciones en el servicio en cuestión. 5.1 Descripción de un sistema de colas Un sistema de colas tiene dos componentes básicos: la cola y el mecanismo de servicio. En la figura 5.1 se presenta un esquema de una cola simple. Figura 5.1: Esquema de Cola Simple Pueden existir varias configuraciones de colas más complejas. En la Figura 5.2 se exponen otros tipos de configuraciones de sistemas de colas. Sistema de colas Servidor (mecanismo de servicio) Cola de espera Llegadas 94 Figura 5.2: Configuraciones de colas Sistema de colas en paralelo Sistema de colas en serie Sistema complejo de colas El proceso básico en la mayoría de los sistemas de colas es el siguiente. Los clientes que vienen a procurar un determinado servicio se generan a través del tiempo en una fuente de entrada. Estos clientes entran dentro del sistema y se unen a una cola. En un determinado momento, se selecciona uno de los clientes para poder proporcionarle el servicio en cuestión, mediante lo que se denomina la disciplina de servicio. Esta disciplina es la que rige el mecanismo de atención. Una vez seleccionado el cliente, este es atendido por el mecanismo de servicio. Una vez terminado el servicio, el cliente sale del sistema. En general, un sistema de colas tiene una población potencial infinita. Es decir, que el tamaño de la cola es muy pequeño respecto al potencial de usuarios del sistema. Por ejemplo, un ambulatorio de urgencias en general cubre una región con población grande comparado con las posibles urgencias que se puedan generar. Ahora bien, existen casos en donde la población es finita respecto del tamaño de la cola. Esto puede suceder en la farmacia de un hospital, en donde la población potencial la forma las enfermeras y ATS. En un momento dado puede formarse una cola considerable. Como los cálculos son mucho más sencillos para el caso infinito, esta suposición se emplea casi siempre. Otro factor a tener en cuenta es el patrón estadístico mediante el cual se generan los clientes a través del tiempo. La suposición normal es que el proceso se genere siguiendo un proceso de Poisson, que veremos más adelante en este capítulo. Si el proceso de llegada es Poisson, el tiempo entre cada una de las llegadas sigue una distribución exponencial. Otro factor importante a tener en cuenta en un sistema de colas es la “fuga” de algún cliente. Al modelizar la cola hay que considerar si una persona que lleva dentro de la cola un rato, desiste de ser atendida, cansada de esperar, abandonando la cola. 95 Como hemos mencionado anteriormente, la disciplina de la cola rige el sistema de entrada en el mecanismo de servicio. La mayoría de los sistemas utiliza el método “First In First Out”, conocido como FIFO. Otros sistemas pueden ser de tipo aleatorio, o de acuerdo con un sistema de prioridad previamente establecido. El mecanismo de servicio consiste en una o más instalaciones de servicio, con cada una de ellas con uno o más canales de servicios, llamados servidores. Los clientes son atendidos en estos servidores. El tiempo que transcurre desde el inicio del servicio para un cliente hasta su terminación se llama el tiempo de servicio (o duración del servicio). Un modelo de sistema de colas tiene que especificar la distribución de probabilidad de los tiempos de servicio de cada servidor (y tal vez para distintos tipos de clientes), aunque normalmente se supone la misma distribución para todos los servidores. Una vez más, la distribución exponencial es la más empleada en los tiempos de servicio. 5.2 Objetivos de la gestión de colas En los modelos de colas existen dos objetivos: por un lado la minimización del tiempo de espera y por el otro la minimización de los costes totales de funcionamiento del sistema. Estos objetivos suelen ser conflictivos, ya que para reducir el tiempo de espera se necesitan poner más recursos en el sistema, con el consiguiente aumento de los costes de producción. En muchos casos el tiempo de espera es difícil de determinar, sobretodo cuando se trata de un sistema en donde seres humanos están implicados. En la Figura 5.3 podemos ver la disyuntiva entre el coste de espera y el coste de producción. Figura 5.3: Costes de un sistema de colas Si pudiéramos sumar ambos costes, el coste total alcanzaría su mínimo en el punto H. En este punto el nivel de servicio es óptimo. Sin embargo, en muchos casos la obtención “objetiva” de este resultado puede ser muy complicada ya que, como se ha indicado anteriormente, la cuantificación del tiempo de estera en valores monetarios puede ser harto complicada y subjetiva. Por lo tanto, en general se intenta llegar a una solución que sea “lógica” en función de los valores que adopten los diferentes parámetros del modelo. En la sección siguiente se examinan estos parámetros. Nivel de servicio Nivel de servicio Nivel de servicio Costes de espera Costes de producción H Costes totales 96 5.3 Medidas del sistema Existen dos tipos de medidas para poder valorar un sistema en donde pueden aparecer colas: medidas “duras” y medidas “blandas”. Estas últimas están relacionadas con la calidad del servicio. Por ejemplo, no es lo mismo esperar 15 minutos de pie haciendo cola en un ambulatorio sin refrigeración y poco ventilado que esperar el mismo tiempo en una sala de espera con butacas confortables, revistas, aire acondicionado y música clásica de fondo. El paciente valorará mucho más 1 minuto de espera en el primer caso ya que representa un coste mucho más elevado en términos de confort. En otras palabras, seguramente un minuto de cola en el ambulatorio equivale a muchos minutos de espera en la sala de espera confortable. La gestión cuantitativa de las colas no se ocupa de estos aspectos cualitativos (que no por ello dejan de ser importantes) sino que da valores a una serie de medidas “frías” o “duras”. Las medidas duras más utilizadas en los modelos de gestión de colas y su notación estándar son las siguientes: ß Tasa media de llegada, ë ß Tasa media de servicio, ì ß Tiempo medio de espera en la cola, Wq ß Tiempo medio de estancia en el sistema, Ws ß Número medio de personas en la cola, Lq ß Número medio de personas en el sistema, Ws ß Porcentaje de ocupación de los servidores, Pw ß Probabilidad de que hayan x personas en la en el sistema, Px En los siguientes apartados iremos examinando estos conceptos. 5.4 Un sistema de colas elemental: tasa de llegada y de servicio constantes Supongamos que tenemos un sistema en donde tanto la tasa de llegada (en personas por unidad de tiempo) como el tiempo de servicio son constantes. En este caso, podemos tener las tres situaciones siguientes: 5.4.1 No hay cola, tiempo ocioso del servidor Supongamos que tenemos un sistema en donde cada 6 minutos, exactamente, llega una persona a un ambulatorio. O, en otras palabras, la tasa de llegada es exactamente de 10 personas por hora. Supongamos que la tasa de servicio del médico (del servidor en términos técnicos) es de 12 personas por hora siempre, ni una más ni una menos. En esta situación nunca se formará una cola porque el servidor puede manejar perfectamente las llegadas. Incluso ya sabemos que el servidor estará ocioso un 16,6% de su tiempo, ya las llegadas necesitan únicamente de 10/12, o 83,33% de la capacidad de servicio. 5.4.2 No hay cola ni tiempo ocioso del servidor. Siguiendo el ejemplo anterior, supongamos que la tasa de servicio pasa a ser igual a 10 personas por hora, es decir, exactamente igual que la tasa de llegada. En esta situación es imposible que se forme una cola, pero por otro lado el servidor estará ocupado 100% de su tiempo y trabajará a plena capacidad. 97 5.4.3 Formación de cola y sin tiempo ocioso en el servidor Ahora supongamos que la tasa de servicio pasa a ser igual a 8 personas por hora, mientras que siguen llegando pacientes cada 6 minutos exactamente. En esta situación se formará una cola que irá creciendo, ya que el servidor no puede absorber toda la demanda de servicio y los pacientes se irán acumulando . La cola de llegadas no servidas inmediatamente irá creciendo a una tasa de 2 personas por hora, el es decir el exceso de llegadas partido por las personas servidas. Por ejemplo, al cabo de ocho horas, tendríamos 16 personas en la cola. El hecho de que hayamos asumido unas tasas de llegada y de servicio constantes hasta ahora facilita los cálculos para obtener información sobre el sistema. Pero la situación se complica si nos trasladamos a la situación más realista, en donde las tasas de llegada y de servicio no son constantes, sino que siguen una determinada distribución probabilística. Por ejemplo, si las llegadas y los tiempos de servicio estuviesen distribuidos aleatoriamente a lo largo de la jornada, aunque la capacidad de los servidores sea suficiente para absorber la demanda, puede pasar que un grupo de pacientes llegue en bloque y formen durante un tiempo una cola. Y, por otro lado, si durante un tiempo no llegan más pacientes, la cola puede ser reducida por el mecanismo de servicio. En las siguientes secciones examinaremos algunos de estos casos. 5.5 Las distribuciones de Poisson y Exponencial 5.5.1 La distribución de Poisson Esta distribución es muy frecuente en los problemas relacionados con la investigación operativa, sobre todo en el área de la gestión de colas. Suele describir, por ejemplo, la llegada de pacientes a un ambulatorio, las llamadas a una centralita telefónica, la llegada de coches a un túnel de lavado, el número de accidentes en un cruce, etc. Todos estos ejemplos tienen un punto en común: todos ellos pueden ser descritos por una variable aleatoria discreta que tiene valores nonegativos enteros (0,1,2,3,4…). El número de pacientes que llegan al ambulatorio en un intervalo de 15 minutos puede ser igual, a 0, 1, 2 3… Sigamos con el ejemplo del ambulatorio. La llegada de pacientes se puede caracterizar de la forma siguiente: 1. El número medio de llegadas de los pacientes para cada intervalo de 15 minutos puede ser obtenido a través de datos históricos. 2. Si dividimos el intervalo de 15 minutos en intervalos mucho más pequeños (por ejemplo, 1 segundo), podemos afirmar que: 2.1 La probabilidad de que exactamente un único paciente llegue al ambulatorio por segundo es tiene un valor muy reducido y es constante para cada intervalo de 1 segundo. 2.2 La probabilidad de que 2 o más pacientes lleguen dentro del intervalo de 1 segundo es tan pequeña que podemos decir que es igual a 0. 2.3 El número de pacientes que llegan durante el intervalo de 1 segundo es independiente de donde se sitúa este intervalo dentro del periodo de 15 minutos. 2.4 El número de pacientes que llegan en un intervalo de 1 segundo no depende las llegadas que han sucedido en otro intervalo de 1 segundo Si al analizar un proceso de llegada este cumple estas condiciones, podemos afirmar que su distribución es de Poisson. 98 La fórmula para obtener la probabilidad de que un evento ocurra (que lleguen 3 pacientes, por ejemplo) es la siguiente: En donde x representa en número de llegadas, ë la tasa media de llegadas y P(x) la probabilidad de que el número de llegadas sea igual a x. 5.5.2 La distribución Exponencial Mientras que la distribución de Poisson describe las llegadas por unidad de tiempo, la distribución exponencial estudia el tiempo entre cada una de estas llegadas. Si las llegadas son de Poisson, el tiempo entre ellas es exponencial. Mientras que la distribución de Poisson es discreta, la distribución exponencial es continua, porque el tiempo entre llegadas no tiene por qué ser un número entero. Esta distribución se utiliza mucho para describir el tiempo entre eventos, más específicamente, la variable aleatoria que representa el tiempo necesario para servir a la llegada. Ejemplos típicos de esta situación son el tiempo que un médico dedica a una exploración, el tiempo de servir una medicina en una farmacia, o el tiempo de atender a una urgencia. El uso de la distribución exponencial supone que los tiempos de servicio son aleatorios, es decir, que un tiempo de servicio determinado no depende de otro servicio realizado anteriormente, ni de la posible cola que pueda estar formándose. Otra característica de este tipo de distribuciones es que no tienen “edad”, o en otras palabras, “memoria”. Por ejemplo, supongamos que el tiempo de atención de un paciente en una sala quirúrgica sigue una distribución exponencial. Si el paciente ya lleva 5 horas siendo operado, la probabilidad de que esté una hora más es la misma que si hubiera estado 2 horas, o 10 horas o las que sea. Esto es debido a que la distribución exponencial supone que los tiempos de servicio tienen una gran variabilidad. A lo mejor el próximo paciente operado tarda 1 hora porque su cirugía era mucho más simple que la del anterior. La función de densidad de la distribución exponencial es la siguiente: En donde t representa el tiempo de servicio y ì la tasa media de servicio (pacientes servidos por unidad de tiempo). La densidad exponencial se presenta en Figura 5.4. En general nos interesará encontrar P(T < t), la probabilidad de que el tiempo de servicio T sea inferior o igual a un valor específico t. Este valor es igual al área por debajo de la función de densidad. ! ( ) x e P x x l l - = t p t e m m - ( ) = 99 Figura 5.4: Distribución Exponencial Si, por ejemplo, queremos saber cual es la probabilidad de que el tiempo de servicio sea de 2 o menos horas cuando el tiempo medio es de 3 horas (una tasa de servicio de 1/3), podemos aplicar la fórmula siguiente: En este caso, P(T 2) = 0,486, casi un 50% de probabilidad. 5.6 Modelo de colas simple: Llegadas en Poisson y tiempos de servicio exponencialmente distribuidos. El modelo que presentaremos a continuación tiene que cumplir las condiciones siguientes: 1. El número de legadas por unidad de tiempo sigue una distribución de Poisson 2. Los tiempos de servicio siguen una distribución exponencial 3. La disciplina de la cola es de tipo FIFO 4. La población potencial es infinita 5. Existe un único canal de servicio 6. La tasa media de llegadas es menor que la tasa media del servicio 7. El tamaño potencial de la cola es infinito Si estas condiciones se cumplen y si conocemos la tasa media de llegada ë, y la tasa media de servicio ì, las ecuaciones para obtener valores de las medidas descritas anteriormente son: · Número medio en la cola: · Número medio en el sistema: · Tiempo medio de espera en la cola: m(m l) l - = 2 Lq (m l) l - Ls = m(m l) l - Wq = P(T
...