Está en la página 1de 95

UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD DE INGENIERÍA,
CIENCIAS FÍSICAS Y MATEMÁTICA
CARRERA DE INGENIERÍA MATEMÁTICA

APLICACIÓN DE LA PROGRAMACIÓN LINEAL


PARA PROBLEMAS DE ASIGNACIÓN.

TRABAJO DE GRADUACIÓN PREVIO LA OBTENCIÓN DEL TÍTULO


DE INGENIERA MATEMÁTICA

AUTOR: PATRICIA CAROLINA CANDO MOLINA

TUTOR: MAT. JUAN CARLOS GARCÍA NAVAS,


MSC.

QUITO - 24 DE ABRIL
2017
ii
iii
URKUND

Urkund Analysis Result


Analysed Document: 20170223 Patricia Cando.pdf (D26372425)
Submitted: 2017-03-13 20:29:00
Submitted By: camorales@uce.edu.ec
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

iv
v
vi
Dedicatoria

A mi madre por sus enseñanzas, 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

Introducción 1

Descripción del problema 1

1. Fundamentos teóricos 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.. Programación lineal . . . . . . . . . . . . . . . . . . . . . . . 18
3.1.. Soluciones básicas factibles. . . . . . . . . . . . . . . 22
3.2.. Mejoramiento de una solución básica factible. . . 30
3.3.. Formato tableau del Método 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.. Interpretación económica del dual. . . . . . . . . . . 39
4.3.. Análisis de sensibilidad. . . . . . . . . . . . . . . . . 40
4.4.. Análisis paramétrico. . . . . . . . . . . . . . . . . . . 43
5.. El problema de asignación . . . . . . . . . . . . . . . . . . . 45

2. Metodologı́a 47
1.. Formulación del modelo general . . . . . . . . . . . . . . . 47
1.1.. Variables de decisión. . . . . . . . . . . . . . . . . . . 48
1.2.. Formulación matemática de las restricciones. . . . 48
1.3.. Función objetivo . . . . . . . . . . . . . . . . . . . . . 49
2.. Modelo particular . . . . . . . . . . . . . . . . . . . . . . . . 49
2.1.. Recolección de datos. . . . . . . . . . . . . . . . . . . 49
3.. Formulación verbal y matemática del modelo . . . . . . . 52
3.1.. Modelo docente-materia . . . . . . . . . . . . . . . . 52
3.2.. Modelo materia-sala y hora. . . . . . . . . . . . . . . 53
3.3.. Función objetivo . . . . . . . . . . . . . . . . . . . . . 54

3. Implementación 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

APLICACIÓN DE LA PROGRAMACIÓN LINEAL PARA


PROBLEMAS DE ASIGNACIÓN

Autor: Patricia Carolina Cando Molina


Tutor: Juan Carlos Garcı́a Navas, Msc.

La asignación de horarios en el presente trabajo será tratado como un


problema de programación lineal, donde se deben respetar las condiciones y
requerimientos que existen entre las variables que intervienen en el problema.
Para la obtención de una solución óptima se utilizó la herramienta LINDO 6.1
y se realizó un análisis de sensibilidad que permite encontrar un rango en el
que dicha solución siga siendo válida.

PALABRAS CLAVE: ANÁLISIS DE SENSIBILIDAD / ASIGNACIÓN


DE HORARIOS / PROBLEMA DE ASIGNACIÓN / PROGRAMACIÓN
LINEAL / RESTRICCIONES DÉBILES Y FUERTES / SOLUCIÓN
ÓPTIMA.

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
Introducción

La programación horaria se puede considerar un problema de asignación


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 métodos. El trabajo presentado a continuación
estudia la problemática en la escuela de matemáticas de una Institución de
Educación Superior1 y el método descrito en las páginas siguientes consiste en la
formulación de un modelo matemático y una función objetivo a maximizar, para
lo cual se busca dar un fundamento teórico en el Capı́tulo 1, donde se desarrollan
definiciones, teoremas, demostraciones relacionadas con la programación lineal
y el problema de asignación, seguido se plantea en el Capı́tulo 2 un modelo
general y particular para la asignación de horarios, se describe los recursos
humanos, materiales, requerimientos y condiciones impuestas por la escuela,
de manera verbal y matemática.
En el Capı́tulo 3, se presenta el procedimiento que sigue para la asignación de un
docente a las materias a dictar y horarios de disponibilidad, la implementación
del modelo en una herramienta computacional, resultados y organización de la
información obtenida. Se presenta en este capı́tulo también casos crı́ticos, como
que existan más salas que materias y más 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.

1
La información de la Institución de Educación Superior se conservarán de manera
anónima.

1
Descripción del problema

Problemática general

En cada perı́odo de clases las instituciones de educación 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 investigación y solución
de horarios automatizados, en Europa se formó 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 técnicas de resolución para este tipo de problemas se
evidencian: programación lineal, programación lineal entera [[22],[1]], Simulated
Annealing(enfriamiento simulado) [18], algoritmos genéticos [11], algoritmos
evolutivos [6], Búsqueda Tabú [19], entre otros métodos. Luego de múltiples
investigaciones y uso de diferentes técnicas, se determina que la programación
lineal es la más adecuada para resolver el problema de asignación de horarios,
además de, ser la más tradicional.
La programación lineal se adapta a múltiples tipos de la actividad humana.
Las primeras investigaciones de operaciones comenzaron a inicio de la Segunda
Guerra Mundial. Debido a los esfuerzos bélicos 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 más
eficiente. En junio de 1947 un equipo de la Fuerza Aérea de Estados Unidos
denominado SCOOP (Scientific Computation of Optimum Programs) inició con
la formulación, análisis y solución del problema lineal dando como resultado a

1
fines de verano de ese mismo año el método Simplex desarrollado por George
B. Dantzig. Enseguida, el interés por la programación lineal crece entre las
instituciones, expertos y no expertos, cientı́ficos.
En el año 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 publicación del Método Simplex se recibieron cuantiosos aportes
para fundamentar y desarrollar la programación lineal. Otras herramientas que
se desarrollaron entre 1950 y 1960 fueron la programación entera, programación
dinámica, teorı́a de inventarios, método de transporte y teorı́a de colas.
La programación lineal maximiza o minimiza funciones lineales sujetas a una
serie de restricciones también lineales y sus fundamentos básicos se basan en la
teorı́a de los espacios vectoriales. A pesar de ser muy restrictiva por la condición
de linealidad se cuenta con modelos generales y herramientas informáticas que
ayudan a su resolución.
Entre los problemas clásicos de la programación lineal está el problema de
asignación el cual es un caso especial del problema de transporte(formulado
formalmente en 1941 [13]).
El problema de asignación surge en la búsqueda de la mejor asignación de
un conjunto de personas a un conjunto de trabajos; los trabajadores reciben
una puntuación de acuerdo a los puestos de trabajo, lo cual permite o no
la asignación 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 asignación en términos de la
programación 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 fundamentó en los trabajos de dos matemáticos húngaros
König and Egerváry [9] y de allı́ se deriva su nombre Método Húngaro.
Existen varios métodos de resolver el problema de asignación: el

2
Método Simplex, Algoritmo de Transporte, Ramificación y Acotación
(Branch-and-Bound )[5], Método del Simplex Dual, Método Húngaro, entre
otros. El problema de asignación se utiliza para resolver diversas situaciones,
por ejemplo la asignación de horarios.
La programación horaria o Timetabling se relaciona con la distribución 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 asignación de horarios educativos, tenemos una clasificación
en tres grandes tipos [21]:

Horarios de clases para escuelas (School Timetabling).

Horarios de clases para instituciones de educación superior o


universidades (Course Timetabling).

Horarios de evaluaciones y exámenes (Examination Timetabling).

Formulación del problema

Generación de horarios de clases semestral en la escuela de matemáticas de una


Institución de Educación Superior.

Limitaciones

La automatización del modelo general.

Justificación

Evidenciando la problemática actual de la escuela de matemáticas al momento


de realizar la programación horaria semestral se busca dar una solución óptima

3
que satisfaga los requerimientos y condiciones impuestos. Actualmente, la
escuela cuenta con un método de asignación manual que suele ser demoroso
y su solución puede estar sujeta a fallas e incumplimiento de los requerimientos
básicos. En este trabajo se propone hacer uso de un modelo de programación
lineal que cumpla con los requerimientos solicitados y minimice el tiempo de
asignación de los horarios de clases.

Objetivos

Objetivo general.

Aplicar la programación lineal en la asignación docentes a materias y sesiones


de clases en una Institución de Educación Superior en la escuela de matemáticas
en el semestre 2016-2017.

Objetivos especı́ficos.

Elaborar un esquema teórico-práctico a partir de los datos proporcionados


por la escuela de matemáticas.

Facilitar la búsqueda de una solución factible en la asignación de docentes,


materias y horas.

Disminuir el tiempo requerido para la realización de la planificación


horaria.

4
CAPÍTULO 1

Fundamentos teóricos

En el capı́tulo que se presenta a continuación se detallan los fundamentos


teóricos, del presente trabajo, tal como se enuncia:
En primer lugar, el espacio vectorial Rn y algunas propiedades, en lo sucesivo
se desarrollarán los conceptos en este espacio. En la teorı́a de convexos se
expondrán teoremas que brindan importantes resultados teóricos.
En un segundo bloque se expone cuestiones sobre la programación lineal desde
sus principios básicos, teoremas que la caracterizan, relaciones con el dual,
mejoramiento de soluciones, entre otros.
Finalmente, se estudia cuestiones sobre los análisis de sensibilidad, paramétrico
y la definición del problema de asignación.

