12.07.2015 Views

Herramienta gráfica para el aprendizaje del algoritmo simplex

Herramienta gráfica para el aprendizaje del algoritmo simplex

Herramienta gráfica para el aprendizaje del algoritmo simplex

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Herramienta</strong> gráfica <strong>para</strong> <strong>el</strong> <strong>aprendizaje</strong> d<strong>el</strong> <strong>algoritmo</strong> <strong>simplex</strong>Victoria Fernández, Izaskun Urdangarin, Ana Z<strong>el</strong>aiaDpto. de Ciencia de la Computación e IAFacultad de InformáticaUniversidad d<strong>el</strong> País Vascovictoria.fernandez@ehu.es, izaskunu@hotmail.com, ana.z<strong>el</strong>aia@ehu.esResumenGran parte de los contenidos de InvestigaciónOperativa, dentro de las titulaciones deInformática, consiste en <strong>el</strong> estudio de <strong>algoritmo</strong>sde programación lineal. El trabajo quepresentamos muestra una herramienta gráficaconstruida <strong>para</strong> <strong>el</strong> <strong>aprendizaje</strong> d<strong>el</strong> <strong>algoritmo</strong><strong>simplex</strong>. Dicha aplicación puede ser utilizadatanto por <strong>el</strong> profesorado en <strong>el</strong> aula como por <strong>el</strong>alumnado de forma autónoma, ya que dispone deuna interfaz gráfica de manejo sencillo.1. MotivaciónEn las titulaciones de Ingeniería Técnica enInformática de Sistemas e Ingeniería Informáticade nuestro centro se imparte como asignaturaobligatoria en <strong>el</strong> segundo curso la InvestigaciónOperativa. La mayoría de los tópicos estudiadosen esta asignatura son de programación lineal.La programación lineal es una técnica exactade resolución de problemas lineales deoptimización con restricciones. Un mod<strong>el</strong>o de estetipo surge en distintos contextos prácticos en laformulación de un sistema real. Aunque mod<strong>el</strong>osde este tipo fueron estudiados anteriormente, seatribuye <strong>el</strong> desarrollo de la programación lineal aGeorge B. Dantzig, que en 1949 publicó <strong>el</strong>método <strong>simplex</strong>, primer método construido <strong>para</strong>resolver problemas de estas características.La programación lineal se basa en dosresultados importantes. El primero de <strong>el</strong>los es que<strong>el</strong> conjunto de soluciones factibles es un conjuntoconvexo con un número finito de puntosextremos, y que la solución óptima se encuentraen uno de los puntos extremos. Por tanto, essuficiente calcular dichos puntos <strong>para</strong> poder daruna solución al problema. Sin embargo, <strong>para</strong>problemas grandes, sería muy costoso considerartodos los puntos extremos, y de ahí la importanciad<strong>el</strong> método <strong>simplex</strong> que reduce significativamente<strong>el</strong> número de puntos a chequear. El segundoresultado es <strong>el</strong> que establece que existe unacorrespondencia biunívoca entre <strong>el</strong> conjunto depuntos extremos y <strong>el</strong> de soluciones factiblesbásicas d<strong>el</strong> sistema de restricciones en formaestándar. Precisamente, podremos observar que <strong>el</strong><strong>algoritmo</strong> <strong>simplex</strong> va de una solución factiblebásica (punto extremo) a otra (punto extremoadyacente) que da a la función a optimizar unvalor mejor hasta conseguir <strong>el</strong> óptimo, sinnecesidad de recorrer todas las soluciones básicasfactibles [1] [2] [4].En nuestra experiencia como docentes hemosido observando la dificultad que <strong>el</strong> alumnado tiene<strong>para</strong> comprender estos resultados teóricos,convirtiéndose en muchos casos <strong>el</strong> proceso deresolución en una sucesión de cálculosincomprensibles. Una manera de hacercomprensible <strong>el</strong> proceso consiste en realizar lasolución gráfica de mod<strong>el</strong>os lineales. Cuando <strong>el</strong>mod<strong>el</strong>o consta de solo dos variables, cada una d<strong>el</strong>as restricciones d<strong>el</strong> mod<strong>el</strong>o puede serrepresentada como un semiespacio en <strong>el</strong> plano y lafunción a optimizar como una recta dibujada enfunción d<strong>el</strong> valor de z. Resolver un problemalineal de dos variables gráficamente significadesplazar la función a optimizar sobre los puntosque pertenecen simultáneamente a todos lossemiespacios, hasta alcanzar <strong>el</strong> valor óptimo <strong>para</strong>z.Es evidente que la resolución gráfica deproblemas lineales no es un método práctico,debido al <strong>el</strong>evado número de variables de losproblemas lineales que surgen en la práctica. Sinembargo, su utilización resulta de gran ayuda a lahora de interpretar la resolución algebraica. Todoslos textos de programación lineal que conocemosdedican una parte a la solución gráfica de mod<strong>el</strong>oslineales que sirve <strong>para</strong> familiarizar al alumnadocon los distintos tipos de soluciones: única,múltiples, no acotada, infactibilidad. Pero enninguno de <strong>el</strong>los hemos visto que se resu<strong>el</strong>va almismo tiempo gráficamente y algebraicamente un


