XVIII. Programación lineal 504 XVIII. PROGRAMACIÓN LINEAL 1 1. Ejemplos típicos de programación lineal 1.1 Asignación de recursos Maximizar c1x1 + c2x2 +_ _ _+ cnxn sujeto a a11x1 + a12x2 +_ _ _+ a1nxn ≤ b1 a21x1 + a22x2 +_ _ _+ a2nxn ≤ b2 ... am1x1 + am2x2 +_ _ _+ amnxn ≤ bm x1, x2, …, xn ≥ 0. donde: cj = beneficio por unidad del producto j producido bi = unidades de materia prima i disponibles aij = unidades de materia prima i requeridas para producir una unidad de producto j. 1.2 Problemas de mezcla (problema de la dieta 2 ) Minimizar c1x1 + c2x2 +_ _ _+ cnxn sujeto a l1 ≤a11x1 + a12x2 +_ _ _+ a1nxn ≤ u1 l2 ≤a21x1 + a22x2 +_ _ _+ a2nxn ≤ u2 ... lm≤am1x1 + am2x2 +_ _ _+ amnxn ≤ um x1, x2, …, xn ≥ 0. donde cj = costo unitario del alimento j li = dieta diaria mínima del nutriente i ui= dieta diaria máxima del nutriente i aij= unidades del nutriente i contenidas en una unidad del alimento j. 1.3 Optimización de cartera Markowitz Comparte el premio Nobel 1990: Press Release - The Sveriges Riksbank (Bank of Sweden) Prize in Economic Sciences in Memory of Alfred Nobel KUNGL. VETENSKAPSAKADEMIEN 1 V. Robert J. Vanderbei, Lectures Based on Linear Programming: Foundations and Extensions, Graduate Level, October 2007; Wikipedia; Kelvin Lancaster, Economía Matemática, Bosch, 1972, cap. 3; Clifford Hildreth and Stanley Reiter, “On the Choice of a Crop Rotation Plan”, en Tjalling C. Koopmans, in Cooperation with Armen Alchian, George B. Dantzig, Nicholas Georgescu-Roegen, Paul A. Samuelson and Albert W. Tucker, Proceedings of a Conference, 1951, Activity Analysis of Production and Allocation; David Gale, “Linear programming and the simplex method”, Notices of the AMS, March 2007. 2 Este problema fue formulado por primera vez por George Joseph Stigler, que en 1945 planteó el problema del régimen alimenticio óptimo, conocido ahora como problema de la dieta. XVIII. Programación lineal 505 THE ROYAL SWEDISH ACADEMY OF SCIENCES 16 October 1990 THIS YEAR’S LAUREATES ARE PIONEERS IN THE THEORY OF FINANCIAL ECONOMICS AND CORPORATE FINANCE The Royal Swedish Academy of Sciences has decided to award the 1990 Alfred Nobel Memorial Prize in Economic Sciences with one third each, to Harry Markowitz (1927- ) Merton Miller (1923-2000) William Sharpe (1934- ) Professor Harry Markowitz, City University of New York, USA, Professor Merton Miller, University of Chicago, USA, Professor William Sharpe, Stanford University, USA, for their pioneering work in the theory of financial economics. Harry Markowitz is awarded the Prize for having developed the theory of portfolio choice; William Sharpe, for his contributions to the theory of price formation for financial assets, the so-called, Capital Asset Pricing Model (CAPM); and Merton Miller, for his fundamental contributions to the theory of corporate finance. Summary Financial markets serve a key purpose in a modern market economy by allocating productive resources among various areas of production. It is to a large extent through financial markets that saving in different sectors of the economy is transferred to firms for investments in buildings and machines. Financial markets also reflect firms’ expected prospects and risks, which implies that risks can be spread and that savers and investors can acquire valuable information for their investment decisions. The first pioneering contribution in the field of financial economics was made in the 1950s by Harry Markowitz who developed a theory for households’ and firms’ allocation of financial assets under uncertainty, the so-called theory of portfolio choice. This theory analyzes how wealth can be optimally invested in assets which differ in regard to their expected return and risk, and thereby also how risks can be reduced. Copyright© 1998 The Nobel Foundation XVIII. Programación lineal 506 Datos Históricos Year US US 3-Month Gov. T-Bills Long Bonds S&P 500 Wilshire NASDAQ 5000 Composite Lehman EAFE Bros. Corp. Bonds Gold (Oro) 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1.075 1.084 1.061 1.052 1.055 1.077 1.109 1.127 1.156 1.117 1.092 1.103 1.080 1.063 1.061 1.071 1.087 1.080 1.057 1.036 1.031 1.045 0.852 0.735 1.371 1.236 0.926 1.064 1.184 1.323 0.949 1.215 1.224 1.061 1.316 1.186 1.052 1.165 1.316 0.968 1.304 1.076 1.100 1.012 0.815 0.716 1.385 1.266 0.974 1.093 1.256 1.337 0.963 1.187 1.235 1.030 1.326 1.161 1.023 1.179 1.292 0.938 1.342 1.090 1.113 0.999 1.023 1.002 1.123 1.156 1.030 1.012 1.023 1.031 1.073 1.311 1.080 1.150 1.213 1.156 1.023 1.076 1.142 1.083 1.161 1.076 1.110 0.965 1.677 1.722 0.760 0.960 1.200 1.295 2.212 1.296 0.688 1.084 0.872 0.825 1.006 1.216 1.244 0.861 0.977 0.922 0.958 0.926 1.146 0.990 0.942 1.020 1.056 1.175 1.002 0.982 0.978 0.947 1.003 1.465 0.985 1.159 1.366 1.309 0.925 1.086 1.212 1.054 1.193 1.079 1.217 0.889 0.698 0.662 1.318 1.280 1.093 1.146 1.307 1.367 0.990 1.213 1.217 0.903 1.333 1.086 0.959 1.165 1.204 0.830 1.594 1.174 1.162 0.968 0.851 0.768 1.354 1.025 1.181 1.326 1.048 1.226 0.977 0.981 1.237 1.074 1.562 1.694 1.246 1.283 1.105 0.766 1.121 0.878 1.326 1.078 Notación: Rj(t) = rendimiento de la inversión j en el período t. 1.3.1 Riesgo vs Rendimiento El rendimiento de la inversión es estimado utilizando los promedios históricos: Rendj= (1/T) ∑t=1TRj(t) Markowitz estimó el riesgo de una inversión como la variabilidad de los rendimientos medida por la varianza histórica: Riesgoj=(1/T) ∑t=1T(Rj(t) – Rendj)2 Sin embargo, para tener un problema de programación lineal (y por otras razones) usaremos la suma de los valores absolutos en lugar de la suma de los cuadrados: Riesgoj=(1/T) ∑t=1T │Rj(t) - Rendj│. Concepto de cobertura (hedging) del riesgo Supóngase que la inversión A tiene igual probabilidad de subir un 20% como de bajar un 10% - lo que la hace un activo riesgoso. También supóngase que la inversión B tiene igual probabilidad de subir un 20% como de bajar un 10% - otro activo riesgoso. Pero ahora supongamos que los años en que sube A son años en los que baja B, y viceversa. Luego una cartera compuesta la mitad por A y otra mitad por B subiría 5% cada año. ¡Desaparece el riesgo! XVIII. Programación lineal 507 1.3.2 Concepto de cartera Denotamos como xj a la fracción de activos que debemos invertir en j. Los rendimientos históricos de la cartera son entonces: R(t) =∑j xj Rj(t). El rendimiento total de la cartera lo obtenemos sacando el promedio a lo largo de todos los años: Rend(x) = (1/T) ∑t=1T R(t) = (1/T) ∑t=1T ∑j xj Rj(t) 1.3.3 Riesgo de cartera Riesgo(x) = (1/T) ∑t=1T│R(t) – Rend(x)│=(1/T) ∑t=1T│∑j xjRj(t) – (1/T)∑s=1T∑jxjRj(s)│= = (1/T) ∑t=1T│∑j xj(Rj(t) – (1/T) ∑s=1TRj(s))│= = (1/T) ∑t=1T│∑j xj (Rj(t) – Rendj)│ 1.3.4 Un modelo de tipo Markowitz o o o o Variables de decisión: las fracciones xj. Objetivo: maximizar el rendimiento, minimizar el riesgo. Lección fundamental: no se pueden optimizar simultáneamente dos objetivos. Compromiso: fijar una cota superior μ para el riesgo y maximizar el rendimiento sujeto a esta cota superior. El parámetro μ es denominado parámetro de aversión al riesgo. Un valor grande de μ pone énfasis en la maximización del rendimiento, mientras que un valor pequeño hace énfasis en la minimización del riesgo. Restricciones (1/T) ∑t=1T│∑j xj (Rj(t) – Rendj)│≤ μ ∑j xj = 1 xj≥0 ∀j Problema de optimización Maximizar (1/T)∑t=1T∑j xj Rj (t) sujeto a (1/T) ∑t=1T│∑j xj (Rj(t) – Rendj)│≤μ ∑j xj = 1 xj≥0 ∀j Tenemos que hacer una conversión del problema porque la función valor absoluto no da como resultado un problema lineal: Maximizar (1/T)∑t=1T∑j xj Rj (t) sujeto a -yt≤∑j xj (Rj(t) – Rendj) ≤yt (1/T)∑t=1Tyt≤μ ∑j xj = 1 xj≥0 ∀j ∀t XVIII. Programación lineal 508 1.3.5 Frontera eficiente Al ajustarse paramétricamente la cota de riesgo μ se obtiene la denominada frontera eficiente. Todas las carteras de esta frontera son razonables. Las carteras que no están en la frontera eficiente pueden ser estrictamente mejoradas – ya sea en términos de rendimiento o de riesgo. μ 0.1800 0.1538 0.1275 0.1013 0.0751 0.0488 0.0226 US 3Month TBills Lehman Bros. Corp. Bonds NASDAQ Comp. 0.340 0.172 0.815 0.492 0.100 0.037 Wilshire 5000 0.119 0.407 0.180 Gold EAFE Rendto. Riesgo 0.017 0.191 0.321 0.355 0.260 0.144 0.041 0.983 0.809 0.560 0.238 0.220 0.008 0.008 1.141 1.139 1.135 1.13 1.118 1.104 1.084 0.18 0.154 0.128 0.101 0.075 0.049 0.022 Frontera de eficiencia entre rendimiento y riesgo De esta manera, el algoritmo de programación lineal utilizado por Markowitz nos permite llegar a determinar uno de los elementos básicos del Modelo de Precios de los Activos de Capital (CAPM), que desarrollaremos más adelante. 2. La convexidad en programación lineal Repasemos un concepto importante: XVIII. Programación lineal 509 Convexidad: f es convexa sobre un conjunto convexo de Rn si y sólo si para todo λ comprendido entre 0 y 1 (e.d. 0≤λ≤1): f[λx1+(1-λ)x2]≤λf(x1)+(1-λ)f(x2)] f es cóncava si y sólo si –f es convexa. Estrictamente convexa: f[λx1+(1-λ)x2]<λf(x1)+(1-λ)f(x2)]. Funciones lineales: son simultáneamente cóncavas y convexas. Propiedad 1 – Sea f una función convexa definida sobre un conjunto convexo cerrado en Rn →R Todo mínimo local es también un mínimo global. Corolario El conjunto en los cuales la función f alcanza un mínimo es convexo. Propiedad 2 – Si f es lineal y alcanza su mínimo en dos puntos diferentes, tiene mínimo en infinitos puntos. Propiedad 3 – Si f es una función estrictamente convexa y alcanza su mínimo, éste es único. (Corolario útil en la teoría de la programación no lineal). En general, para garantizar la existencia de un extremo de un problema de programación se suele apelar al teorema de Weierstrass. En este caso se necesita la compacidad del conjunto factible – lo cual implica que sea cerrado y acotado. 3. Formas típica, canónica y general de un problema 1) Forma Típica Max cx sujeto a Ax≤b, x≥0. 2) Forma Canónica Max cx sujeto a Ax=b, x≥0. Un problema de PL planteado en forma típica puede ser convertido a la forma canónica definiendo variables z=b-Ax y una matriz ampliada A’ tal que A’x+z=b, z≥0, x≥0. Recíprocamente, un problema en forma canónica Ax=b, x≥ 0 es equivalente al siguiente problema en forma típica: Ax≤b, -Ax≤ -b, x≥0. Por consiguiente, ambos problemas son estrictamente equivalentes. Queda por mencionar que a veces suele encontrarse un problema de PL llamado forma general porque las inecuaciones están planteadas en cualquiera de ambas formas. 4. Propiedades de la forma típica 1.- El conjunto factible K es convexo y cerrado. XVIII. Programación lineal 510 Dem.) K resulta ser la intersección de semi-espacios cerrados y convexos. Es, por lo tanto, cerrado y convexo 3 . 2.- El conjunto factible K es un polítopo convexo. Dem.) “Polítopo” es la extensión n-dimensional del concepto de poliedro. K tendrá un número finito de vértices, por resultar de la intersección de semiespacios cerrados. No siempre resultará acotado. 3.- El óptimo de un problema de PL es un óptimo local y también global. Dem.) La función objetivo es lineal y puede considerarse, por tanto, cóncava así como convexa. Como el conjunto factible K es convexo, las condiciones de óptimo global se satisfacen tanto para un máximo como para un mínimo. 4.- Si el problema lineal tiene solución, ésta se produce sobre la frontera de K. La solución no puede ser interior a K. Un cuboctaedro es un poliedro convexo de caras regulares estudiado ampliamente por Arquímedes Dem.) Supóngase que en un problema de máximo la solución pertenece al interior de K. Como f es lineal, aumentando proporcionalmente todas sus componentes se obtendría un valor más elevado de f. Por tanto, el punto original no podría ser óptimo. 5.- Una combinación lineal convexa es una combinación lineal con ponderaciones no negativas cuya suma es la unidad. Los puntos extremos tienen la propiedad de que no pueden caracterizarse como combinación convexa de otros puntos del conjunto K, y que todos los demás puntos pueden expresarse como combinación lineal convexa de ellos. 6.- El óptimo de un problema de PL se alcanza, o bien en un punto extremo, o bien en un conjunto de puntos extremos. En este último caso, todas las combinaciones convexas de dichos puntos extremos son también óptimos. Dem.) Si el óptimo v no se alcanza en todos los puntos extremos xk utilizados para definir x, cx*<v para, por lo menos, un k, cx<v y luego x no puede ser máximo. Si el máximo es el mismo para todos los puntos extremos, cx=v. Si x es óptimo, también lo son los puntos extremos y, por el mismo motivo, también todas las demás combinaciones convexas de dichos puntos extremos. La figura siguiente corresponde al conjunto factible de una empresa con dos recursos fijos delimitado por cuatro puntos extremos. Todas las técnicas de solución de programas lineales son técnicas de tanteo, y en todas ellas se procede eligiendo un punto extremo, hallando el valor que toma en él la función objetivo, escogiendo después otro punto extremo, y así sucesivamente. Las 3 Un poliedro convexo es aquel en el que se verifica que cualquier par de puntos ubicados en su interior determinan un segmento de recta también interior. Si un poliedro es convexo, está incluido en uno de los semiespacios de borde del plano que contiene a una de sus caras. XVIII. Programación lineal 511 técnicas de solución eficientes, entre las cuales la más conocida es el método del simplex 4 facilitan una regla para no tener que considerar aquellos puntos extremos para los cuales la función objetivo alcanza valores menores que el que alcanza en el punto extremo ya estudiado. Conjunto factible 20x + 25y < 400 2x + 5y < 60 x > 0, y > 0 El método simplex, desarrollado por George Dantzig, resuelve un problema de PL obteniendo una solución factible en un vértice del poliedro para luego deslizarse a lo largo de sus bordes hacia los vértices que ostentan un mayor valor de la función objetivo, hasta que se alcanza el óptimo. La solución de los problemas de PL mediante el método simplex es popular en la esfera de la industria, como por ejemplo en la optimización de los flujos en las redes de transporte, problemas que pueden ser considerados como de PL. 5. Dualidad “Desde la introducción del análisis marginal, ninguna idea ha resultado tan importante para la teoría fundamental de los precios como la de dualidad” (K. Lancaster). En el problema típico de máximo, Forma Típica Max cx sujeto a Ax≤b, x≥0. 4 En la teoría de optimización, el algoritmo símplex, descubierto por el matemático norteamericano George Bernard Dantzig en 1947, es una técnica popular para obtener soluciones numéricas de problemas de programación lineal. Permite encontrar una solución óptima en un problema de maximización o minimización, buscando en los vértices del polígono. Un método sin relación, pero llamado de manera similar, es el método Nelder-Mead o método símplex cuesta abajo, debido a Nelder y Mead (1965), que es un método numérico para optimización de problemas libres multidimensionales, perteneciente a la clase más general de algoritmos de búsqueda. En ambos casos, el método usa el concepto de un símplex, que es un politopo de N + 1 vértices en N dimensiones: un segmento de línea sobre una línea, un triángulo sobre un plano, un tetraedro en un espacio de tres dimensiones y así sucesivamente. XVIII. Programación lineal 512 los vectores c, b y la matriz A son datos del problema. Con los mismos datos, pero con un conjunto de variables distinto, podemos formular otro problema: Forma Dual Mín yb sujeto a yA≥c, y≥0. Al primer problema se lo suele llamar primal cuando ambos problemas son considerados a la vez. La transformación de un problema a su dual implica lo siguiente: • Si las variables primales aparecen como un vector columna de orden n, las variables duales aparecen como un vector fila de orden m, y viceversa. • Los elementos del vector de restricciones del programa primal pasan a ser las ponderaciones de la función objetivo dual, y las ponderaciones del primal se convierten en las restricciones del dual. • Un problema de máximo pasa a ser de mínimo, y viceversa. • Se invierte la dirección de las desigualdades de las restricciones funcionales. • Se mantiene la condición de no negatividad de las variables en ambos problemas. La relación de dualidad es simétrica: el dual del problema dual es el problema primal, por ejemplo. Al vector y se lo llama vector de variables duales. 5.1 Teorema de dualidad 5 Un vector x* del problema primal es óptimo si y sólo si el dual tiene un vector factible y* tal que cx*=y*b. En este caso, el vector y* es óptimo para el dual. Para fijar estas nociones en relación con la teoría económica, vamos a partir de un ejemplo: la maximización del producto bruto interno sujeto a la disponibilidad de factores. La resolución del problema primal implica una asignación de recursos entre los sectores productivos. Este teorema implica que el problema de asignación de recursos tiene sentido siempre y cuando se puedan hallar precios de equilibrio en el sentido del dual: el valor del producto bruto interno debe ser igual al pago imputado a los factores productivos primarios de la economía. 5.2 Teorema de existencia El primal y el dual tienen soluciones de óptimo si y solamente si ambos tienen soluciones factibles. 5 La primera enunciación explícita del teorema de dualidad se debe a von Neumann (¡cuándo no!) en un manuscrito que circuló en forma privada pero que nunca fue publicado en toda su vida: J. Von Neumann, “Discussion of a maximum problem”, working paper, Nov. 15-16, 1947. También ha resultado difícil verificar la demostración de von Neumann. La primera demostración publicada es de Gale D., Kuhn H.W. and Tucker A.W., “Linear programming and the theory of games”, in T.C. Koopmans (ed.), Activity Analysis of Production and Allocation, John Wiley & Sons, New York, 1951. XVIII. Programación lineal 513 Aceptemos momentáneamente el primer teorema. Luego, cuando un problema tiene un óptimo, también lo tiene el otro. Sólo es posible que ambos tengan soluciones óptimas si ambos tienen soluciones factibles, con lo que queda demostrada la parte necesaria del teorema de existencia. Evidentemente la optimalidad de un programa implica su factibilidad. No puede ser a la inversa. Lema fundamental Si x, y son factibles para el dual y el primal respectivamente, se cumplirá la relación: cx≤yAx≤yb. Dem.) Las restricciones del primal establecen Ax-b≤0. En caso de ser factible, resulta que y≥0, y(Ax-b)≤0, y yAx≤yb. Ahora, con las restricciones duales yA-c≥0, teniendo en cuenta la no-negatividad de x, para que x e y sean factibles debe darse cx≤yAx. El lema queda así demostrado. Ahora volvemos al teorema de existencia propiamente dicho. De acuerdo con dicho lema, si y’ es un vector factible cualquiera del dual, cx≤y’b para todo x factible del primal. En consecuencia, el conjunto de los v=cx tales que x es factible en el primal es un conjunto continuo y cerrado, acotado superiormente y tiene un máximo. Por tanto, el primal tiene un óptimo si ambos problemas tienen solución factible. En cuanto a la suficiencia del teorema de dualidad: consideremos el lema fundamental. Sean x*, y* soluciones factibles tales que cx*=y*b y sea x cualquier otro vector factible del primal. Luego, cx≤y*b (por el lema fundamental) ≤cx* de tal forma que x* es óptimo para el primal. Para demostrar la optimalidad de y* en el dual se sigue un razonamiento semejante. Este teorema de dualidad nos permite determinar si un par dado de vectores factibles es o no óptimo, pero hay que examinar en forma simultánea el primal y el dual. 5.3 Teorema del equilibrio de la programación lineal a) 1) 2) Si x*,y* son factibles para el primal y el dual, son óptimos si y solamente si yi*=0 siempre que Σi aij xj*<bi , xj*=0 siempre que Σi aij yji* >cj, es decir, la k-ésima variable de un problema es cero siempre que la k-ésima restricción del otro problema sea no-efectiva. En otros términos, 1) el precio de equilibrio de un recurso será cero siempre que la oferta del recurso primario sea superior a su demanda (bien libre); 2) el nivel de actividad de una industria XVIII. Programación lineal 514 será cero siempre que el costo imputado de producción en esa industria (1º miembro) sea superior al beneficio unitario que se puede obtener por la producción. b) El punto óptimo (o uno de ellos) será siempre tal que el número de variables no nulas de cada problema no sea mayor que el número de restricciones de dicho problema (dimensionalidad de la solución). Este teorema es importante por dos razones: 1º) permite verificar el carácter óptimo de una solución primal, incluso cuando no conozcamos la solución dual. 2º) nos permite llegar a interpretaciones muy significativas de las condiciones de óptimo en los modelos económicos que aparecen en la Programación Lineal. Dem.) La demostración de a) requiere aplicar el teorema de dualidad y el lema fundamental. Para probar la necesidad, observen que, si x*, y* son óptimos, entonces cx*=y*Ax*=y*b. De lo cual se deduce que y*Ax* - x*=0, y por lo tanto (y*A – c)x*=0. Como y* es factible, y*A - c≥0, y como x* también lo es, x*≥0. Luego, cada sumando de (y*A – c)x*=∑j(∑iaijyj* - cj) xj* debe anularse, y debe cumplirse alguna de las dos relaciones siguientes: (∑aij yj* - cj) = 0 o xj*=0. Un razonamiento similar – usando la segunda igualdad – demuestra la necesidad de la condición 2) del teorema. Para demostrar la suficiencia, supongan que x*, y* son factibles y satisfacen 1) y 2). En tal caso, cada sumando de ∑j(∑i aijyj* - cj) xj* debe ser cero, lo mismo que todos los de ∑i(∑j aij xj* - bi) yi*. Por consiguiente cx*=y*Ax*=y*b ⇒ x* e y* son óptimos. 5.4 Ejemplo (Interpretación económica de asignación de recursos) Se tiene un modelo lineal de producción en el cual intervienen n productos xj y m factores bi relacionados entre sí mediante coeficientes de producción constantes aij que indican la cantidad del factor i-ésimo necesaria para obtener una cantidad unitaria del producto j-ésimo. Por lo tanto, la cantidad unitaria total del i-ésimo insumo necesaria para producir la combinación de productos x viene dada por Σj aij xj. El producto matriz-por-vector Ax determina el vector de factores necesarios para producir dicha combinación. Como datos tenemos un vector p de precios de los productos, y un vector b de total de recursos utilizables. Queremos estudiar las propiedades de la producción óptima, definida según máx. px. Se trata de un modelo de Programación Lineal Máx px sujeto a Ax≤b, x≥0. XVIII. Programación lineal 515 El dual del problema es Mín yb sujeto a yA≥p, y≥0. Interpretemos el dual en 1º término. Según el teorema de la dualidad tenemos que px*=y*b. Como la dimensión de px* es de valor monetario (=precio multiplicado por cantidad), y*b debe tener la misma dimensión. Como b es un vector de cantidades de factores, y será algún tipo de precios (=precios de factores). Debido a esta dimensión que tienen las variables duales se las suele llamar también precios sombra (esta denominación se debe a Koopmans). Vagamente hablando, un precio sombra es el cambio del valor objetivo de la solución óptima de un problema de optimización obtenido relajando la restricción en una unidad. En una aplicación comercial, un precio sombra sería el precio máximo que la administración estaría dispuesta a pagar por tener una unidad adicional de un recurso dado limitado. Verbigracia: ¿cuál es el precio de mantener operativa una línea de producción por una hora adicional si esta línea de producción ya está operando a su capacidad máxima de 40 horas por semana? Éste sería su precio sombra. En términos más formales, el precio sombra es el valor del multiplicador de Lagrange en la solución óptima, lo que significa que es un cambio infinitesimal de la función objetivo derivado de un cambio infinitesimal de la restricción. Esto surge porque en la solución óptima el gradiente de la función objetivo es una combinación lineal de los gradientes de las funciones de restricción con ponderaciones iguales a los multiplicadores de Lagrange. Cada restricción de un problema de optimización tiene un precio sombra o variable dual. El precio sombra es, por consiguiente, el verdadero precio económico de una actividad: su costo de oportunidad. Los precios sombra pueden ser calculados para bienes y servicios que no tienen un precio de mercado, por ejemplo porque están siendo fijados por el gobierno. Estos precios son frecuentemente utilizados en el análisis costo-beneficio, cuyo propósito es tomar en cuenta a todas las variables que intervienen en la toma de decisiones, y no solamente aquellas para las cuales hay precios de mercado. El valor alcanzado por un precio sombra facilita a los que deben tomar decisiones una visión muy poderosa del problema. Por ejemplo, si se tiene una restricción que limita la cantidad disponible de trabajo a 40 horas por semana, el precio sombra informa cuánto se estaría dispuesto a pagar por disponer de una unidad adicional de trabajo. Si el precio sombra de la restricción de trabajo es $10 por hora, no deberían pagarse más que $10 por hora de trabajo adicional. Costos laborales inferiores a $10/hora aumentarán el valor de la función objetivo; costos laborales superiores a $10/hora lo reducirán. Costos laborales exactamente iguales a $10/hora dejarán sin alterar el valor alcanzado por la función objetivo. Considerando ahora las restricciones duales, cada una de las cuales es de la forma Σi aij yi ≥ pj , como aij es la cantidad del iésimo factor necesaria para producir una unidad del producto j, aij yi es el valor del factor iésimo necesario para producir una unidad del producto j, y Σ aij yi es el valor total de los factores necesarios para producir una unidad del producto j, con todos los factores valorados según los precios sombra y. Podemos interpretar el dual de la siguiente manera. Sería la respuesta al problema :¿cuál es el valor mínimo que se les debe asignar a los recursos utilizables b, sabiendo que también es posible transformar dichos recursos en productos y vender éstos? Las restricciones del dual reflejan el XVIII. Programación lineal 516 hecho de que, si el valor de los factores incorporados a un producto fuese menor que el precio del producto, sería más rentable producir y vender el producto que vender los factores. Para los valores óptimos x*,y* a la empresa le será indiferente utilizar los recursos y vender el producto por px* o vender los recursos a los precios y* obteniendo unos ingresos totales y*b=px*. (Lo dicho para la empresa también es válido para una economía en su conjunto). Dentro de este contexto, ¿cuáles son las implicancias del teorema de equilibrio de la programación lineal? Tal vez una de las más importantes sea la siguiente: Todo factor que no pueda ser completamente utilizado en la producción de la combinación de productos óptima recibirá una valoración óptima, o precio sombra, nula. En el óptimo no se producirá ningún producto cuyo costo marginal (=medio) exceda a su precio, valorando los factores según los precios sombra óptimos. En otras palabras, si los precios sombra son precios reales, los recursos para los que exista exceso de oferta serán bienes libres, y no se utilizarán los procesos que provoquen pérdidas. La denominación de “equilibrio” se corresponde con las condiciones normalmente vigentes en una economía competitiva. 6. Soluciones básicas 6.1 Teorema de la base de la programación lineal Este punto en el que vamos a entrar es algo más técnico. Definamos como solución básica de un problema en forma canónica a un punto extremo del conjunto factible. Con respecto a este concepto, es válido el siguiente teorema: La base es una matriz mxm que será denotada AB. El teorema especifica que si la base AB es óptima (el conjunto de m columnas de A correspondiente a la elección de variables no nulas para un vector básico es la base de dicho problema) para el problema canónico Max cx sujeto a Ax=b, x≥0 y también es factible para el problema canónico Max cx sujeto a Ax=b’, x≥0 (donde se ha alterado el vector del 2º miembro) también permanece óptima para este último problema. Ahora podemos encarar un importante teorema de la PL: 6.2 Teorema de interpretación de las variables duales Sea un problema de PL que tenga a b como vector de restricción del primal, a V* como valor óptimo de la producción y a y* como vector dual óptimo. Supongamos que b varía hasta b+Δb, sujeto a la condición de que la base óptima original se conserve factible. En este caso, la variación en el valor óptimo de la función objetivo viene dada por ΔV*=y*Δb. En particular, si sólo cambia el iésimo componente de b, se tendrá: ΔV*= yi* Δbi . XVIII. Programación lineal 517 Esto implica que (ΔV*/Δbi ) = yi* nos proporciona la interpretación de la variable dual i-ésima en el óptimo como el valor marginal que para el programa óptimo supone el relajamiento de la i-ésima condición. En un contexto económico típico sería el valor marginal social, o producto marginal resultante de incrementar la cantidad del correspondiente recurso. Por ello se justifica la interpretación habitual de las variables duales como precios sombra. 7. Aplicaciones: agricultura Vamos a analizar el plan óptimo de rotación de un conjunto de cultivos por medio de métodos de programación lineal, para un agricultor individual. El análisis es estático y relevante para decisiones de largo plazo con respecto a los planes de cultivo y rotación que serán adoptados como práctica permanente. El productor actúa en mercados agropecuarios competitivos. Los cultivos que trataremos son comunes en las granjas del Cinturón del Maíz – núcleo agrícola de los USA, o “Corn Belt” - (compuesto esencialmente por los estados de Kentucky, Illinois, Indiana e Iowa). El Cinturón del Maíz (Corn Belt) de Estados Unidos Un plan de rotación especifica una sucesión de cultivos que serán plantados en años sucesivos en una parcela determinada de terreno. Una rotación consistente de maíz, avena y heno, abreviada como MAH, significa por ejemplo que la parcela será sembrada con maíz el primer año, avena el segundo, heno el tercero, maíz el cuarto, avena el quinto, y así sucesivamente. Éste sería un plan de rotación trienal. El productor que adopte esta rotación dividirá probablemente su terreno en subparcelas y producirá algún cultivo en alguna etapa de la rotación. Esto lo llevará a distribuir su trabajo de un modo más parejo a lo largo del año y le permitirá cubrirse ante el fracaso de algún cultivo en un año. Considerando los efectos de largo plazo, las rotaciones MAH y AHM serían la misma, pero MHA no. Esto puede deberse a que cultivar la avena antes que el maíz tiene un efecto diferente sobre los suelos y puede dar como resultado un rendimiento diferente de los tres cultivos. Para simplificar supondremos que con cada rotación está asociado XVIII. Programación lineal 518 un determinado plan de cultivo (por ejemplo, una secuencia particular del tratamiento del suelo). También se supondrá al principio que toda la tierra es homogénea. Lo significativo de un plan de rotación son los rendimientos consiguientes y los requerimientos de insumo (acres 6 de tierra, horas de trabajo, litros de combustible, etc.) necesarios para implementar la rotación. Una rotación será identificada por medio de un vector que especifica estas cantidades. Es conveniente pensar en las cantidades representadas por una determinada rotación como los rendimientos anuales de los cultivos y los insumos anuales promedio usados por acre dedicados a esa rotación. En otras palabras, el vector de rotación será normalizado por el insumo tierra. Cada rotación representa una actividad de un modelo lineal. Cada cultivo producido y cada insumo utilizado es tratado como un bien. Comenzando con el ejemplo de dos rotaciones, por ejemplo maíz todos los años (MMM) y heno todos los años (HHH) y suponiendo que el único insumo requerido es la tierra, podemos representar al modelo como en la Tabla I. Tabla I Bienes y1=producción de maíz y2=producción de heno y3=insumo de tierra Actividades Rotación 1 MMM x1 a11 0 -1 Rotación 2 HHH x2 0 a22 -1 En primer término suponemos que el insumo de tierra está fijo, por ejemplo y=-k y por lo tanto, se tiene que x1+x2=k. La Figura 1 indica las combinaciones alternativas de maíz y de heno que pueden ser obtenidas cambiando los niveles de las actividades x1 y x2. Si toda la tierra se dedica a la rotación 1, nos ubicamos en el punto Q1 (de coordenadas ka11 y 0); si toda la tierra es asignada a la rotación 2, nos vamos al punto Q2 (0,ka22). Todos los puntos del segmento Q1Q2 se obtienen distribuyendo la tierra entre las dos rotaciones en montos iguales a αk y (1α)k, con 0≤α≤1. Si los productos no pueden ser destruidos o desperdiciados, el segmento Q1Q2 es el conjunto de todas las combinaciones posibles de maíz y de heno dado el insumo de tierra. También es el conjunto de puntos eficientes dado el insumo tierra, ya que en Figura 1 cada punto una de las coordenadas sólo puede ser aumentada a expensas de la otra. Si hay libre disponibilidad de los excedentes, el conjunto de puntos de todo el triángulo Q1O’Q2 puede ser alcanzado por el productor, por ejemplo produciendo alguna combinación sobre el segmento Q1Q2 y desperdiciando o destruyendo la cantidad apropiada. Empero, el conjunto de puntos eficientes sigue siendo el segmento Q1Q2. Ahora introducimos una variación en la cantidad de tierra. Entonces el triángulo de la Figura 1 se transforma en el cono OO’Q1Q2 en el espacio de bienes tridimensional de la Figura 2 (pág. 519). La Figura 1 puede ser considerada como la intersección de este cono con el plano y3=-k. En forma alternativa, el cono puede ser visto como obtenido mediante la multiplicación y expansión a partir 6 1 acre= 4 047 m2. XVIII. Programación lineal 519 del origen del triángulo de la Figura 1 por un factor variable no negativo. Si eliminamos la libre disposición de los excedentes, el conjunto de puntos eficientes y el conjunto posible de producción coinciden y consisten de la faceta “frontal” del cono (es decir, las dos semirrectas con origen en 0 y que terminan, una en Q1 y la otra en Q2, y los puntos del plano anguloso generado estas dos semirrectas). Si permitimos la disposición de excedentes, todo punto del cono resulta posible. Empero, no todo punto puede ser eficiente porque, a partir de un punto interior, se puede obtener más heno (maíz) con la misma cantidad de tierra y sin perder nada de maíz (heno). En forma alternativa, en cualquier punto interior sería posible producir esa combinación de maíz y de heno usando menos tierra. Solamente los puntos que yacen en la faceta “frontal” del cono son eficientes. La ecuación del plano que pasa a través de 0,Q1,Q2 determina las tasas de sustitución o de transformación entre bienes en la producción eficiente. Usando notación de la Tabla 1, la ecuación del plano es y3= - (1/a11) y1 – (1/a22)y2. Luego la tasa marginal de sustitución entre heno y maíz es a22/a11, y la tasa marginal de transformación entre maíz y tierra es a11 y entre heno y tierra a22. En este caso simple el agricultor que dispone de una cantidad fija de tierra buscará maximizar el Figura 2 rendimiento de la tierra y de su capacidad como empresario eligiendo entre producir maíz o heno sobre la base del precio relativo entre ambos productos. Si la relación del precio del maíz (p1) al precio del heno (p2) excede a la relación de equivalencia de heno en términos de maíz (p1/p2>a22/a11) elegirá producir maíz, y a la inversa en el caso contrario. El caso en que se da que p1/p2=a22/a11 es de indiferencia entre producir cualquiera de ambos cultivos, y toda combinación de αk acres de maíz y (1-α)k acres de heno (0<α<1) será igualmente rentable. La relación de precios de mercado p1/p2 determina una familia de líneas paralelas en el espacio (y1,y2) tal que todos los puntos ubicados en la misma línea representan combinaciones de y1 e y2 con el mismo valor de mercado. Estas combinaciones están indicadas en la Figura 3. El ángulo interior formado por la intersección de estas líneas con el eje positivo de las y1 es θ=arctan (p1/p2). La línea O’V que pasa por el origen, perpendicular a las líneas de valor constante, tiene la propiedad de que el valor de mercado de cualquier punto (y1,y2) puede ser medido mediante la proyección del punto sobre esta línea. Luego puede ser llamada el eje de valor. Mientras que y1 e y2 tengan precios positivos, el eje de valor yacerá en el cuadrante positivo del plano (y1,y2). La línea 0’V’ es perpendicular al segmento Q1Q2 y tiene la interesante propiedad de que todas las Figura 3 combinaciones de precio cuyos ejes de valor se sitúen entre O’V’ y el eje de las y1 hacen que y1 sea el producto más rentable. Lo cual es otra manera de decir que el maíz es más rentable si p1/p2>a22/a11. XVIII. Programación lineal 520 7.1 Casos más complejos Estas ideas se trasladan en forma simple a los casos más complejos de varias rotaciones de cultivos, por ejemplo según los datos de la Tabla II. Tabla II Bienes Actividades y1=producc de maíz y2=producc de heno y3= insumo de tierra Rotación 1 MMM x1 a11 0 -1 Rotación 2 HHH x2 0 a22 -1 Rotación 3 MMH x3 a13 a23 -1 Rotación 4 MHH x4 a14 a24 -1 Supongamos nuevamente que la tierra está fija en k acres (x1+x2+x3+x4=k). Si se cultiva sólo maíz o heno lo indicamos en los puntos Q1 y Q4 de la Figura 4. Sembrar dos campañas de maíz seguidas por una campaña de heno está indicado por Q3 (coordenadas ka13, ka23). Si Q3 hubiera sido un punto interior del anterior conjunto de puntos posibles, tal como Q3’ , ello indicaría que la tierra reaccionó en forma desfavorable a la alternancia de cultivos. Q3’ no significaría una expansión del conjunto de puntos posibles y no resultaría eficiente, dado que hay combinaciones de las rotaciones 1 y 2 que producen más de ambos cultivos. Pero Q3 agrega otros puntos posibles y constituye de por sí un punto eficiente. Q4 representa el resultado de cultivar una campaña de maíz y dos campañas de heno en cada parcela de tierra para cada período de tres años. El nuevo conjunto de puntos posibles es el interior y la frontera del polígono formado por los ejes y por Q1Q3Q4Q2. La línea quebrada Q1Q3Q4Q2 es el conjunto correspondiente de puntos eficientes, comparable con una curva de transformación de productos de la teoría económica usual. Ahora se tienen tres tasas marginales de transformación entre productos, cada una de las cuales corresponde a cada segmento del conjunto de puntos eficientes. La semirrecta O’V13 es el eje de valor que corresponde a precios tales que p1/p2=a23/(a11 – a13). Con estos precios todas las rotaciones de cultivos 1 y 3, así como sus combinaciones, son igualmente rentables 7 . Las tres líneas perpendiculares a los segmentos de segmentos de puntos eficientes dan lugar a una clasificación en cuatro grupos, cada uno de los cuales contiene las combinaciones de precios para las cuales un determinado plan de rotación es el más rentable. Figura 4 Si ahora consideramos a la tierra como variable, el conjunto de puntos posible se transforma en un cono y el conjunto de puntos eficientes forma parte de su frontera, como se muestra en la Figura 5. El conjunto de puntos eficientes ahora tiene tres segmentos de línea eficientes pertenecientes a la Figura 4. El conjunto de puntos eficientes es conceptualmente el mismo que la superficie de transformación utilizada en la teoría de los productores. Hay una diferencia: las tasas marginales de sustitución y 7 Observen que definimos la rentabilidad por medio del valor total de los dos cultivos sembrados. La rentabilidad incluirá el beneficio económico y la renta de la tierra. Fíjense también que si p1/p2>a23/(a11-a13) la rotación 1 sería la más rentable y el eje de valor estaría ubicado entre O’V13 y el eje de las y1. De la misma forma, si se tuviera que a23/(a11-a13)<p1/p2<(a24-a23)/(a13-a14) el eje de valor se ubicaría entre O’V13 y O’V34 haciendo que la rotación 3 de cultivos sea la más rentable. XVIII. Programación lineal 521 de transformación varían en forma discontinua en el borde de las facetas del conjunto de puntos eficientes, permaneciendo constantes en todos los puntos interiores de una faceta 8 . Cada faceta frontal del cono de la Figura 5 determina un conjunto de tasas marginales de transformación. Por ejemplo, la ecuación del plano que pasa por 0,Q1,Q3 es y3= (-1/a11) y1 – (1/a23 – a13/a11a23) y2. Éste determina la TMS entre heno y maíz como a23/(a11-a13) y la tasa marginal de transformación entre heno y tierra como a11a23/(a11-a13). En notación de matrices, todo esto se puede resumir así. El modelo es planteado mediante la expresión y=Ax, donde y es el vector de bienes, A la matriz de coeficientes – como la de la Tabla II, y x es un vector de niveles de actividad que indica cuál es el nivel utilizado de cada una. Indicamos con p al vector de precios cuyos elementos son los precios de los bienes y. El beneficio π, por lo tanto, viene dado por π=p’y. Si no hubiera restricciones sobre la selección de las x y con precios dados, si una de sus actividades proporciona un beneficio positivo el empresario podría llegar a realizar cualquier beneficio eligiendo un valor apropiado para xi, el elemento del vector x que proporciona Figura 5 un beneficio positivo. Esta situación no se da en la práctica, porque un empresario que se expandiera suficientemente no tardaría en toparse con alguna restricción que limita sus pretensiones de tener beneficios siempre más amplios. Por un lado, llevaría al alza del precio de los recursos que utiliza, o a la baja del precio de los productos que comercializa, o agotaría sus recursos disponibles de un modo menos eficiente, o aún sus recursos financieros. Sin embargo, aún así es probable que algunas restricciones nunca sean alcanzadas, en el sentido de que la selección más rentable de cultivos sea la misma en un modelo que las incluye que en un modelo que las excluye. Antes se supuso que la única restricción efectiva era la cantidad de tierra que tiene el agricultor. En modelos donde un único recurso es la restricción efectiva, el problema se simplifica al de elegir aquella actividad que proporciona mayor rentabilidad unitaria del recurso fijo. En la teoría clásica del equilibrio competitivo, los beneficios se ven eliminados por la competencia entre los empresarios por la tierra. Esto lo podemos formalizar como un modelo lineal donde el vector y y la matriz A incluyen sólo a los bienes, sin tener en cuenta a la tierra. π =p’y representaría entonces la suma de beneficios y renta. Si los demás recursos son abundantes y sobra tierra, los beneficios serán empujados hacia cero y π consistirá solamente de rentas 9 . La 8 Se trata del mismo tipo de análisis que hemos visto cuando la función de producción es representada mediante un modelo de análisis de actividades. 9 La Ley de la Renta fue formulada por David Ricardo alrededor de 1809. Fue la primera exposición clara sobre el origen y la magnitud de la renta de la tierra, y constituye uno de los principios establecidos más firmes de la economía. Sostiene que la renta de una parcela es igual a la ventaja económica que se obtiene usando esa parcela en su uso más productivo, en comparación con la ventaja de usar parcelas marginales (es decir, las mejores parcelas que no pagan renta) con el mismo fin, dados los mismos insumos de traajo y capital. Tiene varias implicancias importantes, tal vez una de ellas sea acerca de los salarios. La Ley de la Renta implica que los salarios no guardan una relación sistemática con el trabajo, sino que están determinados por su productividad en las parcelas marginales porque toda producción en exceso de ese XVIII. Programación lineal 522 competencia obligará a los empresarios a usar siempre la mejor actividad con el fin de evitar pérdidas. Formalización: supongamos que aij* es aquella columna de A a la que corresponde la mejor actividad (es decir, πj =kp’aj*≥ πl para todo l). Luego la renta por acre de tierra es igual a p’aj*. Si en la economía existieran diversos tipos de tierra, podríamos escribir y=[A B C . . .]x donde hemos acomodado una matriz [A B C . . .] de tal forma que las actividades que usan tierra de tipo A por ejemplo, aparecen a la izquierda, las actividades que usan tierra de tipo B aparecen a continuación, etc. Las rentas de esas tierras serían p’aj*, p’bl*, p’cm*, etc. donde bl*, cm* serían las actividades óptimas en las tierras de tipos B y C respectivamente. La diferencia de renta, por ejemplo, entre las de tipo A y B sería igual a p’(aj* - bl*). Esta diferencia corresponde a la noción clásica de diferencia de rentas determinada por diferencias de productividad. Finalmente, exploremos la siguiente cuestión, considerando los hiperplanos en el espacio de precios que tienen la forma p’ai*: cada uno representa una combinación de precios para la cual la i-ésima actividad proporcionaría renta cero en una parcela de tipo A. Divide al espacio de precios en dos sectores, uno que contiene precios para los cuales la actividad brindará una renta positiva, y otro que contiene precios a los cuales la actividad proporcionará pérdidas. Si esto es repetido para todas las actividades, el conjunto de precios para los cuales no hay actividad que brinde una renta positiva será o bien vacío o bien un conjunto convexo. Si se trata de un conjunto convexo no vacío, sus límites podrían ser considerados como los márgenes de precio de los cultivos. 7.2 El problema del transporte Un bien determinado, digamos acero, está disponible en cantidades dadas en un conjunto de m orígenes y requerido en cantidades específicas en un conjunto de n destinos. Para cada origen i y destino j hay un costo de transportar una unidad de acero desde i hasta j. El problema es hallar una configuración de transportes que satisfagan las demandas existentes al mínimo costo. Casi todas las aplicaciones de la programación lineal – incluyendo este ejemplo – pueden ser motivadas de la siguiente manera. Existen ciertos bienes en cantidades limitadas. Por ejemplo, en el problema de la dieta se trata de los diversos nutrientes. Para el problema del transporte hay m+n bienes, que en todos los casos son acero en cada uno de los orígenes y destinos. También hay un conjunto de procesos o actividades que son indicadas mediante las cantidades de bienes consumidos como insumos o producidos como productos. En nuestro problema de transporte la actividad de transporte tij tiene como insumo una unidad de acero en el origen i y una unidad de producto de acero en el destino j. En general, una actividad a es un vector columna cuyas componentes positivas son productos, y las negativas son insumos. A estos vectores los denotamos mediante letras en negrita. Se supone que la actividad aj puede ser ejecutada a cualquier nivel xj. Las restricciones vienen dadas por otro vector de actividades b, en el segundo monto será apropiada como renta por los terratenientes. La Ley de la Renta deja en claro que los terratenientes no pueden afectar el nivel de la renta, porque simplemente se apropian de la mayor producción que permite su ubicación, en comparación con ubicaciones marginales. La Ley también implica que el terrateniente no puede trasladar el impuesto sobre la renta a los productores, siempre que esos costos no afecten la productividad relativa de su parcela y de las parcelas marginales. Henry George extendió la Ley de la Renta observando que la productividad marginal del trabajo en parcelas intramarginales (el producto marginal intensivo) ecualizaría la productividad extendida del trabajo en tierras marginales: “el proceso no se detendrá hasta que, sea mediante el cultivo de parcelas de inferior calidad o mediante un incremento del valor relativo de los productos manufacturados ... el rendimiento del trabajo y del capital [haya llegado] al mismo nivel. ... Y por lo tanto decir que la renta estará en exceso de la productividad sobre el rendimiento en el margen o punto más bajo de cultivo es lo mismo que decir que constituirá el exceso de producto sobre el monto que el trabajo y el capital obtienen en la ocupación menos remunerativa.” (Progress and Poverty, "Rent and the Law of Rent") XVIII. Programación lineal 523 miembro, que especifica las cantidades que deben ser producidas o consumidas de los distintos bienes. En el problema del transporte se trata de las ofertas y demandas dadas en los orígenes y destinos. Asociado con cada actividad aj hay un costo cj. Dados los m bienes y las n actividades aj el problema de PL es hallar los niveles de actividad que satisfagan las restricciones y conduzcan al mínimo costo total ∑j cj xj. En forma alternativa, podemos ver a c como el beneficio generado por las actividades a, en cuyo caso el problema es maximizar, en lugar de minimizar ∑j cj xj. Les sugiero ejercitarse con el método del simplex en los trabajos prácticos. Hay abundante bibliografía con ejercicios resueltos 10 . 8. El PHPSimplex y otras herramientas PHPSimplex es una herramienta online para resolver problemas de programación lineal. Su uso es libre y gratuito. Se sugiere su utilización para familiarizarse con la resolución de este tipo de problemas si se dispone de una computadora. Esta herramienta está pensada principalmente para estudiantes, ya que no sólo muestra los resultados sino también las operaciones intermedias. Otras de sus ventajas son que no precisa de ningún lenguaje para enunciar el problema, ofrece una interfaz amigable, es cercano al usuario, de manejo fácil e intuitivo, y no es necesario instalar nada para poder usarlo. PHPSimplex es capaz de resolver problemas mediante el Método Simplex, el Método de las Dos Fases, y el Método Gráfico, y no cuenta con limitaciones en el número de variables de decisión ni en las restricciones de los problemas. Está disponible también la ayuda de PHPSimplex para aprender a usar rápidamente la herramienta. Hoy están disponibles en la web diversos programas para la solución de modelos de LP, incluyendo programas con variables enteras y de grandes dimensiones. 10 James M. Henderson and Richard E. Quandt, Microeconomic Theory – A Mathematical Approach, © 1958, 1971 by McGraw-Hill, Inc., ch. 9; Daniel C. Vandermeulen, Linear Economic Theory (El análisis lineal en la teoría económica, Prentice-Hall, 1971).