1. Espacio vectorial Rn

Sea n un número 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 ).

Multiplicación por un número 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 números 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+k1 B.

vi) (k1 + k2 )A=k1 A+k2 A.

vii) (k1 k2 )A=k1 (k2 A).

viii) 1· A = A y 0A=0.

1.2. Fundamentos algebraicos

1. Sea x = (x1 , x2 , ..., xn ).

• Se dice que x ≥ 0 si y sólo si xi ≥ 0 para todo i = 1, ..., n.

• Se dice que x > 0 si y sólo 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 añadimos una
variable xh ≥ 0, llamada variable de holgura:
Pn
• Si a la desigualdad i=1 aji xi ≤ bj , se le añade la variable de
holgura con signo positivo. Se obtiene:
Pn
i=1 (aji xi + xhj ) = bj , xhj ≥ 0,

para i = 1, ..., n y j = 1, ..., m.


Pn
• Si a la desigualdad i=1 aji xi ≥ bj , se le añade la variable de
holgura con signo negativo. Se obtiene:
Pn
i=1 (aji xi − xhj ) = bj , xhj ≥ 0,

para i = 1, ..., n y j = 1, ..., m.


Pn
4. La ecuación de la forma i=1 aji xi = bj, se puede transformar en dos
desigualdades:  n
X
aji xi ≥ bj ,





i=1
Xn

aji xi ≤ bj .




i=1

5. Una variable xi , i = 1, ..., n no-condicionada es aquella que puede tomar


cualquier valor negativo, cero y positivo.
Se representa por xi = x0i − x00i , donde x0i ≥ 0 y x00i ≥ 0.

6. Máximo de f (x) es igual al mı́nimo −f (x).


Mı́nimo de f (x) es igual al máximo −f (x).

2. Teorı́a de conjuntos convexos en Rn

2.1. Conjuntos convexos y funciones convexas.

Definición 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
Definición 2. (Combinación lineal convexa) Un punto x ∈ Rn tal que:

n
X
x= λi xi
i=1

λi ≥ 0 (1.3)
n
X
λi = 1.
i=1

es una combinación lineal convexa no-negativa de n puntos de Rn .

Observe que (1.2) cumple con la definición anterior, entonces es una


combinación lineal convexa no-negativa.
Interpretación geométrica
Geométricamente significa que el segmento entre x1 y x2 pertenece al conjunto.

Figura 1.1: Ilustración de conjuntos convexos

Definición 3. (Casco convexo) Sea C ⊆ Rn (no necesariamente convexo)


se denomina casco convexo de C denotado por H(C) a la colección de todas las
combinaciones lineales convexas de C.
Observación 1. Sea C ⊆ Rn cualquiera entonces H(C) es un conjunto
convexo.

Sea C ⊆ Rn un conjunto convexo si y sólo si H(C)=C.


Definición 4. (Politopos) Un politopo en Rn es el casco convexo de un
número 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 vértices 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 Carathéodory [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:

n+1
X
x= λi xi
i=1
n+1
X
λi = 1 (1.4)
i=1

λi ≥ 0, i = 1, ..., n + 1

xi ∈ C, i = 1, ..., n + 1.

10
Demostración. Sea x ∈ H(C) se tiene

k
X
x= λi xi
i=1
k
X
λ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 pérdida de generalidad, se supone λi 6= 0 para i = 1, ..., k
pues si se tiene λi = 0 para algún i, x serı́a combinación convexa de k − 1
vectores; es decir, se escoge la combinación convexa de k vectores lo menor
posible.
Además, los k − 1 vectores x2 − x1 , x3 − x1 , ..., xk − x1 son linealmente
dependientes (pues la dimensión del espacio es n y k − 1 > n), luego existen
escalares µ1 , µ2 , ..., µk no todos ceros tales que ki=2 µi (xi − x1 ).
P

Sea µ1 = − ki=2 µi .
P

Luego, ki=1 µi xi = 0 y ki=1 µi = 0 no todos ceros.


P P

Note que al menos algún µi > 0. Entonces

k
X k
X k
X k
X
x= λi x i + 0 = λi x i − α µi x i = (λi − αµi )xi ,
i=1 i=1 i=1 i=1

para todo α real.


Ahora se elige α como sigue:
 
λi λj
α = mı́n1≤i≤k ; µi > 0 = > 0,
µi µj

para algún j = 1, ..., k.


λi λj
Observe, si µi ≤ 0 entonces λi − αµi > 0, y si µi > 0 entonces ≥ =αy
µi µj
por tanto, λi − αµi ≥ 0 para todo i = 1, ..., k. En particular, λj − αµj = 0 por
definición de α.
Ası́, x = ki=1 (λi − αµi )xi donde λi − αµi ≥ 0 y ki=1 (λi − αµi ) = 1, para
P P

11
i = 1, ..., k.
Es decir, x es combinación convexa de a lo más k −1 vectores pues el coeficiente
j -ésimo es nulo.
Repitiendo el argumento hasta que x sea representado como una combinación
convexa de n + 1 puntos en C. Bazaraa, Sherali y Shetty (2006).

Definición 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.


Proposición 1. El hiperplano H es un conjunto convexo.
Definición 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.
T

2. H − H + = Rn .
S

Proposición 2. Los semiplanos H − y H + asociados al hiperplano H son


conjuntos convexos.
Observación 2. El conjunto solución del sistema de las desigualdades
lineales

S = {x ∈ Rn ; Ax ≤ b : A ∈ Rmxn , b ∈ Rm },

es convexo.

El conjunto solución del sistema de desigualdades lineales

S = {x ∈ Rn ; Ax ≥ b : A ∈ Rmxn , b ∈ Rm },

es un conjunto convexo.

12
Definición 7. Sea C ⊆ Rn un convexo no vacı́o. La función 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 función f es llamada estrictamente convexa si la ecuación 1.8 es una


inecuación estricta, con λ ∈ (0, 1). La función f : C −→ R es llamada cóncava
(estrictamente cóncava) sobre C si −f es convexa (estrictamente convexa) sobre
C.

Figura 1.4: Función convexa.

2.2. Conjuntos poliedros y conos convexos.

Definición 8. (Conjunto poliedro) Un conjunto poliedro es una intersección


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 .
Observación 3. 1. P 0 = {x ∈ Rn ; Ax ≥ b} con A ∈ Mmxn (R) y b ∈ Rm
es un poliedro.

2. P 0 = {x ∈ Rn ; Ax = b, x ≥ 0} con A ∈ Mmxn (R) y b ∈ Rm es un


poliedro.

3. Todo poliedro es un conjunto convexo.


Definición 9. (Cono) Sea C un conjunto cualquiera de Rn es un cono convexo
con vértice cero si para todo x ∈ C y λ ≥ 0 se tiene que λx ∈ C.

13
Si en la definición 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.

Definición 10. (Punto extremo) Sea C un conjunto convexo de Rn se


denomina punto extremo de C sino puede expresarse como una combinación
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 algún α, 0 < α < 1
entonces x = x1 = x2 .
0 1 −2 −1
  1  
Sea C el politopo generado por { 0
, 1
, 3 , 3
, 2
}:
0 −2
 1 1 
El conjunto de puntos extremos de C, { 0
, 1 , 3 , 3
}.

El casco convexo de C,
   



 1 −1 0 

    
 
0 1
   

2 
 3 

H(C) = x ∈ R :   x ≤  
  


  1 0  1
 
3

   

− −1
 
 0 
2

Definición 11. (Direcciones) Sea C un conjunto convexo de Rn , se dice


que el vector d 6= 0 es una dirección de C si {x0 + λd; λ ≥ 0, ∀x0 ∈ C}
también 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.
Definición 12. (Direcciones extremas) Una dirección d es una dirección
extrema en un conjunto convexo C de Rn sino se puede expresar de la forma
d = λ1 d1 + λ2 d2 con λ1 , λ2 > 0 y donde d1 , d2 direcciones distintas.

Figura 1.7: Ejemplo de direcciones extremas.

Proposición 3. Sea C un conjunto convexo no vacı́o en Rn ,



 Ax = b
C= (1.9)
 x ≥ 0,

entonces d es un vector dirección en C si y sólo 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 > α
(1.10)
px ≤ α, ∀x ∈ C.

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 solución:
Sistema 1: Ax ≤ 0 y cx > 0 para algún x ∈ Rn .
Sistema 2: AT y=c y y ≥ 0 para algún y ∈ Rm .

Demostración. Suponga que el Sistema 2 tiene una solución; es decir, existe


y ≥ 0 tal que AT y=c. Se demostrará que el Sistema 2 no tiene solución.
Sea x tal que Ax ≤ 0. Entonces cx = y T Ax ≤ 0 por lo tanto el Sistema 1 no
tiene solución.
Ahora, suponga que el Sistema 2 no tiene solución, se demostrará que el Sistema
1 tiene solución.
Defina el conjunto S = {x; x = AT y, y ≥ 0}. Note que S es un conjunto
convexo cerrado y que c 6∈ S pues el Sistema 2 no tiene solución. 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. También

16
α ≥ px = p(AT y) = (AT y)T p = y T Ap, para todo y ≥ 0.

Puesto que, y ≥ 0 se puede hacer arbitrariamente grande, la última desigualdad


implica que Ap ≤ 0.
Por tanto, se construyó un vector p ∈ Rn tal que Ap ≤ 0 y pc > 0. Ası́, el
Sistema 1 tiene una solución, y la prueba está completa. Bazaraa, Sherali y
Shetty (2006).

Interpretación geométrica.
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 ai x ≤ 0 para todo i. Es decir, el ángulo
entre x y cada fila del vector ai es más grande que o igual a 90◦ . Entonces
cx < 0 requiere que el ángulo entre x y c menor que 90◦ . Además, el Sistema
1 tiene una solución si la intersección 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 solución, con cualquier x en el área sombreada como una solución
del Sistema 1.
b) El vector c es una combinación lineal positiva de las columnas ai , figura

