Decisiones empresariales con hoja de cálculo
 9788436826548, 843682654X

Table of contents :
""Decisiones empresariales con hojas de cã?lculo""
""pã?gina legal""
""ã?ndice""
""prefacio""
""tabla de problemas""
""1 decisiones, sistemas y modelos""
""1.1. introducciã?n""
""1.2. el proceso de toma de decisiones""
""1.3. los modelos de toma de decisiones: (...)""
""1.4. sistemas""
""1.5. modelos""
""1.5.1. objetivo de los modelos""
""1.5.2. clasificaciã?n de los modelos""
""1.5.3. componentes de un modelo""
""1.5.4. mã?trica de los modelos""
""1.6. algoritmo""
""1.7. elementos de un sistema informã?tico (...)""
""1.8. software de programaciã?n matemã?tica (...)"" ""1.8.1. cã?digos comerciales""""1.8.2. cã?digos de modelizaciã?n""
""1.8.3. cã?digos de demostraciã?n gratuitos""
""1.9. las sociedades y revistas que promueven (...)""
""bibliografã?a""
""2 decisiones empresariales y la hoja de (...)""
""2.1. introducciã?n""
""2.2. la hoja de cã?lculo y la utilizaciã?n (...)""
""2.3. ejemplos sobre toma de decisiones (...)""
""ejercicios propuestos""
""bibliografã?a""
""3 introducciã?n a la programaciã?n lineal (...)""
""3.1. introducciã?n""
""3.2. formulaciã?n y representaciã?n grã?fica""
""3.3. resoluciã?n mediante solver"" ""3.4. POSIBLES SOLUCIONES DE UN PROBLEMA (...)""""3.4.1. SOLUCIÃ?N ÚNICA""
""3.4.2. SOLUCIONES ALTERNATIVAS O MÚLTIPLES""
""3.4.3. SOLUCIÃ?N INFACTIBLE""
""3.4.4. SOLUCIÃ?N NO ACOTADA O ILIMITADA""
""3.4.5. SOLUCIÃ?N DEGENERADA""
""3.5. EL DUAL Y SU INTERPRETACIÃ?N ECONÃ?MICA""
""3.5.1. EL ANÃ?LISIS DE SENSIBILIDAD DE LOS (...)""
""3.5.2. EL ANÃ?LISIS DE SENSIBILIDAD DE LOS (...)""
""3.6. OTROS INFORMES Y OPCIONES DE SOLVER""
""ANEXO 1. INCORPORACIÃ?N DE SOLVER A EXCEL""
""EJERCICIOS PROPUESTOS""
""BIBLIOGRAFÃ?A""
""4 EL MÃ?TODO DEL SIMPLEX"" ""4.1. introducciã?n a los problemas de pl""""4.2. caracterizaciã?n de los problemas de pl""
""4.3. el algoritmo del simplex""
""4.3.1. costes reducidos y test de optimalidad""
""4.3.2. regla de entrada de la base""
""4.3.3. regla de salida de la base""
""4.3.4. resumen del algoritmo del simplex""
""4.4. el mã?todo del simplex en forma de (...)""
""4.5. determinaciã?n de una soluciã?n bã?sica (...)""
""4.5.1. el mã?todo de eliminaciã?n (o de la (...)""
""4.5.2. el mã?todo de las dos fases""
""4.6. el mã?todo simplex revisado""
""ejercicios propuestos""
""bibliografã?a"" ""5 dualidad y anã?lisis postoptimal""""5.1. introducciã?n""
""5.2. el concepto de dualidad""
""5.3. propiedades de la dualidad""
""5.3.1. simetrã?a""
""5.3.2. dualidad dã?bil y dualidad fuerte""
""5.3.3. holgura complementaria""
""5.4. interpretaciã?n econã?mica de los costes (...)""
""5.5. anã?lisis postoptimal""
""5.5.1. anã?lisis de rango de los coeficientes (...)""
""5.5.2. anã?lisis de rango del tã?rmino independiente""
""5.6. anã?lisis paramã?trico y cambio en los (...)""
""ejercicios propuestos""
""bibliografã?a""
""apã?ndice 1a. simetrã?a""

Citation preview

Decisiones empresariales con hoja de cálculo

DANIEL VILLALBA VILÁ CATEDRÁTICO DE ORGANIZACIÓN DE EMPRESAS

YOLANDA BUENO HERNÁNDEZ PROFESORA DEL DEPARTAMENTO DE ORGANIZACIÓN DE EMPRESAS DE LA UNIVERSIDAD AUTÓNOMA DE MADRID

Decisiones empresariales con hoja de cálculo

EDICIONES PIRÁMIDE

COLECCIÓN «ECONOMÍA Y EMPRESA» Director:

Miguel Santesmases Mestre Catedrático de la Universidad de Alcalá

Edición en versión digital

Está prohibida la reproducción total o parcial de este libro electrónico, su transmisión, su descarga, su descompilación, su tratamiento informático, su almacenamiento o introducción en cualquier sistema de repositorio y recuperación, en cualquier forma o por cualquier medio, ya sea electrónico, mecánico, conocido o por inventar, sin el permiso expreso escrito de los titulares del copyright.

© Daniel Villalba Vilá y Yolanda Bueno Hernández, 2012 © Primera edición electrónica publicada por Ediciones Pirámide (Grupo Anaya, S. A.), 2012 Para cualquier información pueden dirigirse a [email protected] Juan Ignacio Luca de Tena, 15. 28027 Madrid Teléfono: 91 393 89 89 www.edicionespiramide.es ISBN: 978-84-368-2654-8

Índice

Prefacio .................................................................................................................

13

Tabla de problemas ............................................................................................

19

1. Decisiones, sistemas y modelos ...............................................................

23

1.1. Introducción ............................................................................................. 1.2. El proceso de toma de decisiones ............................................................. 1.3. Los modelos de toma de decisiones: el modelo clásico y el modelo administrativo .................................................................................................. 1.4. Sistemas.................................................................................................... 1.5. Modelos ................................................................................................... 1.5.1. Objetivo de los modelos ............................................................... 1.5.2. Clasificación de los modelos......................................................... 1.5.3. Componentes de un modelo ......................................................... 1.5.4. Métrica de los modelos ................................................................ 1.6. Algoritmo ................................................................................................. 1.7. Elementos de un sistema informático de planificación y ayuda a la toma de decisiones (DSS o Decision Support Systems) ...................................... 1.8. Software de programación matemática disponible ................................... 1.8.1. Códigos comerciales ..................................................................... 1.8.2. Códigos de modelización ............................................................. 1.8.3. Códigos de demostración gratuitos .............................................. 1.9. Las sociedades y revistas que promueven la planificación y toma de decisiones mediante el método científico ........................................................ Bibliografía ........................................................................................................

23 25

45 46

2. Decisiones empresariales y la hoja de cálculo.......................................

47

2.1. Introducción ............................................................................................. 2.2. La hoja de cálculo y la utilización de los métodos cuantitativos en la planificación y toma de decisiones empresariales ..........................................

47

© Ediciones Pirámide

27 30 31 32 33 34 35 37 40 42 42 43 45

48

7

Índice 2.3. Ejemplos sobre toma de decisiones con hoja de cálculo ........................... Ejercicios propuestos ......................................................................................... Bibliografía ........................................................................................................

50 69 70

3. Introducción a la Programación Lineal (PL) ...........................................

71

3.1. 3.2. 3.3. 3.4.

8

Introducción ............................................................................................. Formulación y representación gráfica....................................................... Resolución mediante Solver...................................................................... Posibles soluciones de un problema de PL ............................................... 3.4.1. Solución única .............................................................................. 3.4.2. Soluciones alternativas o múltiples ............................................... 3.4.3. Solución infactible ........................................................................ 3.4.4. Solución no acotada o ilimitada................................................... 3.4.5. Solución degenerada .................................................................... 3.5. El dual y su interpretación económica ..................................................... 3.5.1 El análisis de sensibilidad de los coeficientes del término independiente (recursos) ........................................................................... 3.5.2. El análisis de sensibilidad de los coeficientes de la función objetivo............................................................................................. 3.6. Otros informes y opciones de Solver ........................................................ Anexo 1. Incorporación de Solver a Excel ...................................................... Ejercicios propuestos ......................................................................................... Bibliografía ........................................................................................................

71 71 75 82 82 84 86 88 90 92

95 97 99 102 103

4. El método del Simplex ................................................................................

105

4.1. Introducción a los problemas de PL ......................................................... 4.2. Caracterización de los problemas de PL................................................... 4.3. El algoritmo del Simplex .......................................................................... 4.3.1. Costes reducidos y test de optimalidad ........................................ 4.3.2. Regla de entrada de la base .......................................................... 4.3.3. Regla de salida de la base ............................................................. 4.3.4. Resumen del algoritmo del Simplex ............................................. 4.4. El método del Simplex en forma de Tableau............................................. 4.5. Determinación de una solución básica factible inicial: el método de la M grande y el de las dos fases .................................................................. 4.5.1. El método de eliminación (o de la «M grande») .......................... 4.5.2. El método de las dos fases............................................................ 4.6. El método Simplex revisado ..................................................................... Ejercicios propuestos ......................................................................................... Bibliografía ........................................................................................................

105 106 111 112 114 114 116 117 128 129 136 144 153 157

5. Dualidad y análisis postoptimal.................................................................

159

5.1. Introducción ............................................................................................. 5.2. El concepto de dualidad ...........................................................................

159 159

93

© Ediciones Pirámide

Índice 5.3. Propiedades de la dualidad....................................................................... 5.3.1. Simetría ........................................................................................ 5.3.2. Dualidad débil y dualidad fuerte .................................................. 5.3.3. Holgura complementaria ............................................................. 5.4. Interpretación económica de los costes reducidos .................................... 5.5. Análisis postoptimal................................................................................. 5.5.1. Análisis de rango de los coeficientes de la función objetivo ......... 5.5.2. Análisis de rango del término independiente................................ 5.6. Análisis paramétrico y cambio en los coeficientes estructurales ............... Ejercicios propuestos ......................................................................................... Bibliografía ........................................................................................................ Apéndice 1A. Simetría .................................................................................... Apéndice 1B. Dualidad débil ......................................................................... Apéndice 1C. Dualidad fuerte ........................................................................ Apéndice 1D. Holgura complementaria ......................................................... Apéndice 2A. Análisis paramétrico ................................................................ Apéndice 3A. Cambios en los coeficientes estructurales ................................. Apéndice 3A.1. Adición o eliminación de nuevas variables y restricciones............................................................................ Adición de nuevas variables .......................................... Adición de nuevas restricciones ....................................

165 166 168 171 177 178 179 186 193 194 197 197 198 199 200 202 209

6. Modelización de problemas de PL (I) .......................................................

213

6.1. Introducción ............................................................................................. 6.2. Metodología de modelización de los problemas de PL ............................ 6.2.1. Codificación de variables y restricciones ...................................... 6.2.2. La función objetivo ...................................................................... 6.2.3. Las restricciones de desigualdad................................................... 6.2.4. Las restricciones de igualdad........................................................ 6.2.5. La reducción del número de restricciones..................................... 6.2.6. Restricciones duras y blandas....................................................... 6.2.7. Los problemas de scaling.............................................................. 6.3. Combinación óptima de recursos ............................................................. 6.4. Selección de procesos ............................................................................... 6.5. Blending o mezcla ..................................................................................... 6.6. Modelos aparentemente no lineales.......................................................... Ejercicios propuestos ......................................................................................... Problema de combinación de recursos ..................................................... Problemas de blending o mezcla ............................................................... Bibliografía ........................................................................................................

213 214 217 217 219 219 220 220 221 222 236 240 259 272 272 272 280

7. Modelización de problemas de PL (II) ......................................................

281

7.1. Modelos en redes...................................................................................... 7.1.1. Modelo de transporte ................................................................... 7.1.2. Modelo de asignación ..................................................................

281 283 296

© Ediciones Pirámide

210 210 210

9

Índice 7.1.3. Problema de transbordo ............................................................ 7.1.4. Camino más corto ..................................................................... 7.1.5. Flujo con coste mínimo ............................................................. 7.1.6. Flujo máximo con limitación en los arcos ................................. 7.1.7. Modelo de PERT ....................................................................... 7.2. Modelos multiplanta y multiperíodo ..................................................... 7.2.1. Modelos multiplanta.................................................................. 7.2.2. Modelos multiperíodo ............................................................... Ejercicios propuestos ...................................................................................... Bibliografía .....................................................................................................

309 316 326 331 338 344 344 350 363 370

8. Programación entera y mixta .................................................................

371

8.1. La programación entera......................................................................... 8.1.1. Programación entera pura (IP) .................................................. 8.1.2. Programación mixta .................................................................. 8.2. Algoritmos de programación entera pura .............................................. 8.2.1. Programación mixta .................................................................. 8.2.1.1. Algoritmos de «Branch and Bound» .......................... 8.2.1.2. Otros algoritmos enumerativos ................................... 8.2.2. Algoritmos de planos cortantes ................................................. 8.3. Análisis de sensibilidad .......................................................................... Ejercicios propuestos ...................................................................................... Bibliografía .....................................................................................................

371 373 375 375 375 377 383 383 383 384 388

9. Modelización de problemas de programación entera y mixta (I) ..

389

9.1. Introducción .......................................................................................... 9.2. Metodología de modelización de problemas de programación entera y mixta ................................................................................................... 9.3. Problemas de carga fija .......................................................................... 9.3.1. Lote de producción batch size .................................................... 9.4. Problemas de selección de inversión y localización ................................ 9.4.1. Problemas de selección de inversiones indivisibles .....................

389

9.4.2.

10

Problemas de localización y dimensionamiento..........................

389 390 395 403 403

414

9.4.2.1. Localización y dimensionamiento de plantas de manufactura..................................................................... 9.4.2.2. Localización y dimensionamiento de plantas de almacenes ...................................................................... Ejercicios propuestos ...................................................................................... Bibliografía .....................................................................................................

421 428 431

10. Modelización de problemas de programación entera y mixta (II)..

433

10.1. Otros problemas de selección ............................................................... 10.1.1. Set covering, set packing y set partitioning.............................. 10.1.2. El problema de la mochila .....................................................

433 433 441

415

© Ediciones Pirámide

Índice 10.2. Problemas no lineales modelizados mediante PEM ............................. 10.2.1. Problemas no lineales con economías de escala ..................... 10.2.2. Costes unitarios decrecientes de forma discreta ..................... 10.2.3. Costes unitarios continuamente decrecientes ......................... 10.3. Problemas de secuenciación ................................................................. 10.3.1. El problema del viajante ........................................................ 10.3.2. Otros problemas de secuenciación ......................................... Ejercicios propuestos ...................................................................................... Bibliografía .....................................................................................................

© Ediciones Pirámide

444 444 444 453 460 466 476 477 485

11

Prefacio

Destinatario El libro está destinado a estudiantes de MBA o profesionales que tienen la responsabilidad de tomar decisiones estructuradas y relativamente complejas en empresas, ONGs o la administración pública, esto es, decisiones en las que se tiene un mínimo de información cuantitativa y en las que el objetivo a cumplir es razonablemente claro y medible. La materia que se presenta suele corresponder a un cuatrimestre de un MBA de la gran mayoría de las escuelas de negocios más prestigiosas. A este tipo de curso se le suele llamar «Métodos cuantitativos» («Quantitative Methods»), «Sistemas de decisión» («Management Science») o denominaciones similares. A veces, se ofrece un segundo cuatrimestre en el que se ofrece otro conjunto de técnicas cuantitativas para la toma de decisiones: simulación, modelos probabilísticos, etc. Contenido Sin ninguna duda, en los diez o quince últimos años las facilidades de cálculo para cualquier persona o empresa grande o PYME han aumentado de manera exponencial, y su coste ha bajado a casi cero, salvo en casos muy excepcionales. Una de las consecuencias de esa mayor facilidad de cálculo y bajo coste está siendo que, actulamente, las empresas toman decisiones basadas en datos que se procesan con fórmulas o algoritmos más o menos sofisticados. Las hojas de cálculo son el signo más visible de esta forma de tomar decisiones. Ningún licenciado o graduado en administración de empresas o profesional que deba tomar decisiones en una empresa, cuando se parte de un mínimo de información numérica, puede prescindir de un ordenador con su correspondiente hoja de cálculo. Una gran mayoría de las decisiones que deben tomarse tienen una gran cantidad de alternativas o posibilidades. Habitualmente, la persona que debe tomar © Ediciones Pirámide

13

Prefacio la decisión final analiza unas cuantas de las posibles opciones y escoge la que considera mejor. Y lo hace de manera más o menos intuitiva, lo que no le garantiza que haya tomado la mejor de las decisiones posible. Este libro trata de ayudar a tomar decisiones en las empresas, ONGs y en la administración pública analizando de manera sistemática todas las alternativas posibles y escogiendo la óptima. Y lo hace mediante la elaboración y resolución de modelos que utilizan un conjunto de técnicas de resolución conocidas desde hace un buen número de años. El libro pretende enseñar de forma sistemática y práctica, con una gran cantidad de ejemplos, cómo se construyen los modelos que, una vez resueltos, nos indican la decisión más adecuada, esto es, aquella que hace óptimo un determinado objetivo. La elaboración de modelos se hace sobre la misma hoja de cálculo, y la solución del mismo ejecutando una macro que está en una buena parte de las hojas de cálculo más habituales en el mercado. En particular, este libro utiliza Excel, la hoja de cálculo más popular en este momento. Otros libros, más o menos similares, suelen hacer un énfasis mucho mayor en los algoritmos de resolución y mucho menor en la modelización. Nosotros entendemos que, para tomar decisiones, lo más importante, con mucha diferencia, es saber elaborar modelos. El algoritmo que los resuelve puede ayudar a entender o incluso mejorar la toma de decisiones, pero no es esencial. Por esta razón, este libro está enfocado especialmente a la elaboración de modelos, aunque aquellos que lo deseen pueden profundizar en los algoritmos de resolución. El primer capítulo trata brevemente sobre el método científico aplicado a las ciencias sociales y define algunos conceptos tales como modelo, variable, parámetros, métrica de variables y parámetros, etc. El segundo lo dedicamos a poner un conjunto de ejemplos sobre toma de decisiones sencillas, utilizando exclusivamente la hoja de cálculo y la intuición para llegar a una decisión final. En capítulos posteriores, estos mismos ejemplos se resuelven mediante modelos que garantizan una decisión óptima. Los modelos que se resuelven a lo largo del libro utilizan fundamentalmente dos técnicas de resolución: programación lineal (PL) y programación entera mixta (PEM). Los capítulos 3 y 4 explican los fundamentos y la forma en la que el algoritmo de PL llega a la solución óptima. La solución de los modelos de PL nos da, más allá del resultado sobre la decisión a tomar, algunos datos que nos informan sobre la sensibilidad de la solución o de algunas decisiones que podrían tomarse para mejorarla. A ello dedicamos el capítulo 5. El capítulo 8 explica los fundamentos del algoritmo más utilizado para resolver problemas de PEM, esto es, aquellos que, además de variables continuas, tienen variables binarias (sí/no, 0/1) y variables enteras puras (0, 1, 2, 3...). Los capítulos 6 y 7 se dedican a explicar con un gran detalle y de manera sistemática, un buen número de ejemplos de toma de decisiones en diferentes áreas funcionales utilizando PL. Hemos procurado que estos ejemplos sean sencillos y lo más pedagógicos posible. Muchos casos de decisiones reales empresa-

14

© Ediciones Pirámide

Prefacio riales son una extensión y combinación de los ejemplos que se explican en estos capítulos. Los capítulos 9 y 10 tienen el mismo propósito que los capítulos 6 y 7, pero, en este caso, se construyen modelos en los que la toma de decisiones exige, además de decisiones con variables continuas (por ejemplo, transportar X litros del producto Y), otras con variables binarias (por ejemplo, construir o no un almacén nuevo) o con variables enteras (por ejemplo, número de personas que deben atender la caja de un supermercado). Este libro tiene como origen otro publicado en 1990: Sistemas de optimización para la planificación y toma de decisiones, publicado también por Ediciones Pirámide y cuyos autores son Daniel Villalba y Miguel Jerez. Aunque los principios en los que se basa son los mismos, se han introducido varios cambios fundamentales. En lugar de utilizar un programa informático específico para resolver los modelos, en el libro actual se plantean y resuelven todos los modelos mediante una hoja de cálculo estándar. Se han incorporado nuevos ejemplos y ejercicios y se han rehecho la mayoría de los existentes para una mayor comprensión pedagógica. Además, se ha eliminado o pasado a apéndices una buena parte de la teoría que no tenía un papel fundamental para la comprensión de los modelos planteados y resueltos. El contenido íntegro del libro se puede explicar en un cuatrimestre de 4 o 5 horas de clase a la semana. También se puede explicar una versión resumida, sin los capítulos 3, 4, 5 y 8, en un cuatrimestre de 3 o 4 horas semanales. Diferentes caminos de estudio y metodología de aprendizaje El objetivo más importante que persigue el libro es que el estudiante aprenda a elaborar modelos. Para ello no es estrictamente necesario estudiar los capítulos 3, 4, 5 y 8. Pero sí es muy importante, para una buena comprensión, intentar resolver los problemas que aparecen al final de los capítulos de modelización: 2, 6, 7, 9 y 10. Es normal que, a pesar de ser ejercicios relativamente sencillos, el lector tenga dificultades para resolver algunos de ellos, especialmente los más difíciles. Debe dedicar un máximo de 20 a 30 minutos en intentar modelizar y resolver cada problema propuesto. En todo caso, el estudiante debe siempre escribir, para cada ejercicio o problema propuesto, las variables y su métrica; las ecuaciones, su concepto y métrica, y la función objetivo, también con su concepto y métrica correspondiente. Y ello aunque no esté seguro o incluso aunque crea que no es correcto lo que ha escrito. El planteamiento realizado, y en su caso la solución, debe compararse con la que aparece en el CD. Los estudiantes que quieran mejorar en su comprensión de la solución y sus consecuencias deberán estudiar y resolver los problemas planteados en los capítulos 3, 4, 5 y 8. Para una mayor profundización de la materia del libro, en el CD se ofrece un gran conjunto de problemas para ser resueltos, así como las soluciones correspondientes. © Ediciones Pirámide

15

Prefacio Software necesario Como ya se ha dicho anteriormente, para el estudio de este texto se precisa una hoja de cálculo que tenga incorporado un software en forma de macro que resuelva, como mínimo, problemas de programación lineal y entera mixta. En este libro se ha utilizado la hoja de cálculo más popular: Excel. El algoritmo de resolución es el Solver. Habitualmente no está incorporado al Excel de forma estándar, pero se puede incorporar fácilmente en la forma que se explica en el anexo 1 del capítulo 3. Existen muchos tipos de software para resolver modelos como los que se explican en este libro, algunos basados en programas específicos de cálculo y otros que añaden lo que se conoce como generadores de matrices e informes. Una buena parte de los mismos se especifican en el capítulo 1. Dada la rapidez con la que evoluciona el mercado del software, es posible que alguno de los programas mencionados en el indicado capítulo ya no exista en el momento de la publicación de este libro o que hayan aparecido otros que no estaban anteriormente. Ayudas a profesores El libro es fruto de la experiencia de más de veinte años en la enseñanza de este tipo de técnicas de toma de decisión en la Universidad Autónoma de Madrid con algunos miles de estudiantes. Durante estos años hemos podido seleccionar un conjunto de ejercicios con el mayor poder pedagógico. Algunos se han incorporado en el libro y otros están disponibles para profesores en un CD que debe solicitarse a Ediciones Pirámide. También hemos elaborado un conjunto de transparencias correspondientes a cada capítulo que subrayan lo más destacado. De nuevo, los profesores que lo soliciten pueden disponer de ellas en dicho CD. También hemos elaborado un banco de datos con problemas y ejercicios para realizar en casa o para exámenes. En este sentido, es muy importante que los alumnos realicen ejercicios de modelización todas las semanas. Es, sin duda, la mejor forma para que aprendan la materia objeto de este libro. De no hacer abundantes prácticas, no resulta fácil resolver los problemas planteados en uno o dos exámenes finales. Ayudas a estudiantes La asignatura no resulta difícil si los estudiantes intentan resolver todas las semanas los problemas planteados al final de cada capítulo, comprobando su solución correcta en clase o en el CD que acompaña a este libro. También puede hacer ejercicios o problemas adicionales en el material adjunto. Agradecimientos Nuestro agradecimiento a Miguel Jerez, que fue coautor junto a Daniel Villalba del origen de este libro, y del cual hemos tomado algunas partes con su generosa autorización.

16

© Ediciones Pirámide

Prefacio También debemos agradecer a un buen número de becarios y becarias que nos han ayudado en varias etapas a recopilar problemas, pulir textos y eliminar errores. Particularmente queremos destacar la dedicación y la esforzada e inteligente labor de Ana Belén López y Reyes Barrado. Pero, sin duda, el mayor agradecimiento va dirigido a nuestros estudiantes que, a lo largo de más de veinte años, nos han permitido ir mejorando la forma de enseñar una materia que tiene una buena parte de arte (la modelización) y que, como tal, no es fácil de enseñar. Sus continuos comentarios y críticas nos han permitido ir adaptando el texto, los ejemplos y los ejercicios propuestos, de forma que toda la materia sea mucho más comprensible.

© Ediciones Pirámide

17

Tabla de problemas

Título

Ejemplo o CD

Área funcional

Dificultad

Capítulo

Página del libro

Cultivo de cereales

2.1.

Producción

Hoja de cálculo

2

51

Transporte de bioetanol

2.2.

Logística/distribución Media Hoja de cálculo

2

54

Decisiones alternativas de inversión

2.3.

Inversiones

Fácil

Hoja de cálculo

2

59

Apertura de oficinas de una empresa de mensajería

2.4.

Inversiones

Difícil Hoja de cálculo

2

65

Fabricante de camisas

6.1.

Producción

Fácil

PL-Combinación óptima de recursos

6

223

Plan energético

6.2.

Producción

Media PL-Combinación óptima de recursos

6

228

Producción de libros

6.3.

Producción

Media PL-Selección de procesos

6

237

Sociedad de Bolsa

6.4.

Inversiones

Fácil

PL-Mezcla

6

241

Producción de tomates enlatados

6.5.

Producción

Media PL-Mezcla

6

246

Producción y comercialización de vinos

6.6.

Producción/comercia- Media PL-Mezcla lización

6

253

Fabricante de electrodomésticos (I)

6.7.

Producción

Media PL-No lineales

6

260

Fabricante de electrodomésticos (II)

6.8.

Producción

Media PL-No lineales

6

269

Mermeladas

7.1.

Logística/distribución Fácil

PL-Transporte

7

284

Construcción de una presa

7.2.

Producción/logística

Media PL-Transporte

7

289

Asignación de brigadas de policía

7.3.

Recursos Humanos

Fácil

PL-Asignación

7

289

Asignación de alumnos a becas

7.4.

Recursos Humanos

Media PL-Asignación

7

302

© Ediciones Pirámide

Fácil

Técnica

19

Tabla de problemas

Título

Ejemplo o CD

Área funcional

Dificultad

Técnica

Capítulo

Página del libro

Transbordo de combustibles REPOIL

7.5.

Logística/distribución Media PL-Transbordo

7

310

Problema del camino más corto. El funcionamiento del GPS

7.6.

Logística/distribución Media PL-Camino más corto

7

317

Problema de flujo con coste mínimo

7.7.

Logística/distribución Fácil

7

326

Fábrica de ordenadores personales

7.8.

Producción

7

331

Problema del modelo de PERT (camino crítico)

7.9.

Producción/proyectos Media PL-Modelo de PERT

7

339

Problema multiplanta

7.10.

Producción

7

345

Problema multiperíodo. Venta de trigo

7.11.

Comercialización/fi- Difícil PL-Multiperíodo nanciación

7

352

Problema multiperíodo. Cash management

7.12.

Financiación/inver- Difícil PL-Multiperíodo sión

7

357

Optimización de un problema de carga fija

9.1.

Producción

Fácil

9

391

Optimización de un problema de lotes de producción

9.2.

Producción

Difícil PEM-Batch size

9

396

Inversión en varios proyectos

9.3.

Inversiones

Fácil

9

403

Inversión en varios proyectos con restricciones lógicas

9.4.

Inversiones

Difícil PEM-Inversiones indivisibles

9

409

Optimización de un problema de localización y dimensionamiento

9.5.

Producción/distribu- Media PEM-Localización y dimensionamiento de manufactura ción/logística/inversiones

9

416

Localización y tamaño óptimo de almacenes

9.6.

Producción/distribu- Difícil PEM-Localización y dimensionamiento de almacenes ción/logística/inversiones

9

423

Localización de hospitales

10.1.

Inversiones

Media PE-Set covering, set packing, set partitioning

10

434

Reparto de mercancías en vehículos

10.2.

Distribución/logística Media PE-Set covering, set packing, set partitioning

10

437

Planificación de actividades de contrabando

10.3.

Distribución/logística Fácil

10

441

Optimización de un problema lineal con economías de escala

10.4.

Producción/comercia- Media PEM-Costes unitarios decrelización cientes forma discreta

10

446

Producción con costes unitarios decrecientes

10.5.

Producción/comercia- Difícil PEM-Costes unitarios contilización nuamente decrecientes

10

455

Planificación de vuelos

10.6.

Producción/comercia- Media PEM-Problemas de secuenlización ciación

10

460

20

PL-Flujo con coste mínimo

Media PL-Flujo máximo con limitación en los arcos

Fácil

PL-Multiplanta

PE-Carga fija

PE-Inversiones indivisibles

PE-Problema de la mochila

© Ediciones Pirámide

Tabla de problemas

Título

Ejemplo o CD

Área funcional

Dificultad

Técnica

La vuelta a España

10.7.

Distribución/logística Difícil PE-Problema del viajante

Frutas Universales

CD

Distribución/logística Media PL-Transporte

Vinos de la Comunidad Autónoma

CD

Producción

Media PL-Mezcla

Chocolates

CD

Producción

Fácil

PL-Mezcla

Automóviles MM

CD

Producción

Fácil

PL-Combinación óptima de recursos

El pienso «piu piu»

CD

Producción

Fácil

PL-Mezcla

FLYSA

CD

Producción/distribu- Media PL-Transporte ción

Tabacos de Banania

CD

Producción

Fácil

PL-Transporte

Empresario ganadero

CD

Producción

Fácil

PL-Transporte

Compañía manufacturera

CD

Producción

Fácil

PL-Transporte

Inversor

CD

Financiación/inver- Media PL-Mezcla sión

Seguros autónomos

CD

Financiación/inver- Difícil PL-Multiperíodo sión

Banco Financiero Autónomo de Madrid

CD

Financiación/inver- Difícil PL-Multiperíodo sión

Cash Management, S. A.

CD

Financiación/inver- Difícil PL-Multiperíodo sión

N&N

CD

Financiación/Inver- Difícil PL-Multiperíodo sión

Sociedad UUE, S. A.

CD

Financiación/Inver- Difícil PL-Multiperíodo sión

Iberiaphone

CD

Marketing

Fácil

CAPSA

CD

Producción

Difícil PEM-No Lineales

Cementos Universales

CD

Producción

Media PEM-Carga fija y batch size

Compañía Universal de Marketing

CD

Recursos Humanos

Media PEM-Set covering, set packing, set partitioning

Comercial Aires del Frío (COMAUFRI)

CD

Producción

Difícil PEM-No Lineales

Distribuciones Inglés, S. A.

CD

Producción

Fácil

PEM-Set covering, set packing, set partitioning

Fútbol

CD

Financiación/inver- Fácil sión

PEM-Selección de inversiones

© Ediciones Pirámide

Capítulo

Página del libro

10

469

PL-Mezcla

21

Tabla de problemas

Título

Ejemplo o CD

Área funcional

Dificultad

Capítulo

Técnica

Granjeros

CD

Producción

Media PEM-Carga fija y batch size

Hipermercados

CD

Recursos Humanos

Media PEM-Set covering, set packing, set partitioning

Hospital Universal de Madrid

CD

Recursos Humanos

Media PEM-Set covering, set packing, set partitioning

Hotel Universal Madrileño

CD

Marketing

Media PEM-Set covering, set packing, set partitioning

Inversiones Internacionales, S. A.

CD

Financiación/inver- Difícil PEM-Selección de inversiones sión

Máquinas

CD

Producción

Fácil

PEM-Asignación

Productos Universales, S. A.

CD

Marketing

Fácil

PEM-Asignación

Cines

CD

Recursos Humanos

Fácil

PEM-Set covering, set packing, set partitioning

Distribuidora de Gasoil

CD

Marketing

Fácil

PEM-Asignación

Compañía ZZ

CD

Producción

Media PEM-Carga fija y batch size

22

Página del libro

© Ediciones Pirámide

1

Decisiones, sistemas y modelos

1.1. INTRODUCCIÓN Una buena parte de las técnicas expuestas en este libro se desarrollaron durante y poco después de la Segunda Guerra Mundial, esto es, hace ya algo más de 50 años. En sus inicios, estas técnicas eran utilizadas para resolver problemas derivados de problemas militares como, por ejemplo, la forma óptima de abastecer a las tropas de alimentos y municiones, determinar convoyes de tamaño óptimo, seleccionar lugares óptimos donde situar cañones, etc. Probablemente por esa razón, a este tipo de técnicas se las conoció inicialmente como Investigación de Operaciones o Investigación Operativa, nombre que aún se sigue utilizando, especialmente cuando se refiere a los aspectos más técnicos y algorítmicos. Los autores pioneros de estas técnicas fueron George Dantzig, West Churchman, Rusell Ackoff y Richard Bellman, entre otros. Más tarde, a partir de los años cincuenta y sobre todo los sesenta, estas técnicas fueron pasando al campo empresarial para formar parte de lo que se conoce como Escuela Científica o Escuela Cuantitativa dentro de la Administración de Empresas. En su versión dentro del mundo no militar, todos estas técnicas recibieron diferentes nombres, tales como Management Science, Operations Research, Decision Science, Systems Analysis o simplemente Quantitative Methods (en su versión anglosajona), o Investigación operativa, Investigación de operaciones, Sistemas de decisión o Métodos cuantitativos (en su versión española). Hoy en día, una o varias asignaturas con alguno de estos nombres u otros similares y con contenidos más o menos parecidos a los que podemos encontrar en este libro pueden encontrarse en todos los MBAs de las escuelas de negocios más reconocidas del mundo. En España, estas técnicas se imparten en algunas facultades de administración de empresas. habitualmente bajo el nombre de métodos cuantitativos, investigación operativa o sistemas de decisión. A lo largo de este libro nos referiremos a estas técnicas como «métodos cuantitativos» o «sistemas de deci© Ediciones Pirámide

23

Decisiones empresariales con hoja de cálculo sión». Aunque, en general, ambos términos se considerarán sinónimos, el último tiene un matiz algo más amplio y genérico; por ello, el primero se utilizará más para referirnos puramente a las técnicas de solución, mientras que el segundo se usará más para analizar, desarrollar y resolver el problema en su conjunto, por lo que se considerarán, además, los aspectos de análisis del problema, modelización y puesta en funcionamiento. En los años sesenta y setenta la utilización de los métodos cuantitativos estaba sobre todo concentrada en grandes empresas industriales: refinerías de petróleo, plantas químicas, siderurgias, etc. El problema principal que tenía su utilización era la carestía de su implantación y puesta en marcha. El alquiler de ordenadores (en la mayor parte de los casos sólo se alquilaban) tenía un precio muy alto y también el software. Por ejemplo, a principios de los años setenta alquilar un ordenador con una potencia de un megabyte valía del orden de un millón de pesetas al mes de aquel entonces, y alquilar un software de programación lineal valía otras 200.000 pesetas mensuales. Trasladados a euros del 2006 esto sería aproximadamente del orden de un millón de euros al año, ¡solo por el alquiler! A estos costes había que añadir los correspondientes al desarrollo de los modelos, su implantación y control. Naturalmente, únicamente compañías muy importantes se podían permitir utilizar este tipo de técnicas; eso sí, a pesar del coste de su implantación, los ahorros o beneficios que obtenían con ellas les compensaba sobradamente por los altos costes que suponía su implantación. En los ambientes académicos de los años sesenta y setenta, la mayor preocupación de las personas que se dedicaban a esta materia era el desarrollo de algoritmos eficientes, ya que esto ampliaba la posibilidad de utilizarlos con ordenadores más pequeños, y, por tanto, con menor coste, o resolver problemas de mayor tamaño. Sin embargo, los problemas que se trataban de resolver eran relativamente limitados, ya que forzosamente debían ser para grandes empresas cuyos problemas eran bien conocidos. La aplicación de métodos cuantitativos en empresas de pequeño o mediano tamaño era reducida. Aunque en teoría se podían conseguir ahorros o beneficios importantes, el coste de su implantación era demasiado alto y no compensaba. A partir del año 1982 aparece el ordenador personal o PC, y a los pocos años se populariza la hoja de cálculo. Este binomio supone un abaratamiento enorme de los procesos de cálculo y, como consecuencia, un aumento de los métodos cuantitativos por parte de empresas a las que, hasta entonces, no les resultaba rentable su utilización. Al principio, la utilización de métodos cuantitativos para tomar decisiones se hace de forma fundamentalmente intuitiva. A medida que aumenta la competencia y el abaratamiento de los medios de cálculo, se hace necesaria una mayor sofisticación en la implementación de estos métodos cuantitativos. En este libro pretendemos estudiar algunas de las técnicas más conocidas para la toma de decisiones de una manera rigurosa, lo que garantiza, si están bien desarrolladas y utilizadas, decisiones óptimas, en el sentido de que garantizan de la mejor manera posible el cumplimiento de los objetivos planteados. Para ello, par-

24

© Ediciones Pirámide

Decisiones, sistemas y modelos tiremos del concepto de sistemas como filosofía y nos centraremos en la utilización de modelos.

1.2. EL PROCESO DE TOMA DE DECISIONES Todos tenemos que tomar decisiones. En cada momento de nuestra vida, tanto privada como profesional, nos vemos obligados a seleccionar una alternativa dentro de un conjunto de opciones. La calidad de las decisiones que tomamos afecta radicalmente a nuestra salud, nuestro bienestar económico, las relaciones que mantenemos con otras personas, etc. Esta afirmación puede aplicarse también a las empresas, a los organismos de la Administración Pública y a las instituciones privadas sin fines de lucro. La universalidad del problema de toma de decisiones da lugar a que resulte de gran interés preguntarse cuál es la metodología adecuada para tomar decisiones, entendiendo por «adecuada» aquella que proporciona un mayor grado de consecución de los objetivos deseados. Nuestro interés en la toma de decisiones se circunscribe a las empresas, aunque también a la Administración Pública y a algunas de las llamadas ONGs (Organizaciones no gubernamentales). La toma de decisiones en las empresas es tan relevante que, a veces, se la conoce como «el reto del administrador», dada la influencia que puede tener en la buena marcha de las mismas. Jones y George (2006) definen la toma de decisiones como «el proceso por el que los administradores responden a las oportunidades y amenazas a las que se enfrentan cuando analizan las opciones y toman determinaciones sobre las metas y cursos de acción de la organización». Dentro de la toma de decisiones distinguen entre las no programadas y las programadas. En las empresas se producen de manera permanente o casi permanente situaciones que no estaban previstas y que requieren algún tipo de decisión. Por ejemplo, aparece una nueva tecnología y debe decidirse si hay que comprar la patente o invertir en ella; un competidor nuestro realiza de pronto una gran rebaja en sus precios o una gran campaña de publicidad, resultando necesario tomar una decisión sobre cómo debe responderse a esta acción. En estos casos estamos ante decisiones no programadas. De forma más concreta, podríamos definir la toma de decisiones no programada como aquella que se toma como respuesta a oportunidades o amenazas nuevas o no previstas y sobre las que no tenemos una forma previamente programada para responder. En muchas de las ocasiones en las que se deben tomar decisiones no programadas se tiene una información muy incompleta, por no decir errónea o equivocada. A veces no se tiene ni siquiera excesivamente claro cuál es el objetivo que se quiere conseguir con la decisión a tomar. Un ejemplo de esta situación podría ser la aparición de una nueva tecnología que puede afectar de manera importante a una empresa. El primer problema que surge es que normalmente no se conoce muy bien el alcance de esta nueva tecnología, si va a © Ediciones Pirámide

25

Decisiones empresariales con hoja de cálculo triunfar o no, y la empresa tampoco tiene una idea precisa de lo que le costaría desarrollarla por sí misma o comprarla, o cómo afectaría a otras partes de su propio negocio y de qué forma. Obsérvese, por ejemplo, el fenómeno Internet. Hace unos años todos los clientes de un banco tenían que ir a su banco para resolver casi cualquier problema. Esto exigía muchas sucursales bancarias que estuvieran cerca del cliente. Con la llegada de las transacciones bancarias por Internet parece que las sucursales son mucho menos necesarias. ¿Deben cerrarse? Algunos bancos que han cerrado sucursales han perdido negocio, pero otros que se han instalado nuevos sin sucursales han captado mucho negocio, al tener unos precios muy competitivos. ¿Qué hay que hacer? La información en este caso es incompleta (nos faltaría saber mucho más sobre el comportamiento en el tiempo de los clientes bancarios) y tampoco tenemos totalmente claros los objetivos: ¿queremos ganar cuota de mercado?, ¿incrementar los beneficios?, ¿quizá aumentar la dimensión para hacernos más grandes y tener economías de escala para poder competir? De acuerdo con Jones y George, la toma de decisiones no programada se puede fundamentar en la intuición de los directivos o en juicios razonados. En general, se utiliza la intuición cuando la información es muy poco precisa y la toma de decisiones debe ser realizada en muy poco tiempo. Cuando la decisión es importante, se tiene o se puede acopiar información relevante y fiable y se dispone de algún tiempo para tomar la decisión, entonces se hace mediante juicios razonados o mediante modelos. Tanto los juicios razonados como los modelos exigen un esfuerzo de recopilación, análisis de alternativas y de cálculo de las mejores alternativas para tomar la decisión. Sin embargo, los modelos suponen la utilización de técnicas de planteamiento y solución previamente conocidas y que, en general, son capaces de analizar de manera sistemática todas las alternativas y escoger la mejor. Los juicios razonados, en cambio, no exigen técnicas conocidas previamente, sino básicamente la utilización de la lógica y el sentido común por parte de los que toman las decisiones, aunque parcialmente puedan utilizar alguna técnica conocida. Algunas decisiones no programadas pueden tomarse mediante modelos, pero otras muchas sólo pueden realizarse, en el mejor de los casos, gracias a juicios razonados. En otras muchas ocasiones es necesario tomar decisiones; sin embargo, dado lo habitual o repetitivo de estas situaciones, generalmente se tiene programada la forma en que se debe tomar la decisión. Así por ejemplo, las empresas tienen previsto cómo actuar cuando les llegan reclamaciones de sus clientes (por lo menos la mayor parte de las mismas), cuándo y qué cantidad deben pedir cuando su stock de mercancía llega a cierto nivel, o a partir de qué momento deben abrir una ventanilla adicional ante el incremento de la cola de las que ya están abiertas. La mayor parte de las decisiones que se toman en las empresas son, por tanto, decisiones programadas. En general, son decisiones que parten de una información muy concreta y bien definida, y el objetivo que se debe cumplir al tomarlas también es muy claro. Por ejemplo, cuando se hace un nuevo pedido se tienen los datos de la mercancía que hay en almacén en cada momento, cuál ha sido la demanda en los úl-

26

© Ediciones Pirámide

Decisiones, sistemas y modelos timos días o semanas, los costes de almacenaje, envío, etc., y el objetivo de la toma de decisiones es servir todos los pedidos al mínimo coste posible (o algún objetivo similar pero igualmente concreto). Una de las características importantes de estas decisiones es que deben estar optimizadas al máximo. Dada su frecuencia, cualquier decisión equivocada o no optimizada se repetirá muchas veces y, por tanto, causará pérdidas importantes a la empresa que las toma. Por esta razón, es muy importante tomar las decisiones programas de una manera perfecta o casi perfecta. Y para hacerlo es recomendable, en casi todos los casos, la utilización de modelos.

1.3. LOS MODELOS DE TOMA DE DECISIONES: EL MODELO CLÁSICO Y EL MODELO ADMINISTRATIVO Jones y George (2006) definen dos grandes formas o métodos para la toma de decisiones: el modelo clásico y el modelo administrativo. El modelo clásico es un modelo prescriptivo, esto es, especifica cómo deben tomarse las decisiones. En este modelo se parte de la premisa de que se conoce toda la información relevante, se tiene una idea perfectamente precisa del objetivo que se pretende y se es capaz de enumerar todas las alternativas posibles. A partir de esta información es posible determinar la decisión óptima, que es la que cumple mejor con el objetivo deseado. Por ejemplo, minimizar los costes de inventario, minimizar los costes de producción al realizar una mezcla que cumpla con determinadas características, etc. El modelo clásico se basa en el método científico heredado de las ciencias de la naturaleza. Algunos de los rasgos característicos del método científico, según el enfoque deductivo, son los siguientes: — Parte de una definición precisa del problema. — Requiere la recogida sistemática de toda la información relevante a la que se tenga acceso. — A partir de la definición del problema y de la información disponible, se formula un conjunto de hipótesis de trabajo. — Las hipótesis se verifican mediante la realización de un conjunto de experimentos. Si es necesario, se reformulan las hipótesis consideradas y/o se recoge más información. — Una vez que se ha repetido el proceso anterior hasta encontrar una solución aparentemente satisfactoria, se documenta ésta de forma que otros científicos puedan probar la falsedad de las hipótesis o del razonamiento que se ha desarrollado a partir de las mismas. Frecuentemente, la aplicación del método científico da lugar a una mejora sustancial en la calidad de las decisiones que se toman. En otros casos, la mejo© Ediciones Pirámide

27

Decisiones empresariales con hoja de cálculo ra puede ser más modesta. Sin embargo, en muy pocos casos el esfuerzo que se dedica a recoger, ordenar y analizar la información disponible resulta inútil. El método científico pone un énfasis especial en la naturaleza relativa de la verdad. Se considera que un planteamiento teórico o un modelo son científicos si son falsables1, esto es, si puede probarse que resultan inadecuados para describir los hechos observados. Desde este punto de vista, una afirmación como «el nivel del PNB de un país depende del nivel medio de las mareas que se han producido en ese año» es perfectamente científica, aunque probablemente sea falsa. Su naturaleza científica radica en el hecho de que puede obtenerse y procesarse toda la información necesaria para comprobarla. Sin embargo, una afirmación como «el nivel del PNB de un país depende de la voluntad de Dios» será aceptada como cierta por muchas personas, pero, sin embargo, no será una hipótesis científica, porque no pueden recogerse los hechos necesarios para verificarla. El método científico ha proporcionado grandes resultados a las ciencias de la naturaleza. Sin embargo, las ciencias sociales y, en concreto, la administración de empresas, tienen algunas características peculiares que impiden aplicar directamente el método científico: — Generalmente no es posible repetir experimentos en circunstancias idénticas. No se puede, por ejemplo, aplicar dos campañas publicitarias distintas en el mismo lugar y momento para medir su eficacia. — Tampoco es posible, por lo menos en la misma medida que lo es en las ciencias de la naturaleza, medir con exactitud los resultados de distintas acciones, debido a que éstos están influenciados por muchos factores que no son fácilmente aislables. De esta forma, una campaña de publicidad muy bien realizada puede ser un fracaso debido a factores exógenos, no aislables y difíciles de medir. A pesar de que existen diferencias como las que acabamos de mencionar, los procesos de toma de decisiones deben abordarse, cuando sea posible, utilizando una metodología que siga lo más fielmente posible el método científico. La aplicación del método científico a la toma de decisiones se ha denominado bajo distintos nombres: Management Science, Investigación operativa, Sistemas de decisión o Análisis de sistemas. Todas ellas tienen en común una aproximación científica, y, por tanto, cuantitativa, a la toma de decisiones. El empleo de una aproximación cuantitativa exige: — Estar bien informado. — Conocer o poder enumerar todas las alternativas que se derivan de las posibles decisiones. 1

28

Vid. Popper (1969). © Ediciones Pirámide

Decisiones, sistemas y modelos — Evaluar con objetividad los resultados correspondientes a cada posible decisión. En muchas ocasiones, no es posible aplicar el método científico porque no se cumplen algunas de las premisas que éste requiere: falta de información, dificultad para analizar todas las alternativas o incluso una parte importante de las mismas, y un desconocimiento de los efectos que puedan causar las decisiones tomadas. En estas situaciones es aplicable el modelo administrativo basado en las ideas de March y Simon (1957). Este modelo de toma de decisiones se basa en tres grandes premisas: — Información incompleta. Las empresas no suelen tener toda la información necesaria o ésta no es necesariamente correcta, y tampoco disponen del tiempo para recopilarla. Ello les impide poder enumerar todas las alternativas posibles. — Incertidumbre. En algunas ocasiones no es posible evaluar con un mínimo de objetividad, no ya la certidumbre de lo que va a pasar, sino la probabilidad de que pase (riesgo). A veces ni siquiera somos capaces de asignar una probabilidad a las diferentes alternativas posibles. En este último caso decimos que estamos ante una situación de incertidumbre. — Racionalidad limitada. Aun disponiendo de toda la información, y más aún si ésta es fragmentada, incompleta o en parte errónea, existe una limitación en la capacidad de interpretarla y procesarla, especialmente si, además, hay incertidumbre sobre los resultados de cada una de las alternativas consideradas. March y Simon afirman que cuando la toma de decisiones se encuentra con alguna de las premisas anteriores (información incompleta, incertidumbre o capacidad limitada), el decisor opta por una elección satisfactoria. Esto es, una elección en la cual el decisor explora un número limitado de alternativas y escoge la que le parece que más se aproxima al objetivo u objetivos deseados. A lo largo de este libro nos decantaremos por el modelo clásico basado en el método científico. Frecuentemente lo llamaremos sencillamente aproximación cuantitativa. En cualquier caso, la aproximación cuantitativa no es una metodología que pueda aplicarse por igual a todo tipo de problemas. Es más bien una forma de orientar los procesos de toma de decisiones. En los últimos 60 años se han desarrollado una gran cantidad de técnicas que nos permiten resolver problemas de toma de decisiones bajo la aproximación cuantitativa. Una posible clasificación de estas técnicas, aunque no es la más habitual, sería la siguiente: a) Técnicas cuantitativas simples. Su característica fundamental es que pueden aplicarse utilizando desarrollos algebraicos sencillos o herramientas © Ediciones Pirámide

29

Decisiones empresariales con hoja de cálculo fácilmente comprensibles, que no contienen algoritmos sofisticados de cálculo. La hoja electrónica, por ejemplo, es un entorno clásico de aplicación de este tipo de técnicas. b) Técnicas cuantitativas complejas. En su aplicación interviene un planteamiento matemático de cierto nivel. En general, son metodologías adecuadamente estructuradas y se conoce bien su rendimiento y procedimientos de resolución. Este tipo de métodos se aplican utilizando técnicas como la programación lineal, programación entera y mixta, simulación, etc. En general, forman parte de lo que, con más propiedad, se suele denominar técnicas de investigación operativa. c) Técnicas cualitativas. A partir de los años ochenta aparece otro tipo de técnicas, desarrolladas a partir de las investigaciones sobre inteligencia artificial. Estos sistemas utilizan información cualitativa y reglas lógicas, más que información puramente cuantitativa, para la toma de decisiones. Por esta razón, son conocidos como Sistemas expertos. Sin embargo, también existen técnicas puramente cualitativas que se utilizan para toma de decisiones cuando sólo se dispone de información cualitativa o subjetiva y el problema está relativamente mal definido. En este libro nos ocuparemos tan sólo de algunas de las técnicas que hemos llamado cuantitativas complejas, precisamente aquellas que tienen una utilización real más amplia. El ocuparnos de todas ellas, y más aún de las cualitativas y las simples, nos llevaría a una extensión muy por encima de las pretensiones de este libro.

1.4. SISTEMAS La filosofía que adoptaremos a lo largo de los siguientes capítulos se denomina aproximación de sistemas. Esta aproximación implica que cada problema debe ser examinado, en la medida en que esto sea posible, desde el punto de vista de la totalidad de las partes que lo componen y de las interrelaciones existentes entre las mismas. La aproximación de sistemas, llevada al límite, significa que para tomar una decisión deberían tenerse en cuenta todos o casi todos los aspectos del problema, puesto que todos ellos influyen, de una u otra forma, en cualquiera de las decisiones. Por ejemplo, subir el precio de un producto significa, probablemente, vender menos unidades. Esto dará lugar a cambios en los planes de producción que, a su vez, modifican los costes de producción, los planes financieros de la empresa, etc. Naturalmente, suele ser imposible tener en cuenta todos los efectos que se derivan de una decisión y, en general, deberemos conformamos con estudiar las distintas partes del sistema de forma más o menos aislada para, posteriormente,

30

© Ediciones Pirámide

Decisiones, sistemas y modelos unir estas partes y formar el sistema considerado en su conjunto. A cada una de las partes que componen un sistema la llamaremos subsistema. Ahora es conveniente definir con precisión el elemento esencial de la aproximación de sistemas, es decir, el sistema. Por sistema entendemos una colección de partes (subsistemas) interrelacionadas e interdependientes, diseñada para conseguir un conjunto de objetivos. La palabra «sistema» se utiliza de forma muy general. De esta forma, hablamos de sistemas políticos, sistemas sociales, sistemas físicos, sistemas económicos, etc. Nosotros nos referiremos casi exclusivamente a los sistemas económicos y, dentro de ellos, mayoritariamente a aquellos que tengan lugar en la empresa. En el contexto de sistemas es común referirse al análisis de sistemas. Para nosotros, análisis de sistemas es el proceso de descripción de un sistema y la investigación de las relaciones relevantes entre las partes del mismo. Esta definición tiene un sentido más amplio que la que se utiliza en informática. El análisis de sistemas planteado en un contexto puramente informático se refiere tan sólo al análisis de procedimientos administrativos o de otra índole que, posteriormente, van a reflejarse en un programa o conjunto de programas de ordenador. Desde nuestro punto de vista, el análisis de sistemas puede aplicarse a cualquier parte o aspecto de una organización; por ejemplo, a la descripción del sistema productivo o financiero, tanto en sus aspectos monetarios y físicos como informáticos.

1.5. MODELOS La realidad es sumamente compleja. Al analizar un sistema se obtiene una representación de parte de esta realidad, mostrando las interrelaciones y dependencias entre los elementos que lo componen. Sin embargo, la descripción de un sistema, con ser esencial, no permite por sí misma planificar y tomar decisiones adecuadas para la consecución de un fin determinado. Para ello es necesario construir un modelo. Un modelo es una visión particular y formalizada del sistema que se analiza. El modelo no representa toda la realidad, sino sólo los aspectos que influyen en los objetivos que desean conseguirse. Algunos ejemplos de modelo son los planos de una casa, la maqueta de un avión o un sistema de ecuaciones que representa un proceso productivo. El modelo toma de la realidad los aspectos que le son relevantes en cada caso y los formaliza. Así, en los planos de la casa, lo importante son las distancias y los tamaños de los distintos elementos considerados y no el tipo de material, por ejemplo. En el sistema de producción, lo relevante son las características de los productos y la capacidad de producción de las máquinas; no es relevante, en cambio, el tipo de máquinas utilizadas. Pese a que los modelos se utilizan en prácticamente todas las ciencias, su papel resulta especialmente importante en el contexto de las ciencias sociales, debido a la imposibilidad de reproducir experimentos en circunstancias controladas. © Ediciones Pirámide

31

Decisiones empresariales con hoja de cálculo La construcción de modelos utilizando el método científico y bajo la aproximación de sistemas podría representarse mediante el diagrama de la figura 1.1.

Realidad Datos Representación conceptual sin ambigüedades ni contradicciones — Formalización del sistema Modelo — Algoritmos — Desarrollos analíticos Solución general del modelo — Aplicación de datos concretos al modelo Solución particular del modelo

Verificación: ¿Es válido el modelo para los fines previstos? Sí

No

— Puesta en práctica de la solución o soluciones — Controlar

Implementación

Figura 1.1. Proceso de construcción de modelos mediante la aproximación de sistemas.

1.5.1. Objetivo de los modelos Hemos visto cómo la elaboración de modelos forma parte de un proceso cuyo objetivo final es la toma de decisiones científica. Las decisiones pueden tomarse en función del objetivo que se pretende conseguir con ellas. En este sentido, los modelos pueden tener como objetivo: a) Describir de manera formal la realidad o el sistema que la representa. b) Explicar el comportamiento de un sistema y las relaciones entre los distintos componentes del mismo.

32

© Ediciones Pirámide

Decisiones, sistemas y modelos Predecir el comportamiento del sistema bajo distintas hipótesis o supuestos de partida. d) Prescribir directamente la decisión más adecuada en función del objetivo y de las hipótesis consideradas. c)

1.5.2. Clasificación de los modelos Existe un número considerable de clasificaciones de modelos. Aquí consideramos sólo tres: 1.

Según el grado de abstracción. Los modelos se clasifican de menos a más abstractos en: Modelos

Físicos Gráficos Esquemáticos Analógicos Matemáticos o simbólicos

2.

Grado de abstracción

Menos abstractos

Más abstractos

Un ejemplo de modelo físico es una maqueta; un modelo gráfico típico es un dibujo o fotografía, etc. Nuestro planteamiento se centra tan sólo en los modelos matemáticos o simbólicos, donde la realidad se representa mediante ecuaciones y símbolos matemáticos. Según el entorno considerado. El mundo que nos rodea es siempre aleatorio. Sin embargo, con el fin de simplificar la elaboración y resolución de modelos, a menudo se supone que este entorno es determinista. En este caso, las metodologías más importantes de que se dispone son: — — — — — — — —

Programación lineal (PL). Programación por objetivos (PO). Programación multicriterio (PM). Programación entera (PE). Programación mixta (PEM). Programación no-lineal (PNL). Teoría de redes. Simulación determinista.

Cuando suponemos que los sucesos que afectan al sistema considerado están sujetos a las leyes de la probabilidad, estamos ante un entorno © Ediciones Pirámide

33

Decisiones empresariales con hoja de cálculo de riesgo, aleatorio o estocástico. En este caso se cuenta con las siguientes metodologías: — — — — — — 3.

Árboles de decisión. Teoría de la decisión en situaciones de incertidumbre. Gestión de inventarios. Teoría de colas. Cadenas de Markov. Simulación estocástica.

Según el área de aplicación. En función del área de aplicación pueden considerarse distintas categorías de modelos: a) Según el sector de aplicación: — — — —

Empresa industrial. Empresa financiera. Empresa de servicios no financiera. Administración Pública.

b) Según el área dentro de la empresa: — — — — —

Planificación estratégica. Producción. Financiación. Marketing. Personal.

1.5.3. Componentes de un modelo Los modelos objeto de interés para nosotros son matemáticos o simbólicos. Los elementos fundamentales de este tipo de modelos son las variables, las constantes y los parámetros. Las variables representan conceptos que pueden tomar distintos valores. Por ejemplo, la producción de gasolina en un modelo de planificación de refinerías. Las variables pueden ser de distintos tipos. Una posible clasificación sería: — Variables deterministas. Son aquellas cuyos valores pueden determinarse con completa exactitud. — Variables estocásticas. Los valores que toman están sujetos a una cierta distribución de probabilidad.

34

© Ediciones Pirámide

Decisiones, sistemas y modelos Las variables deterministas pueden ser, a la vez: — Continuas. Pueden asumir cualquier valor dentro de un intervalo. — Discretas. Sólo pueden tomar como valores una parte o la totalidad de los números naturales. Las constantes son cantidades cuyo valor permanece fijo en el modelo que se considera. Por ejemplo, el número máximo de horas-hombre disponibles en un sistema de producción. Los parámetros son cantidades que permanecen fijas, tan sólo respecto a cada opción particular de un modelo. Así, en un sistema de producción en el que se cuenta con un número determinado de horas-hombre, puede tener interés evaluar la respuesta del sistema en cuanto a la ocupación de la mano de obra ante distintos niveles de demanda. La consideración de constantes y parámetros depende de cada caso concreto. Lo que en un modelo se considera como constante, en otro puede ser un parámetro. Este planteamiento relativista no incluye, naturalmente, las constantes que podríamos llamar físicas, como pueden ser el número p, la velocidad de la luz, etc. Otra clasificación relevante es la que distingue entre variables endógenas, exógenas, controlables y no controlables: — Las variables dependientes o endógenas son aquellas que toman valores a partir de otras. Por tanto, no pueden ser controladas directamente. A veces se les llama también variables de salida u output del modelo o sistema. — Las variables independientes o exógenas son las de entrada al modelo. Éstas, junto a la estructura del modelo, son las que determinan los valores de las variables dependientes o endógenas. Las variables exógenas no controlables se refieren a aquellos factores que afectan al sistema, pero que están fuera del alcance del decisor. Por ejemplo, el tipo impositivo, la demanda (en muchos casos), etc. Los factores controlables representan aquellas variables exógenas que son manipulables por parte del decisor. En un sistema de producción puede ser considerado como controlable, por ejemplo, la cantidad disponible de factores de producción. Esta clasificación se representa de forma gráfica en la figura 1.2.

1.5.4. Métrica de los modelos Desde pequeños nos han enseñado que las peras sólo se deben sumar con peras y las manzanas con manzanas. En los procesos de modelización se utilizan muy distintos tipos de unidades. A las unidades en las que está medida cada variable la llamamos métrica. © Ediciones Pirámide

35

Decisiones empresariales con hoja de cálculo

Variables

Dependientes o endógenas

Independientes o exógenas

No controlables o factores

Controlables

Figura 1.2. Clasificación de variables.

Aunque en principio parece sencillo, no siempre es fácil saber la métrica en que están definidas cada una de las variables de un modelo. Las personas inexpertas en temas de modelización suelen cometer frecuentes errores en el manejo de diferentes tipos de unidades. Los siguientes ejemplos ilustran la forma en que se obtiene la métrica de una variable. EJEMPLO 1.1. Modelo de punto muerto o umbral de rentabilidad La fórmula que determina el número de unidades de producto que igualan a cero el beneficio o umbral de rentabilidad es: UB =

CF P − CV

Siendo: CF: Coste fijo en euros. P: Precio de venta, en €/unidad. CV: Precio de coste, en €/unidad. ¿En qué unidades está medido UB? La dimensión del resultado final será: UB =

Euros Euros = = Unidades Euros Euros Euros − Unidad Unidad Unidad

Es decir, la variable UB vendrá medida en unidades de producto.

36

© Ediciones Pirámide

Decisiones, sistemas y modelos

EJEMPLO 1.2. Modelo de colas Una expresión clásica en teoría de colas es: Wq =

A S (S − A)

donde A y S vienen dados en unidades/minutos. ¿En qué métrica está medido Wq? La dimensión del resultado final será: Wq =

uds./min. uds./min. = = min./uds. uds. uds. uds.2 min.2 min. min.

(

)

1.6. ALGORITMO Como vimos en la figura 1.1, la resolución de un problema empresarial bajo el método científico exige la elaboración o planteamiento de un modelo abstracto (generalmente un conjunto de ecuaciones matemáticas que representan al sistema o subsistema sobre el que se pretende decidir) y la resolución de este modelo, esto es, la solución al conjunto de ecuaciones representativas del sistema. La solución de este conjunto de ecuaciones se realiza en muchas ocasiones mediante un algoritmo. Una gran parte de los algoritmos actuales tienen la forma de programas de ordenador que se compran o alquilan por parte del usuario, el cual no tiene más que introducir los datos en un determinado formato, obteniendo la solución también generalmente en un formato predeterminado. Raramente las empresas desarrollan sus propios algoritmos y, en la mayoría de los casos, los compran ya «empaquetados». Suelen ser más eficientes y, por supuesto, mucho más económicos. En este sentido, no parece que pueda tener mucho interés saber qué es un algoritmo y cómo funciona; sin embargo, su conocimiento, por lo menos de sus elementos básicos, nos proporciona una información muy importante para interpretar las soluciones que obtenemos o para saber por qué no se ha obtenido ninguna solución o ésta parece disparatada. Por estas razones, abordamos en este apartado una breve descripción de lo que es un algoritmo y, más adelante, de algunos de los algoritmos que utilizaremos profusamente para resolver muchos de nuestros modelos. En informática es tradicional comparar a un ordenador con un idiot savant, que es incapaz de tomar decisiones por sí mismo, pero que, sin embargo, puede © Ediciones Pirámide

37

Decisiones empresariales con hoja de cálculo realizar operaciones aritméticas y lógicas a una velocidad vertiginosa. Con esta metáfora se pretende expresar la idea de que si un ordenador no dispone de un programa, no es más que una caja metálica, inerte e inútil. Para poder desarrollar un trabajo, el ordenador necesita que se le indiquen, de forma explícita, todas las operaciones que debe realizar para resolver un problema determinado y qué debe hacer en cada una de las posibles contingencias que se le presenten. En resumen, necesita que se le defina un algoritmo. Un algoritmo es un conjunto estructurado de reglas codificadas sin ambigüedades que, aplicado de forma mecánica a un problema concreto, permite determinar su solución o la imposibilidad de resolverlo. La estructuración y codificación no ambigua son propiedades esenciales de los algoritmos que se emplean en informática. Cada algoritmo es aplicable tan sólo a un problema o, como mucho, a una familia de problemas. El software de un ordenador se codifica a partir de un algoritmo o conjunto de algoritmos que permiten la resolución automática de los problemas que el programa está diseñado para resolver. Los algoritmos suelen componerse de dos elementos esenciales: órdenes y preguntas. Dentro de las órdenes suele distinguirse entre los mandatos de operación y las órdenes de entrada y salida. Una orden, como su propio nombre indica, es una instrucción que debe ser ejecutada por el ordenador. Los mandatos de operación indican a la CPU que realice algún cálculo con los datos del problema. Las órdenes de entrada y salida determinan dónde debe buscar el ordenador los datos del problema y dónde debe escribir los resultados. La distinción entre estos dos tipos de orden se debe, fundamentalmente, a que los mandatos de operación son, en general, realizados por la CPU del ordenador de forma independiente, mientras que la ejecución de las órdenes de entrada y salida requiere la colaboración entre la CPU y los dispositivos periféricos. Frecuentemente, los algoritmos se describen gráficamente mediante diagramas de flujo o flujogramas. Un diagrama de flujo está formado por un conjunto de símbolos que representan las órdenes y preguntas que definen el algoritmo. Los símbolos aparecen unidos por flechas que indican el orden en el que deben ejecutarse. En la figura 1.3 se definen algunos de los símbolos más corrientes. La codificación que utilizamos no es completa ni mucho menos, pero resulta suficiente para dar una imagen gráfica de la operativa de un algoritmo. A modo de ejemplo, describiremos formalmente un algoritmo sencillo diseñado para sumar una serie de números.

38

© Ediciones Pirámide

Decisiones, sistemas y modelos

Orden del proceso

Orden de entrada/salida

Pregunta

Comienzo/final del proceso

Figura 1.3. Algunos símbolos de uso común en diagramas de flujo.

EJEMPLO 1.3. Algoritmo para sumar una serie de números Para sumar un conjunto no determinado de números mediante un ordenador es necesario definir una estructura lógica de control de una cierta complejidad. El algoritmo puede definirse de la siguiente forma: 0.

Inicialización: — Fijar en cero un contador en el que se conserva el número de iteraciones. Llamaremos a este contador It. — Fijar en cero una variable en la que se va a conservar el resultado de la operación. A esta variable le asociaremos el nombre Suma. — Pedir al usuario que determine el número de datos que van a sumarse. A este valor lo llamaremos Num_Datos.

1. 2. 3

Obtener un dato del periférico estándar de entrada. Sumar el dato que acaba de leerse al contenido de la variable Suma. Aumentar en una unidad el contador de iteraciones It. Si el contador de iteraciones es igual al número de datos que especificó el usuario: — Imprimir el contenido de la variable Suma y terminar la ejecución. — O bien continuar el proceso en el paso 1.

© Ediciones Pirámide

39

Decisiones empresariales con hoja de cálculo En la figura 1.4 se muestra el diagrama de flujo del proceso que hemos descrito.

Comienzo

It = 0 Suma = 0

Leer Num_Datos

Leer Dato

Suma = Suma + Dato It = It + 1

Sí Escribir Suma

¿It = Num_Datos?

No

Fin

Figura 1.4. Diagrama de flujo de un algoritmo.

1.7. ELEMENTOS DE UN SISTEMA INFORMÁTICO DE PLANIFICACIÓN Y AYUDA A LA TOMA DE DECISIONES (DSS O DECISION SUPPORT SYSTEMS) La utilización de métodos de planificación y ayuda a la toma de decisiones (DSS o Decision Support Systems) solamente puede realizarse con problemas reales complejos si se dispone de un ordenador de cierta capacidad. Afortunada-

40

© Ediciones Pirámide

Decisiones, sistemas y modelos mente, la mayor parte de los ordenadores personales a partir de principios de este siglo tienen una capacidad suficiente para resolver una gran mayoría de los problemas de decisión que tienen las empresas. Sin embargo, tener un ordenador potente y un algoritmo de resolución eficiente no suele ser condición suficiente para que un sistema de toma de decisiones se utilice de manera extensa y regular en una empresa. El sistema debe ser fácil de manejar y los resultados deben ser entendibles por parte de los usuarios. Los principales elementos que se requieren de un sistema informático de ayuda a la toma de decisiones para que sea fácilmente manejable por el usuario son los siguientes: — Interfaz de usuario (entrada). — Módulo de operaciones. — Interfaz de usuario (salida). El interfaz de usuario se encarga de administrar todas las operaciones de entrada y salida de información del sistema. Existirá, por tanto, un módulo de entrada que se encargará de recoger todos los elementos de información que el sistema necesita para llevar a cabo sus funciones. Asimismo, el sistema debe disponer de un módulo de salida que se encargue de comunicar al usuario los resultados obtenidos. Frecuentemente, el interfaz de usuario no recibe toda la atención que merece, ya que se considera que sus funciones son «simple intendencia». Sin embargo, debe tenerse en cuenta que, en muchos casos, ésta es la única parte del sistema de la que es consciente el usuario final. Muchos buenos sistemas de planificación no se utilizan porque su usuario no se siente cómodo al manejarlos. A menudo, parte de la información de entrada se toma a partir de distintos elementos del entorno informático en el que opera el sistema. También resulta frecuente que parte de la salida alimente a distintas aplicaciones. Por ejemplo, consideremos el caso de una empresa que vende una gama variada de productos. Un posible sistema de ayuda a las decisiones consistiría en un programa que, a partir de las series históricas de ventas registradas, calcule previsiones de la evolución de las ventas de cada uno de los productos. Este programa tendría que leer directamente las series históricas de los registros de caja. Asimismo, una vez elaboradas las previsiones, sería adecuado pasarlas a un sistema de planificación que, teniendo en cuenta los costes de almacenamiento y las restricciones de capacidad de stock, elaborara un programa óptimo de compras. La salida de este segundo sistema podría alimentarse de nuevo a otra aplicación distinta, y así sucesivamente. De esta manera vemos cómo, idealmente, los sistemas de ayuda a la toma de decisiones deben estar perfectamente integrados dentro del sistema informático administrativo y de gestión de la empresa. En el caso de una empresa relativamente grande, esta integración puede dar lugar a una estructura de interrelaciones extraordinariamente compleja. © Ediciones Pirámide

41

Decisiones empresariales con hoja de cálculo Hasta la década de los noventa del siglo pasado era necesario en la práctica un interfaz de usuario casi para cada algoritmo o, alternativamente, utilizar los formatos de entrada y salida del propio algoritmo, lo que resultaba, en muchos casos, muy incómodo o incluso ilegible o incomprensible para el usuario final, salvo que éste fuera un verdadero especialista en el tema. Con la introducción de algoritmos en forma de funciones o macros en las hojas de cálculo, el panorama ha cambiado radicalmente. La mayoría de los decisores o empleados de cualquier empresa no solamente manejan la hoja de cálculo, sino que, además, están muy familiarizados con ella. Por esta razón, les resulta muy natural y cómodo utilizarla como entrada y salida de algoritmos de cálculo. Diríamos más aún: el algoritmo que está incluido como una función o macro en la propia hoja de cálculo se convierte en un apoyo sencillo para resolver bastantes de los problemas que se les plantean de una forma natural, sin tener que recurrir a especialistas que les hagan programas específicos que conecten datos y los presenten en formatos específicos. Por ello, en este libro hemos optado por presentar todos los modelos, con su planteamiento y solución, dentro de una hoja de cálculo. Salvo en casos muy específicos y minoritarios, es, sin duda, la forma más eficiente de resolver problemas de planificación y decisión. Por esta razón está desplazando, y lo hará cada vez en mayor medida, a otros procedimientos más costosos en su desarrollo, aunque puedan ser algo más eficientes en algunos casos muy particulares.

1.8. SOFTWARE DE PROGRAMACIÓN MATEMÁTICA DISPONIBLE Antes de entrar en los algoritmos que vamos a desarrollar en los próximos capítulos, merece la pena mencionar que será necesario emplear algún programa informático que los contenga de forma «empaquetada». En el mercado existe un número amplio de programas o códigos comerciales. La mayoría de ellos están disponibles para distintos entornos (Windows de Microsoft, Macintosh OS y/o Unix/Linux). Básicamente, se pueden diferenciar dos tipos: los códigos comerciales que se limitan a buscar soluciones óptimas, y los que ayudan a formular el problema y a interpretar su solución. A continuación enumeraremos algunos de ellos, indicando el URL en que se pueden encontrar en Internet. A la hora de elegir uno de ellos se recomienda hacer un benchmarking con varios atributos: velocidad, flexibilidad con sistemas operativos, arquitectura de hardware, interfaces, descuentos especiales para colectivos, etc.

1.8.1. Códigos comerciales Los códigos comerciales se emplean básicamente para determinar la solución óptima de un problema de programación matemática.

42

© Ediciones Pirámide

Decisiones, sistemas y modelos TABLA 1.1 Códigos comerciales Adaptive Optimization Engine

http://www.quantumleap.us/EnablingTechnologies/AdOpt.html

C-WHIZ

http://www.ketronms.com/cwhiz.shtml

CPLEX

http://www.ilog.com/products/cplex/

FortMP

http://www.optirisk-systems.com/products/fortmp.html

HI-PLEX HS/LP

http://www.haverly.com/

LAMPS

http://www.amsoft.demon.co.uk/

LINGO & LINDO API

http://www.lindo.com/

LOQO

http://www.princeton.edu/~rvdb/loqo/

LPS-867

http://www.aae.com/products/products.html

MINOS

http://www.sbsi-sol-optimize.com/asp/sol_product_minos.htm

MINTO

http://www2.isye.gatech.edu/people/faculty/Martin_Savels bergh/software/

MOSEK

http://www.mosek.com/

MPSIII

http://www.ketronms.com/products.shtml

OSL SAS/OR

http://support.sas.com/rnd/app/or.html

Premium Solver Platform & Engines

http://www.solver.com/

SOPT

http://www.saitech-inc.com/Products/Prod-SOPT.asp

XA

http://www.sunsetsoft.com/

Xpress-MP

http://www.dashoptimization.com/

FUENTE: Optimization Technology Center of Northwestern University and Argonne National Laboratory.

1.8.2. Códigos de modelización Los códigos comerciales de modelización se diseñan para ayudar a formular problemas y a analizar sus soluciones. El proceso de conversión al formato que necesite el software para resolver el problema es un proceso automático y que no necesita conocer el usuario. © Ediciones Pirámide

43

Decisiones empresariales con hoja de cálculo TABLA 1.2 Códigos de modelización AIMMS

http://www.aimms.com/aimms/index.cgi

AMPL

http://www.ampl.com/

ANALYZE Aspen SCM

http://www.aspentech.com/products/product.cfm?IndustryID=0&Pro ductID=141&CFID=6577859&CFTOKEN=70865289&jsessionid=9c3 03359171190226392009TR

DecisionPRO

http://www.vanguardsw.com/products/vanguard-studio/

DATAFORM

http://www.ketronms.com/dataform.shtml

EZMod

http://www.modellium.com/Produits/Outilsded%C3%A9veloppement/ EZMod/tabid/68/Default.aspx

GAMS

http://www.gams.com/

LINGO

http://www.lindo.com/

LP-TOOLKIT

http://www.eurodecision.fr/English/html/lp-toolkit.html

LPL

http://www.virtual-optima.com/en/products.html

MathPro

http://www.mathproinc.com/

MINOPT

http://titan.princeton.edu/MINOPT/

MODLER

http://www.modler.com/FullModler.html

MPL

http://www.maximal-usa.com/

O-Matrix

http://www.omatrix.com/lpsolve.html

OML

http://www.ketronms.com/oml.shtml

OMNI

http://www.haverly.com/

OPL Development Studio

http://www.ilog.com/products/oplstudio/

Premium Solver Platform

http://www.solver.com/

TOMLAB

http://tomopt.com/

What’s Best!

http://www.lindo.com/

Xpress-Mosel

http://www.dashoptimization.com/home/products/products_mosel.html

FUENTE: Optimization Technology Center of Northwestern University and Argonne National Laboratory.

44

© Ediciones Pirámide

Decisiones, sistemas y modelos

1.8.3. Códigos de demostración gratuitos Algunos de los anteriores códigos ofrecen versiones gratuitas de demostración, que permiten al usuario instalarse el programa con una duración o tamaño de problema limitados: TABLA 1.3 Códigos de demostración gratuitos AIMMS AMPL con CPLEX y MINOS ANALYZE, MODLER y RANDMOD C-WHIZ y OML LINDO, LINGO y What’s Best! LOQO con interface AMPL LPL MOSEK API y herramientas de MATLAB MPL con CPLEX OPL Development Studio con CPLEX Premium Solver Platform TOMLAB con MINOS, CPLEX, Xpress y otros que corren desde MATLAB Xpress-IVE con el optimizador Xpress-MP y Xpress-Mosel FUENTE: Optimization Technology Center of Northwestern University and Argonne National Laboratory.

1.9. LAS SOCIEDADES Y REVISTAS QUE PROMUEVEN LA PLANIFICACIÓN Y TOMA DE DECISIONES MEDIANTE EL MÉTODO CIENTÍFICO Todas las escuelas de pensamiento tienen una serie de sociedades y revistas que reflejan tanto sus principios como su evolución. Puede considerarse que la planificación y toma de decisiones en la empresa mediante el método científico está representada por las siguientes sociedades: © Ediciones Pirámide

45

Decisiones empresariales con hoja de cálculo — Institute for Operations Research and Management Science (INFORMS): se crea en 1995 gracias a la unión de The Operations Research Society of America (ORSA) y The Institute for Management Science (TIMS) (http:// www.informs.org). Entre sus publicaciones destacan: • Operations Research (http://iol-a.informs.org/site/OperationsResearch/). • Management Science (http://mansci.pubs.informs.org/). • Interfaces (http://interfaces.pubs.informs.org/). — The Association of European Operacional Research Societies (EURO) (http://www.euro-online.org/), que cuenta con las revistas: • European Journal of Operacional Research (http://www.elsevier.com/wps/ find/journaldescription.cws_home/505543/description#description). • Operations Research Letters (http://www.elsevier.com/wps/find/journaldescription.cws_home/505567/description#description). • Computers and Operations Research (http://www.elsevier.com/wps/find/ journaldescription.cws_home/300/description#description). — La Sociedad Española de Estadística e Investigación Operativa (http:// www.seio.es/), que cuenta entre sus publicaciones con la Revista Top (antes Trabajos de Investigación Operativa) (http://www.seio.es/top/). — OMEGA, The International Journal of Management Science (http://www. omegajournal.org/): no está adscrita a ninguna asociación, pero es de reconocido prestigio en el ámbito internacional.

BIBLIOGRAFÍA Jones, G. R. y George, J. M. (2006). Administración contemporánea. McGraw-Hill, Cuarta edición. March, J. G. y Simon, H. A. (1958). Organizations. New York: NY Wiley. Popper, K. R. (1969). Conjectures and Refutations: The Growth of Scientific Knowledge. Routledge and Kegan.

46

© Ediciones Pirámide

2

Decisiones empresariales y la hoja de cálculo

2.1. INTRODUCCIÓN La mayor parte de las técnicas que se explican a lo largo de este libro ya se conocían en los años cincuenta y sesenta. A pesar de ello, su utilización por parte de las empresas, especialmente pymes, ha sido escasa hasta hace relativamente pocos años, debido fundamentalmente a la dificultad de cálculo y carestía en el desarrollo de estas técnicas. La aparición de la hoja de cálculo en los años ochenta ha supuesto una gran revolución en la cuantificación de la toma de decisiones en las empresas. De hecho, se puede afirmar que la hoja de cálculo ha hecho mucho más para impulsar la toma de decisiones empresariales en forma cuantitativa que los cuarenta años anteriores de métodos cuantitativos desarrollados en el mundo académico. Y ello, prácticamente, sin desarrollos adicionales teóricos de ningún tipo. Aún hoy muchas empresas, especialmente pymes, utilizan la hoja de cálculo para tomar decisiones con más o menos sentido común, pero obviando la utilización de métodos o técnicas más rigurosos como los que aquí se desarrollan. Sin embargo, esta forma de actuar conduce casi siempre a soluciones subóptimas. En cambio, existe software muy asequible y que funciona sobre las mismas hojas de cálculo que, junto con técnicas perfectamente conocidas, puede utilizarse para mejorar la toma de decisiones hasta garantizar que se tiene la solución óptima. En este capítulo ilustramos, mediante varios ejemplos, cómo se pueden tomar decisiones con una hoja de cálculo y un cierto sentido común. Con ello no pretendemos que el lector actúe de esta forma cuando en su empresa deba tomar decisiones, sino ilustrar lo que es una forma bastante habitual de hacerlo, particularmente de muchas pymes. En capítulos posteriores veremos cómo los mismos problemas que resolvemos aplicando intuición y un cierto sentido común en este capítulo son resueltos de forma óptima mediante los métodos y técnicas que se explican a lo largo del libro. © Ediciones Pirámide

47

Decisiones empresariales con hoja de cálculo La resolución de varios problemas de forma intuitiva también nos ayudará a entender mejor la metodología para resolver el mismo problema pero de una forma más rigurosa, más científica si se quiere. Para ello, explicaremos, junto con la resolución de cada problema, algunos de los elementos más importantes del proceso de modelización que veremos en capítulos posteriores, tales como variables, restricciones, función objetivo, etc. Estos conceptos surgen de una forma bastante natural cuando se aborda el problema de manera intuitiva y, por tanto, suponen una ayuda importante para aprender a modelizar problemas de planificación y decisión de manera rigurosa.

2.2. LA HOJA DE CÁLCULO Y LA UTILIZACIÓN DE LOS MÉTODOS CUANTITATIVOS EN LA PLANIFICACIÓN Y TOMA DE DECISIONES EMPRESARIALES En el año 1982 aparece el llamado PC u ordenador personal, que va a suponer una gran revolución en el mundo de la informática. Casi simultáneamente aparecen las primeras versiones de la hoja de cálculo. Una de las primeras hojas de cálculo se llamó VISICALC y tenía una capacidad y facilidades relativamente limitadas debido a la escasa potencia de los primeros ordenadores personales. A finales de los ochenta aparece la que, durante bastantes años, fue la hoja de cálculo más popular y que tenía ya, en buena medida, las facilidades de la hoja de cálculo más popular actualmente. Se llamaba LOTUS 1-2-31. A ésta le sucedió la que actualmente es la hoja de cálculo más utilizada por el momento: Excel de Microsoft, aunque sigue coexistiendo con otras parecidas pero menos conocidas o utilizadas. Ya la hoja de cálculo LOTUS 1-2-3 permitía incorporar lo que entonces se llamaban add-in y que hoy llamamos normalmente macros. Las macros son programas a los que se les llama desde una celda dentro de la hoja de cálculo mediante un nombre clave. Por ejemplo, «PROMEDIO» calcula el promedio de una serie de datos numéricos. Estas macros se ejecutan mediante las llamadas funciones (es el caso del ejemplo anterior con «PROMEDIO») o pulsando encima de un nombre específico o etiqueta como «SOLVER». En este libro vamos a hacer un uso muy intensivo de una de estas macros que se encuentran en Excel: «SOLVER». Antes de los años noventa, casi todos los problemas que vamos a ver a lo largo de este libro se resolvían con algoritmos o lenguajes específicos. Cada uno de ellos tenía su propia forma de tratamiento de los datos de entrada y de salida o incluso su propio lenguaje de programación (era el caso, por ejemplo, de los lenguajes de simulación). Este hecho encarecía mucho los proyectos, ya que para 1 Ahora forma parte de Lotus SmartSuite de IBM. Puede consultar información en: http://www. 306.ibm.com/software/lotus/products/123/.

48

© Ediciones Pirámide

Decisiones empresariales y la hoja de cálculo implementar un sistema para tomar decisiones en la empresa generalmente se necesitaba, como mínimo, hacer un tratamiento de los datos, antes y después de ser utilizados, por algún algoritmo estándar. Esto implicaba desarrollar programas de ordenador ex profeso. En no pocos casos, además, esta programación debía hacerse con lenguajes especiales de programación (por ejemplo, generadores de matrices e informes, lenguajes especiales de simulación, etc.), conocidos por un número muy limitado y especializado de personas. Esta situación suponía un coste en tiempo y dinero que muchas veces hacía poco rentable, o directamente inviable, la toma de decisiones con estas técnicas en empresas que no fueran de un gran tamaño. En 1990, año en el que se publica un libro directamente precedente del actual2, utilizábamos un software entonces muy popular (LINDO) para resolver una parte de los problemas que se exponen en el presente libro. Este software consiste en un programa específico en el que se deben introducir los datos de entrada con un determinado formato para obtener la solución con un formato de salida también muy rígido. A pesar de que el programa es muy eficiente, su utilización ha ido perdiendo adeptos en favor de otros programas que están directamente conectados con hojas de cálculo (como SOLVER). La razón ya la hemos comentado antes: para resolver problemas reales, que suponen tamaños relativamente grandes, la utilización de programas o lenguajes específicos de entrada y salida encarece mucho su desarrollo. Este desarrollo resulta totalmente necesario para conectar los datos que necesita como input el software de resolución del modelo (algoritmo), y que probablemente estén en varios ficheros y en formatos muy dispares dentro de la empresa, así como los de salida del propio software de resolución, con algún programa que presente los resultados de forma legible para las personas que finalmente deben tomar las últimas decisiones (generalmente algún directivo). En cambio, todos estos desarrollos y capacidades específicas anteriores no resultan necesarios cuando el software específico de resolución (algoritmo) está como una función de una hoja de cálculo, lo que abarata muy considerablemente su desarrollo e implantación. A medida que se ha ido popularizando la hoja de cálculo, también se ha sofisticado la forma en que se toman las decisiones en las empresas. El número y envergadura de los cálculos para planificar o tomar una decisión se ha ido incrementando de manera muy importante con respecto a como se había hecho hasta la década de los ochenta. Y ello debido sobre todo a la facilidad y rapidez en realizar los cálculos necesarios. Las empresas no están aplicando nuevas teorías o métodos. Sencillamente utilizan una herramienta de cálculo muy potente, de la que antes no disponían, para aplicar algunas teorías ya conocidas, y su sentido común para la planificación y toma de decisiones que antes hacían de manera mucho menos cuantitativa. Por otra parte, el mundo académico no ha prestado 2 Daniel Villalba y Miguel Jerez (1990). Sistemas de optimización para la planificación y toma de decisiones. Madrid: Pirámide.

© Ediciones Pirámide

49

Decisiones empresariales con hoja de cálculo mayor atención a este cambio en las empresas, puesto que no ha supuesto el nacimiento de nuevas ideas, «solamente» la aplicación más amplia y eficiente de muchas viejas ideas bien conocidas en el ámbito académico. La mayor facilidad y abaratamiento en la utilización de las técnicas y métodos explicados en este libro, con lo que supone de mejora en la toma de decisiones, induce a un aumento continuado del uso de este tipo de métodos y técnicas, lo cual a su vez generará una mayor divulgación de las mismas, convirtiéndose, cada vez más, en una herramienta habitual para cualquier tipo de empresa, ya sea gran empresa o pyme. De hecho, la utilización de la hoja de cálculo es probablemente la mejor antesala al empleo de la cuantificación en la toma de decisión en las pymes, primero de una forma intuitiva, y después de forma más rigurosa y científica. Muchas de las aplicaciones para planificación y toma de decisiones realizadas en hojas de cálculo son, aún hoy, muy poco sofisticadas. Consisten en buscar soluciones más o menos óptimas sobre la base de ensayar unas pocas o muchas alternativas o hacer algunos análisis de sensibilidad poco rigurosos. En otras palabras, con la utilización de la hoja de cálculo se da un paso muy importante en la buena dirección, mejorando la toma de decisiones que se hacía con anterioridad, pero que no llega a ser, en la mayor parte de los casos, una decisión rigurosa que nos lleve a la decisión mejor, esto es, la óptima. Como es bien sabido, el mundo empresarial es cada vez más competitivo, y eso, significa, entre otras cosas, que siempre es necesario estar un paso más adelantado que el competidor. Todas las empresas manejan hoy en día la hoja de cálculo para tomar decisiones. Éste, por tanto, ya no es un hecho diferencial. ¿Cuál es pues el siguiente paso? Tomar decisiones de forma más rigurosa, más científica. Para hacerlo es necesario utilizar un conjunto de técnicas que nos permitan tomar las mejores decisiones. Para ilustrar la diferencia entre las decisiones que pueden tomarse de manera más o menos intuitiva mediante una hoja de cálculo y la forma en la que pueden y deben tomarse de forma rigurosa, en este capítulo ilustraremos con varios problemas la forma en que se toman las decisiones con una hoja de cálculo y un mínimo de sentido común. Es como lo hacen la mayoría de las empresas, sobre todo pymes. En capítulos posteriores explicaremos, utilizando estos mismos problemas, cómo deben resolverse de forma rigurosa, de tal manera que nos conduzcan a la decisión más adecuada (óptima).

2.3. EJEMPLOS SOBRE TOMA DE DECISIONES CON HOJA DE CÁLCULO En los siguientes apartados se plantean una serie de problemas que se resuelven con una hoja de cálculo y un cierto sentido común. En muchos casos, la solución de cada lector al mismo problema sería algo distinta. Sin embargo, las

50

© Ediciones Pirámide

Decisiones empresariales y la hoja de cálculo soluciones aportadas en este capítulo y las que puedan aportar los diferentes lectores tendrán algo en común: se acercarán a la solución óptima y, en la mayoría de los casos, no podremos dictaminar si efectivamente son las óptimas o no lo son. Sólo podremos asegurar cuál es la mejor de entre todas las soluciones halladas, pero esta solución no será necesariamente la óptima. Los ejemplos que se plantean son generalmente más simples que la gran mayoría de los problemas reales empresariales. Y eso es así con el fin de que sean más comprensibles y pedagógicos. Lógicamente, con los procedimientos que se plantean en este capítulo, los problemas de la vida real serían mucho más complicados de resolver, y la solución obtenida se alejaría mucho más de la óptima que puede obtenerse con los métodos y técnicas que se explican en capítulos posteriores. EJEMPLO 2.1. Cultivo de cereales El propietario de una finca de regadío de 80 hectáreas se plantea la posibilidad de plantar trigo y/o maíz para venderlo a una compañía de fabricación de bioetanol que está cerca de su finca. El propietario de la finca sabe por experiencia que el rendimiento medio del trigo es de 5 toneladas por hectárea (t/ha) cultivada, mientras que el del maíz es de 7 t/ha. Para estas producciones medias, sabe que la cantidad de agua que precisa es de 0,8 m3 de agua por cada hectárea plantada de trigo y 2 m3 por cada hectárea plantada de maíz. El agua tiene que comprarla a la comunidad de regantes a un coste de 100 €/m3 y sólo puede disponer de un máximo de 124 m3 a lo largo de toda la campaña. La compañía que le compra el maíz o trigo le pagará 140 € por tonelada, independientemente de que sea maíz o trigo. El propietario tiene, además, los costes adicionales que muestra la tabla 2.1: TABLA 2.1 Costes adicionales para sembrado y recolección Trigo (€/ha)

Maíz (€/ha)

Sembrado

360

400

Recolección

160

180

El propietario desea saber cuántas hectáreas de trigo y maíz debe plantar para maximizar su beneficio. Cualquier propietario con un mínimo de sentido común, y sin necesidad de una gran preparación académica, intentaría hacer unos pequeños cálculos para buscar una solución relativamente buena, y si puede buscaría la mejor solución. ¿Cómo? Lógicamente, viendo cuál es el beneficio que le proporcionan diferentes proporciones de tierra dedicadas al cultivo de trigo y maíz. Naturalmente, eso debería hacerlo de forma sistemática. Veamos una posible manera de hacerlo. © Ediciones Pirámide

51

Decisiones empresariales con hoja de cálculo En primer lugar, y a partir de los datos anteriores, es fácil calcular el ingreso y coste por cada hectárea dedicada al cultivo de trigo o maíz, como se indica en la tabla 2.2. TABLA 2.2 Cálculo de ingresos, costes y beneficios por hectárea cultivada de cereal Trigo

Producción (t/ha) Precio €/t Ingresos (€/ha) 3

Consumo de agua (m /ha) Coste riego (€/ha)

Maíz

5

7

140

140

700

980

0,8

2

80

200

Coste sembrado (€/ha)

360

400

Coste recolección (€/ha)

160

180

Costes (€/ha)

600

780

Beneficio (€/ha)

100

200

En la tabla 2.2 podemos observar que el beneficio unitario por hectárea de cultivo de maíz (200 €) es el doble que si lo dedicamos a trigo (sólo 100 €). Si no tuviéramos otro tipo de restricciones la solución sería fácil: dedicar toda la finca (80 hectáreas) al cultivo de maíz, en cuyo caso ganaríamos 16.000 € año (80 × 200). Sin embargo, no es posible dedicar toda la finca al cultivo de maíz, ya que necesitaríamos una cantidad de agua de la que no disponemos (80 ha × 2 m3/ha = 160 m3, que es claramente superior a los 124 m3 de los que disponemos). ¿Hasta cuánta superficie podemos dedicar a cultivar maíz para no consumir más agua de la disponible? Una forma de calcularlo es probar a ir dividiendo las 80 hectáreas en una parte destinada a trigo y la restante a maíz, y calcular ingresos, costes y beneficios en cada caso, para ver qué cantidad de agua se consume. Esto es lo que hemos hecho en una hoja Excel que se expone como tabla 2.3. Como puede verse, en la fila en la que se dedican 30 hectáreas al cultivo de trigo y 50 al de maíz se consume todo el agua disponible y se obtiene el beneficio máximo, que resulta ser de 13.000 €. Este podría ser el óptimo, aunque no estamos seguros del todo, ya que hemos utilizado incrementos discretos (del cultivo de trigo) y decrementos (del cultivo de maíz) de 5 hectáreas en cada fila, por lo que el óptimo podría estar en alguna cantidad intermedia, por ejemplo entre 25 y 30 hectáreas de trigo y el resto de maíz, o entre 30 y 35 hectáreas de trigo y el resto de maíz. Pero eso lo podríamos averiguar fácilmente en una hoja de cálculo si en lugar de poner incrementos de 5 ha pusiéramos incrementos de 1 o 0,1 ha. Está claro que al final llegaríamos a una solución óptima, incluso con muchos decimales.

52

© Ediciones Pirámide

Decisiones empresariales y la hoja de cálculo TABLA 2.3 Ingresos, costes y beneficios (€/ha) Precio venta €/tm Rendimiento cereal (tm/ha) Coste sembrado (€/ha) Coste recolección (€/ha) 3

Necesidades de agua (m /ha)

140

140

5

7

360

400

160

180

0,8

2

Ingresos (€/ha)

700

980

Costes (€/ha)

600

780

Beneficio (€/ha)

100

200

Hectáreas totales de cultivo

80 3

Máxima cantidad de agua disponible m

124

3

100

Coste del agua €/m

Tm produc. maíz

Utilización agua m3

Diferencia disponibilidad

Ingresos

Costes

Beneficio

0

560

160

−36

78.400

62.400

16.000

75

25

525

154

−30

77.000

61.500

15.500

10

70

50

490

148

−24

75.600

60.600

15.000

15

65

75

455

142

−18

74.200

59.700

14.500

20

60

100

420

136

−12

72.800

58.800

14.000

25

55

125

385

130

−6

71.400

57.900

13.500

30

50

150

350

124

0

70.000

57.000

13.000

35

45

175

315

118

6

68.600

56.100

12.500

40

40

200

280

112

12

67.200

55.200

12.000

45

35

225

245

106

18

65.800

54.300

11.500

50

30

250

210

100

24

64.400

53.400

11.000

55

25

275

175

94

30

63.000

52.500

10.500

60

20

300

140

88

36

61.600

51.600

10.000

65

15

325

105

82

42

60.200

50.700

9.500

70

10

350

70

76

48

58.800

49.800

9.000

75

5

375

35

70

54

57.400

48.900

8.500

80

0

400

0

64

60

56.000

48.000

8.000

Has. trigo

Has. maíz

0

80

5

© Ediciones Pirámide

Tm produc. trigo

53

Decisiones empresariales con hoja de cálculo El problema anterior es muy simple y se resuelve fácil y rápidamente, sin otras herramientas más que un cierto sentido común y una buena herramienta como las actuales hojas de cálculo. Sin embargo, a poco que compliquemos este problema para hacerlo más real o hagamos algunas preguntas relevantes, su solución mediante una simple hoja de cálculo puede resultar mucho más complicada. Por ejemplo, si suponemos que el precio del agua varía en función de la cantidad consumida (a más agua consumida mayor precio unitario) y que existen elementos adicionales, junto con sus costes, que hay que tener en cuenta como pueden ser: abono, necesidad de cambiar de cultivo cada año o dos años para no agotar la tierra, etc., entonces la solución con una simple hoja de cálculo puede resultar muy difícil o imposible y tendremos que recurrir necesariamente al tipo de técnicas que veremos en capítulos posteriores, por lo menos para averiguar la decisión óptima. Para resolver problemas como el que acabamos de ver, tanto si es con una mera hoja de cálculo como mediante técnicas más complicadas que veremos en los próximos capítulos, es fundamental conocer las diferentes partes y conceptos que hemos utilizado para elaborar la solución. Es posible hablar sin saber gramática y aun sin saber leer, pero para expresarse correctamente y de manera precisa, de palabra y por escrito, es importante conocer bien las reglas gramaticales y sintácticas. Veamos cómo se aplica esta metáfora al ejemplo que acabamos de ver. Podemos decir que para resolver el ejercicio anterior hemos elaborado un modelo. En este modelo hemos determinado que había dos variables de decisión: el número de hectáreas dedicadas a cultivar maíz y a trigo. También contiene dos restricciones: el número de hectáreas totales que se pueden cultivar (80) y el agua máxima disponible (124 m3). Y tenemos una función objetivo que queremos optimizar y que corresponde al beneficio o margen total, que es la diferencia entre ingresos y gastos. En definitiva, hemos elaborado un modelo y una posible solución con dos variables y dos restricciones. Además, podemos decir que las variables son continuas, pudiendo tomar cualquier valor entre 0 y 80.

EJEMPLO 2.2. Transporte de bioetanol Un problema muy habitual en muchas empresas manufactureras es el llamado problema de transporte. En su versión más sencilla, este problema consiste en transportar unas determinadas cantidades de producto, desde unos orígenes, en general plantas donde se fabrica el producto, a unos lugares llamados de demanda donde se debe situar este producto. Lógicamente, la cantidad de producto que se puede fabricar en cada planta es limitada y siempre se desea servir la totalidad de la cantidad demandada en cada punto de demanda (otra fábrica, hipermercado, almacén, etc.). Un ejemplo nos ilustrará, de nuevo, sobre cómo podemos obtener una solución a este tipo de problemas mediante una hoja de cálculo, aunque no necesariamente la solución que obtengamos será la óptima. Más adelante, en otro capítulo,

54

© Ediciones Pirámide

Decisiones empresariales y la hoja de cálculo veremos cómo podemos plantear y calcular de manera sencilla y fácil la solución de este problema y conseguir con absoluta seguridad la solución óptima. Supongamos que en España hay tres plantas de producción de bioetanol3 con la siguiente producción máxima en m3 de bioetanol, mostrada en la tabla 2.4: TABLA 2.4 Producción máxima de cada planta en m 3 Producción máxima (m3)

A Coruña

150.000

Salamanca

200.000

Cartagena

130.000

Total producción

480.000

Por otra parte, la demanda de bioetanol en varias refinerías españolas es la siguiente: TABLA 2.5 Demanda de bioetanol de cada refinería en m 3

Demanda

Bilbao

A Coruña

Huelva

Algeciras

Puertollano

Castellón

Tarragona

70.000

65.000

55.000

70.000

40.000

50.000

90.000

Los kilómetros que hay entre cada planta de producción de bioetanol y cada refinería son los siguientes: TABLA 2.6 Kilómetros de cada planta de producción de bioetanol a cada refinería Destino Origen

Bilbao

A Coruña

644

Salamanca Cartagena

A Coruña

Huelva

Algeciras

Puertollano

Castellón

Tarragona

20

1.006

1.072

799

1.026

1.065

395

473

533

599

353

629

714

796

1.010

628

613

357

306

493

3 El bioetanol es alcohol obtenido de la caña, de la remolacha de azúcar o de algunos cereales (maíz, trigo o cebada), y que una vez fermentado y tratado se convierte en alcohol etílico, que puede ser utilizado como sustituto de la gasolina o bien ser mezclado con ésta.

© Ediciones Pirámide

55

Decisiones empresariales con hoja de cálculo Supondremos, para simplificar, que el bioetanol sólo se puede transportar mediante camiones cisterna y que su coste es de 0,06 € por kilómetro y metro cúbico transportado. Lógicamente, los productores de bioetanol quieren suministrar toda la demanda con el coste de transporte más bajo posible. En principio, el transporte se puede hacer desde cualquier origen a cualquier destino. Sin embargo, el sentido común nos dice que, desde cada origen, debemos intentar llevar el producto, en primer lugar, al destino más cercano hasta satisfacer toda su demanda; una vez satisfecha esta demanda, deberemos satisfacer al siguiente sitio más cercano, y así sucesivamente hasta que hayamos satisfecho toda la demanda o no tengamos más producto para servir desde el primer origen (planta). Cuando hayamos agotado la producción de la primera planta, deberemos hacer lo mismo con la segunda y después con la tercera. Naturalmente, podríamos intentar otras reglas algo diferentes y quizá mejores, pero la anterior es sencilla de implementar y probablemente obtendremos una solución bastante buena. Antes de empezar con el procedimiento de cálculo que acabamos de describir, debemos analizar si las plantas producen suficiente mercancía para satisfacer la demanda. De no ser así, no habría solución posible que satisficiera toda la demanda. En nuestro ejemplo sí que existe solución, ya que la capacidad de producción es de 480.000 m3 y la demanda de 440.000 m3. Por tanto, se podrá servir toda la demanda, pero alguna planta se quedará sin producir hasta su máximo o quizá las tres. Para ilustrar cómo implementamos las reglas anteriores en una hoja de cálculo, hemos insertado en primer lugar la tabla 2.7.a, en la que figuran los kilómetros entre cada origen y cada destino. En la siguiente tabla 2.7.b se ha añadido una columna adicional («Quedan») en la que se calcula la producción que queda libre, esto es, el total ya «enviado» a todos los destinos menos la producción máxima disponible; y una fila adicional («Faltan») en la que se indican las cantidades que faltan para satisfacer totalmente la demanda de cada refinería. TABLA 2.7.a Kilómetros entre cada origen y cada destino Destino Origen

Bilbao

A Coruña

Huelva

Algeciras

Puertollano

Castellón

Tarragona

Producción

A Coruña

644

20

1.006

1.072

799

1.026

1.065

150.000

Salamanca

395

473

533

599

353

629

714

200.000

Cartagena

796

1.010

628

613

357

306

493

130.000

Demanda

70.000

65.000

55.000

70.000

40.000

50.000

90.000

440.000

56

© Ediciones Pirámide

Decisiones empresariales y la hoja de cálculo TABLA 2.7.b Incluye una columna adicional («Quedan») en la cual se indica la producción que queda libre, y una fila adicional («Faltan») que muestra las cantidades que faltan para satisfacer totalmente la demanda de cada refinería

A Coruña

Bilbao

A Coruña

70.000

65.000

Huelva

Algeciras Puertollano

Castellón

Tarragona

15.000

Salamanca Cartagena Demanda

70.000

65.000

0

0

Faltan

55.000

70.000

40.000

50.000

90.000

−55.000 −70.000 −25.000

−50.000

−90.000

Producción máx.

Quedan

150.000

0

200.000

200.000

130.000

130.000

440.000

La tabla (2.7.b) se ha elaborado de la siguiente forma: empezamos por la primera planta, A Coruña. Su lugar de demanda más próximo es la propia A Coruña (se trata de una refinería que está próxima a la planta de bioetanol, a sólo 20 km). Esta refinería tiene una demanda de 65.000 m3 que deben servirse todos desde la propia A Coruña. Pero aún queda producción en dicha planta. ¿Adónde la mandamos? La siguiente refinería más cercana es la de Bilbao, que está a 644 kilómetros y demanda 70.000 m3. Puesto que hay producción suficiente, se satisface toda su demanda desde A Coruña. Y aún quedan 15.000 m3 de producción en A Coruña que se envían al siguiente lugar más cercano, que es Puertollano. Todas estas operaciones se resumen en la tabla 2.7.b. En la tabla 2.7.c se realizan operaciones análogas a las del 2.7.b, pero ahora para Salamanca primero y Cartagena después. De esta forma, al final hemos satisfecho la demanda de bioetanol de todas las refinerías y nos quedan 40.000 m3 por consumir, por lo que, en nuestra solución, la planta de Cartagena producirá 40.000 m3 menos que su potencial máximo, tal y como se señala en la tabla 2.7.c en la columna «Quedan». TABLA 2.7.c Muestra operaciones análogas a las del 2.7.b, pero ahora para Salamanca primero y Cartagena después

A Coruña

Bilbao

A Coruña

70.000

65.000

Huelva

Castellón

70.000

25.000

150.000 50.000

Cartagena Demanda

Tarragona Producción

15.000 55.000

Salamanca

Algeciras Puertollano

200.000

0

130.000

40.000

440.000

65.000

55.000

70.000

40.000

50.000

90.000

0

0

0

0

0

0

0

© Ediciones Pirámide

0

90.000 70.000

Faltan

Quedan

57

Decisiones empresariales con hoja de cálculo En la tabla 2.7.d hemos calculado los costes que suponen las cantidades a transportar desde cada origen a cada destino, y finalmente el coste total de transporte, suma de los costes de todos los trayectos, que ha resultado ser en este caso de 12.885.300 €. TABLA 2.7.d Costes que suponen las cantidades a transportar desde cada origen a cada destino en euros Bilbao

A Coruña

A Coruña

2.704.800

78.000

Salamanca

0

0

Cartagena

0

0

Huelva

Algeciras

0

Puertollano

Castellón

Tarragona

0

719.100

0

0

1.758.900 2.515.800

529.500

1.887.000

0

0

0

0

0 2.662.200

Naturalmente, este mismo proceso (algoritmo) podíamos haberlo hecho en diferente orden; por ejemplo, primero Cartagena, después Salamanca y finalmente A Coruña, en cuyo caso se hubiera quedado sin producir a su potencial máximo A Coruña, o podríamos haber decidido que todas las plantas no rindan al límite de su producción... Cada una de estas alternativas nos hubiera dado una solución y, en consecuencia, un coste diferente. Aun en el supuesto de que hubiéremos probado muchas alternativas y hubiéramos escogido la mejor de todas ellas (la más barata), ¿habríamos tenido garantía de que esa era la solución más económica (óptima)? La respuesta es no. Para asegurarnos de que es la solución óptima deberemos aplicar los métodos que veremos en capítulos posteriores. Al igual que en el ejemplo anterior y en los siguientes, estamos ante un modelo con variables, restricciones y función objetivo. Las variables son todas las cantidades de bioetanol a transportar entre cada origen y destino. Puesto que hay tres plantas y siete refinerías, estamos ante 21 variables (3 × 7). En cada una de ellas es necesario saber cuál es la cantidad de bioetanol (en m3) que hay que transportar desde cada origen a cada destino. Tenemos dos grandes bloques de restricciones: el primero nos dice que de ninguna planta puede salir más bioetanol hacia todas las refinerías del que es capaz de producir esta planta. De estas restricciones hay tres, una por cada planta. El otro bloque de restricciones es el de demanda: hay que enviar bioetanol a cada refinería en las cantidades demandadas (satisfacer la demanda). De estas restricciones tenemos siete, una por cada refinería. Finalmente, nuestra función objetivo es minimizar el coste total de transporte. Todas las variables son continuas, puesto que pueden tomar cualquier valor positivo dentro de los límites de producción.

58

© Ediciones Pirámide

Decisiones empresariales y la hoja de cálculo

EJEMPLO 2.3. Decisiones alternativas de inversión Un grupo de inversores desea instalar una fábrica de equipos de radio. Para ello debe resolver tres problemas básicos: a) La producción de piezas. b) El ensamblaje de las radios. c) El almacenamiento del producto terminado. Para producir las piezas se dispone de tres alternativas: subcontratar la producción, adquirir una fábrica ya construida o construir una nueva. El ensamblaje también puede resolverse de tres formas: subcontratándolo, utilizando los equipos disponibles o invirtiendo en nuevos equipos. Finalmente, con respecto al problema del almacenamiento, es posible alquilar espacio en un almacén que ya existe o construir un nuevo almacén. Los valores actualizados de todas estas inversiones, los empleados que sería necesario contratar en cada caso y los flujos de caja (salidas de fondos) asociados se muestran en la tabla 2.8. TABLA 2.8 Alternativas de inversión Flujos de caja Proyecto

Naturaleza de la inversión

VAN

Empleados Año 1

Año 2

Año 3

Año 4

Año 5

1

Subcontratar la producción de piezas.

757

7

5

5

5

5

2

2

Adquirir una fábrica ya existente.

825

35

15

12

4

4

4

3

Construir una nueva fábrica.

987

20

30

2

0

0

8

4

Subcontratar ensamblaje de las piezas.

350

12

10

10

10

6

3

5

Ensamblar piezas en equipos existentes.

596

65

7

4

4

4

4

6

Ensamblar piezas en equipos nuevos.

650

60

15

2

2

2

2

7

Almacenar radios en almacén alquilado.

1.420

20

50

10

5

0

0

8

Almacenar radios en un almacén nuevo.

1.425

5

7

7

7

7

7

70

30

15

15

15

Presupuesto de inversión

La empresa desea: a) Obtener un valor actualizado neto (VAN) lo más alto posible. b) No contratar a más de cien empleados. c) Respetar el presupuesto de inversiones que aparece en la tabla para los próximos cinco años. © Ediciones Pirámide

59

Decisiones empresariales con hoja de cálculo Si en un año determinado sobra parte del presupuesto, el remanente se destinará a otros proyectos de inversión a largo plazo y, por tanto, no podrá invertirse en la fábrica en un período posterior. Asimismo, se supone que los inversores no desean tomar prestados capitales ajenos para complementar los fondos de que disponen. Se desea saber qué combinación de inversiones maximizará el valor actualizado neto para la empresa en cuestión. En muchas ocasiones, el primer paso que debe darse para analizar un problema de este tipo consiste en calcular cuántas soluciones alternativas tiene. Esta enumeración puede realizarse de forma sistemática mediante un árbol de decisión, como el que se muestra en la figura 2.1. A la vista del indicado árbol, el problema tiene 3 × 3 × 2 = 18 posibles soluciones. Algunas de estas soluciones no cumplirán simultáneamente todas las restricciones que se plantea el grupo de inversores. Por ejemplo, una determinada combinación podría exceder el máximo número de empleados. A estas soluciones que no cumplen con todas las restricciones las llamamos infactibles. En estas condiciones, la resolución del problema puede reducirse, por tanto, a: a) En primer lugar, eliminar todas las combinaciones infactibles. b) Si queda alguna alternativa factible, entonces seleccionar aquella que tenga el VAN más alto (se obtendrá el plan óptimo de inversiones). Si no existe ninguna solución factible, debe replantearse el problema de decisión. Obviamente, si no se dispone de productos informáticos adecuados para este tipo de análisis, este procedimiento implicaría una serie de cálculos engorrosos, incluso en un problema tan sencillo como el que se está tratando. Otra posibilidad consistiría en intentar resolver el problema aplicando una serie de reglas «razonables», que reduzcan el número de combinaciones a explorar. Por ejemplo, se podría: 1.

Seleccionar, en primer lugar, la combinación de inversiones con máximo VAN y calcular las (posibles) infactibilidades que se produzcan. 1.1. Si no se ha producido ninguna infactibilidad, esta solución es óptima. 1.2. Si se ha producido alguna infactibilidad, buscar aquel proyecto que elimine la mayor infactibilidad reduciendo el VAN lo menos posible.

2.

Evaluar la nueva solución. 2.1. Si no se ha producido ninguna infactibilidad, esta solución es, posiblemente, bastante buena. 2.2. Si se han reducido las infactibilidades con respecto a la solución anterior, buscar aquella sustitución de proyectos que elimine la mayor infactibilidad, reduciendo el VAN lo menos posible y volviendo al punto 2.

60

© Ediciones Pirámide

Decisiones empresariales y la hoja de cálculo

Producción

Subcontratar

Adquirir una fábrica ya construida

Construir una nueva fábrica

{ { {

Ensamblaje

Subcontratar

Ensamblar con equipos disp.

Invertir en nuevos equipos

Subcontratar

Ensamblar con equipos disp.

Invertir en nuevos equipos

Subcontratar

Ensamblar con equipos disp.

Invertir en nuevos equipos

Almacenamiento

{ { { { { { { { {

Alquilar (1) Comprar (2) Alquilar (3) Comprar (4) Alquilar (5) Comprar (6)

Alquilar (7) Comprar (8) Alquilar (9) Comprar (10) Alquilar (11) Comprar (12)

Alquilar (13) Comprar (14) Alquilar (15) Comprar (16) Alquilar (17) Comprar (18)

Figura 2.1. Árbol de decisión del problema.

2.3. Si las infactibilidades han aumentado con respecto a la solución anterior, volver a ella y buscar aquella sustitución de proyectos que, sin haber sido ya explorada, elimine la mayor infactibilidad reduciendo el VAN lo menos posible; volver al punto 2. © Ediciones Pirámide

61

Decisiones empresariales con hoja de cálculo Esta manera de operar constituiría un algoritmo heurístico un tanto rudimentario, pero, como veremos a continuación, sumamente efectivo en este caso. Una forma cómoda de realizar las operaciones necesarias sería utilizar una hoja de cálculo similar a la que se muestra en la tabla 2.9. TABLA 2.9 Pantalla inicial

Las columnas F, I, L, N, P, R y T contienen los datos del problema. En la columna B se codifican los distintos proyectos según la numeración estándar establecida en la tabla 2.8. La columna D se emplea para codificar las posibles decisiones, marcando «1» si el proyecto correspondiente es escogido y «0» si es rechazado. Finalmente, las columnas G, J, M, O, Q, S y U contienen una fórmula definida como el valor del código de selección («0» o «1») multiplicado por el valor de la columna que aparece inmediatamente a su izquierda. Las entradas en estas columnas representan, por tanto, la contribución de cada decisión al VAN, al agotamiento de la restricción de personal máximo (en la posición J19) y las disponibilidades máximas de fondos (en las celdas M19, O19, Q19, S19 y U19). En la fila 17 se totalizan todas las contribuciones. De esta forma, toda la información y los cálculos se resumen en una sola pantalla. De acuerdo con el conjunto de reglas que se definió anteriormente, la primera combinación de inversiones que debe explorarse es aquella que da lugar al máximo VAN posible: (3, 6, 8). Esta selección daría lugar a la pantalla mostrada en la tabla 2.10. Como puede observarse, la solución no es factible, ya que requeriría un gasto de 17 unidades en el último período. La menor pérdida de VAN que evitaría esta infactibilidad sería adoptar el proyecto 7 en lugar del 8 (tabla 2.11).

62

© Ediciones Pirámide

Decisiones empresariales y la hoja de cálculo TABLA 2.10 Solución realizando las inversiones 3, 6 y 8

TABLA 2.11 Solución realizando las inversiones 3, 6 y 7

Ahora la infactibilidad se produce en el primer período, en el que el gasto es de 95 unidades. Además, la solución está más alejada de la factibilidad que la anterior. Por tanto, parece conveniente olvidar esta primera alternativa y buscar otra variante de la solución inicial. A partir de la solución inicial, parecería razonable adoptar el proyecto 2 en lugar del 3, ya que este cambio da lugar a la menor reducción de VAN compatible con el presupuesto de los períodos 1 y 5 (tabla 2.12). © Ediciones Pirámide

63

Decisiones empresariales con hoja de cálculo Esta solución respeta todos los requerimientos impuestos. Consiste en adquirir una fábrica ya construida, invertir en nuevos equipos para el ensamblaje y construir un nuevo almacén. TABLA 2.12 Solución realizando las inversiones 2, 6 y 8

Como se verá posteriormente, ésta es la solución óptima del problema. Sin embargo, esta metodología no siempre dará tan buenos resultados, ya que: — En este caso hemos construido y resuelto un modelo con ocho variables binarias (subcontratar fábrica equivale a que la variable correspondiente valga 1, no subcontratar fábrica a que valga 0, y así para las siete posibilidades restantes). El modelo tiene seis restricciones, la primera asociada al número máximo de empleados que pueden ser contratados y las otras cinco a la financiación máxima disponible en cada período. La función objetivo es el valor actual neto (VAN) a maximizar. — Si no se exploran todas las soluciones alternativas, no puede tenerse la seguridad de que es óptima. — Los inversores podrían formularse preguntas como: ¿cuánto VAN se perdería si se fijara una contratación máxima de 80 trabajadores? O bien, ¿cambiaría la decisión si se considera la posibilidad de prestar los fondos a un determinado interés anual? En ambos casos, el análisis simple basado únicamente en el empleo de una hoja de cálculo se revela insuficiente.

64

© Ediciones Pirámide

Decisiones empresariales y la hoja de cálculo

EJEMPLO 2.4. Apertura de oficinas de una empresa de mensajería Otro ejemplo más nos servirá para ilustrar sobre cómo resolver otros problemas con una hoja de cálculo, aunque, como veremos, en este caso las decisiones serán del tipo sí o no (binarias) junto con variables continuas. Una empresa de mensajería (Mensajeros Autónomos, S. A.: «MA») debe tomar una decisión sobre cuántas oficinas debe abrir para el reparto de paquetes en Tres Cantos. Actualmente, sólo cuenta con una oficina que, además, debe abandonar de forma inminente porque se le termina el contrato de arrendamiento. Lo primero que ha hecho es seleccionar una posible oficina para alquilar en cada uno de los cuatro distritos de los que consta Tres Cantos. De acuerdo con su experiencia, la media de paquetes que tienen cada día para repartir en cada distrito es: TABLA 2.13 Número de paquetes que tiene cada día para repartir en cada distrito N.º paquetes a repartir/día a cada distrito Distrito 1

250

Distrito 2

200

Distrito 3

150

Distrito 4

300

Los tiempos medios de desplazamiento entre cada posible oficina de reparto (de las que ha seleccionado) y cada distrito (en minutos por paquete) son los que se señalan a continuación: TABLA 2.14 Tiempo de desplazamiento entre cada oficina de reparto y cada distrito, en minutos

© Ediciones Pirámide

Distrito 1

Distrito 2

Distrito 3

Distrito 4

Oficina/distrito 1

15

40

55

100

Oficina/distrito 2

40

25

50

60

Oficina/distrito 3

55

50

30

45

Oficina/distrito 4

100

60

45

40

65

Decisiones empresariales con hoja de cálculo El coste de alquilar una oficina, con todos los gastos fijos incluidos, es de 400 €/día y tiene un tamaño para manejar hasta 500 paquetes/día. El coste de transportar un paquete es de 20 céntimos de euro por minuto. De esta forma, si, por ejemplo, abrimos la oficina 2 y transportamos 200 paquetes al mismo distrito 2 y 100 al distrito 3, el coste será: 400 + 0,20 × 25 × 200 + 0,20 × 50 × 100 = 2.400 €. Por otra parte, estos paquetes vienen de otras ciudades y podemos pedir que nos lo descarguen en cualquiera de las oficinas que podamos tener abiertas sin coste adicional alguno. La dirección de MA debe decidir qué oficinas debe abrir para minimizar el coste diario total de reparto de paquetes en Tres Cantos. Un primer análisis de este problema nos indica que tenemos muchas posibles alternativas. Por ejemplo, abrir una sola oficina en cada uno de los distritos y que cada oficina sirva a su propio distrito. En el otro extremo, podemos abrir una sola oficina y que ésta sirva a todos los distritos. Pero si sólo abrimos una sola oficina deberemos decidir en qué distrito debe estar ubicada. En este caso tendremos cuatro alternativas. Naturalmente, existen muchas más alternativas, por ejemplo abrir oficinas en el distrito 1 y 2, pero a continuación deberemos decidir a quiénes deben servir estas dos oficinas. Por ejemplo, la oficina 1, aparte de servir a su propio distrito, puede servir al distrito 3; y la oficina 2 puede servir a su propio distrito y al 4. Pero también la 1 podría servir a su distrito y al 4 y la 2 al suyo propio y al 3... Para cada posible combinación deberemos calcular el coste de la solución y debemos verificar si se cumple la restricción según la cual en estas oficinas no se pueden manejar más de 500 paquetes diarios. El número de combinaciones posibles, aun en este problema simple, no es sólo relativamente grande, sino que tampoco es fácil de enumerar de manera sistemática, ni tampoco calcular la solución de cada una de ellas de manera rápida, esto es, con instrucciones estándar de hojas de cálculo del tipo «copiar», «pegar», etc. Cabe también desarrollar algún tipo de algoritmo ad hoc, pero esto requiere tiempo y capacidad de programación y, a menos que enumeremos y calculemos todas las posibles combinaciones, difícilmente podremos garantizar que hemos encontrado la solución óptima. En la tabla 2.15 hemos calculado sólo algunas de estas soluciones. Expresamente, ni se han enumerado ni calculado todas las posibles alternativas. Esta tarea se deja al estimado lector. Las soluciones calculadas incluyen abrir una oficina en cada distrito que cubra al suyo propio, abrir una sola oficina que cubriría los cuatro distritos, pero teniendo en cuenta que esta oficina se abre en cada uno de los distritos; algunas combinaciones de abrir dos oficinas que servirían cada una de ellas a su propio distrito y a otro adyacente (el adyacente lo hemos determinado como el de menor coste)... De las soluciones calculadas sólo algunas son factibles, ya que bastantes de estas combinaciones suponen que por lo menos una oficina debe manejar más de 500 paquetes al día (en la tabla 2.15 se ha realizado este cálculo y a su lado se pone «sí» o «no» para indicar si la solución es o no es factible). Obsérvese que, puesto que es mucho más fácil calcular si la solución es

66

© Ediciones Pirámide

Decisiones empresariales y la hoja de cálculo TABLA 2.15 Cálculos de las alternativas de apertura de oficinas N.º de paquetes a repartir/día a cada distrito Distrito 1

250

Distrito 2

200

Distrito 3

150

Distrito 4

300

Tiempo de desplazamiento (minutos): Distrito 1

Distrito 2

Distrito 3

Distrito 4

Oficina/distrito 1

15

40

55

100

Oficina/distrito 2

40

25

50

60

Oficina/distrito 3

55

50

30

45

Oficina/distrito 4

100

60

45

40

Coste fijo abrir cada oficina

400

€/día

Tamaño máximo oficina

500

Paquetes

Coste transporte

0,2

€/minuto

N.º paquetes

© Ediciones Pirámide

Cumple máximos

Oficinas abiertas

Coste

Oficina mayor

Una oficina en cada distrito

1 → 1; 2 → 2; 3 → 3; 4 → 4

6.650,00

300



Una sola oficina y servir al resto

1 → 1, 2, 3, 4

10.400,00

900

No

Una sola oficina y servir al resto

2 → 1, 2, 3, 4

8.500,00

900

No

Una sola oficina y servir al resto

3 → 1, 2, 3, 4

8.750,00

900

No

Una sola oficina y servir al resto

4 → 1, 2, 3, 4

11.550,00

900

No

Oficinas 1 y 2

1 → 1, 3; 2 → 2, 4

7.800,00

500



Oficinas 1 y 2

1 → 1, 4; 2 → 2, 3

10.050,00

550

No

Oficinas 1 y 3

1 → 1, 2; 3 → 3, 4

9.300,00

450



Oficinas 1 y 3

1 → 1, 4; 3 → 3, 2

550

No

67

Decisiones empresariales con hoja de cálculo factible que cuál es su coste, lo mejor sería calcular primero todas las soluciones factibles y sólo calcular el coste cuando previamente la solución fuera factible. Es evidente que la combinatoria de la tabla 2.15 no es ni mucho menos completa. En cualquier caso, de las soluciones obtenidas la mejor es en la que se abre una oficina en cada distrito y sirve a su propio distrito, pero ¿podemos asegurar que ésta es verdaderamente la solución óptima? ¿No será mejor una solución abriendo, por ejemplo, tres oficinas? ¿O dos? Y si ésta fuera la solución óptima, ¿cuáles serían estas oficinas? ¿A qué distritos servirían y cuánto a cada distrito? Evidentemente, este es un caso diferente que el anterior, pero, de nuevo, hemos intentado resolverlo elaborando un modelo. Las variables de decisión son: ¿qué oficinas debemos abrir de las cuatro posibles?, ¿a qué distrito debe servir cada oficina y en qué cantidad o, dicho de otra forma, qué cantidad de paquetes debe ir desde cada oficina a cada distrito? Las restricciones son también bastante claras: cada distrito debe recibir los paquetes que le corresponden y ninguna de las oficinas abiertas debe manejar más de 500 paquetes al día. El objetivo es minimizar los costes de alquiler más los de transporte de paquetes. Al igual que en ejemplos anteriores, estamos ante un modelo con variables, restricciones y función objetivo, pero en este caso las variables de decisión son de las llamadas enteras (o de manera más precisa en este caso, binarias) y continuas. Las variables binarias son las que nos indican la decisión de abrir (variable = 1) o no abrir (variable = 0) la oficina de un determinado distrito. También tenemos variables que se pueden considerar continuas: desde cada oficina podemos enviar a cada distrito un número de paquetes que puede oscilar entre 0 y todos los que finalmente le deben llegar (en teoría, si la variable es continua podríamos tener una solución fraccionaria —por ejemplo 221,7—, pero en este caso, como veremos más adelante, no se comete ningún error importante si redondeamos esta cifra).

68

© Ediciones Pirámide

Decisiones empresariales y la hoja de cálculo

EJERCICIOS PROPUESTOS 1.

Buscar alguna solución mejor (con un menor valor de la función objetivo) al ejemplo 2.2.

2.

Buscar alguna solución mejor (con un menor valor de la función objetivo) al ejemplo 2.4.

3.

La empresa Vinos de la Comunidad Autónoma de Madrid (VICAM) ha decidido producir y comercializar un vino con denominación de origen de la zona de Cantoblanco. Para ello, se han reunido con unos enólogos de la UAM y con algunos licenciados en Administración de Empresas también de la UAM que actúan como consultores. Dadas las características del terreno, los enólogos creen que un buen vino debería tener los siguientes tipos de uva en las siguientes proporciones: — Un máximo del 40 % de uva tempranillo de cepa joven. — Un mínimo del 20 % y hasta un 40 % de uva tempranillo de cepa vieja. — Entre un 10 y un 30 % de garnacha. Los recién licenciados en Administración y Dirección de Empresas han averiguado que el kilo de uva de las variedades que piden los enólogos estará en los siguientes precios: — Tempranillo cepa joven: 1,2 euros/kilo. — Tempranillo cepa vieja: 2,0 euros/kilo. — Garnacha: 2,5 euros/kilo. Se sabe que se necesitan aproximadamente 2 kilos de uva para producir un litro de vino. Un estudio de mercado ha señalado que se podrían vender un máximo de 1.000.000 de botellas de vino (las botellas de vino son de ¾ de litro) cosechero (no pasa por barrica) y otro millón de botellas como máximo de crianza (un año en barrica). Los costes de embotellamiento son de 0,5 euros por botella. El coste imputable a la conservación en barrica de roble, por cada año y litro, es de 0,7 euros. El coste financiero se estima del 7 % anual del precio de venta para el vino de crianza. Dada la calidad del vino, mercado al que va dirigido y número de botellas que se van a producir, se estima que el precio de venta del vino cosechero será de 3 euros/botella y del crianza de 4,5 euros. Los directivos de VICAM quieren saber la cantidad a producir y vender de vino cosechero y crianza que maximiza el beneficio. También desean saber la cantidad que deben comprar de cada tipo de uva.

© Ediciones Pirámide

69

Decisiones empresariales con hoja de cálculo 4.

Averiguar las características y coste de varios platos y menús (ejemplo: vitaminas, hierro, etc., de una ensalada, filete, etc.). Tener en cuenta los requerimientos mínimos y máximos diarios de cada una de estas características. Mediante una hoja de cálculo, averiguar el menú con el mínimo coste que está dentro de los requerimientos mínimos diarios. a) ¿Qué problemas prácticos le ve a la solución obtenida? b) ¿Ha tenido en cuenta todas las posibilidades? ¿Podría hacerlo razonablemente con una hoja de cálculo? Sugerencia: Para realizar este ejercicio puede consultar a Villalba Vila, D. y Jerez Méndez, M. (1990). Sistemas de optimización para la planificación y toma de decisiones. Madrid: Pirámide.

BIBLIOGRAFÍA Villalba, D. y Jerez, M. (1990). Sistemas de optimización para la planificación y toma de decisiones. Madrid: Pirámide.

70

© Ediciones Pirámide

3

Introducción a la Programación Lineal (PL)

3.1. INTRODUCCIÓN En este capítulo nuestro objetivo es: a) b) c) d) e)

Entender en qué consiste y para qué sirve la Programación Lineal (PL). Aprender a resolver de manera gráfica algunos problemas sencillos de PL. Aprender a resolver problemas de PL mediante la hoja de cálculo Excel. Interpretar los resultados obtenidos más allá de la solución inmediata. Realizar un análisis de sensibilidad de la solución.

Para ello utilizaremos el ejemplo 1 del capítulo 2, que nos va a servir como guía para ir explicando cada uno de los objetivos perseguidos. En este capítulo vamos a utilizar un aparato matemático mínimo. Para explicar los conceptos nos basaremos exclusivamente en el sentido común y en algunos gráficos. En los capítulos 4 y 5 estudiaremos básicamente los mismos conceptos e ideas desarrollados en este capítulo, pero de una manera más formal y extensa.

3.2. FORMULACIÓN Y REPRESENTACIÓN GRÁFICA Para entender en qué consiste un problema de PL podemos partir de un ejemplo que introdujimos en el capítulo anterior. Para comodidad del lector, repetimos a continuación el enunciado. El propietario de una finca de regadío de 80 hectáreas se plantea la posibilidad de plantar trigo y/o maíz para venderlo a una compañía de fabricación de bioetanol cercana. La cantidad de agua que precisa cada hectárea plantada de trigo es © Ediciones Pirámide

71

Decisiones empresariales con hoja de cálculo de 0,8 m3 de agua y 2 m3 por cada hectárea plantada de maíz. Sólo puede disponer de un máximo de 124 m3 de agua a lo largo de toda la campaña. La compañía que le compra el maíz o el trigo le pagará a 140 €/tm, independientemente de que sea maíz o trigo. El propietario tiene, además, los siguientes costes adicionales: TABLA 3.1 Costes adicionales de producción de trigo y maíz Trigo (€/ha)

Maíz (€/ha)

Sembrado

360

400

Recolección

160

180

El propietario desea saber cuántas hectáreas de trigo y de maíz debe plantar para maximizar su beneficio. Es evidente, a la vista del enunciado, que el granjero lo que debe decidir es qué parte de su finca (hectáreas) debe dedicar al cultivo de trigo y cuánta al de maíz. Está claro también que dispone de dos recursos limitados: el espacio cultivable de la finca, en total 80 hectáreas, y el agua de la que puede disponer, que como máximo se cifra en 124 m3 para todo el año (suponemos que sólo se puede hacer una cosecha al año). El objetivo del granjero es, en todo caso, maximizar los beneficios obtenidos en el cultivo de su finca. En el capítulo 2 hemos visto cómo podíamos resolver un problema similar con una hoja de cálculo en la que probábamos diferentes hectáreas dedicadas al cultivo de trigo y maíz y veíamos cuál era el consumo de agua para cada «mix» de trigo y maíz y los beneficios que producía. La idea puramente intuitiva que utilizamos podemos ahora expresarla de una manera más formal. Efectivamente, podemos llamar x1 a las hectáreas cultivadas con trigo y x2 a las hectáreas cultivadas con maíz. A partir de la definición de estas variables, podemos definir también la limitación de las restricciones de espacio y agua. Así, la limitación de espacio la podemos representar como: 1x1 + 1x2 ≤ 80 que significa que la suma de hectáreas dedicadas al cultivo de trigo más las dedicadas al cultivo de maíz debe ser igual o inferior a 80 hectáreas. La limitación de agua la podemos representar como: 0,8x1 + 2x2 ≤ 124 Esta última restricción significa que el agua consumida por el cultivo de trigo (0,8 m3 de agua por cada hectárea cultivada de trigo por las hectáreas efectiva-

72

© Ediciones Pirámide

Introducción a la Programación Lineal (PL) mente cultivadas de trigo) más el agua consumida por el cultivo del maíz (2 m3 de agua por cada hectárea cultivada de maíz por las hectáreas efectivamente cultivadas de maíz) debe ser igual o inferior al agua total disponible (124 m3). Lógicamente, las hectáreas cultivadas deben ser siempre no negativas, lo que representamos como: x1, x2 ≥ 0 Finalmente, dadas las restricciones de los recursos de tierra y agua, lo que le interesa al granjero es maximizar sus beneficios. Si su beneficio por hectárea por cultivar trigo es de 100 € y por cada hectárea que cultiva de maíz de 200 €, es claro que su beneficio total será: Beneficio = 100x1 + 200x2 Puesto de una manera más compacta y formal, podemos escribir todo lo anterior de la siguiente manera: Maximizar = 100x1 + 200x2 sujeto a las restricciones: x1 + x2 ≤ 80 0,8x1 + 2x2 ≤ 124 x1, x2 ≥ 0 Expresado de una manera matemática, diremos que se trata de maximizar una función lineal sujeta a restricciones lineales de desigualdad. Con el fin de resolver el sistema anterior, podemos hacer una representación gráfica del mismo. Para realizar este gráfico, en primer lugar debemos tener en cuenta que, al ser las variables no negativas, siempre deberemos dibujar el gráfico en el primer cuadrante. Para dibujar las restricciones sólo debemos dar valores a las x en cada una de las restricciones. Así, en la primera restricción, si x1 vale cero, x2 deberá tener un valor igual o inferior a 80. Y si x2 vale cero, x1 deberá tener un valor igual o inferior a 80. En la segunda restricción (cantidad máxima de agua disponible), si x1 vale cero, x2 deberá tener un valor igual o inferior a 62 (124/2). Si x2 vale cero, x1 deberá tener un valor igual o inferior a 155 (124/0,8). La función objetivo estará representada por líneas paralelas en función de los valores que vayan tomando x1 y x2. Cuanto más alejadas estén del origen, mayor será el valor de la función objetivo. Para dibujar la función objetivo podemos fijar arbitrariamente un valor de 10.000 €. En este caso, si x1 vale cero, x2 deberá tener © Ediciones Pirámide

73

Decisiones empresariales con hoja de cálculo un valor de 50 (10.000/200). Y si x2 vale cero, x1 deberá tener un valor igual a 100 (10.000/100). El cuadro 3.1 refleja de una manera resumida estos cálculos, y la figura 3.1 es la representación gráfica del conjunto de las ecuaciones anteriores, mostrando con líneas discontinuas la función objetivo. CUADRO 3.1 Cálculos para el gráfico de PL x1

x2

Función objetivo

0 100

50 0

Max(z) = 100 x1 + 200x2 = 10.000

Restricción 1

0 80

80 0

x1 + x2 ≤ 80

Restricción 2

0 155

62 0

0,8x1 + 2x2 ≤ 124

x2 100 90 80 70 60 50 40 30 20 10 0

20

40

60

80

100

120

140

160

180

200

x1

Figura 3.1. Representación gráfica del problema.

En la figura 3.1 las zonas sombreadas representan el conjunto de soluciones reales posibles (en adelante las llamaremos soluciones factibles o conjunto factible), esto es, combinaciones de hectáreas cultivadas de trigo y maíz que ocupan

74

© Ediciones Pirámide

Introducción a la Programación Lineal (PL) como máximo 80 hectáreas y que consumen un máximo de 124 metros cúbicos de agua. Puesto que la línea que representa la función objetivo es mejor (tiene más beneficio) cuanto más alejada está del origen, lo que interesará al granjero es buscar el punto, dentro del conjunto factible, que esté lo más alejado posible del origen. Si vamos trazando paralelas a la línea que representa la función objetivo y que hemos construido inicialmente, veremos que este punto corresponde a un vértice cuyos valores son x1 = 30 y x2 = 50, esto es, para maximizar el beneficio el granjero debe destinar 30 hectáreas al cultivo de trigo y las 50 hectáreas restantes al de maíz, con lo que su beneficio será de 13.000 €. Además, consumirá toda el agua que tiene disponible. Con este ejemplo hemos visto, de una manera sencilla, cómo es el planteamiento y la solución de un problema de PL de forma gráfica. Los problemas de PL reales suelen ser mucho mayores que el que acabamos de ver. Generalmente tienen decenas, centenares o miles de variables y de restricciones. Además, las restricciones pueden ser de mayor o igual, menor o igual o igual, y la función objetivo puede ser de maximizar o minimizar. En estos casos, no es posible resolverlos de forma gráfica como hemos hecho ahora. En los capítulos 4 y 5 trataremos de la formulación y resolución de estos problemas de una manera más general y formal.

3.3. RESOLUCIÓN MEDIANTE SOLVER En el apartado anterior hemos visto cómo se planteaba y resolvía gráficamente un caso sencillo de un problema de decisión de PL. Es evidente que cualquier problema real normalmente será mucho más extenso que el ejemplo que hemos visto; es decir, según la terminología que hemos usado, tendrá muchas más variables y restricciones. Gráficamente sólo podríamos resolver problemas con un máximo de dos variables o de tres con algo más de dificultad en su representación. Por tanto, cuando tengamos más de tres variables deberemos recurrir a otros métodos de resolución, que, necesariamente, serán métodos numéricos. En el siguiente capítulo analizaremos con detalle el método más habitual de resolver numéricamente los problemas de PL conocido como Simplex y que fue desarrollado originalmente por George B. Dantzig (1963). Este método de resolución está implementado en muchos códigos o programas comerciales e incluido en alguna de las hojas de cálculo más populares como el Excel en una macro llamada Solver1. En este apartado nos limitaremos a explicar su funcionamiento. Para ello, utilizaremos el ejemplo del apartado anterior. 1 El Solver está en el Excel bajo la etiqueta de «Herramientas» en el Office Excel 2003 y en «Datos» en Office Excel 2007. Sin embargo, no se instala con la instalación automática del Excel y es necesario incorporarlo expresamente.

© Ediciones Pirámide

75

Decisiones empresariales con hoja de cálculo a) Cuadro con los datos y planteamiento en Excel Primeramente debemos anotar los datos iniciales del problema en la hoja de cálculo Excel. Para ello, debemos identificar los valores de las variables y los coeficientes de la función objetivo. Para una mejor visualización, empezamos introduciendo una etiqueta o texto sobre la denominación de las variables, dejando una celda vacía, que será donde aparezca el valor numérico de la variable, destacando dicha celda con un recuadro y un fondo amarillo. A continuación, se introduce debajo de la celda de cada variable el coeficiente asociado a esta misma variable en la función objetivo, determinamos una celda que contendrá la función objetivo, la cual está recuadrada y con fondo azul, e indicamos con un título si se trata de un caso de minimización o maximización (véase cuadro 3.2). Es importante agregar etiquetas o textos que nos indiquen los datos que hay en las celdas, y aunque no es necesario para la resolución del problema, es recomendable destacar los valores de las variables y de la función objetivo para facilitarnos su localización, sobre todo ante problemas de gran tamaño. La ubicación de variables, coeficientes y función objetivo puede hacerse donde se considere más conveniente. Seguidamente construiremos una tabla que contenga, para cada restricción, los coeficientes de cada variable (x1 y x2), los valores que tendrán dichas variables, la condición que deben cumplir y el signo de esa condición. En el cuadro 3.2 puede observarse cómo quedaría el planteamiento del problema. CUADRO 3.2 Planteamiento del problema en Excel

76

© Ediciones Pirámide

Introducción a la Programación Lineal (PL) b) Cuadro con las fórmulas del Excel Una vez que hemos descrito la estructura del problema, debemos agregar las fórmulas que expresan la función objetivo y las restricciones del mismo. Para ello nos situaremos en la celda que contendrá la función objetivo E8 y escribiremos la fórmula, haciendo referencia a las celdas que tienen el valor de las variables D5 y E5, y aquellas que tienen el valor de los coeficientes D6 y E6. Por ello, para poner = 100x1 + 200x2, escribiremos en E8 = D6*D5+E6*E5. Las restricciones se hacen en dos celdas, una para el lado izquierdo y otra para el lado derecho de la inecuación que expresa cada restricción. Para escribir la primera restricción nos situaremos en la celda que contendrá el valor de la restricción, E11, y escribiremos sólo el lado izquierdo de la primera restricción, haciendo referencia al valor de los coeficientes de la restricción que están en las celdas C11 y D11 (=C11*$D$5+D11*$E$5)2. El lado derecho de la restricción ya lo hemos escrito como condición que tiene que cumplir en la celda F11. Haremos el mismo procedimiento para la segunda restricción: nos situaremos en la celda E12 y escribiremos el lado izquierdo de la segunda restricción (=C12*$D$5+D12*$E$5). El lado derecho de la restricción ya lo hemos escrito en la celda F12. Estos pasos se muestran en el cuadro 3.3. CUADRO 3.3 Formulación del problema en Excel

Aunque en las celdas G11 y G12 aparece el signo de la inecuación, es sólo a efectos informativos, ya que se introducirá realmente en el Solver. 2 El símbolo $ sirve para fijar referencias a una fila (el $ delante de la fila), columna (el $ delante de la columna) o celda (el $ delante de la fila y de la columna). Es decir, en el caso de copiar la fórmula a otra celda, seguirá referenciándose a la fila, columna o celda con el símbolo $.

© Ediciones Pirámide

77

Decisiones empresariales con hoja de cálculo Con esto ya estaría planteada la hoja de cálculo con la PL lista para utilizar Solver. c) Cuadros de diálogo de Solver Para la resolución del problema en Excel utilizaremos la macro Solver, que está en el menú «Datos»3. Una vez instalado Solver, iremos al menú «Datos», Solver, y aparecerá un cuadro de diálogo como el de la figura 3.2, donde iremos incluyendo las celdas que correspondan a cada concepto.

Figura 3.2. Cuadro de diálogo para incluir parámetros en Solver.

— Definir celda objetivo: seleccionar la celda donde está la función objetivo, en este caso la E8. La celda debe contener la fórmula que corresponde a la función objetivo. — Valor de la celda objetivo: señalar si se desea maximizar o minimizar la celda objetivo, o bien definirla con un valor específico. Marcaremos máximo en este caso. — Cambiando las celdas: se refiere a la ubicación de las variables. Aquí debemos seleccionar las celdas que se han dejado destinadas a ocupar el valor de las variables. En nuestro ejemplo, debemos seleccionar el rango D5 y E5.

3 Si no hay ninguna opción llamada Solver en «Herramientas» en el Office Excel 2003 o en «Datos» en Office Excel 2007, véase anexo 1 de este capítulo para cargar esta macro.

78

© Ediciones Pirámide

Introducción a la Programación Lineal (PL) — Sujeto a las siguientes restricciones: • Agregar: sirve para añadir restricciones. Haremos clic en agregar y nos aparecerá un nuevo cuadro de diálogo, como el que muestra la figura 3.3.

Figura 3.3. Cuadro de diálogo de Solver para agregar restricciones.

– En Referencia de la celda hay que seleccionar el lado izquierdo de la restricción. En nuestro caso, como las dos restricciones tienen el mismo signo y están situadas en celdas adyacentes, podemos agregarlas juntas. Marcaremos el rango E11:E12. – En nuestro caso dejaremos el símbolo de ≤ (si se despliega se verá que hay otras posibidades, ≥, = ...). – En Restricción, indicaremos el lado derecho de las restricciones. En nuestro caso F11:F12, y haremos clic en «Aceptar».

Figura 3.4. Cuadro de diálogo de Solver con la restricción.

• Cambiar: seleccionada una restricción, sirve para cambiar alguno de sus términos. • Eliminar: elimina la restricción seleccionada. Una vez agregada la función objetivo, las variables y las restricciones, haremos clic en el botón «Opciones» y seleccionamos «Adoptar un modelo lineal» y «Asumir no negativos», para indicar que las variables tienen que ser mayores o iguales © Ediciones Pirámide

79

Decisiones empresariales con hoja de cálculo que 0, como se muestra en la figura 3.5. Hacemos clic en «Aceptar» y volvemos a la pantalla anterior, como muestra la figura 3.6. Ahora ya podemos hacer clic en «Resolver» para obtener la solución del problema.

Figura 3.5. Cuadro de diálogo de opciones de Solver.

Figura 3.6. Cuadro de diálogo de Solver con los parámetros.

d) Solución final Nos aparecerá una pantalla que indica que el problema ha sido resuelto y si se quiere obtener un informe de respuestas, sensibilidad y/o límites (figura 3.7).

80

© Ediciones Pirámide

Introducción a la Programación Lineal (PL) Haremos clic en «Aceptar» para utilizar la solución que Solver ha hallado. La solución se incorpora a la hoja de Excel donde hemos planteado el problema, tal como indica el cuadro 3.4.

Figura 3.7. Cuadro de diálogo de resultados de Solver.

CUADRO 3.4 Planteamiento y solución del problema en Excel

La solución que muestra es que se debe plantar 30 ha de trigo y 50 ha de maíz, que arrojarán un beneficio de 13.000 € para la campaña, utilizando toda la superficie disponible y todo el agua. En el cuadro de diálogo «Resultados de Solver» de la figura 3.7 se pueden solicitar, además de la solución obtenida, tres tipos de informes: Respuestas, © Ediciones Pirámide

81

Decisiones empresariales con hoja de cálculo Sensibilidad, y Límites. En los apartados 3.5 y siguientes nos referiremos a los mismos.

3.4. POSIBLES SOLUCIONES DE UN PROBLEMA DE PL Un problema de PL puede tener una solución única, como el ejemplo que acabamos de ver en el problema del apartado anterior, pero también puede no tener solución por varias razones o tener soluciones múltiples, esto es, aquellas en las que, dando el mismo valor de la función objetivo, las variables pueden tener valores diferentes. A continuación veremos ejemplos de diferentes tipos de solución de problemas de PL, su representación geométrica y los resultados que se obtienen al intentar resolverlos en el Solver.

3.4.1. Solución única En el ejemplo del apartado anterior hemos visto el planteamiento y la solución de un ejemplo de PL con una solución única, esto es, existía una y sólo una solución óptima. Otro ejemplo de solución única podría ser el siguiente: Max(z) = 12x1 + 15x2 sujeto a las restricciones: 4x1 + 3x2 ≤ 12 2x1 + 5x2 ≤ 10 x1, x2 ≥ 0 La solución del problema se obtiene gráficamente en la figura 3.8. El área sombreada representa el espacio de soluciones posibles. Como puede observarse, este conjunto es un poliedro convexo4. Las líneas paralelas a trazos representan rectas de nivel de la función objetivo y la flecha indica el sentido de mejora de la misma. El máximo o mínimo de la función objetivo está siempre en un vértice del poliedro o punto extremo. En este caso existe un óptimo único, que está en el punto marcado con el símbolo . 4

82

Una definición precisa de poliedro convexo se ve en el capítulo 4. © Ediciones Pirámide

Introducción a la Programación Lineal (PL)

x2 5

4

3

2

1

0

1

2

3

4

5

x1

Figura 3.8. Solución única.

CUADRO 3.5 Planteamiento y solución del problema en Excel

© Ediciones Pirámide

83

Decisiones empresariales con hoja de cálculo El mensaje que muestra Solver es «Solver ha hallado una solución. Se han satisfecho todas las restricciones y condiciones» (figura 3.9):

Figura 3.9. Cuadro de diálogo de resultados de Solver: solución única.

3.4.2. Soluciones alternativas o múltiples No siempre la solución está en un solo punto extremo. Puede estar, también, en un hiperplano. Supongamos que tenemos el siguiente problema: Max(z) = 4x1 + 10x2 sujeto a las restricciones: 4x1 + 3x2 ≤ 12 2x1 + 5x2 ≤ 10 x1, x2 ≥ 0 La representación del nuevo problema sería la que se muestra en la figura 3.10. Como puede observarse, la recta de nivel óptima de la función objetivo es paralela a uno de los lados del poliedro convexo. En este caso se tienen tantas posibles soluciones como puntos haya en el segmento AB y, por tanto, existen infinitas soluciones alternativas. La solución del problema obtenida mediante Solver de Excel se muestra en el cuadro 3.6. Solver muestra una de las soluciones en uno de los vértices. En este caso la solución corresponde con el vértice A de la figura 3.10. El mensaje que muestra Solver es el mismo que con solución única. Para ver que se trata de soluciones alternativas habrá que ver el «Informe de sensibilidad». Si se empieza por una solución inicial diferente a x1 = x2 = 0, la solución propor-

84

© Ediciones Pirámide

Introducción a la Programación Lineal (PL)

x2 5

4

3

2

A

1

B

0 1

2

3

4

5

x1

Figura 3.10. Soluciones alternativas.

CUADRO 3.6 Planteamiento y solución del problema en Excel

© Ediciones Pirámide

85

Decisiones empresariales con hoja de cálculo cionada por el Solver puede ser diferente a la obtenida en el cuadro 3.6 en cuanto a los valores de x1 y x2, pero, en cambio, el valor de la función objetivo será idéntico. La solución corresponde al vértice B de la figura 3.10, donde se cruzan las dos restricciones, siendo: x1 =

15 8 ; x2 = 7 7

que produce un valor de la función objetivo de 20, que es la misma que la que nos da Solver. De hecho, cualquier punto de la recta que une la solución obtenida mediante Solver y la que acabamos de calcular será una solución factible y óptima, con el mismo valor de la función objetivo. En la práctica, en casi todos los casos, con una solución que tengamos (por ejemplo, la que nos proporcione Solver) será suficiente.

3.4.3. Solución infactible Supongamos ahora que el problema que debe resolverse es el siguiente: Max(z) = −2x1 + 6x2 sujeto a las restricciones: x1 − x2 ≥ 1 −x1 + x2 ≥ 1 x1, x2 ≥ 0 En la figura 3.11 se representan los conjuntos de puntos que satisfacen cada una de las restricciones del problema. Como puede verse, las restricciones son incompatibles entre sí y, por tanto, la solución es infactible; es decir, no hay ninguna solución que cumpla simultáneamente las restricciones especificadas. Al ser una solución infactible, Solver nos mostrará un cuadro de diálogo con el mensaje «Solver no ha encontrado una solución válida» (véase figura 3.12). Aunque no haya solución, Solver incorporará nuevos datos a la hoja de Excel donde hemos planteado el problema. Sin embargo, los datos incorporados no proporcionarán una solución factible al problema. Si la solución inicial (que en

86

© Ediciones Pirámide

Introducción a la Programación Lineal (PL)

x2

3

2

1

0

1

2

3

x1

Figura 3.11. Solución infactible.

CUADRO 3.7 Planteamiento del problema en Excel

© Ediciones Pirámide

87

Decisiones empresariales con hoja de cálculo principio es que todas las variables sean iguales de cero) se cambia, los números que aparecen en las celdas correspondientes a las variables pueden ser diferentes. En todo caso, tampoco representarán una solución al problema.

Figura 3.12. Cuadro de diálogo de resultados de Solver: solución infactible.

3.4.4. Solución no acotada o ilimitada Modificaremos el ejemplo anterior para que quede como: Max(z) = −2x1 + 6x2 sujeto a las restricciones: x1 + x2 ≥ 2 −x1 + x2 ≤ 1 x1, x2 ≥ 0 En la figura 3.13 se muestra una representación geométrica del correspondiente programa lineal. La función objetivo, que mejora en la dirección señalada por la flecha, puede llegar hasta el infinito sin perder factibilidad. En este caso se dice que la solución es no acotada o ilimitada. En este caso, Solver nos indicará que «Los valores de las celdas fijas no convergen» (figura 3.14). Los valores que aparecen en las celdas correspondientes a las variables pueden tomar cualquier valor, el cual, en todo caso, será completamente inválido.

88

© Ediciones Pirámide

Introducción a la Programación Lineal (PL)

x2

3

2

1

0

1

2

3

x1

Figura 3.13. Solución no acotada.

CUADRO 3.8 Planteamiento del problema en Excel

© Ediciones Pirámide

89

Decisiones empresariales con hoja de cálculo

Figura 3.14. Cuadro de diálogo de resultados de Solver: solución no acotada o ilimitada.

3.4.5. Solución degenerada Una solución degenerada se produce cuando una de las variables básicas (este concepto se verá en el capítulo 4) tiene un valor igual a cero. En términos geométricos esto significa que la solución está en el límite de los ejes del cuadrante que limita las soluciones. El siguiente ejemplo ilustra este concepto. Sea el problema: Max(z) = 12x1 + 15x2 sujeto a las restricciones: 4x1 + 3x2 ≤ 6 2x1 + 5x2 ≤ 10 x1, x2 ≥ 0 En la figura 3.15 se representa la solución gráfica (degenerada) que se encuentra en el punto D. En el cuadro 3.9 vemos la solución en la hoja de Excel, que, efectivamente, tendrá una variable con valor cero. En este caso, Solver da una solución, como muestra el cuadro de diálogo de la figura 3.9, esto es, la solución óptima. Como veremos en el capítulo 4, este tipo de soluciones (degeneradas) en teoría podría originar que no se llegara a la solución óptima. En la práctica, no tiene consecuencias de ningún tipo, por lo que debemos tratarlas como cualquier otro tipo de solución factible y óptima.

90

© Ediciones Pirámide

Introducción a la Programación Lineal (PL)

x2

3

D 2

1

0

1

2

3

4

5

x1

Figura 3.15. Solución degenerada.

CUADRO 3.9 Planteamiento y solución del problema en Excel

© Ediciones Pirámide

91

Decisiones empresariales con hoja de cálculo De los ejemplos anteriores pueden realizarse las siguientes importantes observaciones: a) Si existe una solución factible y acotada, ésta siempre está en un vértice del conjunto factible, aunque en algunos casos puede estar en más de un vértice (soluciones alternativas). b) Si existe una solución factible y acotada, ésta siempre estará en un área delimitada por un poliedro convexo. c) Si las restricciones no se pueden representar mediante un poliedro convexo, entonces es que no existe una solución al problema o ésta es infinita.

3.5. EL DUAL Y SU INTERPRETACIÓN ECONÓMICA Como veremos con más extensión en el capítulo 5, cada problema de PL tiene asociado un problema simétrico y equivalente al que llamamos dual. Esa propiedad, a la que se llama dualidad, tiene unas ventajas muy importantes, puesto que nos permite realizar ciertas inferencias sobre la solución que no hemos visto en apartados anteriores. Recordemos que la solución mediante el Solver del PL de nuestro ejemplo del epígrafe 3.2 nos daba como resultado que debíamos utilizar 30 hectáreas para trigo y 50 para maíz, y que nuestro beneficio, si actuábamos de esta manera, sería de 13.000 €. Algunas preguntas inmediatas que seguramente se harían muchos agricultores serían las siguientes: a) ¿Me convendría alquilar nuevas hectáreas de tierra? ¿A qué precio máximo podría alquilarlas para aumentar mi beneficio? ¿Me convendría alquilar parte de la finca? ¿A qué precio? b) Si me vendieran agua, ¿me convendría comprarla?, ¿a qué precio máximo?, ¿me convendría vender parte del agua?, ¿a qué precio? Como puede verse, las cuestiones anteriores pretenden contestar a preguntas que tienen que ver con la disponibilidad de más o menos recursos de los que disponemos actualmente. De manera más formal, tienen que ver con el término que aparece al lado derecho de las restricciones. Las del apartado a) a la primera restricción (hectáreas de tierra), y las del b) a la segunda (m3 de agua).

92

© Ediciones Pirámide

Introducción a la Programación Lineal (PL)

3.5.1. El análisis de sensibilidad de los coeficientes del término independiente (recursos) Para contestar a las indicadas preguntas, primero debemos obtener del Solver el llamado Informe de sensibilidad. Para ello, una vez que se ha llegado a la solución óptima marcamos Sensibilidad en el cuadro de diálogo de la figura 3.16. De esta forma, se obtiene en el mismo «Libro» de Excel una hoja adicional con la etiqueta de Informe de sensibilidad. Abriendo esta hoja se observa en este caso lo que se expone en el cuadro 3.10.

Figura 3.16. Cuadro de dialogo del Solver para obtener el Informe de sensibilidad.

CUADRO 3.10 Informe de sensibilidad

© Ediciones Pirámide

93

Decisiones empresariales con hoja de cálculo Esta hoja contiene tres partes: la primera contiene título, fecha, etc., la segunda «Celdas cambiantes» y la tercera «Restricciones». En esta última parte aparecen dos líneas correspondientes a las dos restricciones «hectáreas usadas» (hectáreas de tierra utilizadas) y «m3» (m3 de agua usados). La columna con cabecera «Valor Igual» nos da el valor del lado izquierdo de la ecuación, que para la primera restricción es de 80 y para la segunda de 124. Puesto que éstas eran las cantidades máximas de recursos disponibles, resulta que, como ya sabíamos cuando realizamos el ejercicio en el capítulo anterior, se han consumido todos los recursos disponibles. Hasta aquí todo conocido. La siguiente columna tiene como cabecera «Sombra precio», aunque en realidad debería decir «Precio sombra»5, que, en nuestro ejemplo, tiene un valor de 33,33 para la restricción «hectáreas usadas» y de 83,33 para la restricción «m3 de agua usados». ¿Qué significan estos valores? El precio sombra es el valor en el que mejora la función objetivo cuando mejoramos en una unidad cada uno de nuestros recursos considerados independientemente. ¿Cómo se traduce exactamente esta definición en nuestro ejemplo? Veamos el caso de las hectáreas de tierra (primera restricción). Mejorar en una unidad el recurso tierra significa pasar de 80 a 81 hectáreas disponibles, y mejorar la función objetivo significa tener más beneficio. Por tanto, de esta definición deducimos que si tuviéramos 81 hectáreas en lugar de 80, ganaríamos 33,33 € adicionales. Esto nos permite contestar a las preguntas que nos hacíamos, por lo menos en el entorno de la solución actual. Así, podríamos decir que sí convendría alquilar nuevas hectáreas de tierra siempre que el precio fuese inferior a 33,33 € por hectárea, ya que el beneficio por cada hectárea adicional sería justamente esta cantidad. Así, si por ejemplo me alquilaran una hectárea a 20 €, mi beneficio aumentaría en 13,33 € (33,33 − 20). También podría contestar a la pregunta de si me conviene alquilar. Evidentemente, alquilar significaría tener menos (empeorar) recursos, lo que me produciría un empeoramiento de la función objetivo (esto es, una pérdida). ¿En cuánto? En este caso, exactamente en 33,33; en consecuencia, sólo me interesaría alquilar tierras si el precio de alquilar por hectárea fuese superior a esa cifra. De esta forma, si por ejemplo me alquilasen una hectárea a 50 euros produciría menos trigo y/o maíz, pero, en su conjunto, ganaría  16,67 € (50 − 33,33) adicionales al beneficio actual por cada hectárea que alquilase. Con el agua, la interpretación sería análoga. En este caso el precio sombra del agua, como puede verse en el cuadro 3.10 (E16) es de 83,33. Esto significa que estaría dispuesto a comprar agua por debajo y venderla por encima de este precio. En principio, los resultados anteriores lo son solamente en el entorno de la solución actual y de manera independiente, esto es, recurso a recurso y para pequeñas variaciones sobre los recursos actualmente existentes. Si la variación que

5

94

De nuevo, se trata de una mala traducción. La versión original inglesa dice «Shadow Price». © Ediciones Pirámide

Introducción a la Programación Lineal (PL) se pretende analizar es muy amplia o se quiere analizar más de un recurso a la vez (por ejemplo variaciones de las hectáreas alquiladas y del agua disponible simultáneamente), entonces lo que debe hacerse es volver a optimizar cambiando los valores referidos a los recursos correspondientes. El análisis de sensibilidad de los coeficientes del término independiente nos permite realizar otros análisis, aunque con un interés generalmente inferior al que tienen los «Precios sombra». Así, el «Aumento permisible» de la restricción «hectáreas» con un valor de 75 (G15) nos dice que, incrementando otras 75 hectáreas cultivables, continuaría produciendo trigo y maíz, pero no necesariamente en las mismas cantidades. Si, en cambio, dispusiera de más de 75 hectáreas adicionales, esto es, más de 155 en total, dejaría de cultivar algún cereal. En el caso de la «Disminución permisible6» con un valor de 18, significa que, al dejar de disponer de algo más de 18 hectáreas, esto es, menos de 78 ha en total, dejaría de producir algún cereal. Si dispusiera, digamos, de 17 hectáreas menos, seguiría produciendo trigo y maíz, pero no en las mismas cantidades, ni tampoco mi beneficio sería el mismo. Para la restricción «m3 de agua usados» la interpretación sería análoga a la anterior, pero referida al agua disponible. La columna «Restricción lado derecho» se refiere al valor que le hemos dado en nuestro problema al lado derecho de cada restricción, mientras que «Valor igual» es el valor que ha tomado el lado izquierdo de la restricción en el óptimo. En «Celda» se especifican las celdas donde están vinculados los valores del lado derecho de cada restricción. En «Nombre» se forma un literal que está compuesto por dos partes: la primera corresponde al primer literal que se encuentra a la izquierda de la fila, en nuestro ejemplo «hectáreas» o «m3 de agua usados», y la segunda corresponde con el primer literal que se encuentra en la parte superior de la celda, en nuestro ejemplo «usados».

3.5.2. El análisis de sensibilidad de los coeficientes de la función objetivo En nuestro ejemplo hemos considerado que los beneficios unitarios asociados a cada hectárea cultivada de trigo o de maíz eran perfectamente conocidos y que no estaban sujetos a ninguna incertidumbre. Suponíamos que el beneficio por hectárea cultivada de trigo era de 100 € y de 200 € por cada hectárea cultivada de maíz. Sin embargo, es evidente que casi nunca estamos del todo seguros del dato 6 En las versiones 11.0 y anteriores del Excel las dos columnas tienen el título de «Aumento permisible». En realidad se trata de un error. La última columna debería decir «Disminución permisible».

© Ediciones Pirámide

95

Decisiones empresariales con hoja de cálculo sobre beneficios unitarios de nuestro cultivo de trigo y maíz (o en general, de los coeficientes de la función objetivo). A partir de este punto nos hacemos preguntas del tipo: si en lugar de tener un beneficio por hectárea cultivada de trigo de 100 €, éste fuera, por ejemplo, de 85 € (quizá debido a una cosecha inferior o debido a una peor calidad de la semilla de trigo), ¿deberíamos haber dedicado las mismas hectáreas a trigo y maíz para tener un beneficio máximo? Para contestar a esta pregunta debemos analizar las dos últimas columnas de la segunda parte («Celdas cambiantes») del Informe de sensibilidad con el título de «Aumento permisible» y «Disminución permisible»7. En el caso de producción de trigo, estos valores corresponden respectivamente a 100 (G9) y 20 (H9). Estos datos significan que si el beneficio por hectárea dedicada al trigo estuviera entre 80 € (100 − 20) y 200 € (100 + 100), para obtener el beneficio máximo deberíamos seguir dedicando las mismas hectáreas al maíz y al trigo que en el caso de que este beneficio unitario fuese exactamente igual al considerado inicialmente. Naturalmente, el beneficio total de la explotación agrícola (esto es, el valor de la función objetivo) no sería el mismo si variase ese beneficio unitario, pero eso no cambiaría nuestra decisión óptima en términos de las hectáreas a cultivar de cada cereal y del agua a consumir. En consecuencia, la pregunta de si con un beneficio por hectárea plantada de trigo de 85 debemos seguir dedicando el mismo espacio que antes al trigo y al maíz, tiene una respuesta afirmativa. Análogamente, podemos hacer este análisis para el caso del maíz. Los datos que aparecen en las dos últimas columnas de la segunda parte («Celdas cambiantes») del «Informe de sensibilidad» para la segunda variable, nos muestran los valores 50 (G10) y 100 (H10). Estos datos indican que si el beneficio por hectárea dedicada al maíz estuviera entre 100 € (200 − 100) y 250 € (200 + 50), para obtener el beneficio máximo deberíamos seguir dedicando las mismas hectáreas al maíz y al trigo que en el caso de que este beneficio fuese exactamente igual a su valor inicial. Al igual que en el caso anterior, el beneficio total de la explotación agrícola no sería el mismo si variase ese beneficio unitario, pero eso no cambiaría nuestra decisión óptima, ya que debemos seguir dedicando el mismo espacio que antes al trigo y al maíz. En ambos casos los análisis deben hacerse de manera individualizada, esto es, considerando la variación de un solo coeficiente y manteniendo todos los demás constantes. El gradiente reducido es el equivalente al «Precio sombra». Indica la pérdida que tendríamos en la función objetivo si pretendiésemos utilizar una variable cuyo valor actual es cero. Aquellas variables cuyo valor es diferente de cero tienen un gradiente reducido de cero, como es el caso de nuestro ejemplo. El «Coeficiente objetivo» (F7: F10) es el valor que le hemos dado a los coeficientes de la función objetivo. «Valor igual» (D7: D10) es el valor que toman

7

96

Véase nota a pie de página anterior. © Ediciones Pirámide

Introducción a la Programación Lineal (PL) las variables en el óptimo. Las columnas «Nombre» y «Celda» tienen el mismo significado y se construyen de la forma que hemos especificado en el apartado anterior.

3.6. OTROS INFORMES Y OPCIONES DE SOLVER Además del «Informe de sensibilidad», el Solver produce otros informes y tiene opciones que son menos relevantes para nosotros y que se explican a continuación. «Informe de respuestas» En realidad nos proporciona prácticamente la misma información que la que tenemos directamente en la hoja de cálculo donde tenemos desarrollado el modelo. Además de la versión de Excel que estamos usando, nombre de la hoja y fecha y hora del informe, tiene tres secciones: «Celda objetivo», «Celdas cambiantes» y «Restricciones». En la «Celda objetivo» nos aclara si se trata de un máximo o un mínimo y, además de darnos el valor óptimo en la columna «Valor Final», nos da una columna «Valor original» que se refiere al valor a partir del cual ha empezado a iterar para llegar hasta el óptimo o la solución que nos haya proporcionado. En el caso de nuestro ejemplo, este valor inicial ha sido cero. En el caso de las «Celdas cambiantes», esto es, variables, nos da también los valores en el óptimo y los iniciales en el momento de empezar a iterar. En cuanto a las «Restricciones» y en la columna «Valor de la celda» nos dice el que tiene el lado izquierdo de cada restricción, mientras que la columna «Fórmula» nos dice la relación entre el valor de la celda correspondiente al lado izquierdo de la restricción y la del lado derecho. En medio está el signo por el que  se rigen ambos lados. En «Estado» nos dice si la restricción se cumple estrictamente, esto es, si el lado izquierdo es exactamente igual al lado derecho, en cuyo caso nos dice «Obligatorio», o si la relación es de desigualdad, en cuyo caso nos dirá «Opcional». La siguiente columna, «Divergencia», nos indica la diferencia entre el valor del lado derecho de cada restricción y el lado izquierdo. Lógicamente, si el «Estado» da «Obligatorio», la «Divergencia» será siempre cero. Las columnas «Celda» y «Nombre» se forman tal y como hemos explicado en apartados anteriores. El cuadro 3.11 representa el «Informe de respuestas» del ejemplo inicial del apartado 3.3. © Ediciones Pirámide

97

Decisiones empresariales con hoja de cálculo CUADRO 3.11 Informe de respuestas

Numeración de informes Después del nombre de los informes, aparece un número (por ejemplo, «Informe de sensibilidad 1») que es correlativo con el que se va pidiendo del mismo problema. Estos informes se van guardando como hojas en el mismo libro en el que está la hoja con el planteamiento y solución del problema original. Opciones de Solver En el cuadro de diálogo de Solver, en «Opciones de Solver» (véase figura 3.5) aparecen una serie de parámetros que pueden ser elegidos por el usuario, tales como: tiempo, iteraciones, precisión... Nuestro interés estará, salvo que digamos otra cosa, en dos elementos: «Adoptar modelo lineal» y «Asumir no negativos». Efectivamente, hasta el capítulo 7 sólo vamos a trabajar con modelos lineales, por lo que debemos marcar la primera opción de las dos anteriores. Generalmente, todas las variables deberán ser no negativas, en cuyo caso, en lugar de poner una restricción que indique que todas las variables deben ser negativas, podemos marcar esta opción.

98

© Ediciones Pirámide

Introducción a la Programación Lineal (PL) En algunos casos, si tenemos grandes diferencias en las escalas, podremos marcar8 «Usar escala automática». Si pretendemos saber los resultados en cada iteración hasta llegar al óptimo también podemos marcar «Mostrar resultados de iteraciones», aunque esta opción no tiene interés para nosotros. En general, no deberemos preocuparnos por otras opciones. Excepcionalmente, en problemas grandes puede ser necesario alargar el «Tiempo», que está por defecto en 100 segundos, o el número de iteraciones, que está en 100 «Iteraciones». Tamaño máximo de problemas a resolver mediante el Solver del Excel El Solver que se incluye en el Excel es de un tamaño limitado. Resuelve problemas de un tamaño máximo de 200 variables9. Si el problema a resolver es superior a este tamaño aproximadamente, no nos calculará el óptimo. En este último caso, si queremos resolverlo, deberemos comprar un software específico que funciona de la misma manera, pero que es capaz de resolver problemas de mucho mayor tamaño10. Otras posibilidades El Solver permite otras opciones tales como guardar diferentes versiones de modelos que podemos ir analizando («Guardar escenarios») o restablecer en la hoja de cálculo de nuestro modelo los valores previos a la optimización («Restablecer todo»). Son opciones que generalmente no vamos a utilizar. Tampoco haremos uso del «Informe de límites».

ANEXO 1. INCORPORACIÓN DE SOLVER A EXCEL Activar y utilizar Solver en Microsoft Office 2007 Si está utilizando la versión 2007 de paquete Microsoft Office, para activar Solver debe seguir los siguientes pasos: 1.

Abra Excel y pulse el botón de la esquina superior izquierda, «Botón de Office».

8

Véase a este respecto epígrafe 6.2.7. http://www.solver.com/xlspremsolv.htm. 10 El software se puede ver y comprar en www.solver.com. 9

© Ediciones Pirámide

99

Decisiones empresariales con hoja de cálculo

2.

100

Al final del desplegable puede ver un botón que pone «opciones de Excel». Cuando pulse el botón aparecerá una pantalla con unas opciones a la izquierda. Debe pulsar sobre «complementos»:

© Ediciones Pirámide

Introducción a la Programación Lineal (PL) 3.

4.

5.

© Ediciones Pirámide

En la pantalla anterior aparece Solver en las opciones activas, pero si no está aún activado aparecerá en la lista de «Complementos de aplicaciones inactivas». Sitúe el ratón encima de Solver (se ilumina toda la fila de información sobre Solver) y pulse el botón «Aceptar» que aparece en la arte inferior derecha de la pantalla. En ese momento ya está activado. Para utilizarlo, podrá acceder a Solver en el menú de «Datos». En la derecha del todo encontrará un botón, «Análisis», para acceder al cuadro de diálogo de Solver.

101

Decisiones empresariales con hoja de cálculo

EJERCICIOS PROPUESTOS Respecto a los problemas siguientes: a) b) c) d) 1.

Represente el problema y obtenga la solución gráfica. Resuelva el problema mediante Solver. Obtenga la hoja de análisis de sensibilidad, en su caso. Interprete la solución y el análisis de sensibilidad, en su caso.

Max(z) = 3x1 + 3x2 Sujeto a: x1 + 2x2 ≤ 8 2x1 + x2 ≥ 6 x2 ≥ 2 x1, x2 ≥ 0

2.

Max(z) = 2x1 − x2 Sujeto a: 2x1 − x2 = 2 8x1 + 2x2 ≤ 80 x1, x2 ≥ 0

3.

Max(z) = 1x1 + 2x2 Sujeto a: 4x1 + 3x2 ≥ 42 2x1 − 2x2 ≤ 6 x2 ≤ 10 x1, x2 ≥ 0

102

© Ediciones Pirámide

Introducción a la Programación Lineal (PL) 4.

Max(z) = 9x1 + 15x2 Sujeto a: x1 + 2x2 ≥ 30 x1 + x2 ≥ 80 x1, x2 ≥ 0

BIBLIOGRAFÍA Dantzig, G. B. (1963). Linear Programming and Extensions. Princeton University Press. Villalba Vila, D. y Jerez Méndez, M. (1990). Sistemas de optimización para la planificación y toma de decisiones. Madrid: Pirámide.

© Ediciones Pirámide

103

4

El método del Simplex

4.1. INTRODUCCIÓN A LOS PROBLEMAS DE PL En el capítulo anterior analizamos la geometría elemental de un problema de PL. Aprendimos cómo representarlo gráficamente y cómo resolverlo, también gráficamente. Naturalmente, salvo en problemas muy pequeños, no es posible representar y resolver gráficamente problemas de PL. Debemos hacerlo de forma numérica. Este es el objetivo de este capítulo. El algoritmo más conocido y utilizado para resolver problemas de PL es Simplex, creado por Dantzig (1963). Es también el más antiguo. Con posterioridad se han desarrollado otros algoritmos, siendo el más conocido de todos ellos el debido a Karmarkar (1984). Como vimos en parte en el capítulo anterior, y desarrollaremos en los siguientes apartados de éste, el algoritmo del Simplex va recorriendo los vértices del poliedro convexo hasta que llega a la solución óptima. En cambio, el algoritmo de Karmarkar es de los llamados de punto interior, esto es, va por dentro del poliedro convexo, y no por el exterior, hasta llegar a la solución óptima. En teoría, el Simplex tiene tiempos de resolución exponenciales, mientras que por ejemplo el de Karmarkar los tiene sólo polinomiales, que resultarían menores. Sin embargo, por razones todavía no bien explicadas, para la mayor parte de los problemas reales los tiempos de resolución mediante el algoritmo del Simplex son inferiores a los de Karmarkar. Por esta razón, la gran mayoría de los códigos comerciales siguen utilizando como algoritmo de base el Simplex. En este capítulo, nosotros estudiaremos exclusivamente el algoritmo del Simplex. Además de ser el más utilizado, resulta muy natural su interpretación económica, lo que supone una gran ventaja a la hora de analizar la solución más allá de los resultados inmediatos. Además del libro de Dantzig (1963), existen algunos textos clásicos que tratan sobre el algoritmo del Simplex de manera detallada. Entre los más conocidos es© Ediciones Pirámide

105

Decisiones empresariales con hoja de cálculo tán Gass (1985) y Simmonard (1966). Una referencia de lectura más asequible sobre el algoritmo de Karmarkar puede encontrase en Hooker (1986). Además de algunos clásicos especializados en algoritmos para resolver problemas de PL, existen una infinidad de textos que tratan sobre Management Science, Investigación Operativa o Métodos Cuantitativos, que, en su mayor parte, contienen explicaciones detalladas sobre el algoritmo del Simplex y, en algunos casos, de otros algoritmos. Algunos de los más clásicos son Hillier y Lieberman (1974), Taha (1998), Eppen, Gould y Schmidt (2000) y Winston (2005).

4.2. CARACTERIZACIÓN DE LOS PROBLEMAS DE PL El método más conocido y habitual para resolver problemas de PL es el método del Simplex, creado por Dantzig (1963). Antes de desarrollar este método es preciso enunciar dos teoremas1 que no probaremos: 1. 2.

El conjunto de posibles soluciones, o conjunto factible, de cualquier problema de PL puede representarse mediante un poliedro convexo. Si un PL tiene una solución óptima y finita, ésta estará en un vértice del poliedro convexo que representa al problema de PL.

La expresión general de un PL es: Max(z) = c1 x1 + c2 x2 + ... + cn xn a11 x1 + a12 x2 + ... a1n xn ≤ b1 ... am1 x1 + am2 x2 + ... amn xn ≤ bm ∀xj ≥ 0 Siendo los vectores:

am1

amn

b=

b1 b2 ...

...

cn

A=

a11 ... a1n a12 ... a2n ...

xn

c=

c1 c2 ...

...

x=

x1 x2

bm

1 En el capítulo anterior pudimos comprobar, de forma gráfica, el cumplimiento de estos teoremas para algunos ejemplos.

106

© Ediciones Pirámide

El método del Simplex De todo lo anterior se deduce que, puesto que el número de vértices de cualquier poliedro factible es finito, el número de posibles soluciones de un PL también es finito. Además, sugiere un posible algoritmo para obtener la solución óptima. Consistiría en calcular el valor de la función objetivo en cada uno de los vértices del conjunto factible y escoger el mejor. Para ilustrar esta idea empezaremos planteando un problema de PL en su forma canónica2. A continuación ilustramos esta idea mediante un ejemplo. n

Max(z) = ∑ cj xj j=1

sujeto a: n

∑ aij xj ≤ bi

∀i∊{1, ..., m}

xj ≥ 0

∀j∊{1, ..., n}

j=1

Añadiendo variables de holgura a cada una de las restricciones se obtendría la formulación equivalente: n

Max(z) = ∑ cj xj j=1

sujeto a: n

∑ aij xj + si = bi

∀i∊{1, ..., m}

xj ≥ 0

∀j∊{1, ..., n}

si ≥ 0

∀i∊{1, ..., m}

j=1

El número de vértices del conjunto factible del problema es:

(

)

m+n (m + n)! = m (m)!(m + n − m)!

(1)

La cantidad m + n refleja el número de variables originales (n) más las variables de holgura (una para cada ecuación, en total, m). Las posibles soluciones serán tantas como combinaciones de m + n variables tomadas en bloques de m. Cada bloque de m variables con m restricciones dará lugar a la solución exacta de un sistema de ecuaciones de dimensión m × m. 2 La forma canónica de un problema de PL es aquella que consiste en una función objetivo a maximizar, con todas las restricciones menores o iguales que el lado derecho y todas las variables no negativas.

© Ediciones Pirámide

107

Decisiones empresariales con hoja de cálculo El ejemplo del capítulo anterior nos ilustra sobre todos los vértices del mencionado problema. Recordemos que este problema era: Max(z) = 100x1 + 200x2 sujeto a: x1 + x2 ≤ 80 0,8x1 + 2x2 ≤ 124 x1, x2 ≥ 0 El número de vértices del sistema es, de acuerdo con (1):

(

)

2+2 4! = =6 2 2!2!

que se corresponde con las seis soluciones básicas del sistema de ecuaciones: x1 + x2 + s1 = 80 0,8x1 + 2x2 + s2 = 124 Obsérvese que al sistema original se le han añadido las variables de holgura s1 y s2. Las posibles soluciones son: A) Haciendo s2 = 0 y x1 = 0, se obtiene: x2 + s1 = 80 2x2 = 124 cuya solución es x2 = 62 y s1 = 18. B) Haciendo s1 = 0 y x1 = 0, se obtiene: x2 = 80 2x2 + s2 = 124 cuya solución es x2 = 80 y s2 = −36.

108

© Ediciones Pirámide

El método del Simplex C) Haciendo x1 = 0 y x2 = 0, se obtiene: s1 = 80 s2 = 124 D) Haciendo s2 = 0 y x2 = 0, se obtiene: x1 + s1 = 80 0,8x1 = 124 cuya solución es x1 = 155 y s1= −75. E) Haciendo x2 = 0 y s1 = 0, se obtiene: x1 = 80 0,8x1 + s2 = 124 cuya solución es x1 = 80 y s2 = 60. F ) Haciendo s1 = 0 y s2 = 0, se obtiene: x1 + x2 = 80 0,8x1 + 2x2 = 124 cuya solución es x1 = 30 y x2 = 50. Las seis soluciones indicadas corresponden a los vértices de la figura 4.1. De las seis soluciones, la B y la D no son factibles, ya que tienen alguna variable con un valor negativo. La solución F es óptima, ya que ninguna de las otras soluciones factibles tiene asociado un valor mejor de la función objetivo. Pese a que el número de posibles soluciones de un PL es finito, en la práctica resultaría excesivamente costoso comprobarlas todas para encontrar el óptimo. Efectivamente, en problemas de tamaño más real que el ejemplo anterior (aunque no muy grande), el número de vértices se hace enormemente grande. Así por ejemplo, un problema con 50 ecuaciones y 70 variables tiene:

( © Ediciones Pirámide

)

50 + 70 (50 + 70)! = = 1,83617E + 34 vértices 50 50!*(50 + 70 − 50)!

109

Decisiones empresariales con hoja de cálculo

x2

90 B

60 A

F

30

C

E

0

60

D 120

180

x1

Figura 4.1. Soluciones de un sistema de m inecuaciones y n incógnitas.

y uno de 100 ecuaciones y 200 variables:

(

)

100 + 200 (100 + 200)! = = en la práctica es infinito 100 100!*(100 + 200 − 100)!

El método Simplex no recorre explícitamente todos los vértices del conjunto factible, sino que, en cada iteración, comprueba si existe un cambio de vértice que mejore la solución actual. Si no existe ningún vértice mejor que el actual, el proceso se detiene, puesto que se ha llegado al óptimo. El concepto de vértice es de naturaleza geométrica, y resulta, por tanto, poco adecuado para construir a partir de él un algoritmo utilizable por ordenadores. Por ello, el método Simplex se basa en un concepto algebraico muy similar: el de solución básica factible (SBF). De una manera más formal, a partir del sistema de ecuaciones: n

∑ aij xj + si = bi

∀i∊{1, ..., m}

xj ≥ 0

∀j∊{1, ..., n}

j=1

110

© Ediciones Pirámide

El método del Simplex Se dice que una solución básica es aquella que tiene al menos n-m componentes nulos, o variables no básicas, a las que llamamos xN. Las m variables restantes se denominan variables básicas y las denominamos xB. Formalmente, a partir del sistema: Ax = b se dice que xB es una solución básica del mismo si puede realizarse la partición: A = [B | N] x = [xB | xN]

[x ] = Bx

Ax = b ⇒ [B | N]

xB

B

+ NxN = b

N

y si xN = 0, entonces B−1BxB = B−1b ⇒ xB = B−1b Existen varios tipos de solución básica: a) Solución básica factible (SBF). Todas las variables básicas son mayores o iguales que cero. b) Solución básica factible no degenerada. Todas las variables básicas son estrictamente positivas. c) Solución básica factible degenerada. Alguna variable básica toma un valor nulo. Puede demostrarse que cada SBF representa un vértice del conjunto factible. Sin embargo, un vértice puede ser representado por más de una SBF, si la solución es degenerada.

4.3. EL ALGORITMO DEL SIMPLEX El algoritmo del Simplex busca el óptimo de un problema de PL recorriendo sólo algunos de los vértices del poliedro que representa el conjunto de soluciones factibles. En cada iteración, al algoritmo se desplaza de un vértice a otro, de forma que el valor de la función objetivo mejore con el desplazamiento, esto es, © Ediciones Pirámide

111

Decisiones empresariales con hoja de cálculo aumenta si el problema es de maximización, o disminuye si el problema es de minimización. La optimización de un PL puede dar lugar a cuatro posibles resultados: a) Alcanzar un óptimo único. b) Alcanzar un óptimo que no es único (soluciones alternativas o múltiples). c) Concluir que el problema es no factible o infactible, esto es, que no existe ninguna solución que satisfaga simultáneamente todas las restricciones del problema. d) Concluir que el problema es no acotado, es decir, que el valor de la función objetivo en el óptimo es tan grande como se desee si el problema es de maximización, o tan pequeño como se quiera si el problema es de minimización. El método Simplex alcanza siempre uno de estos resultados en un número finito de iteraciones. En cada iteración se pasa de una solución básica factible a otra, de manera que, en el proceso, el valor de la función objetivo mejora en cada iteración. Cuando se determina que no existe ninguna SBF con un mejor valor de la función objetivo que el actual, se detiene el proceso, puesto que se ha llegado al óptimo. A continuación se desarrolla el algoritmo del Simplex teniendo en cuenta tres reglas para llegar al óptimo: regla de entrada en la base, regla de salida de la base y test de optimalidad.

4.3.1. Costes reducidos y test de optimalidad Sea un PL en el que todas las restricciones han sido reducidas a igualdades mediante las transformaciones adecuadas: Max(z) = cTx sujeto a: Ax = b x≤0 A partir de una SBF cualquiera puede realizarse la descomposición:

112

z = cBT xB + cNT xN

(4.1)

BxB + NxN = b

(4.2) © Ediciones Pirámide

El método del Simplex Suponiendo que la matriz B admite inversa, puede despejarse xB en (4.2), de forma que se obtiene: xB = B−1b − B−1NxN

(4.3)

z = cBT B−1b − cBT B−1NxN + cNT xN = z0 + (cNT − cBT B−1N)xN =

(4.4)

y sustituyendo xB en (4.1)

= z0 +

∑ (cj − zj) xj

j∊VN

donde: z0 = cBT B−1b es el valor de la función objetivo correspondiente a la SBF actual. VN: Conjunto de subíndices correspondientes a las variables no básicas. A los valores cj − zj se les denomina costes reducidos. Pueden interpretarse como derivadas, ya que miden el efecto sobre la función objetivo de un aumento unitario en el valor de cada una de las variables no básicas (indicadas como xj en 4.4). Por tanto: — Si una variable no básica que tenga asociado un coste reducido positivo entrara en la base (esto es, si tomara un valor positivo), el valor de la función objetivo aumentaría en (cj − zj) por cada unidad de xj. — Si una variable no básica que tenga asociado un coste reducido negativo entrara en la base, el valor de la función objetivo disminuiría (cj − zj) por cada unidad de xj. — Si una variable no básica que tenga asociado un coste reducido nulo entrara en la base, el valor de la función objetivo permanecería inalterado. Dado que el número de vértices del poliedro factible es finito, puede asegurarse que, en ausencia de degeneración, el método Simplex alcanza la conclusión de optimalidad o la de no acotamiento en un número finito de iteraciones. En concreto, se habrá alcanzado un óptimo cuando no sea posible mejorar el valor de la función objetivo cambiando las variables que están en la base. Esto es, cuando en un problema de maximización: ∀j∊VN : cj − zj ≤ 0 Como ya comentamos anteriormente, la idea fundamental del método Simplex es la de ir explorando los vértices del poliedro factible hasta llegar a una © Ediciones Pirámide

113

Decisiones empresariales con hoja de cálculo solución óptima. De esta forma, teniendo en cuenta que el número de vértices es finito, puede asegurarse que, tarde o temprano, se alcanzará la optimalidad. Sin embargo, si el valor de xr en la base antigua fuera cero, se produciría un pivoteo degenerado, en el que: xk = 0: la nueva SBF también es degenerada. xB = B−1b: no cambian los valores de las variables básicas. z = z0: no mejora el valor de la función objetivo. Por tanto, la nueva SBF representa al mismo punto extremo que la antigua SBF. Es concebible en teoría, por tanto, una situación en la que, a partir de una base determinada, se realice una sucesión infinita de pivoteos degenerados (ciclado). Esta situación se puede resolver fácilmente mediante un procedimiento que, sin embargo, no desarrollaremos por estar fuera del objetivo de este libro.

4.3.2. Regla de entrada de la base El método Simplex emplea los costes reducidos para determinar si la solución actual es óptima y, en caso de que no lo sea, qué variable debe entrar en la base. El criterio para elegir la variable que entra en la base, en el caso de maximización, es el de introducir en la base una variable xk tal que3: k = ArgMax {cj − zj | cj − zj > 0} esto es, se introduce en la base la variable que tenga el mayor coste reducido positivo o, lo que es lo mismo, aquella que más rápidamente mejora el valor de la función objetivo. Análogamente, el criterio de entrada en el caso de minimización es introducir la variable xk tal que: k = ArgMin {cj − zj | cj − zj < 0}

4.3.3. Regla de salida de la base Como la dimensión de la base es necesariamente igual al número de restricciones del problema, la introducción de una variable en la base deberá acompañarse con la salida de otra variable de la base. El criterio de salida se determina estudiando el efecto del crecimiento de xk sobre las variables básicas, de forma que 3 La función ArgMax significa el número subíndice que hace máxima la condición que aparece entre {}.

114

© Ediciones Pirámide

El método del Simplex se mantenga la factibilidad de la solución. Particularizando (4.3) para valores nulos de todas las variables no básicas excepto la k, se obtiene: xB = B−1b − B−1ak xk = B−1b − yk xk siendo ak la k-ésima columna de la matriz N. Esta expresión proporciona un sistema de m ecuaciones de la forma: ∀i∊VB : xBi = xBi0 − yik xk siendo xBi0 la i-ésima componente del vector xBi0 = B−1b, e yik la k-ésima componente del vector yk. Esta expresión refleja el efecto sobre la variable básica xBi del crecimiento de xk debido a la necesidad de mantener las condiciones de factibilidad Ax = b. En concreto: — Si yik es negativo, para mantener la factibilidad la variable i debe crecer a la vez que aumenta el valor de la variable k. — Si yik es nulo, puede mantenerse el valor de la variable i sin perder factibilidad. — Si yik es positivo, el mantener la factibilidad exige que la variable i decrezca a la vez que aumenta el valor de la variable k. Por tanto, a medida que xk crece, todas las variables que tengan un factor yik positivo disminuirán. Llegará un momento en que alguna de estas variables valdrá cero y, por tanto, no podrá aumentarse más el valor de xk sin violar las condiciones de no negatividad. En este momento, el crecimiento de la variable entrante quedará bloqueado. Ahora bien, xBi = 0 sólo si: xk =

0 xBi yik

luego la variable que bloquea el crecimiento de xk será xBr, siendo r el elemento de VB tal que: a) yrk > 0 b)

0 xBi x0 ≤ Bi yrk yik

∀i∊VB | yik > 0

Esto es, el crecimiento de xk es bloqueado por la primera variable básica que llega a valer cero. Si no existe ningún yik estrictamente positivo, el problema es no acotado, ya que la variable xk puede crecer indefinidamente sin pérdida de facti© Ediciones Pirámide

115

Decisiones empresariales con hoja de cálculo bilidad, mejorando el valor de la función objetivo. Una vez que el crecimiento de xk ha sido bloqueado, la variable k se considera básica y su valor se fija en: xk =

0 xBr yrk

que es el máximo valor que puede tomar xk sin que ninguna variable básica se anule. La variable r pasa a ser no básica y se inicia de nuevo el proceso. Estos cambios pueden tabularse de la forma que se muestra en la tabla 4.1. TABLA 4.1 Cambios que se producen al iterar Antes de la iteración

Después de la iteración

z = z0

z = z0 + (ck − zk)xk

xj = 0 ∀j∊VN | j ≠ k

xj = 0 ∀j∊VN | j ≠ k

xk = 0

xk = xr0 | yrk

xr = xr0

xr = 0

xB0 = B−1b

xB = xB0 − ykxk

VB = VB0

VB = VB0 − {r} + {k}

VN = VN0

VN = VN0 + {r} − {k}

4.3.4. Resumen del algoritmo del Simplex En resumen, el método Simplex opera iterativamente a través de los siguientes pasos: Paso 1. Hallar una solución básica factible inicial (SBF). Paso 2. Test de optimalidad. En problemas de maximización, el PL es óptimo si todos los costes reducidos (cj − zj) son menores o iguales que cero. En problemas de minimización, cada coste reducido debe ser mayor o igual que cero. Paso 3. Regla de entrada en la base. La variable que entra en la base debe ser aquella que tenga el mayor coste reducido positivo en el caso de maximización (o mayor coste reducido negativo en el caso de mini-

116

© Ediciones Pirámide

El método del Simplex mización), ya que ésta es la que aumenta (disminuye) más rápidamente el valor de la función objetivo. Supongamos que la variable entrante es la k-ésima. Paso 4. Regla de salida de la base. Después de decidir qué variable entra en la base, es preciso determinar qué variable sale de ella. El criterio consiste en seleccionar aquella que tiene un menor cociente entre su valor y el coeficiente de yk correspondiente a la columna k-ésima, siempre y cuando este coeficiente sea estrictamente positivo. La interpretación de este cociente es clara: representa el máximo valor que puede tomar la variable entrante antes de que la variable que se está considerando viole su restricción de no negatividad. Si todos los coeficientes de la columna k-ésima son nulos o negativos, estaríamos en el caso de solución no acotada o ilimitada, ya que la variable entrante puede crecer indefinidamente sin pérdida de factibilidad. Paso 5. Actualización de la solución. Recalcular la nueva inversa B−1 y la nueva solución de xB que se obtiene con el cambio de variable realizado en la base. Volver al paso 2. En la figura 4.2 se presenta un diagrama de flujo que resume el funcionamiento del algoritmo del Simplex.

4.4. EL MÉTODO DEL SIMPLEX EN FORMA DE TABLEAU El método Simplex se implementa en programas de ordenador (software) y resulta transparente para el usuario, pues éste no precisa tener un conocimiento de cómo funciona. Sin embargo, a los efectos de interpretar los resultados, resulta conveniente tener un conocimiento más detallado y «práctico» sobre su funcionamiento que el desarrollo teórico de apartados anteriores. Por estas razones, en este apartado estudiamos la resolución de problemas sencillos de PL mediante el método del Simplex en forma manual. En este caso, se utiliza el llamado formato de tableau. Esta técnica proporciona una forma cómoda de resolver ejercicios sencillos. Un problema de PL en forma estándar o canónica puede expresarse como: Max(z) = cTx sujeto a: Ax = b x≥0 © Ediciones Pirámide

117

Decisiones empresariales con hoja de cálculo

Comienzo

Determinar una SBF inicial

Fin infactible

No

¿Existe alguna SBF ? Leer Num_Datos Sí Determinar los costes reducidos de las v. básicas

Fin óptimo

No

¿Existe algún coste reducido positivo (maximización) o negativo (minimización)?

Sí Seleccionar la variable entrante. Calcular Yik

Fin no acotado

No

¿Existe algún Yki positivo? Sí Introducir en la base la variable entrante. Extraer de la base la variable que bloquee el crecimiento de la variable entrante. Actualizar xB

Figura 4.2. Diagrama de flujo del algoritmo del Simplex.

118

© Ediciones Pirámide

El método del Simplex Esta formulación equivale a: Max(z) sujeto a: z − cB xB − cN xN = 0

(4.4)

xB + B−1NxN = B−1b

(4.5)

x≥0 sustituyendo (4.5) en (4.4) y despejando se obtiene: z = cB B−1b + (cN − cBB−1N) xN Por definición, z = cB B−1b, luego: (cN − cB B−1N)xN = 0

(4.6)

Las operaciones anteriores pueden ordenarse en una tabla, a la que llamaremos tableau, de la siguiente forma:

B xB

cj

cB

cN

b

xB

xN

B−1b

I

B−1N

zj

cB

cB B−1N

cj − zj

0

cN − cBB−1N

cB cB

donde: cN − cB B−1N: Costes reducidos. B−1b: Valores de las variables básicas. Esta tabla contiene todos los elementos necesarios para aplicar el método Simplex. Además, forma un sistema de ecuaciones y, por consiguiente, pueden aplicársele una serie de transformaciones elementales, que no cambian su solución. Esto es: © Ediciones Pirámide

119

Decisiones empresariales con hoja de cálculo — Intercambiar dos filas. — Multiplicar una fila por un valor distinto de cero. — Sustituir la fila i por la fila i más K veces la fila j, siendo K un escalar arbitrario. El método Simplex aplicado a problemas en formato de tableau se reduce a aplicarle a la tabla estas operaciones, de forma que: — El nuevo tableau representa una nueva solución básica factible. — Salvo en el caso de soluciones degeneradas, el valor de la función objetivo mejora en cada iteración. Cuando se aplica este mecanismo de resolución, a cada iteración se la denomina pivoteo. En cada pivoteo se lleva a cabo el paso de una SBF a otra. Si la variable xk entra en la base y xr sale de la base, al elemento yrk se le denomina pivote. El pivoteo sobre yrk consiste en la ejecución sucesiva de las siguientes operaciones: 1. 2. 3.

Dividir la fila r entre yrk. Actualizar las filas i = 1 ..., m (i ≠ r) restándoles la fila r multiplicada por yrk. Actualizar la última fila restándole la fila r multiplicada por (zk − ck).

Como puede verse, los pasos 1 y 2 (apartado 4.3.4) suponen la transformación de la columna k en una columna de la matriz identidad, con ceros en todas las posiciones salvo la k-ésima. El paso 3 actualiza los valores de (zk − ck), lo cual nos sirve para comprobar si hemos alcanzado el óptimo. En definitiva, se trata de un método que actualiza la inversa correspondiente a las columnas de las variables básicas. A este método se le conoce como Gauss-Seidel 4. Esta operatoria no altera el contenido del sistema, ya que se limita a aplicar a las distintas ecuaciones una sucesión de transformaciones elementales (multiplicar una ecuación por un elemento y sumar o restar dos ecuaciones). A lo largo de los sucesivos pivoteos, lo único que se cambia es la base considerada, y este cambio se realiza de forma que la solución nunca empeora. En el caso no degenerado, la solución obtenida tras un pivoteo siempre es mejor que la solución correspondiente a la base anterior. A lo largo del proceso iterativo es posible reconocer todos los casos que pueden darse en la resolución de un PL: 4 Una descripción más detallada del método puede verse en: http://numericalmethods.eng.usf. edu/topics/gauss_seidel.html.

120

© Ediciones Pirámide

El método del Simplex a) Solución única. En el último tableau, los costes reducidos de las variables no básicas son estrictamente negativos (maximización) o estrictamente positivos (minimización). b) Soluciones alternativas. En el último tableau, alguno de los costes reducidos de las variables no básicas es igual a cero. Esto quiere decir que la variable no básica cuyo coste reducido es cero podría introducirse en la base sin perjudicar el valor de la función objetivo. c) Solución no acotada. Si al efectuar el test de salida de la base, todos los coeficientes de la columna correspondiente a la variable entrante son no positivos. Esto querría decir que la variable entrante puede aumentarse hasta el infinito sin que su crecimiento resulte bloqueado. d) Problema infactible. Se reconoce porque alguna variable de apoyo queda en la base en el tableau final. e) Solución degenerada. Alguna variable básica vale cero.

EJEMPLO 4.1. Aplicación del método Simplex en forma de «tableau» Partimos del programa lineal siguiente: Max(z) = 100x1 + 200x2 sujeto a: x1 + x2 ≤ 80 0,8x1 + 2x2 ≤ 124 x1, x2 ≥ 0 Para convertir las inecuaciones en ecuaciones se añade una variable de holgura por cada ecuación, con lo que queda: Max(z) = 100x1 + 200x2 + s1 + s2 sujeto a: x1 + x2 + s1 = 80 0,8x1 + 2x2 + s2 = 124 x1, x2, s1, s2 ≥ 0 © Ediciones Pirámide

121

Decisiones empresariales con hoja de cálculo El proceso de cálculo de la solución utilizando el método del Simplex en forma de tableau es el siguiente: Paso 1(0)5. Solución inicial. Empezamos con la solución básica: Si hacemos x1 = 0, x2 = 0, el sistema de ecuaciones es anterior es equivalente a resolver: s1 + 0s2 = 80 0s1 + s2 = 124 cuya solución es s1 = 80, s2 = 124. Esta solución corresponde al vértice señalado con el símbolo ✖ en la figura 4.3.

x2

100

80

60

40

20

0



20

40

60

80

100

120

140

160

180

x1

Figura 4.3. SBF inicial (Iteración 0).

5

122

El superíndice entre paréntesis señala el número de iteración. © Ediciones Pirámide

El método del Simplex Esta primera SBF inicial la podemos representar en el siguiente tableau: TABLEAU 4.1 Iteración 0 cj

100

200

0

0

xB

cB

b

x1

x2

s1

s2

Ratios

s1

0

80

1

1

1

0

80

s2

0

124

0,8

2

0

1

62 ⇒

zj

0

0

0

0

cj − zj

100

200

0

0

Obsérvese que, de acuerdo con la estructura del tableau definida en el apartado 4.4, debajo de b aparece B−1b, esto es, los valores de xB en esta iteración (en este caso de s1 y s2). Asimismo, la última fila contiene el vector cN − cB B−1N (los costes reducidos). El valor de la función objetivo cB B−1b no se calcula hasta el final del proceso iterativo. En términos numéricos, el valor de los costes reducidos se calcula de la siguiente forma: z1 = 0 × 1 + 0 × 0,8 = 0

c1 − z1 = 100 − 0 = 100

z2 = 0 × 1 + 0 × 2 = 0

c2 − z2 = 200 − 0 = 200

z3 = 0 × 1 + 0 × 0 = 0

c3 − z3 = 0 − 0 = 0

z4 = 0 × 0 + 0 × 1 = 0

c4 − z4 = 0 − 0 = 0

Paso 2(0). Test de optimalidad. Los costes reducidos de las variables (no básicas) x1 y x2 son positivos. Luego no estamos en el óptimo y debe aplicarse la regla de entrada en la base. Paso 3(0). Regla de entrada. Se introduce en la base la variable con mayor coste reducido, en este caso, la variable x2 (200). Paso 4(0). Regla de salida. A continuación debemos determinar qué variable sale de la base. Para ello se calculan los ratios: 0 yBi yik

( 1  = 80;

© Ediciones Pirámide

80

)

124 = 62 . 2 El mínimo es 62 y, por tanto, sale de la base la variable s2. La próxima base está para todos los yik > 0. En la solución inicial estos ratios son

123

Decisiones empresariales con hoja de cálculo formada, por tanto, por las variables (s1, x2). En el tableau iteración 0 se ha marcado el pivote (yrk = 2) en la celda sombreada. Paso 5(1). Actualización de la solución. Lo que en realidad haremos ahora será recalcular la nueva base. El cálculo de la nueva solución se realiza de la siguiente manera: 1.

Se divide la fila entrante por el pivote (coeficiente que está en la confluencia de la variable entrante y saliente). Esto es: Fila s2: b = 124/2

2.

x1 = 0,8/2

x2 = 2/2

s1 = 0/2

s2 = 1/2

El resto de las filas se actualizan restándoles la fila correspondiente a la nueva variable básica, multiplicada por yik. Obsérvese que tenemos un único s1 restante que corresponde a la fila s1 y que es igual a 1. Fila s1: b = 80 − (62 × 1) = 18

3.

x1 = 1 − (0,4 × 1) = 0,6

x2 = 1 − (1 × 1) = 0

s1 = 1 − (0 × 1) = 1

s2 = 0 − (1/2 × 1) = −1/2

Una vez que se ha actualizado el nuevo tableau, la fila correspondiente a la variable entrante (x2 en nuestro caso) debe quedar con un 1 en la confluencia de su fila y columna y ceros en el resto de los coeficientes de su columna. Se recalcula zj y los costes reducidos (cj − zj) de forma análoga a como hicimos en la iteración inicial. z1 = 0 × 0,6 + 200 × 0,4 = 80

c1 − z1 = 100 − 80 = 20

z2 = 0 × 0 + 200 × 1 = 200

c2 − z2 = 200 − 200 = 0

z3 = 0 × 1 + 200 × 0 = 0

c3 − z3 = 0 − 0 = 0

z4 = 0 (−1/2) + 200 × 1/2 = 100

c4 − z4 = 0 − 100 = −100

La solución gráfica correspondiente a la iteración 1 está señalada con el símbolo ✖ en la figura 4.4; como puede verse, nos hemos desplazado del vértice x1 = 0; x2 = 0, a otro adyacente cuya solución es x2 = 62; x1 = 0.

124

© Ediciones Pirámide

El método del Simplex

x2

100

80

60 ✖

40

20

0

20

40

60

80

100

120

140

160

x1

180

Figura 4.4. Solución correspondiente a la iteración 1.

Esto es, nos hemos desplazado al vértice adyacente que tenía mayor ganancia a partir de la solución inicial. El tableau resultante es: TABLEAU 4.2 Iteración 1 cj

100

200

0

0

xB

cB

b

x1

x2

s1

s2

Ratios

s1

0

18

0,6

0

1

−1/2

30 ⇒

x2

200

62

0,4

1

0

1/2

155

zj

80

200

0

100

cj − zj

20

0

0

−100

Paso 2(1). Test de optimalidad. El coste reducido de la variable (no básica) (x1 = 20) es positivo. Luego no estamos en el óptimo y debe aplicarse la regla de entrada en la base. © Ediciones Pirámide

125

Decisiones empresariales con hoja de cálculo Paso 3(1). Regla de entrada. Se introduce en la base la variable con mayor coste reducido, en este caso la variable x1. Paso 4(1). Regla de salida. A continuación debemos determinar qué variable sale de la base. Para ello se calculan los ratios: 0 xBi yik

para todos los yik > 0. En la solución inicial estos ratios son

(0,6 = 30; 0,4 = 155). 18

62

El mínimo es 30 y, por tanto, sale de la base la variable s1. La próxima base está formada, por tanto, por las variables (x1, x2). En el tableau iteración 1 se ha marcado el pivote, en la celda sombreada (yrk = 0,6). Paso 5(2). Actualización de la solución. Ahora debemos recalcular la nueva base, al igual que hicimos en el paso 5(0). Para ello: 1.

Se divide la fila entrante por el pivote. Esto es: Fila s1: b = 18/0,6 = 30

2.

x1 = 0,6/0,6 = 1

x2 = 0/0,6 = 0

s1 = 1/0,6 = 1,67

s2 = (−1/2)/0,6 = −0,83

El resto de la filas se actualizan restándoles la fila correspondiente a la nueva variable básica, multiplicada por yik. En nuestro caso sólo corresponde a la fila 2 y es igual a 0,4. Fila x2: b = 2 − (30 × 0,4) = 50

3.

126

x1 = 0,4 − (1 × 0,4) = 0

x2 = 1 − (0 × 0,4) = 1

s1 = 0 − (1/0,6 × 0,4) = −0,67

s2 = 1/2 − (−1,2 × 0,4) = 0,833

Se recalcula zj y los costes reducidos (cj − zj) de forma análoga a como hicimos en la iteración anterior. z1 = 100 × 1 + 200 × 0 = 100

c1 − z1 = 100 − 100 = 0

z2 = 100 × 0 + 200 × 1 = 200

c2 − z2 = 200 − 200 = 0

z3 = 100 × 1,67 + 200 (−0,67) = 33,33

c3 − z3 = 0 − 33,33 = −33,33

z4 = 100 (−0,83) + 200 (0,83) = 83,33

c4 − z4 = 0 − 83,33 = −83,33 © Ediciones Pirámide

El método del Simplex TABLEAU 4.3 Iteración 2 cj

100

200

0

0

xB

cB

b

x1

x2

s1

s2

x1

100

30

1

0

1,67

−0,83

x2

200

50

0

1

−0,67

0,833

zj

100

200

33,33

83,33

cj − zj

0

0

−33,33

−83,33

En esta segunda iteración se han obtenido costes reducidos no positivos para todas las variables; por tanto, se ha llegado al óptimo. El valor de la función objetivo y de las variables en el óptimo es: z = 100 × 30 + 200 × 50 = 13.000, x1* = 30, x*2 = 50, s1 = 0 y s2= 0. La figura 4.5 nos indica el vértice donde se halla la solución óptima encontrada.

x2

100

80

60

✖ 40

20

0

20

40

60

80

100

120

140

160

180

x1

Figura 4.5. Solución gráfica (óptimo).

© Ediciones Pirámide

127

Decisiones empresariales con hoja de cálculo

4.5. DETERMINACIÓN DE UNA SOLUCIÓN BÁSICA FACTIBLE INICIAL: EL MÉTODO DE LA M GRANDE Y EL DE LAS DOS FASES El desarrollo anterior no resuelve dos de las cuestiones que estaban planteadas (ya que partimos de que la SBF inicial existe y es trivial): generar una solución básica inicial y detectar cuándo un problema es infactible. Ambos problemas pueden resolverse simultáneamente desarrollando procedimientos generales para determinar una solución inicial. A partir del problema en forma canónica: Max(z) = cTx sujeto a: Ax ≤ b x≤0 y si b ≥ 0 y las columnas de A pueden reordenarse de forma que se obtenga 1a estructura A = [N | I ] siendo: I: Matriz identidad de orden m × m. N: Matriz de orden m × (n − m) que agrupa el resto de los coeficientes de A. resulta trivial encontrar una solución básica inicial. Basta tomar como básicas las variables que tiene asociadas las columnas de I y hacer xB = b para obtener una solución básica que, además, sea factible. En cambio, si A no contiene una submatriz identidad o bien existe alguna componente negativa en b, no resulta inmediato determinar una SBF inicial. En los apartados 4.5.1 y 4.5.2 se describen dos procedimientos para solucionar este problema. En ambos casos se resuelve un problema de apoyo que: — Incluye en su matriz de coeficientes una matriz identidad, por lo que resulta muy sencillo determinar una solución inicial. — Su óptimo, si existe, es una SBF del problema que desea resolverse.

128

© Ediciones Pirámide

El método del Simplex

4.5.1. El método de eliminación (o de la «M grande») Cuando todas las restricciones del PL son de tipo menor o igual y el término independiente es no negativo, la SBF inicial puede obtenerse directamente añadiendo una variable de holgura a cada restricción e igualando cada una de estas variables al término independiente de su ecuación (es lo que hemos hecho en el ejemplo 4.1). En este caso, las variables de holgura iguales al término independiente se corresponden con la SBF inicial. Las demás variables se consideran no básicas. Una vez realizados los cambios necesarios para que se cumpla b ≥ 0, cuando existe alguna restricción de tipo mayor o igual la correspondiente variable de holgura tendrá un coeficiente negativo. Análogamente, si existe alguna restricción de tipo igualdad, no pueden añadirse variables de holgura. En ambos casos no puede formarse una submatriz identidad dentro de A. Para obtener una solución inicial se resuelve un problema de apoyo en el que se añaden variables artificiales a cada restricción de tipo igualdad o mayor o igual. Estas variables estarán afectadas por un coeficiente unitario. Estos coeficientes, junto con los de las variables de holgura de las restricciones de tipo menor o igual, deberán formar una matriz identidad que puede emplearse para obtener la SBF inicial e iniciar el proceso iterativo. Esta solución no es factible, puesto que no cumple todas las restricciones del problema original. Para intentar convertirlas en factibles, los coeficientes asociados de las variables artificiales en la función objetivo se fijan en valores positivos y muy altos (digamos igual a M) si el problema es de minimización. De esta forma, el algoritmo tenderá a eliminar estas variables de la base. Análogamente, para problemas de maximización, los coeficientes de las variables artificiales se fijan en valores negativos y muy elevados en valor absoluto (digamos, −M). En ambos casos, si el algoritmo consigue eliminar todas las variables artificiales de la base, se tendrá una SBF del problema inicial. Por el contrario, si en el óptimo del problema de apoyo queda alguna variable artificial en la base, esto se deberá a que no ha sido posible eliminarla sin perder factibilidad y, por tanto, no existe ninguna solución factible del problema original. Formalmente supongamos, sin pérdida de generalidad, que todas las restricciones del problema que desea resolverse son de tipo igualdad y que el problema ha sido sometido a todas las operaciones necesarias para que sea b ≥ 0. En estas condiciones, el método de la «M grande» se basa en la resolución del siguiente problema de apoyo: M Max cTx − MimxA sujeto a: Ax + imxA = b x ≥ 0, xA ≥ 0 © Ediciones Pirámide

129

Decisiones empresariales con hoja de cálculo siendo: xA: Vector (m × 1) de variables de apoyo. im: Vector (1 × m) de coeficientes unitarios. M: Valor arbitrariamente grande. Su función es la de penalizar la inclusión de las variables de apoyo xA en la base. Como b ≥ 0, la SBF de partida puede ser: xA = b,

B=I

x = 0,

N=A

Si en el óptimo de este problema se cumple xA = 0, se habrá obtenido la solución óptima del problema original. Si no es así, el problema original es infactible.

EJEMPLO 4.2. Aplicación del método de eliminación (o de la «M grande») Sea el problema de PL: Min(w) = 80x1 + 124x2 sujeto a: x1 + 0,8x2 ≥ 100 x1 + 2x2 ≥ 200 x1, x2 ≥ 0 Para convertir las inecuaciones en ecuaciones se añade una variable de holgura y una variable artificial por cada ecuación, con lo que queda: Min(w) = 80x1 + 124x2 + 0s1 + 0s2 + MA1 + MA2 sujeto a: x1 + 0,8x2 − s1 + A1 = 100 x1 + 2x2 − s2 + A2 = 200 x1, x2, s1, s2, A1, A2 ≥ 0

130

© Ediciones Pirámide

El método del Simplex El proceso de cálculo de la solución utilizando el método de la M grande es el siguiente: Paso 1(0). Solución inicial. Empezamos con la solución básica: Si hacemos x1 = 0, x2 = 0, s1 = 0, s2 = 0, el sistema de ecuación anterior es equivalente a resolver: A1 + 0A2 = 100 0A1 + A2 = 200 cuya solución es A1 = 100, A2 = 200. Esta solución corresponde al vértice señalado con el símbolo ✖ en la figura 4.6.

x2 125

100

75

50

25

0



50

100

150

200

250

x1

Figura 4.6. SBF inicial.

Esta primera SBF inicial la podemos representar en el siguiente tableau: © Ediciones Pirámide

131

Decisiones empresariales con hoja de cálculo TABLEAU 4.4 Iteración 0 cj

80

124

0

0

M

M

xB

cB

b

x1

x2

s1

s2

A1

A2

Ratios

A1

M

100

1

0,8

−1

0

1

0

125

A2

M

200

1

2

0

−1

0

1

100 ⇒

2M

2,8M

−M

−M

M

M

M

M

0

0

zj cj − zj

80 − 2M 124 − 2,8M

Los costes reducidos del tableau se calculan de forma análoga a la del ejemplo 4.1. Paso 2(0). Test de optimalidad. Los costes reducidos de las variables (no básicas) x1 y x2 son negativos. Luego no estamos en el óptimo y debe aplicarse la regla de entrada en la base. Paso 3(0). Regla de entrada. Se introduce en la base la variable con menor coste reducido; en este caso corresponde a la variable x2(124 − 2,8M < 80 − 2M). Paso 4(0). Regla de salida. A continuación debemos determinar qué variable sale de la base. Para ello se calculan los ratios: 0 xBi yik

( 0,8 = 125; 100

)

200 = 100 . 2 El mínimo es 100 y, por tanto, sale de la base la variable A2. La próxima base está formada, por tanto, por las variables (A1, x2). En el tableau iteración 0 se ha marcado el pivote, en la celda sombreada. para todos los yik > 0. En la solución inicial estos ratios son

Paso 5(1). Actualización de la solución. Actualizaremos la base. 1.

Se divide la fila entrante por el pivote: Fila x2: b = 200/2= 100

132

x1 = 1/2

x2 = 2/2 = 1

s1 = 0/2 = 0

s2 = −1/2

A1 = 0/2 = 0

A2 = 1/2 © Ediciones Pirámide

El método del Simplex 2.

El resto de la filas se actualizan restándoles la fila correspondiente a la nueva variable básica, multiplicada por yik. Fila A1: b = 100 − (100 × 0,8) = 20 x1 = 1 − (1/2 × 0,8) = 0,6

x2 = 0,8 − (1 × 0,8) = 0

s1 = −1 − (0 × 0,8) = −1

s2 = 0 − (−1/2 × 0,8) = 0,4

A1 = 1 − (0 × 0,8) = 1

A2 = 0 − (1/2 × 0,8) = −0,4

Se recalcula zj y los costes reducidos (cj − zj) de forma análoga a como hicimos en la iteración inicial. La solución gráfica correspondiente a la iteración 1 está señalada con el símbolo ✖ en la figura 4.7. Nos hemos desplazado del vértice x1 = 0; x2 = 0 a otro adyacente cuya solución es x2 = 100; x1 = 0.

3.

x2 125

100 ✖

75

50

25

0

50

100

150

200

250

x1

Figura 4.7. Solución correspondiente a la iteración 1.

El tableau resultante es: © Ediciones Pirámide

133

Decisiones empresariales con hoja de cálculo TABLEAU 4.5 Iteración 1 cj

80

124

0

0

M

M

xB

cB

b

x1

x2

s1

s2

A1

A2

Ratios

A1

M

20

0,6

0

−1

0,4

1

−0,4

33,33 ⇒

x2

124

100

1/2

1

0

−1/2

0

1/2

200

zj

0,6M + 62

124

−M

0,4M − 62

M

−0,4M + 62

cj − zj

18 − 0,6M

0

M

62 − 0,4M

0

0,6M − 62

Paso 2(1). Test de optimalidad. Los costes reducidos de las variables x1 y s2 son negativos. Luego no estamos en el óptimo y debe aplicarse la regla de entrada en la base. Paso 3(1). Regla de entrada. Se introduce en la base la variable con menor coste reducido, en este caso la variable x1 (18 − 0,6M). Paso 4(1). Regla de salida. A continuación debemos determinar qué variable sale de la base. Para ello se calculan los ratios: 0 xBi yik

para todos los yik > 0. En la solución inicial estos ratios son

(0,6 = 33,33; ½ = 200). 20

100

El mínimo es 33,33 y, por tanto, sale de la base la variable A1. La nueva base está formada por las variables (x1, x2). Paso 5(2). Actualización de la solución. 1.

Se divide la fila entrante por el pivote: Fila x1: b = 20/0,6 = 33,33

134

x1 = 0,6/0,6 = 1

x2 = 0/0,6 = 0

s1 = −1/0,6 = −1,66

s2 = 0,4/0,6 = 0,66

A1 = 1/0,6 = 1,66

A2 = −0,4/0,6 = −0,66 © Ediciones Pirámide

El método del Simplex 2.

El resto de las filas se actualizan restándoles la fila correspondiente a la nueva variable básica, multiplicada por yik. Fila x2: b = 100 − (20/06 × 0,5) = 83,33

3.

x1 = 1/2 − (1 × 0,5) = 0

x2 = 1 − (0 × 0,5) = 1

s1 = 0 − (−1/0,6 × 0,5) = 0,83

s2 = −1/2 − (0,4/0,6 × 0,5) = −0,83

A1 = 0 − (1/0,6 × 0,5) = −0,83

A2 = 1/2 − (−0,4/0,6 × 0,5) = 0,83

Se recalcula zj y los costes reducidos (cj − zj).

TABLEAU 4.6 Iteración 2 (óptima) cj

80

124

0

0

M

M

xB

cB

b

x1

x2

s1

s2

A1

A2

x1

80

33,33

1

0

−1,66

0,66

1,66

−0,66

x2

124

83,33

0

1

0,83

−0,83

−0,83

0,16

zj

80

124

−30

−50

30

32,66

cj − zj

0

0

30

50

M − 30

M − 32,66

En esta segunda iteración se han obtenido costes reducidos positivos para todas las variables salvo las artificiales (A1, A2) y, por tanto, se ha llegado a una solución factible (A1 = A2= 0) y óptima (costes reducidos, todos no negativos). El valor de la función objetivo y de las variables en el óptimo es: w = 80 × × 20/0,6 + 124 × 50/0,6 = 13.000, x*1 = 33,33, x*2 = 83,33, s1 = 0, s2= 0, A1 = 0 y A2 = 0.

© Ediciones Pirámide

135

Decisiones empresariales con hoja de cálculo

x2 125

100

✖ 75

50

25

0

50

100

150

200

250

x1

Figura 4.8. Solución gráfica (óptima).

4.5.2. El método de las dos fases Al describir el método de la «M grande» hemos visto que, para obtener la solución del problema, se añaden variables de apoyo con un coeficiente muy grande (M) o muy pequeño (−M) en la función objetivo. Desafortunadamente, la inclusión de valores muy grandes o muy pequeños en un PL da lugar a problemas numéricos que pueden conducir a soluciones erróneas. Esto es especialmente grave en problemas de tamaño medio o grande. Por este motivo, los códigos comerciales utilizan una extensión del algoritmo del Simplex conocida con el nombre de método de las dos fases. La primera fase consiste en obtener una SBF inicial, y la segunda en obtener la solución óptima6. Fase I. Resolver el problema: Min im xA

6 Además, las ideas básicas de este método tienen otras aplicaciones. Por ejemplo, resulta inmediato ver que la formulación del problema de la fase I puede utilizarse como un procedimiento general y sumamente eficiente para resolver sistemas de ecuaciones.

136

© Ediciones Pirámide

El método del Simplex sujeto a: Ax + IxA = b x ≥ 0, xA ≥ 0 siendo im un vector (1 × m) cuyas componentes son todas igual a uno. Este problema se resuelve a partir de la SBF: xA = b, x = 0. Obviamente, el menor valor posible de la función objetivo es z = 0. Si en el óptimo z ≠ 0, entonces el problema original es infactible, ya que no ha sido posible anular todas las variables artificiales xA. Fase II. Si en el óptimo se cumple z = 0, entonces xA = 0. Por tanto, la SBF final de la fase I puede usarse como SBF de partida para resolver el problema original. EJEMPLO 4.3. Aplicación del método de las dos fases Este ejemplo es parecido al anterior 4.2 con una ligera modificación en los coeficientes de la función objetivo. Sea el problema de PL: Min(w) = 50x1 + 124x2 sujeto a: x1 + 0,8x2 ≥ 100 x1 + 2x2 ≥ 200 x1, x2 ≥ 0 Para convertir las inecuaciones en ecuaciones se añade una variable de holgura y una variable artificial por cada ecuación. También vemos reconvertida la función objetivo a una que tiene coeficientes todo ceros en las variables originales y de holgura y unos en las variables artificiales, con lo que queda: Min(w) = 0x1 + 0x2 + 0s1 + 0s2 + A1 + A2 sujeto a: x1 + 0,8x2 − s1 + A1 = 100 x1 + 2x2 − s2 + A2 = 200 x1, x2, s1, s2, A1, A2 ≥ 0 © Ediciones Pirámide

137

Decisiones empresariales con hoja de cálculo FASE I Paso 1(0). Solución inicial. Empezamos con la solución básica: Si hacemos x1 = 0, x2 = 0, s1 = 0, s2 = 0, la solución al sistema de ecuaciones quedaría A1 = 100, A2 = 200. Esta solución corresponde al vértice señalado con el símbolo ✖ en la figura 4.9.

x2 125

100

75

50

25

0



50

100

150

250

200

x1

Figura 4.9. SBF inicial.

A esta primera SBF inicial la podemos representar en el siguiente tableau: TABLEAU 4.7 Iteración 0

138

cj

0

0

0

0

1

1

xB

cB

b

x1

x2

s1

s2

A1

A2

Ratios

A1

1

100

1

0,8

−1

0

1

0

125

A2

1

200

1

2

0

−1

0

1

100 ⇒

zj

2

2,8

−1

−1

1

1

cj − zj

−2

−2,8

1

1

0

0

© Ediciones Pirámide

El método del Simplex Los costes reducidos se calculan de manera análoga a los ejemplos anteriores. Paso 2(0). Test de optimalidad. Los costes reducidos de las variables (no básicas) x1 e x2 son negativos. Luego no estamos en el óptimo y debe aplicarse la regla de entrada en la base. Paso 3(0). Regla de entrada. Se introduce en la base la variable con menor coste reducido, en este caso la variable x2. Paso 4(0). Regla de salida. A continuación debemos determinar qué variable 100 200 = 125; = 100 . El mínimo sale de la base. Para ello se calculan los ratios 0,8 2 es 100 y, por tanto, sale de la base la variable A2. La próxima base está formada, por tanto, por las variables (A1, x2). En el tableau iteración 0 se ha marcado el pivote, en la celda sombreada.

(

)

Paso 5(1). Actualización de la solución. Actualizaremos la base. 1.

Se divide la fila entrante por el pivote: Fila x2: b = 200/2 = 100

2.

x1 = 1/2

x2 = 2/2 = 1

s1 = 0/2 = 0

s2 = −1/2

A1 = 0/2 = 0

A2 = 1/2

El resto de las filas se actualizan restándoles la fila correspondiente a la nueva variable básica, multiplicada por yik. Fila A1: b = 100 − (100 × 0,8) = 20

3.

© Ediciones Pirámide

x1 = 1 − (1/2 × 0,8) = 0,6

x2 = 0,8 − (1 × 0,8) = 0

s1 = −1 − (0 × 0,8) = −1

s2 = 0 − (−1/2 × 0,8) = 0,4

A1 = 1 − (0 × 0,8) = 1

A2 = 0 − (1/2 × 0,8) = −0,4

Se recalcula zj y los costes reducidos (cj − zj). La solución gráfica correspondiente a la iteración 1 está señalado con el símbolo ✖ en la figura 4.10. Nos hemos desplazado al vértice x2 = 100; x1 = 0.

139

Decisiones empresariales con hoja de cálculo

x2 125

100 ✖

75

50

25

0

50

100

150

250

200

x1

Figura 4.10. Solución correspondiente a la iteración 1.

El tableau resultante es: TABLEAU 4.8 Iteración 1 cj

0

0

0

0

1

1

xB

cB

b

x1

x2

s1

s2

A1

A2

Ratios

A1

1

20

0,6

0

−1

0,4

1

−0,4

33,33

x2

0

100

1/2

1

0

−1/2

0

1/2

200

zj

0,6

0

−1

0,4

1

−0,4

cj − zj

-0,6

0

1

−0,4

0

0,6M

Paso 2(1). Test de optimalidad. Los costes reducidos de las variables x1 y s2 son negativos, de forma que no estamos en el óptimo y debe aplicarse la regla de entrada en la base.

140

© Ediciones Pirámide

El método del Simplex Paso 3(1). Regla de entrada. Se introduce en la base la variable con menor coste reducido, en este caso la variable x1. Paso 4(1). Regla de salida. A continuación debemos determinar qué varia20 = 33,33; ble sale de la base. Para ello se calculan los ratios correspondientes 0,6 100 = 200 . El mínimo es 33,33 y, por tanto, sale de la base la variable A1 y la 0,5 nueva base está formada por las variables (x1, x2).

(

)

Paso 5(2). Actualización de la solución. 1.

Se divide la fila entrante por el pivote: Fila A1: b = 20/0,6 = 33,33

2.

x1 = 0,6/0,6 = 1

x2 = 0/0,6 = 0

s1 = −1/0,6 = −1,66

s2 = 0,4/0,6 = 0,66

A1 = 1/0,6 = 1,66

A2 = −0,4/0,6 = −0,66

El resto de las filas se actualizan restándoles la fila correspondiente a la nueva variable básica, multiplicada por yik. Fila x2: b = 100 − (20/0,6 × 0,5) = 83,33

3.

x1 = 1/2 − (1 × 0,5) = 0

x2 = 1 − (0 × 0,5) = 1

s1 = 0 − (−1/0,6 × 0,5) = 0,83

s2 = −1/2 − (0,4/0,6 × 0,5) = −0,83

A1 = 0 − (1/0,6 × 0,5) = −0,83

A2 = 1/2 − (−0,4/0,6 × 0,5) = 0,83

Se recalcula zj y los costes reducidos (cj − zj). TABLEAU 4.9 Iteración 2

© Ediciones Pirámide

cj

0

0

0

0

1

1

xB

cB

b

x1

x2

s1

s2

A1

A2

x1

0

33,33

1

0

−1,66

0,66

1,66

−0,66

x2

0

83,33

0

1

0,83

−0,83

−0,83

0,16

zj

0

0

0

0

0

0

cj − zj

0

0

0

0

1

1

141

Decisiones empresariales con hoja de cálculo Paso 2(2). Test de optimalidad (factibilidad). Puesto que todas las variables son no negativas, hemos llegado al óptimo de la Fase I, por lo que podemos concluir que el problema es factible y tenemos una SBF del mismo. Sin embargo, no podemos concluir que es óptimo. Para ello debemos pasar a la Fase II. FASE II En la Fase II rehacemos la tabla obtenida en la Fase I (tableau 4.9), en cuya fila (cj) incorporamos los coeficientes de la función objetivo del problema original, y también en la columna cB. Esto nos modifica el cálculo de zj y cj − zj. En el tableau 4.10 aparece la nueva tabla en las que se han realizado las operaciones que acabamos de describir. También hemos suprimido las columnas de las variables artificiales, puesto que ya hemos conseguido la factibilidad y ya no tiene sentido seguir manteniéndolas. Los costes reducidos en el tableau 4.10 nos muestran que la variable s1 tiene un coste reducido negativo. Esto nos indica que no estamos en el óptimo y que, por tanto, debemos seguir iterando. TABLEAU 4.10 Fase II cj

50

124

0

0

xB

cB

b

x1

x2

s1

s2

Ratios

x1

50

33,33

1

0

−1,66

0,66

−20,08

x2

124

83,33

0

1

0,83

−0,83

100

zj

50

124

19,92

−69,92

cj − zj

0

0

−19,92

69,92

Paso 2(2). Test de optimalidad. Los costes reducidos de la variable s1 son negativos. Luego no estamos en el óptimo y debe aplicarse la regla de entrada en la base. Paso 3(2). Regla de entrada. Se introduce en la base la variable con menor coste reducido, en este caso la variable s1. Paso 4(2). Regla de salida. A continuación debemos determinar qué variable 33,33 83,33 sale de la base. Para ello se calculan los ratios = −20,08; = 100 . El −1,66 0,83

(

142

)

© Ediciones Pirámide

El método del Simplex mínimo es 100 y, por tanto, sale de la base la variable x2. La próxima base está formada, por tanto, por las variables (x1, s1). En el tableau iteración 3 se ha marcado el pivote, en la celda sombreada. Paso 5(3). Actualización de la solución. Actualizaremos la base. 1.

Se divide la fila entrante por el pivote: Fila s1: b = 83,33/0,83 = 100

2.

x1 = 0/0,83 = 0

x2 = 1/0,83 = 1,20

s1 = 0,83/0,83 = 1

s2 = −0,83/0,83 = −1

El resto de las filas se actualizan restándoles la fila correspondiente a la nueva variable básica, multiplicada por yik. Fila x1: b = 33,33 − (−1,66 × 100) = 200

3.

x1 = 1 − (−1,66 × 0) = 1

x2 = 0 − (−1,66 × 1,2) = 1,992

s1 = −1,66 − (−1,66 × 1) = 0

s2 = 0,66 − (−1,66 × −1) = −1

Se recalcula zj y los costes reducidos (cj − zj). Todos los costes reducidos son no negativos, por lo que la solución es óptima. La solución gráfica correspondiente a la iteración 3 está señalada con el símbolo ✖ en la figura 4.11. Nos hemos desplazado al vértice x1 = 200; x2 = 0. TABLEAU 4.11 Iteración 3

© Ediciones Pirámide

cj

50

124

0

0

xB

cB

b

x1

x2

s1

s2

x1

50

200

1

1,992

0

−1

s1

0

100

0

1,20

1

−1

zj

50

99,6

0

−50

cj − zj

0

24,4

0

50

143

Decisiones empresariales con hoja de cálculo

x2 125

100

75

50

25

0

50

100

150



200

250

x1

Figura 4.11. Solución gráfica de la iteración 3 (óptima).

4.6. EL MÉTODO SIMPLEX REVISADO Los procedimientos explicados en apartados anteriores adolecen de un problema importante cuando pretendemos resolver problemas de tamaño mediano o grande, ya que utilizan mucha memoria de ordenador. Necesitan tanta como para guardar la matriz de coeficientes originales con las correspondientes variables de holgura y artificiales más una inversa, además del vector de los valores de las variables en cada momento y del término independiente. Así, por ejemplo, un problema de 1.000 variables y 1.000 ecuaciones precisa almacenar una matriz de un millón de posiciones de memoria (1.000 × 1.000) en la que estarían las variables originales, y otra de un millón (1.000 × 1.000) en la que estaría la matriz inversa en cada momento. Una forma de ahorrar espacio de memoria y posibles problemas numéricos es guardando la inversa, no de forma explícita, sino guardando exclusivamente los vectores necesarios para calcularla en cada iteración. Esto es precisamente lo que hace el llamado método del Simplex revisado. Todos los códigos comerciales de PL utilizan el Simplex revisado. Partimos de un problema de PL estándar: Max(z) = cTx

144

© Ediciones Pirámide

El método del Simplex sujeto a: Ax ≤ b x≥0 donde: A: Matriz m × n. c: Vector 1 × n. b: Vector m × 1. x: Vector n × 1. Tal como hemos visto anteriormente: A = [B | N] x=

[x ] xB

N

c=

[c ] cB

N

con lo que el PL queda: Max(z) = cBxB + cNxN sujeto a: BxB + NxN = b y, naturalmente: xB = B−1b − B−1NxN con lo que hemos resuelto el sistema con m variables (xB) en términos de las restantes xN. A partir de la notación anterior, veremos cuáles son los pasos para resolver un problema de PL mediante el Simplex revisado. Paso 0. Solución inicial. Supongamos que partimos de una solución básica factible inicial, xB. Por tanto, tenemos: b = B−1b − B−1NxN © Ediciones Pirámide

145

Decisiones empresariales con hoja de cálculo Puesto que xN no está en la base, su valor es cero, con lo que podremos escribir b = B−1b, donde b representa al vector de variables básicas. Paso 1. Calcular el vector de precios. Éste se calcula como p = cBB−1 donde p es un vector (1 × m). Esta operación se llama transformación hacia atrás (backward transformation o BTRAN). Paso 2. Cálculo de los costes reducidos y verificación si la solución actual es óptima. Para ello, primero evaluamos: zj = paj y dj = cj − zj para todas las columnas no básicas. Nótese que con los pasos 1 y 2 hemos calculado, de hecho, el vector (cj − zj) del tableau, aunque, eso sí, lo hemos hecho en dos partes. Paso 3. Selección de la variable entrante no básica. Para ello se escoge aquella que tiene el coste reducido más negativo, esto es, un menor valor de dj. Con ello podemos llegar a dos posibles alternativas: a) Si ninguna es positiva, entonces hemos llegado al óptimo. b) Si alguna es negativa, escogemos la más negativa para que entre en la base. Supongamos que ésta es la variable con subíndice q. Paso 4. Actualización de la columna entrante. Para ello evaluamos: aq = B−1aq A esta operación se le llama transformación hacia adelante (forward transformation o FTRAN), puesto que supone premultiplicar aq por alguna representación B−1. Paso 5. Cálculo de la variable básica que debe salir de la base. La variable básica que debe salir de la base será aquella que produzca el ratio mínimo entre el valor de las variables básicas y los correspondientes valores de los coeficientes corrientes de la variable entrante, siempre que estos últimos sean positivos. Esto es: i = ArgMin aiq > 0

146

(a ) bi

pq

© Ediciones Pirámide

El método del Simplex Supongamos que esta fila sea la p-ésima, con lo que el valor de la variable y el coeficiente correspondiente será bp y apq, respectivamente. Si no existe ningún coeficiente aiq positivo, la solución es no acotada y terminamos el algoritmo. Si existe más de un ratio con el mismo valor mínimo, se puede escoger cualquiera de ellos. Paso 6. Actualizar la inversa. Este paso es uno de los más específicos del Simplex revisado, puesto que calcula la matriz inversa B−1 de una forma implícita y no explícita, con lo que se obtienen importantes ahorros en la utilización de la memoria del ordenador. La actualización de la inversa B−1 en cada iteración supone el cambio de tan sólo una de las variables en la base. La actualización de esta inversa se logra multiplicando la matriz corriente B−1 por otra matriz E cuya estructura es:

aq ...

(

1 ...

E=

1

1

)

y donde:

( ) −a1q /apq −a2q /apq ...

aq =

1/apq ...

−amq /apq

De esta forma, B−1(k) = EB−1, donde B1(k) es la inversa actualizada. Otra forma de expresarlo sería la siguiente: B−1(k) = E (k)E (k − 1) ... E (1)B−1 donde: B−1: Matriz inversa en la solución inicial. B : Matriz inversa en la iteración k-ésima. E (k): Matriz E obtenida en la iteración k-ésima. −1(k)

© Ediciones Pirámide

147

Decisiones empresariales con hoja de cálculo Nótese que, de esta forma, tan sólo es necesario guardar, en memoria, el vector aq y su posición. De hecho, sólo hace falta almacenar el vector aq y las posiciones p y q. Una vez terminado este paso se vuelve al paso 1, con lo que el algoritmo queda completo. EJEMPLO 4.4. Aplicación del método del Simplex revisado El ejemplo numérico utilizado para demostrar el método del Simplex en forma de tableau era: Max(z) = 100x1 + 200x2 sujeto a: x1 + x2 ≤ 80 0,8x1 + 2x2 ≤ 124 x1, x2 ≥ 0 La resolución de este mismo ejemplo mediante el método Simplex revisado sería como sigue. Paso 0(0). Solución inicial 7. La solución inicial de la que partimos puede ser la misma que la del tableau, esto es, las variables de holgura iguales al término independiente, con lo que: B=

(0 1); 1 0

b=

(120); 80

b=

(s ) s1 2

Por tanto: b = B−1b =

(0 1) (120) = (120) 1 0

80

80

Paso 1(1). Cálculo del vector de precios. p = cBB−1 = (0 0)

7

148

(0 1) = (0 1 0

0)

El número entre paréntesis o, más adelante, el superíndice, se refiere al número de iteración. © Ediciones Pirámide

El método del Simplex Paso 2(1). Cálculo de los costes reducidos y verificación de la optimalidad. z1 = pa1 = (0 0)

(0,8) = 0

z2 = pa2 = (0 0)

1

(2) = 0 1

d1 = z1 − c1 = 0 − 100 = −100 d2 = z2 − c2 = 0 − 200 = −200 Por tanto, esta solución no es óptima. Nótese que tan sólo hemos calculado los costes reducidos de las variables no básicas. Paso 3(1). Selección de la variable entrante no básica. La variable con el menor coste reducido negativo es x2, por lo que queda seleccionada como variable entrante. Paso 4(1). Actualización de la columna entrante.

(0 1) ( 2 ) = ( 2 ) 1 0

a2 = B−1a2 =

1

1

Paso 5(1). Determinación de la variable que debe salir de la base. Para ello calculamos: ArgMin ai2 > 0

( a ) = ArgMin (124/2) = 2 80/1

bi

i2

y, por tanto, la variable básica entrante es x2. Paso 6(1). Actualización de la inversa. La matriz E (1) es: E (1) =

(0

1 −a12/a22 1/a22

)

y, por tanto, la matriz inversa de la base en la iteración actual es: B _ = B−1(1) = E (1)B−1 = © Ediciones Pirámide

(0

)(

) (

)

1 −1/2 1 0 1 −1/2 = −1/2 0 1 0 −1/2

149

Decisiones empresariales con hoja de cálculo Aunque realmente este paso no es necesario, lo realizamos únicamente a efectos de comprobación: b=B _b =

(0

) (124) = (62)

1 −1/2 −1/2

80

18

Empezamos de nuevo con el paso 1. Paso 1(2). Cálculo del vector de precios. p = cBB−1 = (0 200)

(0

)

1 −1/2 = (0 100) −1/2

Paso 2(2). Cálculo de los costes reducidos. z1 = pa1 = (0 100)

(0,8) = 80

z4 = pa4 = (0 100)

( 2 ) = 200

1

1

d1 = z1 − c1 = 80 − 100 = −20 d4 = z4 − c4 = 200 − 200 = 0 La solución no es óptima, puesto que hay un coste reducido negativo. Paso 3(2). Selección de la variable entrante no básica. Entra en la base la (única) variable que lleva asociado un coste reducido negativo. Paso 4(2). Actualización de la columna entrante. a1 = B−1a1 = p =

(0

)( ) ( )

1 −1/2 1 0,6 = 1/2 0,8 0,4

Paso 5(2). Cálculo de la variable básica que debe salir de la base. ArgMin ai2 > 0

( a ) = ArgMin (62/0,4) = 18/0,6 = 30 bi

18/0,6

i2

y, por tanto, la variable básica entrante es s1.

150

© Ediciones Pirámide

El método del Simplex Paso 6(2). Actualización de la inversa. La matriz E (2) es: E (2) =

(−a

) (

)

1/0,6 0 1/a11 0 = −0,4/0,6 1 /a 1 21 11

y, sólo a efectos de comprobación, la matriz inversa de la base actual es:

(

)(

)(

) (

)

1/0,6 0 1 −1/2 1 0 1,67 −0,83 = B _ = B−1(2) = E (2)E (1)B−1 = −0,4/0,6 1 0 1/2 0 1 −0,67 0,83 Empezamos de nuevo con el paso 1. Paso 1(3). Cálculo del vector de precios. p = cBB−1 = (100 200)

(−0,67

)

1,67 −0,83 = (0 100) 0,83

Paso 2(3). Cálculo de los costes reducidos. z3 = pa3 = (0 100)

z4 = pa4 = (0 100)

(0) = 0 1

( 1 ) = 100 0

d3 = z3 − c3 = 0 − 0 = 0 d4 = z4 − c4 = 100 − 0 = 100 Puesto que todos los costes reducidos son no negativos, hemos llegado al óptimo. La solución es: b=B _b =

(−0,67

)( ) ( )

1,67 −0,83 80 30 = 0,83 124 50

y el valor de la función objetivo: z = cB b = (100 200) © Ediciones Pirámide

(50) = 13.000 30

151

Decisiones empresariales con hoja de cálculo Como puede verse, los resultados obtenidos por este método son exactamente los mismos que resultan de aplicar el método Simplex; sin embargo, no es necesario guardar explícitamente B−1 sino exclusivamente los vectores E (2), E (1). Como hemos dicho al principio, en problemas de tamaño medio y grande esto supone un ahorro de espacio en memoria y errores numéricos inferiores.

152

© Ediciones Pirámide

El método del Simplex

EJERCICIOS PROPUESTOS 1.

Resolver de forma manual y mediante Solver, el Simplex del siguiente problema de PL: Max(z) = 6x1 + 6x2 Sujeto a: 6x1 + 2x2 ≤ 18 1x1 + 3x2 ≥ 10 x1, x2 ≥ 0

2.

Resolver de forma manual y mediante Solver, el Simplex del siguiente problema de PL: Max(z) = 92x1 + 7x2 Sujeto a: 2x1 + x2 ≤ 40 x1 + 3x2 ≥ 15 x1, x2 ≥ 0

3.

Resolver de forma manual y mediante Solver, el Simplex del siguiente problema de PL: Max(z) = 8x1 + 6x2 Sujeto a: 7x1 + 6x2 ≤ 30 4x1 + 4x2 ≥ 15 x1, x2 ≥ 0

© Ediciones Pirámide

153

Decisiones empresariales con hoja de cálculo 4.

Resolver de forma manual y mediante Solver, el Simplex del siguiente problema de PL: Min(z) = 4x1 + 2x2 Sujeto a: 8x1 + 4x2 ≥ 150 x1 + 3x2 ≥ 300 x1, x2 ≥ 0

5.

Resolver de forma manual y mediante Solver, el Simplex del siguiente problema de PL: Min(z) = 5x1 + 4x2 Sujeto a: 3x1 + 2x2 ≥ 5 2x1 + 3x2 ≥ 7 x1, x2 ≥ 0

6.

Resolver de forma manual y mediante Solver, el Simplex del siguiente problema de PL: Min(z) = 2x1 + 3x2 Sujeto a: 4x1 + 3x2 ≤ 12 2x1 + 2x2 ≥ 5 x1, x2 ≥ 0

7.

Resolver de forma manual y mediante Solver, el Simplex del siguiente problema de PL: Min(z) = 2x1 + x2

154

© Ediciones Pirámide

El método del Simplex Sujeto a: x1 + x2 ≥ 4 2x1 + 5x2 ≤ 10 x1 ≥ 2 x1, x2 ≥ 0 8.

Resolver de forma manual y mediante Solver, el Simplex del siguiente problema de PL: Min(z) = 5x1 + 6x2 Sujeto a: x1 + x2 = 1.000 x1 ≤ 300 x2 ≥ 150 x1, x2 ≥ 0

9.

Resolver de forma manual y mediante Solver, el Simplex del siguiente problema de PL: Max(z) = 2x1 + 4x2 Sujeto a: −1x1 + 2x2 ≤ −4 2x1 + 1x2 ≥ 3 x1, x2 ≥ 0

10.

Resolver de forma manual y mediante Solver, el Simplex del siguiente problema de PL: Max(z) = 2x1 + 3x2

© Ediciones Pirámide

155

Decisiones empresariales con hoja de cálculo Sujeto a: 1x1 + 2x2 ≤ 4 1x1 + 1x2 = 3 x1, x2 ≥ 0 11.

Resolver de forma manual y mediante Solver, el Simplex del siguiente problema de PL: Max(z) = 60x1 − 10x2 Sujeto a: 2x1 − 4x2 ≤ 80 3x1 + 2x2 ≤ 55 x2 ≤ 16 x1, x2 ≥ 0

12.

Resolver de forma manual y mediante Solver, el Simplex del siguiente problema de PL: Max(z) = 6x1 + 6x2 Sujeto a: 2x1 + 2x2 ≤ 20 3x1 + x2 ≥ 10 6x1 = 12 x1, x2 ≥ 0

13.

Resolver de forma manual y mediante Solver, el Simplex del siguiente problema de PL: Max(z) = 1x1 + 1x2

156

© Ediciones Pirámide

El método del Simplex Sujeto a: −2x1 + 2x2 ≥ 10 2x1 − 2x2 ≤ 10 x1, x2 ≥ 0

BIBLIOGRAFÍA Dantzig, G. B. (1963). Linear Programming and Extensions. Princeton University Press. Gass, S. (1985). Linear Programming: Methods and Applications. Nueva York: McGrawHill, 5th edition. Gould, F. J., Eppen, G. D. y Schmidt, J. H. (2000). Investigación de Operaciones en la Ciencia Administrativa. Prentice-Hall Hispano Americana, S. A. Originalmente con el título: Introductory Management Science. Hillier, F. S. y Lieberman (1974). Operations Research. Holden Day, Second Edition. Hooker, J. N. (1986). Karmarkar’s Linear Programming Algorithm. Interfaces 16, nº. 4, pp. 75-90. Karmarkar, N. (1984). A New Polynomial Time Algorithm for Linear Programming. Combinatorica 4 (1984), pp. 373-395. Simmonnard, M. (1972). Programación lineal. Paraninfo. Taha, H. A. (1998). Investigación de operaciones: una introducción. Representaciones y Servicios de Ingeniería, S. A. Originalmente McMillan. Winston, W. L. (2005). Investigación en operaciones, aplicaciones y algoritmos. Thompson.

© Ediciones Pirámide

157

5

Dualidad y análisis postoptimal

5.1. INTRODUCCIÓN En el capítulo anterior hemos explicado el algoritmo más utilizado para resolver problemas de programación lineal: el Simplex. Con ser muy importante el valor de las variables que hacen óptimo un determinado programa lineal, existe una amplia información adicional derivada de la propia solución que nos puede resultar de una enorme utilidad para tomar decisiones. De hecho, en muchos casos esta información adicional puede resultar, en sí misma, mucho más útil que el propio valor que las variables toman en el óptimo. El sustrato teórico que nos sirve para averiguar esta información adicional a partir de una solución del problema se conoce como Teoría de la dualidad. Este capítulo está dedicado a explicar la teoría básica sobre las propiedades fundamentales de los problemas de programación lineal y sus consecuencias teóricas, así como a obtener las consecuencias prácticas de los resultados obtenidos por la teoría y su interpretación económica.

5.2. EL CONCEPTO DE DUALIDAD Un primer elemento fundamental en la teoría de la dualidad es el propio concepto de dualidad. Según este concepto, cada problema de PL, al que podemos llamar primal, se le puede asociar otro problema, que se puede construir mediante determinadas y precisas reglas, al que llamamos dual. Ambos problemas tienen un conjunto de propiedades muy interesantes que nos van a permitir realizar interpretaciones económicas de la solución y que nos resultarán enormemente útiles de cara a la toma de decisiones. Primero, veamos formalmente cómo se construye un problema dual a partir del primal. Después veremos un par de ejemplos. © Ediciones Pirámide

159

Decisiones empresariales con hoja de cálculo Si llamamos problema primal a la siguiente forma canónica o estándar1: n

Max(z) = ∑ cj xj j=1

sujeto a: n

∑ aij xj ≤ bi

∀i∊{1, ..., m}

xj ≥ 0

∀j∊{1, ..., n}

j=1

entonces, asociado a este primal, existe un problema dual definido de la siguiente forma: m

Min(z) = ∑ bi pi i=1

sujeto a: n

∑ aij pi ≥ cj

∀j∊{1, ..., n}

pi ≥ 0

∀i∊{1, ..., m}

i=1

En notación matricial: Primal: Max(z) = cTx sujeto a: Ax ≤ b x≥0 Dual: Min(v) = bT p sujeto a: ATp ≥ c p≥0 1 Un PL en forma canónica o estándar es aquel en el que se trata de maximizar la función objetivo, en la que todas las restricciones son del tipo ≤ y que todas las variables deben tomar valores no negativos.

160

© Ediciones Pirámide

Dualidad y análisis postoptimal en donde c y p son vectores columna de dimensión (n × 1) y (m × 1), respectivamente. La estructura de ambos problemas se resume en la tabla 5.1. TABLA 5.1 Estructura de los problemas primal y dual Variables primales

x1 ≥ 0

x2 ≥ 0

...

xn ≥ 0

Relación primal

Min(v)

p1 ≥ 0

a11

a12

...

a1n



b1

p2 ≥ 0

a21

a22

...

a2n



b2

Variables duales

...

...

...

...

...

am1

am2

...

amn



bn

Relación dual





...



Max(z)

c1

c2

...

cn

... pm ≥ 0

Cualquier problema de PL puede transformarse en un problema equivalente en forma canónica (véase ejemplo 5.2). Si no, una vez convertido a la forma canónica, puede utilizarse la definición anterior para escribir el correspondiente problema dual. También es posible escribir directamente el dual asociado a cualquier problema. Si el primal es: Max(z) = cTx sujeto a: A1x = b1 A2x ≤ b2 A3x ≥ b3 x≥0 puede demostrarse que el correspondiente problema dual es: Min(v) = bT1 p1 + bT2 p2 + bT3 p3 © Ediciones Pirámide

161

Decisiones empresariales con hoja de cálculo sujeto a: AT1 p1 + AT2 p2 + AT3 p3 ≤ c −∞ ≤ p1 ≤ ∞, p2 ≥ 0, p3 ≤ 0 En la tabla 5.2 se resumen las reglas de paso del primal al dual. TABLA 5.2 Reglas de paso del primal al dual Primal

Dual

Maximizar

Minimizar

Función objetivo

Término independiente

Fila i-ésima de coeficientes

Columna i-ésima de coeficientes

Columna j-ésima de coeficientes

Fila j-ésima de coeficientes

Relación i-ésima de ≤

Variable i-ésima no negativa

Relación i-ésima de =

Variable i-ésima no restringida

Variable j-ésima no negativa

Relación de ≥

Variable j-ésima no restringida

Relación de =

EJEMPLO 5.1. Cálculo del dual del ejemplo 4.1 El ejemplo 4.1 es un PL en forma canónica o estándar. Este problema que llamaremos primal era: Max(z) = 100x1 + 200x2 sujeto a: x1 + x2 ≤ 80 0,8x1 + 2x2 ≤ 124 x1, x2 ≥ 0 De acuerdo con la teoría que acabamos de ver en este apartado, a cada restricción se le asocia una variable dual a la que llamamos p1 y p2. La función obje-

162

© Ediciones Pirámide

Dualidad y análisis postoptimal tivo queda formada por los coeficientes que en el primal están en el RHS (Right Hand Side o lado derecho de las restricciones) multiplicados por las correspondientes variables duales asociadas. El problema resulta a minimizar. La matriz de coeficientes técnicos (A) se transpone, esto es, las filas pasan a ser columnas y viceversa. El nuevo RHS es el que se corresponde con los coeficientes de la función objetivo en el primal. Todas las restricciones tienen signo ≥ y las nuevas variables p son todas no negativas. En consecuencia, el dual del problema primal anterior es: Min(v) = 80p1 + 124p2 sujeto a: 1p1 + 0,8p2 ≥ 100 1p1 + 2p2 ≥ 200 p1, p2 ≥ 0

EJEMPLO 5.2. Cálculo del dual de un problema general de PL El problema del ejemplo anterior tenía una forma canónica o estándar y, por tanto, la construcción del dual es sencilla e inmediata. Sin embargo, un problema real de PL no estará en general en forma canónica. Una forma de construir un problema dual asociado a un primal cualquiera es utilizar la tabla 5.2. Sin embargo, resulta más fácil y menos sujeto a error hacerlo en dos pasos: primero transformar el problema a forma canónica y después aplicar las reglas sencillas expuestas en el ejemplo anterior. A continuación vemos un ejemplo de cómo hacerlo. Partimos del problema primal original: Max(z) = 100x1 − 50x2 sujeto a: x1 − 0,5x2 ≤ 5 −2x1 + 4x2 ≥ 60 x1 − 0,5x2 = 2 x1, x2 ≥ 0 © Ediciones Pirámide

163

Decisiones empresariales con hoja de cálculo Lo primero que haremos será escribir el problema en su forma canónica o estándar aplicando las siguientes elementales reglas de álgebra: 1. 2. 3.

Max(z) = Min(−z) x ≤ y ⇔ (−x) ≥ (−y) x = y ⇔ x ≤ y; x ≥ y

Con estas reglas podemos transformar la función objetivo original (multiplicando por −1) para que quede: Max(−z) = −100x1 + 50x2 La primera restricción no es preciso modificarla, puesto que ya está en forma canónica. La segunda restricción la multiplicamos por −1 (regla 2 anterior), con lo que queda: 2x1 − 4x2 ≤ −60 La restricción 3 precisa de dos transformaciones. En la primera la convertimos en desigualdades, por lo que necesitamos dos restricciones en lugar de una (regla 3 anterior): x1 − 0,5x2 ≤ 2 x1 − 0,5x2 ≥ 2 Pero la segunda de las restricciones anteriores no está en forma canónica. Para convertirla a forma canónica aplicamos la regla 2 anterior, por lo que queda: −x1 + 0,5x2 ≤ −2 En definitiva, el problema primal original, pero transformado a forma canónica, queda como: Max(−z) = −100x1 + 50x2 sujeto a: x1 − 0,5x2 ≤ 5 2x1 − 4x2 ≤ −60 x1 − 0,5x2 ≤ 2 −x1 + 0,5x2 ≤ −2 x1, x2 ≥ 0

164

© Ediciones Pirámide

Dualidad y análisis postoptimal Puesto que ya tenemos el problema original en forma canónica, podemos aplicar las reglas básicas que hemos utilizado en el ejemplo anterior para construir el dual, que queda como: Min(w) = 5p1 − 60p2 + 2p3 − 2p4 sujeto a: p1 + 2p2 + p3 − p4 ≥ −100 −0,5p1 − 4p2 − 0,5p3 + 0,5p4 ≥ 50 p1, p2, p3, p4 ≥ 0 Podríamos incluso escribir el problema de forma algo más elegante y más compacta, poniendo la primera restricción de forma que el lado derecho sea positivo y ahorrándonos una variable a costa de que ésta no sea restringida en signo. Efectivamente, si hacemos p5 = p3 − p4, podemos escribir el problema anterior como: Min(w) = 5p1 − 60p2 + 2p5 sujeto a: −p1 −2p2 − p5 ≤ 100 −0,5p1 − 4p2 − 0,5p5 ≥ 50 p1, p2 ≥ 0

5.3. PROPIEDADES DE LA DUALIDAD La teoría de la dualidad proporciona un soporte teórico importante que permite: — Calcular cotas superiores (en problemas de minimización) e inferiores (en problemas de maximización) al valor de la función objetivo en cualquier iteración del método del Simplex. — Interpretar económicamente los resultados de la optimización. — Someter la solución obtenida a un análisis de sensibilidad. © Ediciones Pirámide

165

Decisiones empresariales con hoja de cálculo — Desarrollar algunas extensiones del método Simplex, que resultan muy eficientes para resolver problemas concretos que surgen en la práctica. Todas estas aplicaciones, excepto la última, se tratarán en apartados posteriores. La teoría de la dualidad se basa en tres grandes teoremas que se prueban en los apéndices 1A a 1D al final de este capítulo y que se definen como la propiedad de simetría, dualidad débil, dualidad fuerte y holgura complementaria. En los próximos apartados veremos sus conceptos y algunos ejemplos que nos aclararán su significado.

5.3.1. Simetría La simetría es una propiedad que tienen todos los problemas de PL. En el apartado anterior hemos visto que, a partir de un problema, al que hemos llamado primal, se puede construir, mediante determinadas reglas, otro al que hemos llamado dual. Pero lo que hemos llamado problema dual también es un problema de PL y, por tanto, de acuerdo a lo que hemos visto en el apartado anterior, también se puede construir su dual; en este caso, construiríamos el dual del dual. La regla de simetría puede expresarse diciendo que el dual del dual es el primal. En otras palabras, si construimos el problema dual de uno que, a su vez, ya ha sido dual, lo que obtenemos es el primal original. Por las razones anteriores es evidente que cualquier problema de PL puede ser considerado arbitrariamente el primal o el dual. Lo único que podemos decir es que cualquier problema primal tiene asociado otro al que llamamos dual y que cualquier problema dual tiene asociado otro al que llamamos primal. En el apéndice 1A demostramos la propiedad de la simetría. En el ejemplo 5.3 comprobamos que se cumple para un ejemplo concreto. EJEMPLO 5.3. Comprobación de la propiedad de simetría El dual construido a partir del primal del ejemplo 5.2 era: Min(w) = 5p1 − 60p2 + 2p5 sujeto a: −p1 −2p2 − p5 ≤ 100 −0,5p1 − 4p2 − 0,5p5 ≥ 50 p1, p2, p5 ≥ 0

166

© Ediciones Pirámide

Dualidad y análisis postoptimal Para construir el dual primero, igual que hicimos antes, transformaremos el problema anterior en uno que tenga forma canónica, con lo que nos quedará2: Max(−w) = −5p1 + 60p2 − 2p5 sujeto a: −p1 −2p2 − p3 + p4 ≤ 100 0,5p1 + 4p2 + 0,5p3 − 0,5p4 ≤ −50 p3, p4 ≥ 0 Si ahora llamamos x1 y x2 a las variables asociadas respectivamente a la primera y segunda restricción, podremos escribir el dual del problema anterior como: Min(z) = 100x1 − 50x2 sujeto a: −x1 + 0,5x2 ≥ −5 −2x1 + 4x2 ≥ 60 −x1 + 0,5x2 ≥ −2 x1 − 0,5x2 ≥ 2 x1, x2 ≥ 0 donde hemos construido dos restricciones en la columna asociada a p5 con el fin de tener en cuenta que esta variable no tenía la condición de no negatividad. En realidad es equivalente a haber utilizado el dual antes de sustituir p3 y p4 por p5 y no restringir en signo p5, tal y como hicimos en el ejemplo 5.2. Ahora tan sólo nos queda multiplicar por −1 la primera restricción y convertir en una sola de igualdad las dos últimas, con lo que nos queda el problema al que hemos llamado originalmente primal y que, como podemos comprobar, es idéntico al planteado inicialmente en el ejemplo 5.2. Min(z) = 100x1 − 50x2

2 Recordemos que la forma canónica supone también que todas las variables deben ser mayores o iguales que cero. Pero p5 no está restringida a ser mayor o igual que cero, por lo que la hemos sustituido por su transformación original: p5 = p3 − p4.

© Ediciones Pirámide

167

Decisiones empresariales con hoja de cálculo sujeto a: x1 − 0,5x2 ≤ 5 −2x1 + 4x2 ≥ 60 x1 − 0,5x2 = 2 x1, x2 ≥ 0

5.3.2. Dualidad débil y dualidad fuerte La dualidad débil es una propiedad que nos dice que si dos problemas de PL, el primal y su asociado dual, tienen una o más soluciones factibles, el valor de la función objetivo del problema de maximización (digamos que éste sea el primal) en cualquier iteración será inferior o igual al valor de la función objetivo de su problema de minimización asociado (dual). La dualidad fuerte nos dice que, si existen soluciones factibles y óptimas de un problema primal y de su asociado dual, el valor de la función objetivo en el óptimo de ambos será el mismo. Algunos resultados adicionales a los anteriores nos permiten afirmar que si uno de los problemas, por ejemplo el primal (dual) es infactible, su correspondiente dual (primal) será infactible o factible pero no acotado, y si el primal (dual) es factible pero no acotado, su correspondiente dual (primal) será infactible. Los resultados de dualidad fuerte y débil permiten establecer las correspondencias que se indican en la tabla 5.3. TABLA 5.3 Correspondencias entre primal y dual Primal

Dual

Factible y óptimo

Factible y óptimo

Factible y no acotado

Infactible

Infactible

Factible y no acotado

Infactible

Infactible

Una demostración de los resultados anteriores puede verse en los apéndices 1B y 1C.

168

© Ediciones Pirámide

Dualidad y análisis postoptimal Con el ejemplo 5.4 podremos comprobar algunos de los resultados enunciados como dualidad débil y fuerte.

EJEMPLO 5.4. Comprobación de la dualidad débil y fuerte Partimos del problema planteado en el ejemplo 4.1, al que hemos considerado primal: Max(z) = 100x1 + 200x2 sujeto a: x1 + x2 ≤ 80 0,8x1 + 2x2 ≤ 124 x1, x2 ≥ 0 Las soluciones de la función objetivo han resultado ser, para cada iteración, las que se señalan en la tabla 5.43. TABLA 5.4 Resultados del primal N.º iteración

x1

x2

FO(z)

0

0

0

0

1

0

62

12.400

2

30

50

13.000

El planteamiento del dual, tal como hemos visto en el ejemplo 5.2, y su solución por el método de la M grande, que hemos visto en el capítulo anterior, es la siguiente4: Min(v) = 80p1 + 124p2 3 4

© Ediciones Pirámide

El lector puede comprobar estos resultados en cada una de las iteraciones del ejemplo 4.1. También se pueden ver cada una de las iteraciones con sus soluciones en el ejemplo 4.2.

169

Decisiones empresariales con hoja de cálculo sujeto a: 1p1 + 0,8p2 ≥ 100 1p1 + 2p2 ≥ 200 p1, p2 ≥ 0 Las soluciones en las diferentes iteraciones quedan como se muestra en la tabla 5.5. TABLA 5.5 Resultados del dual N.º iteración

p1

p2

FO(w)

0

0

0

300M

1

0

100

2

33,33

20M + 12.400

83,33

13.000

Como puede comprobarse, las soluciones óptimas del primal y dual son iguales (13.000), de lo que se deduce que se cumple el resultado previsto por la propiedad de la dualidad fuerte. Si damos a M cualquier valor suficientemente grande, tal y como habíamos visto en el apartado 4.5, está claro también que en las iteraciones 0 y 1 del primal el valor de la función objetivo es inferior al del dual, lo que, en principio, podría ser interpretado como lo previsto por la propiedad de la dualidad débil. Sin embargo, esto no sería estrictamente cierto, puesto que los resultados de las iteraciones 0 y 1 del dual no son factibles. Sin embargo, podemos comprobar dos posibles soluciones factibles del problema dual como los que se señalan en la tabla 5.6. TABLA 5.6 Algunos resultados factibles del dual N.º solución

p1

0

200

0

16.000

1

0

125

15.500

p2

FO(w)

Puede comprobarse que las dos iteraciones con soluciones factibles de la tabla 5.6 tienen un valor de la función objetivo siempre superior a cualquiera de las

170

© Ediciones Pirámide

Dualidad y análisis postoptimal soluciones obtenidas en el problema primal (de maximización), lo que está de acuerdo con lo previsto en la propiedad de dualidad débil. Un resultado obvio de las propiedades débil y fuerte de la dualidad es que el valor de la función objetivo del problema de minimización (digamos el dual) siempre es una cota superior al que pueda tomar su dual (primal). De esta forma, en el caso de que no lleguemos a una solución óptima del problema de maximización, nos será posible conocer cuán lejos estamos como máximo del óptimo, obteniendo alguna solución factible de su correspondiente dual. Hallar una cota del valor óptimo era especialmente relevante cuando los ordenadores eran más lentos de cálculo de lo que son actualmente. Podía resultar demasiado costoso (en tiempo de ordenador) llegar a la solución óptima y, en cambio, podría ser suficiente con estar en un entorno del óptimo suficientemente cercano. Hoy en día, dada la rapidez y capacidad de los actuales ordenadores, esto resulta de menor utilidad.

5.3.3. Holgura complementaria Antes de explicar la propiedad de la holgura complementaria, que se demuestra en el apéndice 1D, es necesario definir qué entendemos por restricción activa. Decimos que una restricción es activa si, en el óptimo, se cumple la relación de igualdad (no existe holgura o la holgura vale 0), y decimos que la restricción es no activa si en el óptimo el lado izquierdo de la restricción es estrictamente inferior o estrictamente superior al lado derecho (existe holgura distinta de 0). La propiedad de la holgura complementaria puede enumerarse con las dos siguientes reglas: a) Si una restricción es activa, el valor dual asociado a esa restricción será no cero (puede ser positivo o negativo) o cero. b) Si una restricción es no activa, el valor dual asociado a esta restricción será siempre igual a cero. Si observamos los resultados del ejemplo 5.5, podremos observar cómo las dos restricciones del primal son activas y sus duales asociados son positivos, lo que cumpliría el principio enunciado en a).

EJEMPLO 5.5. Comprobación holgura complementaria (1) El problema primal del ejemplo 4.1 era: Max(z) = 100x1 + 200x2 © Ediciones Pirámide

171

Decisiones empresariales con hoja de cálculo sujeto a: x1 + x2 ≤ 80 0,8x1 + 2x2 ≤ 124 x1, x2 ≥ 0 De acuerdo con lo que hemos visto en apartados anteriores, el dual quedaría: Min(v) = 80p1 + 124p2 sujeto a: 1p1 + 0,8p2 ≥ 100 1p1 + 2p2 ≥ 200 p1, p2 ≥ 0 Como ya hemos visto en el capítulo 3, la variable π1 representa el precio de la tierra y la variable p2 el del agua. Dado que 80 son las hectáreas utilizadas y 124 los m3 de agua consumidos, el problema dual puede interpretarse como el de minimizar el margen que el agricultor debería obtener cediendo sus recursos sin cultivar trigo ni maíz. Pero, ¿bajo qué condiciones? Que el precio de cultivar cada hectárea de trigo (tierra mas agua) será siempre igual o superior a 100 € y que el precio de cultivar cada hectárea de maíz será igual o superior a 200 €. Volviendo a nuestra comprobación de holgura complementaria, la solución óptima del problema dual viene dada por: TABLEAU 5.1 Tableau óptima del problema dual

172

cj

80

124

0

0

M

M

xB

cB

b

p1

p2

s1

s2

A1

A2

p1

80

33,33

1

0

−1,67

0,67

1,67

−0,67

p2

124

83,33

0

1

0,83

−0,83

−0,83

0,83

zj

80

124

−30

−50

30

50

cj − zj

0

0

30

50

M − 30

M − 50

© Ediciones Pirámide

Dualidad y análisis postoptimal Por otra parte, el tableau óptimo del problema primal es el que se muestra en el tableau 5.2. TABLEAU 5.2 Tableau óptimo del problema primal cj

100

200

0

0

s1

s2

xB

cB

b

x1

x2

x1

100

30

1

0

1,67

−0,83

x2

200

50

0

1

−0,67

0,833

zj

100

200

33,33

83,33

cj − zj

0

0

−33,33

−83,33

Como puede observarse: — El valor de las variables del dual en el óptimo (p1 = 33,33 y p2 = 83,33) es igual al opuesto de los costes reducidos de las variables de holgura asociadas a cada restricción del problema primal (s1 y s2). — La primera restricción primal (terreno) en el óptimo está activa (su variable de holgura es no básica, y por tanto el valor de solución es cero), así que el valor de la primera variable dual (p1, valoración del recurso tierra) será positivo. En este caso, 33,33 €/ha. — Lo mismo sucede con la segunda restricción primal (agua), que está activa (utilizo todo el agua, su holgura es cero) y el valor de la variable dual asociada (p2, valoración del recurso agua) toma un valor de 83,33 €/m3. — Los costes reducidos de las variables de holgura del problema dual (s1 y s2) coinciden con los valores de las variables del primal: (x1 =30, x2 = 50). — La primera restricción del dual (beneficio que aporta el trigo como mínimo) está activa en el óptimo; por tanto, la primera variable primal (x1, hectáreas cultivadas) tomará valor positivo, en este caso 30 ha. — La segunda restricción del dual (beneficio que aporta el maíz) también está activa; por tanto, la segunda variable primal (x2 hectáreas cultivadas de maíz) tomará valor positivo, en este caso 50 ha. También se puede comprobar que ambas soluciones coinciden en el valor de la función objetivo (dualidad fuerte): Primal: Dual: © Ediciones Pirámide

100 × 30 + 200 × 50 = 13.000 80 × 33,34 + 124 × 83,33 = 13.000

173

Decisiones empresariales con hoja de cálculo Si resolvemos el problema primal utilizando Solver y pedimos el «Informe de sensibilidad», éste será el de la tabla 5.7. TABLA 5.7 Informe de sensibilidad del primal Celdas cambiantes Celda

Nombre

Gradiente reducido

Valor igual

Coeficiente objetivo

Aumento permisible

Disminución permisible

$D$5

Variable x1

30

0

100

100

20

$E$5

Variable x2

50

0

200

50

100

Restricciones Celda

Nombre

$E$11 Hectáreas usadas $E$12

3

m de agua usados

Sombra precio

Valor igual

Restricción lado derecho

Aumento permisible

Disminución permisible

80 33,33333333

80

75

18

124 83,33333333

124

36

60

En la segunda parte de la tabla 5.7 puede observarse, donde pone «restricciones», que aparecen las dos filas (terreno y agua). En la columna «valor igual» aparece el valor que toma el lado izquierdo de la restricción, y en la columna «restricción en el lado derecho» es el RHS. Cuando una restricción está activa, ambos valores son iguales; es decir, la holgura vale cero. Esta información también la ofrece el «Informe de respuestas» (tabla 5.8). TABLA 5.8 Informe de respuestas del primal Celda objetivo (máximo) Celda

$E$8

Nombre

Valor original

Valor FO Max.

Valor final

0

13.000

Celdas cambiantes Celda

Nombre

Valor original

Valor final

$D$5

Variable x1

0

30

$E$5

Variable x2

0

50

Restricciones Celda

$E$11 $E$12

174

Nombre

Hectáreas usadas 3

m de agua usados

Valor de la celda

Fórmula

Estado

Divergencia

80

$E$11 0

aix* = bi

4.

aix* > bi

p *i = 0

donde ai es la fila i-ésima de la matriz A. Es decir, en la solución óptima las variables duales positivas se corresponden con restricciones primales saturadas y, análogamente, a una restricción primal con holgura le corresponde una variable dual nula. Como se ha visto a lo largo del capítulo, estas propiedades tienen una importante interpretación económica. A partir de estos resultados resulta inmediato demostrar que, en el óptimo de ambos problemas, son ciertas las siguientes afirmaciones: Corolario l. Los costes reducidos de cada variable primal coinciden con el opuesto del valor de la variable de holgura de la fila correspondiente del problema dual. DEMOSTRACIÓN. En el óptimo de ambos programas se cumple: z* = cBT B−1b = p*Tb © Ediciones Pirámide

201

Decisiones empresariales con hoja de cálculo Derivando esta expresión con respecto a b se obtiene: p*T = cBT B−1 Entonces, para todo j es cierto que: zj − cj = cBT B−1aj − cj = p*Taj− cj

(c.q.d)

donde aj es la j-ésima columna de la matriz A. Por tanto, la condición de optimalidad primal (costes reducidos negativos o nulos) es equivalente a una condición de factibilidad dual. Corolario 2. Los costes reducidos de las variables de holgura del primal coinciden con los valores de la variable dual correspondiente a esa fila. DEMOSTRACIÓN. Por el corolario anterior se sabe que para todo j es cierto que: zj − cj = cBT B−1aj − cj = p*Taj− cj Las variables de holgura no tienen un coste explícito en la función objetivo y, además, entran en una sola restricción con un coeficiente igual a uno. Por tanto, particularizando la expresión anterior para la j-ésima variable de holgura, se obtiene:

() 0

...

zj − cj = [p* 1 ..., p* j ..., p* m ] 1 = p* j

(c.q.d)

...

0

Por aplicación del resultado de simetría, puede decirse, asimismo, que el coste reducido de cada variable de holgura del problema dual es igual al valor de la actividad primal correspondiente a esa fila.

APÉNDICE 2A. ANÁLISIS PARAMÉTRICO Coeficientes de la función objetivo Para tratar el caso general es necesario llevar a cabo algunos desarrollos preliminares. Para ello partimos de la tabla 2A.1, que suponemos factible.

202

© Ediciones Pirámide

Dualidad y análisis postoptimal TABLA 2A.1 Estructura del tableau óptimo B

cB

b

cB

xN

xB

cB

B−1b

I

B−1N

zi

cB

cBB−1N

ci − zi

0

cN − cBB−1N

Supongamos que c pasa a valer c′. En este caso, la actualización del tableau puede reducirse a las siguientes expresiones7. Para el valor de la función objetivo: z′ = c′B B−1b = (c′B + cB − cB)B−1b = = cB B−1b + (c′B − cB)B−1b = z + (c′B − cB)B−1b =

[0]

= z + (c′B − cB | c′N − cN)

B−1b

Y para el vector de costes reducidos: (c − z′) = c′N − c′B B−1N = (c′N + cN − cN) − (c′B + cB − cB)B−1N = = cN − cB B−1N + (c′N − cN) − (c′B − cB)B−1N =

[−B N]

= (c − z′) + (c′N − cN | c′B − cB)

I

−1

Si se altera un único coeficiente de c (ct para a valer c′t, por ejemplo) cabe distinguir dos casos: a) La variable t-ésima no es básica en la solución actual. En este caso cambia tan sólo el coste reducido de la variable. El valor de la función objetivo no cambiará y, de acuerdo con los desarrollos anteriores, la actualización del vector de costes reducidos queda: (ct − zt)′ = (ct + zt) + (c′t + ct) Si el nuevo coste reducido fuera positivo, se pivota sobre la variable t-ésima y se siguen los métodos habituales. En el caso de que fuera negativo, la solución continuaría siendo óptima. 7 Estas expresiones y, en general, todas las que se desarrollan en este apartado pueden interpretarse como desarrollos en serie de Taylor de primer orden.

© Ediciones Pirámide

203

Decisiones empresariales con hoja de cálculo b) La variable t-ésima es básica en la solución actual. Cambian todos los costes reducidos y el valor de la función objetivo. Particularizando las expresiones anteriores se obtiene: z′ = z + (c′t + ct) xBt (cj − zt)′ = (cj + zt) + (c′t + ct) ytj siendo ytj el elemento (t, j) de la matriz B−1N. Nuevamente, si alguno de los costes reducidos resulta ser positivo, se pivota sobre la variable correspondiente y se sigue iterando por el método Simplex hasta obtener una nueva solución óptima. EJEMPLO 2A.1. Solución paramétrica de los coeficientes de la función objetivo Consideremos de nuevo el problema: Max(z) = 100x1 + 200x2 sujeto a: x1 + x2 ≤ 80 0,8x1 + 2x2 ≤ 124 x1, x2 ≥ 0 cuyo tableau óptimo es el expuesto en el tableau 2A.1: TABLEAU 2A.1 Solución óptima del ejemplo 2A.1

204

cj

100

200

0

0

xB

cB

b

x1

x2

s1

s2

x1

100

30

1

0

1,67

−0,83

x2

200

50

0

1

−0,67

0,833

zj

100

200

33,33

83,33

cj − zj

0

0

−33,33

-83,33

© Ediciones Pirámide

Dualidad y análisis postoptimal Supongamos que el coste de x1 pasa a valer 50. Dado que x1 es una variable básica en la solución actual, el cambio afectará a la fila de costes reducidos y al valor de la función objetivo. Aplicando las fórmulas desarrolladas anteriormente se obtienen los siguientes resultados. Para s1:

(c3 − z3)′ = −33,33 − (50 − 100)1,67 = 50

Para s2:

(c4 − z4)′ = −83,33 − (50 − 100)(−0,83) = −125

Y el tableau actualizado queda según se ve en el tableau 2A.2: TABLEAU 2A.2 Tableau óptimo actualizado del ejemplo 2A.1 cj

50

200

0

0

xB

cB

b

x1

x2

s1

s2

x1

50

30

1

0

1,67

−0,83

x2

200

50

0

1

−0,67

0,83

zj

50

200

−50

125

cj − zj

0

0

50

−125

La nueva solución no es óptima y, por tanto, es necesario seguir aplicando el método del Simplex. El cálculo de la nueva solución queda como ejercicio para el lector. Consideremos ahora que el cambio en c se produce de forma continua a lo largo de la dirección dada por un vector c arbitrario. De esta forma: c′ = c + mc (m ≥ 0) En este caso, la perturbación del vector de costes es, por tanto: c′ − c = mc Aplicando las expresiones obtenidas anteriormente resulta: z′ = z + mcB B−1b (c − z)′ = (c − z) + m(cN − cB−1N) = (c − z) + m(c − z) © Ediciones Pirámide

205

Decisiones empresariales con hoja de cálculo La perturbación dará lugar a un cambio de base si existe al menos una variable no básica para la que se cumpla: (cj − zj) + m(cj − zj) ≥ 0 Esto es, sólo cambia la base si existe un valor a partir del cual el vector de costes reducidos comienza a tener algún elemento estrictamente positivo. Sea S el  conjunto de las variables no básicas para las que esto se cumple. Si S es un conjunto vacío, ningún valor de m afectará a la solución inicial. En cambio, si S no está vacío, la base cambiará para valores de m mayores o iguales que el valor crítico: m = Min j∊S

{ (c − z ) } −(cj −zj) j

j

La mayoría de los códigos comerciales de PL dispone de procedimientos para llevar a cabo estos análisis a partir de la solución óptima de un PL. En el caso de los coeficientes de la función objetivo, este procedimiento suele denominarse PARAOBJ8. Al utilizar este procedimiento, el analista debe especificar el vector de perturbación (c) y el límite de la perturbación (esto es, el valor máximo de m). En esta situación, el código realizará una serie de optimizaciones eficientes del problema perturbado, imprimiendo un informe cada vez que cambia la base.

Término independiente El análisis paramétrico del término independiente estudia la variación de la base óptima de un PL a medida que se alteran los coeficientes del RHS. De nuevo, las técnicas de análisis de rango que describimos anteriormente son un caso particular de este tipo de procedimientos. Sea un tableau óptimo y factible cualquiera (tabla 2A.3). TABLA 2A.3 Estructura del tableau óptimo

8

206

B

cB

b

cB

xN

xB

cB

B−1b

I

B−1N

zj

cB

cBB−1N

cj − zj

0

cN − cBB−1N

La versión de Solver incluida en Excel no tiene esta facilidad. © Ediciones Pirámide

Dualidad y análisis postoptimal Supongamos que b pasa a valer b′. Evidentemente: — Este cambio afecta tan sólo a los valores de las variables básicas (columna b) de la función objetivo. — En principio, nada garantiza que los nuevos valores de las variables básicas sean no negativos. La actualización de la tabla se realiza utilizando las expresiones: x′B = B−1b′ = B−1 (b′ + b − b) = B−1b + B−1(b′ − b) = x′B + B−1(b′ − b) z′ = cB B−1b′ = cB B−1 (b′ + b − b) = cB B−1b + cB B−1(b′ − b) = = z′CB B−1(b′ − b) = z + w*(b′ − b) Hay que distinguir dos casos: a) Se mantiene x′B ≥ 0. Entonces la nueva solución es factible y óptima. b) Existe al menos un i ∊VB /xBi < 0. Por consiguiente, la nueva solución es óptima, pero no primal factible. Para reoptimizar el problema puede emplearse el algoritmo dual Simplex9. Supongamos ahora que el cambio en b se produce a lo largo de la dirección b. O sea: b′ = b + mb (m > 0). En este caso el vector de perturbación queda: b′ − b = mb. Evidentemente: x′B = B−1(b + mb) z = w*(b + mb) = z + w*mb La perturbación cambiará la solución del problema sólo si afecta a su factibilidad. En cambio, si para todo i∊VB y para todo m ≥ 0 se cumple: B−1(b + mb)30 la solución no cambiaría cualquiera que sea el valor de m. Consideremos: b = B−1b, b = B−1b. Evidentemente, el valor crítico de m es: m = Min j∊S

{b } −bi i

9 El método dual Simplex es un algoritmo diseñado para optimizar el problema dual a partir de una SBF del mismo. En este caso, este método resulta adecuado debido a que tenemos un tableau primal formalmente óptimo pero infactible, al que le corresponde una solución dual básica y factible pero no óptima. Vid. Bazaraa y Sarvis (1981).

© Ediciones Pirámide

207

Decisiones empresariales con hoja de cálculo Siendo S = {j ∊VN /bi ≥ 0}. Si S no tiene ningún elemento, la base no cambiará cualquiera que sea el valor de m. Al igual que en el caso del vector de costes, en el análisis del rango del término independiente se pretende ver en cuánto puede variar cada uno de los coeficientes del término independiente sin que se modifique la base. Para ello se utiliza el vector de perturbación:

[] 0 0

...

b=

±1

...

0

EJEMPLO 2A.2. Análisis paramétrico del término independiente Ahora debemos calcular qué variaciones del término independiente mantienen en un nivel no negativo a las variables del problema. El valor de las variables del problema, parametrizado en función de variaciones en el RHS de la primera restricción, es: x(m) = B−1(b + mb) =

(−0,67

1,67 −0,83 0,83

)(

80 + m 124

)

Luego: x1(m) = 30 + 1,67m ≥ 0 ⇒ m ≥ −18 x2(m) = 206,66 − 0,67m ≥ 0 ⇒ m ≤ 309,98 El análisis de rango del RHS de la segunda restricción queda como ejercicio para el lector. De forma análoga al caso de los coeficientes de la función objetivo, en los códigos comerciales de PL existen rutinas o procedimientos para automatizar el análisis paramétrico del término independiente a partir de la solución óptima de un PL. Generalmente, este procedimiento se conoce como PARARHS10.

10

208

La versión de Solver incluida en Excel no tiene esta facilidad. © Ediciones Pirámide

Dualidad y análisis postoptimal

APÉNDICE 3A. CAMBIOS EN LOS COEFICIENTES ESTRUCTURALES El desarrollo de las expresiones de actualización correspondientes al caso a) es muy sencillo. Supongamos, sin pérdida de generalidad, que los cambios se producen en las últimas columnas de la matriz N: N = [N1 | N2], N′ = [N1 | N′2] Evidentemente: B−1N′ = [B−1N1 | B−1N′2] cBB−1N′ − cN = [cBB−1N1 − cN1 | cBB−1N′2 − cN2] Luego el tableau correspondiente al problema transformado cambia tan sólo en las columnas correspondientes a las variables no básicas cuyos coeficientes cambian. En concreto, si el tableau óptimo del que se parte es el que se muestra en la tabla 3A.1. TABLA 3A.1 Estructura del tableau óptimo B xB

cB

b

cB

cN1

cN2

B

xB

xN1

xN2

I

B N1

B−1N2

zj

cB

cBB−1N1

cBB−1N2

cj − zj

0

cN1 − cBB−1N1

cN2 − cBB−1N2

cB

−1

B b

−1

entonces el tableau transformado queda como indica la tabla 3A.2. TABLA 3A.2 Estructura del tableau transformado B xB

© Ediciones Pirámide

cB cB

b

cB

cN1

cN2

B

xB

xN1

xN2

−1

B b

−1

I

B N1

B−1N′2

zj

cB

cBB−1N1

cBB−1N′2

cj − zj

0

cN1 − cBB−1N1

cN2 − cBB−1N′2

209

Decisiones empresariales con hoja de cálculo

Apéndice 3A.1. Adición o eliminación de nuevas variables y restricciones Sea un problema de PL para el que se ha obtenido la solución óptima. Supongamos que, tras analizar los resultados, se desea tener en cuenta una nueva restricción o variable. La solución obvia es, naturalmente, plantear el nuevo problema con la restricción o variable añadida y empezar a iterar desde el principio. Sin embargo, es posible aprovechar la solución óptima ya obtenida para calcular la nueva solución de una forma mucho más eficiente en términos de tiempo de cálculo. En los siguientes apartados realizaremos los desarrollos analíticos necesarios.

Adición de nuevas variables Las nuevas actividades entran como no básicas, añadiendo columnas a cN y N. Tras ampliar la tabla, puede seguirse por el método primal, ya que no se ha perdido factibilidad en el proceso. Las expresiones necesarias para expandir el cuerpo del tableau pueden obtenerse a partir de los resultados del apéndice anterior, considerando N2 = 0. Para expandir la fila de los costes reducidos basta aplicar los resultados de análisis de sensibilidad ante variaciones en los costes de las variables no básicas.

Adición de nuevas restricciones Esta modificación añade una nueva fila a A y una nueva componente a b. Sea la restricción adicional: am + 1x + sm + 1 = bm + 1 donde sm + 1 es la variable de holgura correspondiente a la nueva fila. La tabla final puede ampliarse, de forma que contenga las nuevas restricciones y garantizando que la solución sea básica. Sea el problema ampliado: Min(z) sujeto a: z − cBxB − cNxN = 0 xB + B−1NxN = B−1b aBm + 1xB + aNm + 1xN + sm + 1 = bm + 1

210

© Ediciones Pirámide

Dualidad y análisis postoptimal Premultiplicando el segundo grupo de restricciones por aBm + 1 se obtiene: aBm + 1xB + aNm + 1B−1NxN + sm + 1 = aNm + 1B−1N Y restando esta igualdad de la nueva restricción se llega a la expresión: (aBm + 1 − aNm + 1B−1N) xN + sm + 1 = bm + 1 − aNm + 1B−1b y al añadir esta nueva restricción a la tabla se obtiene la tabla 3A.2. TABLA 3A.3 Estructura del tableau transformado B

b

cB

0

cN

B

xB

sm + 1

xN

I

0

B−1N

cB

xB

cB

B−1b

sm + 1

0

bm + 1 − aBm + 1B−1b

aNm + 1 − aBm + 1B−1N

zj

cB

0

cBB−1N

cj − zj

0

0

cN − cBB−1N

Si se cumple bm + 1 − aBm + 1B−1b ≥ 0 no será preciso reoptimizar. En cambio, si este valor es negativo, entonces se tendrá una tabla óptima que no es primal factible, por lo que puede usarse el método dual Simplex11. A partir de los desarrollos anteriores resulta evidente que puede ahorrarse mucho tiempo de cálculo si, en lugar de optimizar un PL desde el principio, puede partirse de la solución óptima de otro problema que sólo difiera en algunas variables y/o restricciones. Esta operación se conoce como recuperación de una base. Los códigos comerciales suelen disponer de procedimientos de almacenamiento y recuperación que permiten emplearla.

11 En este libro no hemos desarrollado el método dual Simplex. Puede verse, por ejemplo, en Simonnard (1972).

© Ediciones Pirámide

211

6

Modelización de problemas de PL (I)

6.1. INTRODUCCIÓN La mayoría de los textos de programación lineal o, en general, sobre métodos cuantitativos, suelen describir detalladamente distintos algoritmos para resolver problemas más o menos generales, sin prestar demasiada atención a la formulación de modelos, de forma que, como mucho, se dan algunos ejemplos, generalmente poco estructurados. Sin embargo, cuando nos enfrentamos con problemas reales de planificación y toma de decisiones, las mayores dificultades no surgen en la resolución del modelo, sino en su propia formulación. No siempre es fácil obtener una formalización matemática del sistema que queremos representar, especialmente porque es necesario adaptarse a unos modelos estándar para que puedan resolverse mediante algoritmos de uso general. Esto se debe a que, si los algoritmos son conocidos, seguramente se dispondrá de un software capaz de resolver el modelo de forma eficiente. La modelización tiene más de arte que de ciencia. No existe un conjunto de reglas fijas o teorías que permitan aprender mecánicamente a formular modelos. Como la pintura o la escultura, este arte se aprende sobre todo con la práctica, aunque es conveniente utilizar una forma sistemática de diseñar los modelos. Este capítulo y el siguiente pretenden enseñar algunos principios del arte de la modelización, referidos en concreto a los modelos de PL. En éste se describe la metodología general y algunos problemas que pueden resolverse mediante algoritmos generales de PL. En el siguiente capítulo trataremos otros problemas que, por su especial estructura, pueden optimizarse más eficientemente mediante algoritmos especiales. En todo caso, nuestro principal objetivo seguirá siendo la formulación de modelos. © Ediciones Pirámide

213

Decisiones empresariales con hoja de cálculo

6.2. METODOLOGÍA DE MODELIZACIÓN DE LOS PROBLEMAS DE PL En el diagrama de flujo de la figura 6.1 se resume una primera aproximación conceptual al proceso de modelización. Cabe destacar las siguientes fases: — Descripción del problema. Si éste fuera un texto puramente académico, diríamos que la descripción del problema debe llevarla a cabo la institución (empresa, administración pública, ONG...) que encarga el sistema de decisión. Posiblemente un alumno considerará que la institución le proporcionará toda la información necesaria y le definirá de forma clara el problema al que se enfrenta. En la práctica esto no es así por dos razones: • Los decisores generalmente no son plenamente conscientes, ni tienen por qué serlo, de las capacidades y limitaciones de las técnicas disponibles. Por tanto, y en general, no podrán expresar el problema de decisión de una forma clara y completa. • Frecuentemente, nuestro interlocutor en este tipo de proyectos no estará entrenado para exponer sus ideas de forma analítica y estructurada. Por todo ello, el analista debe participar en la fase de descripción del problema. El producto final de esta fase debe ser un documento claro y conciso que describa el planteamiento del problema y las decisiones que el sistema debe ayudar a tomar, el o los algoritmos que deben aplicarse y el entorno informático en el que va a aplicarse (véase figura 6.1). — Definición de variables. Puede afirmarse que una adecuada definición de las variables supone un paso fundamental en el planteamiento del problema, que no es inferior al 60 o 70 % del mismo. En muchos casos, cada variable se corresponde con una de las decisiones que el sistema debe «tomar». Por tanto, definir las variables del problema equivale a establecer qué decisiones deben adoptarse. A no ser que se tenga experiencia, o que el problema sea sencillo, no es fácil definir correctamente todas las variables de un modelo, por lo menos al principio. El seguimiento del proceso que describe el diagrama de la figura 6.1 debe ayudamos a rehacer la definición de variables de la forma más conveniente para contestar a todas las cuestiones que plantea el sistema real y que nos dicta nuestro sentido común. — Definición de restricciones. Todos los procesos de decisión se ven afectados por múltiples limitaciones. En algunos casos, éstas se deben a la disponibilidad de recursos, mientras que en otros proceden de obligaciones contractuales y legales. Muy a menudo, las restricciones se derivan del hecho

214

© Ediciones Pirámide

Modelización de problemas de PL (I)

Comienzo Escribir la FOBJ A



Descripción del problema No

¿Son coherentes las dimensiones?

Definición de variables Documentar la definición

Definición de restricciones Definición del RHS Documentar la definición

Sí ¿Representa lo que se desea?

No



Sí No

Optimizar el problema Analizar los resultados

¿Son coherentes las dimensiones?



Sí No No

¿Cumple la solución con los requerimientos?

¿Representa lo que se desea? Sí Sí

FIN

A

Figura 6.1. Diagrama de flujo.

de que se está modelizando un subsistema limitado, inscrito en el contexto de un sistema mayor. Muchas de las decisiones adoptadas en otras partes de ese sistema afectarán a nuestro modelo en forma de restricciones. Sea cual sea el origen de las restricciones, su definición correcta es muy importante, ya que, si se define un exceso de restricciones, las soluciones que se obtengan no serán necesariamente las mejores, mientras que si se omite una restricción relevante, el sistema de decisión ofrecerá a menudo respuestas impracticables o simplemente absurdas. Debe señalarse también la importancia de escribir explícitamente, no simplemente retener en nuestra memoria, la definición conceptual de cada © Ediciones Pirámide

215

Decisiones empresariales con hoja de cálculo variable o grupo de variables y restricciones, así como definir en qué unidades están medidas. Con ello se pretende que resulte fácil comprobar la coherencia mutua de las ecuaciones del modelo formal. Frecuentemente, en los modelos formulados por principiantes, las variables representan cosas distintas en cada restricción o son incoherentes en cuanto a sus unidades de medida. A menudo, estos errores se producen porque no se ha hecho explícita la definición de las variables y restricciones del modelo. — Definición de la función objetivo. Una vez establecidas qué decisiones deben tomarse (definición de variables) y qué limitaciones afectan al sistema modelizado (definición de restricciones), deben establecerse cuáles son los criterios que permitirán evaluar las distintas soluciones posibles, esto es, debe definirse la función objetivo del modelo. En muchos casos este proceso da lugar a una reformulación del modelo, añadiendo o eliminando restricciones y variables. — Análisis de la solución. Una vez planteado y resuelto el problema de optimización es necesario analizar de varias formas la solución obtenida. Algunas de las cuestiones más relevantes que suelen plantearse en esta fase son: ¿es «sensata» la solución obtenida?, ¿pueden llevarse a la práctica sus recomendaciones?, ¿se obtiene mejores resultados que con los métodos de decisión que se usaban antes de optimizar?, ¿cabría considerar alguna mejora o refinamiento adicional?, etc. En la mayor parte de los casos, la evaluación de resultados llevará a repetir alguno de los pasos anteriores. La formulación del modelo depende de cada caso concreto. Sin embargo, hay muchos problemas que son conceptualmente similares. En los siguientes apartados, y sin ánimo de exhaustividad, hemos clasificado los problemas de PL en diversas categorías: — — — — — — —

Combinación óptima de recursos. Selección de procesos. Blending o mezcla. Modelos aparentemente no lineales. Modelos de flujo en redes. Problemas multiplanta. Problemas multiperíodo.

En este capítulo y en el siguiente presentaremos distintos ejemplos de cada uno de los problemas anteriores. En muchos casos reales, lo que de verdad se tiene es una combinación de algunos de estos «problemas tipo». Por eso, el exponerlos de forma sistemática debe ayudar al lector a formular sus propios modelos. Sin embargo, antes de proceder al planteamiento de algunos ejemplos de modelización, dedicaremos algunos apartados a establecer conceptos generales.

216

© Ediciones Pirámide

Modelización de problemas de PL (I)

6.2.1. Codificación de variables y restricciones En matemáticas estamos acostumbrados a definir a las variables como x1, y12, z22, etc. Esta notación, que es cómoda desde un punto de vista formal, resulta tremendamente inadecuada cuando utilizamos decenas, centenares o miles de variables y restricciones. Esto se debe a que resulta imposible acordarse del significado de, por ejemplo, la variable y231 o x22,47. Por ello, en los códigos comerciales tradicionales1 es conveniente utilizar nombres mnemotécnicos que permitan recordar el significado de cada variable o restricción. Los paquetes de software tradicionales que se utilizan en PL suelen admitir un máximo de ocho caracteres para estos códigos. De esta forma, si tenemos una variable que representa la cantidad a transportar de un producto determinado entre Madrid y Barcelona, podremos utilizar la codificación XMADBCN, donde X indica variable, los siguientes tres caracteres representarían el código de Madrid y los tres que siguen a continuación el de Barcelona. Con esta misma notación, la cantidad a transportar entre Madrid y Sevilla podría ser XMADSEV, o entre Sevilla y Barcelona XSEVBCN. Algo parecido puede hacerse con las restricciones. Por ejemplo, una restricción que representara que las cantidades máximas disponibles en Madrid podría escribirse como DXMAD y la restricción de disponibilidad mínima como DMMAD. El segundo carácter indicaría si la restricción es de máximo (X) o mínimo (M), los tres siguientes caracteres el lugar de la disponibilidad (MAD) y el primer carácter sería fijo para todo el grupo de restricciones, indicando que se refieren a una disponibilidad. A lo largo de este libro nosotros utilizamos la hoja de cálculo Excel para plantear y resolver problemas. En este caso, la definición de variables y restricciones se hace de forma automática en función de las etiquetas o textos que se ponen en las celdas adyacentes a la que contiene la variable o restricción, tal y como se explica en el apartado 3.3.

6.2.2. La función objetivo Una parte de los problemas reales de optimización, tal y como se presentan originalmente, no tienen una función objetivo única. Por otro lado, la PL parte de la base de que la función objetivo debe ser necesariamente única. ¿Cómo se compagina, pues, la realidad con las limitaciones de la PL? En primer lugar, al enfrentarse a un problema real hay que analizar si es posible definir un objetivo único. Cuando esto es posible, en problemas empresariales, éste suele ser del tipo: maximizar beneficios, minimizar costes, maximizar ventas, etc. 1

© Ediciones Pirámide

Véase al respecto la mayor parte de los códigos citados en el apartado 1.9.

217

Decisiones empresariales con hoja de cálculo Es importante destacar que cualquiera que sea la función objetivo en PL debe incluir tan sólo beneficios o costes variables, nunca los fijos. Como es bien sabido, los componentes fijos de ingresos y/o costes no modifican la solución óptima del problema de PL. Más adelante, en los capítulos 9 y 10, veremos que los ingresos o costes fijos se pueden tratar en programación entera y mixta. En ocasiones, es imposible seleccionar un solo objetivo a optimizar y, necesariamente, debemos tratar varios a la vez. En la mayor parte de los casos, estos objetivos son mutuamente contradictorios, siendo necesario analizar la posibilidad de convertir algunos objetivos en restricciones. Por ejemplo, supongamos que se pretende minimizar el coste de producción, pero a la vez desea mantenerse la plantilla ocupada al máximo posible. Este último objetivo puede plantearse como una restricción cuyo término independiente fuera un valor arbitrario que podemos ir variando mediante un análisis paramétrico. Las distintas combinaciones de coste/ocupación de plantilla permiten medir el valor de intercambio entre los dos objetivos, esto es, calcular en qué coste adicional hay que incurrir para emplear una unidad adicional de la plantilla. La figura 6.2 podría reflejar el resultado obtenido.

Coste

Ocupación de plantilla

Figura 6.2. Coste y ocupación de plantilla.

Otra forma de tener en cuenta objetivos múltiples es optimizar una combinación lineal entre todos ellos o función de trade-off. En el ejemplo anterior, esta función podría consistir en optimizar el coste con un peso del 70 % y la plantilla  con un peso del 30 % (valorados ambos términos, claro está, en unidades homogéneas). Pero, ¿cómo determinar el peso de cada objetivo en esta combinación lineal? En general, no es posible saberlo a priori, y entonces es necesario probar con distintos pesos hasta encontrar una solución «satisfactoria» para el decisor.

218

© Ediciones Pirámide

Modelización de problemas de PL (I) Una tercera estrategia consistiría en obtener soluciones con distintas funciones objetivo y, o bien dar como buena a alguna de ellas o, a continuación, aplicar alguno de los métodos anteriores. Cuando tenemos varios objetivos mutuamente contradictorios y parte de ellos (de hecho, todos menos uno) los incluimos como restricciones, es muy posible que el programa lineal correspondiente sea infactible. En este caso es necesario cambiar la formulación para permitir que estos objetivos en conflicto se cumplan al máximo posible pero admitiendo la existencia de desviaciones. Este tipo de formulación se conoce como programación por objetivos y fue debida originalmente a Chames y Cooper (1961)2. Un tratamiento relativamente sencillo puede verse en Villalba (1974). Finalmente, podemos encontrarnos con problemas que aparentemente no tienen función objetivo o en los que ésta no pretende optimizarse. Esto se debe, o bien a que el problema no está suficientemente bien definido, o a que es simplemente trivial. Sucede en ocasiones, especialmente en problemas de programación entera, que la gran cuestión consiste en obtener soluciones factibles, por lo que se considera secundario el tema de la optimalidad. Ésta, sin embargo, existe y es necesario tenerla en cuenta.

6.2.3. Las restricciones de desigualdad En problemas económicos, las restricciones de desigualdad suelen indicar relaciones tales como disponibilidad de recursos, obligación de satisfacer la demanda, etc. En algunos casos, estas restricciones están referidas exclusivamente a una sola de las variables del problema. Este tipo de restricciones son conocidas como cotas, límites o bounds. Evidentemente, las cotas pueden tratarse de la misma forma que cualquier otra restricción. Sin embargo, es mucho más eficiente, desde un punto de vista computacional, darles un tratamiento especial. Todos los paquetes profesionales de PL dan un tratamiento especial a las cotas.

6.2.4. Las restricciones de igualdad En muchos casos, las restricciones de igualdad obedecen a lo que se conoce como ecuaciones de balance. Estas ecuaciones se emplean para modelizar situaciones en las que, por ejemplo, la energía que entra en un nodo de distribución debe ser igual a la energía que sale de este mismo nodo; las existencias de caja al principio del período más las entradas deben ser iguales a las salidas más las existencias finales, etc.

2

© Ediciones Pirámide

Vid. apartado 6.2.6.

219

Decisiones empresariales con hoja de cálculo A menudo, es posible eliminar por sustitución algunas de estas restricciones de igualdad e, incluso, algunas variables que se introducen como consecuencia de las mismas. La supresión de estas restricciones y variables suele dificultar la interpretación de resultados, por lo que si la reducción de dimensiones no es importante, suelen mantenerse en la formulación final.

6.2.5. La reducción del número de restricciones En los grandes modelos de PL es normal que existan ecuaciones redundantes. Esto es, restricciones que están dominadas por otras y, por tanto, que nunca serán limitativas. Este tipo de situación suele producirse por dos razones: porque el modelizador no es consciente de ello, o porque, aun siendo consciente, pretende realizar un análisis de sensibilidad. En este último caso, lo que en un momento dado es una ecuación redundante, en otro momento puede ser una restricción activa. Naturalmente, el modelizador podría introducir la restricción cuando creyera que es necesario; esto, sin embargo, le supondría un trabajo adicional no deseado. La mayoría de los códigos comerciales aplican un preproceso a los problemas de PL, con el objeto de detectar ecuaciones y variables redundantes y eliminadas antes de optimizar el modelo. En Giró y Villalba (1976) se desarrolla una metodología que permite detectar y eliminar una gran parte de las restricciones de igualdad como las comentadas. Este proceso es transparente para el usuario, de forma que los resultados finales aparecen siempre en términos de las ecuaciones y variables originales.

6.2.6. Restricciones duras y blandas En el mundo físico las restricciones son absolutamente inviolables. Si una máquina tiene una capacidad máxima de 5 piezas/horas no es posible, bajo ninguna circunstancia, sobrepasar esta capacidad de producción. En el mundo económico estas restricciones a veces son más «elásticas». Así, las horas máximas de trabajo legales de una persona en un día son ocho. Sin embargo, pagando un precio adicional, esta persona probablemente aceptará realizar horas extra. Al primer tipo de ecuaciones se las conoce como restricciones duras y a las segundas como restricciones blandas. Estas últimas son más frecuentes en la realidad de lo que puede parecer a primera vista. El tratamiento de las restricciones blandas se basa en añadir nuevas variables al problema. Supongamos que se pretende producir dos tipos de productos x1 y x2 con una disponibilidad de 8 horas de trabajo. La construcción del producto 1 precisa de 5 horas, y la del producto 2, de 3 horas. Se trata de minimizar los costes de producción. La formulación con restricciones duras sería: Min(z) = c1x1 + c2x2

220

© Ediciones Pirámide

Modelización de problemas de PL (I) sujeto a: 5x1 + 3x2 ≤ 8 x1 ≥ 0, x2 ≥ 0 Supongamos que, incurriendo en un cierto coste (por ejemplo, g1 € por hora extra de trabajo) es posible disponer de 4 horas extra. Si y representa la cantidad de horas extra utilizadas, la función objetivo y la restricción anterior quedarían: Min(z) = c1x1 + c2x2 + g1y1 sujeto a: 5x1 + 3x2 ≤ 8 + y1 ⇒ 5x1 + 3x2 − y1 ≤ 8 y1 ≤ 4 x1 ≥ 0, x2 ≥ 0, y1 ≥ 0

6.2.7. Los problemas de scaling El método Simplex realiza una gran cantidad de operaciones aritméticas con números reales para llegar a la solución final. Al realizar estas operaciones se produce una pérdida de precisión en los cálculos. Esto se debe a que el ordenador opera con un número de dígitos limitado y, por tanto, los cálculos se ven afectados por un redondeo. La pérdida de precisión aumenta si los valores con los que se opera (multiplica o divide) difieren en el orden de magnitud de manera importante. De esta forma, los errores de redondeo son mayores cuando se opera a la vez con números del orden de 106 y 10−6 que cuando se opera con todos los números del mismo orden de magnitud. Cuando tenemos en un mismo problema de PL coeficientes con orden de magnitud distinto, podemos tener problemas de escalado o «scaling». Esto puede dar lugar a aparentes infactibilidades, a soluciones subóptimas o a obtener la solución correcta en un tiempo superior al que se utilizaría con un escalamiento adecuado. Los buenos códigos de PL reescalan los datos antes de optimizar y los reconvierten a la métrica original cuando escriben la solución, de tal manera que este proceso es transparente para el usuario. En todo caso, es conveniente comprobar este extremo antes de utilizar cualquier paquete de PL. Si el paquete no dispone de un procedimiento automático de escalado y un problema tiene diferencias im© Ediciones Pirámide

221

Decisiones empresariales con hoja de cálculo portantes en el valor de los coeficientes, es conveniente redefinir manualmente la métrica del problema, de manera que se reduzcan las diferencias en el orden de magnitud de los coeficientes. Naturalmente, ello obliga a reinterpretar las unidades en las que están medidas las variables y el término independiente. ¿Cuál es el escalamiento adecuado? Un factor importante a considerar es la longitud de palabra utilizada por la CPU del ordenador para operaciones con números reales. Si el tamaño de palabra es relativamente «grande», el proceso de cálculo será menos sensible a las diferencias en el orden de magnitud de los coeficientes. En términos generales, suele admitirse que no es conveniente que la diferencia de orden de magnitud, entre el coeficiente mínimo y máximo, sea superior a 103 y, en ningún caso, a 106. Una vez discutidos estos conceptos preliminares, dedicaremos el resto del capítulo a explicar, uno por uno, los distintos problemas-tipo a los que aludíamos anteriormente.

6.3. COMBINACIÓN ÓPTIMA DE RECURSOS Los modelos de combinación óptima de recursos tienen las siguientes características: a) La función objetivo consiste en maximizar el margen bruto de explotación o minimizar el coste que se obtiene al realizar una serie de actividades donde los recursos que se tienen son limitados. El caso más típico surge en la producción y venta de un conjunto de productos. b) Las restricciones son debidas a la limitación de los recursos de producción y a la demanda del producto final. Este tipo de problemas suelen ser sencillos de formular. Las variables y parámetros relevantes pueden definirse de la siguiente manera: xj: Cantidad de producto j (j = 1, 2, ..., n) producido y vendido. bi: Cantidad disponible del recurso i (i = 1, 2, ..., m). aij: Número de unidades del recurso i necesarios para producir una unidad del producto j. Dj: Demanda máxima del producto j. Lj: Nivel mínimo de producción requerido para el producto j. pj: Precio de venta unitario del producto j. cj: Coste variable unitario del producto j. Su formulación general es la siguiente: n

Max(z) = ∑ (pj − cj) xj j=1

222

© Ediciones Pirámide

Modelización de problemas de PL (I) sujeto a: n

∑ aij xj ≤ bi

∀i∊{1, 2, ..., m}

xj ≥ Lj

∀j∊{1, 2, ..., n}

xj ≤ Dj

∀j∊{1, 2, ..., n}

j=1

xj ≥ 0 EJEMPLO 6.1. Fabricante de camisas Un fabricante de camisas está tratando de decidir cuántas camisas debe producir durante el próximo mes. Puede fabricar siete estilos distintos, los cuales varían en las horas de mano de obra que requieren, en margen unitario y en las ventas potenciales que el departamento de comercialización estima. Los datos son los siguientes: TABLA 6.1 Características del sistema de producción Estilo

Horas-hombre

Ventas (unidades)

Margen unitario (u.m./unidad)

1

0,50

3.000

1,00

2

1,00

1.000

2,00

3

0,25

5.000

1,00

4

1,50

2.000

1,50

5

0,70

1.500

1,25

6

0,90

1.500

1,10

7

1,20

1.600

1,20

Se dispone de un total de 7.500 horas de mano de obra. Se desea calcular qué cantidad debe fabricarse de cada tipo, de forma que se maximice el margen total bruto para el fabricante. Variables: xi: Número de camisas a producir del estilo i, donde: i = {1 = camisas del estilo 1, 2 = camisas del estilo 2, 3 = camisas del estilo 3, 4 = camisas del estilo 4, 5 = camisas del estilo 5, 6 = camisas del estilo 6, 7 = camisas del estilo 7}. © Ediciones Pirámide

223

Decisiones empresariales con hoja de cálculo Restricciones: 1.

Cantidad de mano de obra disponible. Se dispone de una cantidad de horas-hombre que se debe repartir entre los diferentes estilos. Para la producción de cada una de las camisas de cada estilo se necesita una cantidad determinada de horas. 0,5x1 + x2 + 0,25x3 + 1,5x4 + 0,7x5 + 0,9x6 + 1,2x7 ≤ 7.500

2.

Demanda máxima de producto. Sólo se puede vender una determinada cantidad máxima estimada de cada producto. x1 ≤ 3.000 x2 ≤ 1.000 x3 ≤ 5.000 x4 ≤ 2.000 x5 ≤ 1.500 x6 ≤ 1.500 x7 ≤ 1.600

3.

No negatividad de las variables. x1, x2, x3, x4 ≥ 0

Función objetivo: Se debe maximizar el margen total o la suma de los márgenes de cada estilo. Max(z) = x1 + 2x2 + x3 + 1,5x4 + 1,25x5 + 1,1x6 + 1,2x7 La entrada de datos y la solución de este problema, en el formato estándar Solver, se muestran a continuación. La definición del problema en el formato Excel sería:

224

© Ediciones Pirámide

Modelización de problemas de PL (I) CUADRO 6.1 Formulación del ejemplo 6.1

El cuadro de diálogo del Solver sería:

© Ediciones Pirámide

225

Decisiones empresariales con hoja de cálculo CUADRO 6.2 Cuadro de diálogo del Solver del ejemplo 6.1

La solución para este problema directamente en la hoja de cálculo es: CUADRO 6.3 Solución del ejemplo 6.1

226

© Ediciones Pirámide

Modelización de problemas de PL (I) Según la solución que ofrece Solver, los ingresos máximos serían 14.182,73 €, como puede verse en el cuadro 6.3. El informe de sensibilidad del ejemplo 6.1 sería el siguiente: CUADRO 6.4 Análisis de sensibilidad del ejemplo 6.1

Las horas máximas que podían utilizarse se han agotado, ya que se trabajará durante 7.500 horas. En cuanto a las restricciones de demanda, en todas ellas se produce el máximo menos en las camisas del estilo 4. Por este motivo, en cada estilo de camisa se estaría dispuesto a pagar el importe que aparece en el precio sombra si demandase una unidad adicional de ese estilo de camisa; en el caso del estilo de camisa 4, al no estar saturado, el precio sombra es 0. Respecto a las limitaciones de horas, habría que considerar que si se dispusiese de una hora adicional de trabajo, los ingresos aumentarían en 1 €. Por tanto, el importe máximo a pagar por una hora adicional de mano de obra sería 1 €. Los aumentos y disminuciones permisibles de las restricciones nos indican cuánto pueden aumentar o disminuir, respectivamente, los coeficientes del término independiente de la restricción, sin que varíen las variables de la solución óptima.

© Ediciones Pirámide

227

Decisiones empresariales con hoja de cálculo

EJEMPLO 6.2. Plan energético En el país de A se tiene una gran concienciación del problema del calentamiento del planeta. Por ello, han decidido elaborar un plan energético. Este plan consiste en limitar las emisiones de CO2 al mínimo coste posible, además de tener en cuenta otras restricciones. Los tipos de energía considerada, sus costes de producción en euros por MWh y la emisión de CO2 en Tm/MWh figuran en la siguiente tabla: TABLA 6.2 Tipos de energía y sus costes

Hidráulica Nuclear Carbón Fuel / Gas Ciclo combinado Cogeneración Eólica Solar fotovoltaica Biomasa/Biogas

Coste fijo €/MWh

Coste variable3 €/MWh

Emisión CO2 Tm/MWh

36,00 26,37 16,67 12,00 11,73 12,02 80,00 420,00 14,40

3,00 18,00 58,16 57,25 56,91 50,00 4,00 4,00 60,00

0 0 0,929 0,771 0,350 0,340 0 0 0

El país de A consume 1.500.000 MWh al año. Las capacidades de producción de las distintas fuentes son suficientes para cubrir la demanda de energía. Sin embargo, algunos tipos de energía están muy limitados, siendo sus capacidades máximas las siguientes: TABLA 6.3 Capacidades máximas Capacidad MWh

Hidráulica Cogeneración Eólica Solar fotovoltaica Biomasa/Biogas

328.000 112.000 146.000 2.500 99.000

3 Incluye el coste de los combustibles, de operación y mantenimiento y el coste de los derechos de emisión del CO2.

228

© Ediciones Pirámide

Modelización de problemas de PL (I) Por razones sociales o estratégicas, el Gobierno ha decidido que: — Se debe producir un máximo del 16 % de la energía procedente de la energía nuclear. — Se debe producir un mínimo del 5 % de la energía procedente de cogeneración. — Se debe producir un mínimo del 7 % de la energía procedente de la eólica. El país A se ha comprometido en el protocolo de Kyoto a tener unas emisiones máximas de CO2 al año de 250.000 Tm. Se desea calcular qué cantidad de tipos de energía se debe producir de forma que se minimice el coste. Variables: xi: MWh producidos a partir de la energía procedente del tipo i, donde: i = {H = Hidráulica; N = Nuclear; C = Carbón; FG = Fuel/gas; CC = Ciclo combinado; CO = Cogeneración; E = Eólica; S = Solar fotovoltaica; B = Biomasa/biogas}. Restricciones: 1.

Capacidad de producción de algunos tipos de energía. Algunos tipos de energía tienen limitaciones a la hora de producirse: xH ≤ 328.000 xCO ≤ 112.000 xE ≤ 146.000 xS ≤ 2.500 xB ≤ 99.000

2.

Restricciones sociales o estratégicas. El Gobierno ha decidido establecer una serie de políticas a la hora de producir. xN = 0,16 × 1.500.000 xCO ≥ 0,05 × 1.500.000 xE ≥ 0,07 × 1.500.000

© Ediciones Pirámide

229

Decisiones empresariales con hoja de cálculo 3.

Producción anual para cubrir la demanda. El consumo energético que tiene el país. xH + xN + xC + xFG + xCC + xCO + xE + xS + xB = 1.500.000

4.

Emisión máxima CO2. El máximo de emisión posible, según establece el protocolo de Kyoto. 0,929xC + 0,771xFG + 0,350xCC + 0,340xCO ≤ 250.000

Función objetivo: Se debe minimizar el coste de producción de los diferentes tipos de energía. Min(z) = 3,00xH + 18,00xN + 58,16xC + 57,25xFG + 56,91xCC + + 50,00xCO + 4,00xE + 4,00xS + 60,00xB La entrada de datos y la solución de este problema, en el formato estándar Solver, se muestran en el cuadro 6.5. La definición del problema en el formato Excel sería: CUADRO 6.5 Formulación del ejemplo 6.2

230

© Ediciones Pirámide

Modelización de problemas de PL (I) CUADRO 6.5 (continuación)

El cuadro de diálogo del Solver sería: CUADRO 6.6 Cuadro de diálogo del Solver del ejemplo 6.2

La solución para este problema es: © Ediciones Pirámide

231

Decisiones empresariales con hoja de cálculo CUADRO 6.7 Solución del ejemplo 6.2

232

© Ediciones Pirámide

Modelización de problemas de PL (I) Una vez solucionado el problema, el análisis de sensibilidad que proporciona Solver es el siguiente: CUADRO 6.8 Análisis de sensibilidad del ejemplo 6.2

La solución del Solver supone un coste de 49.917.049 € para producir 1.500.000 MWh en un año. Obsérvese que no se produciría energía procedente del carbón ni de fuel/gas. De los tipos de energía que tienen limitada su capacidad de producción, en todos ellos se produce al máximo, excepto en el caso de Biomasa, que se producen 66.014,29 de los 99.000 MWh posibles (al 66,68 % de su capacidad). En cuanto a las restricciones del gobierno, se produce el 16 % de energía con procedencia nuclear; sobre el mínimo del 5 % de cogeneración se producen 112.000 MWh, que suponen un 7,46 % de la producción, y sobre el mínimo del 7 % de energía eólica se producen 146.000 MWh, que son un 9,73 % de la producción total. Las emisiones de CO2 son exactamente las toneladas máximas que se pueden emitir cumpliendo con el protocolo de Kyoto. © Ediciones Pirámide

233

Decisiones empresariales con hoja de cálculo En cuanto a los costes variables de cada tipo de energía, habría que considerar lo siguiente: — La energía hidráulica que tiene un coste variable de 3,00 €/MWh se seguirá utilizando en la producción siempre y cuando este coste no pase de 60,00 €/MWh. — La energía nuclear, cuyo coste variable es de 18,00 €/MWh, se seguiría utilizando sea cual sea su coste. — La energía procedente del carbón no se utiliza; sólo se utilizaría si se disminuye su coste variable en 6,36 €/MWh como mínimo; es decir, si su coste variable fuese menor que 51,80 €/MWh. — La energía procedente del fuel o del gas no se utiliza, sólo se utilizaría si se disminuye su coste variable en 4,05 €/MWh como mínimo, es decir, si su coste variable fuese menor que 53,19 €/MWh. — La energía procedente de ciclo combinado con un coste variable de 56,91 €/MWh se emplearía siempre que dicho coste esté comprendido entre 49,70 y 58,75 €/MWh. — La energía procedente de la cogeneración se producirá siempre que el coste variable sea menor que 56,99 €/MWh. — En el caso de la energía eólica y solar fotovoltaica, que tienen un coste variable reducido de 4,00 €/MWh, se empleará la energía procedente de estas dos fuentes siempre que su coste variable sea menor que 60,00 €/MWh, lo que supone que son fuentes muy interesantes, ya que se seguiría produciendo aun con incrementos muy relevantes en su coste variable. — Algo parecido sucede con la energía que procede de la biomasa o biogas, para la que cualquier coste variable por encima de 56,91 €/MWh resulta interesante para la producción de energía. Respecto a las limitaciones que existen en las capacidades de producción para cada tipo de energía habría que considerar lo siguiente: — De energía hidráulica se está produciendo al 100 % de su capacidad máxima, que son 328.000 MWh. Si se quiere producir un MWh más con este tipo de energía podría pagarse hasta en 57,00 €/MWh (precio sombra). Actualmente el coste fijo y variable supone un total de 39,00 €/MWh, con lo cual, si se pudieran producir más MWh a este coste sería muy interesante, ya que se reduciría el coste de producción en la diferencia 18,00 €/MWh. Interesaría incrementar la producción con este tipo de energía hasta los 394.014 MWh. — Con la energía producida con cogeneración sucede algo parecido. Se está empleando su capacidad al 100 %, produciendo 112.000 MWh. Para producir un MWh más con cogeneración podría pagarse hasta 7,00 €/MWh de coste total, muy inferior al actual coste total, que asciende 62,02 €/MWh, con lo que parece poco probable que se pueda ampliar la capacidad de

234

© Ediciones Pirámide

Modelización de problemas de PL (I) producción de este tipo de energía, ya que sería poco rentable o bien debería aplicarse algún tipo de subvención. — Con la eólica encontramos resultados similares de nuevo. Se emplea toda la capacidad que supone la producción de 146.000 MWh. Por el incremento de capacidad de producción de un MWh se podría pagar hasta 56,00 €/MWh de coste total, lo que supone una cantidad muy inferior al coste actual, que asciende a 84,00 euros. Si se quisiera incentivar la implantación de capacidad adicional de este tipo de generación de energía, una medida posible sería subvencionar por el gobierno la diferencia de costes (84,00 − 56,00), es decir, 28,00 €/MWh de capacidad de producción. A este coste de 56,00 €/MWh interesaría incrementar la capacidad de producción de energía eólica hasta los 212.014 MWh. — Con la energía solar fotovoltaica nos encontramos con la misma situación de nuevo. Se produce al 100 % de la capacidad, lo que conlleva 2.500 MWh. Interesaría incrementar la producción de energía solar hasta los 68.514 MWh siempre que el coste total por MWh no exceda de 56,00 €, coste muy por debajo del actual, que asciende a 424,00 €/MWh, lo cual es poco probable salvo que se aplique algún tipo de subvención. — La producción de energía con biomasa o biogas no utiliza el 100 % de su capacidad. Se estaría utilizando el 66 %, resultado coherente, ya que esta fuente de energía es la que tiene el mayor coste variable. En cuanto a las restricciones gubernamentales: — Se establece un 16 % de producción de energía nuclear, lo que coincide con el resultado que se aporta en la solución. Merece la pena considerar que la disminución de coste por incrementos de un 1 MWh en la producción de energía de origen nuclear es de 42,00 €. — En cuanto al mínimo del 5 % de cogeneración se producen 112.000 MWh, que suponen un 7,46 % de la producción. — Sobre el mínimo del 7 % de energía eólica se producen 146.000 MWh, que son un 9,73 % de la producción total. Se establece que la producción sea de 1.500.000 MWh, y esto es lo que se planifica. El precio sombra de esta restricción establece que, por cada MWh adicional que se quiera producir, el coste se incrementa en 60 €. Las emisiones de CO2 se limitan a 250.000 Tm y el resultado de la planificación de producción de energía establece que estas toneladas serán las emisiones previstas, si bien podrían reducirse a 238.455 Tm con un coste adicional por Tm de 8,83 €/Tm. También se podría considerar que se podrían comprar Tm adicionales de emisión de CO2 y el precio que debería pagarse por Tm no debería exceder los 8,83 €/Tm.

© Ediciones Pirámide

235

Decisiones empresariales con hoja de cálculo

6.4. SELECCIÓN DE PROCESOS En los modelos de selección de procesos el problema consiste en planificar una serie de actividades (de producción, transporte, etc.), pero con la novedad de que existen distintas formas de llevarlas a cabo (distintos procesos de fabricación, rutas alternativas, etc.). Además, se considera una serie de limitaciones de recursos, de forma que cada actividad compite por la cantidad disponible del recurso, de acuerdo con la eficiencia relativa de su correspondiente proceso. En sistemas de producción, el problema consiste en determinar cuánto hay que producir de cada producto mediante cada proceso, con el objeto de optimizar la función objetivo (costes, beneficios, etc.) respetando las restricciones de limitaciones de recursos, producción mínima y máxima, etc. La formulación general de este tipo de problemas es del tipo: K

Min(z) = ∑

n

∑ ckj xkj

k=1 j=1

sujeto a: K

∑ xkj ≥ Dj

∀j∊{1, 2, ..., n}

k=1 K

∑ xkj ≤ Uj

∀j∊{1, 2, ..., n}

k=1

Disponibilidad de recursos: K

n

∑ ∑ aikj xkj ≤ bi

∀i∊{1, 2, ..., m}

xkj ≥ 0

∀k∊{1, 2, ..., K}

k=1 j=1

∀j∊{1, 2, ..., n} donde: xkj: Cantidad del producto j producida por el proceso k (j = 1, 2, ..., n; k = 1, 2, ..., K). ckj: Coste variable unitario de producir una unidad del producto j por el proceso k. Dj: Producción mínima requerida del producto j. Uj: Producción máxima requerida del producto j. aikj: Número de unidades del recurso i utilizadas para producir una unidad del producto j por el proceso k. bi: Cantidad disponible del recurso i (i = 1, 2, ..., m).

236

© Ediciones Pirámide

Modelización de problemas de PL (I)

EJEMPLO 6.3. Producción de libros La editorial AUSA se dedica a la producción de libros de texto de Economía y de Organización de Empresas para bachillerato. Esta editorial encarga a los autores los contenidos de los libros y luego los envía a un diseñador gráfico, que diseña las cubiertas y el interior del libro. Una vez diseñado hay que proceder a la impresión del texto y de las cubiertas. Esta impresión, si es necesario, puede encargarla a la imprenta ESTAMPASA, que luego les envía, ya impresos y cortados, los materiales para la encuadernación final. AUSA debe producir el mismo número de libros de Economía que de Organización de Empresas. AUSA paga al diseñador 1.000 euros al año por el diseño de los dos libros (un libro suele tener 150 páginas), y cuenta con una capacidad de impresión de 300 páginas por hora, operando 240 días al año y 8 horas diarias. Para cortar el papel impreso cuenta con una capacidad de 400 páginas por hora y, para encuadernar, 18 libros al día. El coste por cada libro es de 14 euros. Cuando AUSA encarga a ESTAMPASA la impresión y el corte de cada libro se incrementa el coste un 25 %. Cada libro lo vende AUSA a 40 euros. Determine el número de libros que proporciona a AUSA el máximo beneficio anual. Variables: xij: Número de libros de texto de i = {1 = Economía; 2 = Organización de empresas} que produce j = {1 = AUSA únicamente; 2 = AUSA con subcontratación a ESTAMPASA}. Restricciones: 1.

De impresión: 150 x11 + 150x21 ≤ 300 × 240 × 8 o también puede hacerse según el número de páginas: x11 + x21 ≤ (300 × 240 × 8)/150

2.

Cortado: 150x11 + 150x21 ≤ 400 × 240 × 8

3.

Encuadernación: x11 + x21 + x12 + x22 ≤ 18 × 240

© Ediciones Pirámide

237

Decisiones empresariales con hoja de cálculo 4.

Igualdad en el número de libros de Economía y de Organización de Empresas: x11 + x12 = x21 + x22

5.

No negatividad de las variables: x11, x12, x21, x22 ≥ 0

Función objetivo: Se desea maximizar el margen de AUSA. Max(z) = (40 − 14)x11 + (40 − 14)x21 + [40 − (14 × 1,25)]x12 + + [40 − (14 × 1,25)]x12 − 1.000 La entrada de datos y la solución de este problema, en el formato estándar Solver, se muestran a continuación. La definición del problema en el formato Excel sería: CUADRO 6.9 Formulación del ejemplo 6.3

238

© Ediciones Pirámide

Modelización de problemas de PL (I) El cuadro de diálogo del Solver sería: CUADRO 6.10 Cuadro de diálogo del Solver del ejemplo 6.3

La solución para este problema es: CUADRO 6.11 Solución del ejemplo 6.3

© Ediciones Pirámide

239

Decisiones empresariales con hoja de cálculo Se van a producir 2.160 libros de cada tipo: Economía y Organización de Empresas. De ellos, todos los de Organización de empresas serán fabricados íntegramente por AUSA, mientras que de Economía AUSA fabricará 1.680 libros y subcontratará con ESTAMPASA 480. El margen obtenido por la producción y venta de estos libros será de 109.640 euros. AUSA se ve obligada a subcontratar porque no tiene capacidad de impresión. La limitación de libros a producir y vender viene dada por la capacidad de encuadernación, ya que la impresión y el cortado pueden ser subcontratados. Una vez solucionado el problema, el análisis de sensibilidad que proporciona Solver es el siguiente: CUADRO 6.12 Análisis de sensibilidad del ejemplo 6.3

6.5. BLENDING O MEZCLA En sistemas de producción, los problemas de blending surgen cuando es necesario mezclar varios materiales para obtener un producto final que cumpla una serie de especificaciones. El problema consiste en determinar cuál es la mezcla más barata que cumple con todos los requerimientos o especificaciones. Algunos problemas de mezcla los encontramos en empresas de refino, minerales, fibras, alimentación y fertilizantes, etc. También pueden encontrarse problemas de blending en otras áreas funcionales de la empresa. Por ejemplo, cuando se desea encontrar la «mezcla» óptima de activos financieros en problemas de inversión, o la de medios para una campaña publicitaria. Para formular el problema de PL supondremos que hay n productos y m especificaciones. Además, en los casos que planteamos aquí, es necesario que cada

240

© Ediciones Pirámide

Modelización de problemas de PL (I) propiedad se obtenga por combinación lineal de las propiedades del material utilizado. No siempre los problemas de mezcla resultan en ecuaciones lineales. Cuando esto sucede deben utilizarse restricciones no lineales; aunque a veces sí sea posible linealizarlas, ello no lo analizaremos en este capítulo. La formulación general de este tipo de problemas puede escribirse como: n

Min(z) = ∑ cjxj j=1

sujeto a: n

∑ aijxj j=1

[]

≤ = bi ≥

∀i∈{1, 2, ..., m}

n

n

j=1

j=1

∑ xj = 1, también podría ser ∑ xj = Q El lado derecho de esta última restricción representa la producción de una unidad de la mezcla final de una cantidad Q determinada. En ocasiones (cuando hay pérdida, por ejemplo) se sustituye esta última restricción por: n

n

j=1

j=1

∑ pj xj = 1, que también podría ser ∑ pj xj = Q donde pj es la proporción (en tanto por uno) aprovechable del material. Donde: xj: Cantidad de material j utilizado por unidad de producto. cj: Coste unitario de material j. aij: Contribución de una unidad de material j al valor de la propiedad i (i = 1, ..., n). bi: Especificación requerida de la propiedad i del producto. La formulación anterior admite, como veremos, algunas variantes. EJEMPLO 6.4. Sociedad de Bolsa Una sociedad de Bolsa se ha especializado en renta fija. Entre los posibles activos de renta fija considerados están los siguientes, con sus correspondientes tipos de interés, plazo de maduración (en meses) y riesgo de impago (en probabilidad de impago). © Ediciones Pirámide

241

Decisiones empresariales con hoja de cálculo TABLA 6.4 Características de los activos Tipo de interés

Plazo (meses)

Riesgo impago

A

Letras del Tesoro

2,5 %

12

0%

B

Bonos Estado

4%

60

0%

C

Pagarés empresa 1.ª fila

5%

24

1%

D

Deuda alto riesgo

7%

36

5%

La sociedad de Bolsa quiere componer una cartera tipo de 2,5 millones de euros con la máxima rentabilidad esperada con un plazo de maduración entre 30 y 40 meses y con un riesgo de impago inferior al 1 %. En todo caso, quiere tener por lo menos un 60 % de deuda pública (las Letras del Tesoro y los Bonos del Estado son Deuda Pública) y que la deuda de alto riesgo no sea superior al 3 % de la cartera. Variables: xi: Nos indica los euros de cada activo de renta fija i que vamos a invertir, donde: i = {A = Letras del Tesoro, B = Bonos Estado, C = Pagarés empresa 1.ª fila y D = Deuda alto riesgo}. Restricciones: 1.

Composición máxima de la cartera. Se quiere componer una cartera tipo de 2,5 millones de euros. xA + xB + xC + xD = 2.500.000

2.

Plazo de maduración. El plazo de maduración debe ser entre 30 y 40 meses. 12xA + 60xB + 24xC + 36xD ≥ 30 (xA + xB + xC + xD) 12xA + 60xB + 24xC + 36xD ≤ 40 (xA + xB + xC + xD)

3.

Riesgo. Debe haber un riesgo de impago inferior al 1 %. 0xA + 0xB + 0,01xC + 0,05xD ≤ 0,01 (xA + xB + xC + xD)

242

© Ediciones Pirámide

Modelización de problemas de PL (I) 4.

Preferencias en la composición. Se quiere por lo menos un 60 % de deuda pública (Letras y Bonos) y que la deuda de alto riesgo no sea superior al 3 % de la cartera. xA + xB ≥ 0,6 (xA + xB + xC + xD) xD ≤ 0,03 (xA + xB + xC + xD)

Función objetivo: Se trata de maximizar la rentabilidad de la cartera, y para ello se debe saber qué cantidad de dinero se invierte en cada tipo de activo de renta fija. Max(z) = 0,025xA + 0,04xB + 0,05xC + 0,07xD La entrada de datos y la solución de este problema, en el formato estándar Solver, se muestran a continuación. La definición del problema, en el formato Excel sería: CUADRO 6.13 Formulación del ejemplo 6.4

© Ediciones Pirámide

243

Decisiones empresariales con hoja de cálculo CUADRO 6.13 (continuación)

El cuadro de diálogo del Solver sería:

CUADRO 6.14 Cuadro de diálogo del Solver del ejemplo 6.4

244

© Ediciones Pirámide

Modelización de problemas de PL (I) La solución para este problema es:

CUADRO 6.15 Solución del ejemplo 6.4

© Ediciones Pirámide

245

Decisiones empresariales con hoja de cálculo El análisis de sensibilidad obtenido es: CUADRO 6.16 Análisis de sensibilidad del ejemplo 6.4

Según el Solver, la rentabilidad máxima que puede conseguir con su cartera de 25.000.000 € es igual a 111.718,75 €. Se observa cómo se ha invertido en todos los tipos de activos. En cuanto a las restricciones sobre el mínimo de Deuda Pública y el máximo de Deuda de alto riesgo, ambas se cumplen, invirtiendo 1.500.000 € en el primer caso, y 44.583,33 € en el segundo. Si se quisiese aumentar una unidad de Deuda Pública, los ingresos caerían 0,02 €, mientras que, si se aumentase la Deuda de alto riesgo un 1 %, los ingresos no cambiarían.

EJEMPLO 6.5. Producción de tomates enlatados La Empresa de Tomates Universales de Murcia, S.A. (ETUMUSA) debe planificar la producción y venta de tomates de lata para la próxima campaña. A estas fechas de la temporada, ya se tiene una idea precisa de la producción y coste que los tomates tendrán en la próxima recogida durante el verano. Según las estimaciones de los técnicos de ETUMUSA, que poseen numerosos años de experiencia, la cosecha y el precio de la próxima campaña de los agricultores que generalmente contratan con ETUMUSA son los siguientes, en función de la calidad o grado del tomate:

246

© Ediciones Pirámide

Modelización de problemas de PL (I) TABLA 6.5 Característica de la demanda Grado

Tm ofertadas

Precio/kg

A

2.000

0,40

B

4.000

0,30

C

6.000

0,25

D

1.000

0,10

Por otra parte, nuestro departamento de ventas ha estimado que la capacidad de ventas de la red comercial de ETUMUSA es la siguiente, de acuerdo con los tipos de tomate que se ofrecen y conforme a los precios que se consideran recomendables. TABLA 6.6 Capacidad de ventas Tipo

Tm

Precio/kg.

Infinita

0,80

Triturado

3.000

0,55

Troceado

2.000

0,60

Entero

Antes de elaborar el plan de producción se obtienen los siguientes datos del departamento de calidad y producción. TABLA 6.7 Niveles de calidad en origen y destino Calidad de los tomates en origen

© Ediciones Pirámide

Calidad de los tomates en destino

Grado

Nivel de calidad ofertado

Tipo

Nivel requerido

A

9

Entero

7

B

6

Triturado

4

C

5

Troceado

5

D

2

247

Decisiones empresariales con hoja de cálculo El departamento de calidad nos explica que el grado A corresponde a los mejores tomates, a los que se les da una puntuación de 9, mientras que el grado D son los peores tomates, a los que se les da una puntuación de 2. Las latas de tomates enteros deben tener un grado mínimo de 7, las de triturado de 4, mientras que las latas de tomates troceados es necesario que tengan un grado mínimo de 5. Todos los tipos de tomate se envasan en latas que contienen un kilo de tomates, y aunque los sistemas de producción son muy modernos se producen mermas durante el tratamiento y envase de los tomates: un 1 % para los tomates enteros, un 2 % para triturado y un 1,5 % para el troceado. El coste de envasar, añadir aditivos y embalar los diferentes tipos de tomates tiene un coste de 0,08 €/kg para los tomates enteros, 0,06 €/kg para el triturado y 0,06 €/kg para el troceado. ETUMUSA desea maximizar el margen bruto. Variables: xij: Nos indica los kilos de tomates de grado tipo i utilizados en la elaboración de tomate del tipo j, donde: i = {A = tomates de grado A, B = tomates de grado B, C = tomates de grado C, y D = tomates de grado D}. j = {Entero = tomates enteros, Triturado = tomates triturados, y Troceado = tomates troceados}. xj: Kilos de tomates elaborados tipo j. Restricciones: 1.

Oferta máxima. Puesto que sólo podemos comprar una cantidad máxima de cada tipo de tomates, tenemos que tener en cuenta que los tomates de cada calidad para elaborar cada tipo de producto no pueden superar esa cantidad máxima. xA − Entero + xA − Triturado + xA − Troceado ≤ 2.000.000 xB − Entero + xB − Triturado + xB − Troceado ≤ 4.000.000 xC − Entero + xC − Triturado + xC − Troceado ≤ 6.000.000 xD − Entero + xD − Triturado + xD − Troceado ≤ 1.000.000

2.

248

Cantidad de producto. En el proceso de producción se produce una merma que debe considerarse: © Ediciones Pirámide

Modelización de problemas de PL (I) xEntero = (1 − 0,01)(xA − Entero + xB − Entero + xC − Entero + xD − Entero) xTriturado = (1 − 0,02)(xA − Triturado + xB − Triturado + xC − Triturado + xD − Triturado) xTroceado = (1 − 0,015)(xA − Troceado + xB − Troceado + xC − Troceado + xD − Troceado) 3.

Demanda. Puesto que el departamento de ventas ha hecho una estimación de las ventas máximas que se esperan para la próxima campaña, tenemos que buscar que lo que se elabore de cada tipo de producto sea como máximo la demanda estimada, aunque normalmente la restricciones de demanda son para que lo producido sea al menos la demanda. Como para los tomates enteros la estimación de demanda es infinita, no se correspondería restricción alguna. xTriturado ≤ 3.000.000 xTroceado ≤ 2.000.000

4.

Restricciones de calidad requeridas para cada tipo de producto. Hay que tener en cuenta que cada tipo de tomate tiene una calidad y que cada producto que se elabora debe tener al menos una determinada calidad, por lo que tenemos que buscar que la combinación de tipos de tomates nos dé al menos la calidad mínima exigida para cada producto. 9xA − Entero + 6xB − Entero + 5xC − Entero + 2xD − Entero ≥ 7xEntero 9xA − Triturado + 6xB − Triturado + 5xC − Triturado + 2xD − Triturado ≥ 5xTriturado 9xA − Troceado + 6xB − Troceado + 5xC − Troceado + 2xD − Troceado ≥ 2xTroceado

Función objetivo: El margen bruto que tratamos de maximizar está compuesto por los ingresos procedentes de la venta de los productos elaborados y por dos tipos de gastos, que son los de compra de los tomates para la producción y los de envasado de cada tipo de producto elaborado. Max(z) = 0,80xEntero + 0,55xTriturado + 0,60xTroceado − − 0,40(xA − Entero + xA − Triturado + xA − Troceado) − 0,30(xB − Entero + xB − Triturado + xB − Troceado) − − 0,25(xC − Entero + xC − Triturado + xC − Troceado) − 0,10(xD − Entero + xD − Triturado + xD − Troceado) − − 0,08xEntero − 0,06xTriturado − 0,06xTroceado © Ediciones Pirámide

249

Decisiones empresariales con hoja de cálculo La entrada de datos y la solución de este problema, en el formato estándar Solver, se muestran a continuación. La definición del problema en el formato Excel sería: CUADRO 6.17 Formulación del ejemplo 6.5

250

© Ediciones Pirámide

Modelización de problemas de PL (I) El cuadro de diálogo del Solver sería: CUADRO 6.18 Cuadro de diálogo del Solver del ejemplo 6.5

La solución del problema es: CUADRO 6.19 Solución del ejemplo 6.5

© Ediciones Pirámide

251

Decisiones empresariales con hoja de cálculo CUADRO 6.19 (continuación)

Según muestra la solución del cuadro 6.19, ETUMUSA debería producir 6.155.440 kg de tomate entero, 3.000.000 kg de tomate triturado y 2.000.000 kg de tomate troceado. Esta producción y venta generaría un margen de 3.804.593 euros. Para poder producir estos tomates envasados necesitará comprar 2.000.000 kg de tomates tipo A, 4.000.000 kg de tomates tipo B, (217.617 + 2.111.986 + 1.979.695) kg

252

© Ediciones Pirámide

Modelización de problemas de PL (I) de tomate tipo C y (949.239 + 50.761) kg de tomate tipo D. Estas compras le supondrán un coste de 3.177.324 euros. El informe de sensibilidad del ejemplo 6.5 sería el siguiente: CUADRO 6.20 Análisis de sensibilidad del ejemplo 6.5

EJEMPLO 6.6. Producción y comercialización de vinos La empresa Vinos de la Comunidad Autónoma de Madrid (VICAM) ha decidido producir y comercializar un vino con denominación de origen de Madrid. Para ello, se han reunido con unos enólogos y con algunos licenciados en Administración de Empresas que actúan como consultores. © Ediciones Pirámide

253

Decisiones empresariales con hoja de cálculo Dadas las características del terreno, los enólogos creen que un buen vino debería tener los siguientes tipos de uva en las siguientes proporciones: — Un máximo del 40 % de uva tempranillo de cepa joven. — Un mínimo del 20 % y hasta un 40 % de uva tempranillo de cepa vieja. — Entre un 10 % y un 30 % de garnacha. Los recién licenciados en Administración y Dirección de Empresas han averiguado que el kilo de uva de las variedades que piden los enólogos estará en los siguientes precios: — Tempranillo cepa joven: 1,2 euros/kilo. — Tempranillo cepa vieja: 2,0 euros/kilo. — Garnacha: 2,5 euros/kilo. Se sabe que se necesitan aproximadamente 2 kilos de uva para producir un litro de vino. Un estudio de mercado ha señalado que se podrían vender un máximo de 1.000.000 de botellas de vino (las botellas de vino son de ¾ de litro) cosechero (el que no pasa por barrica) y otro millón de botellas como máximo de crianza (el que lleva al menos un año en barrica). Los costes de embotellamiento son de 0,5 euros por botella. El coste imputable a la conservación en barrica de roble, por cada año y litro, es de 0,7 euros. El coste financiero se estima del 7 % anual del precio de venta para el vino de crianza. Dada la calidad del vino, mercado al que va dirigido y número de botellas que se van a producir, se estima que el precio de venta del vino cosechero será de 3 euros/botella y del crianza de 4,5 euros. Los directivos de VICAM quieren saber la cantidad a producir y vender de vino cosechero y crianza que maximiza el beneficio. También desean saber la cantidad que deben comprar de cada tipo de uva. Variables: xi: Kg a comprar de cada tipo de uva i, donde: i = {1 = uva tempranillo cepa joven, 2 = uva tempranillo cepa vieja, 3 = uva garnacha}. yj: Número de botellas a producir y vender de vino j, donde: j = {1 = vino cosechero, 2 = vino crianza}.

254

© Ediciones Pirámide

Modelización de problemas de PL (I) Restricciones: 1.

Cantidad permitida de mezcla. La mezcla sólo permite cierta cantidad de cada tipo de uva. Un máximo de 40 % puede pertenecer a la uva de tempranillo de cepa joven. x1 ≤ 0,40(x2 + x3 + x4) Entre un 20 % y un 40 % puede pertenecer a la uva de tempranillo de cepa vieja. x2 ≥ 0,20(x2 + x3 + x4) x2 ≤ 0,40(x2 + x3 + x4) Entre 10 % y 30 % puede pertenecer a la uva de tempranillo de cepa vieja. x3 ≥ 0,10(x2 + x3 + x4) x3 ≤ 0,30(x2 + x3 + x4)

2.

Ecuaciones de Balance. El número de botellas de vino producidas debe ser igual a los kilogramos consumidos. Con 2 kg de uva se produce 1 litro de vino, luego para una botella de 0,75 litros se necesitan 1,5 kg de uva. y1 + y2 =

3.

(x2 + x3 + x4) 1,5

Cantidades máximas a vender. Del vino cosechero sólo se puede vender cierta cantidad máxima. y1 ≤ 1.000.000 Del vino de crianza sólo se puede vender cierta cantidad máxima. y2 ≤ 1.000.000

© Ediciones Pirámide

255

Decisiones empresariales con hoja de cálculo Función objetivo: Se debe maximizar el margen procedente de los ingresos por la venta del vino cosechero y vino crianza (3y1 + 4,5y2), y los costes de uva (1,2x1+ 2x2 + 2,5x3), embotellamiento (0,5y1 + 0,5y2), la barrica para el vino crianza (0,7 × 0,75 × y2 = = 0,525y2) y el coste financiero (0,07 × 4,5 × y2 = 0,315y2). Max(z) = (3 − 0,5) × y1 + (4,5 − 0,5 − 0,525 − 0,315) × y2 − (1,2x1 + 2x2 + 2,5x3) La entrada de datos y la solución de este problema, en el formato estándar Solver, se muestran a continuación. La definición del problema en el formato Excel sería: CUADRO 6.21 Formulación del ejemplo 6.6

256

© Ediciones Pirámide

Modelización de problemas de PL (I) CUADRO 6.21 (continuación)

El cuadro de diálogo del Solver sería:

CUADRO 6.22 Cuadro de diálogo del Solver del ejemplo 6.6

La solución del problema es:

© Ediciones Pirámide

257

Decisiones empresariales con hoja de cálculo CUADRO 6.23 Solución del ejemplo 6.6

El análisis de sensibilidad ofrecido por Solver es el siguiente:

258

© Ediciones Pirámide

Modelización de problemas de PL (I) CUADRO 6.24 Análisis de sensibilidad del ejemplo 6.6

Según el Solver, el margen máximo que podríamos obtener es 417.143 €. Para ello utiliza 857.143 kg de uva tempranillo de cepa joven y la misma cantidad de uva tempranillo de cepa viejam así como y 428.571 kg de uva garnacha. Con esta cantidad de uva, se han producido 428.571 botellas de vino cosechero y 1.000.000 de botellas de vino crianza; es decir, de vino cosechero no se ha producido el máximo permitido, que era 1.000.000 de botellas.

6.6. MODELOS APARENTEMENTE NO LINEALES Como vimos en apartados anteriores, la PL solamente trata problemas que pueden describirse en términos de ecuaciones lineales. Sin embargo, existen algunos casos en los que puede conseguirse una buena aproximación a algunas no linealidades. Algunos casos típicos en los que aparecen ecuaciones no lineales son, por ejemplo: — Descuentos realizados sobre ventas al aumentar la cantidad vendida. — Costes unitarios decrecientes cuando se aumenta el volumen de producción (economías de escala). — Situaciones en las que se quiere determinar conjuntamente el precio de venta de un producto y la cantidad que debe producirse. © Ediciones Pirámide

259

Decisiones empresariales con hoja de cálculo — Sistemas de producción en los que los comportamientos son claramente no lineales. Por ejemplo, el output energético de un salto de agua como función de su altura. La cuestión relevante es: ¿cómo podemos saber cuándo se puede utilizar la PL para resolver este tipo de problemas? La respuesta más sencilla es la siguiente: podemos utilizarla cuando la correspondiente función suponga rendimientos decrecientes, esto es, cuando unidades adicionales de la variable que crea la no linealidad supongan una mejora de la función objetivo menos que proporcional.

EJEMPLO 6.7. Fabricante de electrodomésticos (I) Un fabricante de electrodomésticos utiliza como materia prima chapa metálica. Las características de su sistema de producción se resumen en la tabla 6.8.

TABLA 6.8 Características del sistema de producción Necesidad de recursos (horas) por unidad producida Sección

Horas disponibles Prod. 1

Prod. 2

Prod. 3

Prod. 4

Estampado

0,03

0,15

0,05

0,10

400

Perforación

0,06

0,12



0,10

400

Ensamblaje

0,05

0,10

0,05

0,12

500

Acabado

0,04

0,20

0,03

0,12

450

Empaquetado

0,02

0,06

0,02

0,05

400

Se dispone sólo de 2.000 m2 de chapa para el mes en curso. Esta chapa se utiliza en la elaboración de los productos 2 y 4, en cantidades de 2 m2 y 1,2 m2 por unidad, respectivamente. Suponemos que vendemos cada producto a un precio decreciente a medida que pretendemos vender más unidades. También suponemos que el coste es independiente de la cantidad. Estos precios y costes se señalan en las tablas 6.9 y 6.10.

260

© Ediciones Pirámide

Modelización de problemas de PL (I) TABLA 6.9 Precios unitarios de venta según cantidad vendida Producto

Cantidad vendida

Precio venta unitario

Cantidad vendida

Precio venta unitario

Cantidad vendida

Precio venta unitario

1

0 − 1.000

11

1.001 − 3.000

10

3.000 +

9

2

0 − 100

27

101 − 300

25

300 +

23

3

0 − 500

18

501 − 1.500

16

1.500 +

15

4

0 − 200

22

201 − 500

20

500 +

18

TABLA 6.10 Precio de coste y capacidad de producción Producto

Coste variable unitario

Producción mínima

Producción máxima

1

6

1.000

6.000

2

15



3

11

500

3.000

4

14

100

1.000

500

La figura 6.3 exhibe la función de ingresos y beneficios en trazo continuo, mientras que en discontinuo se indica la proyección de la recta del tramo anterior. Obsérvese que tanto la función de ingresos como la de beneficios crecen menos que proporcionalmente. Variables: xkj: Cantidad de producto vendido y producido de j en el tramo k, donde: j = {1 = producto 1, 2 = producto 2, 3 = producto 3, 4 = producto 4}. k = {1 = tramo 1, 2 = tramo 2, 3 = tramo 3}. xj: Cantidad total de producto j producido y vendido. Restricciones: 1.

Ventas máximas posibles para cada tramo. x11 ≤ 1.000 Producto 1 x21 ≤ (3.000 − 1.000) x31 ≤ (∞ − 3.000) = ∞ ⇒ No necesaria

© Ediciones Pirámide

261

Decisiones empresariales con hoja de cálculo

Ingresos beneficios 40.000 35.000

Ingresos

30.000 25.000 20.000 15.000

Beneficios

10.000 5.000 0 1.000

3.000

Cantidad vendida

4.000

{

{

Tramo

2.000

{

0

2

1

3

Figura 6.3. Función de ingresos y beneficios para el producto 1.

Producto 2

Producto 3

Producto 4 2.

262

x12 ≤ 100 x22 ≤ (300 − 100) = 200 x13 ≤ 500 x23 ≤ (1.500 − 500) = 1.000 x14 ≤ 200 x24 ≤ (500 − 200) = 300

Al margen de los precios de venta, los productos no se distinguen. x11 + x21 + x31 = x1

(Producto 1)

x12 + x22 + x32 = x2

(Producto 2)

x13 + x23 + x33 = x3

(Producto 3)

x14 + x24 + x34 = x4

(Producto 4) © Ediciones Pirámide

Modelización de problemas de PL (I) 3.

4.

Disponibilidad de tiempo en las secciones. 0,03x1 + 0,15x2 + 0,05x3 + 0,10x4 ≤ 400

(estampado)

0,06x1 + 0,12x2 +

+ 0,10x4 ≤ 400

(perforación)

0,05x1 + 0,10x2 + 0,05x3 + 0,12x4 ≤ 500

(ensamblaje)

0,04x1 + 0,20x2 + 0,03x3 + 0,12x4 ≤ 450

(acabado)

0,02x1 + 0,06x2 + 0,02x3 + 0,05x4 ≤ 400

(empaquetado)

Disponibilidad de chapa. 2x2 + 1,2x4 ≤ 2.000

5.

Producción mínima. 1.000 ≤ x1 0 ≤ x2 500 ≤ x3 100 ≤ x4

6.

Producción máxima. x1 ≤ 6.000 x2 ≤ 500 x3 ≤ 3.000 x4 ≤ 1.000

7.

No negatividad de las variables. x1, x2, x3, x4 ≥ 0

Función objetivo: Max(z) = (11 − 6)x11 + (27 − 15)x12 + (18 − 11)x13 + (22 − 14)x14

© Ediciones Pirámide

Tramo 1

+ (10 − 6)x21 + (25 − 15)x22 + (16 − 11)x23 + (20 − 14)x24

2

+ (9 − 6)x31 + (23 − 15)x32 + (15 − 11)x33 + (18 − 14)x34

3

263

Decisiones empresariales con hoja de cálculo El problema puede resolverse por PL, porque nunca será optimo producir en el tramo k si no se ha agotado previamente el k − 1. La definición del problema en el formato Excel sería:

CUADRO 6.25 Datos del ejemplo 6.7

CUADRO 6.26 Variables y función objetivo del ejemplo 6.7

264

© Ediciones Pirámide

Modelización de problemas de PL (I) CUADRO 6.27 Restricciones del ejemplo 6.7

El cuadro de diálogo del Solver sería:

© Ediciones Pirámide

265

Decisiones empresariales con hoja de cálculo CUADRO 6.28 Cuadro de diálogo del Solver del ejemplo 6.7

La solución del problema es: CUADRO 6.29 Solución del ejemplo 6.7

266

© Ediciones Pirámide

Modelización de problemas de PL (I) CUADRO 6.29 (continuación)

El análisis de sensibilidad sería: CUADRO 6.30 Análisis de sensibilidad del ejemplo 6.7

© Ediciones Pirámide

267

Decisiones empresariales con hoja de cálculo CUADRO 6.30 (continuación)

Según la solución que proporciona Solver, podemos ver cómo para el tramo 1 se producirían 1.000 unidades del producto 1, 100 uds. de producto 2, 500 uds. de producto 3 y 200 uds. de producto 4, mientras que en el tramo 2 se producirían 2.000 unidades del producto 1, 200 uds. de producto 2, 1.000 uds. de producto 3 y ninguna unidad de producto 4. Por último, en el tercer tramo, las unidades producidas serían 2.444 de producto 1, 144 de producto 2 y 1.500 de producto 3. Del producto 4, como es lógico, no se produce, ya que en el anterior tramo ya se dejó de producir. En cuanto a las restricciones, se aprecia cómo para pasar al tramo siguiente deben igualarse las unidades máximas del tramo anterior, y sólo en el caso del producto 4, en el tramo 2, quedarían disponibles 300 unidades por producir. Respecto a la producción máxima de cada producto, sólo el producto 3 estaría saturado, ya que el resto de productos no alcanza su máximo permitido; de ahí que su precio sombra sea igual a 0. Algo similar ocurre con los mínimos de producción, puesto que para todos los productos el número de unidades es mayor al permitido, con lo que los precios sombra son 0. La restricción de la chapa utilizada refleja que no se consume nada más que 1.129 m2 de chapa, con lo que de nuevo el precio sombra es igual a 0, puesto que no está saturada.

268

© Ediciones Pirámide

Modelización de problemas de PL (I) En las horas disponibles, se aprecia cómo en los casos de estampado y perforación se consumen todas las horas disponibles, por lo que se estaría dispuesto a pagar hasta 22,22 € por una hora adicional de estampado, y hasta 38,89 € por una hora adicional de perforación. EJEMPLO 6.8. Fabricante de electrodomésticos (II) Partimos del ejemplo 6.7, pero ahora suponemos que vendemos cada producto a un mismo precio fijo por unidad, teniendo economías de escala en los costes, tal y como se señala en las tablas 6.11, 6.12 y 6.13: TABLA 6.11 Características del sistema de producción Necesidad de recursos (horas) por unidad producida Sección

Horas disponibles Prod. 1

Prod. 2

Prod. 3

Prod.4

Estampado

0,03

0,15

0,05

0,10

400

Perforación

0,06

0,12



0,10

400

Ensamblaje

0,05

0,10

0,05

0,12

500

Acabado

0,04

0,20

0,03

0,12

450

Empaquetado

0,02

0,06

0,02

0,05

400

Se dispone sólo de 2.000 m2 de chapa para el mes en curso. Esta chapa se utiliza en la elaboración de los productos 2 y 4, en cantidades de 2 m2 y 1,2 m2 por unidad, respectivamente. TABLA 6.12 Costes variables unitarios según cantidad vendida

© Ediciones Pirámide

Producto

Cantidad vendida

Coste variable unitario

Cantidad vendida

Coste variable unitario

Cantidad vendida

Coste variable unitario

1

0 − 1.000

7

1.001 − 3.000

6

3.000 +

5

2

0 − 100

17

101 − 300

15

300 +

13

3

0 − 500

13

501 − 1.500

11

1.500 +

10

4

0 − 200

16

201 − 500

14

500 +

12

269

Decisiones empresariales con hoja de cálculo TABLA 6.13 Precio de venta unitario y capacidad de producción Producto

Precio venta unitario

Producción mínima

Producción máxima

1

10

1.000

6.000

2

25



3

16

500

3.000

4

20

100

1.000

500

La figura 6.4 señala la nueva situación en la que los costes crecen menos que proporcionalmente, pero los beneficios crecen más que proporcionalmente.

Costes/ beneficios 45.000 40.000 35.000 30.000

Costes

25.000 20.000

Beneficios

15.000 10.000 5.000 0 1.000

2.000

4.000

Cantidad producida

{

Tramo

3.000

{

{

0 1

2

3

Figura 6.4. Función de costes y beneficios para el producto 1.

El planteamiento aparente podría ser análogo al ejemplo anterior, pero con diferentes valores en la función objetivo.

270

© Ediciones Pirámide

Modelización de problemas de PL (I) Variables: xkj: Cantidad de producto vendido y producido de j, en el tramo k, donde: j = {1 = producto 1, 2 = producto 2, 3 = producto 3, 4 = producto 4}. k = {1= tramo 1, 2 = tramo 2, 3 = tramo 3}. Función objetivo: Max(z) = (10 − 7)x11 + (25 − 17)x12 + (16 − 13)x13 + (20 − 16)x14

Tramo 1

+ (10 − 6)x21 + (25 − 15)x22 + (16 − 11)x23 + (20 − 14)x24

2

+ (10 − 5)x31 + (25 − 13)x32 + (16 − 10)x33 + (20 − 12)x34

3

Al igual que en el ejemplo 6.1, los supuestos en cuanto a restricciones «no se distinguen». El problema dará una solución incorrecta si pretende resolverse por PL. Tenderá a producir en el tramo más barato k sin antes haber llegado al mismo (desde k − 1) en un tramo más caro de producir. Por ello, el problema no puede resolverse mediante PL y se deben utilizar otras técnicas como Programación entera mixta, que veremos en el capítulo 9.

© Ediciones Pirámide

271

Decisiones empresariales con hoja de cálculo

EJERCICIOS PROPUESTOS Problema de combinación de recursos 1. Problema Universal Airlines: asignación de recursos Universal Airlines está intentando asignar el personal de checking para el vuelo Madrid-Pernambuco. El personal disponible tiene sus preferencias sobre el mostrador en el que quiere estar. Estas preferencias las evalúan de 1 a 3, siendo 1 el mostrador menos preferido y 3 el mostrador más preferido. La siguiente tabla muestra estas preferencias para cada una de las personas: Primera clase

Business class

Turista

Sr. Martínez

1

2

3

Srta. Pérez

3

2

1

Sr. Cano

3

1

2

Sr. Sánchez

2

1

3

Sra. Rodríguez

2

3

1

Personas

Además, Universal Airlines debe considerar que en el mostrador de primera sólo deberá estar una persona, en los mostradores de Business class al menos una persona, y en el de Turista al menos una persona. Se pide que asigne las personas a los mostradores de checking, considerando las preferencias de cada una de ellas. Preguntas 1. 2. 3.

Defina las variables que intervienen en el problema. Defina las restricciones y escríbalas. Defina la función objetivo.

Problemas de blending o mezcla 2. Problema chocolate: mezcla Durante las vacaciones, el Sr. Pérez se ha dado cuenta de que una tienda de chocolate por donde pasaba todos los días estaba siempre llena. Recientemente,

272

© Ediciones Pirámide

Modelización de problemas de PL (I) un amigo suyo que tenía una tienda de comestibles le ha dicho que le sobraban 100 kg de azúcar, 20 kg de almendras y 30 kg de chocolate puro y que está dispuesto a regalárselos. Por Internet ha visto que hay dos tipos de barras de chocolate que gustan muchísimo y sus fórmulas de fabricación: la «crujiente» y la «chocolatada». La primera debe contener en su composición un mínimo de 20 % de almendra y la segunda un mínimo de 10 % de almendra y un 10 % de chocolate. Las barras de chocolate fabricadas pesan 100 gr, y se venden la «crujiente» por 0,25 € y la «chocolatada» por 0,20 €. Formule el modelo de PL que maximice los beneficios esperados del Sr. Pérez. Preguntas 1. 2. 3.

Defina las variables que intervienen en el problema. Defina las restricciones del problema. Defina la función objetivo.

3. Problema Fábrica de Tabacos (NUFATA): mezcla La nueva Fábrica de Tabacos (NUFATA) fabrica tres marcas de cigarrillos con los nombres de marca Ibérico, Lujo Asiático y Superbajísimo en Nicotina. Los tres tipos de cigarrillos se elaboran con una mezcla de cuatro tipos de liga (tipo de tabaco en rama): Cuba, Brasil, Virginia y Extremadura. Para obtener los sabores adecuados es necesario cumplir con las siguientes reglas sobre las mezclas de las ligas: — La marca Ibérico debe contener un mínimo del 60 % de liga Cuba y un máximo del 15 % de liga extremeña. No puede contener liga de Brasil ni de Virginia. — La marca Lujo Asiático debe contener un máximo del 20 % de liga Cuba, entre un 30 y un 50 % de liga Brasil y entre un 30 y un 60 % de liga Virginia, pero nada de liga Extremadura. — La marca Superbajísimo en Nicotina debe contener un mínimo del 80 % de liga Virginia, cualquier cantidad de liga Brasil, y nada de liga Cuba y Extremadura. El Gobierno autónomo, con el fin de preservar la precaria salud de los fumadores, ha decidido forzar a NUFATA para que al menos el 40 % de sus ventas sean de baja nicotina. Este requisito sólo lo cumple la marca Superbajísimo en Nicotina. Los precios de mercado de las ligas son los siguientes por 20 gramos (la cantidad que entra en un paquete): 2 € cuba, 2,4 € Brasil, 2,6 € Virginia y 1 € Extremadura. © Ediciones Pirámide

273

Decisiones empresariales con hoja de cálculo Los precios de venta autorizados para las diferentes marcas son por cajetilla de 20 gramos: 2 € Ibérico, 3 € Lujo Asiático y 3,5 € Superbajísimo en Nicotina. Se desea saber cuánto se debe producir y vender, suponiendo que la cantidad máxima que se puede producir y vender es de 50.000 cajetillas y no tenemos restricciones en materia prima. Preguntas 1. 2. 3.

Defina las variables que intervienen en el problema. Defina las restricciones y escríbalas. Defina la función objetivo.

4. Producción-logística: mezcla El pienso marca «Piu piu» se vende en sacos de 50 kg. El pienso se compone de una mezcla de maíz, trigo y avena. Para que las gallinas a las que va dirigido tengan una alimentación correcta debe tener, al menos, un 30 % de proteínas (en peso), un máximo de 10 % en agua y otro mínimo del 15 % de carbohidratos. Los porcentajes de nutrientes en cada uno de los componentes que intervienen en el pienso son, en peso, los siguientes:

Componente nutricional

Tipo de grano Maíz

Trigo

Avena

Agua

7

9

12

Proteínas

32

27

39

Carbohidratos

18

7

18

Los costes por cada componente son de 0,18 €/kilo para el maíz, 0,15 €/kilo para el trigo y 0,20 €/kilo para la avena. Se desea producir un mínimo de 1.000 sacos de pienso. Dado la mala cosecha de maíz, tan sólo se dispone de 15.000 kilos de este producto. Preguntas 1. 2. 3.

274

Defina las variables que intervienen en el problema para producir los 1.000 sacos indicados. Defina las restricciones y escríbalas. Defina la función objetivo. © Ediciones Pirámide

Modelización de problemas de PL (I) 5. Producción-logística: mezcla (con efectos en la demanda) La Refinería Universal (REU) produce tres tipos de gasolina (súper, sin plomo y sin plomo extra). Cada una de estas gasolinas se produce mezclando tres tipos de crudo (ligero de arabia, argelino y mexicano). Los precios de venta y coste de cada uno de los tipos de gasolina y crudo son los siguientes por barril: Producto

Precio de venta por barril

Gasolina súper

70

Gasolina sin plomo

65

Gasolina sin plomo extra

75

Producto

Precio de venta por barril

Crudo ligero de Arabia

50

Crudo argelino

30

Crudo mexicano

20

La cantidad máxima que se puede comprar de cada tipo de crudo son 5.000 barriles diarios. Los tres tipos de gasolina difieren en el octanaje y en el contenido de azufre. Los requerimientos de octanaje (mínimo) y de azufre (máximo) para cada tipo de gasolina son los siguientes: Producto

Octanaje

Azufre

Gasolina súper

97

1%

Gasolina sin plomo

98

1,5 %

Gasolina sin plomo extra

102

1%

Los contenidos de octanaje y azufre de cada uno de los tipos de crudo son: Producto

Crudo ligero de Arabia

© Ediciones Pirámide

Octanaje

120

Azufre

0,5 %

Crudo argelino

98

1%

Crudo mexicano

85

3,5 %

275

Decisiones empresariales con hoja de cálculo El coste de transformar un barril de crudo en uno de gasolina es de 5 euros. La REU tiene una capacidad de fabricación de 12.000 barriles diarios, y la demanda de gasolinas, salvo los efectos de la publicidad que se especifican más adelante, es la siguiente: Producto

Demanda (barriles/día)

Gasolina súper

3.000

Gasolina sin plomo

2.000

Gasolina sin plomo extra

1.000

La REU ha observado, a través de un estudio de mercado, que tiene la posibilidad de estimular la demanda de estas gasolinas a través de la inversión en publicidad, de tal forma que por cada 0,10 euros diarios gastados en publicidad de un producto, la demanda de ese mismo producto crece en un barril al día. Es decir, un gasto de, por ejemplo, 1 euro al día en publicidad de gasolina sin plomo extra, supone unas ventas adicionales para este tipo de gasolina de 10 barriles al día. La REU pretende maximizar su margen bruto. Preguntas 1. 2. 3.

Defina las variables que intervienen en el problema. Defina las restricciones y escríbalas. Defina la función objetivo.

6. Producción-logística: transporte y mezcla Durante la construcción de una presa se precisan grandes cantidades de materiales necesarios para la producción de varios tipos de hormigón. Estos materiales deben ser transportados para ser mezclados desde cuatro depósitos hasta la planta de mezcla situada en la misma presa. La siguiente tabla muestra las cantidades estimadas y los costes de producir y transportar los materiales desde los depósitos hasta la planta de mezclado: Cantidad (m3)

Coste (€/m3)

Material río A

8.000

3,2

Material río B

16.000

4,5

Material río C

8.000

2,8

Material río D

6.000

4,0

Lugar de depósito

276

© Ediciones Pirámide

Modelización de problemas de PL (I) Los cuatro materiales indicados se utilizan para producir tres tipos diferentes de hormigón. Las necesidades de cada uno de estos tipos distintos de hormigón, los requerimientos de cada material y el coste de efectuar el producto final (mezcla de los materiales, cemento y diferentes aditivos) se reflejan en el siguiente cuadro: Mezcla

Límites (especificaciones)

Coste (€/m3)

Requerimientos (m3)

1

(A + B) ≤ 50 % ; C ≥ 10 % D sin límite

4,8

6.000

2

(A + B) ≤ 60 % ; C ≥ 10 % (C + D) ≤ (A + B)

4,2

15.000

3

A ≥ 20 % (C + D) ≥ 1/2(A + B)

5,4

8.000

Se debe buscar la mezcla óptima de materiales que minimiza el coste total y cumple todos los requerimientos de los diferentes tipos de hormigón para la construcción de la presa. Tenga en cuenta que el resto de los costes son constantes y no pueden ser modificados. Preguntas 1. 2. 3.

Defina las variables que intervienen en el problema. Defina las restricciones y escríbalas. Defina la función objetivo.

7. Financiación-inversión: mezcla Un inversor que tiene 25 millones de euros quiere determinar la mejor cartera de inversión entre renta variable, deuda del estado, renta fija privada y dinero en cuenta corriente. Antes de invertir ha consultado a varias sociedades de valores, y gracias a los comentarios de todas ellas ha llegado a las siguientes conclusiones: a) Las rentabilidades esperadas de estos tipos de activos financieros serán aproximadamente los siguientes en los próximos doce meses: Renta variable: 15 % Deuda del Estado: 12 % Renta fija privada: 13,5 % Cuenta corriente: 11 % © Ediciones Pirámide

277

Decisiones empresariales con hoja de cálculo b) Con el fin de limitar los riesgos en que se incurre invirtiendo en cada uno de los tipos de activos financieros, es conveniente diversificar conforme a las siguientes reglas: — No invertir más del 45 % en renta variable ni más del 10 % en renta fija privada. — No sobrepasar el 75 % en deuda del Estado más renta fija privada. — Tener como mínimo el 5 % en cuenta corriente. Preguntas 1. 2. 3.

Defina las variables que intervienen en el problema. Defina las restricciones y escríbalas. Defina la función objetivo.

8. Financiación-inversión: mezcla La Compañía Financiera Universal (CFU) dispone de 100 millones de euros para invertir. Su objetivo es maximizar la ganancia esperada para el año que viene. Sus posibilidades de financiación son las siguientes: Rentabilidad anual ( %)

Inversión máxima (106 €)

Renta variable

14

40

Letras del tesoro

12

70

Bonos del tesoro

10

30

Renta fija privada

13

20

Aparte de las condiciones de rentabilidad e inversión máxima se considera que, por razones de riesgo, se deben cumplir, adicionalmente, las siguientes condiciones: a) Por lo menos el 30 % de las inversiones deben quedar invertidas en renta variable y letras del tesoro. b) No más del 45 % deben quedar invertidos en bonos del tesoro y renta fija privada. c) No más del 30 % debe quedar invertidos en renta variable y renta fija privada. d) No debe quedar dinero sin invertir.

278

© Ediciones Pirámide

Modelización de problemas de PL (I) Preguntas 1. 2. 3.

Defina las variables que intervienen en el problema. Defina las restricciones y escríbalas. Defina la función objetivo.

9. Marketing: mezcla A la empresa de marketing telefónico Iberiaphone le han solicitado realizar ventas directas por teléfono a tres poblaciones objetivo diferentes: solteros, casados sin hijos y casados con hijos. Las llamadas pueden hacerse durante el día y durante la tarde-noche. Durante el día cada llamada cuesta 0,4 €, mientras que por la noche el coste es de 0,6 €, debido al mayor coste del personal que realiza las llamadas. Sólo un porcentaje de las llamadas realizadas tienen éxito, en el sentido de poder contactar al posible comprador. El cuadro de más abajo indica los porcentajes de éxito de las llamadas en función del momento del día y de la población objetivo.

Día

Tarde-noche

Solteros

10 %

40 %

Casados sin hijos

40 %

50 %

Casados con hijos

70 %

80 %

La empresa que ha encargado el trabajo ha puesto como objetivo conectar a 100 solteros, 100 casados sin hijos y 200 casados con hijos. La propia empresa Iberiaphone tiene un acuerdo con sus teleoperadoras, por el cual durante la tarde-noche tan sólo se pueden hacer como máximo un 40 % del total de llamadas. Plantéese el correspondiente problema con el fin de minimizar el coste del servicio solicitado. Preguntas 1. 2. 3. © Ediciones Pirámide

Defina las variables que intervienen en el problema. Defina las restricciones y escríbalas. Defina la función objetivo.

279

Decisiones empresariales con hoja de cálculo

BIBLIOGRAFÍA Chames, A. y Cooper, W. W. (1961). Management Models and Industrial Applications of Linear Programming, vol. I. John Wiley & Sons. Giró, J. M. y Villalba, D. (1977). A Modular General Purpose Linear-Programming Model Generator. Advances in Operations Research. North Holland: Marc Roubens. Knolmayer, G. (1982). «Computational experiments in the formulation of linear productmix and non-convex production-investment models», Computers & Operations Research, vol. 9, Issue 3, 1982, pp. 207-219. Villalba, D. (1974). Programación por Objetivos. Revista Española de Financiación y Contabilidad, n.º 8, pp. 161-178, abril-junio.

280

© Ediciones Pirámide

7

Modelización de problemas de PL (II)

7.1. MODELOS EN REDES Una red consiste en una serie de nodos conectados por arcos que, a veces, también se denominan conexiones o líneas. Algunos ejemplos de redes serían la red de carreteras, la de ferrocarriles o la formada por las líneas telefónicas. Además de estas redes físicas, existen diversos sistemas que pueden representarse como redes, aunque no exista un lugar físico por donde pase un flujo tangible. En estos casos, los nodos representan estados de un sistema, esto es, el final de una cierta operación, un período de tiempo, etc. Por otra parte, los arcos representan conexiones entre nodos. Estas conexiones pueden ser reales (una carretera uniendo dos ciudades) o ficticias (indicando, por ejemplo, un orden de precedencia entre dos operaciones de manufactura). Además, los arcos pueden ser orientados o bidireccionales o no orientados. En el caso de los arcos orientados, el flujo entre dos nodos conectados tan sólo puede discurrir en una dirección, esto es, desde el nodo «anterior» al nodo «posterior». Los arcos bidireccionales admiten flujos en ambas direcciones. Gráficamente, las redes suelen representarse utilizando las siguientes convenciones: — Los nodos se representan mediante círculos. — Los arcos se representan mediante líneas. — Las direcciones admisibles del flujo a través de un arco se representan mediante puntas de flecha, situadas en el extremo del arco. En la figura 7.1 se representa una red. Esta forma de representar una red se denomina grafo. © Ediciones Pirámide

281

Decisiones empresariales con hoja de cálculo

4

1

0

3

5

2

Figura 7.1. Representación gráfica de una red.

Nuestro interés en los modelos que tienen estructura de red se debe a que la solución de estos problemas puede obtenerse mediante algoritmos especializados que, casi siempre, calculan la solución óptima del problema más rápidamente que el método Simplex. Prácticamente, existe un algoritmo especializado para cada uno de los problemas de redes que se exponen en los próximos apartados. Sin embargo, en todos los casos puede utilizarse un algoritmo del tipo de red generalizada1. En términos de la estructura del problema, podemos decir que tenemos una red generalizada cuando: a) En cada columna existen únicamente dos coeficientes, más el correspondiente a la función objetivo. A estos coeficientes se les suele llamar ganancia o pérdida, ya que representan la ganancia o pérdida que experimenta el flujo al pasar por el correspondiente arco. Se producirá una ganancia de un nodo a otro cuando el coeficiente sea mayor que uno, y se producirá una pérdida cuando el coeficiente sea inferior a uno. Si el coeficiente es uno no hay ganancia o pérdida de flujo. b) Todas las restricciones son de tipo igualdad, representando la condición de equilibrio del flujo en cada nodo: el flujo que llega a cada nodo es el mismo que sale de este mismo nodo. c) Las variables del problema pueden tener limitaciones de flujo mínimo y máximo. En algunos de los casos que se exponen en los próximos apartados la solución puede obtenerse con algoritmos más simples, pero también más especializados que el de red generalizada. En Smith (1982) están descritos buena parte de ellos, así como programas para su resolución, en BASIC y en Pascal.

1

282

Vid. Brown y McBride (1984). © Ediciones Pirámide

Modelización de problemas de PL (II) Para el problema de transporte es frecuente encontrar, en muchos libros de texto, algunos algoritmos específicos. Algunos de éstos son el de Stepping Stone, el método húngaro, etc. En realidad, el problema de transporte puede resolverse de una forma tanto o más eficiente que con los algoritmos anteriores, mediante un algoritmo de red generalizada o con una variante del Simplex conocida como GUB (Generalized Upper Bound) debido originalmente a Dantzig2. Esta variante del método Simplex está incluida en todos los buenos paquetes de PL. Otra característica importante de los problemas de redes es que, en algunos casos, la solución que se obtiene es entera, aunque no se haya utilizado un algoritmo especial para ello. Más adelante (capítulos 8 y 9) veremos que obtener soluciones enteras es, a veces, totalmente necesario. En los casos en que no se obtenga directamente una solución entera, y el problema lo requiera, no existe una forma sencilla de resolverlo. En general, será necesario utilizar algoritmos de programación en números enteros, con todas las consecuencias que ello comporta3.

7.1.1. Modelo de transporte El problema de transporte consiste en enviar una cierta cantidad de mercancía desde unos almacenes (orígenes), donde se dispone de cantidades limitadas, a unos puntos finales (destinos), donde es preciso servir una cierta demanda. Su planteamiento general es: m

Min(z) =

n

∑ ∑ cijxij i=1 j=1

sujeto a: Restricciones de oferta: de cada origen no puede salir más mercancía de la que se dispone o se puede fabricar. n

∑ xij ≤ Oi

∀i∊{1, 2, ..., m}

j=1

Restricciones de demanda: en cada destino debe llegar, por lo menos, la cantidad demandada de mercancía. m

∑ xij ≥ Dj

∀j∊{1, 2, ..., n}

i=1

2 3

© Ediciones Pirámide

Vid. Dantzig y Van Slyke (1964 y 1965). Vid. capítulo 8.

283

Decisiones empresariales con hoja de cálculo donde: xij: Número de unidades a transportar desde el origen i hasta el destino j. cij: Coste de transportar una unidad desde i hasta j. Oi: Unidades disponibles en el origen i. Dj: Unidades demandadas en el destino j. En realidad, cij puede ser la suma de hasta tres componentes: cij = ui + cij + vj que serían interpretables de la siguiente forma: ui: Coste por unidad de fabricación o manipulación en el origen i. cij: Coste por unidad de puro transporte desde i hasta j. vj: Coste por unidad de manipulación en el destino j. Generalmente, el coste de transporte por kilómetro y unidad se reduce a medida que aumenta la longitud del recorrido. Esto daría lugar a una función de costes no lineal. Sin embargo, ello no cambia para nada el planteamiento, ya que cij es tan sólo un punto de esta función de costes. Las restricciones de demanda también pueden plantearse como de tipo igualdad, ya que, de hecho, en el óptimo se cumplirá la igualdad de forma estricta. El problema de transporte se caracteriza por dar lugar a soluciones en las que todas las variables toman valores enteros, siempre que el vector del lado derecho contenga sólo números enteros.

EJEMPLO 7.1. Mermeladas La empresa de Mermeladas Universales debe transportar sus productos desde sus fábricas en Murcia y Sevilla hasta sus clientes mayoristas ubicados en Madrid, Barcelona y Valladolid. La fábrica de Murcia tiene capacidad para fabricar hasta 30.000 tarros/mes y la de Sevilla puede fabricar un máximo de 45.000 tarros/mes. El mayorista de Madrid solicita unos 33.000 tarros/mes, el de Barcelona 30.000 tarros/mes y el de Valladolid unos 7.000 tarros/mes. Determine cómo deben enviarse los tarros de mermelada a cada cliente, sabiendo que los costes unitarios de la logística son los siguientes (datos en €/tarro):

284

© Ediciones Pirámide

Modelización de problemas de PL (II) TABLA 7.1 Costes de logística Madrid

Barcelona

Valladolid

Murcia

0,060

0,091

0,092

Sevilla

0,079

0,148

0,087

El planteamiento del problema es el siguiente: Variables: xij: Número de tarros de mermelada que van de la fábrica i al cliente mayorista j, siendo: i = {Murcia = 1, Sevilla = 2} y j = {Madrid = 1, Barcelona = 2, Valladolid = 3}. Restricciones: 1.

De oferta: a) La fábrica de Murcia no podrá producir más de 30.000 tarros/mes: x11 + x12 + x13 ≤ 30.000 b) La fábrica de Sevilla no podrá producir más de 45.000 tarros/mes: x21 + x22 + x23 ≤ 45.000

2.

De demanda: a) El cliente de Madrid solicita 33.000 tarros: x11 + x21 = 33.000 b) El cliente de Barcelona solicita 30.000 tarros: x12 + x22 = 30.000 c)

El cliente de Valladolid solicita 7.000 tarros: x13 + x23 = 7.000

© Ediciones Pirámide

285

Decisiones empresariales con hoja de cálculo 3.

No negatividad de las variables: a) Las cantidades enviadas no pueden ser negativas x11, x12, x13, ..., x23 ≥ 0

Función objetivo: Min(z) = 0,060x11 + 0,091x12 + 0,092x13 + 0,079x21 + 0,148x22 + 0,087x23 La entrada de datos y la solución de este problema, en el formato estándar Solver, se muestran a continuación. La definición del problema sería: CUADRO 7.1 Formulación del ejemplo 7.1

286

© Ediciones Pirámide

Modelización de problemas de PL (II) CUADRO 7.1 (continuación)

El cuadro de diálogo del Solver sería: CUADRO 7.2 Cuadro de diálogo del Solver del ejemplo 7.1

La solución para el problema es: CUADRO 7.3 Solución del ejemplo 7.1

© Ediciones Pirámide

287

Decisiones empresariales con hoja de cálculo CUADRO 7.3 (continuación)

Una vez solucionado el problema, el análisis de sensibilidad que proporciona Solver es el siguiente:

CUADRO 7.4 Análisis de sensibilidad del ejemplo 7.1

288

© Ediciones Pirámide

Modelización de problemas de PL (II) CUADRO 7.4 (continuación)

EJEMPLO 7.2. Construcción de una presa Durante la construcción de una presa se precisan grandes cantidades de materiales necesarios para la producción de varios tipos de hormigón. Estos materiales deben ser transportados para ser mezclados desde cuatro depósitos hasta la planta de mezcla situada en la misma presa. La siguiente tabla muestra las cantidades estimadas y los costes de producir y transportar los materiales desde los depósitos hasta la planta de mezclado: TABLA 7.2 Cantidades estimadas y costes de producir y transportar materiales Cantidad (m3)

Coste (€/m3)

Material río A

8.000

3,2

Material río B

16.000

4,5

Material río C

8.000

2,8

Material río D

6.000

4,0

Lugar de depósito

Los cuatro materiales indicados se utilizan para producir tres tipos diferentes de hormigón. Las necesidades de cada uno de estos tipos distintos de hormigón, los requerimientos de cada material y el coste de efectuar el producto final (mezcla de los materiales, cemento y diferentes aditivos) se refleja en la siguiente tabla. TABLA 7.3 Necesidades, coste de producción y requerimientos

© Ediciones Pirámide

Mezcla

Límites (especificaciones)

Coste (€/m3)

Requerimientos (m3)

1

(A + B) ≤ 50 %; C ≥ 10 % D sin límite

4,8

6.000

2

(A + B) ≤ 60 %; C ≥ 10 % (C + D) ≤ (A + B)

4,2

15.000

3

A ≥ 20 % (C + D) ≥ 1/2(A + B)

5,4

8.000

289

Decisiones empresariales con hoja de cálculo Se debe buscar la mezcla óptima de materiales que minimizan el coste total y cumplen todos los requerimientos de los diferentes tipos de hormigón para la construcción de la presa. Tenga en cuenta que el resto de los costes son constantes y no pueden ser modificados. Se trata de un problema de mezclas o también denominado de blending, en el que se pide buscar la combinación de materiales que dará lugar a un producto final, sometiendo el proceso a una serie de especificaciones. En concreto, en este problema será aquella mezcla más barata que cumple con todos los requerimientos establecidos.

Depósitos 8.000 m3

Transporte

Planta de mezcla

A

3,2 €/m3 1

6.000 m3 x1

4,8 €/m3

16.000 m3

B

4,5 €/m3 2

15.000 m3 x2

4,2 €/m3

8.000 m3

C

2,8 €/m3 3

x3 8.000 m3

3,2 €/m3

6.000 m3

D

4,0 €/m3

Figura 7.2. Representación del problema.

Variables: xij: Metros cúbicos de material tipo i por metro cúbico de mezcla tipo j. xk: Metros cúbicos de mezcla tipo k por la aportación de los distintos materiales a cada una de las mezclas. donde: i = {A = Material tipo A, B = Material tipo B, C = Material tipo C, y D = Material tipo D}.

290

© Ediciones Pirámide

Modelización de problemas de PL (II) j = {1 = Mezcla de tipo 1, 2 = Mezcla de tipo 2, y 3 = Mezcla de tipo 3}. k = {1 = Mezcla de tipo 1, 2 = Mezcla de tipo 2, y 3 = Mezcla de tipo 3}. De esta manera, y en relación a la variable xk antes definida, tendremos: x1 = xA1 + xB1 + xC1 + xD1 x2 = xA2 + xB2 + xC2 + xD2 x3 = xA3 + xB3 + xC3 + xD3 Restricciones: 1.

Cantidad máxima disponible en los depósitos. La cantidad de material que usemos de cada uno de los depósitos para cada una de las mezclas no debe superar la cantidad disponible. xA1 + xA2 + xA3 ≤ 8.0000 xB1 + xB2 + xB3 ≤ 16.000 xC1 + xC2 + xC3 ≤ 8.0000 xD1 + xD2 + xD3 ≤ 6.0000

2.

Cantidades mínimas necesarias de mezcla. Para la construcción de la presa son necesarias unas cantidades mínimas de los tres tipos de hormigón, por lo que son restricciones de demanda. x1 = xA1 + xB1 + xC1 + xD1 ≥ 6.0000 x2 = xA2 + xB2 + xC2 + xD2 ≥ 15.000 x3 = xA3 + xB3 + xC3 + xD3 ≥ 8.0000

3.

Especificaciones de cada tipo de mezcla. Cada tipo de hormigón que surge de la mezcla de los cuatro tipos de materiales debe cumplir una serie de especificaciones en relación a los materiales. — Mezcla 1: xA1 + xB1 ≤ 0,5x1 xC1 ≥ 0,1x1

© Ediciones Pirámide

291

Decisiones empresariales con hoja de cálculo — Mezcla 2: xA2 + xB2 ≤ 0,6x2 +B2 xC2 ≥ 0,1x2 +B2 xC2 + xD2 ≤ xA2 + xB2 — Mezcla 3: xA3 ≥ 0,2x3 xC3 + xD3 ≥ 0,5(xA3 + xB3) Función objetivo: Como tratamos de minimizar el coste total, tenemos que tener en cuenta el coste de producir y transportar los materiales de cada uno de los depósitos a cada una de las plantas de mezclado, así como el coste de efectuar el producto final. Min(z) = 3,2(xA1 + xA2 + xA3) + 4,5(xB1 + xB2 + xB3) + 2,8(xC1 + xC2 + xC3) + + 4(xD1 + xD2 + xD3) + 4,8(xA1 + xB1 + xC1 + xD1) + 4,2(xA2 + xB2 + xC2 + xD2) + + 5,4(xA3 + xB3 + xC3 + xD3) La entrada de datos y la solución de este problema, en el formato estándar Solver, se muestran a continuación. La definición del problema sería: CUADRO 7.5 Formulación del ejemplo 7.2

292

© Ediciones Pirámide

Modelización de problemas de PL (II) CUADRO 7.5 (continuación)

© Ediciones Pirámide

293

Decisiones empresariales con hoja de cálculo El cuadro de diálogo del Solver sería: CUADRO 7.6 Cuadro de diálogo del Solver del ejemplo 7.2

La solución para el problema es: CUADRO 7.7 Solución del ejemplo 7.2

294

© Ediciones Pirámide

Modelización de problemas de PL (II) CUADRO 7.7 (continuación)

© Ediciones Pirámide

295

Decisiones empresariales con hoja de cálculo

7.1.2. Modelo de asignación Este problema consiste en asignar un conjunto de recursos (personas o máquinas, por ejemplo) a una serie de trabajos, de tal forma que se minimice el tiempo (o coste) empleado en llevar a cabo las tareas. En este planteamiento se supone implícitamente que, por ejemplo, por motivos de especialización algunas personas o máquinas son más eficientes que otras para realizar determinados trabajos. El planteamiento general es el siguiente: m

Min(z) =

n

∑ ∑ cijxij i=1 j=1

sujeto a: Cada trabajo sólo puede efectuarse una vez: n

∑ xij = 1

∀j∊{1, 2, ..., n}

i=1

Cada persona o máquina puede efectuar un solo trabajo: m

∑ xij = 1

∀i∊{1, 2, ..., n}

j=1

Las variables sólo pueden tomar valores cero o uno, lo que, en principio, requeriría resolver el problema mediante programación entera. Sin embargo, es fácil observar que este planteamiento es un caso particular del problema de transporte, en el que el término independiente es siempre igual a uno. Esto supone que su resolución como problema de PL nos dará una solución en que todas las variables toman valores enteros.

EJEMPLO 7.3. Asignación de brigadas de policía El Departamento de Policía del Norte tiene cinco brigadas de detectives de policía para asignar a cinco casos de crímenes abiertos. El jefe de detectives desea asignarlos de forma que el tiempo total de resolución de crímenes sea mínimo. La media en número de días, basado en pasadas experiencias, para que cada brigada cierre los casos, es la siguiente:

296

© Ediciones Pirámide

Modelización de problemas de PL (II) TABLA 7.4 Número medio de días para el cierre de los casos Brigada

A

B

C

D

E

1

14

7

3

7

27

2

20

7

12

6

30

3

10

3

4

5

21

4

8

12

7

12

21

5

13

25

24

26

8

Cada brigada está compuesta por diferentes tipos de especialistas y, como se puede observar, una brigada puede ser muy efectiva para un tipo de casos y menos para otros. Variables: xij: Variable binaria que tomará el valor 1 cuando se asigne la brigada i, donde {i = 1, 2, 3, 4, 5}, al caso j, donde {j = A, B, C, D, E}; o el valor 0 en caso contrario. Restricciones: 1.

Cada brigada sólo puede tener asignado un caso. x1A + x1B + x1C + x1D + x1E = 1 x2A + x2B + x2C + x2D + x2E = 1 x3A + x3B + x3C + x3D + x3E = 1 x4A + x4B + x4C + x4D + x4E = 1 x5A + x5B + x5C + x5D + x5E = 1

2.

Cada caso sólo puede tener asignada una brigada. x1A + x2A + x3A + x4A + x5A = 1 x1B + x2B + x3B + x4B + x5B = 1 x1C + x2C + x3C + x4C + x5C = 1 x1D + x2D + x3D + x4D + x5D = 1 x1E + x2E + x3E + x4E + x5E = 1

© Ediciones Pirámide

297

Decisiones empresariales con hoja de cálculo 3.

No negatividad. xij ≥ 0

Función objetivo: Min(z) = 14x1A + 7x1B + 3x1C + 7x1D + 27x1E + 20x2A + 7x2B + 12x2C + 6x2D + + 30x2E + 10x3A + 3x3B + 4x3C + 5x3D + 21x3E + 8x4A + 12x4B + 7x4C + 12x4D + + 21x4E + 13x5A + 25x5B + 24x5C + 26x5D + 8x5E La entrada de datos y la solución de este problema, en el formato estándar Solver, se muestran a continuación. La definición del problema sería: CUADRO 7.8 Formulación del ejemplo 7.3

298

© Ediciones Pirámide

Modelización de problemas de PL (II) CUADRO 7.8 (continuación)

El cuadro de diálogo del Solver sería: CUADRO 7.9 Cuadro de diálogo del Solver del ejemplo 7.3

© Ediciones Pirámide

299

Decisiones empresariales con hoja de cálculo La solución para el problema es: CUADRO 7.10 Solución del ejemplo 7.3

300

© Ediciones Pirámide

Modelización de problemas de PL (II) CUADRO 7.10 (continuación)

Una vez solucionado el problema, el análisis de sensibilidad que proporciona Solver es el siguiente: CUADRO 7.11 Análisis de sensibilidad del ejemplo 7.3

© Ediciones Pirámide

301

Decisiones empresariales con hoja de cálculo CUADRO 7.11 (continuación)

EJEMPLO 7.4. Asignación de alumnos a becas La Universidad Universal de Empresa desea realizar una asignación eficiente de las becas CEAL (becas que concede el BSCH y la UUE para realizar estudios en Latinoamérica) a los 30 estudiantes que lo han solicitado. En cada una de las seis universidades de Latinoamérica hay cinco plazas. Cada uno de los 30 estudiantes aportan la nota media de su expediente hasta la fecha y una relación de preferencias respecto a las universidades en una escala de 1 a 6, siendo el 6 la universidad preferida y 1 la menos deseada (véase el cuadro 7.12). Determine la asignación de los estudiantes a las becas de la forma más eficiente posible. En este capítulo no se tendría en cuenta que un estudiante con mejor expediente tiene prioridad en la elección de universidad. Este hecho se tratará a partir del capítulo 9, donde se hablará de la programación entera.

302

© Ediciones Pirámide

Modelización de problemas de PL (II) CUADRO 7.12

Variables: xij: Variable binaria que tomará valor 1 si el alumno i es destinado a la universidad j, y 0 en caso contrario. Restricciones: 1.

Cada universidad debe tener asignados cinco alumnos. 30

∀j →

∑ xij = 5 i=1

Universidad 1: x11 + x21 + x31 + ... + x301 = 5 ... Universidad 6: x16 + x26 + x36 + ... + x306 = 5 © Ediciones Pirámide

303

Decisiones empresariales con hoja de cálculo 2.

Cada alumno sólo puede estar asignado a una universidad. 6

∀i →

∑ xij = 1 j=1

Alumno 1: x11 + x12 + x13 + ... + x16 = 1 ... Alumno 30: x301 + x302 + x303 + ... + x306 = 1 3.

No negatividad: xij ≥ 0

Función objetivo: Maximizar las preferencias de los estudiantes. 30

Max(z) = ∑

6

∑ pij xij = p11x11 + p12 x12 + ... + p306 x306

i=1 j=1

La entrada de datos y la solución de este problema, en el formato estándar Solver, se muestran a continuación. La definición del problema sería: CUADRO 7.13 Datos del ejemplo 7.4

304

© Ediciones Pirámide

Modelización de problemas de PL (II) CUADRO 7.13 (continuación)

CUADRO 7.13 (continuación)

© Ediciones Pirámide

305

Decisiones empresariales con hoja de cálculo CUADRO 7.14 Formulación del ejemplo 7.4

El cuadro de diálogo del Solver sería:

306

© Ediciones Pirámide

Modelización de problemas de PL (II) CUADRO 7.15 Cuadro de diálogo del Solver del ejemplo 7.4

La solución para el problema es: CUADRO 7.16

© Ediciones Pirámide

307

Decisiones empresariales con hoja de cálculo CUADRO 7.17 Solución del ejemplo 7.4

Es importante señalar que se trata de un planteamiento puro de PL y que, en teoría, el valor de las variables podría ser diferente de 0 o 1. Sin embargo, en este problema en particular la solución será siempre tal que el valor de las variables en el óptimo será 0 o 1. Si añadimos otro tipo de restricciones a ese mismo problema, seguramente obtendremos soluciones que no serán binarias. En

308

© Ediciones Pirámide

Modelización de problemas de PL (II) este caso deberemos utilizar programación en números enteros o mixta (véanse capítulos 9 y 10).

7.1.3. Problema de transbordo El problema de trasbordo es, en realidad, un problema de transporte en el que la mercancía, en lugar de ir directamente de origen a destino, puede pasar por una serie de «almacenes» intermedios. En la figura 7.3. se presenta gráficamente un problema sencillo de transbordo:

Orígenes (i)

Zona de transbordo (j)

Destinos (k)

T1

S1 R1

T2

S2

R2 T3

S3

Figura 7.3. Grafo de un problema de transbordo.

Su planteamiento general sería: m

Min(z) = ∑

n

n

K

m

K

∑ cij xij + ∑ ∑ cjk xjk + ∑ ∑ cik xik

i=1 j=1

j=1 k=1

i=1 k=1

sujeto a: Restricciones de oferta: n

K

j=1

k=1

∑ xij + ∑ xik ≤ Oi © Ediciones Pirámide

∀i∈{1, 2, ..., m}

309

Decisiones empresariales con hoja de cálculo Restricciones de demanda: m

n

i=1

j=1

∑ xik + ∑ xjk ≤ Dk

∀k∈{1, 2, ..., K}

Balance en zonas de transbordo: m

K

i=1

k=1

∑ xij = ∑ xjk ⇒

m

K

i=1

k=1

∑ xij − ∑ xjk = 0

∀j∈{1, 2, ..., n}

donde: xij: Cantidades que van desde fábricas (origen, i) a almacenes (primer destino, j). xjk: Cantidades que van desde almacenes (j) a puntos de venta (último destino) (k). xik: Cantidades que van desde fábricas (i) a puntos de venta (k). Nótese que no hemos considerado limitaciones en la capacidad de paso de mercancías a través de los almacenes. Sería muy fácil incluirlas. En los problemas anteriores de transporte y transbordo hemos considerado un solo producto o mercancía. La mayoría de los problemas reales tienen varios productos. Para extender los problemas anteriores al caso de productos múltiples no tenemos más que añadir a cada variable un subíndice adicional que indique cuál es el producto al que ésta se refiere. Consecuentemente, tanto el número de variables como el de restricciones se verán multiplicados por el número de productos que se consideran.

EJEMPLO 7.5. Trasbordo de combustibles REPOIL Rep Oil recibe petróleo crudo de Medio Oriente en sus instalaciones de Tarragona y A Coruña. El petróleo se envía después a través de un oleoducto con estaciones de bombeo en Zaragoza, Valladolid, Madrid y Castellón a tanques de almacenamiento en Madrid, Valencia y Sevilla. Las distancias aproximadas en kilómetros entre los puntos conectados por segmentos del oleoducto se proporcionan en las siguientes tablas: Hacia Desde

310

Zaragoza

Valladolid

Tarragona

225

650

A Coruña



350

© Ediciones Pirámide

Modelización de problemas de PL (II) Hacia Desde Madrid

Castellón

Zaragoza

325

275

Valladolid

180

690

Hacia Desde Madrid Madrid Castellón

Valencia

Sevilla

1

300

510

440

110



Este mes se dispone de 250.000 barriles de petróleo en Tarragona y 150.000 barriles están en A Coruña. La instalación de almacenamiento de Madrid necesita recibir 200.000 barriles y las instalaciones en Valencia y Sevilla necesitan recibir cada una 100.000 barriles. Determinar cómo debe enviarse el petróleo desde estas instalaciones para minimizar los kilómetros totales que viaja el petróleo (es decir, la suma del número de barriles de petróleo por el número de kilómetros viajados).

1 250.000 Tarragona

225 650

150.000 A Coruña

350

325

Zaragoza

510

275 Valladolid

300

Madrid

180 690

Castellón

Madrid

200.000

Valencia

100.000

Sevilla

100.000

440

110

Variables: xij: Número de barriles de petróleo que viajan de i a j, donde: i = {TA = Tarragona, AC = A Coruña, ZA = Zaragoza, VA = Valladolid, M1 = Madrid, CA = Castellón} j = {ZA = Zaragoza, VA = Valladolid, M1 = Madrid, CA = Castellón, M2 = Madrid demanda, VL = Valencia, SE = Sevilla} © Ediciones Pirámide

311

Decisiones empresariales con hoja de cálculo Restricciones: 1.

Requisitos de suministro. xTAZA + xTAVA ≤ 250.000 xACVA ≤ 150.000

2.

Requisitos de demanda. xM1M2 + xCAM2 = 200.000 xM1VL + xCAVL = 100.000 xM1SE = 100.000

3.

Requisitos de transbordo. xTAZA = xZAM1 + xZACA xTAVA + xACVA = xVAM1 + xVACA xZAM1 + xVAM1 = xM1M2 + xM1VL + xM1SE xZACA + xVACA = xCAM2 + xCAVL

4.

No negatividad. xij ≥ 0

∀i ∀j

Función objetivo: Se quiere minimizar el número de kilómetros que viaja el petróleo entre los distintos destinos. Min(z) = 225xTAZA + 650xTAVA + 350xACVA + 325xZAM1 + 275xZACA + 180xVAM1 + + 690xVACA + xM1M2 + 300xM1VL + 510xM1SE + 440xCAM2 + 110xCAVL La entrada de datos y la solución de este problema, en el formato estándar Solver, se muestran a continuación. La definición del problema sería:

312

© Ediciones Pirámide

Modelización de problemas de PL (II) CUADRO 7.18 Formulación del ejemplo 7.5

© Ediciones Pirámide

313

Decisiones empresariales con hoja de cálculo El cuadro de diálogo del Solver sería: CUADRO 7.19 Cuadro de diálogo del Solver del ejemplo 7.5

La solución para el problema es: CUADRO 7.20 Solución del ejemplo 7.5

314

© Ediciones Pirámide

Modelización de problemas de PL (II) CUADRO 7.20 (continuación)

Una vez solucionado el problema, el análisis de sensibilidad que proporciona Solver es el siguiente:

© Ediciones Pirámide

315

Decisiones empresariales con hoja de cálculo CUADRO 7.21 Análisis de sensibilidad del ejemplo 7.5

7.1.4. Camino más corto Este tipo de problemas consiste en hallar el camino más corto (o barato) entre dos nodos (el origen y el destino) de una red en la que cada arco tiene asociada una determinada distancia (o coste). Este problema es el que resuelven los actuales aparatos GPS que se instalan en los automóviles, o los lugares de Internet en donde se nos calcula el camino más corto entre, por ejemplo, dos ciudades. En estos sistemas están almacenadas

316

© Ediciones Pirámide

Modelización de problemas de PL (II) todas las conexiones entre todos los puntos adyacentes, de forma similar a la figura 7.4. El software interno plantea el problema y lo resuelve tal como se indica a continuación.

EJEMPLO 7.6. Problema de camino más corto. El funcionamiento del GPS El siguiente problema es un ejemplo del funcionamiento de un GPS (Global Positioning System) de los que se emplean hoy en día en muchos vehículos o como dispositivo móvil. En estos sistemas, el decisor indica el origen y el destino al que quiere llegar y define el sistema de búsqueda de la ruta. Casi todos los sistemas utilizan por defecto la ruta más rápida, aunque también se puede definir la ruta más corta, pudiendo en algunos casos coincidir y en otros no. Supongamos que unos jóvenes que se encuentran en Madrid deciden ir a pasar un día al encantador pueblo medieval de Pedraza (Segovia). El siguiente gráfico muestra la red de carreteras que permiten hacer esta ruta. Los datos expresados en las líneas indican los kilómetros entre dos puntos.

40,4 Segovia

Pedraza

27,3

Santo Tomé del Puerto

33,1

34,4

Lozoya 11,8 Canencia

San Rafael

22,5

62,5

Miraflores de la Sierra 4,5 Soto del Real 6,4 Colmenar Viejo 35,4

102,7

Autovías Nacionales Comarcales

Madrid

Figura 7.4. Gráfico de los posibles recorridos expresados en kilómetros. © Ediciones Pirámide

317

Decisiones empresariales con hoja de cálculo Si deciden determinar la ruta más corta que les permitirá ir de Madrid a Pedraza, el problema que se plantearía sería el siguiente: Variables: xij: Determina si el recorrido entre los puntos i y j está dentro de la ruta más corta o no. Aparentemente, las variables podrían tomar valores no enteros, con lo que la solución no tendría sentido. Sin embargo, en este tipo de problemas, por razones similares a las del problema de transporte, los valores de las variables en la solución óptima serán siempre 0 o 1. Restricciones 1.

Cada nodo es un origen y un destino. Como no se mueve ninguna cantidad, el supuesto es que se mueve una unidad. Madrid

1 = xMAST + xMACV + xMASR

Santo Tomé

xMAST = xSTPE

Colmenar Viejo

xMACV = xCVSR

Soto del Real

xCVSR = xSRMS

Miraflores

xSRMS = xMSCA

Canencia

xMSCA = xCALO

Lozoya

xCALO = xLOPE

San Rafael

xMASR = xSRSE

Segovia

xSRSE = xSEPE

Pedraza

xSTPE + xLOPE + xSEPE = 1

Función objetivo: Minimizar la distancia recorrida en kilómetros. Min(z) = 102,7xMAST + 27,3xSTPE + 35,4xMACV + 6,4xCVSR + 4,5xSRMS + + 22,5xMSCA + 11,8xCALO + 33,1xLOPE + 62,5xMASR + 34,4xSRSE + 40,4xSEPE

318

© Ediciones Pirámide

Modelización de problemas de PL (II) La entrada de datos y la solución de este problema, en el formato estándar Solver, se muestran a continuación. La definición del problema sería:

CUADRO 7.22 Formulación del ejemplo 7.6.a

© Ediciones Pirámide

319

Decisiones empresariales con hoja de cálculo CUADRO 7.22 (continuación)

El cuadro de diálogo del Solver sería: CUADRO 7.23 Cuadro de diálogo del Solver del ejemplo 7.6.a

La solución para el problema es: CUADRO 7.24 Solución del ejemplo 7.6.a

320

© Ediciones Pirámide

Modelización de problemas de PL (II) CUADRO 7.24 (continuación)

Una vez solucionado el problema, el análisis de sensibilidad que proporciona Solver es el siguiente: CUADRO 7.25 Análisis de sensibilidad del ejemplo 7.6.a

© Ediciones Pirámide

321

Decisiones empresariales con hoja de cálculo CUADRO 7.25 (continuación)

Por tanto, la ruta más corta para ir desde Madrid a Pedraza es la siguiente: Madrid, Colmenar Viejo, Soto del Real, Miraflores de la Sierra, Canencia, Lozoya y Pedraza. Sin embargo, y siguiendo con la figura 7.4, nuestros excursionistas quizá prefieran llegar en el menor tiempo posible. En las rutas mostradas hay carreteras que son autovías o autopistas, en las que se puede sacar una velocidad promedio circulando de 100 km/h. En las nacionales la velocidad promedio puede alcanzar los 80 km/h y en las comarcales pueden ser unos 50 km/h de promedio. Nuestros excursionistas deberían entonces modificar el problema planteado. Dicha modificación consistiría en modificar los coeficientes de contribución a la función objetivo. Para ello, deben dividir los kilómetros por la velocidad promedio en cada tramo y obtendrán un tiempo promedio expresado en horas. Así, la función objetivo quedaría: Min(z) = (102,7/100)xMAST + (27,3/80)xSTPE + (35,4/100)xMACV + (6,4/80)xCVSR + + (4,5/80)xSRMS + (22,5/50)xMSCA + (11,8/50)xCALO + (33,1/50)xLOPE + + (62,5/100)xMASR + (34,4/100)xSRSE + (40,4/80)xSEPE La entrada de datos y la solución de este problema, en el formato estándar Solver, se muestran a continuación. La definición del problema sería:

322

© Ediciones Pirámide

Modelización de problemas de PL (II) CUADRO 7.26 Formulación del ejemplo 7.6.b

© Ediciones Pirámide

323

Decisiones empresariales con hoja de cálculo El cuadro de diálogo del Solver sería: CUADRO 7.27 Cuadro de diálogo del Solver del ejemplo 7.6.b

La solución para el problema es: CUADRO 7.28 Solución del ejemplo 7.6.b

324

© Ediciones Pirámide

Modelización de problemas de PL (II) CUADRO 7.28 (continuación)

Una vez solucionado el problema, el análisis de sensibilidad que proporciona Solver es el siguiente: CUADRO 7.29 Análisis de sensibilidad del ejemplo 7.6.b

Según esta solución, la ruta más rápida es ir desde Madrid hasta Santo Tomé del Puerto y de ahí a Pedraza. Esto supondrá un tiempo de 1,336825 horas, esto es, 1 hora y 20 minutos aproximadamente.

© Ediciones Pirámide

325

Decisiones empresariales con hoja de cálculo

7.1.5. Flujo con coste mínimo Este tipo de problemas son una generalización de los problemas de transporte y transbordo. Se trata de «transportar» (a través de un grafo dirigido) una cierta cantidad de «producto» desde unos orígenes a unos destinos. El paso por cada arco origina un coste. Se debe minimizar la suma de todos los costes. La solución de un problema de flujo en redes, cuando se considera un solo producto, será entera siempre que las disponibilidades y las demandas sean todas números enteros.

EJEMPLO 7.7. Problema de flujo con coste mínimo En la figura 7.5 se muestra un ejemplo de red dirigida para un problema de flujo con coste mínimo.

50

6

1

10

3

8

5

2

3

2 4

3

7

20

8

52

10

45

3 7

6

2

5 67

4

9

6

Figura 7.5. Grafo de un problema de flujo con coste mínimo.

Al lado de cada arco se especifica su correspondiente coste. Las disponibilidades de producto aparecen al lado de los nodos-origen: 1 y 2, mientras que las demandas figuran al lado de los nodos-destino: 8, 9 y 10. El problema consiste en encontrar la forma de satisfacer las demandas al coste mínimo. El planteamiento matemático del problema es: Variables: xij: Variable que toma el valor 1 si el recorrido entre los puntos i y j está dentro de la ruta con el coste mínimo, y 0 si no lo está.

326

© Ediciones Pirámide

Modelización de problemas de PL (II) Restricciones: 1.

Equilibrio en los nodos: Nodo 1

50 = x13

Nodo 2

67 = x24

Nodo 3

x13 = x39 + x36

Nodo 4

x24 = x45 + x47

Nodo 5

x45 + x75 = x56

Nodo 6

x36 + x56 + x76 = x68 + x69 + x610

Nodo 7

x47 = x75 + x76

Nodo 8

x68 = 52

Nodo 9

x39 + x69 = 20

Nodo 10 2.

x610 = 45

No negatividad: x13, x24, x39, x36, x45, x47, x56, x68, x69, x610, x75, x76 ≥ 0

Función objetivo: Min(z) = 6x13 + 3x24 + 10x39 + 8x36 + 5x45 + 3x47 + 4x56 + 7x68 + 3x69 + + 6x610 + 2x75 + 2x76 Obsérvese que hay una restricción para cada nodo y que la suma de las entradas al nodo es igual al de las salidas. La entrada de datos y la solución de este problema, en el formato estándar Solver, se muestran a continuación. La definición del problema sería: CUADRO 7.30 Formulación del ejemplo 7.7

© Ediciones Pirámide

327

Decisiones empresariales con hoja de cálculo CUADRO 7.30 (continuación)

El cuadro de diálogo del Solver sería: CUADRO 7.31 Cuadro de diálogo del Solver del ejemplo 7.7

328

© Ediciones Pirámide

Modelización de problemas de PL (II) La solución para el problema es: CUADRO 7.32 Solución del ejemplo 7.7

© Ediciones Pirámide

329

Decisiones empresariales con hoja de cálculo Una vez solucionado el problema, el análisis de sensibilidad que proporciona Solver es el siguiente:

CUADRO 7.33 Análisis de sensibilidad del ejemplo 7.7

El gradiente reducido asociado a la variable x56 nos indica que si pasamos una unidad por ese arco, nuestro coste aumentará en 4 unidades. La disminución permisible en esta misma variable con un valor de 4 nos indica que si reducimos el coste de este arco en 4 unidades (pasa de 4 a 0) entonces empezaremos a enviar mercancía a través del mismo. Si reducimos el coste en menos de 4 unidades, nunca pasaremos mercancía por el indicado arco.

330

© Ediciones Pirámide

Modelización de problemas de PL (II) Analizando las restricciones, podemos ver que si tuviésemos menos cantidad ofertada desde los puntos de origen, sería mejor que ésta faltase en el nodo 1, ya que no aumentarían los costes de la función objetivo (si faltase en el nodo 2, aumentarían en 6 unidades). Por otro lado, si cubrimos menos demanda, sería preferible hacerlo en el nodo 8, ya que por cada disminución en una unidad de demanda el coste disminuiría en 21 unidades. Una extensión natural de este problema sería considerar simultáneamente varios productos. Desafortunadamente, estos problemas ya suelen ser de gran tamaño para un solo producto y, naturalmente, crecen proporcionalmente con el número de productos. Esto hace que su planteamiento y resolución resulte más larga y costosa.

7.1.6. Flujo máximo con limitación en los arcos El problema del flujo máximo a través de una red consiste en planificar flujos de manera que se maximice el volumen de mercancía en circulación, teniendo en cuenta que existen restricciones de flujo máximo y, posiblemente, de flujo mínimo en cada uno de los arcos.

EJEMPLO 7.8. Fábrica de ordenadores personales Una fábrica de ordenadores emplea un proceso de producción de tipo cadena de montaje. Las piezas salen de un almacén y pasan, sucesivamente, por tres procesos: instalación de la placa principal, instalación de opciones y realización de un test para control de calidad. Posteriormente, el ordenador es enviado a un almacén, donde será empaquetado y enviado al cliente. Este proceso se resume en la figura 7.6.

2 1

5

7

3

9

4

6

8

Placa principal

Instalación opciones

Test

Figura 7.6. Grafo de un problema de flujo máximo. © Ediciones Pirámide

331

Decisiones empresariales con hoja de cálculo Los distintos «talleres» se han representado como nodos de la red, numerados de 1 a 9. Cada uno de estos nodos tiene una capacidad máxima de proceso, medida en ordenadores/día. En la tabla 7.5 se resumen estas capacidades. TABLA 7.5 Capacidades máximas Nodo

Capacidad

1

30

2

20

3

15

4

10

5

18

6

25

7

10

8

12

9



El objetivo de la empresa es decidir cómo debe repartirse el trabajo entre los distintos talleres, de forma que el flujo diario de ordenadores terminados sea el máximo. La formulación matemática del problema sería la siguiente: Restricciones: 1.

332

El flujo de entrada debe ser igual al de salida: Nodo 2

x12 = x25

Nodo 3

x13 = x35 + x36

Nodo 4

x14 = x46

Nodo 5

x25 + x35 = x57

Nodo 6

x36 + x46 = x67 + x68

Nodo 7

x57 + x67 = x79

Nodo 8

x68 = x89 © Ediciones Pirámide

Modelización de problemas de PL (II) 2.

3.

Restricciones de flujo máximo en cada nodo: Nodo 1

x12 + x13 + x14 ≤ 30

Nodo 2

x25 ≤ 20

Nodo 3

x36 + x35 ≤ 15

Nodo 4

x46 ≤ 10

Nodo 5

x57 ≤ 18

Nodo 6

x67 + x68 ≤ 25

Nodo 7

x79 ≤ 10

Nodo 8

x89 ≤ 12

No negatividad: x12, x13, x14, x25, x36, x35, x46, x57, x67, x68, x79, x89 ≥ 0

Función objetivo: Se trata de maximizar el flujo de ordenadores que llega al almacén final. Max(z) = x79 + x89 Debe observarse que este no es un problema de red generalizada, ya que existen restricciones de flujo máximo en el nodo (casos del nodo 1, 3 y 6) y no en los flujos. Sin embargo, es posible convertir este problema a uno pleno de red modificando algunas restricciones (señaladas con *), con lo que el problema queda: Restricciones: 1.

El flujo de entrada debe ser igual al de salida: (*) Nodo 1

© Ediciones Pirámide

x01 = x12 + x13 + x14

Nodo 2

x12 = x25

Nodo 3

x13 = x35 + x36

333

Decisiones empresariales con hoja de cálculo Nodo 4

x14 = x46

Nodo 5

x25 + x35 = x57

(*) Nodo 6

x36 + x46 = x66*

(*) Nodo 6*

2.

x66* = x6*7 + x6*8

Nodo 7

x57 + x67 = x79

Nodo 8

x68 = x89

Restricciones de flujo máximo: (*) Nodo 1

x01 ≤ 30

Nodo 2

x25 ≤ 20

(*) Nodo 3

x13 ≤ 15

Nodo 4

x46 ≤ 10

Nodo 5

x57 ≤ 18

(*) Nodo 6

x66* ≤ 25

Nodo 7

x79 ≤ 10

Nodo 8

x89 ≤ 12

Con este nuevo planteamiento, las restricciones que estaban en los nodos (señalados con un *) quedan únicamente en los flujos y, en consecuencia, el problema ha pasado a ser de red generalizada, con lo que se podría resolver con un algoritmo especializado de red generalizada. El precio que hemos pagado por esa conversión ha sido un pequeño aumento del número del variables y restricciones. Sin embargo, el inferior tiempo de resolución de problemas con algoritmos de red generalizada compensa más que sobradamente el aumento de algunas variables y restricciones del problema. La entrada de datos y la solución de este problema, en el formato estándar Solver, se muestran a continuación. La definición del problema sería:

334

© Ediciones Pirámide

Modelización de problemas de PL (II) CUADRO 7.34 Formulación del ejemplo 7.8

© Ediciones Pirámide

335

Decisiones empresariales con hoja de cálculo El cuadro de diálogo del Solver sería: CUADRO 7.35 Cuadro de diálogo del Solver del ejemplo 7.8

La solución para el problema es: CUADRO 7.36 Solución del ejemplo 7.8

336

© Ediciones Pirámide

Modelización de problemas de PL (II) CUADRO 7.36 (continuación)

Una vez solucionado el problema, el análisis de sensibilidad que proporciona Solver es el siguiente: CUADRO 7.37 Análisis de sensibilidad del ejemplo 7.8

© Ediciones Pirámide

337

Decisiones empresariales con hoja de cálculo CUADRO 7.37 (continuación)

Como puede observarse, el «cuello de botella» de esta red es la verificación, que es el único proceso que se encuentra saturado (Nodos 7 y 8, con un precio sombra de 1). A la vista de los resultados, el gerente de la planta podría decidir instalar un taller de control de calidad adicional, o bien ampliar la capacidad de los existentes.

7.1.7. Modelo de PERT A menudo los proyectos grandes se descomponen en un conjunto de actividades sencillas que deben realizarse en un orden determinado. De esta forma, el proyecto puede representarse como un grafo, donde cada nodo representa un hito y cada arco representa una relación de precedencia entre dos hitos en los que debe hacerse una determinada tarea. El coste de una tarea o actividad será, por tanto, el tiempo previsto que se empleará en realizar una tarea. En estas circunstancias, un problema de gran interés es el de calcular el camino crítico a través de la red. «La búsqueda del camino crítico en el método PERT consiste en calcular cuál es el camino más largo que permite atravesar la red» o, en definitiva, el tiempo necesario mínimo para completar el proyecto. De esta manera, puede calcularse cuál va a ser la duración total del proyecto y detectar cuáles son las fases críticas, esto es, aquellas que van a condicionar la duración del mismo.

338

© Ediciones Pirámide

Modelización de problemas de PL (II) El planteamiento formal del problema es idéntico al del camino más corto, sólo que, en este caso, la función objetivo debe maximizarse en lugar de minimizarse. En el siguiente ejemplo se muestra una aplicación de este tipo de modelos.

EJEMPLO 7.9. Problema de modelo de PERT (camino crítico) Sea la red de PERT representada en la figura 7.7, donde los números asociados a los distintos arcos representan el tiempo previsto para la realización de cada actividad o tarea, y donde la línea en trazo discontinuo indica que se puede pasar de la tarea 4 a la 5 en tiempo nulo, aunque la 4 debe preceder necesariamente a la 5.

6

2

4

4

5 1

2

3 2 4

4

6

5

3

Figura 7.7. Representación en red de un problema de PERT.

Restricciones: 1.

Equilibrio en los nodos: Nodo 1

1 = x12 + x13

Nodo 2

x12 + x32 = x24 + x25

Nodo 3

x13 = x32 + x35

Nodo 4

x24 = x45 + x46

Nodo 5 Nodo 6

x25 + x45 + x35 = x56 x46 + x56 = 1

0 ≤ x12, x13, x24, x25, x32, x35, x46, x56 ≤ 1 © Ediciones Pirámide

339

Decisiones empresariales con hoja de cálculo Función objetivo: Se desea encontrar el camino más largo desde el origen (nodo 1) hasta el final (nodo 6). Max(z) = 5x12 + 4x13 + 6x24 + 3x25 + 2x32 + 4x35 + 4x46 + 2x56 La entrada de datos y la solución de este problema, en el formato estándar Solver, se muestran a continuación. La definición del problema sería: CUADRO 7.38 Formulación del ejemplo 7.9

340

© Ediciones Pirámide

Modelización de problemas de PL (II) El cuadro de diálogo del Solver sería: CUADRO 7.39 Cuadro de diálogo del Solver del ejemplo 7.9

La solución para el problema es: CUADRO 7.40 Solución del ejemplo 7.9

© Ediciones Pirámide

341

Decisiones empresariales con hoja de cálculo CUADRO 7.40 (continuación)

Una vez solucionado el problema, el análisis de sensibilidad que proporciona Solver es el siguiente: CUADRO 7.41 Análisis de sensibilidad del ejemplo 7.9

342

© Ediciones Pirámide

Modelización de problemas de PL (II) CUADRO 7.41 (continuación)

La solución con trazo grueso puede verse en la figura 7.8.

6

2

4

4

5 1

2 4

3 2 4

6

5

3

Figura 7.8. Representación en red de un problema de PERT.

Por tanto, puede estimarse que la duración total del proyecto será de 16 unidades de tiempo. El camino crítico es 1-3-2-4-6, por lo que será aconsejable someter estas tareas a un seguimiento especialmente cuidadoso, ya que si se retrasa el cumplimiento de una de ellas aumentará la duración del proyecto. Nuestro mayor interés es analizar cuáles son las tareas que desaparecerían del camino crítico si redujéramos su tiempo. Si observamos la columna «Disminución permisible» en las variables, vemos que la tarea que debe reducir menos (en valor absoluto) el tiempo para no estar en el camino crítico es la actividad x32, que debe hacerlo en una unidad («Disminución permisible» x32). Sin embargo, esto representa reducir el tiempo de la tarea a la mitad (de dos actualmente, a uno). En cambio, para que salga del camino crítico también es necesario reducir el tiempo de la tarea x13 en una unidad, pero esto sólo es una cuarta parte del tiempo previsto (actualmente de 4). Lógicamente pues, nuestro interés para reducir el tiempo del proyecto debe ser reducir el dedicado a la actividad x13 en por lo menos una unidad.

© Ediciones Pirámide

343

Decisiones empresariales con hoja de cálculo

7.2. MODELOS MULTIPLANTA Y MULTIPERÍODO El objetivo de esta parte es mostrar cómo pueden optimizarse modelos de PL en los que se incorporan varias plantas o períodos de tiempo de producción. En realidad, se trata de una extensión de los modelos vistos en apartados anteriores y en el capítulo 6. En aplicaciones reales, a menudo se determinan planes de operación conjuntos para varias plantas de una misma empresa (modelos multiplanta). En estos casos, el problema puede contemplarse como un conjunto de problemas independientes, unidos por una serie de restricciones comunes que representan, por ejemplo, recursos compartidos. Algo similar ocurre cuando se planifica una planta o sistema en varios períodos (modelos multiperíodo o multietapa). El modelo global podría verse como una sucesión de problemas de PL, unidos tan sólo por algunas restricciones comunes. En ambos casos, el problema de planificación puede descomponerse en una serie de subproblemas. Evidentemente, si existiera alguna forma de calcular un óptimo global partiendo de las soluciones óptimas de cada uno de los subproblemas, sería adecuado utilizarla, ya que el tiempo empleado en resolver un PL aumenta exponencialmente con la dimensión del mismo. Esta es la idea básica del algoritmo de descomposición de Dantzig-Wolfe4. Teóricamente, los algoritmos de descomposición resuelven con mayor eficiencia los problemas que tienen una estructura de tipo multiplanta o multiperíodo. En realidad, no se ha demostrado de manera general que el empleo de estas técnicas dé lugar a un consumo de tiempo de cálculo menor que los códigos comerciales de PL, aunque, eso sí, requieren una menor disponibilidad de memoria. Un aspecto de gran interés de los algoritmos de descomposición es la interpretación económica de su funcionamiento. El dual de las restricciones comunes es el precio de subasta de cada recurso que la «central» establece para las distintas divisiones. Si la central y las distintas divisiones actúan optimizando su gestión y se adaptan a los precios sombra subastados, se obtendrá un óptimo global.

7.2.1. Modelos multiplanta Estos modelos surgen cuando se pretenden planificar de forma global la producción de una empresa que tiene más de una planta y unos servicios o recursos comunes que abastecen a todas ellas. Generalmente, lo que se pretende  es  maximizar los beneficios o minimizar los costes de todo el proceso de producción. 4

344

Vid. Dantzig y Wolfe (1961). © Ediciones Pirámide

Modelización de problemas de PL (II) Estos modelos dan lugar a una estructura de bloques angular, como la que se representa en la figura 7.9. Como puede observarse, existen unas restricciones de recursos comunes representados por la matriz: A = [A0 | A1 | A2 | ... | An] y una serie de restricciones aplicables a cada planta o división representadas por las matrices Bj ( j = 1, 2, ..., n).

c0

c1

c2

cn

A0

A1

A2

An

B1

B2

Bn

Función objetivo

b0

Restricciones comunes

b1

Planta 1

b2

Planta 2

bn

Planta n

Figura 7.9. Estructura de un modelo multiplanta o multidivisión.

EJEMPLO 7.10. Problema multiplanta Una fábrica de zapatos tiene dos plantas, A y B. Ambas tienen dos secciones: confección y acabado, caracterizadas por los correspondientes rendimientos de producción en horas/par de zapatos (tabla 7.6.) © Ediciones Pirámide

345

Decisiones empresariales con hoja de cálculo TABLA 7.6 Rendimientos de las plantas A y B Planta A

Planta B

Normales

De lujo

Normales

De lujo

Confección

4

2

5

3

Acabado

2

5

5

6

Las horas disponibles en cada sección y en cada planta se muestran en la tabla 7.7. TABLA 7.7 Horas disponibles en cada sección y planta Planta A

Planta B

Confección

80

60

Acabado

60

75

Además, se utilizan 400 gr de piel por cada par de zapatos. Todos utilizan piel del mismo tipo, de la que se dispone de un máximo de 12 kg. Los beneficios unitarios de los dos tipos de zapatos en las dos plantas son los que se muestran en la tabla 7.8. TABLA 7.8 Beneficios unitarios Planta

Zapatos Normales

Lujo

A

10

15

B

10

15

En principio, puede parecer que este problema podría plantearse como dos PL distintos. Sin embargo, existe una restricción común: la cantidad de piel disponible, por lo que es preciso plantearlo conjuntamente si no queremos suboptimizar. Variables: xij: Producción de zapatos del tipo i (i = 1 normales, i = 2 de lujo) en la planta j (j = 1 planta A, j = 2 planta B).

346

© Ediciones Pirámide

Modelización de problemas de PL (II) Restricciones: 1.

Restricción común (piel): 0,4x11 + 0,4x21 + 0,4x12 + 00,4x22 ≤ 12

2.

Restricciones planta A: 4x11 + 2x21 ≤ 80 2x11 + 5x21 ≤ 60

3.

Restricciones planta B: 5x12 + 3x22 ≤ 60 5x12 + 6x22 ≤ 75

4.

No negatividad de las variables: x11, x21, x12, x22 ≥ 0

Función objetivo: Se trata de maximizar los beneficios: Max(z) = 10x11 + 15x21 + 10x12 + 15x22 La entrada de datos y la solución de este problema, en el formato estándar Solver, se muestran a continuación. La definición del problema sería: CUADRO 7.42 Formulación del ejemplo 7.10

© Ediciones Pirámide

347

Decisiones empresariales con hoja de cálculo CUADRO 7.42 (continuación)

El cuadro de diálogo del Solver sería: CUADRO 7.43 Cuadro de diálogo del Solver del ejemplo 7.10

La solución para el problema es:

348

© Ediciones Pirámide

Modelización de problemas de PL (II) CUADRO 7.44 Solución del ejemplo 7.10

Una vez solucionado el problema, el análisis de sensibilidad que proporciona Solver es el siguiente:

© Ediciones Pirámide

349

Decisiones empresariales con hoja de cálculo CUADRO 7.45 Análisis de sensibilidad del ejemplo 7.10

El valor de la actividad dual de la restricción común (kilos de piel utilizada), puede interpretarse como un precio de transferencia que la central carga a cada una de las divisiones por su consumo de piel. En concreto, si para consumir un kilo de piel cada una de las plantas tuviera que pagar 16,66 unidades monetarias, la solución de cada uno de los problemas individuales sería la misma que la del problema conjunto.

7.2.2. Modelos multiperíodo En muchas ocasiones es preciso planificar las actividades de una planta a lo largo de varios períodos. En estos casos, es habitual considerar una identidad contable del tipo: Stock inicial + Entradas (compras o producción) = = Salidas (a otra unidad o ventas) + Stock final De tal manera que los modelos correspondientes a los períodos consecutivos están unidos tan sólo por estas restricciones de coherencia en los stocks. La estructura de este tipo de problemas es del tipo que señala la figura 7.10, donde las matrices «B» representan los coeficientes de las restricciones correspondientes a cada período. Típicamente, las matrices «A» corresponden a las restricciones de almacenamiento, los vectores «c» representan los costes o beneficios

350

© Ediciones Pirámide

Modelización de problemas de PL (II) correspondientes a cada período y, por último, los vectores «s» son los costes de almacenamiento en cada período.

c1

s1

c2

ct

s2

st

B1

b1 A1 B2

b2 A2

Bt

At

bt

Figura 7.10. Estructura de un modelo multiperíodo.

Reordenando las columnas, este problema puede convertirse fácilmente en el de la figura 7.11.

s1

s2

st

c1

c2

ct

B1 A1

b1 B2

b2

A2

At Bt

bt

Figura 7.11. Estructura de un modelo multiperíodo reordenado. © Ediciones Pirámide

351

Decisiones empresariales con hoja de cálculo Obsérvese que el dual del problema que representa la figura 7.10 nos daría una estructura igual a la de los modelos multiplanta. Por tanto, pueden aplicarse los algoritmos de descomposición anteriormente comentados.

EJEMPLO 7.11. Problema multiperíodo. Venta de trigo La agricultora Ana tiene una finca en la que tiene plantado trigo. Este año espera recoger la cosecha en julio-agosto, habiendo calculado que será de 1.000 t. También tiene un silo con una capacidad de 1.200 t de las que ahora (primeros de julio) tiene almacenadas 300 t que aún no ha vendido del año pasado. Ana, que ha estudiado Administración de Empresas, ha elaborado un modelo econométrico sobre los precios del trigo en los próximos meses, que le ha dado las siguientes previsiones para los próximos doce meses: TABLA 7.9 Precio del trigo en los siguientes meses Período

Precio (€/t) previsto

Julio-agosto

150

Septiembre-octubre

155

Noviembre-diciembre

158

Enero-febrero

160

Marzo-abril

162

Mayo-junio

165

Gracias a su experiencia, sabe que cada dos meses que mantiene el trigo en el silo pierde un 0,5 % del peso. También ha averiguado que los tipos de interés están al 6 % anual (TAE). Ana quiere que al final de la temporada que viene (final de junio del año que viene) pueda obtener el máximo dinero posible. Variables: xt: Cantidad de trigo vendida en el período t. st: Cantidad de trigo almacenado en el silo al final del período t, donde t = = {julio-agosto = 1, septiembre-octubre = 2, noviembre-diciembre = 3, enero-febrero = 4, marzo-abril = 5, mayo-junio = 6}.

352

© Ediciones Pirámide

Modelización de problemas de PL (II) Restricciones: 1.

En cada período se debe cumplir que: Stock inicial + cosecha − venta = stock final

Si tenemos en cuenta que en cada período se pierde un 0,5 % de lo que hay en stock, el stock al principio de cada período debe ser un 99,5 % del que había en el período anterior. Lo anterior lo podemos expresar en las siguientes ecuaciones: Julio-agosto

2.

300 + 1.000 − x1 = s1

Septiembre-octubre

0,995s1 − x1 = s2

Noviembre-diciembre

0,995s2 − x2 = s3

Enero-febrero

0,995s3 − x3 = s4

Marzo-abril

0,995s4 − x4 = s5

Mayo-junio

0,995s5 − x5 = s6

En ningún período la cantidad del trigo almacenado en el silo debe ser superior a su capacidad máxima de 1.200 t: Julio-agosto

s1 ≤ 1.200

Septiembre-octubre

s2 ≤ 1.200

Noviembre-diciembre

s3 ≤ 1.200

Enero-febrero

s4 ≤ 1.200

Marzo-abril

s5 ≤ 1.200

Mayo-junio

s6 ≤ 1.200

Función objetivo: Maximizar el dinero de Ana al final de la temporada es equivalente a maximizar los ingresos procedentes de la venta de trigo más los intereses generados al colocar en el banco los ingresos procedentes de esa venta al 6 % de interés. De esta © Ediciones Pirámide

353

Decisiones empresariales con hoja de cálculo forma, si, por ejemplo, vendemos trigo en el período julio-agosto, tendremos diez meses de intereses, por lo que por cada euro depositado en el banco obtendremos (1 + 0,06)10/12. De esta forma, la función objetivo quedará: Max(z) = (1 + 0,06)10/12 × 150 × x1 + (1 + 0,06)8/12 × 155 × x2 + + (1 + 0,06)6/12 × 158 × x3 + (1 + 0,06)4/12 × 160 × x4 + + (1 + 0,06)2/12 × 162 × x5 + (1 + 0,06)0/12 × 165 × x6 La entrada de datos y la solución de este problema, en el formato estándar Solver, se muestran a continuación. La definición del problema sería: CUADRO 7.46 Formulación del ejemplo 7.11

El cuadro de diálogo del Solver sería:

354

© Ediciones Pirámide

Modelización de problemas de PL (II) CUADRO 7.47 Cuadro de diálogo del Solver del ejemplo 7.11

La solución para el problema es: CUADRO 7.48 Solución del ejemplo 7.11

© Ediciones Pirámide

355

Decisiones empresariales con hoja de cálculo Como puede verse en la solución, en el primer período vende 100 toneladas, ya que si no lo hace, no le cabe la cosecha en el silo. En septiembre-octubre no vende nada y, tal como estaba previsto, se le produce una merma del 0,5 %, por lo que le quedan en almacén 1.194 toneladas. En noviembre-diciembre vende todo lo que le queda en el silo y lo deposita en el banco. A final de temporada tiene 209.004,31 € en el banco. Una vez solucionado el problema, el análisis de sensibilidad que proporciona Solver es el siguiente: CUADRO 7.49 Análisis de sensibilidad del ejemplo 7.11

Del análisis de sensibilidad deducimos por ejemplo que, si alguien nos alquilase capacidad de almacenamiento en julio-agosto, podríamos estar dispuestos a pagarle hasta 3,58 €/t (véase Precio sombra septiembre-octubre Stock final). Si

356

© Ediciones Pirámide

Modelización de problemas de PL (II) vendiéramos trigo en septiembre-octubre dejaríamos de ganar 0,72 € por cada tonedada vendida (gradiente reducido septiembre-octubre Venta (t)); si lo hiciéramos en enero-febrero dejaríamos de ganar 0,35 €/t. Si, en cambio, nuestra cosecha fuera una tonelada superior a la esperada (en lugar de 1.000 cosechara 1.001 toneladas), entonces los ingresos totales aumentarían en 157,46 € (restricciones julio-agosto Venta(1) Precio sombra).

EJEMPLO 7.12. Problema multiperíodo. Cash management La empresa «Cash Management S. A.», consultora internacional de alto prestigio sobre temas de cash management, quiere optimizar los rendimientos de uno de sus clientes más importantes. Después de agregar todos los flujos de caja de los próximos cuatro meses y de hablar con diferentes instituciones financieras ha llegado a los siguientes datos. Las disponibilidades de fondos se representan con un signo positivo (+) y las necesidades con uno negativo (−); ambas vienen expresadas en millones de euros.

Mes

Disponibilidad (+) o necesidad (−)

1

+ 200

2

−150

3

−100

4

+ 250

Los tipos de interés mensuales (en porcentajes) percibidos (pagados) por los depósitos (préstamos) son:

Mes

1

2

3

4

1

x

1,2

2,3

3,6

2

−1,2

x

1,2

2,3

3

−2,5

−1,2

x

1,2

4

−3,6

−2,5

−1,2

x

La interpretación de esta tabla es la siguiente: por ejemplo, el 2,3 de la posición 1-3 significa que un depósito a dos meses (entre el mes uno y el tres) se re© Ediciones Pirámide

357

Decisiones empresariales con hoja de cálculo munera con el 2,3 %. La cifra de −1,2 % de la posición 3-2 significa que tomar un crédito en el mes dos para pagarlo en el mes tres cuesta 1,2 %. Nos encontramos con un problema de tipo Cash Management. Considerando como nodos los diferentes meses y como arcos las inversiones y préstamos, podemos resolver el problema mediante un modelo de redes. Podíamos haber solucionado el problema separando los flujos de depósitos y préstamos, pero lo hemos resuelto de forma conjunta para facilitar la comprensión. Como condición principal se tienen que cumplir que, financieramente, en cada período (mes), las entradas sean igual a las salidas.

200

150

100

250

1,036 1,023

1,023 1

1,012

2

0,988

1,012 0,988

3

1,012

4

0,988 0,975

0,975 0,964

Variables: xij: Nos indica la cantidad invertida o prestada en el mes i, cuyo vencimiento es en el mes j, donde i = j = {1 = Mes 1, 2 = Mes 2, 3 = Mes 3 y 4 = Mes 4}. El subíndice i nos indica el mes en el que estamos realizando la inversión o nos conceden el préstamo, y el segundo subíndice, es decir, el j, nos indica el mes de vencimiento del préstamo o del depósito. Obsérvese que, por ejemplo, si del mes uno al mes dos invertimos un millón de euros, obtendremos la misma cantidad, pero multiplicada por 1,012, siendo este el interés: 1.000.000(1 + 0,012) = 1.012.000 Del mismo modo, comprobamos que, si pedimos un préstamo en el primer mes con vencimiento en el segundo, la cantidad que percibimos realmente es: 1.000.000(1 − 0,012) = 988.000

358

© Ediciones Pirámide

Modelización de problemas de PL (II) Restricciones: 1.

Equilibrio en cada período. Cada mes debe haber un equilibrio entre entradas y salidas de fondos. En base al grafo expuesto con anterioridad tenemos las siguientes restricciones para cada mes: Mes 1: 200 + 0,988x2 − 1 + 0,975x3 − 1 + 0,964x4 − 1 = x1 − 2 + x1 − 3 + x1 − 4 Mes 2: 1,012x1 − 2 + 0,988x3 − 2 + 0,975x4 − 2 = 150 + x2 − 1 + x2 − 3 + x2 − 4 Mes 3: 1,023x1 − 3 + 1,023x2 − 3 + 0,988x4 − 3 = 100 + x3 − 1 + x3 − 2 + x3 − 4 Mes 4: 1,036x1 − 4 + 1,023x2 − 4 + 1,012x3 − 4 + 250 = x4 − 1 + x4 − 2 + x4 − 3 + x4 − 5

Función objetivo: Nuestra función objetivo consiste en maximizar la diferencia entre las entradas y las salidas del cuarto mes, y aunque tendríamos que tener en cuenta la disponibilidad de fondos del cuarto mes no es necesario, porque es un valor fijo, por lo que no va afectar al valor óptimo de la función objetivo. Max(z) = x4 − 5 La entrada de datos y la solución de este problema, en el formato estándar Solver, se muestran a continuación. La definición del problema sería:

CUADRO 7.50 Formulación del ejemplo 7.12

© Ediciones Pirámide

359

Decisiones empresariales con hoja de cálculo CUADRO 7.50 (continuación)

El cuadro de diálogo del Solver sería: CUADRO 7.51 Cuadro de diálogo del Solver del ejemplo 7.12

360

© Ediciones Pirámide

Modelización de problemas de PL (II) La solución para el problema es: CUADRO 7.52 Solución del ejemplo 7.12

Una vez solucionado el problema, el análisis de sensibilidad que proporciona Solver es el siguiente: © Ediciones Pirámide

361

Decisiones empresariales con hoja de cálculo CUADRO 7.53 Análisis de sensibilidad del ejemplo 7.12

362

© Ediciones Pirámide

Modelización de problemas de PL (II)

EJERCICIOS PROPUESTOS 1.

Resolver óptimamente el ejemplo 2.2 del capítulo 2 (Trasporte de bioetanol).

2.

Problema Frutas Universales, S. A.: transporte

La compañía Frutas Universales, S. A. importa plátanos de plantaciones en Honduras y Costa Rica tanto a Miami como a San Diego. La compañía vende plátanos en ambas ciudades. El resto son distribuidos a Denver, Kansas City y Fort Worth. Este mes se han cosechado 200.000 kg de plátanos en Honduras y 100.000 kg en Costa Rica. La demanda para la venta es de 75.000 kg en Miami y 60.000 kg en San Diego. Denver necesita 60.000 kg, Kansas City espera 40.000 kg y Fort Worth desea 65.000 kg. Se conocen las distancias siguientes (en km): Hacia Desde Miami Honduras Costa Rica

San Diego

900

2.400

1.200

2.700

Hacia Desde Denver

Kansas City

Fort Worth

Miami

2.107

1.226

1.343

San Diego

1.095

1.833

1.348

Formule un modelo matemático para determinar cómo deben transportarse los plátanos para minimizar el número total de kilómetros de viaje de los plátanos. Preguntas 1. 2. 3. 3.

Defina las variables que intervienen en el problema. Defina las restricciones y escríbalas. Defina la función objetivo.

Producción-logística: transporte

La empresa FLYSA se dedica a la producción y posterior venta de pantalones y cazadoras vaqueras. Estos productos se manufacturan en dos fábricas que la © Ediciones Pirámide

363

Decisiones empresariales con hoja de cálculo empresa posee. La fábrica que la empresa posee en Getafe confecciona las cazadoras con un coste unitario de 20 euros y los pantalones con un coste de 15 euros /unidad. Para ello se sirve de una vieja máquina que se utiliza indistintamente para la confección de 5.000 piezas mensuales. Sin embargo, la fábrica que FLYSA cuenta en el polígono industrial de Tres Cantos con una moderna maquinaria que permite la confección de 9.000 piezas mensuales con un coste de 21 €/cazadora y 18 €/pantalón. Los gastos de amortización de la maquinaria que los directivos de FLYSA han decidido cargar sobre cada pieza ascienden a 3,5 €. Toda la mercancía confeccionada se distribuye a las tres tiendas que tiene la compañía, bajo el nombre de «FAR-WEST», en diversos puntos comerciales de Madrid. Así en la tienda «FAR-WEST» del centro comercial Parquesur, su gerente ha decidido aplicar unos márgenes del 40 % sobre el precio de coste mayor. Además, sabemos que esta tienda vendió el mes pasado 7.000 piezas y que las previsiones más optimistas para las ventas de este mes son que permanezcan iguales. FLYSA cuenta con otra tienda, situada en la calle Serrano, llamada «FARWEST luxe», en la que atiende exclusivamente a sus clientes con tarjeta. Esta tarjeta, que permite la compra de un pantalón o una cazadora al mes, otorga una serie de ventajas, como son la posibilidad de aparcamiento gratuito, descuentos en la compra de entradas para conciertos... Esto justifica unos precios de 30 €/cazadora y 26 €/pantalón. Según los datos de la compañía, sólo existen 3.000 propietarios de la tarjeta «FAR-WEST luxe», que permite la compra de un pantalón o una cazadora al mes en la tienda de Serrano. Por su parte, la tienda del centro comercial La Vaguada-Madrid 2 facturó el mes pasado 4.000 piezas, esperándose para este mes un posible incremento del 25 % como máximo, debido al obsequio de una mochila que la tienda realiza por cada cazadora o pantalón comprado. Los precios, además, son bastante competitivos, siendo el precio de venta al público de la cazadora de 27 euros y el del pantalón 23 euros. Asimismo, la compañía obliga a cada tienda a vender un mínimo de 1.200 cazadoras y 900 pantalones, y sabe que el número total de pantalones demandados será superior al de cazadoras y que en Parquesur se demandan al menos tres pantalones por cazadora. El nuevo director comercial necesita saber el número de unidades a remitir a cada tienda para maximizar el beneficio comercial mensual de FLYSA durante el presente mes. Preguntas 1. 2. 3.

364

Defina las variables que intervienen en el problema. Defina las restricciones y escríbalas. Defina la función objetivo. © Ediciones Pirámide

Modelización de problemas de PL (II) 4.

Producción-logística: transporte

Un empresario ganadero tiene tres vaquerías (identificadas como X, Y y Z) situadas en cierta región española. Cada día ordeña mecánicamente a sus vacas y lleva la leche recogida a los centros comarcales de tratamiento (identificados como T1, T2, T3 y T4), donde la empresa que los explota se dedica a pasteurizar y embotellar la leche de todos los empresarios de la zona para su posterior venta a los distribuidores. La normativa ganadera de la CEE ha fijado como cuota máxima para él la cantidad total de 10.000 litros diarios de leche, siendo la producción diaria en cada vaquería la siguiente: Vaquería

Producción (litros)

X

3.000

Y

4.000

Z

5.000

Hasta el momento, el excedente total que se produce se reparte entre sus trabajadores como una parte más de su salario, pero esta situación no satisface al empresario, porque le supone un mayor gasto, al conllevar la alimentación del ganado y su cuidado. Por ello, estaría interesado en reducir la producción. Los centros de tratamiento reciben la leche de todos los ganaderos de los alrededores. Para evitar saturaciones han decidido fijar unos cupos diarios máximos por ganadero, que en nuestro caso son: Centro de tratamiento

Producción (litros)

T1

2.500

T2

2.500

T3

3.000

T4

4.000

Las distancias en kilómetros que separan las vaquerías y los centros de tratamiento vienen recogidos en la siguiente tabla: Distancia en km hasta los centros de tratamiento

© Ediciones Pirámide

Vaquería

T1

T2

T3

T4

X

70

60

50

40

Y

60

40

70

80

Z

40

50

80

90

365

Decisiones empresariales con hoja de cálculo El transporte de la leche desde la vaquería al centro de tratamiento que corresponde corre a cargo de una contrata exterior, que cobra a razón de 0,5 euros por kilómetro y litro de leche transportado. En su esfuerzo por reducir costes, nuestro empresario quiere minimizar sus costes de transporte y conocer con exactitud a cuánto ascienden éstos y, de paso, averiguar en qué vaquerías es posible reducir la producción y en qué cantidad. Preguntas 1. 2. 3. 5.

Defina las variables que intervienen en el problema. Defina las restricciones y escríbalas. Defina la función objetivo.

Financiación-inversión: «cash management»

De acuerdo con cálculos actuariales, la Empresa Seguros Autónomos, S. A. (SASA) debe hacer frente a los siguientes pagos en los próximos cinco años: Año

Cantidad a pagar (miles €)

1

500

2

1.000

3

2.000

4

2.500

5

2.000

TOTAL

8.000

En el mercado financiero, y conforme al riesgo que la empresa está dispuesta a asumir, existen los siguientes tipos de activos financieros de renta fija.

Activo

366

Descripción

Plazo vencimiento (años)

Tipo de interés nominal anual

Coste de compra (miles €)

Valor al vencimiento (miles €)

TIR

A

Letras descuento

1



890

1.000

12,359

B

Letras descuento

1



880

1.000

13,636

C

Bonos cupón explícito

3

11,5

1.000

1.000

14,934

D

Bonos cupón 0

3



1.000

1.400

11,869

E

Bonos cupón explícito

5

10,8

1.000

1.000

11,269

F

Bonos cupón 0

5



1.000

1.680

11,117

G

Bonos cupón explícito

5

10,7

1.000

1.000

11,267

© Ediciones Pirámide

Modelización de problemas de PL (II) Además de los activos financieros anteriores, SASA puede invertir en Repos a un día. Se estima que el tipo de interés que puede obtener de los fondos invertidos en Repos será como mínimo el 6% y como máximo el 10% en cualquier momento a lo largo de los cinco años. SASA desea saber la inversión mínima inicial necesaria para hacer frente en su momento a los pagos calculados actuarialmente. Preguntas 1. 2. 3. 6.

Defina las variables que intervienen en el problema. Defina las restricciones y escríbalas. Defina la función objetivo.

Financiación-inversión: «cash management»

El Banco Financiero Autónomo de Madrid (FAM) precisa conocer la forma de invertir de manera óptima su tesorería que, en este momento, asciende a 20.000 millones de euros. Actualmente existen en el mercado los siguientes tipos de activos financieros, plazos y niveles de riesgo. Activo financiero

Plazo

Rentabilidad

Nivel de riesgo

1 mes

8%

1

6 meses

8,5%

3

Letras a un año

1 año

9%

4

Obligaciones a 3 años

3 años

10%

6

Obligaciones a 5 años

5 años

10,5%

9

6 meses

9%

4

Pagarés a un año

1 año

10%

6

Obligaciones a 3 años

3 años

12%

9

DEUDA PÚBLICA Letras a un mes Letras a seis meses

DEUDA PRIVADA Pagarés a seis meses

El nivel de riesgo va de 0 a 10, de tal manera que cero sería la inversión menos arriesgada (de hecho, no tendría ningún riesgo), mientras que 10 sería el tipo de inversión más arriesgada. La FAM desea optimizar la rentabilidad de su tesorería. Sin embargo, teniendo en cuenta las instrucciones de la dirección, no quiere que la deuda privada © Ediciones Pirámide

367

Decisiones empresariales con hoja de cálculo supere el 20% de la inversión total en deuda pública y que el índice de riesgo medio no llegue a 6. El horizonte temporal de la inversión, en cuyo momento la rentabilidad de la inversión habrá de ser óptima, es de un año. Se supone que la estructura de tipos de interés, tanto para deuda pública como para privada, se mantendrá constante a lo largo del tiempo. Preguntas 1. 2. 3. 7.

Defina las variables que intervienen en el problema. Defina las restricciones y escríbalas. Defina la función objetivo.

Financiación-inversión: «cash management»

La empresa «N&N», de fabricación de hormigón armado, ha hecho una previsión de sus actividades durante los próximos cuatro años. Las siguientes disponibilidades de fondos se representan con un signo positivo (+) y las necesidades con uno negativo (−) durante estos ejercicios; ambas vienen expresadas en millones de euros. Año

Disponibilidad (+) o necesidad (−)

1

+60

2

−80

3

−20

4

+40

Para optimizar el rendimiento de estos flujos la empresa contrata los servicios de una asesoría financiera, que tras hacer un estudio de los posibles créditos e inversiones del mercado llega a las siguientes conclusiones sobre las posibles alternativas. Los tipos de interés anuales en porcentaje percibidos (pagados) por los depósitos (préstamos) son:

368

Año

1

2

3

4

1

x

11

21

33

2

−11,5

x

11

21

3

−23

−11,5

x

1,2

4

−34

−23

−11,5

x

© Ediciones Pirámide

Modelización de problemas de PL (II) Se presupone que los intereses, tanto de depósitos como de préstamos, se pagan a su vencimiento. Preguntas 1. 2. 3. 8.

Defina las variables que intervienen en el problema. Defina las restricciones y escríbalas. Defina la función objetivo.

Financiación-inversión: arbitraje

La sociedad UUE, S. A., fabricante de material informático, tiene cinco sucursales en distintas provincias españolas: Madrid, Barcelona, Sevilla, Bilbao y Valencia. Debido a las necesidades de liquidez de dichas sucursales en momentos de tiempo diferentes, es preciso traspasar recursos financieros de una provincia a otra mediante transferencias bancarias, con los costes que esto conlleva. Así, el 19 de diciembre de 2005 las sucursales de Bilbao y Valencia necesitan 35.000 y 53.000 euros, respectivamente. Por otro lado, las sucursales de Madrid, Barcelona y Sevilla presentan un superávit de 50.000, 40.000 y 30.000 euros, respectivamente. Dadas las distintas alternativas posibles para dichas transferencias monetarias, y con el fin de satisfacer las necesidades de las sucursales de Valencia y Bilbao, se pretende encontrar las operaciones a realizar, con el objeto de maximizar el valor final del efectivo disponible en el conjunto de todas las sucursales. Los costes que implican estas transferencias se indican en la siguiente tabla: Madrid

Barcelona

Sevilla

Bilbao

Valencia

Madrid

0

0,0005

0,0024

0,0026

0,0027

Barcelona

0,0005

0

0,0003

0,0018

0,0027

Sevilla

0,0024

0,0003

0

0,0011

0,0025

Bilbao

0,0026

0,0018

0,0011

0

0,0002

Valencia

0,0027

0,0027

0,0025

0,0002

0

Obsérvese que las comisiones cobradas por las transferencias son iguales en ambas direcciones. Así, por ejemplo, los costes de la transferencia de MadridSevilla son los mismos que los de Sevilla-Madrid. Preguntas 1. 2. 3. © Ediciones Pirámide

Defina las variables que intervienen en el problema. Defina las restricciones y escríbalas. Defina la función objetivo.

369

Decisiones empresariales con hoja de cálculo

BIBLIOGRAFÍA Brown, G. G. y McBride, R. D. (1984). «Solving generalized networks», Management Science, vol. 30, n.º 12, diciembre, Estados Unidos. Dantzig, G. B. y Van Slyke, R. M. (1964). «Generalized Upper Bounding Technique», Journal of Computer and System Sciences, 1, pp. 122-138. Dantzig, G. B. y Wolfe, P. (1961). «The Decomposition Algorithm for Linear Programming», Econometrica, 29, pp. 767-778. Smith, W. L. (1982). «Renewal theory and its ramifications», Journal of the Royal Statistical Society. Series B. (Methodological), vol. 20, n.º 2 (1958), pp. 243-302.

370

© Ediciones Pirámide

8

Programación entera y mixta

8.1. LA PROGRAMACIÓN ENTERA No siempre es admisible que las variables de un problema de decisión tomen valores continuos. Frecuentemente, nos enfrentamos a decisiones dicotómicas (de tipo sí o no) o que deben tomarse en unidades discretas. Por ejemplo, debe decidirse si se construye o no una planta, cuántos almacenes deben abrirse para satisfacer una demanda determinada, etc. No cabe, por ejemplo, construir 0,78 plantas o abrir 3,7 almacenes. Cuando en un problema existen variables que deben tomar valores discretos, y tanto la función objetivo como las restricciones tienen forma lineal, se dice que el problema es de programación entera (PE). Cuando los valores que pueden tomar las variables discretas son tan sólo cero o uno, se dice que el problema es de programación binaria o programación 0-1. La mayor parte de los programas de ordenador que resuelven problemas de PE se cimientan a la programación 0-1. Además, muchas de las aplicaciones reales de PE se definen directamente en términos de variables binarias. La PE tiene una gran cantidad de aplicaciones en todos los campos. Sin embargo, a pesar de utilizar las técnicas más eficientes de que se dispone en la actualidad, muchos de los problemas de PE que se encuentran en la práctica no pueden resolverse, por exceder la disponibilidad de tiempo de ordenador y/o su capacidad de memoria. Por tanto, el tamaño de los problemas en números enteros debe ser considerablemente menor que en PL continua. Para evitar esta limitación, podría parecer sensato calcular la solución de un problema de PE redondeando los valores de las variables de su correspondiente solución continua. Cuando el orden de magnitud de las variables de decisión es «grande» (decenas o centenares, por ejemplo), puede ser aceptable recurrir al redondeo, ya que el error que se comete al redondear es pequeño en términos relativos. Desgraciadamente, en la mayor parte de las aplicaciones los valores típicos © Ediciones Pirámide

371

Decisiones empresariales con hoja de cálculo de las variables de decisión no son grandes. Entonces, el redondeo no es aconsejable debido a dos razones: a) La solución redondeada no es necesariamente óptima. En muchos casos, ni siquiera estará cerca del óptimo. b) La solución redondeada puede no ser factible. Un ejemplo que ilustra la diferencia existente entre la solución por redondeo y el óptimo de un problema es: Max(z) = y1 + y2 sujeto a: −2y1 + 2y2 ≥ 1 −8y1 + 10y2 ≤ 13 La solución continua de este problema es y1 = 4, y2 = 4,5. En cambio, la solución discreta es y1 = 1 e y2 = 2, como lo prueba la figura 8.1. Como puede verse, existe una diferencia sustancial entre ambas soluciones, y ningún redondeo generaría una solución factible.

5 4 y2 3 2 1 0 0

1

2

3

4

5

6

y1

Figura 8.1. Comparación entre las soluciones continua y discreta de un problema de PE.

Sin embargo, existen algunas formulaciones estándar (por ejemplo, la del problema de asignación que discutíamos en el capítulo 6) que siempre dan lugar a

372

© Ediciones Pirámide

Programación entera y mixta soluciones enteras cuando se resuelven mediante algoritmos convencionales de PL. Esto se debe a que las matrices de coeficientes de estos problemas poseen una propiedad especial llamada unimodularidad1.

8.1.1. Programación entera pura (IP) En los problemas de programación entera pura, todas las variables de decisión están restringidas a tomar valores enteros. Formalmente, un problema de PE pura puede expresarse como: n

Max(z) =

∑ cj yj j=1

sujeto a: n

∑ aij yj ≤ bi

∀i∊{1, 2, ..., m}

yj∊{0, 1, 2, ...}

∀j∊{1, 2, ..., n}

j=1

o en forma matricial: Max(z) = cTy sujeto a: Ay ≤ b yj∊{0, 1, 2, ...}

∀j∊{1, 2, ..., n}

Análogamente, un problema de programación entera binaria se puede expresar en forma matricial como: Max(z) = cTy sujeto a: Ay ≤ b yj∊{0, 1} 1

© Ediciones Pirámide

∀j∊{1, 2, ..., n}

Vid. Garfinkel y Nemhauser (1972) y Salkin (1975).

373

Decisiones empresariales con hoja de cálculo Si el problema que debe resolverse requiere variables enteras generales y sólo se dispone de un algoritmo de programación 0-1, puede emplearse el siguiente cambio de variable: N

w=

∑ 2iyi i=0

en donde yj∊{0, 1} ∀i∊{0, 1, 2, ..., N}. Con esto, se obtiene una variable, en N

−}, donde w − = ∑ 2i. Por ejemplo: w∊{0, 1, 2, ..., w i=0

3 = 201 + 211 7 = 201 + 211 + 221 9 = 201 + 210 + 231 El siguiente ejemplo ilustra cómo pasar de un planteamiento de programación entera pura a otro de programación binaria.

EJEMPLO 8.1. Sea el problema: Max(z) = w1 + 2w2 sujeto a: 2w1 + 3w2 ≤ 7 w1 ≤ 6 w1∊{0, 1, 2, 3, 4, 5, 6, 7} w2∊{0, 1, 2, 3} w1 = 20y01 + 21y11 + 22y21 = 1y01 + 2y11 + 4y21 w2 = 20y02 + 21y12 = 1y02 + 2y12 Con lo que el problema queda: Max(z) = y01 + 2y11 + 4y21 + 2y02 + 4y12

374

© Ediciones Pirámide

Programación entera y mixta sujeto a: 2y01 + 4y11 + 8y21 + 3y02 + 6y12 ≤ 7 y01 + 2y11 + 4y21 ≤ 6 y01, y11, y21, y02, y12 ∊ {0,1}

8.1.2. Programación mixta En los problemas de programación mixta algunas variables de decisión están restringidas a tomar valores enteros, mientras que otras pueden tomar valores continuos en la recta real. Un problema de programación mixta puede expresarse como: Max(z) = cTx + d Ty sujeto a: Ax + By ≤ b x≥0 yj∊{0, 1, 2, ...}

∀j∊{1, 2, ..., n}

En este caso, el vector x contiene todas las variables que pueden tomar valores continuos, mientras que el vector y contiene n variables enteras.

8.2. ALGORITMOS DE PROGRAMACIÓN ENTERA PURA Consideraremos dos tipos de algoritmos para resolver problemas de PE pura. Son los algoritmos enumerativos (Branch and Bound, Balas, etc.) y los algoritmos de planos cortantes (como el de Gomory, por ejemplo).

8.2.1. Programación mixta Los algoritmos enumerativos obtienen la solución del problema a base de enumerar, implícita o explícitamente, todas las soluciones posibles, escogiendo la mejor de todas ellas. © Ediciones Pirámide

375

Decisiones empresariales con hoja de cálculo La forma más inmediata de resolver problemas de PE consistiría en calcular todas las posibles soluciones y buscar la mejor entre ellas (enumeración explícita). Este método tiene graves inconvenientes. Por ejemplo, en el caso de la programación entera binaria, el número de posibles soluciones es 2 elevado al número de variables enteras. En la figura 8.2 se representa la combinatoria de un problema con cuatro variables 0-1. Encima y debajo de cada nodo se presentan los subíndices de las variables que toman valores «1» y «0», respectivamente. Como puede apreciarse, el árbol tiene 24 = 16 nodos. De esta forma, un problema con 10 variables binarias tendría: 210 = 1.024 soluciones. Si el problema tuviera 20 variables, existirían: 220 = 1.048.276 soluciones. Ni el ordenador más potente sería capaz de enumerar todas las soluciones cuando el número de variables es medianamente grande. Por ello, resulta necesario acudir a métodos más sofisticados.

1,2,3,4

1,2 3,4

1 2,3,4

2 1,3,4

3 1,2,4

4 1,2,3

1,3 2,4

1,4 2,3

2,3 1,4

2,4 1,3

1,2,3 4

1,2,4 3

1,3,4 2

2,3,4 1

3,4 1,2

1,2,3,4

Figura 8.2. Combinatoria de un problema con cuatro variables binarias.

Los métodos de enumeración implícita aplican un conjunto de reglas para evitar enumerar soluciones infactibles o peores que la mejor solución factible que se haya localizado hasta el momento. La familia de algoritmos enumerativos más importante es la de los algoritmos de Branch and Bound (BB). Prácticamente todos los códigos profesionales de PE están basados en un algoritmo de tipo BB. En algunos casos se adopta una estrategia mixta que permite mezclar un algoritmo tipo BB con otro de planos cortantes.

376

© Ediciones Pirámide

Programación entera y mixta

8.2.1.1. Algoritmos de «Branch and Bound» Los algoritmos de tipo Branch and Bound tienen su origen en Land y Doig (1960). Esta metodología se ha sofisticado posteriormente de forma extraordinaria, pero, sin embargo, la idea básica es muy sencilla y la ilustraremos mediante el siguiente ejemplo. EJEMPLO 8.2. Sea el problema: Max(z) = 60x1 + 50x2 sujeto a: 2x1 + 4x2 ≤ 80 3x1 + 2x2 ≤ 55 x1

≤ 16 x2 ≤ 18

x1, x2 ∈{0, 1, 2, ...} Sin tener en cuenta las restricciones de integralidad, la solución del problema es: x1 = 7,50, x2 = 16,25 y z = 1.262,50. Bound: Vamos a asociar esta solución con el nodo 0. Lógicamente, cualquier solución entera tendrá un valor de la función objetivo menor o igual que z = 1.262,50, puesto que al imponer la condición de integralidad el problema se hace más restrictivo. Branch: A partir del problema correspondiente al nodo 0, se generan dos problemas añadiendo a uno de ellos la restricción: x2 ≤ 16 (nodo 1) y al otro: x2 ≥ 17 (nodo 2), con el fin de investigar la solución a cada lado de la variable que está más cercana a tomar un valor entero (x2 = 16,25). Las soluciones correspondientes a estos dos problemas son: Nodo 1 (x2 ≤ 16): x1 = 7,67; x2 = 16,00; z = 1.260,00 Nodo 2 (x2 ≥ 17): x1 = 6,00; x2 = 17,00; z = 1.210,00 La solución correspondiente al nodo 2 es entera, pero es inferior a la solución del nodo 1. En este caso, como estamos maximizando la función objetivo, debe© Ediciones Pirámide

377

Decisiones empresariales con hoja de cálculo mos seguir con la resolución por el nodo 1 para intentar hallar una solución mayor a la que nos ofrece el nodo 2. En la figura 8.3 se representan gráficamente estas soluciones. Las áreas sombreadas marcan los conjuntos factibles de los problemas que se resuelven para calcular la solución correspondiente a los nodos 1 y 2.

28 24 (0)

20 y2

16

(2)

12

(1)

8 4 0 0

4

8

12 16 20 24 28 32 36 40 y1

Figura 8.3. Representación de los nodos 0, 1 y 2.

Branch: Puesto que el valor de la función objetivo en el nodo 2 (1.210) es inferior al obtenido en el nodo 1 (1.260), escogemos continuar por el nodo 1. Bound: A partir del nodo 1, se generan dos nuevos nodos 3 y 4, añadiendo las restricciones x1 ≤ 7 (nodo 3) y x1 ≥ 8 (nodo 4). Los resultados obtenidos son: Nodo 3 (x1 ≤ 7): x1 = 7,00; x2 = 16,00; z = 1.220,00 Nodo 4 (x1 ≥ 8): x1 = 8,00; x2 = 15,50; z = 1.255,00 De nuevo nos encontramos con una solución entera en uno de los nodos, que, al igual que el caso anterior, tiene un valor inferior que la solución no entera del nodo 4, por lo que deberemos seguir estudiando el nodo 4. Debemos tener en cuenta los nodos con soluciones enteras, puesto que si al continuar con el estudio obtenemos una solución de menor valor, el óptimo estará en aquellos nodos posteriores con mayor valor. En la figura 8.4 se representa la solución correspondiente a los nodos 3 y 4. Branch: Como el valor de la función objetivo en el nodo 3 (1.220) es inferior al obtenido en el nodo 4 (1.255), continuamos por el nodo 4. Bound: Desde el nodo 4 formaremos dos nuevos nodos 5 y 6, añadiendo las restricciones x2 ≤ 15 (nodo 5) y x2 ≥ 16 (nodo 6). Las correspondientes soluciones de los PL son:

378

© Ediciones Pirámide

Programación entera y mixta

28 24 20 y2

16

(4)

(3)

12 8 4 0 0

4

8

12 16 20 24 28 32 36 40 y1

Figura 8.4. Representación de los nodos 3 y 4.

Nodo 5 (x2 ≤ 15): x1 = 8,33; x2 = 15,00; z = 1.250,00 Nodo 6 (x2 ≥ 16) infactible El nodo 6 es infactible porque le pedimos que cumpla una restricción contraria a otra impuesta anteriormente (en el nodo 1 especificábamos x2 ≤ 16). En la figura 8.5 se representa la solución correspondiente al nodo 5; y con una línea negra discontinua vemos la restricción del nodo 6 para comprobar gráficamente que no se encuentra en el conjunto factible. Branch: Como el nodo 6 es infactible y la solución del nodo 5 (1.250) es mayor que el resto de nodos vistos con solución entera, continuamos por el nodo 5.

28 24 20 y2

16 (5)

12 8 4 0 0

4

8

12 16 20 24 28 32 36 40 y1

Figura 8.5. Representación del nodo 5. © Ediciones Pirámide

379

Decisiones empresariales con hoja de cálculo Bound: Desde el nodo 5 formaremos los nodos 7 y 8, añadiendo las restricciones x1 ≤ 8 (nodo 7) y x1 ≥ 9 (nodo 8). Las correspondientes soluciones son: Nodo 7 (x1 ≤ 8): x1 = 8; x2 = 15; z = 1.230,00 Nodo 8 (x1 ≥ 9): x1 = 9; x2 = 14; z = 1.240,00 La solución del nodo 8 es entera y mejor que la correspondiente al nodo 7, que queda, por tanto, descartada. Puesto que ya no podemos seguir el estudio por ningún nodo, se ha obtenido la solución óptima en el nodo 8, x1 = 9; x2 = 14; z = 1.240,00. En la figura 8.6 se pueden ver gráficamente los nodos 7 y 8, y en la figura 8.7 se representa, en forma de diagrama de árbol, el proceso de optimización, con la solución óptima en color gris.

28 24 20 y2

16 (7)

12

(8)

8 4 0 0

4

8

12 16 20 24 28 32 36 40 y1

Figura 8.6. Representación de los nodos 7 y 8.

380

© Ediciones Pirámide

Programación entera y mixta

Nodo 0 x1 = 7,50 x2 = 16,25 z = 1.262,50

Nodo 1

Nodo 2

x2 ≤ 16,00

x2 ≥ 17,00

x2 = 16,00

x2 = 17,00

x1 = 7,67

x1 = 6,00

z = 1.260,00

Nodo 3

z = 1.210,00

Nodo 4

x1 ≤ 7,00

x1 ≥ 8,00

x1 = 7,00 x2 = 16,00

Entera

x1 = 8,00 x2 = 15,50

Entera

z = 1.220,00

z = 1.255,00

Nodo 5

Nodo 6

x2 ≤ 15,00

x2 ≥ 16,00

x2 = 15,00

infactible, porque x2 ≤ 16

x1 = 8,33 z = 1.250,00

Nodo 7 x1 ≤ 8,00

Nodo 8 x1 ≥ 9,00

x1 = 8,00 x2 = 15,00 z = 1.230,00

x1 = 9,00

Entera

x2 = 14,00

Solución óptima

z = 1.240,00

Figura 8.7. Diagrama del proceso de optimización.

© Ediciones Pirámide

381

Decisiones empresariales con hoja de cálculo Existen muchas variantes de este algoritmo básico. Las grandes cuestiones que diferencian los distintos algoritmos de la familia BB son: — ¿Por qué nodo debe continuarse la búsqueda? Un criterio sencillo consiste en escoger aquel que tenga un valor de la función objetivo más alto, en el caso de maximización, o más bajo en el caso de minimización. Sin embargo, existen otros criterios más sofisticados. — En cada nodo, ¿debe bifurcarse según una única variable? Lo más sencillo es, naturalmente, seleccionar una sola variable, pero cabe escoger varias a la vez. — ¿Qué variable debe escogerse para ramificar en cada nodo? Normalmente se escogerá aquella que esté más cercana a tomar un valor entero. Existen, sin embargo, otros criterios. Los algoritmos profesionales de BB tienen formas muy elaboradas para resolver cada una de estas cuestiones. Sin embargo, el conocimiento del problema, por parte del analista, puede permitirle reducir sustancialmente el tiempo necesario para calcular cuál es la solución óptima del problema. Para ello, los mencionados códigos proporcionan una serie de facilidades que permiten al usuario controlar parcialmente la estrategia de búsqueda. De ellas destacaremos: — Posibilidad de indicar el orden en el que se fuerza la integralidad de las variables. — Posibilidad de poner un valor límite en la función objetivo, de manera que la obtención de un valor peor que éste en cualquier nodo detenga la exploración del árbol en esa dirección. A este valor se le conoce en la terminología anglosajona como cut-off value. — Posibilidad de imponer un valor límite a la función objetivo, de forma que si se alcanza un valor igual o mejor se detenga el proceso, ya que la solución se considera suficientemente buena (en general, no será óptima). La utilización de estas posibilidades por el analista puede reducir de forma muy importante el tiempo de cálculo necesario para llegar a una solución satisfactoria. Otro aspecto importante a tener en cuenta en los problemas de PE es la formulación misma del problema. En problemas grandes, el orden en que se definen las restricciones puede afectar al tiempo de resolución del problema. En general, las condiciones más restrictivas deben aparecer definidas en primer lugar, ya que los códigos de optimización suelen verificar la factibilidad de cada solución en el mismo orden en que se han definido las restricciones. Un problema de programación entera puede incluir una serie de restricciones («planos cortantes»), además de las que definen originalmente el problema. Estas

382

© Ediciones Pirámide

Programación entera y mixta restricciones deben definirse de forma que no cambien el conjunto de soluciones del problema entero, pero eliminen alguna solución del problema continuo. Cuando se consigue encontrar restricciones que verifiquen la propiedad anterior, es muy probable que se consiga acortar de forma importante el tiempo empleado en resolver el problema.

8.2.1.2. Otros algoritmos enumerativos Otro algoritmo enumerativo importante es el algoritmo aditivo, debido originalmente a Egon Balas (1965). Se llama aditivo porque todas las operaciones matemáticas que se realizan consisten en sumar o restar. El procedimiento consiste en generar una secuencia de soluciones parciales añadiendo en cada iteración una variable y considerando las soluciones complementarias (resto de soluciones posibles). De esta forma, por enumeración implícita, podemos eliminar conjuntos de soluciones sin necesidad de evaluarlos exhaustivamente. La selección de la variable añadida se hace en función de reducir al máximo la infactibilidad en la solución actual y eliminar la redundancia.

8.2.2. Algoritmos de planos cortantes Al tratar los algoritmos de tipo Branch and Bound vimos cómo al añadir al problema un «plano cortante», el algoritmo se aceleraba sustancialmente. De hecho, existen metodologías de optimización de PE basadas completamente en el empleo de planos cortantes.

8.3. ANÁLISIS DE SENSIBILIDAD En un problema de programación entera (PE) o de programación mixta no es posible realizar el análisis de sensibilidad, ya que las variables son discretas. Si se observa, el Solver, cuando se le indica mediante las restricciones que las variables son enteras o binarias, al mostrar la solución no ofrece el informe de sensibilidad ni el de límites. Por esta razón, en los próximos capítulos de modelización de problemas de programación entera y mixta no se hará referencia a este análisis. Sin embargo, para el decisor sigue resultando importante conocer cómo afectan a la solución cambios en los parámetros del problema. Para ello, deberá recurrir a ensayos de la solución, modificando los parámetros y buscando pautas de comportamiento de la solución mediante escenarios.

© Ediciones Pirámide

383

Decisiones empresariales con hoja de cálculo

EJERCICIOS PROPUESTOS Para cada ejercicio: — Exprese gráficamente cada uno de los conjuntos de soluciones factibles en cada paso del algoritmo de «Branch and Bound». — Escriba la arborescencia que representa todos los pasos y la solución en cada nodo. 1.

Sea el siguiente problema de programación en números enteros: Max(z) = 2x1 + 3x2 Sujeto a: 5x1 + 7x2 ≤ 35 4x1 + 9x2 ≤ 36 x1, x2 ∈{0, 1, 2, ...} La solución continua es: x1 = 3,705882 x2 = 2,352941 z* = 14,470590

2.

Sea el siguiente problema de programación en números enteros: Max(z) = 60x1 + 50x2 Sujeto a: 2x1 + 4x2 ≤ 80 3x1 + 2x2 ≤ 55 x1 ≤ 16 x2 ≤ 18 x1, x2 = {0, 1, 2, 3, ...}

384

© Ediciones Pirámide

Programación entera y mixta La solución inicial continua es: x1 = 7,5 x2 = 16,25 z* = 1.262,5 3.

Sea el siguiente problema de programación en números enteros: Min(z) = 2x1 + 2x2 Sujeto a: x1 + 2x2 ≥ 3 3x1 + 2x2 ≥ 6 x1, x2 ∈{0, 1, 2, ...} La solución continua es: x1 = 3/2 x2 = 3/4 z* = 9/2

4.

Sea el siguiente problema de programación en números enteros: Min(z) = 4x1 + 5x2 Sujeto a: 3x1 + 6x2 ≤ 18 8x1 + 2x2 ≤ 16 7x1 + 6x2 ≤ 42 x1, x2 = {0, 1, 2, 3, ...}

© Ediciones Pirámide

385

Decisiones empresariales con hoja de cálculo La solución inicial continua es: x1 = 1,4286 x2 = 2,2857 z* = 17,1428 5.

Sea el siguiente problema de programación en números enteros: Max(z) = 30x1 + 50x2 Sujeto a: 5x1 + 8x2 ≤ 60 x1 ≤ 8 x2 ≤ 4 x1, x2 ∈{0, 1, 2, ...} La solución continua es: x1 = 5,6 x2 = 4 z* = 368

6.

Sea el siguiente problema de programación en números enteros: Max(z) = 1x1 + 5x2 Sujeto a: 1x1 + 10x2 ≤ 20 10x1 + 1x2 ≤ 20 x1, x2 ∈{0, 1, 2, ...}

386

© Ediciones Pirámide

Programación entera y mixta La solución continua es: x1 = 1,8182 x2 = 1,8182 z* = 10,9091 7.

Sea el siguiente problema de programación en números enteros: Max(z) = 2x1 + 3x2 Sujeto a: x1 − x2 ≥ 0 x1 + 2x2 ≤ 6 2x1 + x2 ≤ 8 x1, x2 = {0, 1, 2, 3, ...} La solución inicial continua es: x1 = 3,3 x2 = 1,3 z* = 10,67

8.

Sea el siguiente problema de programación en números enteros: Min(z) = 2x1 + 3x2 Sujeto a: 4x1 + 2x2 ≥ 5 3x1 + 3x2 ≤ 6 x1, x2 ∈{0, 1, 2, ...} La solución continua es: x1 = 0,75 x2 = 0 z* = 1,5

© Ediciones Pirámide

387

Decisiones empresariales con hoja de cálculo

BIBLIOGRAFÍA Balas, E. (1965). «An additive algorithm for solving linear programs with zero-one variables», Operation Research, vol. 13, n.º 4, julio-agosto. Garfinkel, R. y Nemhauser, G. L. (1972). Integer Programming. Nueva York: Wiley. Land, A. H. y Doig, A. G. (1960). «An automatic method of solving discrete programming problems», Econométrica, vol. 28, n.º 3, julio. Salkin, H. M. (1975). Integer Programming. Massachussets: Addison-Wesley.

388

© Ediciones Pirámide

9

Modelización de problemas de programación entera y mixta (I)

9.1. INTRODUCCIÓN Una persona que no esté especializada en la materia podría pensar que tanto la formulación como la optimización de problemas de programación entera (PE) y mixta (PEM) no difieren mucho de las de problemas de programación lineal continua. Sin embargo, como ya vimos en el capítulo anterior, la consideración de variables enteras hace mucho más compleja la optimización del problema. En este capítulo veremos que la complejidad de las formulaciones también aumenta con respecto a los problemas en el campo continuo. En primer lugar, nos ocuparemos de algunos principios generales de la modelización de problemas con variables enteras. Posteriormente examinaremos distintas formulaciones estándar, similares a las que se vieron en los capítulos 6 y 7.

9.2. METODOLOGÍA DE MODELIZACIÓN DE PROBLEMAS DE PROGRAMACIÓN ENTERA Y MIXTA Lo primero que debe tenerse en cuenta al formular un problema de PEM es que las dificultades computacionales dependen más del número de variables enteras que del número de restricciones. Recuérdese que este tipo de problemas se resuelve mediante algoritmos combinatorios, y que el número de posibles combinaciones es una función exponencial del número de variables. El segundo elemento importante a considerar es la caracterización del conjunto factible. Al formular un modelo de PEM debe procurarse que el conjunto de soluciones factibles del problema entero se ajuste lo más posible al de soluciones continuas. Esto supone, en la mayor parte de los casos, un incremento considerable del número de restricciones del problema. Sin embargo, este aumento queda © Ediciones Pirámide

389

Decisiones empresariales con hoja de cálculo más que compensado por el menor consumo de tiempo de cálculo. Muchos problemas que no pueden resolverse con una formulación estándar pueden optimizarse en un tiempo relativamente corto, añadiendo tan sólo algunas restricciones convenientemente diseñadas. A partir de la década de los años ochenta1 comenzaron a publicarse trabajos dedicados a la caracterización matemática de las caras (facets) de algunas restricciones adecuadas para determinados problemas tipo. Estas facets no son más que restricciones diseñadas de forma que, al añadirlas al problema continuo, se eliminan algunas soluciones continuas, conservando intacto el conjunto de soluciones enteras. De esta forma, los tiempos de solución mejoran considerablemente. Sin embargo, la mayor parte de los programas académicos o comerciales no incorporan este tipo de prestaciones. En algunos casos, el propio modelizador puede incorporar algunas de estas restricciones. Otra técnica útil para reducir los tiempos de cálculo consiste en obtener una solución factible inicial mediante algún método heurístico más o menos sencillo. Efectivamente, en algunos problemas es relativamente fácil encontrar una solución factible entera, incluso relativamente próxima a la óptima. Disponer de este tipo de solución permite eliminar una gran cantidad de combinaciones que, en otro caso, tendrían que ser exploradas por el algoritmo que estuviéramos utilizando. Para ello basta con exigir que el algoritmo no acepte soluciones cuyo valor de la función objetivo sea peor que el de la solución heurística. Generalmente, los paquetes comerciales de PE y PEM no incluyen algoritmos heurísticos que puedan utilizarse como preproceso y, por tanto, el modelizador debe diseñarlos de forma independiente. Una alternativa a los métodos heurísticos, que sí está incluida en bastantes códigos de PE y PEM, son determinadas facilidades para controlar la estrategia de exploración del árbol de soluciones en el algoritmo de Branch and Bound. Estas opciones permiten, por ejemplo, buscar la solución forzando la integralidad de las variables en un orden determinado. En muchos problemas esto supone una ayuda muy importante para ahorrar tiempo de cálculo.

9.3. PROBLEMAS DE CARGA FIJA En algunos procesos productivos los costes de puesta en marcha tienen una importancia fundamental. Por ejemplo, un generador térmico de energía eléctrica necesita que pase un cierto tiempo y se incurra en un determinado coste para llegar a producir a un nivel de potencia que permita conectarlo a la red de alta tensión. Este tiempo y coste son independientes del tiempo que la central pase después conectada. El calentamiento de un alto horno antes de empezar a operar es un caso análogo. ¿Cómo representamos estos procesos? 1

390

Vid. Grötschel y Padberg (1985). © Ediciones Pirámide

Modelización de problemas de programación entera y mixta (I) Formalmente, si kj es el coste fijo de la actividad j-ésima y cj su correspondiente coste variable, entonces la función de coste sería: z = f1(x1) + f2(x2) + ... + fn (xn) donde: fj (xj) =

{

kj + cj xj

si xj ≥ 0

0

si xj = 0

El planteamiento general de este tipo de problemas mediante PEM sería el siguiente: n

Min(z) = ∑ (cj xj + kj yj) j=1

sujeto a: x j yj xj ≤ − yj ∈{0, 1} xj ≥ 0

∀j∈{1, 2, ..., n}

donde − x j representa el valor máximo que puede tomar xj. Al planteamiento anterior, se añadirían el resto de restricciones del correspondiente PL. De esta forma, si la variable yj toma el valor 0, las restricciones del problema obligan a que se cumpla xj ≤ 0, por lo que será xj = 0. En cambio, si yj = 1, la función objetivo «recibirá» la carga fija kj y las restricciones del problema admitirán que xj tome cualquier valor comprendido entre 0 y − x j. Si la actividad xj es ilimitada, xj puede fijarse en un valor tan grande como se desee, de forma que la limitación no resulte restrictiva2. EJEMPLO 9.1. Optimización de un problema de carga fija ZZ es una compañía que tiene excelentes diseños para tres tipos de prendas: camisas, pantalones cortos y pantalones largos, con los que compite con las grandes compañías del sector. Pero, para hacerlo, debe contratar un taller de confección en el que le cobran una cantidad fija según el tipo de prenda y, por tanto, 2 En todo caso, debe tenerse en cuenta que, si se fija un valor de xj excesivamente grande, pueden producirse errores de scaling como los que comentábamos en el apartado 6.2.7.

© Ediciones Pirámide

391

Decisiones empresariales con hoja de cálculo según la maquinaria utilizada, y lo complicado de preparar dicha maquinaria y adaptarla para confeccionar cada tipo de prenda. Además del coste fijo, tiene un coste variable para cada prenda confeccionada. En concreto, los costes fijos y variables de confeccionar cada tipo de prenda son los siguientes: TABLA 9.1 Coste fijo y variable de los productos Coste fijo (€)

Coste variable (€/ud)

Camisas

200

6

Pantalones cortos

150

4

Pantalones largos

100

8

Todas las prendas utilizan el mismo tipo de tela, de la que ZZ dispone sólo de 160 metros cuadrados. El número de horas disponibles en el taller también es limitado: 150 horas semanales. Del departamento de diseño y marketing sabemos los precios unitarios a los que se pueden vender las prendas y las horas y metros cuadrados de tela necesarios para cada prenda. Éstos son: TABLA 9.2 Precio de venta y datos adicionales de los productos Precio de venta (€/ud)

Camisas

Horas/prenda

Tela/prenda m2

12

3

6

Pantalones cortos

8

2

4

Pantalones largos

6

6

8

Variables: xj: Cantidad de prendas j producidas, donde j = {1: Camisas, 2: Pantalones cortos, 3: Pantalones largos}. yj: Variable binaria, que toma valor 1 si se produce la prenda j o 0 si no se produce la prenda. Restricciones: 1.

Requisitos de producción. Si se produce la prenda j es necesario que la variable entera sea 1: x1 ≤

392

160 y 6 1

x2 ≤

160 y 4 2

x3 ≤

160 y 8 3 © Ediciones Pirámide

Modelización de problemas de programación entera y mixta (I) 160 160 160 , y representan el número máximo de prendas a 6 4 8 confeccionar, dada la limitación de la tela y horas disponibles. Limitación de horas: Donde

2.

3x1 + 2x2 + 6x3 ≤ 150 3.

Limitación de tela: 6x1 + 4x2 + 8x3 ≤ 160

4.

Restricciones de no negatividad e integralidad: x1, x2, x3 ≥ 0 y1, y2, y3 ∈{0,1}

Función objetivo: Max(z) = (12 − 6)x1 + (8 − 4)x2 + (6 − 8)x3 − 200y1 − 150y2 − 100y3 La entrada de datos y la solución de este problema, en el formato estándar Solver, se muestran a continuación. La definición del problema sería: CUADRO 9.1 Planteamiento y formulación del ejemplo 9.1 en Excel

© Ediciones Pirámide

393

Decisiones empresariales con hoja de cálculo CUADRO 9.1 (continuación)

El cuadro de diálogo del Solver sería: CUADRO 9.2 Cuadro de diálogo del Solver del ejemplo 9.1

La solución para el problema es: CUADRO 9.3 Solución del ejemplo 9.1

394

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (I) CUADRO 9.3 (continuación)

9.3.1. Lote de producción batch size Uno de los casos más típicos de este tipo de problemas se da en algunos procesos productivos en los que, o bien debe producirse una determinada cantidad (lote a producir o batch size), o no es conveniente producir nada, generalmente por razones económicas o técnicas. En general, cuando los valores de una variable deben ser o bien cero o bien mayores que una determinada cantidad, se dice que esa variable es semicontinua. Supongamos que xj y − x j son, respectivamente, los lotes mínimo y máximo que pueden fabricarse del producto; entonces, las siguientes restricciones permiten imponer la semicontinuidad de xj: x j yj xj ≤ − xj ≥ xj yj – yj ∈{0, 1} xj ≥ 0

∀j∈{1, 2, ..., n}

Si yj = 0, la primera restricción y la condición de no negatividad obligan conjuntamente a que sea xj = 0. En cambio, si yj = 1, la variable xj queda acotada − ) y mínimo (x ). Análogamente al entre sus correspondientes valores máximo (x j j © Ediciones Pirámide

395

Decisiones empresariales con hoja de cálculo caso anterior, si la actividad xj no tiene un límite superior, xj puede fijarse en un valor suficientemente grande como para que la primera restricción no se sature en la solución óptima. Normalmente, al igual que en el problema de carga fija, producir un cierto lote mínimo tendrá un cierto coste fijo igual a kj y, por tanto, la formulación de la función objetivo será idéntica a la del caso anterior. También es posible modelizar un lote de producción que deba ser nulo o tomar valores discretos tales como, por ejemplo, 1.000, 3.000, 5.000 o 10.000 unidades. Supongamos que existen n productos y q posibles tipos de lote (además del lote nulo). En este caso la formulación general podría escribirse como: ∀j ∈{1, 2, ..., n} ∀i ∈{1, 2, ..., q}

yj 1 + yj 2 + ... + yjq ≤ 1 Lj 1 yj 1 + Lj 2 yj 2 + ... + Ljq yjq = xj yji ∈{0, 1} xj ≥ 0

La primera restricción asegura que en la solución aparezca un solo tipo de lote o ninguno, ya que, o bien todas las variables yji son nulas o, como mucho, una de ellas toma el valor unitario. La segunda restricción fija el valor de la variable xj en el tamaño del lote seleccionado (Lji).

EJEMPLO 9.2. Optimización de un problema de lotes de producción Dos compañías A y B, productoras de piensos compuestos, ofrecen sus productos a tres granjas avícolas (1, 2, 3), que pertenecen a Granjeros de Gallinas Gordas, S. A. (GGGSA). La tabla adjunta describe la demanda de piensos de cada granja, la capacidad máxima de suministro de cada compañía, así como los precios ofrecidos por cada compañía a cada granja: Precios por compañía y granja (en €/kg)

396

Granjas

1

2

3

Compañía A

50

48

60

Compañía B

65

63

55

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (I) Compañías

A

B

Capacidad máxima

600

360

Granjas

1

2

3

Demanda de piensos

400

250

300

La sociedad GGGSA desea minimizar los costes de adquisición de piensos compuestos para el conjunto de sus granjas avícolas. Para la compañía A el pedido mínimo aceptable es de 40 kg. La compañía B ha especificado que el pedido de las granjas debe ser múltiplo de 60 kg. Variables: xij: Nos indica los kilos de pienso comprados por la granja i a la compañía j. yiA: Variable binaria, que toma valor 1 si la granja i acepta el pedido mínimo de la compañía A y 0 en caso contrario. yiBk: Nos indica si la granja i acepta el pedido de un lote k a la compañía B, donde: i = {1 = Granja 1, 2 = Granja 2, y 3 = Granja 3}. j = {A = La compañía de piensos A, B = La compañía de piensos B}. k = {Lote 1 = El lote de 60 kg, Lote 2 = El lote de 120 kg, Lote 3 = El lote de 180 kg, Lote 4 = El lote de 240 kg, Lote 5 = El lote de 300 kg y Lote 6 = El lote de 360 kg}. Restricciones: 1.

Oferta máxima disponible: x1A + x2A + x3A ≤ 600 x1B + x2B + x3B ≤ 360

2.

Demanda mínima necesaria: x1A + x1B ≥ 400 x2A + x2B ≥ 250 x3A + x3B ≥ 300

© Ediciones Pirámide

397

Decisiones empresariales con hoja de cálculo 3.

Pedido de cada granja a la compañía A: x1A ≥ 40y1A x2A ≥ 40y2A x3A ≥ 40y3A x1A ≤ 600y1A x2A ≤ 600y2A x3A ≤ 600y3A

4.

Pedido de cada granja a la compañía B: x1B = 60y1B1 + 120y1B2 + 180y1B3 + 240y1B4 + 300y1B5 + 360y1B6 y1B1 + y1B2 + y1B3 + y1B4 + y1B5 + y1B6 = 1 x2B = 60y2B1 + 120y2B2 + 180y2B3 + 240y2B4 + 300y2B5 + 360y2B6 y2B1 + y2B2 + y2B3 + y2B4 + y2B5 + y2B6 = 1 x3B = 60y3B1 + 120y3B2 + 180y3B3 + 240y3B4 + 300y3B5 + 360y3B6 y3B1 + y3B2 + y3B3 + y3B4 + y1B5 + y3B6 = 1

Función objetivo: Minimizando los costes: Min(z) = 50x1A + 65x1B + 48x2A + 63x2B + 60x3A + 55x3B La entrada de datos y la solución de este problema, en el formato estándar Solver, se muestran a continuación. La definición del problema sería:

398

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (I) CUADRO 9.4 Planteamiento y formulación del ejemplo 9.2 en Excel

© Ediciones Pirámide

399

Decisiones empresariales con hoja de cálculo CUADRO 9.4 (continuación)

El cuadro de diálogo del Solver sería:

400

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (I) CUADRO 9.5 Cuadro de diálogo del Solver del ejemplo 9.2

La solución para el problema es: CUADRO 9.6 Solución del ejemplo 9.2

© Ediciones Pirámide

401

Decisiones empresariales con hoja de cálculo CUADRO 9.6 (continuación)

402

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (I)

9.4. PROBLEMAS DE SELECCIÓN DE INVERSIÓN Y LOCALIZACIÓN En la práctica de la toma de decisiones empresariales existe una gran cantidad de situaciones del tipo «sí o no», en las que deben elegirse algunas alternativas dentro de un conjunto más o menos amplio de opciones. En este apartado describiremos las formulaciones de PE y PEM que pueden emplearse para resolver algunos problemas comunes de selección.

9.4.1. Problemas de selección de inversiones indivisibles Una de las situaciones más típicas en las que deben tomarse decisiones de tipo «sí o no» en la selección de inversiones. Típicamente, el agente decisor debe escoger algunos proyectos dentro de una lista de posibles inversiones. Además, cada uno de los proyectos de inversión debe hacerse en su totalidad o no hacerse, pero, en ningún caso, puede hacerse en parte. Para llevar a cabo el proceso de decisión debe tener en cuenta los fondos de que dispone, las necesidades de liquidez que van a surgir en el futuro y la existencia de inversiones condicionadas entre sí. Por ejemplo, puede que no sea adecuado invertir en el transporte de productos refinados si no se tienen intereses en empresas petrolíferas. Para optimizar este tipo de decisiones suelen utilizarse métodos de simulación o modelos de programación entera 0-1. Nosotros nos ocuparemos de estos últimos. Una versión simplificada de los ejemplos que se exponen a continuación fue planteada inicialmente por Weintgartner (1974). Posteriormente se plantearon modelos más completos por Baumol-Quandt, Carleton y otros. Un resumen de algunos de estos modelos aparecen en Suárez (1986). También pueden verse otras aplicaciones similares en Valero y Villalba (1980).

EJEMPLO 9.3. Inversión en varios proyectos En este ejemplo resolveremos, mediante optimización en números enteros, el caso de selección de inversión que se planteaba en el ejemplo 2.3 del capítulo 2. Un grupo de inversores desea instalar una fábrica de equipos de radio. Para ello debe resolver tres problemas básicos: a) La producción de piezas. b) El ensamblaje de las radios. c) El almacenamiento del producto terminado. © Ediciones Pirámide

403

Decisiones empresariales con hoja de cálculo Para producir las piezas se dispone de tres alternativas: subcontratar la producción, adquirir una fábrica ya construida o construir una nueva. El ensamblaje también puede resolverse de tres formas: subcontratándolo, utilizando los equipos disponibles o invirtiendo en nuevos equipos. Finalmente, con respecto al problema del almacenamiento, es posible alquilar espacio en un almacén que ya existe o construir un nuevo almacén. Los valores actualizados de todas estas inversiones, los empleados que sería necesario contratar en cada caso y los flujos de caja (salidas de fondos) asociados se muestran en la tabla 9.3. La empresa desea: a) Obtener un valor actualizado neto (VAN) lo más alto posible. b) No contratar a más de cien empleados. c) Respetar el presupuesto de inversiones que aparece en la tabla para los próximos cinco años. Si en un año determinado sobra parte del presupuesto, el remanente se destinará a otros proyectos de inversión a largo plazo y, por tanto, no podrá invertirse en la fábrica en un período posterior. Asimismo, se supone que los inversores no desean tomar prestados capitales ajenos para complementar los fondos de que disponen. Se desea saber qué combinación de inversiones maximizará el valor actualizado neto para la empresa en cuestión. TABLA 9.3 Flujos de caja, VAN y empleados necesarios según proyecto Flujos de caja Proyecto

VAN

1

2

3

4

5

1

757

7

5

5

5

5

2

2

825

35

15

12

4

4

4

3

987

20

30

2

0

0

8

4

350

12

10

10

10

6

3

5

596

65

7

4

4

4

4

6

650

60

15

2

2

2

2

7

1.420

20

50

10

5

0

0

8

1.425

5

7

7

7

7

7

100

70

30

15

15

15

Máximo

404

Empleados

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (I) Variables: yi: Variable binaria, que indica la aceptación del proyecto de inversión i si vale 1 o rechazo del proyecto si vale 0. Restricciones: 1.

Máximo número de empleados: 7y1 + 35y2 + 20y3 + 12y4 + 65y5 + 60y6 + 20y7 + 5y8 ≤ 100

2.

Disponibilidades monetarias: 5y1 + 15y2 + 30y3 + 10y4 + 7y5 + 15y6 + 50y7 + 7y8 ≤ 70 5y1 + 12y2 + 2y3 + 10y4 + 4y5 + 2y6 + 10y7 + 7y8 ≤ 30 5y1 + 4y2 + 10y4 + 4y5 + 2y6 + 5y7 + 7y8 ≤ 15 5y1 + 4y2 + 6y4 + 4y5 + 2y6 + 7y8 ≤ 15 2y1 + 4y2 + 8y3 + 3y4 + 4y5 + 2y6 + 7y8 ≤ 15

3.

Seleccionar un proyecto de cada tipo: y1 + y2 + y3 = 1 y4 + y5 + y6 = 1 y7 + y8 = 1

4.

Restricciones de integralidad: y1, y2, y3, y4, y5, y6, y7, y8 ∈{0, 1}

Función objetivo: Max(z) = 757y1 + 825y2 + 987y3 + 350y4 + 596y5 + 650y6 + 1.420y7 + 1.425y8 La entrada de datos y la solución de este problema, en el formato estándar Solver, se muestran a continuación. © Ediciones Pirámide

405

Decisiones empresariales con hoja de cálculo La definición del problema sería: CUADRO 9.7 Planteamiento y formulación del ejemplo 9.3 en Excel

406

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (I) El cuadro de diálogo del Solver sería: CUADRO 9.8 Cuadro de diálogo del Solver del ejemplo 9.3

La solución para el problema es: CUADRO 9.9 Solución del ejemplo 9.3

© Ediciones Pirámide

407

Decisiones empresariales con hoja de cálculo CUADRO 9.9 (continuación)

Como puede verse, el resultado del proceso de optimización coincide con la solución hallada, enumerando las diferentes alternativas. Este enfoque, aparentemente más complicado, tiene, sin embargo, algunas ventajas: — Se tiene la seguridad de que la solución escogida es óptima. — Resulta fácil ahora cambiar alguno de los parámetros del problema y volver a optimizarlo. Por ejemplo, resultaría interesante admitir que los recursos de caja sobrantes en un período pudieran pasar al siguiente. Este caso resulta bastante simple, ya que no se establecen condicionamientos lógicos al plan de inversiones. En el siguiente ejemplo veremos un caso algo más sofisticado.

408

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (I)

EJEMPLO 9.4. Inversión en varios proyectos con restricciones lógicas En la tabla 9.4 se resumen las características de un conjunto de proyectos de inversión, cada uno de los cuales puede abordarse en dos fechas, el año 0 y el año 1. A cada combinación de proyecto y fecha de comienzo le corresponde una proyección del flujo de caja para un período de cuatro años, a partir de la fecha de comienzo de la inversión. Estos flujos permiten calcular el valor actualizado neto (VAN) de cada proyecto, que se obtiene descontando al año 0 los flujos de caja a una tasa del 15 %. TABLA 9.4 Flujos de caja y VAN de proyectos de inversión Flujos de caja Proyecto

Comienzo

0

1

2

3

1

0

−3.000

−1.200

1.600

1.600

305

1

1

−3.500

1.600

1.800

−650

2

0

−1.000

1.300

1.300

1.707

2

1

−1.200

1.400

1.500

1.001

3

0

−1.200

1.600

1.600

1.305

3

1

−2.500

1.800

1.800

371

4

0

− 400

800

900

545

4

1

−1.250

900

1.000

251

5

0

−1.000

1.000

1.000

1.483

5

1

−850

1.500

1.500

1.381

−1.000

−2.000

−1.000

−800

VAN (k = 15 %)

Además, se establecen las siguientes relaciones de dependencia, indivisibilidad y reinversión de fondos: a) Los proyectos 2 y 3 dependen del proyecto 1, de forma que no pueden realizarse si éste no se selecciona. b) Los proyectos 4 y 5 son independientes. c) Todos los proyectos son indivisibles y sólo pueden seleccionarse una vez. d) Las disponibilidades generadas por una inversión durante su primer año pueden aplicarse a las inversiones realizadas en dicho año, si las hay. e) La caja sobrante. después de atender a las alternativas de inversión, se acumula a las disponibilidades del período siguiente, produciendo un interés del 10 %. © Ediciones Pirámide

409

Decisiones empresariales con hoja de cálculo Se desea determinar cuáles son las inversiones que proporcionan el máximo valor actual neto, teniendo en cuenta que en el año 0 se dispone de 6.000 unidades monetarias y en el año 1 de 5.000 unidades monetarias. A cada alternativa de inversión se le asocia una variable binaria ypt, donde p indica el proyecto y t la fecha de comienzo. Si esta variable toma el valor unitario, esto quiere decir que se ha seleccionado el proyecto, y si toma el valor cero quiere decir que se ha rechazado. Las relaciones de dependencia entre los distintos proyectos pueden visualizarse en un grafo como el de la figura 9.1, que se refiere tan sólo al proyecto 2.

y20 y10 y21 y11

Figura 9.1. Dependencias del proyecto 2.

Es decir, la aceptación de y20 exige la de y10, mientras que la de y21 exige que se acepte bien y10 o bien y11. En estas condiciones, la formulación analítica del problema puede plantearse del siguiente modo, si se desea maximizar el VAN de los proyectos de inversión seleccionados. Variables: ypt: Variable binaria que toma valor 1 si se selecciona el proyecto p en la fecha de comienzo t y 0 en caso contrario. ct: Sobrante de caja del período t. Restricciones: 1.

410

Cada inversión sólo se selecciona una vez: Proyecto 1

y10 + y11 ≤ 1

Proyecto 2

y20 + y21 ≤ 1 © Ediciones Pirámide

Modelización de problemas de programación entera y mixta (I)

2.

Proyecto 3

y30 + y31 ≤ 1

Proyecto 4

y40 + y41 ≤ 1

Proyecto 5

y50 + y51 ≤ 1

Dependencia entre inversiones: y20 − y10 ≤ 0 y30 − y10 ≤ 0 y21 − y11 − y10 ≤ 0 y31 − y11 − y10 ≤ 0

3.

Restricción de caja. En cada período, la diferencia entre gastos e ingresos no puede superar los fondos disponibles para invertir. En concreto, para el año 0 la restricción será: 3.000y10 + 1.000y20 + 2.000y30 + 1.000y40 + 800y50 + c0 = 6.000 donde c0 es el sobrante de caja del primer período. En el año 1 deberá cumplirse: 3.500y11 + 1.200y21 + 2.500y31 + 1.250y41 + 850y51 − (1.200y10 + + 1.000y20 + 1.200y30 + 400y40 + 1.000y50) − 1,1c0 ≤ 6.000

4.

Nótese que no es necesario plantear restricciones los años 2, 3... Esto se debe a que, en estos períodos, tan sólo existen entradas de fondos y, por tanto, no hay nada que limitar. Restricciones de negatividad e integralidad: c0 ≥ 0 y10, y11, y20, y21, y30, y31, y40, y41, y50, y51 ∈{0, 1}

Función objetivo: Max(z) = 305y10 − 650y11 + 1.707y20 + 1.001y21 + 1.305y30 + 371y31 + + 545y40 + 251y41 + 1.483y50 + 1.381y51 © Ediciones Pirámide

411

Decisiones empresariales con hoja de cálculo La definición del problema se muestra en el cuadro siguiente: CUADRO 9.10 Planteamiento del ejemplo 9.4 en Excel

412

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (I) El cuadro de diálogo del Solver sería: CUADRO 9.11 Cuadro de diálogo del Solver del ejemplo 9.4

La solución para el problema es: CUADRO 9.12. Solución del ejemplo 9.4

© Ediciones Pirámide

413

Decisiones empresariales con hoja de cálculo CUADRO 9.12 (continuación)

Por tanto, en el año 0 deben iniciarse los proyectos 1, 2 y 3, mientras que en el año 1 comenzarán los proyectos 4 y 5. El VAN que se obtiene de estas inversiones es de 4.949 unidades.

9.4.2. Problemas de localización y dimensionamiento Cuando se trata de planificar el transporte de mercancías para minimizar los costes de transporte del producto desde las fábricas hasta los mercados, el problema puede resolverse mediante técnicas de programación lineal continua o algoritmos especiales de planificación del transporte que no requieren el uso de variables enteras. La PL también podría emplearse si se desea optimizar, no sólo los costes de transporte, sino también los costes de producción diferenciados para cada

414

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (I) planta. Además, en ambos casos se supone implícitamente que las decisiones de localización de plantas y/o almacenes y la dimensión de los mismos se tomaron en el pasado y, por tanto, las únicas decisiones que quedan abiertas son las de gestión de la capacidad disponible. Sin embargo, a veces es posible instalar un número variable de plantas, o bien éstas pueden dimensionarse de forma distinta, con estructuras de coste diferentes en cada caso. En esta situación existen dos formas de determinar cuál es la política óptima. La primera consiste en formular tantos problemas de transporte como combinaciones puedan establecerse entre las distintas alternativas de localización. Obviamente, esto sólo es adecuado si se consideran unas pocas posibilidades. La segunda consiste en evaluar simultáneamente todas las alternativas aplicando técnicas de programación mixta. La localización óptima de plantas o almacenes es una de las aplicaciones clásicas de la PE y PEM. También resulta frecuente que, además de decidir dónde deben situarse las plantas o almacenes, se quiera determinar cuál es la dimensión óptima de los mismos, teniendo en cuenta un conjunto de estimaciones de costes, proyecciones de demanda, objetivos estratégicos de la empresa, etc. Este planteamiento general da lugar a algunas de las aplicaciones más interesantes y complejas de la PEM.

9.4.2.1. Localización y dimensionamiento de plantas de manufactura Aplicando la PEM, podemos formular un problema típico de localización de plantas de la siguiente forma: n

Min(z) = ∑

m

n

∑ cij xij + ∑ fi yi

i=1 j=1

i=1

donde: cij: Coste de producir una unidad de producto en la fábrica i y transportarlo hasta la zona de demanda j. Este coste está compuesto por el coste unitario de transporte de la planta i hasta la zona j y el coste de distribución en la zona j. xij: Cantidad transportada de producto desde la fábrica i a la zona de demanda j. fi: Coste fijo de instalar la fábrica i. yi: Variable binaria (0,1) que significa instalar la fábrica i (1), o no instalarla (0). De esta forma, el primer sumando representará los costes variables y el segundo los fijos. Además, el plan óptimo deberá cumplir las siguientes restricciones: © Ediciones Pirámide

415

Decisiones empresariales con hoja de cálculo 1.

Satisfacción de la demanda en cada zona: n

∑ xij = Dj

∀j∊{1, 2, ..., m}

i=1

2.

Capacidad mínima de la planta: La producción de cada planta debe ser cero o la mínima requerida. m

∑ xij ≥ gi yi

∀i∊{1, 2, ..., n}

j=1

3.

Capacidad máxima de cada planta: La producción de cada planta no debe ser superior a la máxima permitida. m

∑ xij ≤ hi yi

∀i∊{1, 2, ..., n}

j=1

4.

Restricciones de no negatividad e integralidad: xij ≥ 0

∀i∊{1, 2, ..., n}

yi ∈{0, 1}

∀i∊{1, 2, ..., n}

∀j∊{1, 2, ..., m}

donde: Dj: Demanda de la zona j. gi: Capacidad mínima de la planta i. hi: Capacidad máxima de la planta i. Como puede observarse, hemos considerado implícitamente que todas las plantas son nuevas. En el siguiente ejemplo ilustraremos cómo se puede considerar, no sólo la inversión en nuevas fábricas, sino también ampliaciones en la capacidad de las plantas existentes. EJEMPLO 9.5. Optimización de un problema de localización y dimensionamiento Sea una empresa que decide servir seis zonas comerciales con un máximo de cuatro fábricas. Las zonas comerciales y sus demandas (en unidades de producto/ año) quedan representadas en la tabla 9.5. La empresa tiene dos fábricas en funcionamiento: una de ellas está en Barcelona y tiene una capacidad productiva de 500 unidades/año, y la otra está en Madrid y su capacidad es de 700 unidades/año. Las alternativas de inversión que se

416

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (I) TABLA 9.5 Demanda por zona Zona

Demanda

Cataluña

480

Norte

356

Noreste

251

Levante

349

Centro

598

Sur

326

plantean son ampliar las plantas existentes o bien construir nuevas plantas en Bilbao y/o Valencia. Los costes variables de suministro cij, que comprenden costes de producción, de transporte y distribución en la zona de demanda, vienen indicados en la tabla 9.6. TABLA 9.6 Costes variables de suministro Zona Planta

Cataluña

Norte

Noreste

Levante

Centro

Sur

Barcelona

10

62

110

35

62

100

Bilbao

62

10

63

63

40

86

Madrid

62

40

60

35

7

54

Valencia

35

63

96

10

35

67

Además, los costes anualizados de cada proyecto de inversión, así como los correspondientes niveles de capacidad, son los expuestos en la tabla 9.7. TABLA 9.7 Costes fijos y capacidades Planta

Barcelona

Capacidad inicial

Ampliación capacidad

Coste fijo

500

1.000

100.000

1.000

100.000

1.000

80.000

1.000

100.000

Bilbao Madrid Valencia

© Ediciones Pirámide

700

417

Decisiones empresariales con hoja de cálculo Variables: xij: Cantidad transportada de producto desde la fábrica i a la zona de demanda j. yi: Variable binaria que toma el valor 1 si se instala la fábrica i, o 0 en caso contrario. Restricciones: 1.

Satisfacción de la demanda: xbarcat + xbilcat + xmadcat + xvalcat = 480 xbarnor + xbilnor + xmadnor + xvalnor = 356 xbarnoe + xbilnoe + xmadnoe + xvalnoe = 251 xbarlev + xbillev + xmadlev + xvallev = 349 xbarcen + xbilcen + xmadcen + xvalcen = 598 xbarsur + xbilsur + xmadsur + xvalsur = 326

2.

Capacidad máxima: xbarcat + xbarnor + xbarnoe + xbarlev + xbarcen + xbarsur ≤ 500 + 1.000ybar xbilcat + xbilnor + xbilnoe + xbillev + xbilcen + xbilsur ≤ 1.000ybil xmadcat + xmadnor + xmadnoe + xmadlev + xmadcen + xmadsur ≤ 700 + 1.000ymad xvalcat + xvalnor + xvalnoe + xvallev + xvalcen + xvalsur ≤ 1.000yval

3.

No negatividad e integralidad: xbarcat, xbarnor, xbarnoe, xbarlev, xbarcen, xbarsur, xbilcat, xbilnor, xbilnoe, xbillev, xbilcen, xbilsur, xmadcat, xmadnor, xmadnoe, xmadlev, xmadcen, xmadsur, xvalcat, xvalnor, xvalnoe, xvallev, xvalcen, xvalsur ≥ 0 ybar, ybil, ymad, yval ∈{0, 1}

418

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (I) Función objetivo: Min(z) = 10xbarcat + 62xbarnor + 110xbarnoe + 35xbarlev + 62xbarcen + 100xbarsur + + 62xbilcat + 10xbilnor + 63xbilnoe + 63xbillev + 40xbilcen + 86xbilsur + 62xmadcat + + 40xmadnor + 60xmadnoe + 35xmadlev + 7xmadcen + 54xmadsur + 35xvalcat + 63xvalnor + + 96xvalnoe + 10xvallev + 35xvalcen + 67xvalsur + 100.000ybar + 100.000ybil + + 80.000ymad + 100.000yval La definición del problema se muestra en el cuadro siguiente:

CUADRO 9.13 Planteamiento del ejemplo 9.5 en Excel

© Ediciones Pirámide

419

Decisiones empresariales con hoja de cálculo El cuadro de diálogo del Solver sería:

CUADRO 9.14 Cuadro de diálogo del Solver del ejemplo 9.5

La solución para el problema es:

CUADRO 9.15 Solución del ejemplo 9.5

420

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (I) CUADRO 9.15 (continuación)

Por tanto, la estrategia óptima consiste en abrir una nueva planta en Bilbao y ampliar la capacidad disponible en Madrid. Las plantas de Bilbao y Barcelona abastecen su mercado local, mientras que la planta de Madrid cubre la demanda del resto de las zonas.

9.4.2.2. Localización y dimensionamiento de plantas de almacenes Frecuentemente, los problemas de localización de plantas no se plantean con independencia del sistema de distribución del producto. Esto se debe a que, si se planifica de forma conjunta la localización de fábricas y almacenes, se obtendrá un sistema de producción-distribución más eficiente. Este tipo de modelos se caracteriza por la complejidad de las decisiones implicadas. Veamos un ejemplo para tener una idea práctica de esta complejidad. Supongamos que existen tres posibles plantas de manufactura, dos proyectos de almacén alternativos y tres mercados. En el grafo de la figura 9.2 se resumen las alternativas de suministro correspondientes a este caso. Si se omite la consideración de los costes fijos en plantas y almacenes, el problema de localización puede plantearse mediante una formulación de transbordo. Sin embargo, cuando debemos decidir también el tamaño y/o ubicación de almacenes, entonces precisamos utilizar PEM. © Ediciones Pirámide

421

Decisiones empresariales con hoja de cálculo

Orígenes (i)

Almacenes (j)

Destinos (k)

1

1

1

2

2

2

3

3

Figura 9.2. Alternativas de producción y distribución.

Utilizando la misma notación que en el apartado 9.5.2.1, la función objetivo será: m

Min(z) = ∑

s

m

n

s

n

s

∑ cij xij + ∑ ∑ cik xik + ∑ ∑ cjk xjk + ∑ fj yj

i=1 j=1

i=1 k=1

j=1 k=1

j=1

Es decir, minimizar la suma de los costes variables de producción, almacenamiento y transporte desde los puntos de producción y almacenes, más los costes fijos inherentes a cada una de estas instalaciones. Las restricciones que deben cumplir los almacenes serán: 1.

Satisfacción de la demanda en cada zona: m

s

∑ ∑ xij = Dk

∀k∊{1, 2, ..., n}

i=1 j=1

422

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (I) 2.

Capacidad máxima en caso de apertura: Si se abre un almacén, no debe superarse su capacidad máxima hj. m

∑ xij ≤ hi yi

∀i∊{1, 2, ..., n}

j=1

3.

Capacidad mínima en caso de apertura: Si se abre un almacén, debe operar a un nivel mínimo gj. m

∑ xij ≥ gj yj

∀j∊{1, 2, ..., s}

i=1

4.

Condición de equilibrio de los almacenes: Impide que, desde un almacén, se envíe a los puntos de venta una cantidad de producto mayor que la que entra en el mismo, procedente de las plantas de producción. m

n

i=1

k=1

∑ xij ≥ ∑ xjk 5.

∀j∊{1, 2, ..., s}

Restricciones de no negatividad e integralidad: xij, xjk, xik ≥ 0 yj′ ∈{0, 1}

∀i∊{1, 2, ..., m}

∀j∊{1, 2, ..., s}

∀k∊{1, 2, ..., n}

∀j∊{1, 2, ..., n}

EJEMPLO 9.6. Localización y tamaño óptimo de almacenes Supongamos que en el ejemplo anterior se considera la posibilidad de alquilar depósitos en Valencia y Bilbao en vez de construir nuevas fábricas. Supondremos que las demandas son las mismas que antes y consideraremos los costes variables que podemos ver en la tabla 9.8. TABLA 9.8 Costes variables de suministro Zona Cataluña

© Ediciones Pirámide

Norte

Noreste

Depósitos

Levante

Centro

Sur

Bilbao

30

Barcelona

10

62

110

35

62

100

Bilbao

62

10

63

63

40

86

Madrid

62

40

60

35

7

54

20

Valencia

35

63

96

10

35

67

30

Valencia

15 61 17

423

Decisiones empresariales con hoja de cálculo Las capacidades y costes fijos asociados a cada proyecto de inversión en capacidad de producción o de alquiler de almacenes son los expuestos en la tabla 9.9. TABLA 9.9 Costes fijos y capacidades Planta

Depósito

Capacidad inicial

Ampliación capacidad

Coste fijo

500

1.000

100.000

1.000

800

1.000

80.000

1.000

900

Barcelona Bilbao Madrid

700 Valencia

Variables: xij: Cantidad transportada de producto desde el origen i al almacén j. xkj: Cantidad transportada de producto desde el almacén j al destino k. xik: Cantidad transportada de producto desde el origen i al destino k. yi: Variable binaria, que toma el valor 1 si se aumenta la capacidad de la planta de origen i, y 0 en caso contrario. yj: Variable binaria, que toma el valor 1 si se aumenta la capacidad del depósito j, y 0 en caso contrario. Restricciones: 1.

Satisfacción de la demanda: xbarcat + xbilcat + xmadcat + xvalcat = 480 xbarnor + xbilnor + xmadnor + xvalnor = 356 xbarnoe + xbilnoe + xmadnoe + xvalnoe = 251 xbarlev + xbillev + xmadlev + xvallev = 349 xbarcen + xbilcen + xmadcen + xvalcen = 598 xbarsur + xbilsur + xmadsur + xvalsur = 326

424

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (I) 2.

Capacidad máxima de las fábricas:

xbarcat + xbarnor + xbarnoe + xbarlev + xbarcen + xbarsur + xbarbil + xbarval ≤ 500 + 1.000ybar xmadcat + xmadnor + xmadnoe + xmadlev + xmadcen + xmadsur + xmadbil + xmadval ≤ 700 + 1.000ymad 3.

Capacidad máxima de los depósitos: xbarbil + xmadbil + xvalbil ≤ 1.000ybil xbarval + xmadval + xvalval ≤ 1.000yval

4.

Equilibrio en los depósitos: xbarbil + xmadbil + xvalbil ≥ xbilcat + xbilnor + xbilnoe + xbillev + xbilcen + xbilsur + xbilval xbarval + xmadval + xbilval ≥ xvalcat + xvalnor + xvalnoe + xvallev + xvalcen + xvalsur + xvalbil

5.

No negatividad e integralidad: xij, xik, xjk ≥ 0 yi, yj ∈{0, 1}

Función objetivo: Min(z) = 10xbarcat + 62xbarnor + 110xbarnoe + 35xbarlev + 62xbarcen + 100xbarsur+ + 30xbarbil + 15xbarval + 62xbilcat + 10xbilnor + 63xbilnoe + 63xbillev + 40xbilcen + + 86xbilsur + 61xbilval + 62xmadcat + 40xmadnor + 60xmadnoe + 35xmadlev + 7xmadcen + + 54xmadsur + 35xvalcat + 63xvalnor + 96xvalnoe + 10xvallev + 35xvalcen + 67xvalsur + + 30xvalbil + 100.000ybar + 800ybil + 80.000ymad + 900yval En estas condiciones, la definición y solución del problema se da en el cuadro 9.16.

© Ediciones Pirámide

425

Decisiones empresariales con hoja de cálculo CUADRO 9.16 Planteamiento del ejemplo 9.6 en Excel

El cuadro de diálogo del Solver sería: CUADRO 9.17 Cuadro de diálogo del Solver del ejemplo 9.6

426

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (I) La solución para el problema es: CUADRO 9.18 Solución del ejemplo 9.6

© Ediciones Pirámide

427

Decisiones empresariales con hoja de cálculo

EJERCICIOS PROPUESTOS 1.

Cementos Universales, S. A.: transporte con requerimientos especiales en los pedidos

Tres compañías han enviado ofertas para la venta de fuel a Cementos Universales S. A., que tiene cuatro plantas cementeras en todo el país. Las especificaciones de fuel para cada planta y la capacidad máxima que cada compañía puede ofrecer a Cementos Universales S. A., así como los precios desde cada compañía vendedora hasta cada una de las plantas, se adjuntan en la tabla siguiente:

Madrid

Barcelona

Sevilla

León

Oferta máxima (miles litros)

B-P

50

60

65

45

50

CAMPSA

45

30

50

15

40

TEXACO

55

45

70

25

60

Requerimientos de fuel (miles litros)

45

20

30

30

La empresa cementera desea minimizar los costes de adquisición del fuel para el conjunto de sus plantas, para lo que tiene que tener en cuenta las condiciones impuestas por cada una de las compañías y que se especifican en el contrato, que son: — B-P exige que el pedido mínimo de cada planta sea de 15.000 litros. — CAMPSA exige que tres de las cuatro cantidades que suministre deben ser de menos de 10.000 litros y permite que la otra supere dicha cantidad. — TEXACO especifica que el pedido conjunto de todas las plantas debe ser múltiplo de 10, es decir 10.000, 20.000... Preguntas 1. 2. 3. 2.

Defina las variables que intervienen en el problema. Defina las restricciones y escríbalas. Defina la función objetivo.

Granjeros de Gallinas Gordas, S. A.: transporte con pedidos discretos

Dos compañías A y B, productoras de piensos compuestos, ofrecen sus productos a tres granjas avícolas (1, 2, 3), que pertenecen a Granjeros de Gallinas

428

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (I) Gordas, S. A. (GGGSA). La tabla adjunta describe la demanda de piensos de cada granja, la capacidad máxima de suministro de cada compañía, así como los precios ofrecidos por cada compañía a cada granja: Precios por compañía y granja (en €/kg) Granjas

1

2

3

Compañía A

50

48

60

Compañía B

65

63

55

Compañías

A

B

Capacidad máxima

600

360

Granjas

1

2

3

Demanda de piensos

400

250

300

La sociedad GGGSA desea minimizar los costes de adquisición de piensos compuestos para el conjunto de sus granjas avícolas. Para la compañía A el pedido mínimo aceptable es de 40 kg. La compañía B ha especificado que el pedido de las granjas debe ser múltiplo de 60 kg. Preguntas 1. 2. 3. 3.

Defina las variables que intervienen en el problema. Defina las restricciones y escríbalas. Defina la función objetivo.

Compañía ZZ: carga fija

ZZ es una compañía que tiene excelentes diseños para tres tipos de prendas: camisas, pantalones cortos y pantalones largos, con los que compite con las grandes compañías del sector. Pero, para hacerlo, debe contratar un taller de confección en el que le cobran una cantidad fija según el tipo de prenda y, por tanto, según la maquinaria utilizada y lo complicado de prepararla para confeccionar cada tipo de prenda. Además del coste fijo, tiene un coste variable para cada prenda confeccionada. En concreto, los costes fijos y variables de confeccionar cada tipo de prenda son los siguientes: © Ediciones Pirámide

429

Decisiones empresariales con hoja de cálculo Coste fijo (€)

Coste variable (€/ud)

Camisas

200

6

Pantalones cortos

150

4

Pantalones largos

100

8

Todas las prendas utilizan el mismo tipo de tela de la que ZZ dispone solo de 160 metros cuadrados. El número de horas disponibles en el taller también es limitado: 150 horas semanales. Del departamento de diseño y marketing, sabemos los precios unitarios a los que se pueden vender las prendas y las horas y metros cuadrados de tela necesarios para cada prenda. Éstos son: Precio de venta (€/ud)

Horas/prenda

Tela/prenda m2

Camisas

12

3

6

Pantalones cortos

8

2

4

Pantalones largos

6

6

8

Se desea saber el programa de producción de una semana que maximiza los beneficios de ZZ. Preguntas 1. 2. 3. 4.

Defina las variables que intervienen en el problema. Defina las restricciones y escríbalas. Defina la función objetivo.

Equipo de fútbol: selección de inversiones

El equipo de fútbol de la UUE ha encontrado un patrocinador accionista, para financiar un nuevo equipo de fútbol en el que está dispuesto a invertir hasta 30 millones de euros en fichajes para el equipo titular. Después de una exhaustiva investigación de mercado, se han detectado los jugadores señalados en la tabla adjunta, en la que se especifica el precio del traspaso del jugador (en millones de euros), la calidad del jugador (1 significa que es malo y 5 que es muy bueno) y la posición o posiciones en las que juega el indicado jugador (P = portero, D = defensa, M = medio y A = delantero; algunos  jugadores pueden jugar en varias posiciones; así M-D = defensa o medio, M-A = medio o delantero...). Con el presupuesto indicado se deben cubrir 11 puestos, en los que debe haber necesariamente, por lo menos, 3 delanteros, 4 medios, 3 defensas y un portero, y

430

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (I) se quiere que el equipo sea de la mejor calidad posible (lo que equivale a tener los máximos puntos posibles). Dada las características de estos jugadores no es posible fichar los jugadores D y E si se ficha el B; en cambio, si se ficha el jugador F hay que fichar necesariamente al jugador H. Jugador

Precio

A

1

B C D E F G H I J K L M N O P Q R S

3 1,5 5 4,5 2,5 7 5 9 2 1,5 4 3,5 6,5 3 1 2 2 2,5

Posición

Puntos

D

2

M D M-A A D-M A A M-A P P D D-M M-A D-A D A M M

3 3 3 4 2 4 3 5 4 3 4 3 4 3 1 2 2 3

Preguntas 1. 2. 3.

Defina las variables que intervienen en el problema. Defina las restricciones y escríbalas. Defina la función objetivo.

BIBLIOGRAFÍA Grötschel, M. y Padberg, M. W. (1985). Polyhedral theory. The Traveling Salesman Problem, John Wiley & Sons.

© Ediciones Pirámide

431

10

Modelización de problemas de programación entera y mixta (II)

10.1. OTROS PROBLEMAS DE SELECCIÓN 10.1.1. Set covering, set packing y set partitioning Son una clase especial de problemas de programación entera que, en general, se resuelven con algoritmos especializados. Los problemas de set covering pueden definirse de la siguiente manera: n

Min(z) = ∑ cj yj j=1

sujeto a: n

∑ aij yj ≥ 1

∀i∈{1, 2, ..., m}

yj ∈{0, 1}

∀j∈{1, 2, ..., n}

j=1

donde todos los coeficientes aij valen 0 o 1. Como puede verse, este tipo de modelos tienen una estructura muy especial. Debido a ello, existen algoritmos especiales de resolución, siendo los más eficientes los de tipo branch and bound 1.

1 Vid. Garfinkel y Nemhauser (1972). Otra referencia de interés es Plane y Hendrick (1977). En ella se presenta la primera aplicación de este tipo de formulaciones. El objetivo del trabajo fue situar estaciones de bomberos en la ciudad de Denver.

© Ediciones Pirámide

433

Decisiones empresariales con hoja de cálculo

EJEMPLO 10.1. Localización de hospitales Se trata de planificar la distribución de hospitales en una ciudad, de tal manera que, desde cualquier punto de ella, no exista una distancia al hospital más próximo superior a veinte minutos de recorrido en automóvil. La ciudad se divide en ocho zonas y existe la posibilidad de instalar hospitales en cuatro de ellas. La tabla 10.1 indica qué proyectos de hospital cubrirían cada zona en una distancia inferior a la requerida, así como el coste de cada proyecto. TABLA 10.1 Proyectos del hospital y coste Hospital 1

2

3

4

300

410

380

637

Zona 1

1

0

1

1

Zona 2

1

1

0

0

Zona 3

0

1

1

1

Zona 4

0

1

0

1

Zona 5

0

0

1

1

Zona 6

0

0

1

1

Coste (mill.)

Se desea que todas las zonas queden cubiertas y el coste total sea mínimo. El modelo de optimización sería el siguiente: Variables: yj: Variable binaria, que toma el valor 1 cuando se escoge el hospital de la zona j y 0 en caso contrario. Restricciones: 1.

434

Asignación de las zonas: Zona 1)

y1 + y3 + y4 ≥ 1

Zona 2)

y1 + y2 ≥ 1

Zona 3)

y2 + y3 + y4 ≥ 1 © Ediciones Pirámide

Modelización de problemas de programación entera y mixta (II)

2.

Zona 4)

y2 + y4 ≥ 1

Zona 5)

y3 + y4 ≥ 1

Zona 6)

y3 + y4 ≥ 1

No negatividad e integralidad: y1, y2, y3, y4 ∈{0, 1}

Función objetivo: Min(z) = 300y1 + 410y2 + 380y3 + 637y4 La entrada de datos y la solución de este problema, en el formato estándar Solver, se muestran a continuación. La definición del problema sería: CUADRO 10.1 Planteamiento y formulación del ejemplo 10.1 en Excel

© Ediciones Pirámide

435

Decisiones empresariales con hoja de cálculo El cuadro de diálogo del Solver sería: CUADRO 10.2 Cuadro de diálogo del Solver del ejemplo 10.1

La solución para el problema es: CUADRO 10.3 Solución del ejemplo 10.1

436

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (II) Por tanto, resultan seleccionados los proyectos 2 y 3. El coste total será de 790 millones. Los problemas de set packing son muy parecidos a los anteriores2. Formalmente la única diferencia es que, en lugar de minimizar, lo que se pretende es maximizar, y que las restricciones, en lugar de ser del tipo mayor o igual, son del tipo menor o igual: n

Max(z) = ∑ cj yj j=1

sujeto a: n

∑ aij yj ≤ 1

∀i∈{1, 2, ..., m}

yj ∈{0, 1}

∀j∈{1, 2, ..., n}

j=1

Los problemas de set packing de cierta dimensión se resuelven con algoritmos especiales, similares a los que se emplean para optimizar problemas de set covering. La última subclase de los problemas que abordamos en este apartado son los llamados de set partitioning. Estos problemas difieren de los anteriores en que las restricciones son de tipo igualdad y el sentido de la optimización puede ser maximizar o minimizar, dependiendo de los casos. Formalmente: n

Opt(z) = ∑ cj yj j=1

sujeto a: n

∑ aij yj = 1

∀i∈{1, 2, ..., m}

yj ∈{0, 1}

∀j∈{1, 2, ..., n}

j=1

EJEMPLO 10.2. Reparto de mercancías en vehículos Supongamos que deben repartirse seis pedidos en dos tipos de camiones, pero no todos los pedidos son compatibles con todos los camiones. En la tabla se codifican las compatibilidades de pedidos y camiones, así como el coste de cada viaje. 2 De hecho, el dual de un problema de set packing con coeficientes unitarios en la función objetivo es un problema de set covering. Esta propiedad, sin embargo, no tiene ninguna utilidad práctica debido a que, en PE, resolver el problema dual no es equivalente a resolver el primal.

© Ediciones Pirámide

437

Decisiones empresariales con hoja de cálculo Así, por ejemplo, la columna Camión 1-1 de la tabla 10.2 indica que la ruta del camión 1 en el viaje 1 serviría los pedidos 1, 2 y 4. TABLA 10.2 Compatibilidades de pedidos y camiones y coste del viaje Viajes Camión 1

Camión 2

Pedidos

1

2

3

4

5

1

1

0

0

1

0

2

1

1

0

0

0

3

0

1

0

0

1

4

1

0

1

0

0

5

0

0

1

0

1

6

0

0

0

1

1

Coste por viaje

5

3

4

1

4

Se desea obtener un plan de viajes que atienda todos los pedidos una, y sólo una vez, a un coste mínimo. El modelo de optimización sería el siguiente: Variables: yj: Variable binaria, que toma el valor 1 cuando se escoge el viaje del camión j y 0 en caso contrario. Restricciones: 1.

438

Asignación de pedidos: Pedido 1)

y1 + y4 = 1

Pedido 2)

y1 + y2 = 1

Pedido 3)

y2 + y5 = 1

Pedido 4)

y1 + y3 = 1

Pedido 5)

y3 + y5 = 1

Pedido 6)

y4 + y5 = 1 © Ediciones Pirámide

Modelización de problemas de programación entera y mixta (II) 2.

No negatividad e integralidad: y1, y2, y3, y4, y5 ∈{0, 1}

Función objetivo: Min(z) = 5y1 + 3y2 + 4y3 + y4 + 4y5 Con este planteamiento nos aseguramos que todos los pedidos se sirven y, a la vez, que ningún pedido se sirve más de una vez. Por simple observación, en este ejemplo se concluye que existen dos posibles soluciones: viajes 2, 3 y 4 con un coste de 8, y viajes 1 y 5 con un coste de 9. Obviamente, la solución óptima es la primera. La entrada de datos y la solución de este problema, en el formato estándar Solver, se muestran a continuación. La definición del problema sería: CUADRO 10.4 Planteamiento y formulación del ejemplo 10.2 en Excel

© Ediciones Pirámide

439

Decisiones empresariales con hoja de cálculo El cuadro de diálogo del Solver sería: CUADRO 10.5 Cuadro de diálogo del Solver del ejemplo 10.2

La solución para el problema es: CUADRO 10.6 Solución del ejemplo 10.2

440

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (II)

10.1.2. El problema de la mochila Se llama problema de la mochila a cualquier modelo de programación entera pura que tenga una sola restricción. El planteamiento general de este tipo de problemas es el siguiente: Max(z) = p1 y1 + p2 y2 + ... + pn yn sujeto a: a1 y1 + a2 y2 + ... + an yn ≤ b y1, y2, ..., yn ∈{0, 1} El problema tiene este nombre tan peculiar debido a que puede interpretarse como escoger de entre un conjunto de elementos, por ejemplo paquetes que deben meterse en una mochila, el subconjunto que optimiza una determinada función, por ejemplo peso, valor, etc. Al igual que en el problema del viajante, la importancia de este problema se debe a que existen muchos problemas, o más bien partes de ellos, que son formalmente iguales a éste. EJEMPLO 10.3. Planificación de actividades de contrabando Un contrabandista desea pasar objetos a través de una frontera en un depósito oculto que es capaz de contener un máximo de 91 kg. Los artículos que se pueden transportar, su peso y la ganancia asociada a cada uno de ellos se detallan en la tabla 10.3. El contrabandista desea pasar el máximo valor monetario en artículos. TABLA 10.3 Peso y valor de los artículos

© Ediciones Pirámide

Artículos

Peso (kg.)

Valor (u.m.)

1

36

54

2

24

18

3

30

60

4

32

32

5

26

13

Máximo

91

441

Decisiones empresariales con hoja de cálculo Variables: yj: Variable binaria que toma el valor 1 cuando se escoge el artículo j y 0 en caso contrario. Restricciones: 1.

Límite máximo de peso: 36y1 + 24y2 + 30y3 + 32y4 + 26y5 ≤ 91

2.

No negatividad e integralidad: y1, y2, y3, y4, y5 ∈{0, 1}

Función objetivo: Maz(z) = 54y1 + 18y2 + 60y3 + 32y4 + 13y5 La entrada de datos y la solución de este problema, en el formato estándar Solver, se muestran a continuación. La definición del problema sería: CUADRO 10.7 Planteamiento y formulación del ejemplo 10.3 en Excel

442

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (II) El cuadro de diálogo del Solver sería: CUADRO 10.8 Cuadro de diálogo del Solver del ejemplo 10.3

La solución para el problema es: CUADRO 10.9 Solución del ejemplo 10.3

Por tanto, el contrabandista debe seleccionar los artículos 1, 2 y 3.

© Ediciones Pirámide

443

Decisiones empresariales con hoja de cálculo

10.2. PROBLEMAS NO LINEALES MODELIZADOS MEDIANTE PEM En este apartado se discuten las formulaciones adecuadas para tratar diversos casos de no linealidad que surgen a menudo en la práctica. La característica peculiar que distingue estos problemas de otros que ya tratamos anteriormente3 es que, para modelizarlos, es necesario recurrir al uso de variables enteras.

10.2.1. Problemas no lineales con economías de escala En el apartado 6.6 vimos una formulación que permitía aplicar la PL para resolver problemas separables aparentemente no lineales. Esta técnica es válida tan sólo cuando la función no lineal presenta deseconomías de escala (esto es, cuando a medida que aumenta el valor de la variable que genera la no linealidad se produce una mejora menos que proporcional en el valor de la función objetivo). Sin embargo, cuando el crecimiento de una variable da lugar a mejoras más que proporcionales en el valor de la función objetivo, no es posible aplicar la técnica anteriormente descrita. En este apartado veremos cómo la PEM permite optimizar dos tipos de función de costes variables con economías de escala.

10.2.2. Costes unitarios decrecientes de forma discreta Una función de costes unitarios decrecientes de forma discreta muestra un aspecto similar al de la figura 10.1. Como puede verse, la correspondiente función de costes medios es escalonada. Por ejemplo, si se está trabajando con un modelo de producción, la figura 10.1 indicaría que: — Si se producen hasta L1 unidades de producto, el coste unitario de todas las unidades en este tramo (que son todas las consumidas) es c1. — Si se produce una cantidad mayor que L1 y menor que L2, el coste unitario de todas las unidades consumidas es c2. — Si se produce una cantidad mayor que L2 y menor que L3, el coste unitario todas las unidades consumidas será c3. Este tipo de función de coste aparece en muchos casos reales. Supongamos que los costes dependen de la cantidad que se compra de una serie de productos. En este caso, por ejemplo, existirán economías de escala si el proveedor de alguno 3

444

Vid. apartado 6.6. © Ediciones Pirámide

Modelización de problemas de programación entera y mixta (II)

Coste total

Cantidad

Coste medio c1

c2

c3

L0

L1

L2

L3

Cantidad

Figura 10.1. Funciones de costes totales y medios.

de estos productos ofrece un descuento por volumen de compra, ya que, entonces, el precio de cada unidad de producto varía en función de las unidades compradas. Para optimizar una función de costes de este tipo, descompuesta, por ejemplo, en tres tramos, puede emplearse la siguiente formulación general: Min(z) = c1x1 + c2x2 + c3x3 © Ediciones Pirámide

445

Decisiones empresariales con hoja de cálculo sujeto a: Límites superiores de los tramos: x1 ≤ L1 y1 x2 ≤ L2 y2 x3 ≤ L3 y3 Límites inferiores de los tramos: x2 ≥ L1 y2 x3 ≥ L2 y3 Sólo puede seleccionarse un tramo o ninguno: y1 + y2 + y3 ≤ 1 Restricciones de no negatividad e integralidad: x1, x2, x3 ≥ 0 y1, y2, y3 ∈{0, 1} donde, suponiendo que xj representa la cantidad comprada de un producto, las variables y parámetros del problema se interpretarían de la siguiente forma: cj: Coste unitario asociado a xj. xj: Cantidad adquirida al coste medio j-ésimo. yj: Variable binaria, que toma el valor de 1 si se selecciona en el tramo j-ésimo y 0 en el caso contrario. Lj: Límite superior del tramo j.

EJEMPLO 10.4. Optimización de un problema lineal con economías de escala Una compañía fabrica tres productos, cuyos precios de venta por unidad son 15, 40 y 60 unidades monetarias. Para producir una unidad de cada uno de ellos se requiere una hora, hora y media y dos horas-máquina, respectivamente. La capacidad de la planta impone un límite de 2.000 horas máquina por semana.

446

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (II) Debido al descuento por volumen de compras que ofrece un proveedor, los costes unitarios decrecen de forma discreta a medida que aumenta la cantidad producida. En la tabla 10.4 se muestran estos costes: TABLA 10.4 Coste medio variable Coste variable Producto

1-100 unidades

101-500 unidades

> 500 unidades

1

10

8

5

2

20

18

15

3

40

30

20

Se desea maximizar el margen bruto de explotación (ingresos menos costes variables) de tal forma que la producción de cada uno de los productos suponga, al menos, un 15 % de la cantidad producida total. Variables: yjk: Variable binaria, que toma el valor 1 si se produce el producto j en el tramo k y 0 en caso contrario. xjk: Cantidad del producto j producida en el tramo k. Supondremos que es una variable continua. Restricciones: 1.

Horas disponibles: x11 + x12 + x13 + 1,5x21 + 1,5x22 + 1,5x23 + 2x31 + 2x32 + 2x33 ≤ 2.000

2.

Límites superiores en tramos de producción: Producto 1

x11 ≤ 100y11 x12 ≤ 500y12 x13 ≤ 2.000y13

© Ediciones Pirámide

447

Decisiones empresariales con hoja de cálculo Producto 2

x21 ≤ 100y21 x22 ≤ 500y22 x23 ≤ 1.340y23

Producto 3

x31 ≤ 100y31 x32 ≤ 500y32 x33 ≤ 1.000y33

3.

Obsérvese que, de acuerdo con el enunciado, no existe ningún límite para el último tramo. Sin embargo, es necesario que esta restricción exista para que pueda forzarse a cero la producción si el correspondiente tramo no se selecciona. En principio, el correspondiente coeficiente podría fijarse en un número arbitrariamente grande. Sin embargo, dado que existe una disponibilidad máxima de 2.000 horas máquina semanales, se han impuesto límites de 2.000/1 = 2.000, 2.000/1,5 ≈ 1.340 y 2.000/2 = = 1.000 para los productos 1, 2 y 3. Límites inferiores en tramos de producción: Producto 1

x12 ≥ 101y12 x13 ≥ 501y13

Producto 2

x22 ≥ 101y22 x23 ≥ 501y23

Producto 3

x32 ≥ 101y32 x33 ≥ 501y33

4.

448

Sólo se puede producir en un tramo: Producto 1

y11 + y12 + y13 ≤ 1

Producto 2

y21 + y22 + y23 ≤ 1

Producto 3

y31 + y32 + y33 ≤ 1 © Ediciones Pirámide

Modelización de problemas de programación entera y mixta (II) 5.

Restricciones de producción mínima: Estas son restricciones de mezcla, cuya formulación general ya vimos en el apartado 6.5. Producto 1: x11 + x12 + x13 ≥ 0,15 (x11 + x12 + x13 + x21 + x22 + x23 + x31 + x32 + x33) Producto 2: x21 + x22 + x23 ≥ 0,15 (x11 + x12 + x13 + x21 + x22 + x23 + x31 + x32 + x33) Producto 3: x31 + x32 + x33 ≥ 0,15 (x11 + x12 + x13 + x21 + x22 + x23 + x31 + x32 + x33)

6.

No negatividad e integralidad: x11, x12, x13, x21, x22, x23, x31, x32, x33 ≥ 0 y11, y12, y13, y21, y22, y23, y31, y32, y33 ∈{0, 1}

Función objetivo: En estas condiciones, el problema de optimización podría formularse de la siguiente forma: Max(z) = (15 − 10)x11 + (15 − 8)x12 + (15 − 5)x13 + + (40 − 20)x21 + (40 − 18)x22 + (40 − 15)x23 + + (60 − 40)x31 + (60 − 30)x32 + (60 − 20)x33 La entrada de datos y la solución de este problema, en el formato estándar Solver, se muestran a continuación. La definición del problema sería:

© Ediciones Pirámide

449

Decisiones empresariales con hoja de cálculo CUADRO 10.10 Planteamiento y formulación del ejemplo 10.4 en Excel

450

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (II) El cuadro de diálogo del Solver sería:

CUADRO 10.11 Cuadro de diálogo del Solver del ejemplo 10.4

La solución para el problema es:

CUADRO 10.12 Solución del ejemplo 10.4

© Ediciones Pirámide

451

Decisiones empresariales con hoja de cálculo CUADRO 10.12 (continuación)

Por tanto, los productos 1 y 2 se fabrican en el segundo tramo de la función de costes, mientras que el producto 3 se fabrica en el último tramo. Esto indica que, en las condiciones dadas por el enunciado, el tercer producto es el más rentable. En este caso concreto, si las variables xj tuvieran que tomar valores enteros, lo más eficiente seria redondear la solución. Esto se debe a que las variables toman valores de un orden de magnitud de centenares. Por tanto, puede efectuarse el redondeo sin una pérdida sustancial de factibilidad ni de optimalidad.

452

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (II)

10.2.3. Costes unitarios continuamente decrecientes Otro caso de economías de escala puede darse cuando los costes unitarios decrecen de forma continua. Por ejemplo, en un modelo de producción podría ocurrir que: — Las primeras L1 unidades se producen a un coste unitario de c1. — Las siguientes L2 − L1 unidades se producen a un coste unitario de c2. — Las últimas L3 − L2 unidades se producen a un coste unitario de c3. Este tipo de función de costes muestra un aspecto similar al de la figura 10.2. Naturalmente, esta función puede representar aspectos del problema distintos del coste, como, por ejemplo, la relación entre el output del proceso químico y la temperatura a la que tienen lugar las reacciones.

Coste total f3 arc tg c3

f2

arc tg c2

f1

arc tg c1 Cantidad

Coste medio

L0

L1

L2

L3 Cantidad

Figura 10.2. Funciones de costes totales y medios. © Ediciones Pirámide

453

Decisiones empresariales con hoja de cálculo Para optimizar una función de costes de este tipo, por ejemplo descompuesta en tres segmentos, puede emplearse la siguiente formulación general: Min(z) = c1x1 + c2x2 + c3x3 sujeto a: Se escoge un solo tramo o ninguno: y1 + y2 + y3 ≤ 1 Límites de producción en cada tramo: Cada variable xj tiene un límite superior, que se activa si alguna de las variables y1, y2, y3, ..., toma el valor 1. x1 ≤ L1 (y1 + y2 + y3) x2 ≤ (L2 − L1)(y2 + y3) x3 ≤ (L3 − L2) y3 Restricciones de continuidad: Si se activa la variable correspondiente a un tramo, todos los tramos anteriores deben agotarse. x1 ≥ L1 (y2 + y3) x2 ≥ (L2 − L1) y3 Restricciones de no negatividad e integralidad: x1, x2, x3 ≥ 0 y1, y2, y3 ∈{0, 1} donde, suponiendo que xj representa la producción de un determinado bien, las variables y parámetros del problema se definirían de la siguiente forma: cj: Coste unitario asociado a xj. Lj: Límite superior del tramo j-ésimo. xj: Cantidad producida en el tramo j-ésimo. La producción total sería x = = x1 + x2 + x3. yj: Variable binaria, que toma el valor 1 si se produce en el tramo j-ésimo y 0 en el caso contrario. Evidentemente, no se puede producir en un tramo si no se produce en el anterior. Esta condición queda garantizada por las restricciones de continuidad.

454

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (II)

EJEMPLO 10.5. Producción con costes unitarios decrecientes Una compañía de productos químicos fabrica un determinado compuesto. Las materias primas que lo forman deben someterse a un proceso de mezcla a altas temperaturas en una cuba con capacidad para mezclar 300 tm/mes. Este proceso tiene economías de escala, de forma que el coste de calentamiento de las primeras 100 tm es de 400 €/tm, el de las siguientes 100 tm es de 250 €/tm y el de las últimas 100 tm es de 150 €/tm. Además, la demanda es sensible a la cantidad lanzada al mercado, de forma que el precio neto del producto (PVP menos coste de las materias primas) varía de acuerdo con la cantidad producida, tal y como se muestra en la tabla 10.5. TABLA 10.5 Precios netos Producción tm Tramo

Precio neto (€/tm) Desde

Hasta

1

0

50

450

2

51

100

430

3

101

150

380

4

151

200

350

5

201

250

310

6

251

300

280

Se desea determinar el plan de operaciones que maximiza el margen bruto de explotación del proceso (ingresos menos costes variables). Variables: yi: Variable binaria, que toma el valor 1 si se produce en el tramo i de la función de costes y 0 en caso contrario. ij: Variable binaria, que toma el valor 1 si se vende en el tramo j de la función de precio y 0 en caso contrario. xi: Cantidad de producto obtenida en el tramo i de la función de costes. qj: Cantidad de producto vendida en el tramo j de la función de precio. La formulación quedaría: © Ediciones Pirámide

455

Decisiones empresariales con hoja de cálculo Restricciones: 1.

La cantidad vendida debe ser igual a la cantidad producida: q1 + q2 + q3 + q4 + q5 + q6 = x1 + x2 + x3

2.

Restricciones lógicas: y1 + y2 + y3 ≤ 1 i1 + i2 + i3 + i4 + i5 + i6 ≤ 1

3.

Estas restricciones impiden que se seleccione más de un tramo de las funciones de costes y de precio neto. Límites en los tramos de la función de costes: x1 − 100y1 − 100y2 − 100y3 ≤ 0 x1 − 100y2 − 100y3 ≤ 0 x1 − 100y3 ≤ 0

4.

Límites en los tramos de la función de precio neto: q1 − 50i1 ≤ 0 q2 − 100i2 ≤ 0 q3 − 150i3 ≤ 0 q4 − 200i4 ≤ 0 q5 − 250i5 ≤ 0 q6 − 300i6 ≤ 0

5.

Restricciones de continuidad: x1 − 100y2 − 100y3 ≥ 0 x1 − 100y3 ≥ 0

456

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (II) 6.

Restricciones de no negatividad e integralidad: q1, q2, q3, q4, q5, q6, x1, x2, x3 ≥ 0 i1, i2, i3, i4, i5, i6, y1, y2, y3 ≥ 0

Función objetivo: Max(z) = 450q1 + 430q2 + 380q3 + 350q4 + 310q5 + 280q6 − − 400x1 − 250x2 − 150x3 La entrada de datos y la solución de este problema, en el formato estándar Solver, se muestran a continuación. La definición del problema sería:

CUADRO 10.13 Planteamiento y formulación del ejemplo 10.5 en Excel

© Ediciones Pirámide

457

Decisiones empresariales con hoja de cálculo CUADRO 10.13 (continuación)

El cuadro de diálogo del Solver sería:

CUADRO 10.14 Cuadro de diálogo del Solver del ejemplo 10.5

458

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (II) La solución para el problema es: CUADRO 10.15 Solución del ejemplo 10.5

© Ediciones Pirámide

459

Decisiones empresariales con hoja de cálculo Por tanto, deben producirse 200 tm, que proporcionan un beneficio de 21.000 €. Existe una extensión del método Simplex, llamada Programación separable, que permite resolver de forma muy eficiente problemas con economías de escala, como los que acabamos de describir. Sin embargo, debe tenerse en cuenta que la programación separable, a diferencia de la PEM, no garantiza la optimalidad de la solución. De hecho, la PEM es la única metodología de uso común que garantiza la obtención de un óptimo global en estos casos. Naturalmente, la carga computacional necesaria para resolver uno de estos problemas es muy importante y, en ocasiones, puede resultar prohibitiva. La PEM permite optimizar problemas con funciones de curvatura muy compleja, como, por ejemplo, funciones que no son cóncavas ni convexas. Naturalmente, el planteamiento que aquí hemos realizado, en términos de funciones de costes, también podría llevarse a cabo empleando funciones de ingresos. Si no hemos tratado este caso explícitamente es porque, en la práctica, resulta raro que los ingresos de un empresario crezcan más proporcionalmente a medida que aumenta la cantidad vendida.

10.3. PROBLEMAS DE SECUENCIACIÓN Los problemas de secuenciación surgen cuando es necesario asignar de forma óptima una serie de actividades en un período de tiempo más o menos largo. Las características esenciales de este tipo de formulaciones son las siguientes: a) Son problemas sencillos de describir y aparentemente fáciles de resolver. En realidad, forman una de las familias de problemas enteros más complejas y difíciles. b) Los costes y/o beneficios derivados de la ejecución de los trabajos pueden variar dependiendo de en qué momento se realicen. c) Puede que sea necesario realizar todos los trabajos, o bien que cada trabajo aporte una determinada ganancia a una restricción que sea necesario satisfacer al final del horizonte temporal de planificación. Comenzaremos por describir un modelo secuenciación muy sencillo, pero que tiene todas las características fundamentales de este tipo de problemas. EJEMPLO 10.6. Planificación de vuelos Una compañía de vuelos charter realiza viajes desde Madrid a Barcelona, Valencia, Zaragoza, La Coruña, Bilbao, Londres y París. En un día determinado, ha contratado con el aeropuerto los servicios necesarios para organizar vuelos a

460

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (II) las 8:00 h, 10:30 h, 12:00 h, 16:30 h y 20:00 h. Los beneficios previstos (en millones de euros) para cada combinación de vuelo-horario, en un día cualquiera, se muestran la tabla 10.6. TABLA 10.6 Beneficios por vuelo Hora de salida Desde Madrid a 8:00

10:30

12:00

16:30

20:00

Barcelona

1

0,8

0,2

0,3

1,2

Valencia

0,6

0,5

0,3

0,3

0,4

Zaragoza

0,2

0,4

0,4

0,5

0,3

−0,1

0,1

0,2

−0,1

0,3

Bilbao

0,3

0,2

0,1

0,1

0,5

Londres

0,8

−0,5

−0,2

−0,2

0,6

París

1,4

−0,9

0,3

-0,2

1

Programación:

3

2

3

La Coruña

2

2

La compañía debe planificar exactamente un vuelo para cada destino, excepto en los casos de Barcelona, Bilbao y París, que deben ser cubiertos por dos vuelos. Dada la disponibilidad de las instalaciones y servicios, en cada hora es posible programar dos vuelos excepto a las 8:00 y a las 20:00, en que es posible programar tres vuelos. Si en una hora determinada no se agota el máximo número de vuelos posibles, el derecho de vuelo puede venderse a otra compañía por 100.000 €. Se desea planificar los vuelos del día de forma que el beneficio sea máximo. Sea yit una variable binaria, que toma el valor 1 si un vuelo con destino i se programa a la hora t y 0 en caso contrario. En estas condiciones, el problema puede describirse matemáticamente de la siguiente forma: n

Max ∑

T

T

∑ bit yit + ∑ rtat

i=1 t=1

t=1

sujeto a: Máximo número de vuelos en cada hora: n

∑ yit + at = Mt

∀t ∈ {1, 2, ..., T}

i=1

© Ediciones Pirámide

461

Decisiones empresariales con hoja de cálculo Cobertura de destinos: T

∑ xit = Ni

∀i ∈{1, 2, ..., n}

t=1

Restricciones de no negatividad e integralidad: ∀i, t: ∀t:

yit ∈{0, 1} at ≥ 0

donde: bit: Beneficio previsto para el vuelo con destino i si se programa a la hora t. rt: Precio de venta de un derecho de vuelo a la hora t. at: Número de derechos de vuelo vendidos a la hora t. Mt: Número máximo de vuelos programados en la hora t. Ni: Número de vuelos que deben asignarse al destino i. Obsérvese que: — La formulación es muy similar a la de un problema de asignación4. — No es necesario forzar la integralidad de las variables at ya que en una solución factible se cumplirá: n

∑ ait yj ≤ 1

∀i {1, 2, ..., m}

yj ∈{0, 1}

∀j {1, 2, ..., n}

j=1

y, por tanto, su valor será entero siempre que Mt sea un número entero. La entrada de datos y la solución de este problema, en el formato estándar Solver, se muestran a continuación. La definición del problema sería:

4

De hecho, en este caso sencillo, bastaría con añadir a la formulación las restricciones: ∀i, t:

xit ≤ 1

para obtener una solución entera. Hemos mantenido las condiciones de integralidad para dar a la formulación un carácter general.

462

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (II) CUADRO 10.16 Planteamiento y formulación del ejemplo 10.6 en Excel

© Ediciones Pirámide

463

Decisiones empresariales con hoja de cálculo El cuadro de diálogo del Solver sería:

CUADRO 10.17 Cuadro de diálogo del Solver del ejemplo 10.6

La solución para el problema es:

CUADRO 10.18 Solución del ejemplo 10.6

464

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (II) CUADRO 10.18 (continuación)

Por tanto, se vende un derecho de vuelo a las 12:00 h y otro a las 16:30 h. La programación óptima se resume en la tabla 10.7. TABLA 10.7 Programación óptima Vuelo 1

Vuelo 2

Barcelona (Bar)

08:00

20:00

Valencia (Val)

10:30



Zaragoza (Zar)

16:30



La Coruña (Lco)

12:00



Bilbao (Bil)

10:30

20:00

Londres (Lon)

08:00



París (Par)

08:00

20:00

Por último, el beneficio total que se obtendría con esta planificación sería de 7,5 millones de euros.

© Ediciones Pirámide

465

Decisiones empresariales con hoja de cálculo

10.3.1. El problema del viajante Supongamos que un viajante debe visitar n ciudades, una detrás de otra, de forma que no se repita la visita a ninguna ciudad. Estas visitas deben planificarse de forma que el número de kilómetros recorridos sea el mínimo posible. Este problema es conocido como problema del viajante o travelling salesman problem (TSP). El número de posibles recorridos (tours) entre n ciudades que cumplen con las anteriores condiciones es (n − 1)! Este número de rutas es razonable para un pequeño número de ciudades, pero crece muy rápidamente cuando éstas aumentan, ya que: 2! = 2 5! = 120 10! = 3.628.000 20! = 2,43 × 1018 (aproximadamente) 50! = 3,04 × 1064 (aproximadamente) De estas cifras se deduce que, cuando el número de ciudades es superior a 20, existen pocos ordenadores capaces de explorar toda la combinatoria del problema en un tiempo razonable. Cuando este número de ciudades es superior a 50, el problema es imposible de resolver utilizando métodos combinatorios puros. El TSP puede plantearse formalmente de varias maneras. Aquí veremos una de ellas, con tres grupos de restricciones. Los dos primeros grupos utilizarían las siguientes variables: yij: Variable binaria, que tomará el valor 1 si el recorrido del viajante va directamente de i a j, o 0 en caso contrario. El primer grupo de restricciones lo definiríamos diciendo: «después de pasar por la ciudad i, debe visitarse una y sólo una vez cualquier otra ciudad del recorrido», o bien «debe salirse una sola vez de cada ciudad i». Formalmente: n

∑ yij = 1

∀i∊{1, 2, ..., n}

j=1 i≠j

El segundo grupo de restricciones lo definiríamos diciendo que «antes de pasar por la ciudad i debe visitarse una y sólo una vez cualquier otra ciudad», o bien «debe entrarse una sola vez en cada ciudad i». Formalmente: n

∑ yij = 1

∀j∊{1, 2, ..., n}

i=1 i≠j

466

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (II) Si cij es la distancia (o coste del recorrido) entre i y j, la función objetivo quedaría: n

Min(z) = ∑

n

∑ cij yij

i=1 j=1

que representa la minimización de la distancia recorrida (o el coste en que se incurre por recorrer la ruta que visita todas las ciudades). Hasta aquí, la estructura del modelo es idéntica a la del problema de asignación y, como tal, puede resolverse eficientemente mediante algoritmos de redes5. Desafortunadamente, si no se consideran más restricciones, pueden obtenerse recorridos parciales, que suelen llamarse subtours en la literatura especializada. La figura 10.3 muestra la configuración característica de un subtour. Como puede apreciarse, esta solución cumple todas las restricciones anteriormente mencionadas, pero, sin embargo, no es aceptable, ya que no todas las ciudades están conectadas.

6

1

3 2

4 10

9 7

Figura 10.3. Recorrido del viajante con dos subtours.

Resolver el problema de los subtours resulta complicado y puede hacerse de varias formas. Una primera posibilidad consistiría en definir las variables ui: número de veces que se visita la ciudad i-ésima. Estas variables se utilizan para añadir al problema las restricciones: ui − uj + nyij ≤ n − 1 5

© Ediciones Pirámide

∀i∊{1, 2, ..., n},

∀j∊{1, 2, ..., n}, i ≠ j

Vid. capítulo 7.

467

Decisiones empresariales con hoja de cálculo Por ejemplo, si en la solución se observa un subtour que pase por las ciudades 0, 1 y 3, como el que se muestra en la figura 10.3, podrían emplearse las siguientes restricciones para eliminado: u0 − u1 + 7y01 ≤ 6 u1 − u3 + 7y13 ≤ 6 u3 − u0 + 7y30 ≤ 6 Teniendo en cuenta que en la solución representada en la figura las variables y01, y13 e y30 valen 1, la suma de las tres restricciones anteriores daría 21 ≤ 18, por lo que la solución con este subtour no sería factible. Por ejemplo, si en la solución se observa un subtour que pase por las ciudades 1, 3 y 6, como el que se muestra en la figura 10.3, podrían emplearse las siguientes restricciones para eliminarlo: u1 − u3 + 8y13 ≤ 7 u3 − u6 + 8y36 ≤ 7 u6 − u1 + 8y61 ≤ 7 Teniendo en cuenta que en la solución representada en la figura las variables y13, y36 e y61 valen 1, la suma de las tres restricciones anteriores daría 21 ≤ 18, por lo que la solución con este subtour no sería factible. Por otra parte, inicialmente añadir todas las variables y restricciones necesarias para garantizar la ausencia de rutas parciales aumenta extraordinariamente la dimensión del problema. Efectivamente, el número de variables ui sería de n y el número de restricciones de n (n − 1). Además, el problema pasa a ser claramente uno de programación entera general y no un simple problema de redes. Existen otro tipo de restricciones que pueden emplearse para la eliminación de subtours sin que sea necesario añadir nuevas variables. Por ejemplo, el grupo de restricciones: yij + yji ≤ 1

∀i∊{1, 2, ..., n},

∀j∊{1, 2, ..., n}, i ≠ j

basta para garantizar que no se producirán subtours entre pares de ciudades, ya que si se va desde i a j (yij = 1) resultará infactible volver desde j hasta i. Para eliminar los subtours entre tres ciudades seria necesario añadir las restricciones: yij + yjk + yki ≤ 2 ∀i∊{1, 2, ..., n},

468

∀j∊{1, 2, ..., n},

∀k∊{1, 2, ..., n}, i ≠ j, j ≠ k © Ediciones Pirámide

Modelización de problemas de programación entera y mixta (II) Por tanto, para que en ningún caso pudiera producirse una ruta parcial empleando esta formulación, habría que añadir al problema las restricciones que eliminan los subtours de 2, 3, 4, ..., n/2 ciudades, si el número de ciudades es par. Si el número de ciudades es impar, habrá que eliminar los subtours de 2, 3, 4, ... (n − 1)/2 ciudades. En la práctica, las restricciones para eliminar subtours sólo se añaden al problema cuando se observa algún subtour en la solución. Aun entonces, sólo se añaden las restricciones necesarias para eliminar los subtours que, efectivamente, han aparecido. A pesar de todo, el problema sigue siendo extraordinariamente complicado de resolver; de hecho, para problemas mínimamente grandes suelen utilizarse métodos heurísticos que, en tiempos cortos, proporcionan soluciones muy razonables6. EJEMPLO 10.7. La vuelta a España Un excursionista francés desea planificar un viaje en automóvil por España visitando las siguientes ciudades: La Coruña, Santander, Bilbao, Valladolid, Zaragoza, Barcelona, Madrid, Valencia, Sevilla y Málaga. El turista comienza el recorrido en Barcelona, ya que es la ciudad más próxima a la frontera con su país. Además, después de efectuar su recorrido desea volver a Barcelona, con el objeto de descansar algunos días antes de volver a Francia. En la tabla 10.8 se dan las distancias por carretera entre estas diez ciudades. Se desea determinar cuál es el recorrido más corto que permite visitarla todas una y sólo una vez. TABLA 10.8 Distancias entre ciudades

La Coruña

LC

Santander

ST

Bilbao

BI

Valladolid

VA

Zaragoza

ZA

Barcelona

BA

Madrid

MA

Valencia

VL

Sevilla

SV

Málaga

MG

6

© Ediciones Pirámide

LC

ST

BI

VA

ZA

BA

MA

VL

SV



535

644

455

822

1.120

606

962

948 1.162



112

248

400

706

395

668

839

936



280

320

594

394

623

866

935



368

666

193

545

591

732



296

322

325

863

863



620

349

1.023

620



356

541

541



668

643



MG

214 —

Vid. Garfinkel y Nemhauser (1973).

469

Decisiones empresariales con hoja de cálculo El planteamiento del problema sería: Variables: yij: Variable binaria, que toma el valor 1 si el recorrido va de la ciudad i a la ciudad j, o 0 en caso contrario. Restricciones: 1.

Debe salirse una vez de cada ciudad: LC:

yLCST + yLCBI + yLCVA + yLCZA + yLCBA + yLCMA + yLCVL + + yLCSV + yLCMG = 1

ST:

ySTLC + ySTBI + ySTVA + ySTZA + ySTBA + ySTMA + ySTVL + + ySTSV + ySTMG = 1 ...

MG:

yMGST + yMGBI + yMGVA + yMGZA + yMGBA + yMGMA + + yMGVL + yMGSV + yMGLC = 1

2.

Debe entrarse una vez en cada ciudad: LC:

ySTLC + yBILC + yVALC + yZALC + yBALC + yMALC + yVLLC + + ySVLC + yMGLC = 1

ST:

yLCST + yBIST + yVAST + yZAST + yBAST + yMAST + yVLST + + ySVST + yMGST = 1 ...

MG:

ySTMG + yBIMG + yVAMG + yZAMG + yBAMG + yMAMG + + yVLMG + ySVMG + yLCMG = 1

3.

No negatividad e integralidad: yij ∈{0, 1}

470

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (II) Función objetivo: Min(z) = 535yLCST + 644yLCBI + 455yLCVA + 822yLCZA + 822yZALC + + 1.120yLCBA + 600yLCMA + ... + 214yMGSV La solución que se obtiene de este problema estaría formada por los cinco subtours de la figura 10.4.

ST BI

LC

BA

ZA VA

MA VL

SV MG

Figura 10.4. Recorrido del viajante con subtours.

Para eliminar las rutas parciales, añadiremos las restricciones que se muestran a continuación. yLCVA + yVALC ≤ 1 ySTBI + yBIST ≤ 1 yZABA + yBAZA ≤ 1 yMAVL + yVLMA ≤ 1 ySVMG + yMGSV ≤ 1 La solución obtenida en este caso estaría formada por dos subrutas de tres ciudades: Barcelona-Zaragoza-Valencia-Barcelona y Málaga-Madrid-Sevilla-Málaga, y otra subruta que enlazaría al resto de las ciudades. Para eliminarlas, se añaden las restricciones siguientes y se vuelve a optimizar el problema. © Ediciones Pirámide

471

Decisiones empresariales con hoja de cálculo

ST BI

LC

BA

ZA VA MA VL

SV MG

Figura 10.5. Recorrido del viajante con subtours.

yLCST + ySTBI + yBIVA + yVALC ≤ 3 yZABA + yBAVL + yVLZA ≤ 2 yMASV + ySVMG + yMGMA ≤ 2 Ahora se obtiene una solución sin rutas parciales, como puede verse gráficamente en la ruta óptima de la figura 10.6.

ST BI

LC

BA ZA

VA MA

SV

VL

MG

Figura 10.6. Solución del recorrido del viajante.

472

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (II) La entrada de datos y la solución de este problema, en el formato estándar Solver, se muestran a continuación. La definición del problema sería: CUADRO 10.19 Planteamiento y formulación del ejemplo 10.7 en Excel

© Ediciones Pirámide

473

Decisiones empresariales con hoja de cálculo CUADRO 10.19 (continuación)

El cuadro de diálogo del Solver sería: CUADRO 10.20 Cuadro de diálogo del Solver del ejemplo 10.7

La solución para el problema es: CUADRO 10.21 Solución del ejemplo 10.7

474

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (II) CUADRO 10.21 (continuación)

Por tanto, la secuencia óptima de visitas es Barcelona, Zaragoza, Bilbao, Santander, La Coruña, Valladolid, Madrid, Sevilla, Málaga, Valencia y Barcelona. La distancia total recorrida, que viene dada por el valor de la función objetivo, sería de 3.658 km.

© Ediciones Pirámide

475

Decisiones empresariales con hoja de cálculo

10.3.2. Otros problemas de secuenciación En la literatura sobre métodos óptimos de decisión se tratan, además del problema del viajante, muchos otros problemas de secuenciación. Clasificarlos exhaustivamente sobrepasa con mucho el alcance de este libro. Sin embargo, deseamos destacar por su importancia los problemas de secuenciación en cadenas de montaje o Job-Shop Scheduling Problem. El problema consiste en ordenar de forma óptima la secuencia de operaciones que deben realizar un conjunto de máquinas o «talleres» dispuestos a lo largo de una cadena de montaje. Este tipo de aplicaciones, además de la componente de secuenciación, suele optimizar también la distribución de la carga entre los distintos puestos de trabajo. Esta última clase de modelos se conoce como de Assembly Line Balancing. Para profundizar más en estos temas puede utilizarse el excelente survey de Escudero (1986).

476

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (II)

EJERCICIOS PROPUESTOS 1.

Resolver óptimamente los ejemplos 2.3 y 2.4 del capítulo 2.

2.

Compañía Universal de Marketing: horarios de personal

La Compañía Universal de Telemarketing tiene necesidad de optimizar su plantilla de operadoras telefónicas. De acuerdo con la experiencia adquirida, la carga de trabajo durante las 16 horas del día que funciona este servicio es la siguiente: Horario

Carga de trabajo (en n.º de operadoras)

8-10

6

10-12

4

12-14

6

14-16

8

16-18

6

18-20

8

20-22

10

22-24

6

Por razones de cansancio y de legislación laboral, la jornada de trabajo de las operadoras telefónicas es de 4 horas diarias, pudiendo empezar la jornada cada dos horas a partir de las 8 (esto es a las 8, a las 10, a las 12...). Cada operaria gana 60 euros por jornada laboral de 4 horas trabajadas. Se desea planificar los horarios de trabajo que cubran enteramente la carga de trabajo y que minimicen los costes de personal. Preguntas 1. 2. 3. 3.

Defina las variables que intervienen en el problema. Defina las restricciones y escríbalas. Defina la función objetivo.

Distribuciones Inglés, S. A.: asignación de vehículos a pedidos

La Empresa de Distribuciones Inglés S. A. debe realizar cinco repartos a pueblos de la periferia de Madrid, para lo cual dispone de cuatro camiones cuya ca© Ediciones Pirámide

477

Decisiones empresariales con hoja de cálculo pacidad máxima de carga y coste por trayecto, que es independiente del cliente o clientes a los que vaya dirigido, se especifica en la tabla adjunta. También figura en la tabla el peso de los pedidos para cada pueblo. Cliente

Barajas

Peso kg

Camión

Capacidad máxima

Coste por viaje

50

1

250

100

Cercedilla

150

2

750

150

El Escorial

250

3

1.250

200

Villalba

500

4

1.250

200

Alcorcón

1.000

La empresa pretende minimizar el coste, sirviendo todos los pedidos y teniendo en cuenta que no se puede servir desde el mismo camión al cliente de Villalba y al de Alcorcón. Preguntas 1. 2. 3. 4.

Defina las variables que intervienen en el problema. Defina las restricciones y escríbalas. Defina la función objetivo.

Hipermercado: horarios de personal

En un hipermercado se ha realizado un estudio sobre la afluencia de clientes a lo largo de las 12 horas que permanece abierto, siendo necesario para atenderlos el siguiente número de cajeras:

478

Horario

Carga de trabajo (en n.º de cajeras)

10-11

4

11-12

6

12-13

12

13-14

10

14-15

6

15-16

6

16-17

8

17-18

12

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (II)

Horario

Carga de trabajo (en n.º de cajeras)

18-19

15

19-20

15

20-21

8

21-22

6

La jornada de trabajo de las cajeras es de 6 horas diarias, pudiendo empezar la jornada cada hora. El coste por cajera es de 60 euros diarios. Se desea planificar los horarios que, atendiendo la carga de trabajo, minimicen los costes de personal. Preguntas 1. 2. 3. 5.

Defina las variables que intervienen en el problema. Defina las restricciones y escríbalas. Defina la función objetivo.

Hospital Universal de Madrid: horarios de personal

El Hospital Universal de Madrid nos ha encargado organizar los turnos de trabajo de los médicos durante el horario de mañana, que comprende desde las 8:00 hasta las 15:00 horas. Cada médico trabaja cinco días a la semana y debe librar necesariamente dos días consecutivos. Las necesidades de personal médico para cada día de la semana son los que se adjuntan en la tabla: Días

Lunes

Martes

Miércoles

Jueves

Viernes

Sábado

Domingo

N.º de médicos

12

13

12

12

15

16

10

El coste por semana de un médico es de 600 €; sin embargo si trabaja un día del fin de semana éste se incrementa en 90 €, y si trabaja los dos se incrementa en 180 €, es decir, 90 por cada día del fin de semana. Preguntas 1. 2. 3. © Ediciones Pirámide

Defina las variables que intervienen en el problema. Defina las restricciones y escríbalas. Defina la función objetivo.

479

Decisiones empresariales con hoja de cálculo 6.

Hotel Universal Madrileño: «set packing»

El Hotel Universal Madrileño es operador de dos tipos de hoteles: uno llamado Hotel de Vacaciones, que es de tipo familiar y cuesta 60 euros por habitación y noche, y el segundo llamado Hotel Ejecutivo, que es para individuos que pagan un precio superior por habitaciones mejores y más tranquilas. El Hotel Universal Madrileño está pensando en expandir su cadena en la Comunidad Autónoma de Madrid, por lo que la ha dividido en diez áreas distintas. En la tabla que adjuntamos a continuación se incluyen las zonas donde no se podría poner otro hotel similar por encontrarse a menos de 20 o 30 kilómetros según el tipo de hotel (de vacaciones o ejecutivo) y el valor actual neto que se obtendría colocando un hotel en cada una de las zonas. Otras zonas a menos de 20 kilómetros

Otras zonas a menos de 30 kilómetros

VAN Hotel Vacaciones

VAN Hotel Ejecutivo

1

2, 3, 4

2, 3, 4

11,3

15,7

2

1, 3, 5

1, 3, 5

12,8

13,3

3

1, 2, 4

1, 2, 4, 5

18,5

14,1

4

1, 3

1, 3

17,3

11,9

5

2

2, 3, 10

9,5

13,2

6



7

15,6

19,5

7

8

6, 8

12,8

10,3

8

7

7

18,3

14,7

9

10

10

16,7

15,4

10

9

5, 9

13,9

16,3

Además, ha identificado las siguientes condiciones para la expansión: 1. 2. 3.

4.

480

En cada una de las áreas puede haber como máximo un Hotel Vacaciones, un Hotel Ejecutivo, los dos a la vez o ninguno de los dos. La rentabilidad en términos de valor actual neto (VAN) de la inversión en cada tipo de hotel de cada área viene expresada en la tabla. Se ha determinado para cada localización de Hotel de Vacaciones aquellos otros hoteles posibles del mismo tipo que están a menos de 20 kilómetros (véase tabla). Se ha determinado para cada localización de Hotel Ejecutivo aquellos otros hoteles posibles del mismo tipo que están a menos de 30 kilómetros (véase tabla). © Ediciones Pirámide

Modelización de problemas de programación entera y mixta (II) Se desea saber los hoteles de cada tipo que debe abrir la cadena y dónde deben localizarse, con las restricciones impuestas, para maximizar el valor actual neto de la inversión. Preguntas 1. 2. 3. 7.

Defina las variables que intervienen en el problema. Defina las restricciones y escríbalas. Defina la función objetivo.

Asignación de tareas a máquinas

La confección de una determinada pieza precisa de cinco tareas, disponiendo de cinco máquinas para realizarlas. No todas las máquinas pueden hacer todas las tareas. En concreto, los tiempos (en minutos por tarea) que tarda cada máquina en realizar cada tarea, así como aquellas que no puede realizar (señaladas con «—») son las siguientes: Máquinas Tarea

A

B

C

D

E

1

5

1

7

9

6

2

6



3

2

7

3

8

6





5

4

3



6

3



5



12

8





Se desea minimizar el tiempo de terminación de las cinco tareas, suponiendo que cada máquina tan sólo puede hacer una tarea. Preguntas 1. 2. 3. 8.

Defina las variables que intervienen en el problema. Defina las restricciones y escríbalas. Defina la función objetivo.

Productos Universales, S. A.: asignación de vendedores a clientes

El director de marketing de Productos Universales, S. A. (PUSA) tiene tres vendedores que quiere asignar a cuatro grandes clientes. En función de la expe© Ediciones Pirámide

481

Decisiones empresariales con hoja de cálculo riencia histórica de la empresa y de las habilidades y afinidades de los vendedores con los jefes de compra de cada empresa, se estima que podrían obtener los siguientes volúmenes de ventas (en miles de euros), si fuesen asignados a cada una de las empresas. Empresa cliente El Corte Inglés

PRYCA

Carrefour

Champion

Antonio

40

25

32

18

Margarita

25

32

18

27

Ramón

13

41

27

19

Para que puedan cumplirse las cifras de ventas previstas se estima que cada vendedor puede asignarse a un cliente o a dos como máximo. Se desea determinar la asignación de vendedores a clientes que maximice las ventas de PUSA. Preguntas 1. 2. 3. 9.

Defina las variables que intervienen en el problema. Defina las restricciones y escríbalas. Defina la función objetivo.

Distribuidora de gasoil de Madrid S. A.: asignación

La distribuidora de Gasoil de Madrid (DGAM) dispone de cinco camiones cisterna para el reparto de gasoil de calefacción en Madrid. La capacidad de estas cisternas, así como el coste por viaje, figuran en la tabla adjunta (características de los camiones cisterna). Características de los camiones cisterna

482

Camión-cisterna número

Capacidad (miles de litros)

Coste (ptas/viaje)

1

10

15.000

2

15

18.000

3

21

18.000

4

25

20.000

5

30

22.000

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (II) Todos los días, a primera hora de la mañana, le llegan los pedidos que debe servir a lo largo del día con los camiones cisterna que tiene. Una lista concreta con los pedidos correspondientes al día de hoy es la siguiente: Pedidos a suministrar (en miles de litros)

1

2

3

4

5

6

7

8

10

5

5

8

3

30

20

5

De acuerdo con la experiencia de DGAM y el tiempo de trabajo de cada conductor, no es posible hacer más de dos viajes para un camión cisterna a lo largo de todo el día. Tampoco es posible que cualquier pedido sea servido por más de un camión cisterna. Puesto que los camiones no disponen de contador, cada camión en cada viaje sólo puede servir un único pedido. DGAM quiere minimizar los costes de reparto. Preguntas 1. 2. 3. 10.

Defina las variables que intervienen en el problema. Defina las restricciones y escríbalas. Defina la función objetivo. CAPSA: mezcla

La compañía Autónoma de Petróleos, S. A. (CAPSA) produce dos tipos de gasolina (normal y súper) procedentes de dos tipos de crudo (crudo de Irán y crudo de Arabia). Cada litro de gasolina normal debe tener, por lo menos, un 50 % de crudo de Arabia, y cada litro de gasolina súper debe tener, por lo menos, un 60 % de crudo de Arabia. Cada litro de gasolina normal se vende a 0,30 euros y cada litro de súper a 0,33 euros. De momento se dispone en stock de 10.000 litros de crudo de Arabia y 30.000 litros de crudo de Irán. Sin embargo, es posible comprar cantidades adicionales de crudo de Arabia en el mercado a los siguientes precios: — Hasta 10.000 litros a 0,25 euros por litro. — Los siguientes 10.000 litros (esto es, desde 10.001 a 20.000 litros) a 0,20 euros por litro. — Los siguientes 10.000 litros (esto es, desde 20.001 a 30.000 litros) a 0,18 euros por litro. CAPSA pretende maximizar sus beneficios. © Ediciones Pirámide

483

Decisiones empresariales con hoja de cálculo Preguntas 1. 2. 3. 11.

Defina las variables que intervienen en el problema. Defina las restricciones y escríbalas. Defina la función objetivo. COMAUFRI: Maximización de beneficio con costes e ingresos no lineales

La empresa Comercial Aires del Frío (Comaufri) es una central de compras que adquiere aparatos de aire acondicionado para su cadena de tiendas. Ahora está estudiando el número de aparatos a comprar de la marca Frío Polar, para la presente campaña. Los fabricantes de esta marca le han ofrecido los siguientes precios en función de las cantidades compradas: Cantidad mínima

Cantidad máxima

Precio (€/aparato)

Intervalo 1

0

500

250

Intervalo 2

501

2.000

220

Intervalo 3

2.001

5.000

210

Intervalo 4

5.001

Sin límite

200

Por otra parte, Comaufri ha consultado a todas sus tiendas franquiciadas las cantidades que venderían en función de los distintos precios que podrían ponerles a todas las unidades. Los resultados obtenidos según las unidades a vender son los que se indican en la tabla: Cantidad máxima

Precio (€/aparato)

Intervalo 1

1.000

300

Intervalo 2

3.000

280

Intervalo 3

5.000

250

Intervalo 4

8.000

220

Los costes fijos de la empresa son de 20.000 € por temporada, independientemente de las cantidades compradas o vendidas. La empresa incurre en un coste variable de transporte y gastos financieros de 20 €/aparato. Esta cantidad es independiente del precio de compra. Comaufri pretende maximizar sus beneficios.

484

© Ediciones Pirámide

Modelización de problemas de programación entera y mixta (II) Preguntas 1. 2. 3.

Defina las variables que intervienen en el problema. Defina las restricciones y escríbalas. Defina la función objetivo.

BIBLIOGRAFÍA Escudero, L. F. (1986). Panorámica general sobre sistemas de modelización integrada en planificación de la producción en fabricación flexible. Questiió: Quaderns d’Estadística, Sistemes, Informatica i Investigació Operativa, ISSN 0210-8054, vol. 10, n.º 3, pp. 207269. Garfinkel, R. y Nemhauser, G. L. (1972). Integer Programming. Nueva York: Wiley. Plane, D. R. y Hendrick, T. E. (1977). «Mathematical programming and the location of fire companies for the Denver fire department», Operation Research, vol. 25, n.º 4, julio-agosto. Suárez, A. S. (1976). Decisiones óptimas de inversión y financiación en la empresa. Madrid: Ediciones Pirámide. Valero, F. J. y Villalba, D. (1980). «An Integrated corporate Planning Model for Evaluating Acquisitions and Mergers». IV Congreso de Investigación Operativa Europeo (EURO IV). Cambridge (Reino Unido). Julio. Weingartner, H. M. (1967). Mathematical Programming and the Analysis of Capital Budgeting Problems. Kershaw Publising Company.

© Ediciones Pirámide

485

TÍTULOS RELACIONADOS

Administración de organizaciones en el entorno actual, A. A. Aguirre Sádaba, A. M.ª Castillo Clavero y D. Tous Zamora. Casos prácticos de administración y dirección de empresas, A. M.ª Castillo Clavero, I. M.ª Abad Guerrero y M.ª Á. Rastrollo Horrillo. Casos prácticos de administración y organización de empresas, M.ª J. Hernández Ortiz (coord.). Decisiones empresariales con hoja de cálculo, D. Villalba Vilá y Y. Bueno Hernández. Dirección estratégica, J. A. Jiménez Quintero. Dirección estratégica. Desarrollo de la estrategia y análisis de casos, E. Bueno Campos, M.ª P. Salmador Sánchez, C. Merino Moreno y J. I. Martín Castilla. Dirección estratégica. Nuevas perspectivas teóricas, E. Bueno Campos, P. Morcillo Ortega y M.ª P. Salmador Sánchez. Dirección estratégica de los recursos humanos. Teoría y práctica, E. Albizu y J. Landeta (coords.). Dirección y organización de empresas turísticas, M.ª Á. Gallego Águeda y C. Casanueva Rocha. Economía de la empresa, C. Barroso Castro (coord.). Empresas y organizaciones turísticas, C. Casanueva Rocha y M.ª A. Gallego Águeda. Estrategia y política de empresa. Lecturas, S. Garrido Buj y J. M. Rodríguez Carrasco. Fundamentos de dirección y administración de empresas, M.ª del M. Fuentes Fuentes y E. Cordón Pozo. Gestión de la calidad empresarial. Fundamentos e implantación, F. J. Lloréns Montes y M.ª del M. Fuentes Fuentes. Gestión de la calidad y gestión medioambiental. Fundamentos, herramientas, normas ISO y relaciones, E. Claver Cortés, J. F. Molina Azorín y J. J. Tarí Guilló. Gestión de la formación en la empresa, M.ª P. Andrés Reina. La gestión de la innovación y la tecnología en las organizaciones, A. Hidalgo Nuchera, G. León Serrano y J. Pavón Morote. La gestión de los sistemas de información en la empresa. Teoría y práctica, S. J. Arjonilla Domínguez y J. A. Medina Garrido. La transformación empresarial como base de la competitividad. De la empresa tradicional a la empresa virtual, F. Cuesta Fernández. Mejorando la producción con lean thinking, J. Santos, R. A. Wysk y J. M. Torres. Organización de empresas. Estructura, procesos y modelos, E. Bueno Campos. Organización de la producción. Distribuciones en planta y mejora de los métodos y los tiempos, J. Velasco Sánchez. Principios y fundamentos de gestión de empresas, F. J. González Domínguez y J. Ganaza Vargas (coords.).

Si lo desea, en nuestra página web puede consultar el catálogo completo o descargarlo:

www.edicionespiramide.es