Está en la página 1de 6

Herramienta grfica para el aprendizaje del algoritmo simplex

Victoria Fernndez, Izaskun Urdangarin, Ana Zelaia


Dpto. de Ciencia de la Computacin e IA
Facultad de Informtica
Universidad del Pas Vasco
victoria.fernandez@ehu.es, izaskunu@hotmail.com, ana.zelaia@ehu.es

Resumen correspondencia biunvoca entre el conjunto de


puntos extremos y el de soluciones factibles
Gran parte de los contenidos de Investigacin bsicas del sistema de restricciones en forma
Operativa, dentro de las titulaciones de estndar. Precisamente, podremos observar que el
Informtica, consiste en el estudio de algoritmos algoritmo simplex va de una solucin factible
de programacin lineal. El trabajo que bsica (punto extremo) a otra (punto extremo
presentamos muestra una herramienta grfica adyacente) que da a la funcin a optimizar un
construida para el aprendizaje del algoritmo valor mejor hasta conseguir el ptimo, sin
simplex. Dicha aplicacin puede ser utilizada necesidad de recorrer todas las soluciones bsicas
tanto por el profesorado en el aula como por el factibles [1] [2] [4].
alumnado de forma autnoma, ya que dispone de En nuestra experiencia como docentes hemos
una interfaz grfica de manejo sencillo. ido observando la dificultad que el alumnado tiene
para comprender estos resultados tericos,
1. Motivacin convirtindose en muchos casos el proceso de
resolucin en una sucesin de clculos
En las titulaciones de Ingeniera Tcnica en
incomprensibles. Una manera de hacer
Informtica de Sistemas e Ingeniera Informtica
comprensible el proceso consiste en realizar la
de nuestro centro se imparte como asignatura
solucin grfica de modelos lineales. Cuando el
obligatoria en el segundo curso la Investigacin
modelo consta de solo dos variables, cada una de
Operativa. La mayora de los tpicos estudiados
las restricciones del modelo puede ser
en esta asignatura son de programacin lineal.
representada como un semiespacio en el plano y la
La programacin lineal es una tcnica exacta
funcin a optimizar como una recta dibujada en
de resolucin de problemas lineales de
funcin del valor de z. Resolver un problema
optimizacin con restricciones. Un modelo de este
lineal de dos variables grficamente significa
tipo surge en distintos contextos prcticos en la
desplazar la funcin a optimizar sobre los puntos
formulacin de un sistema real. Aunque modelos
que pertenecen simultneamente a todos los
de este tipo fueron estudiados anteriormente, se
semiespacios, hasta alcanzar el valor ptimo para
atribuye el desarrollo de la programacin lineal a
z.
George B. Dantzig, que en 1949 public el
Es evidente que la resolucin grfica de
mtodo simplex, primer mtodo construido para
problemas lineales no es un mtodo prctico,
resolver problemas de estas caractersticas.
debido al elevado nmero de variables de los
La programacin lineal se basa en dos
problemas lineales que surgen en la prctica. Sin
resultados importantes. El primero de ellos es que
embargo, su utilizacin resulta de gran ayuda a la
el conjunto de soluciones factibles es un conjunto
hora de interpretar la resolucin algebraica. Todos
convexo con un nmero finito de puntos
los textos de programacin lineal que conocemos
extremos, y que la solucin ptima se encuentra
dedican una parte a la solucin grfica de modelos
en uno de los puntos extremos. Por tanto, es
lineales que sirve para familiarizar al alumnado
suficiente calcular dichos puntos para poder dar
con los distintos tipos de soluciones: nica,
una solucin al problema. Sin embargo, para
mltiples, no acotada, infactibilidad. Pero en
problemas grandes, sera muy costoso considerar
ninguno de ellos hemos visto que se resuelva al
todos los puntos extremos, y de ah la importancia
mismo tiempo grficamente y algebraicamente un
del mtodo simplex que reduce significativamente
modelo lineal para poder observar la
el nmero de puntos a chequear. El segundo
correspondencia biunvoca que existe entre el
resultado es el que establece que existe una
2 Recursos Docentes

conjunto de puntos extremos y el conjunto de Queremos destacar que la integracin de los


soluciones factibles bsicas. En las clases conceptos tericos en la aplicacin resulta muy
magistrales solemos resolver un ejercicio atractiva para el alumnado, dado que en todo
simultneamente desde ambos puntos de vista, momento puede realizar consultas tanto para
pero se ha visto que el tiempo que se le puede observar el algoritmo simplex, como para
dedicar en el aula a este tipo de ejercicios es comprender los clculos realizados sobre la tabla.
insuficiente. Adems, trabajar con grficas en la Esto le proporciona una gran autonoma en el
pizarra resulta poco atractivo para el alumnado. aprendizaje de la programacin lineal.
Por ello, con el objetivo de paliar las
deficiencias observadas, se pens que sera de Pero, sin duda, la aportacin ms importante
gran ayuda utilizar algn software de apoyo de la aplicacin que presentamos es poder
adecuado. En realidad, hay abundante software observar grficamente el recorrido del algoritmo
disponible para resolver modelos lineales (ver por simplex en la bsqueda de la solucin ptima para
ejemplo [3] y [5]), pero no hemos encontrado un modelo lineal con dos variables. Esto permite
ninguno que muestre grficamente el comprobar que a cada solucin factible bsica de
procedimiento algortmico, como hacemos en esta la tabla le corresponde un punto extremo en la
aplicacin. regin de factibilidad. Observmoslo a travs de
Adems de las motivaciones expresadas, un ejemplo (ver Figura 2).
valoramos importante el haber desarrollado la
herramienta en los dos idiomas en los que la
asignatura se imparte en nuestro centro: euskara y
castellano.