Figura 1.9: Sistema 1 tiene solución.

1.10. Bazaraa y Jarvis(1977).


Los siguientes resultados son aplicaciones de los teoremas 3 y 4:

17
Figura 1.10: Sistema 2 tiene solución.

Corolario 1. [3] Sea A una matriz mxn y c un n-vector. Entonces exactamente


uno de los siguientes sistemas tiene solución:
Sistema 1: Ax ≤ 0, cx > 0 y x ≥ 0 para algún y ∈ Rn .
Sistema 2: AT y = c y y ≥ 0 para algún 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 solución:
Sistema 1: Ax ≤ 0, Bx = 0 y cx > 0 para algún y ∈ Rn .
Sistema 2: AT y+BT z=c y y ≥ 0 para algún y ∈ Rm y z ∈ Rl .
Teorema 5. (Teorema de Gordan [3]) Sea A una matriz mxn. Entonces,
exactamente uno de los siguientes sistemas tiene solución:
Sistema 1: Ax < 0 para algún x ∈ Rn .
Sistema 2: AT p=0, p ≥ 0, p 6= 0 para algún p ∈ Rm .

3. Programación lineal

Es un modelo matemático diseñado para resolver y analizar problemas lineales


de decisión con restricciones lineales con el fin de determinar la forma
más óptima de usar los recursos disponibles, en sistemas de producción. La

18
representación general del problema de programación 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 función lineal (1.11), se denomina función objetivo. Los vectores c
y x se les denomina vector de precios (costos unitarios) y el vector
de producción (variable de decisión), 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 tecnológicos. La condición en (1.13) se conoce como condición
de no-negatividad.
La palabra optimizar puede significar maximizar o minimizar.
Matricialmente el problema se escribe:
Optimizar  
x
 1
 
 x2 
z = (c1 c2 · · · cn ) 
 .. 
 (1.14)
.
 
xn

sujeto a
    
a11 a12 · · · a1n x1 b1
    
 a21 a22 · · · a2n   x2   b2 
    
   R  
 .   .  (1.15)
 · · · · · · · · · · · ·   ..   .. 

    
am1 am2 · · · amn xn bm

   
x 0
 1  
   
 x2  0
 ≥  (1.16)
 ..   .. 
 .  .
   
xn 0

19
Otra forma de escribirlo es:
Optimizar
n
X
z= ci x i (1.17)
i=1

sujeto a

n
X
aji xi R bj , j = 1, ..., m (1.18)
i=1

xi ≥ 0, i = 1, ..., n. (1.19)

Todas estas formas son equivalentes. Un vector x que satisface (1.12) y (1.13)
se denomina solución factible. La región factible o espacio factible
está constituido por todos las soluciones factibles.
Forma canónica y forma estándar
Un problema de PL se dice estándar si:

La función 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 canónico si:

La función 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 .


Condición 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.
Hipótesis de programación lineal

Proporcionalidad. Las variables de decisión, contribuyen directamente al


costo y las restricciones.

Aditividad. Se puede valorar la función objetivo sumando las


contribuciones que hacen cada uno de los términos que intervienen y que
la contribución total para una restricción es la suma de las contribuciones
y actividades individuales.

Divisibilidad. Las variables de decisión toman como valores números


reales, si además se adjunta las restricciones de no negatividad, significa
que variables de decisión pueden tomar valores positivos o al menos igual
a cero.

Certidumbre. Los parámetros aji , ci , bj para i = 1, ..., n y j = 1, ..., m se


mantienen constantes, es decir, no interviene una función de probabilidad
para obtenerlos.

21
3.1. Soluciones básicas factibles.

Definición 13. (Soluciones básicas factibles) Sea el sistema

Ax = b

x ≥ 0,

donde A ∈ Mmxn (R), b un m-vector y supóngase que el rango de A es m.


Consideremos una descomposición de la matriz A de la forma [B, N ], donde

xB
B ∈ Mmxm (R) es inversible y N ∈ Mmx(n−m) (R). El vector x =   se
xN

x = B −1 b
B
denomina solución básica del sistema si y si además, xB ≥ 0
 x =0
N
 
xB
entonces x =   se llama solución básica factible del sistema.
0

En la definición anterior la matriz B se conoce como matriz básica, la matriz


N como matriz no-básicas y a los vectores xB , xN se los denominada vector
de variables básicas y vector de variables
  no-básicas, respectivamente.
