Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
UNIVERSIDAD CENTRAL DEL ECUADOR
FACULTAD DE INGENIERIA,CIENCIAS FISICAS Y MATEMATICA
CARRERA DE INGENIERIA MATEMATICA
APLICACION DE LA PROGRAMACION LINEALPARA PROBLEMAS DE ASIGNACION.
TRABAJO DE GRADUACION PREVIO LA OBTENCION DEL TITULODE INGENIERA MATEMATICA
AUTOR: PATRICIA CAROLINA CANDO MOLINA
TUTOR: MAT. JUAN CARLOS GARCIA NAVAS,MSC.
QUITO - 24 DE ABRIL2017
ii
iii
Urkund Analysis Result Analysed Document: 20170223 Patricia Cando.pdf (D26372425)Submitted: 2017-03-13 20:29:00 Submitted By: [email protected] Significance: 3 %
Sources included in the report:
Chavi Gupta12.pdf (D22204074) 20115022006-SRINIVASAN R TS.pdf (D21434897) http://www.mate.unlp.edu.ar/practicas/66_13_0804200912835.pdf https://www.uam.es/personal_pdi/ciencias/fchamizo/posgrado/masterzumalacarregui.pdf
Instances where selected sources appear:
7
U R K N DU
iv
v
vi
Dedicatoria
A mi madre por sus ensenanzas, valor para enfrentar la vida y apoyo
incondicional en cada paso.
A mis hermanos por creer en mı siempre.
Rosa Molina
Santiago y Henry Cando.
vii
Agradecimiento
A Dios por ser el motor que me ha impulsado a seguir adelante.
Agradezco a mi familia y a Esteban por motivarme a cumplir mis metas.
Finalmente, a quienes fueron de gran ayuda para realizar este trabajo
Mat. Enrique Balseca
Mat. Juan Carlos Garcıa, Msc.
viii
CONTENIDO
Dedicatoria VII
Agradecimiento VIII
Resumen XI
Abstract XII
Introduccion 1
Descripcion del problema 1
1. Fundamentos teoricos 5
1.. Espacio vectorial Rn . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.. Espacio vectorial de matrices . . . . . . . . . . . . . 6
1.2.. Fundamentos algebraicos . . . . . . . . . . . . . . . . 7
2.. Teorıa de conjuntos convexos en Rn . . . . . . . . . . . . . 8
2.1.. Conjuntos convexos y funciones convexas. . . . . . 8
2.2.. Conjuntos poliedros y conos convexos. . . . . . . . 13
2.3.. Puntos extremos y direcciones extremas. . . . . . . 14
2.4.. Teorema de Farkas. . . . . . . . . . . . . . . . . . . . 16
3.. Programacion lineal . . . . . . . . . . . . . . . . . . . . . . . 18
3.1.. Soluciones basicas factibles. . . . . . . . . . . . . . . 22
3.2.. Mejoramiento de una solucion basica factible. . . 30
3.3.. Formato tableau del Metodo Simplex. . . . . . . . 33
3.4.. Condiciones de Kuhn-Tucker para las
restricciones de desigualdades. . . . . . . . . . . . . 34
ix
4.. Dualidad y sensibilidad . . . . . . . . . . . . . . . . . . . . 35
4.1.. Relaciones primal-dual. . . . . . . . . . . . . . . . . . 37
4.2.. Interpretacion economica del dual. . . . . . . . . . . 39
4.3.. Analisis de sensibilidad. . . . . . . . . . . . . . . . . 40
4.4.. Analisis parametrico. . . . . . . . . . . . . . . . . . . 43
5.. El problema de asignacion . . . . . . . . . . . . . . . . . . . 45
2. Metodologıa 47
1.. Formulacion del modelo general . . . . . . . . . . . . . . . 47
1.1.. Variables de decision. . . . . . . . . . . . . . . . . . . 48
1.2.. Formulacion matematica de las restricciones. . . . 48
1.3.. Funcion objetivo . . . . . . . . . . . . . . . . . . . . . 49
2.. Modelo particular . . . . . . . . . . . . . . . . . . . . . . . . 49
2.1.. Recoleccion de datos. . . . . . . . . . . . . . . . . . . 49
3.. Formulacion verbal y matematica del modelo . . . . . . . 52
3.1.. Modelo docente-materia . . . . . . . . . . . . . . . . 52
3.2.. Modelo materia-sala y hora. . . . . . . . . . . . . . . 53
3.3.. Funcion objetivo . . . . . . . . . . . . . . . . . . . . . 54
3. Implementacion 55
1.. Tablas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.. Relaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.. Casos Crıticos . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.. Ejemplo Lindo . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4. Conclusiones y recomendaciones 70
Bibliografıa 71
Anexos 73
Anexos 73
x
RESUMEN
APLICACION DE LA PROGRAMACION LINEAL PARA
PROBLEMAS DE ASIGNACION
Autor: Patricia Carolina Cando Molina
Tutor: Juan Carlos Garcıa Navas, Msc.
La asignacion de horarios en el presente trabajo sera tratado como un
problema de programacion lineal, donde se deben respetar las condiciones y
requerimientos que existen entre las variables que intervienen en el problema.
Para la obtencion de una solucion optima se utilizo la herramienta LINDO 6.1
y se realizo un analisis de sensibilidad que permite encontrar un rango en el
que dicha solucion siga siendo valida.
PALABRAS CLAVE: ANALISIS DE SENSIBILIDAD / ASIGNACION
DE HORARIOS / PROBLEMA DE ASIGNACION / PROGRAMACION
LINEAL / RESTRICCIONES DEBILES Y FUERTES / SOLUCION
OPTIMA.
xi
ABSTRACT
IMPLEMENTATION OF LINEAR PROGRAMMING FOR
ASSIGNMENT PROBLEMS
Author: Patricia Carolina Cando Molina
Tutor: Juan Carlos Garcıa Navas, Msc.
In this paper, the assignment of timetables will be treated as a problem of
linear programming, where certain conditions and requirements of the existing
variables must be met. In order to obtain an optimum solution, it was used
LINDO 6.1, and it was carried out a sensitivity analysis that allows to find a
range in which said solution is still valid.
KEYWORDS: SENSITIVITY ANALYSIS / ASSIGNMENT OF
TIMETABLES / ASSIGNMENT PROBLEM / LINEAR PROGRAMMING
/ WEAK AND STRONG RESTRICTIONS / OPTIMUM SOLUTION.
xii
Introduccion
La programacion horaria se puede considerar un problema de asignacion
de recursos a tareas. Instituciones como: colegios, escuelas, universidades,
hospitales, entre otros. se ven afectados por factores como el entorno y las
caracterısticas propias que la determinan.
Este tipo de problemas han sido propuestos y resueltos en una gran variedad
de trabajos usando diferentes metodos. El trabajo presentado a continuacion
estudia la problematica en la escuela de matematicas de una Institucion de
Educacion Superior1 y el metodo descrito en las paginas siguientes consiste en la
formulacion de un modelo matematico y una funcion objetivo a maximizar, para
lo cual se busca dar un fundamento teorico en el Capıtulo 1, donde se desarrollan
definiciones, teoremas, demostraciones relacionadas con la programacion lineal
y el problema de asignacion, seguido se plantea en el Capıtulo 2 un modelo
general y particular para la asignacion de horarios, se describe los recursos
humanos, materiales, requerimientos y condiciones impuestas por la escuela,
de manera verbal y matematica.
En el Capıtulo 3, se presenta el procedimiento que sigue para la asignacion de un
docente a las materias a dictar y horarios de disponibilidad, la implementacion
del modelo en una herramienta computacional, resultados y organizacion de la
informacion obtenida. Se presenta en este capıtulo tambien casos crıticos, como
que existan mas salas que materias y mas materias que salas a asignar.
En el Capıtulo 4, se observan una serie de recomendaciones y conclusiones para
el desarrollo de un trabajo futuro. Para finalizar, en Anexos se presenta una
guıa para el uso de la herramienta del administrador.
1La informacion de la Institucion de Educacion Superior se conservaran de maneraanonima.
1
Descripcion del problema
Problematica general
En cada perıodo de clases las instituciones de educacion se enfrentan al
problema de asignar horarios, salones para sus estudiantes y las materias que
se dictan.
Con el objeto de analizar, realizar y promover la investigacion y solucion
de horarios automatizados, en Europa se formo el grupo WATT (Working
group on Automated Timetabling) luego de la primera conferencia internacional
“Practice and Theory of Automated Timetabling” en 1995 (PATAT’95); el grado
de dificultad de estos problemas radica en las restricciones que existen para cada
modelo.
Entre las tecnicas de resolucion para este tipo de problemas se
evidencian: programacion lineal, programacion lineal entera [[22],[1]], Simulated
Annealing(enfriamiento simulado) [18], algoritmos geneticos [11], algoritmos
evolutivos [6], Busqueda Tabu [19], entre otros metodos. Luego de multiples
investigaciones y uso de diferentes tecnicas, se determina que la programacion
lineal es la mas adecuada para resolver el problema de asignacion de horarios,
ademas de, ser la mas tradicional.
La programacion lineal se adapta a multiples tipos de la actividad humana.
Las primeras investigaciones de operaciones comenzaron a inicio de la Segunda
Guerra Mundial. Debido a los esfuerzos belicos existıa una necesidad urgente
de asignar recursos como energıa, armamento y cualquier tipo de suministro
escaso en las distintas operaciones y actividades militares, en la forma mas
eficiente. En junio de 1947 un equipo de la Fuerza Aerea de Estados Unidos
denominado SCOOP (Scientific Computation of Optimum Programs) inicio con
la formulacion, analisis y solucion del problema lineal dando como resultado a
1
fines de verano de ese mismo ano el metodo Simplex desarrollado por George
B. Dantzig. Enseguida, el interes por la programacion lineal crece entre las
instituciones, expertos y no expertos, cientıficos.
En el ano 1951 T. C. Koopmans en el libro “ Activity Analisys of Production
and Allocation: Proceeding of a conference” recoge los trabajos presentados en
la conferencia de 1949 por George B. Dantzig.
Luego de la publicacion del Metodo Simplex se recibieron cuantiosos aportes
para fundamentar y desarrollar la programacion lineal. Otras herramientas que
se desarrollaron entre 1950 y 1960 fueron la programacion entera, programacion
dinamica, teorıa de inventarios, metodo de transporte y teorıa de colas.
La programacion lineal maximiza o minimiza funciones lineales sujetas a una
serie de restricciones tambien lineales y sus fundamentos basicos se basan en la
teorıa de los espacios vectoriales. A pesar de ser muy restrictiva por la condicion
de linealidad se cuenta con modelos generales y herramientas informaticas que
ayudan a su resolucion.
Entre los problemas clasicos de la programacion lineal esta el problema de
asignacion el cual es un caso especial del problema de transporte(formulado
formalmente en 1941 [13]).
El problema de asignacion surge en la busqueda de la mejor asignacion de
un conjunto de personas a un conjunto de trabajos; los trabajadores reciben
una puntuacion de acuerdo a los puestos de trabajo, lo cual permite o no
la asignacion al puesto y donde a cada elemento del primer conjunto le
corresponde un solo elemento del segundo conjunto. Se realizan una serie
de trabajos independientes del problema de asignacion en terminos de la
programacion lineal y las ventajas de su desarrollo computacional usando el
problema dual lineal de Flood, J. Robinson, Votaw, and Orden, Dantzig, von
Neumann entre otros [14], antes de presentar en 1955 Harold W. Kuhn el
algoritmo basado en la teorıa de grafos que utiliza la dualidad del programa
lineal, el mismo que se fundamento en los trabajos de dos matematicos hungaros
Konig and Egervary [9] y de allı se deriva su nombre Metodo Hungaro.
Existen varios metodos de resolver el problema de asignacion: el
2
Metodo Simplex, Algoritmo de Transporte, Ramificacion y Acotacion
(Branch-and-Bound)[5], Metodo del Simplex Dual, Metodo Hungaro, entre
otros. El problema de asignacion se utiliza para resolver diversas situaciones,
por ejemplo la asignacion de horarios.
La programacion horaria o Timetabling se relaciona con la distribucion de una
serie recursos humanos, de tiempo y espacio, de tal manera que se respeten
condiciones y requerimientos que existan entre ellas. Los requerimiento o
condiciones se clasifican en restricciones duras las cuales se deben cumplir
obligatoriamente y blandas que no son obligatorias pero se deben cumplir en
la manera de lo posible [15].
En el problema de asignacion de horarios educativos, tenemos una clasificacion
en tres grandes tipos [21]:
Horarios de clases para escuelas (School Timetabling).
Horarios de clases para instituciones de educacion superior o
universidades (Course Timetabling).
Horarios de evaluaciones y examenes (Examination Timetabling).
Formulacion del problema
Generacion de horarios de clases semestral en la escuela de matematicas de una
Institucion de Educacion Superior.
Limitaciones
La automatizacion del modelo general.
Justificacion
Evidenciando la problematica actual de la escuela de matematicas al momento
de realizar la programacion horaria semestral se busca dar una solucion optima
3
que satisfaga los requerimientos y condiciones impuestos. Actualmente, la
escuela cuenta con un metodo de asignacion manual que suele ser demoroso
y su solucion puede estar sujeta a fallas e incumplimiento de los requerimientos
basicos. En este trabajo se propone hacer uso de un modelo de programacion
lineal que cumpla con los requerimientos solicitados y minimice el tiempo de
asignacion de los horarios de clases.
Objetivos
Objetivo general.
Aplicar la programacion lineal en la asignacion docentes a materias y sesiones
de clases en una Institucion de Educacion Superior en la escuela de matematicas
en el semestre 2016-2017.
Objetivos especıficos.
Elaborar un esquema teorico-practico a partir de los datos proporcionados
por la escuela de matematicas.
Facilitar la busqueda de una solucion factible en la asignacion de docentes,
materias y horas.
Disminuir el tiempo requerido para la realizacion de la planificacion
horaria.
4
CAPITULO 1
Fundamentos teoricos
En el capıtulo que se presenta a continuacion se detallan los fundamentos
teoricos, del presente trabajo, tal como se enuncia:
En primer lugar, el espacio vectorial Rn y algunas propiedades, en lo sucesivo
se desarrollaran los conceptos en este espacio. En la teorıa de convexos se
expondran teoremas que brindan importantes resultados teoricos.
En un segundo bloque se expone cuestiones sobre la programacion lineal desde
sus principios basicos, teoremas que la caracterizan, relaciones con el dual,
mejoramiento de soluciones, entre otros.
Finalmente, se estudia cuestiones sobre los analisis de sensibilidad, parametrico
y la definicion del problema de asignacion.
1. Espacio vectorial Rn
Sea n un numero natural, se define:
Rn = {(x1, x2, ..., xn); xi ∈ R, i = 1, ..., n}, (1.1)
es decir, Rn es el conjunto de elementos x = (x1, x2, ..., xn), donde cada xi ∈ R,
i = 1, ..., n; a estos elementos se los denominada n-uplas ordenadas.
Se definen sobre este conjunto:
Igualdad: Sean x, y ∈ Rn, entonces x = y ⇐⇒ xi = yi, i = 1, ..., n.
Suma: Sean x, y ∈ Rn, entonces x+ y = (x1 + y1, ..., xn + yn).
Multiplicacion por un numero real: Sean a ∈ R, x, y ∈ Rn, entonces
5
ax = (ax1, ..., axn).
Propiedades
1. Conmutativa: Sean x, y ∈ Rn:
x+ y = y + x.
2. Asociativa: Sean x, y, z ∈ Rn:
(x+ y) + z = x+ (y + z).
3. Elemento neutro, es la n−upla (0, ..., 0)
4. Inverso aditivo: Sea x ∈ Rn, entonces su elemento inverso es −x.
1.1. Espacio vectorial de matrices
Sean m, n numeros naturales. Una matriz mxn sobre un cuerpo R, es una tabla
ordenada de valores aij ∈ R, i = 1, ...,m, j = 1, ..., n de la forma:
a11 a12 ... a1n
a21 a22 ... a2n...
.... . .
...
am1 am2 ... amn
Al conjunto de todas las matrices reales mxn se denota por Mmxn(R) y se
define como:
Mmxn(R) = {A = (aij)mxn; aij ∈ R i = 1 , ..., m, j = 1 , ..., n.}
Las operaciones en Mmxn(R):
1. Igualdad: Sean A = (aij)mxn, B = (bij)mxn ∈Mmxn(R),
A = B ⇐⇒ aij = bij, i=1, ..., m, j=1, ..., n.
6
2. El producto de un escalar k por la matriz A = (aij)mxn, escrito kA es:
kA = k(aij)mxn = (kaij)mxn
3. Sean A = (aij)mxn, B = (bij)mxn ∈Mmxn(R),
A+B = (aij)mxn + (bij)mxn = (aij + bij)mxn.
Teorema 1. [16]) Para las matrices arbitrarias A, B, C ∈ Mmxn[R] y
escalares cualesquiera k1, k2 ∈ R,
i) (A+B) +C = A+ (B +C).
ii) A+ 0 = 0 +A = A.
iii) A+ (−A) = 0.
iv) A+B = B +A.
v) k1 (A+B)=k1 A+k1B.
vi) (k1 + k2)A=k1A+k2A.
vii) (k1k2)A=k1(k2A).
viii) 1· A = A y 0A=0.
1.2. Fundamentos algebraicos
1. Sea x = (x1, x2, ..., xn).
• Se dice que x ≥ 0 si y solo si xi ≥ 0 para todo i = 1, ..., n.
• Se dice que x > 0 si y solo si xi > 0 para todo i = 1, ..., n.
2. Equivalencias para las desigualdades:
• Ax ≤ b ⇐⇒ −Ax ≥ −b.
• Ax ≥ b ⇐⇒ −Ax ≤ −b.
7
3. Una desigualdad puede transformarse en una igualdad si anadimos una
variable xh ≥ 0, llamada variable de holgura:
• Si a la desigualdad∑n
i=1 ajixi ≤ bj, se le anade la variable de
holgura con signo positivo. Se obtiene:∑ni=1(ajixi + xhj) = bj, xhj ≥ 0,
para i = 1, ..., n y j = 1, ..., m.
• Si a la desigualdad∑n
i=1 ajixi ≥ bj, se le anade la variable de
holgura con signo negativo. Se obtiene:∑ni=1(ajixi − xhj) = bj , xhj ≥ 0,
para i = 1, ..., n y j = 1, ..., m.
4. La ecuacion de la forma∑n
i=1 ajixi = bj, se puede transformar en dos
desigualdades:
n∑i=1
ajixi ≥ bj,
n∑i=1
ajixi ≤ bj.
5. Una variable xi, i = 1, ..., n no-condicionada es aquella que puede tomar
cualquier valor negativo, cero y positivo.
Se representa por xi = x′i − x′′i , donde x′i ≥ 0 y x′′i ≥ 0.
6. Maximo de f(x) es igual al mınimo −f(x).
Mınimo de f(x) es igual al maximo −f(x).
2. Teorıa de conjuntos convexos en Rn
2.1. Conjuntos convexos y funciones convexas.
Definicion 1. Un conjunto C ⊆ Rn es convexo si para todo x, y ∈ C y
0 ≤ λ ≤ 1 se cumple:
λx + (1− λ)y ∈ C. (1.2)
8
Definicion 2. (Combinacion lineal convexa) Un punto x ∈ Rn tal que:
x =n∑i=1
λixi
λi ≥ 0
n∑i=1
λi = 1.
(1.3)
es una combinacion lineal convexa no-negativa de n puntos de Rn.
Observe que (1.2) cumple con la definicion anterior, entonces es una
combinacion lineal convexa no-negativa.
Interpretacion geometrica
Geometricamente significa que el segmento entre x1 y x2 pertenece al conjunto.
Figura 1.1: Ilustracion de conjuntos convexos
Definicion 3. (Casco convexo) Sea C ⊆ Rn (no necesariamente convexo)
se denomina casco convexo de C denotado por H(C) a la coleccion de todas las
combinaciones lineales convexas de C.
Observacion 1. Sea C ⊆ Rn cualquiera entonces H(C) es un conjunto
convexo.
Sea C ⊆ Rn un conjunto convexo si y solo si H(C)=C.
Definicion 4. (Politopos) Un politopo en Rn es el casco convexo de un
numero finitos de puntos x1, x2,..., xk+1. Si los vectores x2−x1, x3−x1,...,
xk+1 − x1 son linealmente independientes, entonces H(x1,x2, ..., xk+1) es
llamado simplex de vertices x1, x2,..., xk+1.
9
Figura 1.2: Ejemplos de casco convexo
Figura 1.3: Ejemplos de un politopo y un simplex.
Teorema 2. (Teorema Caratheodory [3]) Sea C un conjunto arbitrario de
Rn. Si x ∈ H(C), x ∈ H(x1,x2, ..., xn+1), donde xi ∈ C para i = 1, ..., n+1.
En otras palabras, x puede representarse como:
x =n+1∑i=1
λixi
n+1∑i=1
λi = 1
λi ≥ 0, i = 1, ..., n+ 1
xi ∈ C, i = 1, ..., n+ 1.
(1.4)
10
Demostracion. Sea x ∈ H(C) se tiene
x =k∑i=1
λixi
k∑i=1
λi = 1
λi ≥ 0, i = 1, ..., k
xi ∈ C, i = 1, ..., k.
Si k ≤ n+ 1 el resultado ya se tiene.
Si k > n + 1. Sin perdida de generalidad, se supone λi 6= 0 para i = 1, ..., k
pues si se tiene λi = 0 para algun i, x serıa combinacion convexa de k − 1
vectores; es decir, se escoge la combinacion convexa de k vectores lo menor
posible.
Ademas, los k − 1 vectores x2 − x1, x3 − x1, ..., xk − x1 son linealmente
dependientes (pues la dimension del espacio es n y k − 1 > n), luego existen
escalares µ1, µ2, ..., µk no todos ceros tales que∑k
i=2 µi(xi − x1).
Sea µ1 = −∑k
i=2 µi.
Luego,∑k
i=1 µixi = 0 y∑k
i=1 µi = 0 no todos ceros.
Note que al menos algun µi > 0. Entonces
x =k∑i=1
λixi + 0 =k∑i=1
λixi − αk∑i=1
µixi =k∑i=1
(λi − αµi)xi,
para todo α real.
Ahora se elige α como sigue:
α = mın1≤i≤k
{λiµi
;µi > 0
}=λjµj
> 0,
para algun j = 1, ..., k.
Observe, si µi ≤ 0 entonces λi − αµi > 0, y si µi > 0 entoncesλiµi≥ λjµj
= α y
por tanto, λi−αµi ≥ 0 para todo i = 1, ..., k. En particular, λj −αµj = 0 por
definicion de α.
Ası, x =∑k
i=1(λi − αµi)xi donde λi − αµi ≥ 0 y∑k
i=1(λi − αµi) = 1, para
11
i = 1, ..., k.
Es decir, x es combinacion convexa de a lo mas k−1 vectores pues el coeficiente
j -esimo es nulo.
Repitiendo el argumento hasta que x sea representado como una combinacion
convexa de n+ 1 puntos en C. Bazaraa, Sherali y Shetty (2006).
Definicion 5. (Hiperplano) Un hiperplano H en Rn es un conjunto:
H = {x ∈ Rn; px = k : k ∈ R, p ∈ Rn} (1.5)
p usualmente se denomina el vector normal de H.
Proposicion 1. El hiperplano H es un conjunto convexo.
Definicion 6. (Semiespacios) Asociados a un hiperplano H, existen dos
semiespacios:
H− = {x ∈ Rn; px ≤ k : k ∈ R, p ∈ Rn}. (1.6)
H+ = {x ∈ Rn; px ≥ k : k ∈ R, p ∈ Rn}. (1.7)
Propiedades
1. H−⋂H+ = H.
2. H−⋃H+ = Rn.
Proposicion 2. Los semiplanos H− y H+ asociados al hiperplano H son
conjuntos convexos.
Observacion 2. El conjunto solucion del sistema de las desigualdades
lineales
S = {x ∈ Rn; Ax ≤ b : A ∈ Rmxn, b ∈ Rm},
es convexo.
El conjunto solucion del sistema de desigualdades lineales
S = {x ∈ Rn; Ax ≥ b : A ∈ Rmxn, b ∈ Rm},
es un conjunto convexo.
12
Definicion 7. Sea C ⊆ Rn un convexo no vacıo. La funcion f : C −→ R es
convexa, si para cualquier x, y ∈ C y para cada λ ∈ [0, 1],
f(λx+ (1− λ)y) ≤ λf(x) + (1− λ)f(y). (1.8)
La funcion f es llamada estrictamente convexa si la ecuacion 1.8 es una
inecuacion estricta, con λ ∈ (0, 1). La funcion f : C −→ R es llamada concava
(estrictamente concava) sobre C si−f es convexa (estrictamente convexa) sobre
C.
Figura 1.4: Funcion convexa.
2.2. Conjuntos poliedros y conos convexos.
Definicion 8. (Conjunto poliedro) Un conjunto poliedro es una interseccion
finita de semiespacios y puede ser representado como un conjunto de la forma
P = {x ∈ Rn; Ax ≤ b} con A ∈Mmxn(R) y b ∈ Rm.
Observacion 3. 1. P ′ = {x ∈ Rn; Ax ≥ b} con A ∈Mmxn(R) y b ∈ Rm
es un poliedro.
2. P ′ = {x ∈ Rn; Ax = b, x ≥ 0} con A ∈ Mmxn(R) y b ∈ Rm es un
poliedro.
3. Todo poliedro es un conjunto convexo.
Definicion 9. (Cono) Sea C un conjunto cualquiera de Rn es un cono convexo
con vertice cero si para todo x ∈ C y λ ≥ 0 se tiene que λx ∈ C.
13
Si en la definicion anterior C es un conjunto convexo, C se denomina cono
convexo.
Figura 1.5: Ejemplos de cono convexo y no convexo.
2.3. Puntos extremos y direcciones extremas.
Definicion 10. (Punto extremo) Sea C un conjunto convexo de Rn se
denomina punto extremo de C sino puede expresarse como una combinacion
lineal convexa no negativa de dos puntos distintos del conjunto convexo. Es
decir, sean x1 y x2 en C tal que x = αx1 + (1−α)x2 para algun α, 0 < α < 1
entonces x = x1 = x2.
Sea C el politopo generado por {(00
),(11
),(13
),(−2
3
),(−1
2
)}:
El conjunto de puntos extremos de C, {(00
),(11
),(13
),(−2
3
)}.
El casco convexo de C,
H(C) =
x ∈ R2 :
1 −1
0 1
1 0
−3
2−1
x ≤
0
3
1
0
Definicion 11. (Direcciones) Sea C un conjunto convexo de Rn, se dice
que el vector d 6= 0 es una direccion de C si {x0 + λd; λ ≥ 0, ∀x0 ∈ C}
tambien pertenece al conjunto.
Dos direcciones d1 y d2 de C son llamados distintos si d1 6= αd2 para cualquier
14
Figura 1.6: Conjunto de puntos extremos de C.
α > 0.
Definicion 12. (Direcciones extremas) Una direccion d es una direccion
extrema en un conjunto convexo C de Rn sino se puede expresar de la forma
d = λ1d1 + λ2d2 con λ1, λ2 > 0 y donde d1, d2 direcciones distintas.
Figura 1.7: Ejemplo de direcciones extremas.
Proposicion 3. Sea C un conjunto convexo no vacıo en Rn,
C =
Ax = b
x ≥ 0,(1.9)
entonces d es un vector direccion en C si y solo si d 6= 0, Ad = 0 y d ≥ 0.
Similarmente, se obtiene el resultado si se reemplaza Ax = b por Ax ≥ b
(Ax ≤ b) y Ad = 0 por Ad ≥ 0 (Ad ≤ 0).
15
2.4. Teorema de Farkas.
Teorema 3. (Teorema Hahn-Banach [3]) Sea C un conjunto cerrado
convexo no vacıo en Rn y y 6∈ C. Entonces existe un vector no cero p y un
escalar α tal que
py > α
px ≤ α, ∀x ∈ C.(1.10)
Figura 1.8: H es el hiperplano separador entre C e y.
Teorema 4. (Teorema de Farkas [3]) Sea A una matriz mxn y c un
n-vector. Entonces exactamente uno de los siguientes sistemas tiene solucion:
Sistema 1: Ax ≤ 0 y cx > 0 para algun x ∈ Rn.
Sistema 2: ATy=c y y ≥ 0 para algun y ∈ Rm.
Demostracion. Suponga que el Sistema 2 tiene una solucion; es decir, existe
y ≥ 0 tal que ATy=c. Se demostrara que el Sistema 2 no tiene solucion.
Sea x tal que Ax ≤ 0. Entonces cx = yTAx ≤ 0 por lo tanto el Sistema 1 no
tiene solucion.
Ahora, suponga que el Sistema 2 no tiene solucion, se demostrara que el Sistema
1 tiene solucion.
Defina el conjunto S = {x;x = ATy, y ≥ 0}. Note que S es un conjunto
convexo cerrado y que c 6∈ S pues el Sistema 2 no tiene solucion. Por el
Teorema 3, existe un vector p ∈ Rn y un escalar α tal que pc > α y px ≤ α
para todo x ∈ S.
Debido a que, 0 ∈ S, entonces α ≥ 0 y ası pc > 0. Tambien
16
α ≥ px = p(ATy) = (ATy)Tp = yTAp, para todo y ≥ 0.
Puesto que, y ≥ 0 se puede hacer arbitrariamente grande, la ultima desigualdad
implica que Ap ≤ 0.
Por tanto, se construyo un vector p ∈ Rn tal que Ap ≤ 0 y pc > 0. Ası, el
Sistema 1 tiene una solucion, y la prueba esta completa. Bazaraa, Sherali y
Shetty (2006).
Interpretacion geometrica.
a) Denote la ith fila de A por ai, i=1,...,m. Si se considera el Sistema 1, en
el cual Ax ≤ 0 esto implica que aix ≤ 0 para todo i. Es decir, el angulo
entre x y cada fila del vector ai es mas grande que o igual a 90◦. Entonces
cx < 0 requiere que el angulo entre x y c menor que 90◦. Ademas, el Sistema
1 tiene una solucion si la interseccion del cono {x : Ax ≤ 0} y el semiespacio
{x : cx > 0} no es vacıo. La figura 1.9 muestra un caso donde el Sistema 1
tiene una solucion, con cualquier x en el area sombreada como una solucion
del Sistema 1.
b) El vector c es una combinacion lineal positiva de las columnas ai, figura
Figura 1.9: Sistema 1 tiene solucion.
1.10. Bazaraa y Jarvis(1977).
Los siguientes resultados son aplicaciones de los teoremas 3 y 4:
17
Figura 1.10: Sistema 2 tiene solucion.
Corolario 1. [3] Sea A una matriz mxn y c un n-vector. Entonces exactamente
uno de los siguientes sistemas tiene solucion:
Sistema 1: Ax ≤ 0, cx > 0 y x ≥ 0 para algun y ∈ Rn.
Sistema 2: AT y = c y y ≥ 0 para algun y ∈ Rm.
Corolario 2. [3] Sea A una matriz mxn, B una matriz lxn y c un n-vector.
Entonces exactamente uno de los siguientes sistemas tiene solucion:
Sistema 1: Ax ≤ 0, Bx = 0 y cx > 0 para algun y ∈ Rn.
Sistema 2: ATy+BTz=c y y ≥ 0 para algun y ∈ Rm y z ∈ Rl.
Teorema 5. (Teorema de Gordan [3]) Sea A una matriz mxn. Entonces,
exactamente uno de los siguientes sistemas tiene solucion:
Sistema 1: Ax < 0 para algun x ∈ Rn.
Sistema 2: ATp=0, p ≥ 0, p 6= 0 para algun p ∈ Rm.
3. Programacion lineal
Es un modelo matematico disenado para resolver y analizar problemas lineales
de decision con restricciones lineales con el fin de determinar la forma
mas optima de usar los recursos disponibles, en sistemas de produccion. La
18
representacion general del problema de programacion lineal (PL) que optimiza:
z = f(x) = cx (1.11)
sujeto a Ax R b (1.12)
x ≥ 0, (1.13)
donde A = (aji) ∈Mmxn(R), b=(bj) ∈ Rm, x = (xi) y c = (ci) ∈ Rn.
La funcion lineal (1.11), se denomina funcion objetivo. Los vectores c
y x se les denomina vector de precios (costos unitarios) y el vector
de produccion (variable de decision), respectivamente. Las desigualdades
(o igualdades) (1.12) se denominan restricciones, el vector b se denomina
vector de disponibilidad y la matriz A se denominan matriz de
coeficientes tecnologicos. La condicion en (1.13) se conoce como condicion
de no-negatividad.
La palabra optimizar puede significar maximizar o minimizar.
Matricialmente el problema se escribe:
Optimizar
z = (c1 c2 · · · cn)
x1
x2...
xn
(1.14)
sujeto a a11 a12 · · · a1na21 a22 · · · a2n· · · · · · · · · · · ·
am1 am2 · · · amn
x1
x2...
xn
R
b1
b2...
bm
(1.15)
x1
x2...
xn
≥
0
0...
0
(1.16)
19
Otra forma de escribirlo es:
Optimizar
z =n∑i=1
cixi (1.17)
sujeto a
n∑i=1
ajixi R bj, j = 1, ..., m (1.18)
xi ≥ 0, i = 1, ..., n. (1.19)
Todas estas formas son equivalentes. Un vector x que satisface (1.12) y (1.13)
se denomina solucion factible. La region factible o espacio factible
esta constituido por todos las soluciones factibles.
Forma canonica y forma estandar
Un problema de PL se dice estandar si:
La funcion objetivo z se puede maximizar o minimizar.
Las restricciones son de igualdad.
Los elementos del vector b son no-negativos.
Todas las variables son no-negativas.
Optimizar
z = cx
sujeto a Ax = b
x ≥ 0,
donde A = (aji) ∈Mmxn(R), b = (bj) ∈ Rm, x = (xi) y c = (ci) ∈ Rn.
Un problema de PL se dice canonico si:
La funcion objetivo z, puede ser maximizar o minimizar.
Las restricciones son desigualdad de tipo ≤ (≥).
Todas las variables son no-negativas.
20
Optimizar
z = cx
sujeto a Ax(≤)≥ b
x ≥ 0.
donde A = (aji) ∈Mmxn(R), b = (bj) ∈ Rm, x = (xi) y c = (ci) ∈ Rn.
Condicion algebraica
Si la matriz A ∈ Mmxn(R) cumple con m < n y filas linealmente
independientes se dice que tiene el rango completo.
Si el rango de A ∈ Mmxn(R) es menor a m se dice que es un problema
degenerado.
Hipotesis de programacion lineal
Proporcionalidad. Las variables de decision, contribuyen directamente al
costo y las restricciones.
Aditividad. Se puede valorar la funcion objetivo sumando las
contribuciones que hacen cada uno de los terminos que intervienen y que
la contribucion total para una restriccion es la suma de las contribuciones
y actividades individuales.
Divisibilidad. Las variables de decision toman como valores numeros
reales, si ademas se adjunta las restricciones de no negatividad, significa
que variables de decision pueden tomar valores positivos o al menos igual
a cero.
Certidumbre. Los parametros aji, ci, bj para i = 1, ..., n y j = 1, ..., m se
mantienen constantes, es decir, no interviene una funcion de probabilidad
para obtenerlos.
21
3.1. Soluciones basicas factibles.
Definicion 13. (Soluciones basicas factibles) Sea el sistema
Ax = b
x ≥ 0,
donde A ∈Mmxn(R), b un m-vector y supongase que el rango de A es m.
Consideremos una descomposicion de la matriz A de la forma [B,N ], donde
B ∈ Mmxm(R) es inversible y N ∈ Mmx(n−m)(R). El vector x =
xB
xN
se
denomina solucion basica del sistema si
xB = B−1b
xN = 0y si ademas, xB ≥ 0
entonces x =
xB
0
se llama solucion basica factible del sistema.
En la definicion anterior la matriz B se conoce como matriz basica, la matriz
N como matriz no-basicas y a los vectores xB, xN se los denominada vector
de variables basicas y vector de variables no-basicas, respectivamente.
Una solucion basica factible x =
xB
0
se denomina no-degenerada si xB >
0, caso contrario si alguna componente de xB es cero la solucion se dice que es
basica factible degenerada.
Caracterizacion de puntos extremos y direcciones extremas para
conjuntos poliedros
Teorema 6. (Caracterizacion de puntos extremos [2]) Sea
P = {x;Ax = b, x ≥ 0},
donde A ∈ Mmxn(R) es de rango m y b ∈ Rm. Un punto es una solucion
basica factible si y solo si es un punto extremo.
Demostracion. (⇐=) Suponga que la matriz A se puede descomponer en
[B,N ] con x =(B−1b
0
)y B−1b ≥ 0. Se demostrara x es un punto extremo.
22
Note que, Ax = [B,N ](xB
xN
)= BxB +NxN = BB−1b +N0 = b y x ≥ 0
por lo tanto, x ∈ P .
Sean x1 =(x11
x12
), x2 =
(x21
x22
)∈ P y para algun λ ∈ (0, 1) tal que
x = λx1 + (1− λ)x2(B−1b
0
)= λ
(x11
x12
)+ (1− λ)
(x21
x22
)λx11 + (1− λ)x21 = B−1b (1)
λx12 + (1− λ)x22 = 0. (2)
De la ecuacion (2) se sigue que x12 = 0, x22 = 0 puesto que, x1 ≥ 0, x2 ≥ 0.
Ademas, Ax1 = Bx11 = b y Ax2 = Bx21 = b entonces x11 = B−1b y
x21 = B−1b, por lo tanto, x1 = x2 = x. Ası, se concluye x punto extremo.
(=⇒) Suponga x es punto extremo, se demostrara que es una solucion basica
factible. Sin perdida de generalidad, se supone que
x =
x1...
xk
0...
0
,
con xj > 0 para j=1,..., k, k ≤ m.
Denote la columna k−esima de A por ak. Note que
Ax = b⇐⇒∑k
i=1 xiai = b.
Las columnas a1, ...,ak son linealmente independientes, pues suponga que
a1, ..., ak son linealmente dependientes, entonces existen λ1, ..., λk no todos
23
ceros tal que∑k
i=1 λiai = 0. Sea
λ =
λ1...
λk
0...
0
.
Construya los siguientes vectores x1,x2 ≥ 0 con α > 0
x1 = x+ αλ,
x2 = x− αλ.
Luego, x =1
2x1 +
1
2x2.
Note, Ax1 =∑k
i=1(xi + αλi)ai =∑k
i=1 xiai + α∑k
i=1 λiai = Ax = b. y de
manera similar Ax2 = b. Ası, x1, x2 ∈ P . Ademas, x 6= x1, x1 6= x2 y
x2 6= x, lo cual es contradiccion con el hecho que x es un punto extremo. Por
tanto, a1, ..., ak son linealmente independientes y m − k columnas fuera de
las ultimas columnas n − k pueden ser elegidos de tal manera que, junto con
las primeras k columnas, formen un conjunto maximal de vectores linealmente
independiente.
Defina B = [a1, ..., am] invertible y N = [am+1, ..., an]. Ası, A puede
escribirse de la forma [B,N ] se tiene las siguientes equivalencias
Ax = b⇐⇒∑n
i=1 xiai = b⇐⇒∑m
i=1 xiai +∑n
i=m+1 xiai = b (*).
Si se denota x =(xB
xN
), donde
xB =
x1...
xm
≥ 0, xN =
xm+1
...
xn
=
0...
0
.
24
Entonces la ecuacion (*) se escribe:
BxB +NxN = b,
BxB = b,
xB = B−1b.
Bazaraa, Sherali y Shetty (2006).
Corolario 3. El numero de puntos extremos de P es finito.
Teorema 7. (Existencia de puntos extremos [3]) Sea
P = {x;Ax = b,x ≥ 0},
no vacıo, donde A ∈ Mmxn(R) es de rango m y b ∈ Rm. Entonces P tiene al
menos un punto extremo.
Demostracion. Sin perdida de generalidad, suponga que el rango de la matriz
A es m y
x =
x1...
xk
0...
0
,
con xj > 0 para j = 1, ..., k, k ≤ m.
Denote la columna k−esima de A por ak. Si a1, ..,ak son linealmente
independientes entonces x es una solucion basica factible.
Suponga que x no es una solucion basica factible luego a1, ..,ak son linealmente
dependientes, es decir, existen λ1, ..., λk no todos ceros con al menos un λj > 0,
tal que∑k
i=1 λiai = 0.
Considere el vector x′, cuya componente j−esima es
x′j =
xj − αλj, para j = 1, ..., k,
0, para j = k + 1, ..., n,
25
donde α = mın1≤j≤k
{xjλj, λj > 0
}=xiλi> 0.
Si λj ≤ 0 entonces x′j > 0 para j = 1, ..., k.
Si λj > 0, por definicion de α se tiene que α =xiλi≤ xjλj
y entonces x′j ≥ 0,
pues x′j = xj − αλj = xj −xiλiλj ≥ xj −
xjλjλj = 0 para j = 1, ..., k.
Ası, x′ ≥ 0 con como maximo hay k-1 componentes positivas, es decir, la
componente x′i = 0 y
Ax′ =∑n
i=1 x′iai =
∑ni=1(xi − αλi)ai =
∑ni=1 xiai − α
∑ni=1 λiai = b.
Ası, se construyo un punto factible x′ con al menos k − 1 componentes. Si las
columnas correspondientes a estas componentes son linealmente independientes
entonces x′ es una solucion basica factible. En caso contrario, se sigue con
el procedimiento hasta encontrar una solucion basica factible. Bazaraa y
Jarvis(1977).
Teorema 8. (Caracterizacion de direcciones extremas [3]) Sea
P = {x; Ax = b, x ≥ 0},
no vacıo donde A ∈ Mmxn(R) es de rango m y b ∈ Rm. Una direccion d
es direccion extrema de P si y solo si la matriz A se puede descomponer en
[B,N], tal que B−1aj ≤ 0 para alguna columna aj de N y d es multiplo de
d =(−B−1aj
ej
), donde ej es un n − m vector de ceros excepto de un 1 en la
posicion j.
Demostracion. (⇐=) Se demostrara d es direccion extrema.
Puesto que, B−1aj ≤ 0 para alguna columna aj de N se tiene que d ≥ 0 y
Ad = [B,N ](−B−1aj
ej
)= −BB−1aj +Nej = −aj + aj = 0
Por la Proposicion 3. d es direccion de P . La direccion d es extrema, caso
contrario suponga que d no es direccion extrema, luego existen d1 y d2
direcciones en P distintas, tal que d = λ1d1 +λ2d2, para λ1, λ2 > 0. Entonces,
d1, d2 deberıan ser escritos de la forma:
26
d1 =(d11
α1ej
), d2 =
(d21
α2ej
)para algun α1, α2 > 0. Puesto que, d1, d2 son direcciones de P por la
Proposicion 3. Ad1 = Ad2 = 0. Luego,
[B,N ](d11
α1ej
)= Bd11 + α1Nej = Bd11 + α1aj = 0 =⇒ d11 = −α1B
−1aj ,
[B,N ](d21
α2ej
)= Bd21 + α2Nej = Bd21 + α2aj = 0 =⇒ d21 = −α2B
−1aj ,
por tanto, d1 = d2 = d, que es la definicion de direccion extrema. Ademas,
como d es multiplo positivo de d, esta tambien es una direccion extrema.
(=⇒)Sea d una direccion extrema de P . Sin perdida de generalidad, suponga
que
d =
d1...
dk
0...
dj...
0
,
con di > 0 para i = 1, ..., k e i = j.
Denote la columna k−esima de A por ak. Las columnas a1, ..,ak son
linealmente independientes. Por contradiccion, suponga que a1, ..,ak son
linealmente dependientes, entonces existen λ1, ..., λk no todos ceros tal que∑ki=1 λiai = 0. Sea
λ =
λ1...
λk
0...
0
.
Construya los siguientes vectores d1,d2 con α > 0 suficientemente pequeno tal
27
que
d1 = d+ αλ,
d2 = d− αλ
son no negativas. Note que
Ad1 = Ad+ αAλ = 0 + α∑k
i=1 λiai = 0
y de manera similar Ad2 = 0. Observe que de lo anterior y de la Proposicion 3
d1, d2 son direcciones de P . Ademas, d1, d2 son direcciones distintas (α > 0 y
λ 6= 0) tal que d =1
2d1 +
1
2d2 lo cual es una contradiccion; pues d es direccion
extrema.
Por tanto, a1, ..., ak son linealmente independientes. Claramente k ≤ m(rango
de A es m) entonces deben existir m − k vectores de entre el conjunto de los
vectores {ai; i = k + 1, ..., n, i 6= j} los cuales junto a a1, ..., ak formen un
conjunto de m-vectores linealmente independiente.
Defina, sin perdida de generalidad, B = [a1, ..., am] invertible. Ası
0 = Ad = [B,N ]d = Bd∗ + ajdj,
donde d∗ es un vector con las m primeras componentes de d.
Ademas, d∗ = −djB−1aj y por tanto el vector d es de la forma d=dj(−B−1aj
ej
).
Note que d ≥ 0 y dj > 0, B−1aj ≤ 0, y la prueba esta completa. Bazaraa,
Sherali y Shetty(2006).
Corolario 4. El numero de direcciones extremas de P es finita.
Teorema 9. (Teorema de Representacion [3]) Sea
P = {x; Ax = b, x ≥ 0},
no vacıo, donde A ∈ Mmxn(R) es de rango m y b ∈ Rm. Sean x1, ..., xk
puntos extremos de P y d1, ..., dl direcciones extremas de P. Entonces x ∈ P
28
si y solo si x se puede escribir como
x =k∑i=1
λixi +l∑
i=1
µidi
k∑i=1
λi = 1 (1.20)
λi ≥ 0 i = 1, ..., k (1.21)
µi ≥ 0 i = 1, ..., l. (1.22)
Corolario 5. (Existencia de direcciones extremas [3]) Sea
P = {x ∈ Rn : Ax = b,x ≥ 0}
no vacıo, donde A ∈Mmxn(R) es de rango m. Entonces P tiene al menos una
direccion extrema si y solo si este no es acotado.
Demostracion. (=⇒) Sea d una direccion extrema en P , se demostrara P no
acotado. Puesto que d es direccion entonces
{x0 + λd;λ ≥ 0,x0 ∈ C}
pertenece a P . Note que este conjunto es de cardinalidad infinita por el valor
de λ ≥ 0,
lımλ→∞‖x0 + λd‖ =∞
por lo tanto C no puede ser acotado, pues contiene un conjunto no acotado.
(⇐=) Suponga que P no es acotado y no posee direcciones. Entonces, no
posee direcciones extremas tampoco, usando el Teorema 9, todo punto x ∈ P
puede escribirse de la forma x =∑k
i=1 λixi para algunos λi ≥ 0, i = 1, ..., k,∑ki=1 λi = 1.
Por la desigualdad triangular
‖x‖ = ‖∑k
i=1 λixi‖ ≤∑k
i=1 λi‖xi‖ ≤∑k
i=1‖xi‖ <∞,
para cualquier x ∈ P . Lo que contradice P no acotado y se concluye la
29
demostracion. Bazaraa, Sherali y Shetty(2006).
Considere el siguiente problema de PL
mın z = cx
sujeto a Ax = b
x ≥ 0,
donde A ∈Mmxn(R), b ∈ Rm y x, c ∈ Rn.
Se cumplen los siguientes teoremas:
Teorema 10. [2] La coleccion de puntos extremos correspondientes a la
coleccion de soluciones basicas factibles, y ambos son no vacıas, siempre que la
region factible sea no vacıa.
Teorema 11. [2] Suponiendo que la region es no vacıa, una solucion optima
finita existe si y solo si cdj ≥ 0 para j = 1, 2, ..., l, donde d1, ..., dl son las
direcciones extremas de la region factible. De otro modo, la solucion optima es
no acotada.
Teorema 12. [2] Si una solucion optima existe, entonces un punto extremo
optimo(o equivalentemente una solucion basica factible) existe.
3.2. Mejoramiento de una solucion basica factible.
Suponga A ∈ Mmxn(R) de rango m, el conjunto region factible no vacıo y
consideremos el siguiente problema de PL
mın z = cx
sujeto a Ax = b
x ≥ 0,
donde b ∈ Rm y x, c ∈ Rn.
Supongase que el problema anterior de PL tiene una solucion basica factible(B−1b
0
), dondeA se puede descomponer de la forma [B,N ] y de manera similar
30
c = (cB, cN ). El valor de la funcion objetivo es
z0 = c
(B−1b
0
)= (cB, cN )
(B−1b
0
)= cBB
−1b. (1.23)
Ahora, sea x =(xB
xN
)una solucion factible arbitraria, se tiene que
b = Ax = [B,N ]
(xB
xN
)= BxB +NxN ,
xB = B−1b−B−1NxN , (1.24)
xB, xN ≥ 0. (1.25)
El valor de la funcion objetivo para este vector es
z = cx = (cB, cN )
(xB
xN
)= cBxB + cNxN
= cB(B−1b−B−1NxN ) + cNxN
= cBB−1b+ (cN − cBB−1N )xN
= z0 − (cBB−1N − cN )xN
= z0 −∑j∈R
(cBB−1aj − cj)xj,
donde R es el conjunto de ındices de las variables no basicas. Si se denota
zj = cBB−1aj , ∀j ∈ R, se tiene
z = z0 −∑j∈R
(zj − cj)xj, (1.26)
es claro que el valor de funcion objetivo decrecera si zj − cj > 0, en este caso
sera mas ventajoso fijar cada variable no basica xj en cero, excepto una variable
no basica xk tal que max{zj − cj > 0, j ∈ R} = zk − ck y el nuevo valor de la
funcion objetivo z es
z = z0 − (zk − ck)xk. (1.27)
31
Reescribiendo la ecuacion (1.24), se observa que cuando crece la variable no
basica la variable basica decrece
xB = B−1b−B−1akxk.
Denote yk = B−1ak y b = B−1b
xB = b− ykxk. (1.28)
Ahora se hallara el valor maximo que puede alcanzar xk. Denote por xBi, bi,
yik a la coordenada i-esima del vector xB, b y yk, respectivamente.
1. Para los valores yik negativos, entonces xBicontinua siendo no negativa
y crece de acuerdo a cuanto crezca xk. En este caso el valor de la funcion
objetivo no es acotado.
2. Para los valores yik > 0, se puede ir incrementando xk hasta que el primer
xBise anule; para que conserve la condicion de no negatividad. Es decir,
xk = mın1≤i≤m
{biyik
; yik > 0
}(1.29)
Si supone que el mınimo se alcanza en la posicion r-esima xk =bryrk
. En
el caso no-degenerado br > 0, se sigue que xk > 0 y se observa de la
ecuacion 1.27 z < z0, lo cual mejora la funcion objetivo. En particular,
xBr = br −bryrk
yrk = 0, en tal caso la variable xk entra a la base y xbr
sale. Note que las columnas aB1 , aB2 ,..., aBr−1, ak, aBr+1
,..., aBm son
linealmente independientes ya que yrk 6= 0.
Tomado del libro de Bazaraa y Jarvis(1977).
32
Interpretacion de las entradas y salidas de la base (economica).
Interpretacion de zk − ck.
Los valores zk − ck se denominan costes reducidos, estos miden el cambio que
se produce en el valor de la funcion objetivo cuando se aumenta unitariamente
el valor de las variables no-basicas. Por tanto:
1) Si zk − ck > 0, el costo de aumentar en una unidad xk es ck. En la
ecuacion 1.27 se observa que si aumentamos en una unidad xk, el valor
de la funcion objetivo decrece en zk − ck y como consecuencia se obtiene
una mejorıa.
2) Si zk − ck < 0, al aumentar el valor xk en 1.27 el valor de la funcion
objetivo no mejora.
3) Si zk − ck = 0 el valor de la funcion objetivo no varıa.
Supongase, en particular que xk = xBt la variable basica t-esima, ademas se
tiene ck = cBt y ak = aBt . Entonces zk = cBB−1ak = cBB
−1aBt , observe
B−1aBt es un vector unitario en la t-esima posicion. Por tanto, zk = cBt , es
decir zk − cBt = cBt − cBt = 0.
Tomado del libro de Bazaraa y Jarvis(1977).
3.3. Formato tableau del Metodo Simplex.
Suponga que se inicializa con una base xB correspondiente a un punto extremo
inicial. La funcion objetivo y restricciones se pueden escribir como:
z − cx = z − cBxB − cNxN = 0, (1.30)
Ax = BxB −NxN = b. (1.31)
De la ecuacion (1.31), xB = B−1b −B−1NxN y reemplazando en (1.30) se
obtiene z − cBb+ (cBB−1N − cN )xN = 0, donde b = B−1b.
Las operaciones anteriores pueden organizarse en la tabla 1.1, la cual se
33
denomina tableau. Se le conoce como el vector de costos reducidos al vector
cN − cBB−1N .
La tableau 1.1 contiene la informacion necesaria para iniciar el metodo simplex.
z xB xN LD
z 1 0 cBB−1N − cN cBb
xB 0 I B−1N b
Tabla 1.1: Tableau inicial.
1. Si cBB−1N − cN ≤ 0, el punto extremo actual es el optimo y se termina
el proceso; caso contrario, seleccionar una variable no basica con valor
positivo cBB−1aj − cj en la fila de la funcion objetivo.
2. Si B−1aj ≤ 0, el problema es no acotado y el proceso termina, de otro
modo yj = B−1aj 6≤ 0, determine el ındice r como sigue
mın1≤i≤m
{biyij
; yij > 0
}=
bryrj≥ 0, (1.32)
donde yij y bi son las componentes ith de yj y b, respectivamente.
Actualizar la tableau y pivotear sobre yrk. Actualizar las variables basicas
y no basicas donde xk entra a la base y bBr sale de la base, se vuelve al
paso 1.
3.4. Condiciones de Kuhn-Tucker para las restricciones de
desigualdades.
Teorema 13. [2] El punto x ∈ Rn es el optimo del siguiente problema de
programacion lineal
mın z = cx
sujeto a Ax = b
x ≥ 0,
34
donde A ∈Mmxn(R), b ∈ Rm y c ∈ Rn, si y solo si existen vectores y ∈ Rm,
v ∈ Rn tal que:
Ax ≥ b, x ≥ 0, (factibilidad del problema primal)
c−ATy − v = 0, y ≥ 0, v ≥ 0, (factibilidad del problema dual)
(Ax− b)Ty = 0, vx = 0. (holguras complementarias)
4. Dualidad y sensibilidad
La teorıa de dualidad asegura que asociado a cada problema de PL se
tiene otro problema de PL llamado problema dual (PD), con el cual
conserva propiedades y relaciones importantes. El problema lineal original se
denominado problema primal (PP).
A continuacion algunas relaciones entre el problema primal y el problema dual:
Si el problema primal es de maximizacion, su correspondiente problema
dual es de minimizacion. De manera, analoga si el problema primal es
de minimizacion, su correspondiente problema dual es un problema de
maximizacion.
El numero de variables en el problema dual es el mismo numero de
restricciones en el problema primal.
El numero de restricciones en el problema dual es el mismo numero de
variables en el problema primal.
Los coeficientes de costo del problema primal son los terminos
independientes en las restricciones del problema dual.
Los terminos independientes en las restricciones del programa primal son
los coeficientes de costo del problema dual.
La matriz del problema dual es la transpuesta de la matriz del problema
primal.
35
La tabla 1.2 resume la relacion del problema primal con el dual, respecto
al signo de las variables y el sentido de las restricciones.
PROBLEMA DE MINIMIZACION PROBLEMA DE MAXIMIZACION
Restricciones Variables≥ ≥0= irrestricta≤ ≤0
Variables Restricciones≥0 ≤
irrestricta =≤0 ≥
Tabla 1.2: Tabla de Tucker.
Lema 1. [2]El dual del dual es el primal. 1
Demostracion. Considere el programa lineal dual dado de la forma:
(PD) max bTy
sujeto a ATy ≤ c
y ≥ 0,
transformando este problema, aplicando los fundamentos algebraicos, se tiene:
mın−bTy
sujeto a −ATy ≥ −c
y ≥ 0.
El problema dual asociado al problema anterior esta dado por:
max−cTx
sujeto a −Ax ≤ −b
x ≥ 0,
1Por notacion y evitar confusiones en el (PP) y (PD), se colocara “T” en el vector decostos para representar su transpuesta.
36
que a su vez es equivalente a:
(PP ) mın cTx
sujeto a Ax ≥ b
x ≥ 0,
que es el programa primal del programa dual PD.
4.1. Relaciones primal-dual.
La definicion del programa lineal dual que se uso, utiliza la relacion entre los
programas lineal dual y primal.
Relacion entre los valores objetivos.
Lema 2. [2] El valor de la funcion objetivo, para cualquier solucion factible
del problema de minimizacion, es siempre mayor o igual que el valor de la
funcion objetivo para cualquier solucion factible del problema de maximizacion.
En particular, el valor objetivo de cualquier solucion factible del problema
de minimizacion da una cota superior del objetivo optimo del problema de
maximizacion. Analogamente, el valor objetivo de cualquier solucion factible del
problema de maximizacion es una cota inferior del objetivo optimo del problema
de maximizacion.
Demostracion. Considere el siguiente problema lineal primal:
mın cTx
sujeto a Ax ≥ b
x ≥ 0,
37
y el siguiente su programa dual asociado:
max bTy
sujeto a ATy ≤ c
y ≥ 0.
Sean x0, y0 soluciones factibles del programa primal y dual, respectivamente;
se tiene Ax0 ≥ b, x0 ≥ 0, ATy0 ≤ c y y0 ≥ 0.
Si se multiplica Ax0 ≥ b por y0T ≥ 0 y (ATy0)T ≤ cT por x0 ≥ 0, se obtiene:
y0TAx0 ≥ yT
0 b =⇒ (Ax0)Ty0 ≥ bTy0,
(ATy0)Tx0 ≤ cTx0 =⇒ (Ax0)Ty0 ≤ cTx0.
Por tanto,
cTx0 ≥ (Ax0)Ty0 ≥ bTy0.
Tomado del libro de Bazaraa y Jarvis(1977).
Corolario 6. [2] Si x0 y y0 son soluciones factibles para el problema dual y
primal tal que cTx0 = bTy0, entonces x0 y y0 son soluciones optimas de sus
respectivos problemas.
Corolario 7. [2] Si cualquier problema tiene un valor objetivo no acotado,
entonces el otro problema no posee solucion factible.
Lema 3. [2] Si uno de los problemas posee una solucion optima, entonces ambos
poseen soluciones optimas y los dos valores objetivos optimos son iguales.
La prueba de este lema se obtiene a partir de las condiciones de optimalidad
de Kuhn-Tucker.
Teorema 14. (Teorema fundamental de dualidad [2]) Con respecto a
los problemas de programacion lineal primario y dual, exactamente una de las
siguientes proposiciones es cierta.
1. Ambos problemas tienen soluciones optimas x∗ y y∗, con cTx∗ = bTy∗.
38
2. Uno de los dos problemas tiene valor objetivo no acotado, en cuyo caso
el otro problema debe ser no factible.
3. Ambos problemas son no factibles.
Considerese, al referirse a optimo significa optimo finito, y no acotado significa
tener optimo no acotado. Del Teorema anterior podemos decir:
PP optimo ⇐⇒ PD optimo.
PP no acotado =⇒ PD no factible.
PD no acotado =⇒ PP no factible.
PP no factible =⇒ PD no acotado o no factible.
PD no factible =⇒ PP no acotado o no factible.
Teorema 15. (Teorema debil de holgura complementaria [2]) Si x∗
y y∗ son puntos optimos cualesquiera de los problemas primario (PP) y
dual(PD), respectivamente.
(PP ) mın cTx (PD) max bTy
sujeto a Ax ≥ b sujeto a ATy ≤ c
x ≥ 0. y ≥ 0.
Entonces, (c−ATy∗)Tx∗ = 0 y (Ax∗ − b)Ty∗ = 0.
4.2. Interpretacion economica del dual.
Considere el siguiente problema primal y su problema dual asociado:
(PP ) mın cTx (PD) max bTy
sujeto a Ax ≥ b sujeto a ATy ≤ c
x ≥ 0. y ≥ 0.
39
Considere B es la base optima, x∗ =(B−1b
0
)una solucion optima del PP y y∗
solucion optima del PD. Sea cTB el vector de costos basicos, entonces:
z∗ = cTBB−1b = bTy∗
(pues x∗ y y∗ son soluciones optimas), de lo cual se sigue
∂z∗
∂b= cBB
−1 = y∗.
La variable dual y∗i puede interpretarse como la razon de cambio de la funcion
objetivo cuando el termino i-esimo del vector independiente del PP es sometido
a pequenos cambios. Una interpretacion de esto puede ser, y∗i indica la cantidad
maxima que se esta dispuesto a pagar por aumentar la cantidad del i-esimo
recurso (vector independiente). Se suele referir a y∗ como un vector de
precios sombra para el vector del lado derecho.
4.3. Analisis de sensibilidad.
En el analisis de sensibilidad se busca determinar en que rango la variacion de
los parametros afecta el comportamiento en la solucion optima.
Considere el siguiente problema lineal
mın cx
sujeto a Ax = b (1.33)
x ≥ 0.
Algunos de las variaciones en el problema pueden ser:
Variacion en el vector de costos c.
Variacion en el vector del lado derecho b.
Variacion en la matriz de restricciones A.
Introduccion de una nueva actividad.
40
Introduccion de una nueva restriccion.
Variacion en el vector de costos c
Considere una solucion optima de 1.33 y suponga que se modifica el vector
de costos en un(o mas) coeficiente ck por uno c′k. Esta modificacion puede
ocasionar perdida de factibilidad dual.
Considere los siguientes casos:
Caso I: Variacion del coeficiente en la funcion objetivo de una variable no basica.
Sea xk una variable no basica. Note que, zj = cBB−1aj no varıa, ∀j y
zk − ck ≤ 0, pues el punto actual es el optimo.
Reemplazando ck por c′k, se tiene zk − c′k = (zk − ck) + (ck − c′k), si es
positivo se continua con el metodo de simplex modificando ck por c′k en
la ultima tableau, caso contrario la solucion dada sigue siendo la optima
para el nuevo problema.
Caso II: Variacion del coeficiente en la funcion objetivo de una variable basica.
Si xk es una variable basica, por ejemplo xk ≡ xBt y reemplazando cBt
por c′Bt. Si el nuevo valor de zj es z′j, entonces
z′j − cj = c′BB−1aj − cj = c′Byj − cj
= cByj − cj + (0, 0, ..., c′Bt− cBt , 0, ..., 0)yj
= (zj − cj) + (c′Bt− cBt)ytj,∀j. (1.34)
En particular, si j = k entonces zk − ck = 0 y ytk = 1 (mırese la
interpretacion de las entrada y salida de la base), lo cual implica en la
ecuacion (1.34) que z′k − c′k = 0. Por tanto, se puede actualizar el reglon
de costos sumando el reglon original de costo y el reglon t actual de la
tableau final por el producto del cambio neto en el costo de xBt ≡ xk.
Entonces se actualiza de z′k − ck a z′k − c′k = 0, en el proceso se obtiene
41
un nuevo valor objetivo
c′BB−1b = cBB
−1b+ (c′Bt− cBt)B
−1b
= cBB−1b+ (c′Bt
− cBt)bt.
Variacion en el vector del lado derecho b
Suponga que se cambia de vector b a b′ entonces se reemplaza B−1b por
B−1b′ y la optimalidad se puede ver afectada en el nuevo vector pues alguna
componente podrıa ser negativa. Se tiene los siguientes casos:
Si B−1b′ ≥ 0, la solucion actual aun es optima y los valores de las
variables basicas son B−1b y el valor objetivo cBB−1b′.
Si B−1b′ � 0, se aplica el algoritmo Simplex dual pues los costos
reducidos no han sufrido variacion y entonces la tableau final presenta
una solucion no factible (PP) y dual factible.
Variacion en la matriz de restricciones A
En este caso se tiene dos posibilidades que la columna que cambie sea no basica
o no basica.
Caso I Variacion en vectores de actividades para columnas no basicas.
Suponga que se cambia la columna aj por a′j, entonces se tiene B−1a′j y
z′j − cj = cBB−1a′j − cj.
• Si z′j − cj ≤ 0, la solucion anterior es la optima.
• Si z′j − cj es positivo, se actualiza la columna j en la tableau,
introduciendo la variable xj no basica y se continua con el metodo
simplex.
Caso II Variacion en vectores de actividades para columnas basicas.
Suponga que se cambia la columna aj por a′j. Este cambio puede afectar
considerablemente al problema pues el conjunto actual de vectores basicos
puede no formar una base.
Supongase que se enumera de 1 a m las columnas basicas y que se cambia
42
en la columna basica j, aj por a′j. Sea B−1 la base inversa actual y
calculemos y′j = B−1a′j , entonces se tiene las siguientes posibilidades:
• Si y′jj = 0, el conjunto de vectores actual no es linealmente
independiente.
• Si y′jj 6= 0, se considera a este valor como pivote y se puede
reemplazar la columna j, la cual es comunmente un vector unitario
por y′j . La base presente continua siendo base, si la factibilidad
primal o dual no fuera posible, se recurre a algunas tecnicas primal
o dual de variables artificiales para su resolucion
Introduccion de una nueva actividad
Supongase que se desea anadir una nueva actividad xn+1 con costo cn+1 y
considere la columna de consumo an+1 para la produccion. La variable xn+1
puede no afectar a la optimalidad del problema y en cuyo caso es una variable
no basica, caso contrario debe ingresar a la base.
Introduccion de una nueva restriccion
Suponga se quiere anadir una nueva restriccion al problema (1.33). Para el
optimo del nuevo problema se tiene lo siguiente:
Si el optimo actual satisface la nueva restriccion, entonces tambien es
optimo del nuevo problema.
Si el optimo actual no satisface la nueva restriccion, se puede usar el
metodo dual simplex para encontrar el nuevo optimo.
Tomado del libro de Bazaraa y Jarvis(1977).
4.4. Analisis parametrico.
En el analisis parametrico se hallan soluciones optimas a lo largo de una
direccion fija en una clase de problemas perturbados en el vector objetivo o en
el vector del lado derecho. En este trabajo se analizara solo la parametrizacion
del vector de costos.
43
Perturbacion del vector de costos
Considere el siguiente problema lineal
mın z = cx
sujeto a Ax = b
x ≥ 0.
Supongase B una base optima y considere el problema perturbado
mın z = cx+ λc′x
sujeto a Ax = b (1.35)
x ≥ 0, λ ≥ 0.
Descomponiendo A en [B,N ], c en (cB, cN ) y c′ en (c′B, c′N ), aplicando esta
descomposicion en el problema (1.35)
z − cx− λc′x = z − (cB + λc′B)xB − (cN + λc′N )xN = 0 (1.36)
Ax = BxB +NxN = b (1.37)
Actualizando la tableau y denotando z′j = c′BB−1aj = cByj .
De la ecuacion (1.37) xB = B−1b−B−1NxN , esto en la ecuacion (1.36)
z − (cB + λc′B)xB − (cN + λc′N )xN = 0
z − (cB + λc′B)(B−1b−B−1NxN )− (cN + λc′N )xN = 0
z + cBB−1NxN − cNxN + λc′BB
−1NxN − λc′NxN = cBB−1b+ λc′BB
−1b
z +∑j∈R
[(zj − cj) + λ(z′j − c′j)]xj = cBb+ λc′Bb
y
xB +∑j∈R
yjxj = b,
44
donde R es el conjunto de ındices asociados a las variable no basicas.
Si λ = 0 el problema coincide con el problema original y su solucion basica
factible optima se mantiene.
Interesa mantener la optimalidad si se mueve la direccion c′. Sea
S = {j; z′j − c′j > 0}
1. Si S = ∅, entonces para todo λ ≥ 0 la solucion actual es la optima.
2. Caso contrario, calcule
λ = mınj∈S
{−(zj − cj)z′j − c′j
}=−(zk − ck)z′k − c′k
• Sea λi = λ.
• Para λ ∈ [λi, λi](iteramos desde i=1, empezando con el intervalo
[0, λ1], ası sucesivamente) la solucion actual es optima y su valor
objetivo este dado por cBb+ λc′Bb.
• Para λ ∈ [λi, λi] se reemplaza (zj − cj) + λ(z′j − c′j) en los precios
sombra de la tableau de simplex.
• Para λ = λi, xk se introduce en la base.
• Luego se actualiza la tableau con el nuevo valor de λ.
• Se vuelve al paso 1.
Tomado del libro de Bazaraa y Jarvis(1977).
5. El problema de asignacion
El problema de asignacion es uno de los problemas de estructura particular que
se expresa con la ayuda de la teorıa de grafos. Es una variacion del problema
del problema de transporte que consiste en asignar m orıgenes a m destinos.
El modelo matematico para el problema de asignacion usa variables de decision
45
binaria:
xij =
1, si se asigna i para realizar la actividad j ,
0, caso contrario.
para todo i = 1, ...m y j = 1, ...,m.
Si z es el coste total que deseamos minimizar el problema de asignacion es
mın z =m∑i=1
m∑j=1
cij xij
sujeto a
m∑j=1
xij = 1, i = 1, ...,m
m∑i=1
xij = 1, j = 1, ...,m
xij = {0, 1}, para toda i y j.
46
CAPITULO 2
Metodologıa
En este capıtulo se presenta el modelo general definido para semestres fijos,
entendiendose como tal el periodo lectivo 2016-2017, se han trabajado con las
restricciones debiles y fuertes para presentar el horario de docentes con los
requerimientos de la institucion.
1. Formulacion del modelo general
Parametros
a=numero de materias de las areas de matematicas que se dictan por semestre
en cada carrera.
d=numero de docentes.
m=numero de materias.
r=numero de salas.
z=numero de horas de clases en el dıa.
Indices
En la tabla siguiente se encuentra los ındices relacionados con las variables que
se consideraran al plantear el modelo del problema.
Tabla 2.1: Indices
Indice Significado
i ındice de docente
j ındice de materia
k ındice de hora de clase
l ındice de sala
47
1.1. Variables de decision.
Las variables de decision son binarias:
xijkl =
1, si se asigna el docente i para dictar la materia j,
en la sala l a la hora de clase k.
0, caso contrario.
para todo i ∈ {1, ..., d}, j ∈ {1, ...,m}, k ∈ {1, ..., z}, l ∈ {1, ..., r}.
1.2. Formulacion matematica de las restricciones.
1. Las materias de un mismo semestre no se deben dictar en la misma hora
k de clases.r∑l=1
m∑j=1
d∑i=1
xijkl ≤ 1, k ∈ {1, 2, ..., z}.
2. Cada docente i se le debe asignar una materia j, una sala l en una hora
de clases k.
r∑l=1
m∑j=1
xijkl ≤ 1, i ∈ {1, 2, ..., d}, k ∈ {1, 2, ..., z}.
3. A cada materia j se le asigna a lo mas un sala l en una hora de clases k.
r∑l=1
d∑i=1
xijkl ≤ 1, j ∈ {1, 2, ...,m}, k ∈ {1, 2, ..., z}.
4. A cada sala l se le asigna a lo mas un materia j en una hora de clases k.
m∑j=1
d∑i=1
xijkl ≤ 1, k ∈ {1, 2, ..., z}, l ∈ {1, 2, ..., r}.
48
5. Cada materia j tienen un numero de horas semanales Ej.
r∑l=1
z∑k=1
d∑i=1
xijkl = Ej, j ∈ {1, 2, ...,m}.
6. Cada docente i tienen carga horaria Di semanal.
r∑l=1
z∑k=1
m∑j=1
xijkl = Di, i ∈ {1, 2, ..., d}.
1.3. Funcion objetivo
Maximizar la asignacion de los docentes a una determinada materia y horario
de clases, donde la materia tiene asignada una determinada sala.
max z =r∑l=1
z∑k=1
m∑j=1
d∑i=1
cijklxijkl
2. Modelo particular
2.1. Recoleccion de datos.
Se abordara el problema de asignacion de horarios en el caso particular de un
campus de la escuela de matematica de una Institucion de Educacion Superior.
La escuela de matematica se hace cargo de las areas de calculo y algebra,
estadıstica, fısica, geometrıa y matematica.
Cada semestre se lleva a cabo la programacion horaria en la escuela de
matematicas tomando en cuenta las materias que se dictan (algunas se dictan
de manera comun entre las carreras), docentes y su disponibilidad horaria,
horas de clase por carrera, numero y capacidad (o recursos especıficos) de la
sala (aulas, laboratorios y talleres). La programacion horaria se realiza dentro
de un marco de 5 dıas y 7 sesiones diarias(horas clase diarias). El numero de
materias de las areas de matematicas que se dictan por semestre en cada carrera
49
oscilan de 0 a 2.
Figura 2.1: Codificacion del dıa y la hora de clase.
La escuela de matematicas se encarga de 35 materias con un promedio de 242
paralelos por semestre. En el campus que se realizara la planificacion horaria
se dictan 23 materias. Las materias tienen una codificacion asignada por la
institucion y escuela; se dictan en un rango de 2 a 6 horas semanales.
Figura 2.2: Numero de materias y paralelos.
50
Las salas disponibles del campus son 2 laboratorios, 17 aulas.
Figura 2.3: Informacion salas.
La escuela de matematicas cuenta con 16 docentes que seleccionan la franja
horaria de acuerdo a su disponibilidad y pueden dictar de 2 a 18 horas de
clases semanales. El personal academico se divide en dos clases de acuerdo a
la cantidad de horas semanales que dedican al trabajo, 40 tiempo completo y
menos de 20 tiempo parcial. La escuela cuenta con una nomina de 6 docentes
tiempo parcial y 10 a tiempo completo. Los docentes de tiempo parcial imparten
de 2 a 10 y los de tiempo completo de 16 a 18 horas de clases.
Figura 2.4: Carga horaria mınima, maxima y numero de docentes por tiempo
de dedicacion .
51
3. Formulacion verbal y matematica del modelo
Se genera dos modelos de optimizacion que funcionan secuencialmente para
resolver el problema general.
3.1. Modelo docente-materia
El siguiente modelo asigna a un docente el paralelo de una materia ademas, se
controla la carga horaria de cada docente y el numero de horas semanales que
se dicta una materia.
Variables de decision.
Las variables de decision son binarias:
xij =
1, si se asigna el docente i para dictar la materia j en un determinado paralelo,
0, caso contrario.
para todo i ∈ {1, ..., 16}, j ∈ {1, ..., 23}.
En la asignacion de horarios de la escuela de matematicas se debe cumplir con
las restricciones fuertes y debiles impuestas.
Restricciones fuertes.
A cada docente i se le debe asignar una materia j
23∑j=1
xij ≤ 1, i ∈ {1, 2, ..., 16}.
No se debe sobrepasar, ni disminuir las horas en que una materia es
dictada.16∑i=1
xij = Ej, j ∈ {1, 2, ..., 23}.
Ej=numero de horas semanales que se dicta la materia j.
52
Respetar la carga horaria de cada docente.
23∑j=1
Hjxij = Di, i ∈ {1, 2, ..., 16}.
Hj=horas semanales que se dicta las materia j.
Di=numero de horas semanales que dicta clases el docente i, segun su
categorıa.
Tiempo parcial Di ∈ {2, ..., 10},
Tiempo completo Di ∈ {16, 18}.
Para asignar una materia a un docente se debe tener en cuenta su formacion
academica pues determina la funcion objetivo del problema en este modelo.
Funcion objetivo
Minimizar la asignacion de los docentes a una materia en un determinado
paralelo.
mın z =23∑j=1
16∑i=1
cijxij
3.2. Modelo materia-sala y hora.
El modelo asigna una sesion de clases, una sala a una materia.
Variables de decision.
Las variables de decision son binarias:
xjkl =
1, si se asigna una hora de clases k en una sala l para
dictar la materia j.
0, caso contrario.
para todo j ∈ {1, ..., 23}, k ∈ {1, ..., 7} y l ∈ {1, ..., 19}.
53
Requerimientos de la escuela de matematicas.
No se debe producir choques horarios entre materias del mismo nivel
(semestre).19∑l=1
23∑j=1
xjkl ≤ 1, k ∈ {1, 2, ..., 7}.
A cada materia j se le debe asignar una sala l en una sesion k.
19∑l=1
xjkl ≤ 1, j ∈ {1, 2, ..., 23}, k ∈ {1, 2, ..., 7}.
Una sala no puede ser designado a dos o mas materias en una hora de
clases.23∑j=1
xjkl ≤ 1, k ∈ {1, 2, ..., 7}, l ∈ {1, 2, ..., 19}.
3.3. Funcion objetivo
Minimizar la preferencia de los docentes (ya que en el modelo anterior se
asigno un docentes a materias) con respecto a las sesiones k de clases diarias.
mın z =19∑l=1
7∑k=1
23∑j=1
cjklxjkl
La suma de la optimizacion de todas las funciones objetivos da como resultado
la optimizacion de la funcion general por el principio de optimizacion de
Bellman. 1
1An optimal policy has the property that whatever the initial state and initial decisionsare, the remaining decisions must constitute an optimal policy with regard to the stateresulting from the first decisions.(Richard Bellman, 1954). Una polıtica optima es la masventajosa secuencia de decisiones de acuerdo con un criterio predefinido.
54
CAPITULO 3
Implementacion
Para realizar la implementacion del modelo matematico se realizo una
aplicacion de escritorio, para lo cual se utilizo las siguientes herramientas
informaticas:
• MATLAB: Software matematico lanzado al mercado en 1984, la
ultima version en el mercado es R2017a y se encuentra disponible para
diferentes plataformas de hardware. Permite analizar y procesamiento
de datos, desarrollar algoritmos, visualizacion y representacion de
graficos o crear modelos, ademas de contar con su propio lenguaje
de programacion. Matlab puede ser descargado de su pagina oficial
MathWorks, www.mathworks.com/products/matlab.html.
• MySQL: Sistema de administracion de base de datos, con licencia
comercial o libre(para codigo abierto). Puede ser usado en cualquier
plataforma informatica, la ultima version disponible es 5.7.19 que se
encuentra para su descarga en la pagina, dev.mysql.com/.
• NetBeans IDE: Herramienta de programacion que permite escritura,
depuracion, complicacion y ejecucion de programas; con licencia
libre(codigo abierto) y gratuita, ejecutable en diversas plataformas. Sirve
para realizar aplicaciones de escritorio, moviles, web Java y HTML5 con
HTML. La version Netbeans IDE 8.2 se encuentra disponible en la pagina,
netbeans.org.
Para realizar un ejemplo se utilizo Classic LINDO version 6.1. un producto
de LINDO Systems, que es un programa de uso sencillo que permite resolver
problemas de programacion lineal, entera, no lineal, estocastica y global;
55
se encuentra en descarga libre como version de prueba en la pagina oficial
www.lindo.com.
1. Tablas
Los datos que se usan en el modelo se almacenan en las siguientes tablas:
• Tabla de Career: Contiene la informacion de las carreras que estan en
el campus seleccionado de la escuela de matematicas: codigo, nombre y
numero de semestres.
Figura 3.1: Tabla Career en MySQL.
Figura 3.2: Datos de la tabla Career.
• Tabla Day: Incluye una clave primaria idDay, el nombre del dıa de la
semana, nameDay y statusDay para mostrar los dıas laborables con la
letra A y no laborables I.
Figura 3.3: Tabla Day en MySQL.
56
Figura 3.4: Datos de la tabla Day.
• Tabla Hour: Indica la duracion, hora de inicio y finalizacion de
cada sesion de clases con los campos duration, sinceHour y untilHour,
respectivamente.
Figura 3.5: Tabla Hour en MySQL.
Figura 3.6: Datos de la tabla Hour.
• Tabla Capacity: Esta tabla contiene el numero de docentes segun su
tiempo de dedicacion con sus respectivas horas maximo y mınimo que
emplea para dictar clases.
57
Figura 3.7: Tabla Capacity en MySQL.
Figura 3.8: Datos en la tabla Capacity.
• Tabla TimePreference: Presenta los campos sinceHour, untilHour y
type que son los horarios que se puede elegir un docente para dictar su
clase segun su tiempo de dedicacion.
Figura 3.9: Tabla TimePreference en MySQL.
La escuela tiene cuatro horarios disponibles para los docentes segun su
tiempo de dedicacion como se observa en el cuadro siguiente:
Figura 3.10: Datos en la tabla TimePreference.
58
• Tabla ClassRoom: Detalla los parametros codigo, capacidad y tipo
de salones de clase identificados como capacityClasroom, typeClassRoom,
codClassRoom, respectivamente.
Figura 3.11: Tabla ClassRoom en MySQL.
Figura 3.12: Datos de la tabla ClassRoom.
• Tabla Matter: Esta comprendida del nombre, numero de horas
semanales, numero de paralelos y semestre en que se dicta la materia.
Figura 3.13: Tabla Matter en MySQL.
59
Figura 3.14: Datos de la tabla Matter.
• Tabla Teacher: Almacena la identificacion, nombre y preferencia horaria
del docente.
Figura 3.15: Tabla Teacher en MySQL.
Figura 3.16: Datos de la tabla Teacher.
• Tabla Academictraining: Lista los tıtulos academicos y el nivel de
educacion de los docentes.
60
Figura 3.17: Tabla AcademicTrainning en MySQL.
Figura 3.18: Datos de la tabla AcademicTraining.
• Tabla ScoreAcademicTraining: Puesto que la asignacion se hara de
acuerdo a una puntuacion, se coloca esta tabla en la que se evaluara los
tıtulos de los docentes con respecto a las areas que tiene la escuela.
Figura 3.19: Tabla ScoreAcademicTraining en MySQL.
• Tabla Parallel: Incluye el codigo asignado al paralelo que se identifica
como idParallel, junto a la capacidad y el semestre que pertenece el
mismo.
61
Figura 3.20: Tabla Parallel en MySQL.
• Tabla Area: Esta tabla contienen la clave primaria, nombre y codigo de
area.
Figura 3.21: Tabla Area en MySQL.
Figura 3.22: Datos de la tabla Area.
• Tabla Timetable: Esta tabla detalla la informacion de cada sesion de
clases: paralelo, dıa, hora, el numero de salas, la materia y nombre del
docente.
Figura 3.23: Tabla Timetable en MySql.
62
• Tabla MatterTeacher: Contiene el puntaje de un profesor para dictar
una materia, scoreMatterTeacher.
Figura 3.24: Tabla MatterTeacher en MySql.
2. Relaciones
El modelo relacional de las tablas de la seccion anterior, se muestra en la
siguiente imagen:
Figura 3.25: Relaciones entre las tablas.
63
Procedimiento General para la asignacion
Los siguientes pasos han sido implementados en la herramienta Netbeans y la
asignacion realizadas en Matlab.
1. Calificar a los docentes: Puesto que, es un problema de minimizacion
se puntuara al docente adecuado con el menor valor posible. El docente
se califica para dictar una materia en un paralelo segun, su formacion
academica. Se puntua de 0 a 3 la formacion academica.
2. Resultados del modelo: Se obtiene la asignacion simultanea del
docente a la materia, paralelo.
Observacion 4. En el caso en que un docente ya haya cumplido con su
carga horaria, en las siguientes calificaciones con respecto a la materia a
dictar se colocara la puntuacion 0.
3. Asignacion de materia a sesiones de clases: Se puntua como en el
item 1 tomando en cuenta los horarios de preferencia de los docentes para
dictar clases.
3. Casos Crıticos
1. Si hay mas materias que salas, en una hora determinada del dıa no se
puede realizar la asignacion completa, el programa mostrara el siguiente
mensaje:
Figura 3.26: Mensaje de salas.
Si hay mas materias que profesores, no se puede realizar la asignacion
completa, el programa mostrara el siguiente mensaje:
64
Figura 3.27: Mensaje de materias.
2. Si hay mas salas que materias, en una hora determinada del dıa, cualquier
asignacion en la que no se crucen las salas es factible.
4. Ejemplo Lindo
Para ejemplificar el procedimiento de la asignacion de horarios se utiliza el caso
del docente X211. Se realizan los siguientes pasos:
1. Calificar a los docentes: El docente se califica para dictar una materia
en un paralelo segun, su formacion academica. Se puntua de 0 a 7 la
formacion academica.
Por ejemplo: La materia Estadıstica con codigo E100 2 de la area 2,
tiene 3 paralelos y el docente X21 a tiempo completo, con formacion en
matematicas y al cual se le asigna una preferencia para impartir clases
en el horario de la manana.
Observacion 5. Los items 1., 2. y 3. inician con las materias del area
de estadıstica, pues son las que requieren de una formacion academica de
acuerdo a los contenidos.
2. Implementar el modelo: Desarrollar el modelo para implementar en
la herramienta LINDO 6.1.
1Debido a que los datos esta relacionados a nombres reales de docentes de la InstitucionSuperior, se colocara en su lugar la letra X seguido de un numero relacionado con lanumeracion de docente.
2En la Escuela de Matematicas se tiene mayor preferencia por usar los codigos de lasmaterias que su nombre
65
Figura 3.28: Modelo de la materia E100 en LINDO.
3. Resultados del modelo: Se obtiene la asignacion simultanea del
docente a la materia y al paralelo correspondiente. Generando el reporte
de LINDO se observa que, bajo la columna variable se encuentra el codigo
del docente seguido de un subındice que indica el paralelo. Si un docente es
asignado al paralelo de una materia en la columna value se puntua 1; caso
contrario 0. Siguiendo con el ejemplo anterior para la materia E100, se
asignan los paralelos 1, 2 y 3 a los docente X21, X1, X47; respectivamente.
Figura 3.29: Asignacion de los paralelos de la materia E100.
66
4. En este punto se asignan todas las materias que un docente dictara de
clases, en que paralelos y sedes, sin exceder el numero de horas permitidas
de catedra. En la siguiente figura se puede observar la asignacion de las
materias, paralelos(con hora de clase), sedes y numero de horas total
asignada al docente X21.
Figura 3.30: Asignacion de las materias, paralelos, sede y horas al docente X21.
Observacion 6. En el caso en que un docente ya haya cumplido con su
carga horaria, en las siguientes calificaciones con respecto a la materia a
dictar se colocara la puntuacion 0.
5. Asignacion de aulas, laboratorios y talleres: A una materia se
le asigna un recurso, de acuerdo a su capacidad y las caracterısticas
especıficas (laboratorio o taller). A continuacion, el proceso de asignar
los recursos a los paralelos de las materias en cada sede:
a. Se asignan los recursos mas escasos: talleres con capacidad de 22-30
alumnos y laboratorios de 25-30.
b. Las aulas tienen capacidad de 20 a 55 alumnos, tomando en cuenta
esto, se asignan primero los paralelos con mayor numero de alumnos.
c. Revisar que no existan coches en las asignaciones.
Por ejemplo, la materia Algebra paralelo 02 y codigo A164-02, tiene un
cupo disponible de 42 estudiantes y 3 horas de clases semanales. Se le
asigna para los dıas lunes, miercoles y viernes a la doceava hora el aula
67
142(capacidad 42 alumnos).
7. Generacion de los horarios de los docentes:En la figura siguiente
se muestra la salida de la informacion obtenida, que consta del codigo de
la materia, paralelo y sala con sede a dictarse:
Figura 3.31: Horario del docente X21.
Analisis de sensibilidad
Suponga que luego de haber realizado el proceso de asignacion se cambia alguna
calificacion a un docente entonces se desea conocer si esto afecta a la solucion
optima que se hallo, para ello en este trabajo se utilizo el analisis de sensibilidad.
El analisis de sensibilidad proporcionara un rango en el cual la solucion optima
se mantenga aunque el valor de la funcion cambie.
El programa LINDO entre sus opciones permite realizar un analisis de
68
sensibilidad en los resultados. El intervalo de sensibilidad se muestra en
las columnas allowable increase y allowable decrease y el valor original del
coeficiente de la variable en la funcion objetivo se encuentra en la columna
current coef.
69
CAPITULO 4
Conclusiones y recomendaciones
Conclusiones
A partir de los fundamentos teoricos de la programacion lineal, se tiene
una base solida, que sustenta el esquema teorico-practico desarrollado con
los datos mas significativos, obtenidos luego de un analisis previo.
Con el uso de la herramienta, se obtuvieron soluciones optimas,
relacionando la calificacion del docente y la materia a impartir.
Se asigno la mayor cantidad de docentes a materias a las que son mas
afines, lo cual ayuda a mejorar y mantener el nivel de educacion en la
escuela, esto cumpliendo la mayor cantidad de requerimientos impuestos.
La realizacion de una herramienta como la presentada ayuda a la
asignacion de horarios.
Se disminuye el uso de papel.
Recomendaciones
Realizar la resolucion del problema planteado en este trabajo con la
implementacion de otros algoritmos, por ejemplo, branch-and-bound,
Coloracion de Grafos, que ya se han utilizado para resolver este tipo de
problemas y que traen su propia complejidad computacional. Comparar
los resultados.
Realizar las mejoras necesarias para que el trabajo sea llevado a nivel
institucional.
70
BIBLIOGRAFIA
[1] AIZAM, N. A., UVARAJA, V. (2015). Generic Model for TimetablingProblems by Integer Linear Programming Approach. International Journalof Mathematical, Computational, Physical, Electrical and ComputerEngineering, 9 (12), 701-708.
[2] BAZARAA, M. S., JARVIS, J. J. (1977). Linear Programming and Networkflows. New York, USA: Wiley & Sons.
[3] BAZARAA, M. S., SHERALI, H. D., SHETTY, C. M. (2006). NonlinearProgramming: Theory and Algorithms (Tercera ed.). Hoboken, New Jersey,USA: John Wiley & Sons.
[4] BENALCAZAR, H. (2013). Algebra Lineal y Aplicaciones. Quito, Ecuador.Serie de Matematica Universitaria.
[5] BURKE, E. K., MARECEK, J., PARKES, A.J., RUDOVA, H. (2012). Abranch-and-cut procedure for the Udine Course Timetabling problem. AnnOper Res, 194, 71-87. doi:10.1007/s10479-010-0828-5
[6] CABALLERO, J. (2008). Asignacion de Horarios de Clases Universitariasmediante Algoritmos Evolutivos (Tesis Maestrıa). Recuperado dehttp://manglar.uninorte.edu.co/handle/10584/80
[7] FAIGLE, U., KERN, W., STILL, G. (2002). Algorithmic Principlesof Mathematical Programming (Vol. 24). (S. Netherlands, Ed.).Springer-Science+Business Media, B.V.
[8] ESQUIVEL, L. (2014). Modelo Matematico para la programacion deun horario escolar con milti-localizacion de docentes (Tesis Maestrıa enIngenierıa- Enfasis en Ingenierıa Industrial). Universidad del Valle, Santiagode Cali.
[9] FRANK, A. (2005). On Kuhn’s Hungarian Method—A tribute fromHungary. Naval Research Logistics, 52, 2–5. doi:10.1002/nav.20056
[10] FUENTE, J. L. (1998). Tecnicas de calculo para Sistemas de Ecuaciones,Programacion Lineal y Programacion Entera (Segunda ed.). Barcelona,Espana: Reverte.
[11] GUERRA, M., PARDO, E., SALAS, R. (2013). Problema del SchoolTimetabling y algoritmos geneticos: una revision. Vınculos, 10 (2), 259-275.
71
[12] HEREDIA, M. (2014). Modelo de programacion lineal entera para lageneracion de horarios de clase en la universidad (Tesis Pregrado). EscuelaPolitecnica Nacional, Quito, Ecuador.
[13] HITCHCOCK, F. L. (1941). The Distribution of a Product from SeveralSources to Numerous Localities. Journal of Mathematics and Physics, 20,224-230. doi: 10.1002/sapm1941201224
[14] KUHN, H. W. (1955). The Hungarian Method for the assignment problem.Naval Research Logistics, 2, 83–97. doi: 10.1002/nav.3800020109
[15] LARROSA, J., MESENGUER, P. (2003). RestriccionesBlandas: Modelos y Algoritmos. Inteligencia Artificial. RevistaIberoamericana de Inteligencia Artificial, 7 (20). Recuperado dehttp://www.redalyc.org/articulo.oa?id=92572006
[16] LIPSCHUTZ, S. (1992). Algebra Lineal(Segunda Ed.). Madrid, Espana:McGRAW-HILL.
[17] MEYER, R. M. (1979). Essential Mathematics for Applied Fields. NewYork, USA: Springer-Verlag.
[18] MORENO, P., SANCHEZ, J., GARCIA, A. (2007). Aplicacion detecnicas de enfriamiento lento al problema de planificacion de horarios.Ciencia, Tecnologıa y Medio Ambiente, V, 3-21. Recuperado dehttps://dialnet.unirioja.es/servlet/articulo?codigo=2596432
[19] OLIVA, C., RAMIREZ, G. (2013). Algoritmo de tipo busqueda tabu paraun problema de programacion de horarios universitarios vespertinos. IngeCuc, 9 (2), 58-65.
[20] PRAWDA, J. W. (2004). Metodos y Modelos de Investigacion deOperaciones (Vol. 1). Mexico, D.F., Mexico: Limusa.
[21] SHAERF, A. (1999). A Survey of Automated Timetabling. ArtificialIntelligence Review, 13 (2), 87–127.
[22] SRINIVASAN, S. (2011). Modeling the Homeschool timetablingproblem using Integer programming (Tesis Maestrıa). Recuperado dehttp://scholarscompass.vcu.edu/etd/2555/
[23] VANDERBEI, R. J. (2008). Linear Programming (Third ed.). New York,USA: Springer.
72
Anexos
73
Anexo
Instructivo de uso de la herramienta de trabajo del administrador
La elaboracion de este manual tiene como fin, explicar el funcionamiento de la
presentacion en pantalla de las soluciones optimas que han sido desarrolladas,
en cada reporte que nos despliega Matlab y que han sido trabajadas con
Netbeans. Se ha tomado en cuenta este programa, por su universalidad en el
manejo de las empresas y la adaptabilidad para usuarios como personal docente
y administrativo.
Ası, la base de datos ha sido almacenada en MySql y mostrara de una manera
amigable los resultados en las pantallas de Netbeans para ser usado por el
usuario.
Esquema de navegacion.
Para manejar el programa, se han creado, cinco ventanas en la pantalla
principal:
General
Carrera
Salas
Areas
Configuracion Horaria
Asignaturas
Materias
Paralelos
74
Docentes
Profesores
Formacion Academica
Horarios
Salir
A continuacion se presentara las distintas ventanas con sus funcionalidades.
Figura 1: Ventana de presentacion.
GENERAL
Figura 2: Ventana General.
Carrera
Figura 3: Ventana Carreras.
75
Cuenta con cuatro opciones:insertar, actualizar, eliminar y limpiar.
• Se ingresa el codigo, previamente establecido por la Institucion de
Educacion Superior, el nombre y el numero de semestres de la
carrera, clic en insertar ; en caso de no ingresar alguno de estos
campos tendremos el mensaje de la figura 4.
Figura 4: Mensaje de error.
• Se selecciona la carrera, se puede modificar su nombre y numero
de semestres, clic en actualizar si hemos guardado correctamente
tendremos el mensaje de la figura 6.
Figura 5: Actualizacion de datos de la carrera.
Figura 6: Mensaje de actualizacion.
• Se selecciona la carrera que se desea eliminar, clic eliminar, si se
ha eliminado con exito se tiene el mensaje de la figura 7; sino se
selecciona ninguna carrera para eliminar se observa el mensaje de la
figura 8.
76
Figura 7: Mensaje de exito al eliminar.
Figura 8: Mensaje de error al eliminar.
• Al hacer clic en limpian todos los campos llenos en codigo carrera,
carrera y nro de semestres se borran.
Salas
En esta ventana hay cuatro campos Id, codigo de salas, capacidad y
tipo(en este caso se puede elegir entre aula y laboratorio). Al igual que en
el caso de las carrera se tiene cuatro botones insertar, actualizar, eliminar
y limpiar.
Figura 9: Ventana Sala
Area
Esta pestana contiene tres campos codigo area, nombre area e
identificacion(se coloca una letra que identifique al area). Al igual que en
el caso de las carrera se tiene cuatro botones insertar, actualizar, eliminar
y limpiar.
77
Figura 10: Ventana Area
Configuracion Horaria Contiene cinco ventanas dıas, horas,
preferencia horaria y capacidad docencia.
Ventana Dıas: En esta ventana se coloca que dıas de la semana son los
que se dictan clases y se los asignara A de activo o I de inactivo. Cuenta
con botones: limpiar y actualizar, se puede actualizar solo los dıas habiles
de la semana.
Figura 11: Ventana Dıas
Ventana Horas: Se calcula con los tres campos llenos las horas de
clases en un dıa.
78
Figura 12: Ventana Horas
Preferencias Horarias: Se ingresa, modifica, elimina una preferencia
horaria esta puede ser a tiempo parcial o completo.
Figura 13: Ventana de preferencias horarias.
ASIGNATURAS
Figura 14: Ventana de Asignaturas.
• Materias: Esta ventana se inserta, actualiza, elimina y limpia los
campos ingresados en la Materias. Carrera y area muestran opciones
desplegables para luego llenar los campos que se piden.
79
Figura 15: Ventana de Materias.
• Paralelos: En la opcion de materias se ingreso el Nro. Paralelos, en
esta ventana se ingresa el cupo disponible y apareceran los paralelos
con el codigo, semestre y el nombre de la materia .
Figura 16: Ventana de Paralelos.
DOCENTES
Figura 17: Ventana Docentes.
• Ventana profesores: Aquı se ingresa el nombre del docente con un
codigo, tiempo de dedicacion y lista de preferencias. Al seleccionar
un elemento de la lista se tinturara verde.
80
Figura 18: Ventana Profesores.
• Formacion academica: Aquı se ingresa los tıtulos de los docentes
de la lista profesores.
Figura 19: Ventana Formacion academica.
HORARIO DOCENTE
Al seleccionar su nombre, el docente visualiza el horario que le
corresponde e implıcitamente, realiza un proceso de decodificacion de
cada materia que imparte, por la familiaridad con que maneja los codigos,
generada en el manejo de syllabus.
81
Figura 20: Ventana que indica la asignacion completa.
82