Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ndice
1. Introduccin
2. Qu es GLPK
3. Qu es GNU MathProg
lineal
10
. . . . . . . . . . . . . . . . . . . 10
. . . . . . . . . . . . . . . . . . . 11
. . . . . . . . . . . . . . . . . . . 11
7. Discusin de resultados
12
8. Conclusiones
18
20
22
24
1.
Introduccin
Aunque la realidad es compleja y la mayora de los problemas computables que se presentan no se pueden expresar como relaciones lineales (frecuentemente ni siquiera se
conocen sus relaciones), dentro de las matemticas aplicadas hay una vasta disciplina
que se llama Investigacin de Operaciones, y dentro de esta se encuentra un gnero
particular de problemas que recibe el nombre de programacin lineal.
La programacin lineal se encarga de encontrar soluciones a problemas complejos cuyas
relaciones entre sus elementos se pueden expresar como relaciones lineales. Esta tcnica
tiene buenas posibilidades de aplicacin a problemas de asignacin de recursos, gestin
logstica, bsqueda del mnimo costo o de la mxima utilidad. . . sujetos a una serie de
restricciones.
Este documento tiene como objetivo presentar una propuesta para resolver un problema de asignacin de carga acadmica a un colegio dedicado a la educacin secundaria mediante un modelo de programacin entera mixta usando el sistema operativo
GNU/Linux, el programa GLPK y el lenguaje de modelamiento GNU MathProg. Se busca ofrecer una metodologa relativamente simple e intuitiva para resolver problemas de
programacin entera mixta (MIP por sus siglas en ingls) para la asignacin de recursos.
2.
Qu es GLPK
3.
Qu es GNU MathProg
4.
El paquete GLPK incluye el programa glpsol, que acta como solver de problemas
LP/MIP. Este programa se puede lanzar desde la lnea de comandos para resolver modelos escritos en el lenguaje GNU MathProg [Markhorin, 2010b, Op. Cit.].
5.
Fuente: Elaboracin propia
Fuente: Elaboracin propia
Fuente: Elaboracin propia
Fuente: Elaboracin propia
Fuente: Elaboracin propia
Fuente: Elaboracin propia
Fuente: Elaboracin propia
Adems de las caractersticas presentadas hasta ahora, estas son algunas condiciones
adicionales para la asignacin de carga acadmica en el colegio:
Un profesor puede dictar mximo 6 horas de clase (3 bloques) en un da
Se dictan mximo dos horas de cada asignatura a un curso en un da
Se desea que los estudiantes reciban las clases de matemticas y fsica preferiblemente por la maana (esto se debe a que en las horas de la maana las mentes
despejadas trabajan mejor el pensamiento abstracto)
Se desea que los estudiantes reciban las clases de filosofa, geografa e historia
preferiblemente por la tarde (estas asignaturas son menos abstractas, y pueden
dejarse para el final del da)
Se desea que en las asignaturas con varios profesores, estos tengan una carga laboral
similar (el objetivo de esto es equilibrar la carga de trabajo y que el tiempo libre
para preparar clases y exmenes tenga una magnitud similar)
6.
6.1.
6.1.1.
Conjuntos
P : Conjunto de profesores (P = Bio, Soci, F is1, F is2, Inf o1, Inf o2, Ing1, Ing2, M ate1, M ate2, Qu
A: Conjunto de asignaturas (A={Biologia, Filosofia, Fisica, Geografia, Historia, Informatica, Ingles, Matematicas, Quimica})
H: Conjunto de horas (H = 8, 10, 13, 15)
D: Conjunto de das (D = Lunes, M artes, M iercoles, Jueves, V iernes)
6.1.2.
Parmetros
10
6.1.3.
Variables
xapchd =
0 En otro caso
a A, p P, c C, h H, d D
6.2.
Funcin objetivo
M aximizar z =
a A, p P, c C, h H, d D +
apchd
a A, {p1 , p2 } P, c C, h H, d D
achd
6.3.
Restricciones
Un profesor dicta un maximo de seis horas diarias:
P
ach
xapchd 2 M AD
p P, d D
ph
xapchd 2 M HACD
a A, c C, d D
Un curso puede recibir una nica asignatura en cualquier hora de cualquier da:
P
ap
xapchd 1
c C, h H, d D
ac
xapchd 1
p P, h H, d D
Cada curso debe recibir sus respectivas horas de cada asignatura en una semana:
P
phd
a A, c C
11
7.
Discusin de resultados
Fuente: Elaboracin propia
12
Fuente: Elaboracin propia
13
Fuente: Elaboracin propia
14
Fuente: Elaboracin propia
15
Fuente: Elaboracin propia
16
Fuente: Elaboracin propia
Este pequeo ejemplo de caso de estudio consta de 11880 variables y 713 restricciones,
y necesit un tiempo de cmputo de 110 segundos. El modelo se resolvi en un PC HP
Pavilion con Memoria RAM de 2 GB, Procesador Intel Core 2 a 1.73 GHz, Sistema
Operativo Linux Mint Debian Edition (LMDE). Como se mencion desde el comienzo,
se us el lenguaje MathProg para modelar el problema y el programa GLPK para la
resolucin.
La asombrosa cantidad de variables y restricciones para un problema relativamente pequeo, demuestra que la utilizacin de un modelo matemtico junto con un buen software
puede resultar de gran ayuda para resolver los problemas de asignacin de cargas acadmicas en las instituciones educativas, ya que estos problemas aparentemente sencillos
ocultan una inmensa complejidad.
17
8.
Conclusiones
Herramientas de Software Libre como GLPK y MahtProg puede resultar de gran
ayuda para resolver problemas de programacin lineal de gran escala (miles de
variables y miles de restricciones) sin tener que pagar costosas licencias por software
comercial con prestaciones similares. Adems, estas herramientas de software libre
permiten modificar el cdigo fuente y adaptarlo a las necesidades de cualquier
usuario.
La asignacin de cargas acadmicas para las instituciones educativas es un problema aparentemente sencillo que oculta una asombrosa complejidad. Un pequeo
ejemplo de escuela secundaria con pocas asignaturas puede involucrar decenas de
miles de variables y cientos de restricciones.
18
Referencias
[Markhorin, 2010a] Makhorin, Andrew. GNU Linear Programming Kit - Reference Manual. Department for Applied Informatics, Moscow Aviation Institute, Moscow, Russia. 2010.
[Markhorin, 2010b] Makhorin, Andrew. Modeling Language GNU MathProg - Language
Reference for GLPK Version 4.45. Department for Applied Informatics, Moscow Aviation Institute, Moscow, Russia. 2010.
19
A.
20
21
B.
22
Info2
.
.
.
.
.
1
Ing1
.
.
.
.
.
.
Ing2
.
.
.
.
.
.
Mate1
.
.
.
.
.
.
Mate2
.
.
.
.
.
.
Quim
.
.
.
.
.
.
:=
Ingles
Matematicas
Quimica
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
.
.
1
.
.
.
1
.
.
1
.
.
.
1;
param MAD := 6;
/* Maximo numero de asignaturas que dicta un profesor en un dia */
param MHACD := 2;
/* Maximo numero de horas de una asignatura q recibe un curso en un dia */
param PM default 0
/* Puntaje para incentivar la asignacion de las clases de matematicas y fisica por la manhana
:
Biologia
Filosofia
Fisica
Geografia
Historia
Informatica
Ingles
Matematicas
Quimica
8
.
.
2
.
.
.
.
2
.
10
.
.
1
.
.
.
.
1
.
13
.
.
.
.
.
.
.
.
.
15
.
.
.
.
.
.
.
.
.;
:=
param PT default 0
/* Puntaje para incentivar la asignacion de las clases de filosofa, geografa e historia para
:
Biologia
Filosofia
Fisica
Geografia
Historia
Informatica
Ingles
Matematicas
Quimica
8
.
.
.
.
.
.
.
.
.
10
.
.
.
.
.
.
.
.
.
13
.
1
.
1
1
.
.
.
.
15
.
2
.
2
2
.
.
.
.;
:=
end;
23
C.
Para los que no estn acostumbrados, trabajar con terminales de texto puede resultar
confuso al principio. Sin embargo, es una costumbre muy extendida entre los usuarios de
sistemas operativos Linux y BSD. Bsicamente se trata una interfaz en la que el usuario,
en vez de hacer click sobre iconos, le enva instrucciones al sistema operativo a travs
de rdenes escritas.
Figura 1: Sesin de Terminales en Linux resolviendo el problema de asignacin de cargas
acadmicas
Fuente: Elaboracin propia
24
Y listo. Una vez ejecutada esta orden en la terminal, el programa se encarga de resolver
todo.
25