xB
Una solución básica factible x =   se denomina no-degenerada si xB >
0
0, caso contrario si alguna componente de xB es cero la solución se dice que es
básica factible degenerada.
Caracterización de puntos extremos y direcciones extremas para
conjuntos poliedros
Teorema 6. (Caracterización 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 solución


básica factible si y sólo si es un punto extremo.

Demostración. (⇐=) Suponga que la matriz A se puede descomponer en


−1 
[B, N ] con x = B 0 b y B −1 b ≥ 0. Se demostrará x es un punto extremo.

22
xB
= BxB + N xN = BB −1 b + N 0 = b y x ≥ 0

Note que, Ax = [B, N ] xN

por lo tanto, x ∈ P.
Sean x1 = xx11 x21
 
12
, x2 = x22
∈ P y para algún λ ∈ (0, 1) tal que

x = λx1 + (1 − λ)x2
 −1     
B b x11 x21
=λ + (1 − λ)
0 x12 x22

 λx11 + (1 − λ)x21 = B −1 b (1)
 λx
12 + (1 − λ)x22 = 0. (2)

De la ecuación (2) se sigue que x12 = 0, x22 = 0 puesto que, x1 ≥ 0, x2 ≥ 0.


Además, Ax1 = Bx11 = b y Ax2 = Bx21 = b entonces x11 = B −1 b y
x21 = B −1 b, por lo tanto, x1 = x2 = x. Ası́, se concluye x punto extremo.
(=⇒) Suponga x es punto extremo, se demostrará que es una solución básica
factible. Sin pérdida de generalidad, se supone que
 
x
 1
 .. 
.
 
 
 xk 
 ,
x= 
0
 .. 
 
.
 
0

con xj > 0 para j=1,..., k, k ≤ m.


Denote la columna k−ésima de A por ak . Note que

Pk
Ax = b ⇐⇒ i=1 xi ai = b.

Las columnas a1 , ..., ak son linealmente independientes, pues suponga que


a1 , ..., ak son linealmente dependientes, entonces existen λ1 , ..., λk no todos

23
Pk
ceros tal que i=1 λi ai = 0. Sea
 
λ
 1
 .. 
.
 
 
λk 
 .
λ= 
0
 .. 
 
.
 
0

Construya los siguientes vectores x1 , x2 ≥ 0 con α > 0

x1 = x + αλ,

x2 = x − αλ.

1 1
Luego, x = x1 + x2 .
2 P 2
Note, Ax1 = ki=1 (xi + αλi )ai = ki=1 xi ai + α ki=1 λi ai = Ax = b. y de
P P

manera similar Ax2 = b. Ası́, x1 , x2 ∈ P. Además, x 6= x1 , x1 6= x2 y


x2 6= x, lo cual es contradicción con el hecho que x es un punto extremo. Por
tanto, a1 , ..., ak son linealmente independientes y m − k columnas fuera de
las últimas 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

Pn Pm Pn
Ax = b ⇐⇒ i=1 xi ai = b ⇐⇒ i=1 xi ai + i=m+1 xi ai = b (*).

xB

Si se denota x = xN
, donde

   
 
x x 0
 1  m+1   
 .   .  .
xB =  ..  ≥ 0, xN =  ..  =  ..  .
     
xm xn 0

24
Entonces la ecuación (*) se escribe:

BxB + N xN = b,

BxB = b,

xB = B −1 b.

Bazaraa, Sherali y Shetty (2006).

Corolario 3. El número 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.

Demostración. Sin pérdida de generalidad, suponga que el rango de la matriz


A es m y  
x
 1
 .. 
.
 
 
 xk 
 ,
x= 
0
 .. 
 
.
 
0

con xj > 0 para j = 1, ..., k, k ≤ m.


Denote la columna k−ésima de A por ak . Si a1 , .., ak son linealmente
independientes entonces x es una solución básica factible.
Suponga que x no es una solución básica factible luego a1 , .., ak son linealmente
dependientes, es decir, existen λ1 , ..., λk no todos ceros con al menos un λj > 0,
tal que ki=1 λi ai = 0.
P

Considere el vector x0 , cuya componente j−ésima es



xj − αλj , para j = 1, ..., k,

x0j =
0,

para j = k + 1, ..., n,

25
xj
 
x
donde α = mı́n1≤j≤k , λj > 0 = i > 0.
λj λi
0
Si λj ≤ 0 entonces xj > 0 para j = 1, ..., k.
xi xj
Si λj > 0, por definición de α se tiene que α = ≤ y entonces x0j ≥ 0,
λi λj
xi xj
pues x0j = xj − αλj = xj − λj ≥ xj − λj = 0 para j = 1, ..., k.
λi λj
0
Ası́, x ≥ 0 con como máximo hay k-1 componentes positivas, es decir, la
componente x0i = 0 y

Pn Pn Pn Pn
Ax0 = i=1 x0i ai = i=1 (xi − αλi )ai = i=1 xi ai − α i=1 λi ai = b.

Ası́, se construyó un punto factible x0 con al menos k − 1 componentes. Si las


columnas correspondientes a estas componentes son linealmente independientes
entonces x0 es una solución básica factible. En caso contrario, se sigue con
el procedimiento hasta encontrar una solución básica factible. Bazaraa y
Jarvis(1977).

Teorema 8. (Caracterización 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 dirección d


es dirección extrema de P si y sólo si la matriz A se puede descomponer en
[B,N], tal que B −1 aj ≤ 0 para alguna columna aj de N y d es múltiplo de
−1
d = −Bej aj , donde ej es un n − m vector de ceros excepto de un 1 en la


posición j.

Demostración. (⇐=) Se demostrará d es dirección extrema.


Puesto que, B −1 aj ≤ 0 para alguna columna aj de N se tiene que d ≥ 0 y

−B −1 aj
= −BB −1 aj + N ej = −aj + aj = 0

Ad = [B, N ] ej

Por la Proposición 3. d es dirección de P. La dirección d es extrema, caso


contrario suponga que d no es dirección extrema, luego existen d1 y d2
direcciones en P distintas, tal que d = λ1 d1 + λ2 d2 , para λ1 , λ2 > 0. Entonces,
d1 , d2 deberı́an ser escritos de la forma:

26
d11 d21
 
d1 = α1 ej
, d2 = α2 e j

para algún α1 , α2 > 0. Puesto que, d1 , d2 son direcciones de P por la


Proposición 3. Ad1 = Ad2 = 0. Luego,

d11
= Bd11 + α1 N ej = Bd11 + α1 aj = 0 =⇒ d11 = −α1 B −1 aj ,

[B, N ] α1 e j
d21
= Bd21 + α2 N ej = Bd21 + α2 aj = 0 =⇒ d21 = −α2 B −1 aj ,

[B, N ] α2 e j

por tanto, d1 = d2 = d, que es la definición de dirección extrema. Además,


como d es múltiplo positivo de d, está también es una dirección extrema.
(=⇒)Sea d una dirección extrema de P. Sin pérdida de generalidad, suponga
que  
d
 1
 .. 
.
 
dk 
 
 
 
0
 ..  ,
d= 
.
 
 
 dj 
 .. 
 
.
 
0

con di > 0 para i = 1, ..., k e i = j.


Denote la columna k−ésima de A por ak . Las columnas a1 , .., ak son
linealmente independientes. Por contradicción, suponga que a1 , .., ak son
linealmente dependientes, entonces existen λ1 , ..., λk no todos ceros tal que
Pk
i=1 λi ai = 0. Sea  
λ
 1
 .. 
.
 
 
λk 
λ=  .

0
 .. 
 
.
 
0

Construya los siguientes vectores d1 , d2 con α > 0 suficientemente pequeño tal

27
que

d1 = d + αλ,

d2 = d − αλ

son no negativas. Note que

Pk
Ad1 = Ad + αAλ = 0 + α i=1 λi ai = 0

y de manera similar Ad2 = 0. Observe que de lo anterior y de la Proposición 3


d1 , d2 son direcciones de P. Además, d1 , d2 son direcciones distintas (α > 0 y
1 1
λ 6= 0) tal que d = d1 + d2 lo cual es una contradicción; pues d es dirección
2 2
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 pérdida de generalidad, B = [a1 , ..., am ] invertible. Ası́

0 = Ad = [B, N ]d = Bd∗ + aj dj ,

donde d∗ es un vector con las m primeras componentes de d.


−B −1 aj
Además, d∗ = −dj B −1 aj y por tanto el vector d es de la forma d=dj

ej
.
Note que d ≥ 0 y dj > 0, B −1 aj ≤ 0, y la prueba está completa. Bazaraa,
Sherali y Shetty(2006).

Corolario 4. El número de direcciones extremas de P es finita.


Teorema 9. (Teorema de Representación [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 sólo si x se puede escribir como

k
X l
X
x= λi x i + µi di
i=1 i=1
k
X
λi = 1 (1.20)
i=1

λ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


dirección extrema si y sólo si este no es acotado.

Demostración. (=⇒) Sea d una dirección extrema en P, se demostrará P no


acotado. Puesto que d es dirección entonces

{x0 + λd; λ ≥ 0, x0 ∈ C}

pertenece a P. Note que este conjunto es de cardinalidad infinita por el valor


de λ ≥ 0,
lı́m kx0 + λdk = ∞
λ→∞

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 = ki=1 λi xi para algunos λi ≥ 0, i = 1, ..., k,
P
Pk
i=1 λi = 1.

Por la desigualdad triangular

Pk Pk Pk
kxk = k i=1 λi x i k ≤ i=1 λi kxi k ≤ i=1 kxi k < ∞,

para cualquier x ∈ P. Lo que contradice P no acotado y se concluye la

29
demostración. 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 colección de puntos extremos correspondientes a la
colección de soluciones básicas factibles, y ambos son no vacı́as, siempre que la
región factible sea no vacı́a.
Teorema 11. [2] Suponiendo que la región es no vacı́a, una solución óptima
finita existe si y sólo si cdj ≥ 0 para j = 1, 2, ..., l, donde d1 , ..., dl son las
direcciones extremas de la región factible. De otro modo, la solución óptima es
no acotada.
Teorema 12. [2] Si una solución óptima existe, entonces un punto extremo
óptimo(o equivalentemente una solución básica factible) existe.

3.2. Mejoramiento de una solución básica factible.

Suponga A ∈ Mmxn (R) de rango m, el conjunto región 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 .
Supóngase que el problema anterior de PL tiene una solución básica factible
B −1 b

0
, donde A se puede descomponer de la forma [B, N ] y de manera similar

30
c = (cB , cN ). El valor de la función objetivo es
 −1   −1 
B b B b
z0 = c = (cB , cN ) = cB B −1 b. (1.23)
0 0

xB

Ahora, sea x = xN
una solución factible arbitraria, se tiene que

 
xB
b = Ax = [B, N ] = BxB + N xN ,
xN
xB = B −1 b − B −1 N xN , (1.24)

xB , xN ≥ 0. (1.25)

El valor de la función objetivo para este vector es


 
xB
z = cx = (cB , cN )
xN
= cB x B + cN x N

= cB (B −1 b − B −1 N xN ) + cN xN

= cB B −1 b + (cN − cB B −1 N )xN

= z0 − (cB B −1 N − cN )xN
X
= z0 − (cB B −1 aj − cj )xj ,
j∈R

donde R es el conjunto de ı́ndices de las variables no básicas. Si se denota


zj = cB B −1 aj , ∀j ∈ R, se tiene

X
z = z0 − (zj − cj )xj , (1.26)
j∈R

es claro que el valor de función objetivo decrecerá si zj − cj > 0, en este caso


será más ventajoso fijar cada variable no básica xj en cero, excepto una variable
no básica xk tal que máx{zj − cj > 0, j ∈ R} = zk − ck y el nuevo valor de la
función objetivo z es
z = z0 − (zk − ck )xk . (1.27)

31
Reescribiendo la ecuación (1.24), se observa que cuando crece la variable no
básica la variable básica decrece

xB = B −1 b − B −1 ak xk .

Denote yk = B −1 ak y b = B −1 b

xB = b − yk xk . (1.28)

Ahora se hallará el valor máximo que puede alcanzar xk . Denote por xBi , bi ,
yik a la coordenada i-ésima del vector xB , b y yk , respectivamente.

1. Para los valores yik negativos, entonces xBi continua siendo no negativa
y crece de acuerdo a cuanto crezca xk . En este caso el valor de la función
objetivo no es acotado.

2. Para los valores yik > 0, se puede ir incrementando xk hasta que el primer
xBi se anule; para que conserve la condición de no negatividad. Es decir,
 
bi
xk = mı́n ; yi > 0 (1.29)
1≤i≤m y ik k

br
Si supone que el mı́nimo se alcanza en la posición r-ésima xk =. En
yrk
el caso no-degenerado br > 0, se sigue que xk > 0 y se observa de la
ecuación 1.27 z < z0 , lo cual mejora la función objetivo. En particular,
br
xBr = br − yr = 0, en tal caso la variable xk entra a la base y xbr
yrk k
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
Interpretación de las entradas y salidas de la base (económica).

Interpretación de zk − ck .
Los valores zk − ck se denominan costes reducidos, estos miden el cambio que
se produce en el valor de la función objetivo cuando se aumenta unitariamente
el valor de las variables no-básicas. Por tanto:

1) Si zk − ck > 0, el costo de aumentar en una unidad xk es ck . En la


ecuación 1.27 se observa que si aumentamos en una unidad xk , el valor
de la función 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 función


objetivo no mejora.

3) Si zk − ck = 0 el valor de la función objetivo no varı́a.

Supóngase, en particular que xk = xBt la variable básica t-ésima, además se


tiene ck = cBt y ak = aBt . Entonces zk = cB B −1 ak = cB B −1 aBt , observe
B −1 aBt es un vector unitario en la t-ésima posición. Por tanto, zk = cBt , es
decir zk − cBt = cBt − cBt = 0.
Tomado del libro de Bazaraa y Jarvis(1977).

3.3. Formato tableau del Método Simplex.

Suponga que se inicializa con una base xB correspondiente a un punto extremo


inicial. La función objetivo y restricciones se pueden escribir como:

z − cx = z − cB xB − cN xN = 0, (1.30)

Ax = BxB − N xN = b. (1.31)

De la ecuación (1.31), xB = B −1 b − B −1 N xN y reemplazando en (1.30) se


obtiene z − cB b + (cB B −1 N − cN )xN = 0, donde b = B −1 b.
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 − cB B −1 N .
La tableau 1.1 contiene la información necesaria para iniciar el método simplex.

z xB xN LD
−1
z 1 0 cB B N − cN cB b
xB 0 I B −1 N b

Tabla 1.1: Tableau inicial.

1. Si cB B −1 N − cN ≤ 0, el punto extremo actual es el óptimo y se termina


el proceso; caso contrario, seleccionar una variable no básica con valor
positivo cB B −1 aj − cj en la fila de la función objetivo.

2. Si B −1 aj ≤ 0, el problema es no acotado y el proceso termina, de otro


modo yj = B −1 aj 6≤ 0, determine el ı́ndice r como sigue

 
bi br
mı́n ; yij > 0 = ≥ 0, (1.32)
1≤i≤m yij yrj

donde yij y bi son las componentes i th de yj y b, respectivamente.


Actualizar la tableau y pivotear sobre yrk . Actualizar las variables básicas
y no básicas 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 óptimo del siguiente problema de


programación lineal

mı́n z = cx

sujeto a Ax = b

x ≥ 0,

34
donde A ∈ Mmxn (R), b ∈ Rm y c ∈ Rn , si y sólo si existen vectores y ∈ Rm ,
v ∈ Rn tal que:

Ax ≥ b, x ≥ 0, (factibilidad del problema primal)

c − AT y − v = 0, y ≥ 0, v ≥ 0, (factibilidad del problema dual)

(Ax − b)T y = 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 continuación algunas relaciones entre el problema primal y el problema dual:

Si el problema primal es de maximización, su correspondiente problema


dual es de minimización. De manera, análoga si el problema primal es
de minimización, su correspondiente problema dual es un problema de
maximización.

El número de variables en el problema dual es el mismo número de


restricciones en el problema primal.

El número de restricciones en el problema dual es el mismo número de


variables en el problema primal.

Los coeficientes de costo del problema primal son los términos


independientes en las restricciones del problema dual.

Los términos 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 relación del problema primal con el dual, respecto
al signo de las variables y el sentido de las restricciones.

PROBLEMA DE MINIMIZACIÓN PROBLEMA DE MAXIMIZACIÓN


Restricciones Variables
≥ ≥0
= irrestricta
≤ ≤0
Variables Restricciones
≥0 ≤
irrestricta =
≤0 ≥

Tabla 1.2: Tabla de Tucker.


1
Lema 1. [2]El dual del dual es el primal.

Demostración. Considere el programa lineal dual dado de la forma:

(P D) máx bT y

sujeto a AT y ≤ c

y ≥ 0,

transformando este problema, aplicando los fundamentos algebraicos, se tiene:

mı́n −bT y

sujeto a −AT y ≥ −c

y ≥ 0.

El problema dual asociado al problema anterior está dado por:

máx −cT x

sujeto a −Ax ≤ −b

x ≥ 0,
1
Por notación y evitar confusiones en el (PP) y (PD), se colocará “T ” en el vector de
costos para representar su transpuesta.

36
que a su vez es equivalente a:

(P P ) mı́n cT x

sujeto a Ax ≥ b

x ≥ 0,

que es el programa primal del programa dual PD.

4.1. Relaciones primal-dual.

La definición del programa lineal dual que se usó, utiliza la relación entre los
programas lineal dual y primal.
Relación entre los valores objetivos.
Lema 2. [2] El valor de la función objetivo, para cualquier solución factible
del problema de minimización, es siempre mayor o igual que el valor de la
función objetivo para cualquier solución factible del problema de maximización.
En particular, el valor objetivo de cualquier solución factible del problema
de minimización da una cota superior del objetivo óptimo del problema de
maximización. Análogamente, el valor objetivo de cualquier solución factible del
problema de maximización es una cota inferior del objetivo óptimo del problema
de maximización.

Demostración. Considere el siguiente problema lineal primal:

mı́n cT x

sujeto a Ax ≥ b

x ≥ 0,

37
y el siguiente su programa dual asociado:

máx bT y

sujeto a AT y ≤ c

y ≥ 0.

Sean x0 , y0 soluciones factibles del programa primal y dual, respectivamente;


se tiene Ax0 ≥ b, x0 ≥ 0, AT y0 ≤ c y y0 ≥ 0.
Si se multiplica Ax0 ≥ b por y0 T ≥ 0 y (AT y0 )T ≤ cT por x0 ≥ 0, se obtiene:

y0 T Ax0 ≥ y0T b =⇒ (Ax0 )T y0 ≥ bT y0 ,


(AT y0 )T x0 ≤ cT x0 =⇒ (Ax0 )T y0 ≤ cT x0 .

Por tanto,

cT x0 ≥ (Ax0 )T y0 ≥ bT y0 .

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 cT x0 = bT y0 , entonces x0 y y0 son soluciones óptimas de sus
respectivos problemas.
Corolario 7. [2] Si cualquier problema tiene un valor objetivo no acotado,
entonces el otro problema no posee solución factible.
Lema 3. [2] Si uno de los problemas posee una solución óptima, entonces ambos
poseen soluciones óptimas y los dos valores objetivos óptimos 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 programación lineal primario y dual, exactamente una de las
siguientes proposiciones es cierta.

1. Ambos problemas tienen soluciones óptimas x∗ y y ∗ , con cT x∗ = bT y ∗ .

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.

Considérese, al referirse a óptimo significa óptimo finito, y no acotado significa


tener óptimo no acotado. Del Teorema anterior podemos decir:

PP óptimo ⇐⇒ PD óptimo.

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 débil de holgura complementaria [2]) Si x∗
y y ∗ son puntos óptimos cualesquiera de los problemas primario (PP) y
dual(PD), respectivamente.

(P P ) mı́n cT x (P D) máx bT y

sujeto a Ax ≥ b sujeto a AT y ≤ c

x ≥ 0. y ≥ 0.

Entonces, (c − AT y ∗ )T x∗ = 0 y (Ax∗ − b)T y ∗ = 0.

4.2. Interpretación económica del dual.

Considere el siguiente problema primal y su problema dual asociado:

(P P ) mı́n cT x (P D) máx bT y

sujeto a Ax ≥ b sujeto a AT y ≤ c

x ≥ 0. y ≥ 0.

39
B −1 b
Considere B es la base óptima, x∗ = una solución óptima del PP y y ∗

0

solución óptima del PD. Sea cTB el vector de costos básicos, entonces:

z ∗ = cTB B −1 b = bT y ∗

(pues x∗ y y ∗ son soluciones óptimas), de lo cual se sigue

∂z ∗
= cB B −1 = y ∗ .
∂b

La variable dual yi∗ puede interpretarse como la razón de cambio de la función


objetivo cuando el término i-ésimo del vector independiente del PP es sometido
a pequeños cambios. Una interpretación de esto puede ser, yi∗ indica la cantidad
máxima que se está dispuesto a pagar por aumentar la cantidad del i-ésimo
recurso (vector independiente). Se suele referir a y ∗ como un vector de
precios sombra para el vector del lado derecho.

4.3. Análisis de sensibilidad.

En el análisis de sensibilidad se busca determinar en qué rango la variación de


los parámetros afecta el comportamiento en la solución óptima.

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:

Variación en el vector de costos c.

Variación en el vector del lado derecho b.

Variación en la matriz de restricciones A.

Introducción de una nueva actividad.

40
Introducción de una nueva restricción.

Variación en el vector de costos c


Considere una solución óptima de 1.33 y suponga que se modifica el vector
de costos en un(o más) coeficiente ck por uno c0k . Esta modificación puede
ocasionar pérdida de factibilidad dual.
Considere los siguientes casos:

Caso I: Variación del coeficiente en la función objetivo de una variable no básica.


Sea xk una variable no básica. Note que, zj = cB B −1 aj no varı́a, ∀j y
zk − ck ≤ 0, pues el punto actual es el óptimo.
Reemplazando ck por c0k , se tiene zk − c0k = (zk − ck ) + (ck − c0k ), si es
positivo se continúa con el método de simplex modificando ck por c0k en
la última tableau, caso contrario la solución dada sigue siendo la óptima
para el nuevo problema.

Caso II: Variación del coeficiente en la función objetivo de una variable básica.
Si xk es una variable básica, por ejemplo xk ≡ xBt y reemplazando cBt
por c0Bt . Si el nuevo valor de zj es zj0 , entonces

zj0 − cj = c0B B −1 aj − cj = c0B yj − cj

= cB yj − cj + (0, 0, ..., c0Bt − cBt , 0, ..., 0)yj

= (zj − cj ) + (c0Bt − cBt )ytj , ∀j. (1.34)

En particular, si j = k entonces zk − ck = 0 y ytk = 1 (mı́rese la


interpretación de las entrada y salida de la base), lo cual implica en la
ecuación (1.34) que zk0 − c0k = 0. Por tanto, se puede actualizar el reglón
de costos sumando el reglón original de costo y el reglón t actual de la
tableau final por el producto del cambio neto en el costo de xBt ≡ xk .
Entonces se actualiza de zk0 − ck a zk0 − c0k = 0, en el proceso se obtiene

41
un nuevo valor objetivo

c0B B −1 b = cB B −1 b + (c0Bt − cBt )B −1 b

= cB B −1 b + (c0Bt − cBt )bt .

Variación en el vector del lado derecho b


Suponga que se cambia de vector b a b0 entonces se reemplaza B −1 b por
B −1 b0 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 −1 b0 ≥ 0, la solución actual aún es óptima y los valores de las


variables básicas son B −1 b y el valor objetivo cB B −1 b0 .

Si B −1 b0  0, se aplica el algoritmo Simplex dual pues los costos


reducidos no han sufrido variación y entonces la tableau final presenta
una solución no factible (PP) y dual factible.

Variación en la matriz de restricciones A


En este caso se tiene dos posibilidades que la columna que cambie sea no básica
o no básica.

Caso I Variación en vectores de actividades para columnas no básicas.


Suponga que se cambia la columna aj por a0j , entonces se tiene B −1 a0j y
zj0 − cj = cB B −1 a0j − cj .

• Si zj0 − cj ≤ 0, la solución anterior es la óptima.

• Si zj0 − cj es positivo, se actualiza la columna j en la tableau,


introduciendo la variable xj no básica y se continua con el método
simplex.

Caso II Variación en vectores de actividades para columnas básicas.


Suponga que se cambia la columna aj por a0j . Este cambio puede afectar
considerablemente al problema pues el conjunto actual de vectores básicos
puede no formar una base.
Supóngase que se enumera de 1 a m las columnas básicas y que se cambia

42
en la columna básica j, aj por a0j . Sea B −1 la base inversa actual y
calculemos yj0 = B −1 a0j , entonces se tiene las siguientes posibilidades:

0
• Si yjj = 0, el conjunto de vectores actual no es linealmente
independiente.

0
• Si yjj 6= 0, se considera a este valor como pivote y se puede
reemplazar la columna j, la cual es comúnmente un vector unitario
por yj0 . La base presente continua siendo base, si la factibilidad
primal o dual no fuera posible, se recurre a algunas técnicas primal
o dual de variables artificiales para su resolución

Introducción de una nueva actividad


Supóngase que se desea añadir una nueva actividad xn+1 con costo cn+1 y
considere la columna de consumo an+1 para la producción. La variable xn+1
puede no afectar a la optimalidad del problema y en cuyo caso es una variable
no básica, caso contrario debe ingresar a la base.
Introducción de una nueva restricción
Suponga se quiere añadir una nueva restricción al problema (1.33). Para el
óptimo del nuevo problema se tiene lo siguiente:

Si el óptimo actual satisface la nueva restricción, entonces también es


óptimo del nuevo problema.

Si el óptimo actual no satisface la nueva restricción, se puede usar el


método dual simplex para encontrar el nuevo óptimo.

Tomado del libro de Bazaraa y Jarvis(1977).

4.4. Análisis paramétrico.

En el análisis paramétrico se hallan soluciones óptimas a lo largo de una


dirección fija en una clase de problemas perturbados en el vector objetivo o en
el vector del lado derecho. En este trabajo se analizará solo la parametrización
del vector de costos.

43
Perturbación del vector de costos
Considere el siguiente problema lineal

mı́n z = cx

sujeto a Ax = b

x ≥ 0.

Supóngase B una base óptima y considere el problema perturbado

mı́n z = cx + λc0 x

sujeto a Ax = b (1.35)

x ≥ 0, λ ≥ 0.

Descomponiendo A en [B, N ], c en (cB , cN ) y c0 en (c0B , c0N ), aplicando esta


descomposición en el problema (1.35)

z − cx − λc0 x = z − (cB + λc0B )xB − (cN + λc0N )xN = 0 (1.36)

Ax = BxB + N xN = b (1.37)

Actualizando la tableau y denotando zj0 = c0B B −1 aj = cB yj .


De la ecuación (1.37) xB = B −1 b − B −1 N xN , esto en la ecuación (1.36)

z − (cB + λc0B )xB − (cN + λc0N )xN = 0

z − (cB + λc0B )(B −1 b − B −1 N xN ) − (cN + λc0N )xN = 0

z + cB B −1 N xN − cN xN + λc0B B −1 N xN − λc0N xN = cB B −1 b + λc0B B −1 b


X
z+ [(zj − cj ) + λ(zj0 − c0j )]xj = cB b + λc0B b
j∈R

X
xB + yj xj = b,
j∈R

44
donde R es el conjunto de ı́ndices asociados a las variable no básicas.
Si λ = 0 el problema coincide con el problema original y su solución básica
factible óptima se mantiene.
Interesa mantener la optimalidad si se mueve la dirección c0 . Sea

S = {j; zj0 − c0j > 0}

1. Si S = ∅, entonces para todo λ ≥ 0 la solución actual es la óptima.

2. Caso contrario, calcule

−(zj − cj )
 
−(zk − ck )
λ̂ = mı́n =
j∈S zj0 − c0j zk0 − c0k

• Sea λi = λ̂.

• Para λ ∈ [λi , λi ](iteramos desde i=1, empezando con el intervalo


[0, λˆ1 ], ası́ sucesivamente) la solución actual es óptima y su valor
objetivo este dado por cB b + λc0B b.

• Para λ ∈ [λi , λi ] se reemplaza (zj − cj ) + λ(zj0 − c0j ) 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 asignación

El problema de asignación es uno de los problemas de estructura particular que


se expresa con la ayuda de la teorı́a de grafos. Es una variación del problema
del problema de transporte que consiste en asignar m orı́genes a m destinos.
El modelo matemático para el problema de asignación usa variables de decisión

45
binaria: 
1, si se asigna i para realizar la actividad j ,

xij =
0, caso contrario.

para todo i = 1, ...m y j = 1, ..., m.


Si z es el coste total que deseamos minimizar el problema de asignación es

m X
X m
mı́n z = cij xij
i=1 j=1

sujeto a

m
X
xij = 1, i = 1, ..., m
j=1
Xm
xij = 1, j = 1, ..., m
i=1

xij = {0, 1}, para toda i y j.

46
CAPÍTULO 2

Metodologı́a

En este capı́tulo se presenta el modelo general definido para semestres fijos,


entendiéndose como tal el periodo lectivo 2016-2017, se han trabajado con las
restricciones débiles y fuertes para presentar el horario de docentes con los
requerimientos de la institución.

1. Formulación del modelo general

Parámetros
a=número de materias de las áreas de matemáticas que se dictan por semestre
en cada carrera.
d=número de docentes.
m=número de materias.
r=número de salas.
z=número de horas de clases en el dı́a.
Índices
En la tabla siguiente se encuentra los ı́ndices relacionados con las variables que
se considerarán al plantear el modelo del problema.

Tabla 2.1: Índices


Índice Significado
i ı́ndice de docente
j ı́ndice de materia
k ı́ndice de hora de clase
l ı́ndice de sala

47
1.1. Variables de decisión.

Las variables de decisión son binarias:






 1, si se asigna el docente i para dictar la materia j,


xijkl = 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. Formulación matemática de las restricciones.

1. Las materias de un mismo semestre no se deben dictar en la misma hora


k de clases.
X m X
r X d
xijkl ≤ 1, k ∈ {1, 2, ..., z}.
l=1 j=1 i=1

2. Cada docente i se le debe asignar una materia j, una sala l en una hora
de clases k.

r X
X m
xijkl ≤ 1, i ∈ {1, 2, ..., d}, k ∈ {1, 2, ..., z}.
l=1 j=1

3. A cada materia j se le asigna a lo más un sala l en una hora de clases k.

r X
X d
xijkl ≤ 1, j ∈ {1, 2, ..., m}, k ∈ {1, 2, ..., z}.
l=1 i=1

4. A cada sala l se le asigna a lo más un materia j en una hora de clases k.

m X
X d
xijkl ≤ 1, k ∈ {1, 2, ..., z}, l ∈ {1, 2, ..., r}.
j=1 i=1

48
5. Cada materia j tienen un número de horas semanales Ej .

r X
X z X
d
xijkl = Ej , j ∈ {1, 2, ..., m}.
l=1 k=1 i=1

6. Cada docente i tienen carga horaria Di semanal.

r X
X z X
m
xijkl = Di , i ∈ {1, 2, ..., d}.
l=1 k=1 j=1

1.3. Función objetivo

Maximizar la asignación de los docentes a una determinada materia y horario


de clases, donde la materia tiene asignada una determinada sala.

r X
X z X
m X
d
máx z = cijkl xijkl
l=1 k=1 j=1 i=1

2. Modelo particular

2.1. Recolección de datos.

Se abordará el problema de asignación de horarios en el caso particular de un


campus de la escuela de matemática de una Institución de Educación Superior.
La escuela de matemática se hace cargo de las áreas de cálculo y álgebra,
estadı́stica, fı́sica, geometrı́a y matemática.
Cada semestre se lleva a cabo la programación horaria en la escuela de
matemáticas tomando en cuenta las materias que se dictan (algunas se dictan
de manera común entre las carreras), docentes y su disponibilidad horaria,
horas de clase por carrera, número y capacidad (o recursos especı́ficos) de la
sala (aulas, laboratorios y talleres). La programación horaria se realiza dentro
de un marco de 5 dı́as y 7 sesiones diarias(horas clase diarias). El número de
materias de las áreas de matemáticas que se dictan por semestre en cada carrera

49
oscilan de 0 a 2.

Figura 2.1: Codificación del dı́a y la hora de clase.

La escuela de matemáticas se encarga de 35 materias con un promedio de 242


paralelos por semestre. En el campus que se realizará la planificación horaria
se dictan 23 materias. Las materias tienen una codificación asignada por la
institución y escuela; se dictan en un rango de 2 a 6 horas semanales.

Figura 2.2: Número de materias y paralelos.

50
Las salas disponibles del campus son 2 laboratorios, 17 aulas.

Figura 2.3: Información salas.

La escuela de matemáticas 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 académico 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 nómina 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, máxima y número de docentes por tiempo
de dedicación .

51
3. Formulación verbal y matemática del modelo

Se genera dos modelos de optimización 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 además, se


controla la carga horaria de cada docente y el número de horas semanales que
se dicta una materia.

Variables de decisión.

Las variables de decisión son binarias:



1, si se asigna el docente i para dictar la materia j en un determinado paralelo,

xij =
0, caso contrario.

para todo i ∈ {1, ..., 16}, j ∈ {1, ..., 23}.

En la asignación de horarios de la escuela de matemáticas se debe cumplir con


las restricciones fuertes y débiles impuestas.
Restricciones fuertes.

A cada docente i se le debe asignar una materia j

23
X
xij ≤ 1, i ∈ {1, 2, ..., 16}.
j=1

No se debe sobrepasar, ni disminuir las horas en que una materia es


dictada.
16
X
xij = Ej , j ∈ {1, 2, ..., 23}.
i=1

Ej =número de horas semanales que se dicta la materia j.

52
Respetar la carga horaria de cada docente.

23
X
Hj xij = Di , i ∈ {1, 2, ..., 16}.
j=1

Hj =horas semanales que se dicta las materia j.


Di =número de horas semanales que dicta clases el docente i, según 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 formación


académica pues determina la función objetivo del problema en este modelo.

Función objetivo

Minimizar la asignación de los docentes a una materia en un determinado


paralelo.
23 X
X 16
mı́n z = cij xij
j=1 i=1

3.2. Modelo materia-sala y hora.

El modelo asigna una sesión de clases, una sala a una materia.

Variables de decisión.

Las variables de decisión son binarias:






 1, si se asigna una hora de clases k en una sala l para


xjkl = 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 matemáticas.

No se debe producir choques horarios entre materias del mismo nivel


(semestre).
19 X
X 23
xjkl ≤ 1, k ∈ {1, 2, ..., 7}.
l=1 j=1

A cada materia j se le debe asignar una sala l en una sesión k.

19
X
xjkl ≤ 1, j ∈ {1, 2, ..., 23}, k ∈ {1, 2, ..., 7}.
l=1

Una sala no puede ser designado a dos o más materias en una hora de
clases.
23
X
xjkl ≤ 1, k ∈ {1, 2, ..., 7}, l ∈ {1, 2, ..., 19}.
j=1

3.3. Función objetivo

Minimizar la preferencia de los docentes (ya que en el modelo anterior se


asignó un docentes a materias) con respecto a las sesiones k de clases diarias.

19 X
X 7 X
23
mı́n z = cjkl xjkl
l=1 k=1 j=1

La suma de la optimización de todas las funciones objetivos da como resultado


la optimización de la función general por el principio de optimización de
1
Bellman.

1
An optimal policy has the property that whatever the initial state and initial decisions
are, the remaining decisions must constitute an optimal policy with regard to the state
resulting from the first decisions.(Richard Bellman, 1954). Una polı́tica óptima es la más
ventajosa secuencia de decisiones de acuerdo con un criterio predefinido.

54
CAPÍTULO 3

Implementación

Para realizar la implementación del modelo matemático se realizó una


aplicación de escritorio, para lo cual se utilizó las siguientes herramientas
informáticas:

• MATLAB: Software matemático lanzado al mercado en 1984, la


última versión en el mercado es R2017a y se encuentra disponible para
diferentes plataformas de hardware. Permite analizar y procesamiento
de datos, desarrollar algoritmos, visualización y representación de
gráficos o crear modelos, además de contar con su propio lenguaje
de programación. Matlab puede ser descargado de su página oficial
MathWorks, www.mathworks.com/products/matlab.html.

• MySQL: Sistema de administración de base de datos, con licencia


comercial o libre(para código abierto). Puede ser usado en cualquier
plataforma informática, la última versión disponible es 5.7.19 que se
encuentra para su descarga en la página, dev.mysql.com/.

• NetBeans IDE: Herramienta de programación que permite escritura,


depuración, complicación y ejecución de programas; con licencia
libre(código abierto) y gratuita, ejecutable en diversas plataformas. Sirve
para realizar aplicaciones de escritorio, móviles, web Java y HTML5 con
HTML. La versión Netbeans IDE 8.2 se encuentra disponible en la página,
netbeans.org.

Para realizar un ejemplo se utilizó Classic LINDO versión 6.1. un producto


de LINDO Systems, que es un programa de uso sencillo que permite resolver
problemas de programación lineal, entera, no lineal, estocástica y global;

55
se encuentra en descarga libre como versión de prueba en la página 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 información de las carreras que están en


el campus seleccionado de la escuela de matemáticas: código, nombre y
número 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 duración, hora de inicio y finalización de


cada sesión 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 número de docentes según su


tiempo de dedicación con sus respectivas horas máximo 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 según su tiempo de dedicación.

Figura 3.9: Tabla TimePreference en MySQL.

La escuela tiene cuatro horarios disponibles para los docentes según su


tiempo de dedicación como se observa en el cuadro siguiente:

Figura 3.10: Datos en la tabla TimePreference.

58
• Tabla ClassRoom: Detalla los parámetros código, 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, número de horas


semanales, número 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 identificación, 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 académicos y el nivel de


educación de los docentes.

60
Figura 3.17: Tabla AcademicTrainning en MySQL.

Figura 3.18: Datos de la tabla AcademicTraining.

• Tabla ScoreAcademicTraining: Puesto que la asignación se hará de


acuerdo a una puntuación, se coloca esta tabla en la que se evaluará los
tı́tulos de los docentes con respecto a las áreas que tiene la escuela.

Figura 3.19: Tabla ScoreAcademicTraining en MySQL.

• Tabla Parallel: Incluye el código 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 código de


área.

Figura 3.21: Tabla Area en MySQL.

Figura 3.22: Datos de la tabla Area.

• Tabla Timetable: Esta tabla detalla la información de cada sesión de


clases: paralelo, dı́a, hora, el número 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 sección anterior, se muestra en la


siguiente imagen:

Figura 3.25: Relaciones entre las tablas.

63
Procedimiento General para la asignación

Los siguientes pasos han sido implementados en la herramienta Netbeans y la


asignación realizadas en Matlab.

1. Calificar a los docentes: Puesto que, es un problema de minimización


se puntuará al docente adecuado con el menor valor posible. El docente
se califica para dictar una materia en un paralelo según, su formación
académica. Se puntúa de 0 a 3 la formación académica.

2. Resultados del modelo: Se obtiene la asignación simultánea del


docente a la materia, paralelo.
Observación 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 colocará la puntuación 0.

3. Asignación de materia a sesiones de clases: Se puntúa 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 más materias que salas, en una hora determinada del dı́a no se
puede realizar la asignación completa, el programa mostrará el siguiente
mensaje:

Figura 3.26: Mensaje de salas.

Si hay más materias que profesores, no se puede realizar la asignación


completa, el programa mostrará el siguiente mensaje:

64
Figura 3.27: Mensaje de materias.

2. Si hay más salas que materias, en una hora determinada del dı́a, cualquier
asignación en la que no se crucen las salas es factible.

4. Ejemplo Lindo

Para ejemplificar el procedimiento de la asignación de horarios se utiliza el caso


del docente X21 1 . Se realizan los siguientes pasos:

1. Calificar a los docentes: El docente se califica para dictar una materia


en un paralelo según, su formación académica. Se puntúa de 0 a 7 la
formación académica.
2
Por ejemplo: La materia Estadı́stica con código E100 de la área 2,
tiene 3 paralelos y el docente X21 a tiempo completo, con formación en
matemáticas y al cual se le asigna una preferencia para impartir clases
en el horario de la mañana.
Observación 5. Los items 1., 2. y 3. inician con las materias del área
de estadı́stica, pues son las que requieren de una formación académica de
acuerdo a los contenidos.

2. Implementar el modelo: Desarrollar el modelo para implementar en


la herramienta LINDO 6.1.
1
Debido a que los datos esta relacionados a nombres reales de docentes de la Institución
Superior, se colocará en su lugar la letra X seguido de un número relacionado con la
numeración de docente.
2
En la Escuela de Matemáticas se tiene mayor preferencia por usar los códigos de las
materias que su nombre

65
Figura 3.28: Modelo de la materia E100 en LINDO.

3. Resultados del modelo: Se obtiene la asignación simultánea del


docente a la materia y al paralelo correspondiente. Generando el reporte
de LINDO se observa que, bajo la columna variable se encuentra el código
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 puntúa 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: Asignación de los paralelos de la materia E100.

66
4. En este punto se asignan todas las materias que un docente dictará de
clases, en que paralelos y sedes, sin exceder el número de horas permitidas
de cátedra. En la siguiente figura se puede observar la asignación de las
materias, paralelos(con hora de clase), sedes y número de horas total
asignada al docente X21 .

Figura 3.30: Asignación de las materias, paralelos, sede y horas al docente X21 .

Observación 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 colocará la puntuación 0.

5. Asignación 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 continuación, el proceso de asignar
los recursos a los paralelos de las materias en cada sede:

a. Se asignan los recursos más 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 número de alumnos.

c. Revisar que no existan coches en las asignaciones.

Por ejemplo, la materia Álgebra paralelo 02 y código A164-02, tiene un


cupo disponible de 42 estudiantes y 3 horas de clases semanales. Se le
asigna para los dı́as lunes, miércoles y viernes a la doceava hora el aula

67
142(capacidad 42 alumnos).

7. Generación de los horarios de los docentes:En la figura siguiente


se muestra la salida de la información obtenida, que consta del código de
la materia, paralelo y sala con sede a dictarse:

Figura 3.31: Horario del docente X21 .

Análisis de sensibilidad

Suponga que luego de haber realizado el proceso de asignación se cambia alguna


calificación a un docente entonces se desea conocer si esto afecta a la solución
óptima que se halló, para ello en este trabajo se utilizó el análisis de sensibilidad.
El análisis de sensibilidad proporcionará un rango en el cuál la solución óptima
se mantenga aunque el valor de la función cambie.
El programa LINDO entre sus opciones permite realizar un análisis 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 función objetivo se encuentra en la columna
current coef.

69
CAPÍTULO 4

Conclusiones y recomendaciones

Conclusiones

A partir de los fundamentos teóricos de la programación lineal, se tiene


una base sólida, que sustenta el esquema teórico-práctico desarrollado con
los datos más significativos, obtenidos luego de un análisis previo.

Con el uso de la herramienta, se obtuvieron soluciones óptimas,


relacionando la calificación del docente y la materia a impartir.

Se asignó la mayor cantidad de docentes a materias a las que son más


afines, lo cual ayuda a mejorar y mantener el nivel de educación en la
escuela, esto cumpliendo la mayor cantidad de requerimientos impuestos.

La realización de una herramienta como la presentada ayuda a la


asignación de horarios.

Se disminuye el uso de papel.

Recomendaciones

Realizar la resolución del problema planteado en este trabajo con la


implementación de otros algoritmos, por ejemplo, branch-and-bound,
Coloración 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
BIBLIOGRAFÍA

[1] AIZAM, N. A., UVARAJA, V. (2015). Generic Model for Timetabling


Problems by Integer Linear Programming Approach. International Journal
of Mathematical, Computational, Physical, Electrical and Computer
Engineering, 9 (12), 701-708.
[2] BAZARAA, M. S., JARVIS, J. J. (1977). Linear Programming and Network
flows. New York, USA: Wiley & Sons.
[3] BAZARAA, M. S., SHERALI, H. D., SHETTY, C. M. (2006). Nonlinear
Programming: Theory and Algorithms (Tercera ed.). Hoboken, New Jersey,
USA: John Wiley & Sons.
[4] BENÁLCAZAR, H. (2013). Álgebra Lineal y Aplicaciones. Quito, Ecuador.
Serie de Matemática Universitaria.
[5] BURKE, E. K., MAREČEK, J., PARKES, A.J., RUDOVÁ, H. (2012). A
branch-and-cut procedure for the Udine Course Timetabling problem. Ann
Oper Res, 194, 71-87. doi:10.1007/s10479-010-0828-5
[6] CABALLERO, J. (2008). Asignación de Horarios de Clases Universitarias
mediante Algoritmos Evolutivos (Tesis Maestrı́a). Recuperado de
http://manglar.uninorte.edu.co/handle/10584/80
[7] FAIGLE, U., KERN, W., STILL, G. (2002). Algorithmic Principles
of Mathematical Programming (Vol. 24). (S. Netherlands, Ed.).
Springer-Science+Business Media, B.V.
[8] ESQUIVEL, L. (2014). Modelo Matemático para la programación de
un horario escolar con milti-localización de docentes (Tesis Maestrı́a en
Ingenierı́a- Énfasis en Ingenierı́a Industrial). Universidad del Valle, Santiago
de Cali.
[9] FRANK, A. (2005). On Kuhn’s Hungarian Method—A tribute from
Hungary. Naval Research Logistics, 52, 2–5. doi:10.1002/nav.20056
[10] FUENTE, J. L. (1998). Técnicas de cálculo para Sistemas de Ecuaciones,
Programación Lineal y Programación Entera (Segunda ed.). Barcelona,
España: Reverté.
[11] GUERRA, M., PARDO, E., SALAS, R. (2013). Problema del School
Timetabling y algoritmos genéticos: una revisión. Vı́nculos, 10 (2), 259-275.

71
[12] HEREDIA, M. (2014). Modelo de programación lineal entera para la
generación de horarios de clase en la universidad (Tesis Pregrado). Escuela
Politécnica Nacional, Quito, Ecuador.
[13] HITCHCOCK, F. L. (1941). The Distribution of a Product from Several
Sources 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). Restricciones
Blandas: Modelos y Algoritmos. Inteligencia Artificial. Revista
Iberoamericana de Inteligencia Artificial, 7 (20). Recuperado de
http://www.redalyc.org/articulo.oa?id=92572006
[16] LIPSCHUTZ, S. (1992). Álgebra Lineal (Segunda Ed.). Madrid, España:
McGRAW-HILL.
[17] MEYER, R. M. (1979). Essential Mathematics for Applied Fields. New
York, USA: Springer-Verlag.
[18] MORENO, P., SÁNCHEZ, J., GARCÍA, A. (2007). Aplicación de
técnicas de enfriamiento lento al problema de planificación de horarios.
Ciencia, Tecnologı́a y Medio Ambiente, V, 3-21. Recuperado de
https://dialnet.unirioja.es/servlet/articulo?codigo=2596432
[19] OLIVA, C., RAMÍREZ, G. (2013). Algoritmo de tipo búsqueda tabú para
un problema de programación de horarios universitarios vespertinos. Inge
Cuc, 9 (2), 58-65.
[20] PRAWDA, J. W. (2004). Métodos y Modelos de Investigación de
Operaciones (Vol. 1). México, D.F., México: Limusa.
[21] SHAERF, A. (1999). A Survey of Automated Timetabling. Artificial
Intelligence Review, 13 (2), 87–127.
[22] SRINIVASAN, S. (2011). Modeling the Homeschool timetabling
problem using Integer programming (Tesis Maestrı́a). Recuperado de
http://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 elaboración de este manual tiene como fin, explicar el funcionamiento de la