2. La aplicacin
La aplicacin informtica que presentamos ha
sido diseada especficamente para trabajar con el
algoritmo simplex y dispone de una interfaz de
usuario/a sencilla y cmoda de manejar. La
pantalla principal (Figura 1) nos muestra las dos
partes principales de las que consta la aplicacin:
repaso de conceptos tericos y solucin de
modelos lineales.

Figura 2. Ejemplo de modelo lineal

Como el modelo introducido tiene slo dos


variables, la aplicacin muestra automticamente
la tabla del simplex y la grfica que le
corresponde. As, en la Figura 3 se puede observar
la tabla inicial, y la representacin grfica que
corresponde a dicha tabla. Las rectas delimitan
semiespacios y la zona sombreada corresponde al
conjunto de soluciones del problema. La recta que
aparece marcada en negro representa la funcin a
optimizar. Se puede observar que en esta
representacin grfica dicha recta pasa por el
Figura 1. Pantalla principal punto extremo x1=0, x2=0, que es el punto
extremo que corresponde a la solucin factible
bsica de la tabla. Concretamente, en esa solucin
XII Jornadas de Enseanza Universitaria de la Informtica 3

las variables x1 y x2 toman el valor cero por no el/la usuario/a introduce un modelo de ms
ser bsicas. El valor de la funcin en este punto es variables, se pueden ver las tablas de cada
z=0. iteracin, repasar los clculos realizados, etc. pero
Progresivamente, en las Figuras 4, 5 y 6 la sin solucin grfica.
funcin objetivo aparece desplazada en el sentido La aplicacin presentada ha sido desarrollada
de la optimizacin, pasando por los valores z=30, en el entorno JDeveloper 9.0.3 [6] para los
z=140 y z*=210, respectivamente. Las flechas de sistemas operativos Windows 2000, Windows XP
las figuras muestran el recorrido de puntos y Linux. Se ha creado el archivo simplex.jar que
extremos. Las soluciones factibles bsicas se puede ejecutar disponiendo de un interprete de
correspondientes a cada uno de ellos se pueden Java. De la pgina web de la asignatura se puede
encontrar en las respectivas tablas. En la Figura 6 descargar el fichero simplex.jar y se encuentran
se observa el punto extremo ptimo y en la tabla instrucciones ms detalladas para su ejecucin
la solucin factible bsica ptima x1*=10, x2*=6. (http://www.sc.ehu.es/ccwikera/principal.html).
De esta manera, la interpretacin del proceso
algebraico de resolucin resulta ms intuitiva y de
gran ayuda para lograr una completa comprensin
del algoritmo simplex.
Hay que decir que la aplicacin no se limita a
resolver modelos de dos variables. As, cuando

Figura 3. Tabla inicial del simplex y su correspondiente representacin grfica


4 Recursos Docentes

Figura 4. Primera iteracin del simplex y su correspondiente representacin grfica

Figura 5. Segunda iteracin del simplex y su correspondiente representacin grfica


XII Jornadas de Enseanza Universitaria de la Informtica 5

Figura 6. Tabla ptima del simplex y su correspondiente representacin grfica

Teniendo en cuenta la buena acogida por


3. Conclusiones y futuras lneas de parte del alumnado, en nuevos proyectos fin de
trabajo carrera estamos planteando el desarrollo de
aplicaciones grficas para el simplex dual,
La aplicacin ha sido desarrollada por la alumna algoritmos de ramificacin y acotacin y para las
Izaskun Urdangarin como proyecto fin de carrera tcnicas de anlisis de sensibilidad. El objetivo
en Ingeniera Tcnica en Informtica de Sistemas. final es conseguir un software para programacin
Se ha utilizado por primera vez en el laboratorio lineal que permita al alumnado abordar de forma
durante el curso 05-06 y ha tenido una buena bastante autnoma el aprendizaje de estas
acogida por parte del alumnado. Aunque no tcnicas, evitando el excesivo clculo y pudiendo
disponemos todava de datos objetivos como dedicar las clases magistrales al desarrollo y
podran ser las calificaciones de las comprensin de los aspectos tericos.
correspondientes preguntas de examen, hemos
podido observar, tanto en las clases magistrales Referencias
como en las tutoras y laboratorios, que un
importante porcentaje del alumnado ha llegado a [1] Bazaraa, M.S., Jarvis, J.J. and Sherali, H.D.,
comprender con ms facilidad los conceptos Linear Programming and Network Flows.
estudiados en las clases tericas. John Wiley & Sons, Inc., 1990.
Esta primera experiencia nos ha permitido [2] Calvert, J.E. and Voxman, W.L., Linear
tanto a nosotras como al alumnado detectar programming. Harcourt Brace Jovanovich
posibles mejoras a la aplicacin. Entre ellas, Inc., 1989.
permitir a el/la usuario/a la eleccin manual de [3] Chang, Y. QSB+ Quantitative Systems for
pivote, as como el clculo de los puntos extremos Business Plus. Prentice Hall, 1994.
de la solucin grfica, la construccin de la forma [4] Ros Insua, S.. Investigacin Operativa.
estndar del modelo, etc. En concreto en la Optimizacin. Centro de Estudios Ramn
seleccin manual del pivote, una eleccin erronea Areces, 1988.
permitir observar a el/la usuario/a que o bien [5] Scharage, L. Lindo. An Optimization
retrocede a un punto extremo anterior (empeora) o Modeling System. The Scientific Press, 1991.
bien la solucin bsica correspondiente sera [6] Tutoriales de Java:
infactible (fuera de la regin). http://www.cica.es/formacion/JavaTut,
http://java.sun.com/docs/books/tutorial

También podría gustarte