532 Recursos docentesmod<strong>el</strong>o lineal <strong>para</strong> poder observar lacorrespondencia biunívoca que existe entre <strong>el</strong>conjunto de puntos extremos y <strong>el</strong> conjunto desoluciones factibles básicas. En las clasesmagistrales solemos resolver un ejerciciosimultáneamente desde ambos puntos de vista,pero se ha visto que <strong>el</strong> tiempo que se le puedededicar en <strong>el</strong> aula a este tipo de ejercicios esinsuficiente. Además, trabajar con gráficas en lapizarra resulta poco atractivo <strong>para</strong> <strong>el</strong> alumnado.Por <strong>el</strong>lo, con <strong>el</strong> objetivo de paliar lasdeficiencias observadas, se pensó que sería degran ayuda utilizar algún software de apoyoadecuado. En realidad, hay abundante softwaredisponible <strong>para</strong> resolver mod<strong>el</strong>os lineales (ver porejemplo [3] y [5]), pero no hemos encontradoninguno que muestre gráficamente <strong>el</strong>procedimiento algorítmico, como hacemos en estaaplicación.Además de las motivaciones expresadas,valoramos importante <strong>el</strong> haber desarrollado laherramienta en los dos idiomas en los que laasignatura se imparte en nuestro centro: euskara ycast<strong>el</strong>lano.2. La aplicaciónLa aplicación informática que presentamos hasido diseñada específicamente <strong>para</strong> trabajar con <strong>el</strong><strong>algoritmo</strong> <strong>simplex</strong> y dispone de una interfaz deusuario/a sencilla y cómoda de manejar. Lapantalla principal (Figura 1) nos muestra las dospartes principales de las que consta la aplicación:repaso de conceptos teóricos y solución demod<strong>el</strong>os lineales.Figura 1. Pantalla principalQueremos destacar que la integración de losconceptos teóricos en la aplicación resulta muyatractiva <strong>para</strong> <strong>el</strong> alumnado, dado que en todomomento puede realizar consultas tanto <strong>para</strong>observar <strong>el</strong> <strong>algoritmo</strong> <strong>simplex</strong>, como <strong>para</strong>comprender los cálculos realizados sobre la tabla.Esto le proporciona una gran autonomía en <strong>el</strong><strong>aprendizaje</strong> de la programación lineal.Pero, sin duda, la aportación más importantede la aplicación que presentamos es poderobservar gráficamente <strong>el</strong> recorrido d<strong>el</strong> <strong>algoritmo</strong><strong>simplex</strong> en la búsqueda de la solución óptima <strong>para</strong>un mod<strong>el</strong>o lineal con dos variables. Esto permitecomprobar que a cada solución factible básica d<strong>el</strong>a tabla le corresponde un punto extremo en laregión de factibilidad. Observémoslo a través deun ejemplo (ver Figura 2).Figura 2. Ejemplo de mod<strong>el</strong>o linealComo <strong>el</strong> mod<strong>el</strong>o introducido tiene sólo dosvariables, la aplicación muestra automáticament<strong>el</strong>a tabla d<strong>el</strong> <strong>simplex</strong> y la gráfica que lecorresponde. Así, en la Figura 3 se puede observarla tabla inicial, y la representación gráfica quecorresponde a dicha tabla. Las rectas d<strong>el</strong>imitansemiespacios y la zona sombreada corresponde alconjunto de soluciones d<strong>el</strong> problema. La recta queaparece marcada en negro representa la función aoptimizar. Se puede observar que en estarepresentación gráfica dicha recta pasa por <strong>el</strong>punto extremo x1=0, x2=0, que es <strong>el</strong> puntoextremo que corresponde a la solución factiblebásica de la tabla. Concretamente, en esa soluciónlas variables x1 y x2 toman <strong>el</strong> valor cero por no