presentación en pantalla de las soluciones óptimas 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 mostrará de una manera
amigable los resultados en las pantallas de Netbeans para ser usado por el
usuario.
Esquema de navegación.
Para manejar el programa, se han creado, cinco ventanas en la pantalla
principal:
General

Carrera

Salas

Áreas

Configuración Horaria

Asignaturas

Materias

Paralelos

74
Docentes

Profesores

Formación Académica

Horarios
Salir

A continuación se presentará las distintas ventanas con sus funcionalidades.

Figura 1: Ventana de presentación.

GENERAL

Figura 2: Ventana General.

Carrera

Figura 3: Ventana Carreras.

75
Cuenta con cuatro opciones:insertar, actualizar, eliminar y limpiar.

• Se ingresa el código, previamente establecido por la Institución de


Educación Superior, el nombre y el número 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 número


de semestres, clic en actualizar si hemos guardado correctamente
tendremos el mensaje de la figura 6.

Figura 5: Actualización de datos de la carrera.

Figura 6: Mensaje de actualización.

• Se selecciona la carrera que se desea eliminar, clic eliminar, si se


ha eliminado con éxito 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 éxito al eliminar.

Figura 8: Mensaje de error al eliminar.

• Al hacer clic en limpian todos los campos llenos en código carrera,


