UNA EVALUACIÓN DE SOFTWARE COMERCIAL PARA LA

Anuncio
UNA EVALUACIÓN DE SOFTWARE COMERCIAL PARA LA OPTIMIZACIÓN DE
MODELOS LINEALES EN ECONOMÍA
María José Canós Darós
Manuel Ventura Marco
Departament d’Economia Financera i Matemàtica
Universitat de València
Abstract.- El objetivo de este trabajo consiste en analizar las características fundamentales
de algunos de los paquetes de software comercial que resuelven problemas de programación
lineal en el ámbito de la economía. Se han elegido aquéllos más frecuentes en la práctica docente
y que resultan fácilmente accesibles para los estudiantes. Se estudia, entre otros, aspectos
relacionados con la familiaridad del estudiante con el entorno de trabajo, tipo usual de hardware
disponible, documentación y bibliografía disponible, y la aproximación algorítmica utilizada,
usando como tests problemas de modelos económicos relevantes.
1. Introducción
La proliferación durante los últimos años de software de optimización con posibilidades
didácticas aconseja un estudio comparativo entre los diferentes paquetes comerciales. Hasta hace
relativamente poco tiempo el recurso usual para resolver modelos de optimización consistía en
programas propios de usuario en algún lenguaje conocido de programación o en la utilización de
alguna subrutina de librería científica. Sin embargo, ya desde mediados de la década de los 80
existen estudios que prueban que el software comercial es una alternativa válida que cuenta con
la ventaja de su facilidad de manejo para una amplia gama de usuarios [Harrison (1985)]. El
análisis de estos programas puede realizarse desde una doble vertiente, bien desde su uso en el
ámbito profesional o investigador [Fourer (1997)] o bien aplicados a la docencia. Este trabajo se
centra en el segundo punto de vista, dada la importancia adquirida por los ordenadores en la
enseñanza de la programación matemática y materias afines.
La importancia de los modelos lineales en economía está fuera de toda duda. Son
ampliamente utilizados, bien directamente o bien como una primera aproximación al problema,
debido a su facilidad para ser entendidos y tratados. La literatura sobre este tipo de modelos en
optimización es extensa desde que se publicaron los primeros trabajos a principios de la década
de los 50 [Koopmans (1951), Dorfman (1951), Dorfman et al (1957), Kantorovitch (1960)]. Hoy
en día, la misma continúa siendo significativa [Bazaraa et al (1990), Paris (1991), Zenios (1992),
1
Williams (1994), Dantzing y Thapa (1996)]. Por eso, los modelos lineales de optimización son
una herramienta básica en la formación de un economista y son necesarios cursos elementales
sobre esta materia en los estudios de economía y gestión empresarial. En dichos cursos, el
estudiante se enfrenta por primera vez a dichos modelos, por lo que su estructura debe ser simple
y comprensible para un principiante. Además, deben estar enunciados en un contexto económico
porque los estudiantes deben aprender a modelizar, a discutir la solución y analizar la
sensibilidad de la misma.
Por todo ello creemos que un curso elemental de programación lineal debe organizarse en una
primera fase siguiendo la técnica “smart small” de Kendrick (1996) –comenzar con modelos
pequeños- y en una segunda fase con la técnica del método del caso, introduciendo casos reales
como Shapiro (1984). De acuerdo con esta filosofía, hemos elegido unos problemas test que
representarían un curso de estas características. Estos problemas han sido utilizados para evaluar
varios paquetes de software comercial para PC’s.
2. De los programas de usuario al software comercial
Las últimas dos décadas han sido testigo de la salida al mercado de muchos paquetes de
software comercial para PC’s que resuelven problemas de programación lineal. Estos paquetes
son fáciles de aprender a utilizar y contienen implementaciones algorítmicas aceptables. En
contraposición, los programas de usuario requieren el conocimiento de algún lenguaje de
programación como C, FORTRAN o PASCAL, siendo ésta la única alternativa que existía
anteriormente. Hemos elegido algunos paquetes de software comercial para PC’s por las
siguientes razones:
(i) En la descripción previa de los cursos se ha resaltado que los estudiantes deben comenzar
su formación con problemas de tamaño pequeño porque esto no significa ninguna limitación a
la problemática de los modelos lineales que vaya más allá de la propia complejidad del
modelo. La misma razón justifica que los posteriores casos reales tengan un tamaño
moderado. Bajo estas condiciones, este tipo de problemas pueden resolverse con un ordenador
personal sin diferencias significativas en precisión y velocidad de ejecución con respecto a
mainframes y workstations [Harrison (1985)].
(ii) Los ordenadores en los laboratorios informáticos donde se imparten las clases prácticas
de programación lineal serán a corto plazo Pentium 200 MHz PCI MMX con 32M RAM y
un G de disco duro. Por tanto, hemos utilizado un ordenador de estas características como
soporte de los programas y para realizar las pruebas.
2
(iii) Hemos constatado mediante estudios previos que los estudiantes no tienen conocimientos
de lenguajes de programación
[Canós y Ventura (1997)]. De hecho, su conocimiento
informático es escaso y se reduce a ser usuarios de programas estándar en entorno Windows,
tales como Word y Excel. Debido a que nuestro objetivo es enseñar programación lineal con
soporte informático, el único modo de homogeneizar los conocimientos de los estudiantes es
usar paquetes de software comercial.
En base a nuestra experiencia académica y la información recogida a través de reuniones
científicas y publicaciones técnicas, hemos elegido los siguientes paquetes:
GAMS 2.25, versión estudiante. Es un lenguaje de modelización algebraica con enlaces con
varios solvers de programación lineal, pero que también puede utilizarse en versión
simplificada. Trabaja en entorno DOS. [Thompson y Thore (1992), Mocholí y Sala (1996),
Brooke el al. (1997)].
LINGO 4.0, versión demo. Lenguaje de modelización en entorno Windows con solvers
internos, que admite una versión simplificada. [Schrage (1998)].
LINDO 6.0, versión demo. Es un software específico para programación lineal, cuadrática y
por objetivos en entorno Windows. [Schrage (1997)].
QSB+ 3.0 . Es un sistema soporte de decisión multimodular interactivo que funciona
mediante menús desplegables, ventanas, casillas de verificación y botones de opciones en
entorno DOS con ratón o mediante teclas de acceso1. [Chang (1994)].
MATHEMATICA 3.0. Es un software matemático de propósito general una de cuyas
características avanzadas es que puede utilizarse como lenguaje de programación de alto
nivel. Funciona en entorno Windows mediante menús desplegables y/o comandos. [Wolfram
(1996)]
Excel 97/Solver. Se trata de una utilidad de la hoja de cálculo Excel97. [Clauss (1995),
Hesse (1996)].
En el caso de GAMS, LINDO y LINGO se trata de paquetes que pueden recuperarse a través de
la red e instalarse en un ordenador personal sin ningún coste. MATHEMATICA suele ser
gratuito para el usuario en el caso de personas vinculadas a la Universidad. En los restantes
casos, el usuario debe asumir algún gasto, aunque no excesivo, para obtener la correspondiente
licencia.
3
3. Ítems de evaluación
La revisión de la literatura existente sobre la evaluación de software comercial de programación
matemática [Harrison (1985), Golden y Wasil (1986), Jones (1992), Fourer (1997)] nos ha
llevado a considerar los siguientes ítems:
Estadísticos .- tamaño máximo del problema y aspectos relacionados con el procedimiento de
solución.
Posibilidades del programa .- entrada de datos y edición, salida de resultados, facilidad de uso
y elementos notables referidos a la programación lineal.
Todo el análisis realizado aparece resumido en forma de tablas. En todas ellas, se ha utilizado
el software básico, sin ningún complemento. Muchos de los resultados que aparecen en las
mismas han sido comprobados ejecutando los problemas test. En el caso de aquellos paquetes con
diferentes niveles de modelización, como GAMS o LINGO, el mismo problema ha sido testado
varias veces.
GAMS
LINGO
LINDO
QSB
MATHEM
EXCEL
200 var
Tamaño
300 rest
50 rest
50 rest
Depende del
Depende del
máximo
300 var
100 var
100 var
hardware
hardware
único
único
único
único
Solver
varios
único
Tabla 1: Estadísticas
Evidentemente, el tamaño máximo del problema a tratar está siempre en función de los
recursos del hardware, tales como la memoria disponible. No obstante, algunos paquetes tienen
otro tipo de limitaciones como puede ser el número de variables y/o de ecuaciones o la densidad
de la matriz.
En la siguiente tabla, el formato hace referencia a la forma de introducir los datos. Puede ser
notación algebraica avanzada, cuando se utilizan símbolos, índices y funciones matemáticas;
notación de ecuaciones o algebraica simple cuando se utiliza notación matemática estándar
simple; notación matricial cuando se pueden introducir los datos en forma de matriz o vector,
entendiendo que el usuario no necesita introducir el modelo; por último, el formato de hoja de
cálculo con las características especiales de este contexto. Los datos también pueden ser
introducidos a partir de un fichero ya existente, que puede provenir de otro paquete. En el caso de
1
Existe la versión QSB+ 4.0 para Windows, pero en el momento de realizar este trabajo no estaba a
4
que la recuperación no sea directa, aparece explícitamente indicado en la tabla. Por ejemplo, el
GAMS puede recuperar ficheros provenientes de una hoja de cálculo siempre que hayan sido
archivados en el formato adecuado. Algunos de estos paquetes tienen una interconexión total con
otros programas comerciales. Por ejemplo, entre LINGO y Excel97/Solver.
Formato
GAMS
LINGO
LINDO
QSB
MATHEM
EXCEL
Ecuaciones
Ecuaciones
Ecuaciones
Ecuaciones
Ecuaciones
Hoja de
Algebraico
Algebraico
Matricial
Matricial
cálculo
Sí
Sí
No
No
No
Sí
Orientado
Menús
Menús
Comandos
Menús
por ficheros
Windows
Windows
Menús
Windows
Separación
datos-modelo
Interface
Menús DOS
Windows
Editor
Externo
Interno
Interno
Externo
Externo
Interno
Interno
Interno
Externo
Conexión
Parcialmente
Hojas de
Hojas de
Ficheros
con otros
Ficheros
cálculo
cálculo
MPS
programas
texto con
Bases de
Bases de
hojas de
datos
datos
cálculo
Ficheros
Ficheros
MPS
MPS
Parcialmente
Base de
datos
Ficheros
texto
Tabla 2: entrada de datos
Aunque no aparece recogido explícitamente en la tabla 3, podemos resaltar que el único de
los paquetes que puede resolver un problema por el método gráfico es QSB. Pensamos que el
método gráfico tiene una importancia meramente ilustrativa, pero permite que los estudiantes
comprendan mucho mejor aspectos de la programación lineal, como el tipo de solución del
problema. Por otra parte, y con referencia a la última fila de la tabla, LINGO ofrece la opción de
grabar el output en ficheros de formato LINDO.
nuestra disposición.
5
Informe de
GAMS
LINGO
LINDO
QSB
MATHEMA
EXCEL
Externo
Interno
Interno
Interno
Interno
Interno
Externo
Externo
Externo
No
Sí
Sí
No
Sí
resultados
Mostrar
Depende del
iteraciones
solver
Conexión
Hoja de
Hoja de
Fichero
Fichero
Como
Con
con otros
cálculo
cálculo
MPS
MPS
lenguaje de
determinados
programación
programas
programas
Bases de
datos
Fichero
MPS
Tabla 3: salida de datos
GAMS
LINGO
LINDO
QSB
MATHEMA
EXCEL
Ayuda
No
Sí
Sí
No
Sí
Sí
Entorno
No Windows
Windows
Windows
No Windows
Windows
Windows
Documento
Sí
Sí
Sí
No
No
Sí
L. modelos
Sí
Sí
Sí
No
No
Sí
L. funciones
Sí
Sí
No
No
Sí
Sí
Referencias
Extensa
Extensa
Extensa
Reducida
Moderada
Extensa
Tabla 4: facilidad de uso
El término documentación hace referencia a la facilidad de comprensión del fichero de entrada y/o
salida de datos por una persona no experta. Dichos ficheros constituyen en sí mismos un
documento en el que, además de la formulación y resultados matemáticos, es posible introducir
una descripción del problema. Por ejemplo, GAMS permite introducir comentarios cortos
utilizando un asterisco o comentarios más extensos mediante la utilización de la instrucción
apropiada. Para LINDO y LINGO existen procedimientos similares, mientras que Excel utiliza
para dicho quehacer los recursos habituales de las hojas de cálculo, tales como cuadros de texto,
comentarios, etc. Hemos distinguido entre librerías de modelos preexistentes y librerías de
6
funciones. Con respecto a estas últimas, en el caso de MATHEMATICA y Excel, se entiende las
propias del programa. Por referencias se entiende la existencia de una guía de usuario y
publicaciones adicionales.
GAMS
LINGO
LINDO
QSB
MATHEMA
EXCEL
No
No
No
Sí
No
No
Variables
Principales
Todas
Todas
Todas
Principales
Todas
Función objetivo
Siempre
Siempre
Siempre
Siempre
A veces
Siempre
Costes reducidos
Sí
Sí
Sí
Sí
No
Sí
Precios sombra
Sí
Sí
Sí
Sí
No
Sí
Intervalos de
No
No
Sí
Sí
No
Sí
No
No
Sí
No
No
No
Estructuras
particulares
sensibilidad
Parametrización
Tabla 5: Elementos notables referidos a la programación lineal
Esta tabla recoge todos aquellos aspectos de los programas que inciden directamente en el buen
aprendizaje de la programación lineal. En la primera fila aparece la capacidad de los paquetes
básicos para resolver problemas lineales con una cierta estructura particular mediante algoritmos
específicos como en el caso de problemas de transporte, flujo en redes, etc. Como en los cursos
de programación matemática siempre existe al menos un apartado que se ocupa de estos
problemas, nos parece conveniente remarcar en las clases prácticas la posibilidad de una
resolución específica alternativa, con todas las ventajas que ello comporta. Las cuatro siguientes
filas reflejan la información mínima que, según nuestro criterio, debe aparecer en un informe de
resultados para un adecuado análisis de la solución. Como fila variables entendemos las variables
principales y las de holgura. Sólo hemos considerado la información directa que da el programa,
sin instrucciones adicionales. Además, también consideramos importante un estudio sobre la
sensibilidad de la solución, lo que aparece reflejado en la penúltima fila. Aunque de menor
relevancia también hemos recogido la posibilidad de realizar análisis paramétrico, cuestión que
queda reducida a LINDO.
7
4. Una extensión natural en la enseñanza: la programación lineal entera
Una vez aprendida la programación lineal, parece una continuación lógica, que no requiere
excesivo esfuerzo el salto a la programación lineal entera [Dantzig (1957, 1960), Gomory y
Baumol (1960)], entendida dicha extensión como una introducción a la optimización discreta.
[Nemhauser y Wolsey (1988), Parker y Rardin (1988)]. Por ello, es una ventaja que los paquetes
estudiados tengan una opción que permita tratar este tipo de programación. De hecho, todos ellos
la tienen, excepto MATHEMATICA. Esta posibilidad se limita a alguna implementación
algorítmica del tipo de ramificación y acotación. Todos ellos poseen la disponibilidad de
conceptos básicos como variables binarias, problemas mixtos, etc. Algunos de los paquetes
poseen utilidades adicionales como la fijación por el propio usuario de parámetros de tolerancia o
reglas de elección de ramas; por ejemplo, LINDO, QSB o GAMS. Además, QSB permite ver
cada una de las etapas del procedimiento de ramificación y acotación. Los problemas utilizados
como test siguen la misma filosofía que la explicada en programación lineal.
5. Conclusiones
Si partimos de la premisa de que los cursos están dirigidos a estudiantes sin conocimientos de
lenguajes de programación y que sólo verán modelos lineales y lineales enteros, el paquete que
ofrece más prestaciones combinado con mayor facilidad de aprendizaje es LINDO. De entre los
cinco restantes, QSB y Excel97/Solver para los usuarios habituales de hojas de cálculo poseen un
interface más agradable, lo que supone un esfuerzo preparacional mínimo, pero, a cambio,
ofrecen menos posibilidades. Por otra parte, para los principiantes es más adecuado trabajar en el
contexto del problema exacto y no con una formulación algebraica abstracta, perdiéndose con
ello la ventaja que ofrecen GAMS y LINGO como lenguajes de modelización. Sin embargo, para
problemas de mayor tamaño y con estructuras particulares, la separación datos-modelo es un
avance incuestionable. En todas las facetas que hemos analizado, MATHEMATICA está en
desventaja respecto al resto de los paquetes, aunque no se han tenido en cuenta las posibilidades
del mismo como lenguaje de programación de alto nivel, como hace Carter (1996a, 1996b).
Aunque hemos hecho algunas breves menciones, tampoco hemos analizado profundamente lo
que, a corto plazo, será una posibilidad: el uso combinado de paquetes[Lawrence y Pasternak
(1998)] y la interconexión de los mismos, prácticamente, a todos los niveles mediante interfaces
OLE y DLL.
8
Referencias
Bazaraa, M.S.; Jarvis, J.J. y Sherali, H.D. (1990), Linear Programming and Network Flows,
Wiley, Nueva York.
Brooke, A.; Kendrick, D.; Meeraus, A. y Raman, R. (1997) GAMS RELEASE 2.25 Version 92.
Language Guide, GAMS Development Corporation.
Canós, M.J. y Ventura, M. (1997), “Una valoración de los estudiantes sobre el aprendizaje de la
investigación operativa en los estudios de economía y administración de empresas”, actas de las
V Jornadas de la Asociación Española de Profesores Universitarios de Matemáticas en la
Economía y la Empresa, Málaga, 10 y 11 de octubre de 1997.
Carter, M. (1996a), “Linear Programming with MATHEMATICA. The Simplex Algorithm”,
recogido en Varian, H.R. , Computational Economics and Finances. Modeling and Analysis
with MATHEMATICA, TELOS, Springer-Verlag, capítulo 1, páginas 3-30
Carter, M. (1996b), “Linear Programming with MATHEMATICA. Sensitivity Analysis”,
recogido en Varian, H.R. , Computational Economics and Finances. Modeling and Analysis
with MATHEMATICA, TELOS, Springer-Verlag, capítulo 2, páginas 31-64.
Chang, Y.-L. (1994), QSB+[Quantitative Systems for Business Plus]: version 3.0, PrenticeHall, Englewood Cliffs.
Clauss, F.J. (1995), Applied Management Science and Spreadsheet Modeling, International
Thompson Publishers.
Dorfman, R. (1951), Application of Linear Programming to the Theory of the Firm, University
of California Press, Berkeley.
Dorfman, R.; Samuelson, P.A. y Solow, R. (1958), Linear Programming and Economic
Analysis, McGraw-Hill, New York.
Dantzig, G.B. (1957), “Discrete variable extremum problems”, Operations Research, 5, 266-277.
Dantzig, G.B. (1960), “On the significance of solving linear programming problems with some
integer variables”, Econometrica, 28, 30-44.
Dantzig, G.B. y Thapa, M.N. (1996), Linear Programming. Introduction, Springer Series in
Operations Research, Springer.
Fourer, R. (1997), “Software survey: linear programming”, ORMS Today, 24 (2), 54-63.
Golden, B.L. y Wasil, E.A. (1986), “Nonlinear Programming in a microcomputer”, Computer &
Operations Research, 13(2/3), 149-166.
Gomory, R.E. y Baumol, W.J. (1960), “Integer programming and pricing”, Econometrica, 28,
521-550.
9
Harrison, T. P. (1985), “Micro versus Mainframe Perfomance for a Selected class of
mathematical programming problems”, Interfaces, 15(4), 14-19.
Hesse, R. (1996), Managerial Spreadsheet Modeling and Analysis, Irwin.
Jones, C.V. (1992), “User Interfaces”, en Coffman, E.G. et al [Eds.], Handbooks in OR&MS,
Vol. 3, , Elsevier Science Publishers, cap. 12, páginas 603-668.
Kantorovich, L.V. (1960), “Mathematical methods in the organization and planning of
production”, Management Science, 6(4), 366-422. (Original ruso: 1939).
Kendrick, D. (1996), “Sectorial Economics”, en Amman, H.M. et al [Ed], Handbook of
Computational Economics, volumen 1, Elsevier Science B.V.
Koopmans, T. (1951), “Analysis of production as an efficient combination of activities”,
recogido en: ,Koopmans, T. [Ed.], Activity Analysis of Production and Allocation Wiley, New
York, Cap. 2.
Lawrence, J.A.Jr. y Pasternak, B.A. (1998), Applied Management Science, Wiley.
Mocholí, M. y Sala, R. (1996) Decisiones de Optimización, Tirant lo Blanch, Valencia.
Nemhauser, G.L. y Wolsey, L.A. (1988), Integer and Combinatorial Optimization, Wiley,
Nueva York.
Paris, Q. (1991), An Economic Interpretation of Linear Programming, Iowa State University
Press.
Parker, R.G. y Rardin, R.L. (1988), Discrete Optimization, Academic Press.
Schrage, L. (1997), Optimization Modeling with LINDO,, Duxburry Press, Belmont.
Schrage, L. (1998), Optimization Modeling with LINGO, LINDO Systems, INC, Chicago.
Shapiro, R.D. (1984), Optimization Models for Planning and Allocation: Text and Cases in
Mathematical Programming, Wiley, Nueva York.
Thompson, G.L. y Thore, S. (1992), Computational Economics: Economic Modelling with
Optimization Software, Boyd & Fraser, Damvers.
Williams, H.P. (1994), Model Building in Mathematical Programming, Wiley, Nueva York.
Wolfram, S. (1996), The MATHEMATICA book, Cambridge University Press.
Zenios, S.A. [Ed.] (1992), Financial Optimization, Cambridge University Press.
10
Descargar