XII Jornadas de Enseñanza Universitaria de la Informática 533ser básicas. El valor de la función en este punto esz=0.Progresivamente, en las Figuras 4, 5 y 6 lafunción objetivo aparece desplazada en <strong>el</strong> sentidode la optimización, pasando por los valores z=30,z=140 y z*=210, respectivamente. Las flechas d<strong>el</strong>as figuras muestran <strong>el</strong> recorrido de puntosextremos. Las soluciones factibles básicascorrespondientes a cada uno de <strong>el</strong>los se puedenencontrar en las respectivas tablas. En la Figura 6se observa <strong>el</strong> punto extremo óptimo y en la tablala solución factible básica óptima x1*=10, x2*=6.De esta manera, la interpretación d<strong>el</strong> procesoalgebraico de resolución resulta más intuitiva y degran ayuda <strong>para</strong> lograr una completa comprensiónd<strong>el</strong> <strong>algoritmo</strong> <strong>simplex</strong>.Hay que decir que la aplicación no se limita aresolver mod<strong>el</strong>os de dos variables. Así, cuando<strong>el</strong>/la usuario/a introduce un mod<strong>el</strong>o de másvariables, se pueden ver las tablas de cadaiteración, repasar los cálculos realizados, etc. perosin solución gráfica.La aplicación presentada ha sido desarrolladaen <strong>el</strong> entorno JDev<strong>el</strong>oper 9.0.3 [6] <strong>para</strong> lossistemas operativos Windows 2000, Windows XPy Linux. Se ha creado <strong>el</strong> archivo <strong>simplex</strong>.jar quese puede ejecutar disponiendo de un interprete deJava. De la página web de la asignatura se puededescargar <strong>el</strong> fichero <strong>simplex</strong>.jar y se encuentraninstrucciones más detalladas <strong>para</strong> su ejecución(http://www.sc.ehu.es/ccwikera/principal.html).Figura 3. Tabla inicial d<strong>el</strong> <strong>simplex</strong> y su correspondiente representación gráficaFigura 4. Primera iteración d<strong>el</strong> <strong>simplex</strong> y su correspondiente representación gráfica


534 Recursos docentesFigura 5. Segunda iteración d<strong>el</strong> <strong>simplex</strong> y su correspondiente representación gráficaFigura 6. Tabla óptima d<strong>el</strong> <strong>simplex</strong> y su correspondiente representación gráfica3. Conclusiones y futuras líneas detrabajoLa aplicación ha sido desarrollada por la alumnaIzaskun Urdangarin como proyecto fin de carreraen Ingeniería Técnica en Informática de Sistemas.Se ha utilizado por primera vez en <strong>el</strong> laboratoriodurante <strong>el</strong> curso 05-06 y ha tenido una buenaacogida por parte d<strong>el</strong> alumnado. Aunque nodisponemos todavía de datos objetivos comopodrían ser las calificaciones de lascorrespondientes preguntas de examen, hemospodido observar, tanto en las clases magistralescomo en las tutorías y laboratorios, que unimportante porcentaje d<strong>el</strong> alumnado ha llegado acomprender con más facilidad los conceptosestudiados en las clases teóricas.Esta primera experiencia nos ha permitidotanto a nosotras como al alumnado detectarposibles mejoras a la aplicación. Entre <strong>el</strong>las,permitir a <strong>el</strong>/la usuario/a la <strong>el</strong>ección manual depivote, así como <strong>el</strong> cálculo de los puntos extremosde la solución gráfica, la construcción de la formaestándar d<strong>el</strong> mod<strong>el</strong>o, etc. En concreto en las<strong>el</strong>ección manual d<strong>el</strong> pivote, una <strong>el</strong>ección erroneapermitirá observar a <strong>el</strong>/la usuario/a que o bienretrocede a un punto extremo anterior (empeora) obien la solución básica correspondiente seríainfactible (fuera de la región).


XII Jornadas de Enseñanza Universitaria de la Informática 535Teniendo en cuenta la buena acogida por parted<strong>el</strong> alumnado, en nuevos proyectos fin de carreraestamos planteando <strong>el</strong> desarrollo de aplicacionesgráficas <strong>para</strong> <strong>el</strong> <strong>simplex</strong> dual, <strong>algoritmo</strong>s deramificación y acotación y <strong>para</strong> las técnicas deanálisis de sensibilidad. El objetivo final esconseguir un software <strong>para</strong> programación linealque permita al alumnado abordar de formabastante autónoma <strong>el</strong> <strong>aprendizaje</strong> de estastécnicas, evitando <strong>el</strong> excesivo cálculo y pudiendodedicar las clases magistrales al desarrollo ycomprensión de los aspectos teóricos.Referencias[1] Bazaraa, M.S., Jarvis, J.J. and Sherali, H.D.,Linear Programming and Network Flows.John Wiley & Sons, Inc., 1990.[2] Calvert, J.E. and Voxman, W.L., Linearprogramming. Harcourt Brace JovanovichInc., 1989.[3] Chang, Y. QSB+ Quantitative Systems forBusiness Plus. Prentice Hall, 1994.[4] Ríos Insua, S.. Investigación Operativa.Optimización. Centro de Estudios RamónAreces, 1988.[5] Scharage, L. Lindo. An OptimizationMod<strong>el</strong>ing System. The Scientific Press, 1991.[6] Tutoriales de Java:http://www.cica.es/formacion/JavaTut,http://java.sun.com/docs/books/tutorial

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!