carrera y nro de semestres se borran.

Salas
En esta ventana hay cuatro campos Id, código 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

Área
Esta pestaña contiene tres campos código área, nombre área e
identificación(se coloca una letra que identifique al área). Al igual que en
el caso de las carrera se tiene cuatro botones insertar, actualizar, eliminar
y limpiar.

77
Figura 10: Ventana Área

Configuración 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 asignará A de activo o I de inactivo. Cuenta
con botones: limpiar y actualizar, se puede actualizar solo los dı́as hábiles
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 área muestran opciones
desplegables para luego llenar los campos que se piden.

79
Figura 15: Ventana de Materias.

• Paralelos: En la opción de materias se ingresó el Nro. Paralelos, en


esta ventana se ingresa el cupo disponible y aparecerán los paralelos
con el código, 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


código, tiempo de dedicación y lista de preferencias. Al seleccionar
un elemento de la lista se tinturará verde.

80
Figura 18: Ventana Profesores.

• Formación académica: Aquı́ se ingresa los tı́tulos de los docentes


de la lista profesores.

Figura 19: Ventana Formación académica.

HORARIO DOCENTE
Al seleccionar su nombre, el docente visualiza el horario que le
corresponde e implı́citamente, realiza un proceso de decodificación de
cada materia que imparte, por la familiaridad con que maneja los códigos,
generada en el manejo de syllabus.

81
Figura 20: Ventana que indica la asignación completa.

82

También podría gustarte