universidad de chile facultad de ciencias...
TRANSCRIPT
UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS DEPARTAMENTO DE INGENIERIA INDUSTRIAL
FORMULACIÓN DE UN MODELO DE PROGRAMACIÓN MATEMÁTICA
PARA LA ASIGNACIÓN DE HORARIOS ESCOLARES
TESIS PARA OPTAR AL GRADO DE MAGÍSTER EN
GESTION DE OPERACIONES
ROBERTO DEL BARCO GAMARRA
PROFESOR GUIA:
SR. PABLO ANDRES REY
MIEMBROS DE LA COMISIÓN EVALUADORA
SR. RICHARD WEBER HAAS
SR. JAIME MIRANDA PINO
SR. VICTOR PARADA DAZA
SANTIAGO DE CHILE
MAYO, 2010
-iii-
Agradecimientos
A Dios, pues sin su guía, compañía y fortaleza ésta tarea hubiera quedado inconclusa. A toda mi familia, a quienes no puedo menos que agradecerles por el apoyo tanto económico como espiritual, pues he corrido con la mejor de las suertes al tenerlos a mi lado. A mi esposa, Zumel Espinoza, por haberse contagiado con mi entusiamo en el momento de emprender con el Magíster, quedando en statu quo otros planes conjuntos. Como parte de este proyecto de formación profesional, tiene un particular espacio la acogida recibida por la Residencia Universitaria Cardenal Caro. Expreso a sus directores y principalmente amigos Gabriela Vivanco y Victor Allende -al igual que a la Comunidad Marianista- mi mayor agradecimiento por su consejo y amistad. Agradezco a la Universidad de Chile que me permitió vivir una experiencia académica que marcará mi desarrollo profesional de aquí en adelante. La enseñanza recibida por parte de los señores docentes -quiénes son personajes reconocidos dentro del área de la gestión de operaciones- motiva mi actuar y condicionan el deseo de aportar, desde cualquier esfera, al desarrollo de la ciencia. Al Dr. Pablo Rey, tutor del presente trabajo, quién no escatimó su tiempo para poder guiar el desarrollo del mismo, sus comentarios y observaciones permitieron hacer de éste un mejor trabajo. Finalmente, y como una enseñanza práctica de cómo la logistica se constituye en un pilar fundamental en la prestación de servicios, agradezco a Julie Lagos Barra por su colaboración y gestión.
A todos ellos, gracias.
-iv-
Resumen El problema de programación de horarios en una institución educativa consiste en determinar
una secuencia de encuentros entre profesores y estudiantes en un determinado período de tiempo
satisfaciendo un conjunto de restricciones de diversa índole. En particular, una buena
configuración horaria permite construir los lineamientos estratégicos, programáticos y operativos
de la política de servicio en el área educativa. La motivación del presente trabajo se basa en la
solución a un problema que pertenece a esta familia combinatorial, donde el entorno esta
definido por el sistema educativo boliviano focalizado en la Unidad Educativa Colegio
Americano de la Ciudad de Oruro, tomando en cuenta las condicionantes distintivas de la
misma.
La solución planteada obedece a un enfoque exacto, mediante la conformación de un modelo de
programación entera mixta. La determinación de la función objetivo consistió en dividir el
conjunto de restricciones esenciales y el otro con los atributos deseables en un horario a ser
penalizados en la función objetivo.
La instancia abordada, correspondiente a la configuración horaria de la gestión 2008, presentó
alrededor de 25.000 variables y 89.000 restricciones alcanzando soluciones con un gap menor al
5% en aproximadamente 28 horas de funcionamiento. El problema de programación entera
mixta fue modelado con OPL STUDIO 3.5.1. y resuelto con CPLEX 7.5. Sobre la misma
instancia se evaluó la aplicación de un enfoque alternativo basado en la búsqueda local para
disminuir el costo computacional además de generar un horario compacto para los educadores,
alcanzándose soluciones con menos del 5% de gap en 8 horas.
Por la comparación del desempeño del enfoque exacto con la heuística se desarrollo una familia
de instancias cuyos resultados revelaron que para instancias pequeñas se alcanza buenos
rendimientos en tiempos razonables además de quedar establecido que existe una mayor
dependencia del costo computacional con el tamaño del problema que con las características
distintivas del mismo.
-v-
Índice General Pág
Capítulo I
1.1. Introducción 1
1.2. Caracterización y clasificación de los problemas de asignación de horarios 2
Capitulo II
2.1. Planteamiento y Formulación del Problema 5
2.2. Objetivos 7 2.2.1. Objetivo General 7 2.2.2. Objetivos Específicos 7
2.3. Diseño Metodológico 7 2.3.1. Aspectos metodológicos e investigativos 7 2.3.2. Definición del sistema 8 2.3.3. Construcción del modelo 8 2.3.4. Solución del modelo 9 2.3.5. Validación del modelo 9
Capítulo III
3.1. Introducción 10
3.2. El problema de asignación de horarios escolares en su versión básica 13 3.2.1. Formulación del problema PHEB 13
3.3. Resolución del PHEB basada en flujo de grafos 14 3.3.1. Fijando los Cursos del Colegio 14 3.3.2. Fijando las horas de clase 15
3.4. El modelo de extensión a la versión del PHEB 16 3.4.1 Aplicación de Tabu Search al modelo extendido del PHEB 18
3.5. Modelo General de asignación de Horarios Escolares (PHE) 19 3.5.1. Descripción del problema para el modelo general PHE 19
Capítulo IV
4.1. Descripción de la Unidad Estudiada 24
4.2. Elementos para la Formulación del Problema 29
4.3. Configuración Horaria Actual 31
Capítulo V
5.1. Formulación Matemática 36 5.1.1. Índices 36 5.1.2. Parámetros: 36 5.1.3. Variables de decisión 36 5.1.4. Restricciones 37 5.1.5. Función Objetivo 39
-vi-
5.2. Desarrollo del algoritmo de solución del modelo planteado 41 5.2.1. Consideraciones Iniciales con relación a la instancia abordada 41 5.2.2. Carga Horaria 41 5.2.3. Límite del Número de lecciones diarias y disponibilidad de profesores 42 5.2.4. Disponibilidad de cursos 42 5.2.5. Penalidades 43 5.2.6. Descripción del Software y Hardware empleado 44 5.2.7. Resolución del modelo 44
5.3. Heurística de Solución 46
Capítulo VI
6.1. Resultados utilizando la heurística 51
6.2. Familia de Instancias de prueba 52 6.2. Comparación de enfoques para la familia de instancias 56
6.3. Visualización de los resultados 56
Capítulo VII
Bibliografía
Anexos
-vii-
Índice de Figuras Pág
FIGURA 1. Alumnado del Colegio Americano en 2007 y 2008 27
FIGURA 2. Configuración del Horario del Colegio Americano en la gestión 2008 32
FIGURA 3. Extracto de la Configuración de la Agenda de clases de los profesores del Colegio Americano en la gestión 2008 33
FIGURA 4. Interfaz para el ingreso de disponibilidades curso/profesor 43
FIGURA 5. Tiempos de resolución de la instancia por el método exacto .vs. GAPs 45
FIGURA 6. Movimiento entre cursos para mejora de la Función Objetivo 49
FIGURA 7. Tiempos de resolución de la instancia .vs. GAPs 52
FIGURA 8. Tiempos de resolución de la familia de instancias .vs. GAPs, enfoque exacto 54
FIGURA 9. Extracto de la configuración horaria de la instancia abordada presentada en Microsoft Excel 60
-viii-
Índice de Tablas
TABLA 1. Penalidades para la F.O. del modelo extendido de PHEB 18
TABLA 2. Partición del conjunto R 22
TABLA 3. Ciclos por nivel de Educación en el Colegio Americano 25
TABLA 4. Datos de Registro en el Ministerio de Educación de Bolivia 26
TABLA 5. Partición del conjunto R para el problema abordado 35
TABLA 6. Características de la instancia empleada 41
TABLA 7. Penalizaciones en la Función Objetivo por Categorías 43
TABLA 8. Tamaño de la instancia 44
TABLA 9. Resultados obtenidos del método exacto para la instancia empleada 44
TABLA 10. Resultados obtenidos de la heurística para la instancia empleada 51
TABLA 11. Descripción de las Características de la familia de instancias 53
TABLA 12. Resultados de la familia de instancias por el enfoque exacto 54
TABLA 13. Resultados de la familia de instancia para ambos enfoques 55
TABLA 14. Ahorros con el empleo del enfoque heurístico 56
TABLA 15. Resultados de la instancia abordada 56
TABLA 16. Asignación general para el cuerpo docente en la instancia estudiada 58
-ix-
Anexos
Tabla Anexo A.1. Matriz Carga Horaria Materia - Curso de la instancia empleada xi
Tabla Anexo A.2. Matriz Carga Horaria Profesor - Curso de la instancia empleada xii
Tabla Anexo A.3. Máximo de lecciones, Hrs. requeridas y disponibles de los Profesores xiii
Tabla Anexo A.4. Disponibilidades por curso en la instancia empleada xiv
-1-
Capítulo I
Preliminares
1.1. Introducción
En las últimas décadas, el aporte de la investigación de operaciones en la resolución de
problemas prácticos ha alcanzado nivel impensados, fruto de la incorporación de las
herramientas tecnológicas actuales y fundamentalmente el desarrollo de métodos
exactos basados en la profundización de conceptos teóricos que hacen de ésta, una
ciencia apasionante y diversa.
Por su parte, uno de los problemas combinatoriales enteros más clásicos en la literatura
se circunscribe a la programación de actividades. Entre las distintas versiones de estos,
surge el problema de asignación horaria en sus diversas formas, cuya característica
principal es la de asignar recursos a distintas actividades, sean estas productivas o de
servicio.
En el transcurso del tiempo este tipo de asignaciones han tenido una gran aplicación en
los problemas de programación de horarios escolares y universitarios. Si bien la esencia
de estos problemas se concibe como sencilla, la complicación surge en función del
entorno educativo donde es aplicado. Esto significa, que cualquier variante conceptual
en el medio educativo permitirá configurar un problema en particular, produciendo de
esta forma la necesidad de adecuar un determinado método de solución, para una
situación específica y en un entorno único. Esta complejidad ha dado lugar, en muchos
de los casos, a justificar el empleo de metaheuristicas para el abordaje de solución.
La motivación del presente trabajo va enfocada en la resolución de un problema que
pertenece a esta familia, donde el entorno esta definido por el sistema educativo
Boliviano focalizado en la Unidad Educativa Colegio Americano de la ciudad de Oruro,
tomando en consideración las condicionantes distintivas de la misma; sean estas
-2-
referidas aspectos tales como: el régimen educativo, la política de servicio del cuerpo
docente, las condicionantes académicas y políticas de la unidad estudiada.
1.2. Caracterización y clasificación de los problemas de asignación de horarios
El problema de programación de horarios en una institución educativa consiste en
determinar una secuencia de encuentros entre profesores y estudiantes en un
determinado período de tiempo satisfaciendo un conjunto de restricciones de diversa
índole. La solución manual de este problema se constituye en una tarea ardua y
normalmente requiere varios días de trabajo, sin que se asegure que la solución
encontrada sea satisfactoria para todos los agentes involucrados.
Por esta razón, se ha dado una atención especial a una resolución computacional de este
tipo de problemas de programación de actividades. Los primeros esfuerzos nacieron en
la década de los años 60 [CjGc61], desde entonces, son numerosas las publicaciones
que se han escrito sobre el tema. Muchos autores, entre ellos [SchA99] y [WerD85]
acreditan que los problemas de horarios no pueden ser automatizados en forma
completa, tanto porque es difícil discernir cuàndo un horario es mejor que otro, como
también es por el hecho de que dado un espacio de soluciones, la intervención humana
puede elegir una mejor configuración a la que el sistema podría llegar.
Por otra parte, se ha llegado al consenso en la comunidad científica que el problema de
asignación de horarios es de difícil generalización, esto como habíamos indicado
anteriormente debido a la diversidad de regímenes educacionales, el entorno y las
características de cada institución; por esta razón las soluciones desarrolladas están
relacionadas a una institución específica.
Schaerf [SchA99] clasifica los problemas de programación de horarios en tres
categorías:
-3-
• Programación de horarios escolares (School timetabling problem): Se refiere a la
asignación de horarios en una institución con las características de una escuela
secundaria típica. De forma general, esta conformado por un conjunto de profesores,
estudiantes, materias y carga horaria a ser asignada.
El objetivo básico es elaborar un horario de tal forma que:
- Se asigna la carga horaria de todas las materias a todos los cursos.
- Cada lección (o módulo de clase) no es asignada en una misma sala ni con el
mismo profesor, para cualquiera de las horas de clase.
Una característica importante de los problemas de esta categoría es la rigidez de los
horarios disponibles para la configuración del horario. Adicionalmente, el grupo de
estudiantes que se consideran para la asignación de clases es el mismo por el hecho
de pertenecer a un mismo curso. (es decir, cuarto medio, primero básico, etc).
• Programación de horarios de cursos (Course timetabling problem): Se refiere a la
asignación de clases en una institución con las características de una universidad,
esta conformado por un conjunto de cursos (por ejemplo: Cálculo, Anatomía etc.),
salas y mallas curriculares de carreras profesionales (por ejemplo: Ingeniería
Industrial, Medicina, etc).
El problema consiste en asignar cursos en salas con horarios disponibles, respetando
las capacidades existentes y que ningún estudiante que matriculó cursos de un
mismo semestre, tenga horarios de clase en forma simultánea.
• Programación de horarios de exámenes (Examination timetabling problem): Se
refiere a la programación de exámenes en una institución con las características de
una universidad, esta conformado por un conjunto de estudiantes (los cuáles están
matriculados en distintos cursos), exámenes para cada estudiante y horarios
-4-
disponibles para la realización de los exámenes. El objetivo es programar cada
examen de forma tal que ningún estudiante tenga dos o más exámenes
simultáneamente.
Cada problema de programación de horarios 1 puede ser clasificado también a partir de la
necesidad o no de una función objetivo. El Problema de Factibilidad esta relacionado
aquellos problemas en los cuales se requiere un cuadro de horario que sea factible y que
simplemente satisfaga todas las restricciones impuestas. Por su parte, el Problema de
optimización trata de identificar entre el espacio de soluciones factibles que satisfacen
un conjunto de restricciones esenciales, aquella solución que minimice una cierta
función objetivo incorporando un conjunto de restricciones no esenciales.
1 El problema de programación de horarios escolares es citado en la literatura muchas veces como class-teacher, de igual forma, el problema de programación de horarios de cursos es conocido también como University timetabling.
-5-
Marco Metodológico
Capitulo II
Desarrollo de la Estrategia Investigativa 2.1. Planteamiento y Formulación del Problema
En muchos casos, para resolver el problema de asignación de horarios o formular un
horario factible, se utiliza alrededor de una semana de trabajo de un experto sin llegar a
satisfacer todos los requerimientos del problema; esto por las características de la unidad
educativa y el entorno educat ivo donde se desarrolla. Además, dado su nivel de decisión
de mediano plazo, el problema de asignación de horarios se repite año tras año, por la
remoción de profesores, creación o cierre de paralelos en un mismo curso, cambios en la
malla curricular, etc.
Dentro de la literatura existe una escasa cantidad de formulaciones matemáticas para el
abordaje del problema de asignación de horarios escolares. Los modelos de
programación matemática existentes resuelven versiones del problema en una
adaptación muy simplificada del caso real, dificultando la generalización de estos como
herramientas de generación de horarios.
Entre las dificultades principales para la modelación de un Problema de asignación de
Horarios Escolares esta la determinación de una función objetivo. En general el valor
óptimo de una función objetivo en la práctica esta dado a partir de la negociación de los
intereses de los participantes en el proceso de enseñanza, intereses que en muchos de los
casos son mutuamente excluyentes. Este interés se encuentra relacionado
fundamentalmente por el comportamiento de los actores del sistema, esto es, la
asignación de valor a un determinado horario escolar por parte de los profesores y los
educandos.
En ese sentido, concebir a una configuración como la distribución más efectiva de la
carga horaria a la que debe ser sometido un grado cualquiera, nos da a entender que
-6-
existe un conjunto de soluciones factibles dentro del sistema analizado, del cual
obtendremos una configuración que optimice una función de los ponderadores que
agregan valor a los participantes del sistema. En la mayoría de los casos el valor
agregado tiene relación directa con los educadores, quienes requieren que la estructura
de sus tareas educativas siga el patrón deseado.
En los últimos años, en la República de Bolivia se ha desarrollado esfuerzos en la
formulación de programas de mejoramiento ligados a la Educación en el nivel primario
y secundario [Mine05]. En ese sentido el Sistema de Medición de la Calidad Educativa–
SIMECAL- como mecanismo de control de las unidades educativas en el país, permite
discernir en estrategias de transformación de la educación basada en aspectos como la
interculturalidad.
El cuestionamiento acerca de la importancia de encontrar la mejor solución al problema
planteado, permite concluir en que la configuración horaria dentro de la estructura de
cualquier Unidad Educativa es una herramienta elemental en la planificación de las
actividades curriculares y extracurriculares de la institución. En particular, una buena
configuración horaria permite constituir los lineamientos estratégicos, programáticos y
operativos de la política de servicio en el área educativa.
Cuando nos referimos a los lineamientos estratégicos estamos citando el hecho de que el
mantener una estructura horaria, acorde a los requerimientos de los educadores y
educandos, nos permite establecer los periodos de tiempo en los que se desarrollaran
actividades que tienen que ver con la formación integral de los estudiantes permitiendo
hacer un énfasis en las habilidades y destrezas de los mismos con un programa de
diferenciación de alto nivel sin dejar de lado la carga horaria exigida por las leyes
vigentes.
-7-
2.2. Objetivos
2.2.1. Objetivo General
Formular e implementar un modelo de programación matemática para la asignación de
horarios escolares en una aplicación real.
2.2.2. Objetivos Específicos
• Determinar las variables de decisión relevantes en un problema de asignación de
horarios escolares.
• Especificar el conjunto de datos e identificar las fuentes de información necesarias
para la elaboración de programas de asignación de horarios escolares.
• Desarrollar una estrategia para la solución de los modelos que surgen en el problema
de configuración del cuadro escolar.
• Desarrollar un modelo de asignación de horario escolar, en el entorno definido por el
sistema educativo boliviano, focalizado en la unidad educativa Colegio Americano de
la ciudad de Oruro, tomando en consideración las condicionantes distintivas tales
como: el régimen educativo, la política de servicio del cuerpo docente, las
condicionantes académicas y políticas de la unidad estudiada.
• Validar el modelo de asignación de horario escolar comparando la solución obtenida
con los métodos convencionales, en términos de las restricciones del problema y las
medidas de eficiencia establecidas.
2.3. Diseño Metodológico
2.3.1. Aspectos metodológicos e investigativos
• El presente proyecto parte del enfoque metodológico interpretativo porque el
problema como los demás momentos de la investigación están en función de los
requerimientos de la unidad de análisis. [HeFe07]
• El nivel de investigación que se utilizó está en función tanto del objetivo general
como de los objetivos específicos planteados, teniendo la investigación un nivel
descriptivo. [HeFe07]
-8-
• Los resultados a los que arriba el presente proyecto se introdujeron para
constituirse en una herramienta en la toma de decisiones de la Unidad Educativa,
por tanto el tipo de investigación es aplicado.
La investigación de operaciones se caracteriza por la utilización de modelos
matemáticos que buscan solucionar el problema de toma de decisiones asociados a la
investigación. Como disciplina tiene un marco metodológico bien definido y tiene la
suficiente generalidad como para ser aplicado en problemas de muy diversa índole. La
metodología se compone de cuatro etapas principales: Definición del sistema,
construcción del modelo, solución del modelo y validación de las soluciones [OrVV00].
2.3.2. Definición del sistema
En esta etapa corresponde identificar el ámbito del sistema bajo estudio, establecer el
objetivo del mismo e identificar sus alternativas de decisión. Para establecer el ámbito es
necesario desarrollar un modelo conceptual del sistema. Esto consiste en identificar sus
componentes y las relaciones existentes entre ellas, definir los límites o fronteras del
mismo, el medio ambiente y las posibles influencias de éste sobre el sistema.
Para el desarrollo de lo anterior se tomó en cuenta la dimensión espacial del sistema, el
nivel de las decisiones, la separabilidad de las decisiones, el tiempo y recursos
disponibles además de las condicionantes distintivas del problema de estudio. En el
Capítulo IV se aborda la definición del sistema de la unidad analizada.
2.3.3. Construcción del modelo
Una de las principales características de la investigación de operaciones es la utilización
de modelos matemáticos en la resolución de los problemas. En ese sentido, entendamos
a un modelo como la representación idealizada de una situación u objeto concreto. Los
modelos matemáticos emplean elementos matemáticos en la representación: símbolos,
variables, funciones, etc. Muchas de las aplicaciones de Investigación Operativa utilizan
este tipo de modelos para generar y evaluar alternativas de solución.
-9-
Los elementos característicos de un modelo matemático son las variables de decisión, las
restricciones y las medidas de efectividad. La forma en que estos elementos son
diseñados depende de la aleatoriedad e incertidumbre de los datos, de las características
de las soluciones requeridas y de las herramientas de resolución disponibles. La
construcción del modelo matemático es dada en el Cap ítulo V del presente trabajo.
2.3.4. Solución del modelo
Encontrar la solución de un modelo matemático consiste en determinar los valores de las
variables de decisión de manera que se cumplan las restricciones consideradas y que se
optimice la medida de eficiencia establecida. Desafortunadamente, para cierto tipo de
problemas de alta complejidad se requiere desarrollar enfoques aproximados que
entreguen buenas soluciones en tiempos razonables.
En correlación con la etapa siguiente, si al analizar la solución se detectan resultados no
satisfactorios, debe volverse a las etapas anteriores y efectuarse las correcciones
necesarias.
2.3.5. Validación del modelo
En el capítulo VI se trata de analizar la capacidad del modelo para generar soluciones
que se adecuen a las condicionantes del problema. Para comparar el desempeño del
modelo de programación matemática se generaron un conjunto de instancias que cubran
un espectro de posibilidades. Junto con la caracterización de las instancias en términos
de número de variables y restricciones, se tomo en cuenta el desempeño del modelo en
función del tiempo de solución y la calidad de la misma.
-10-
Marco Teórico
Capítulo III
Estado del arte 3.1. Introducción
A partir de los trabajos pioneros de Csima y Gotlieb [CjGc61] en la década de los años
sesenta del Siglo XX, muchos artículos relacionados a problemas de horarios se
encuentran descritos en la literatura con diferentes métodos de solución.
En primera instancia, la mayoría de las técnicas empleadas fueron las heurísticas
constructivas, que consisten en una configuración gradual del horario, llenando lección
por lección2 hasta que todas las lecciones estén dentro del mismo o hasta cuando
aparezca un conflicto.
En una segunda instancia, los investigadores comenzaron aplicar técnicas generales de
resolución del problema como son la programación entera, flujo en grafos y coloración
en grafos.
Tripathy [TripA84] aplicó relajación lagrangiana para que un problema de asignación de
cursos se reduzca a un problema básico, utilizando una función objetivo lineal que mide
el deseo de que una lección de una determinada materia se dicte en una hora de clase
dada. Las restricciones que imposibilitan que los estudiantes de un mismo curso asistan
a más de una sala de clase en una misma hora de clase3 son relajadas e incorporadas en
la función objetivo. Las variables duales relativas a estas restricciones son obtenidas por
el método de subgradiente combinado con Branch & Bound.
2 Llámese lección o clase a la actividad de enseñanza que se desarrolla durante una hora de clase. 3 Llámese hora de clase a uno de los períodos en los que es dividida una jornada de enseñanza normal.
-11-
Con relación a la técnica de coloración de grafos [WoDc70] y [NgTj74], el problema de
programación de horarios escolares se reduce a un problema k-coloreo de un grafo
interpretando cada color como una hora de clase diferente. Sea G = {V,A} el grafo
definido por un conjunto de vértices Vv ∈ donde v corresponde a una lección y el
conjunto de arcos ( ) Avv ∈21 , entre cada par de lecciones que no pueden ser asignadas
simultáneamente. El problema entonces es el de colorear los vértices de G empleando k
colores, de forma que las lecciones de una misma hora de clase estén asignadas con el
mismo color.
Recientemente, aparecieron soluciones basadas en la aplicación de metaheurísticas
como: Simulated Annealing, Tabú Search, algoritmos genéticos, satisfacción de
restricciones y una amplia gama de combinaciones.
Abramson y Dang en [AdDh93] aplicaron Simulated Annealing para resolver un
problema de asignación de horarios que incluye la asignación de salas. La función
objetivo esta dada por la minimización del número de conflictos de cursos, de profesores
y de salas, para cada hora de clase. Una solución de este enfoque esta dada por una lista
de lecciones para cada hora de clase, siendo cada lección una asociación entre profesor,
curso y sala que los autores denominaron elemento. Dada una solución factible, se
selecciona una configuración vecina y se elige de forma aleatoria una lección que será
removida e insertada en otra configuración para luego calcular la diferencia entre el
costo de insertar y remover la lección entre estas dos configuraciones; si la diferencia es
negativa (o sea se mejora la función objetivo) se acepta el cambio, caso contrario con
una probabilidad asociada se acepta el cambio dependiendo de la temperatura del
proceso.
Los diversos enfoques que se han desarrollado sobre la base de tabú search difieren en la
determinación del concepto de movimiento y en la función objetivo a optimizar; en
puntos siguientes retomaremos este punto con mayor detalle. Hertz [HerA92] aplico
-12-
Tabú Search para resolver un problema donde un grupo de lecciones es dividido en
tópicos los cuales deber ser enseñados en un cierto orden, para un curso dado y a lo
largo de un conjunto de días. Cada tópico tiene asociado a un profesor, un día de inicio y
cierto número de horas de clase. Las restricciones del problema se dividen en dos
grupos: esenciales y no esenciales, estas últimas son relajadas e incorporadas en la
función objetivo penalizando cada restricción de este grupo que sea violada. El objetivo
es encontrar una solución que satisfaga el conjunto de restricciones esenciales y que
minimice el número de violaciones de las restricciones relajadas. Un mo vimiento es
considerado como el cambio de posición de la sesión de un tópico a un día diferente.
Colorni y otros [CoDM98] han aplicado algoritmos genéticos para la resolución de este
tipo de problemas donde inicialmente se presentan escenarios infactibles. En este caso la
función objetivo incorpora criterios acerca de la didáctica, requerimientos
organizacionales y personales además de un número de infactibilidades. Para su
resolución, la función objetivo es jerarquizada atribuyendo pesos relativos a los criterios
incorporados, dando una mayor valoración a las infactibilidades.
Yoshihawa, Kaneko y Nombra en [YmKN94] tratan el problema de asignación de
horarios como uno de satisfacción de restricciones donde se trata de encontrar el valor
de cada variable discreta, definida en un dominio finito, satisfaciendo un conjunto de
restricciones.
A continuación, realizaremos una descripción detallada de los principales enfoques de
solución encontrados en la literatura para el abordaje del problema de asignación de
horarios escolares en diversos contextos.
-13-
3.2. El problema de asignación de horarios escolares en su versión básica
Empleando la nomenclatura descrita en [SoMa00] y [EsIS76] vamos a describir un
Problema de asignación de Horarios Escolares en su versió n Básica, (de aquí en
adelante denotado por PHEB).
3.2.1. Formulación del problema PHEB
Sean:
- Hh∈ : Una hora de clase que pertenece al conjunto finito H de horas de clase
semanales.
- Mt ∈ : Un profesor que pertenece al conjunto M de profesores del colegio, por su
parte t también esta asociado a HTi ⊆ , donde T representa un conjuntos de horas
de clase en las cuales el profesor i esta disponible para enseñar.
- Nc ∈ : Un curso del colegio. Por su parte c es elemento de HC j ∈ donde jC es
un conjunto de horas de clase en las cuales un curso j esta disponible.
- chijrR ×= )( : Una matriz de números enteros no negativos, los cuales representan el
número de lecciones que cada profesor i tiene que dictar para cada curso j.
Definición 3.2.1.1. El PHEB consiste en determinar la existencia de una función
{ } { }Nhkjif ,...,1,...,1:),,( × , (donde 1),,( =kjif si el profesor i enseña al curso j en la
hora de clase k) que satisfaga:
a) 1),,( =kjif { }ji CTk ∩∈∀
b) ∑∈
=Hk
ijrkjif ),,( ti ,..,1=∀ cj ,..,1=∀
c) ∑=
≤t
i
kjif1
1),,( cj ,..,1=∀ y 1,..,k h∀ =
d) ∑=
≤c
j
kjif1
1),,( ti ,..,1=∀ y 1,..,k h∀ =
La restricción (a) asegura que existe un encuentro entre el profesor i conjuntamente al
curso j si es que ambos están disponibles en el horario de clase k. La restricción (b)
-14-
garantiza que el número total de encuentros durante la semana entre el curso j y el
profesor i es exactamente el número requerido ijr ; es decir, la suma total de encuentros
del curso con el profesor será igual a la carga horaria por asignatura4 del mismo. La
restricción (c) impide que más de un curso tenga a un mismo profesor en una misma
hora de clase, de igual forma la restricción (d) asegura que ningún profesor tenga
asignado en una misma hora de clase a mas de un curso.
Even en [EsIS76] demuestra que una instancia simple del PHEB pertenece a una clase
NP-completo y que por tanto el problema general de programación de horarios escolares
también lo es.
3.3. Resolución del PHEB basada en flujo de grafos
A continuación describiremos los dos procedimientos heurísticos presentados por de
Werra en [WerD85] y Freitas Souza en [SoMa00] para la resolución del PHEB en donde
aparecen restricciones acerca de la no disponibilidad de profesores y de cursos. Ambos
algoritmos propuestos tratan de obtener una solución factible, el primer algoritmo
descrito en la sección 3.3.1 consiste en construir un horario curso por curso a partir de
resolver el problema de flujo máximo en un grafo asociado. En el segundo caso descrito
en la sección 3.3.2, el procedimiento de solución esta dado a partir de fijar las horas de
clase en lugar de los cursos.
3.3.1. Fijando los Cursos del Colegio
Dado un curso jc construimos un grafo asociado al PHEB de la forma siguiente:
- Introduzca un nodo en el grafo por cada hora de clase kh y por cada profesor it que
dicta una lección al curso j.
4 Llámese carga horaria al conjunto de lecciones que debe llevar un curso, de una misma materia, en un periodo dado. (corrientemente este periodo es una semana)
-15-
- Unir cada nodo kh con it solamente si el profesor it se encuentra disponible en la
hora de clase kh .
- Introduzca un nodo fuente s con arcos {s, kh }para todas las horas de clase kh y un
nodo destino t con arcos { it ,t} para todos los profesores it
- Establezca u como la capacidad del arco { it ,t} o entiéndase a u como el número de
lecciones que el profesor it debe enseñar al curso ijc , esto es igual a: iji rttu =),(
- Fije en 1 las capacidades de los demás arcos, esto es khsu k ∀=1),( y
ikthu ik ,1),( ∀= .
A continuación se debe calcular el flujo máximo desde el nodo fuente s al nodo t. La
solución de este problema nos brinda un horario de clases 5 para cada curso jc una vez
que cada componente de la solución de flujo máximo este asociado a un arco que una a
un profesor con una hora de clase. La construcción del grafo se repite para los cursos
restantes, de forma de obtener el horario de lecciones completo para todos los cursos del
colegio. Resulta lógico pensar que el horario de un curso se encontrará completamente
lleno si la carga horaria del mismo es igual al total de horas de clase disponibles. Caso
contrario no existe una solución a partir de este procedimiento puesto que se da una
asignación inadecuada de profesores a horas de clase en un curso predecesor o de
iteraciones anteriores a la considerada.
3.3.2. Fijando las horas de clase
Un procedimiento análogo al anterior consiste en considerar una hora de clase a la vez.
En este caso, se crea un grafo para cada hora de clase y se traza un arco uniendo un
nodo profesor con un nodo curso si existe una lección que los involucre, el costo de cada
arco define la urgencia de la lección. El objetivo entonces consiste en encontrar un
5 Entiéndase como horario de clases al cuadro que registra el conjunto de lecciones que han sido asignadas para toda la semana, para un determinado curso del colegio.
-16-
emparejamiento de peso máximo. Se trata de un procedimiento heurístico toda vez que
no garantiza que la asignación de una hora de clase sea la óptima.
3.4. El modelo de extensión a la versión del PHEB
Se trata de una adaptación al método Tabú Search donde se permite que durante la fase
de búsqueda el usuario pueda modificar de forma manual tanto el horario de clases como
las restricciones del problema. El modelo fue desarrollado por Andrea Schaerf [SchA96]
y su aplicación se dio en un colegio de enseñanza media italiano.
A la nomencla tura descrita en el punto 3.2.1. se añade las siguientes matrices binarias:
thT 1 si el profesor t ( )Mt ∈ esta disponible en el horario de clase h ( )Hh ∈ 0 ∼
jhC 1 si el curso j ( )Nj ∈ esta disponible en el horario de clase h ( )Hh ∈ 0 ∼
jhD 1 si el curso j ( )Nj ∈ debe tener clase en el horario h ( )Hh∈ 0 ∼
Entonces, la variable de decisión viene definida como:
tjhx 1 si el profesor t ( )Mt ∈ es asignado al curso j ( )Nj ∈ en la hora de clase
h ( )Hh ∈ 0 ∼
La formulación del problema es dada por:
1
1
1
1
. .
) ,
) ,
) ,
) ,
) {0,1} , ,
tjh
M
tjh jht
N
tjh thj
H
tjh tjh
M
tjh tjt
tjh
Solve x
s a
a x c j h
b x t t h
c x r t j
d x d j h
e x t j h
=
=
=
=
≤ ∀
≤ ∀
= ∀
≥ ∀
∈ ∀
∑
∑
∑
∑
-17-
La restricción (a) nos indica que un profesor t puede ser asignado a un curso j en la hora
de clase h si es que el curso se encuentra disponible en esa hora de clase. La restricción
(b) de manera similar condiciona la asignación de un curso si es que el profesor t se
encuentra disponible en h.
La restricción (c) asegura que las asignaciones se den para la carga horaria semanal por
materia. La restricción (d) involucra el hecho de que para ciertas horas de clase (por
ejemplo las primeras horas de la mañana) cada curso debe tener de manera obligatoria la
asignación de una lección de materia (por lo menos una). Esto tiene sentido en el hecho
de que por ejemplo un alumno de primaria no puede tener la primera hora de la mañana,
de un día cualquiera, libre6.
En contraposición de aquello puede existir horas de clase de una jornada de enseñanza
(por ejemplo el último periodo de la tarde) en las que un curso no tenga clase aunque lo
tenga disponible.
En lo que concierne a la función objetivo, ésta es evaluada en función de un conjunto de
indicadores relacionados a los cursos y los profesores. Para cada profesor se especifica
los límites máximos y mínimos de lecciones a dictar por jornada además de especificar
las horas de clase en la que a ellos les gustaría (o desearían) dictar a un curso.
Para cada curso se establece la sala 7 (ambiente) donde la mayoría de las lecciones serán
desarrolladas. En este sentido, la función objetivo es una sumatoria sobre el producto de
la asignación de profesores a cada curso (evaluada temporalmente por día o semana) y
los pesos relativos (penalidades) de los indicadores mencionados. Schaefer designó para
su modelo, los siguientes pesos relativos de la función objetivo:
6 Entiéndase por hora libre al hecho de que el curso no tenga asignada ninguna clase en ese periodo, aunque el curso tenga ese horario disponible para ser asignado. 7 Entiéndase por sala de clase al espacio en el cual se desarrolla el proceso de enseñanza
-18-
TABLA 1. Penalidades para la F.O. del modelo extendido de PHEB Componentes F.O. Descripción Valor de la
penalidad wi Puente profesor Hora de clase ociosa en un mismo día en la agenda
del profesor 1
Puente curso Hora de clase ociosa en un mismo día en el horario del curso 6
Bajo límite diario La carga horaria diaria para un profesor es menor a su límite mínimo establecido
4
Sobre límite diario La carga horaria diaria para un profesor es mayor a su límite máximo establecido
3
Indeseado Asignación de un profesor en una hora no deseada 3 Cambio Sala Cambio de un curso de su sala para dos horas de
clase consecutivas de una misma materia 5
3.4.1 Aplicación de Tabu Search al modelo extendido de l PHEB
Para facilitar la inspección dentro del espacio de búsqueda se incorpora a la función
objetivo descrita en la sección anterior la penalización (w=20) a las infactibilidades en lo
que corresponde a la asignación de más de un profesor a un mismo curso en una hora de
clase y la asignación de una hora de clase en un horario no disponible para el profesor.
En lo que corresponde a la estructura del vecindario se definen dos clases de
movimientos. El primero es el movimiento elemental que consiste en trueque de dos
horas de clase -h1 y h2 con h1>h2- para un profesor. Es indudable que este tipo de
movimientos dentro de soluciones factibles generan una solución infactible (a.i. asignar
dos profesores a un mismo curso en un mismo h) que debe ser reconfigurada. En este
sentido, y siempre que se presente una infactibilidad al realizar el primer movimiento
elemental, se da lugar al movimiento en dupla que consiste en un segundo movimiento
elemental, intercambiando en esta ocasión la hora de clase en conflicto y la que fue
movida en el paso anterior. Estos movimientos permiten establecer una relación de
vecindario permitiendo una búsqueda en el espacio del entorno, pudiendo configurar
otro horario a partir de movimientos elementales sobre uno inicial. El tamaño del
vecindario es del orden de 5,0*)1(** −HHM .
-19-
La solución inicial se genera utilizando el método aleatorio de búsqueda (con
movimientos laterales), seleccionando la mejor solución encontrada en un número
determinado de instancias. Se inicia el algoritmo de Tabú Search hasta que sea
interrumpido cuando no existan mejoras sustanciales en un número fijo de iteraciones.
El proceso se reinicia tomando como punto de partida la nueva solución encontrada en el
ciclo anterior; este procedimiento se repite hasta que no existan mejoras en un número
de ciclos fijo. El hecho que se aplique un método aleatorio de búsqueda es que, por un
lado, a partir del mismo se consigue fácilmente la solución inicial; y por otro lado, con
sus movimientos laterales modifica la solución en cada ciclo permitiendo que el
algoritmo Tabu Search explore en varias direcciones.
En lo que corresponde al criterio de aspiración, el comportamiento de las penalidades a
las infactibilidades cambia en las dos fases del procedimiento: en la fa se de la
generación de la solución inicial las penalidades son w, en tanto que en cada iteración
del algoritmo Tabu Search las penalizaciones toman valores aleatorios para no dirigir la
búsqueda de manera determinística; se establecen límites [0.01, 10] para permitir violar
las restricciones en un determinado grado.
3.5. Modelo General de asignación de Horarios Escolares (PHE)
Pasamos a describir el modelo de Costa [CosD94] que trata de incluir un conjunto
importante de restricciones que son las que posiblemente aparecen en este tipo de
problemas.
3.5.1. Descripción del problema para el modelo general PHE
a) Conjuntos:
− },....,,{ 21 mtttT = Conjunto de m profesores
− },....,,{ 21 ncccC = Conjunto de n cursos
-20-
− },....,,{ 21 phhhH = Conjunto de p horas de clase. Se considera que p = nd x hd,
donde nd representa el número de días a la semana que se trabaja en el colegio y hd
representa el número de horas de clase al día.
− },....,,{ 21 nssssS = Conjunto de ns materias
− },....,,{ 21 nrrrrR = Conjunto de nr salas especializadas
− },....,,{ 21 nssssssssSS = Conjunto de nss materias especializadas, esto es, un
subconjunto de S que contiene a las materias que deben dictarse en salas
especializadas (i.e. Computación)
− },....,,{21 mttt HTHTHTHT = Conjunto de horarios
itHT durante los cuales el i-ésimo
profesor esta disponible para enseñar }{ HHTit
⊂
− },....,,{21 nccc HCHCHCHC = Conjunto de horarios
jCHC durante los cuales el j-
ésimo curso esta disponible para aprender }{ HHCjc ⊂
a.1) Notación complementaria
− kA Conjunto de lecciones en la hora de clase k
− sHS Conjunto de horas durante las cuales la materia s no debe ser enseñada
− ),( ksadaClaseAsign , número de clases de la materia s que son asignadas a la hora k
− ),(Pr yxofcomun , el número de profesores comunes en las clases o lecciones x e y
− ),( yxCursocomun , el número de cursos comunes en las clases o lecciones x e y
− ),( ktSalaDisp , el número de salas especializadas tipo t disponibles en la hora k
− ),( ktSalareq , el número de salas especializadas tipo t requeridas en la hora k
− ),(Pr turnoioflleno , la suma de clases secuenciales del profesor i en cada turno 8.
− ),(Pr turnoioflibre , el número de horas libres en la agenda del profesor i por turno.
b) Supuestos:
− Durante todo el día, las salas de enseñanza comunes tienen disponibilidad ilimitada 8 Entiéndase por turno, la media jornada de clase (i.e. turno mañana y turno tarde)
-21-
− Para cada curso se ha definido la cantidad y duración de las lecciones a llevar.
c) Conjunto de Restricciones {R}:
− Sobre posición de profesores: un profesor no puede enseñar más de una lección en
una misma hora de clase.
− Sobre posición de cursos: un profesor no puede tener más de una lección en una
misma hora de clase.
− Sobre posición de salas especializadas: el número de salas especializadas requeridas
no puede ser mayor a la cantidad disponible, para cualquier hora de clase.
− Indisponibilidad de profesor: un profesor no puede ser asignado en horas de clase
en las que no este disponible.
− Indisponibilidad de curso: un curso no puede tener asignadas horas de clase en las
que no este disponible.
− Agenda compacta: para los cursos es un requisito no presentar puentes o baches e su
configuración horaria, para los profesores es deseable tener una cantidad mínima de
baches en su agenda.
− Precedencia : existen materias que en muchos casos no pueden ser asignadas de
manera secuencial. (i.e. Calculo y Física)
− Preparación de salas especializadas: una sala especializada no esta disponible
cuando se esta preparando para una lección especifica posterior.
− Lecciones de a dos (duplas): en muchas instituciones existen lecciones de materias
que se deben dictar en dos horarios, lo que se pide es que estos horarios deban ser
consecutivos.
Muchas de las restricciones presentadas (y otras más) no ocurren en problemas de
asignación de horarios, pero Costa las incluyo para obtener un modelo más general. Para
abordar la formulación matemática del problema se realiza una partición del conjunto de
restricciones {R} en dos subconjuntos {Re} restricciones esenciales o duras y {Rr}
restricciones susceptibles a relajarse o suaves. En tal sentido, una solución que satisface
las restricciones esenciales se llama factible, y aquella que satisface todas las
restricciones se llama aceptable.
-22-
TABLA 2. Partición del conjunto R Restricciones Duras {Re} Restricciones Suaves {Rr}
Indisponibilidad de profesor Sobre posición de profesores Indisponibilidad de curso Sobre posición de cursos
Precedencia Sobre posición de salas especializadas Lecciones de a dos (duplas) Agenda compacta
Preparación de salas especializadas
d) Función Objetivo:
∑=
=1
)()(i
ii QfwQf
)()()()()()( 54321 QfQfQfQfQfQf ++++=
∑ ∑∑∑
∑ ∑ ∑∑∑ ∑
= == =
= = ∈∈<= ∈<
+−
+++=
M
i
nd
turno
nr
t
H
k
H
k
ns
s HSkAyx
H
k Ayx
turnoioflibrexturnoiofllenoktSalaDispktqSala
ksadaClaseAsignyxCursocomunyxofcomunQfskk
1
*2
11 1
1 11
)},(Pr),((Pr}),(),(Remax{
),(),(),(Pr)(
La función objetivo esta estructurada jerárquicamente, donde cada uno de los )(Qf i
componentes de la función objetivo tiene una penalización iw que le confiere la
importancia relativa a las restricciones relajadas. Los )(Qf i calculan el grado de
violación de la i-ésima restricción relajada. )(1 Qf , evalúa la cantidad de profesores que
se encuentran asignados a dos clases en un misma hora; )(2 Qf , evalúa cuantos cursos
tiene asignados dos clases simultáneamente; )(3 Qf , evalúa cuantas clases de la materia
s son asignadas a horas de clase en las cuales no se desea dictar esa materia; )(4 Qf ,
evalúa cuantas veces no existen salas especializadas disponibles cuando se las requiere y
)(5 Qf mide cuan compacto es el horario.
-23-
Marco Práctico
Capítulo IV
El Problema de Horario Escolar en la Unidad Estudiada En el desarrollo del presente capítulo se describe en detalle las características y el
entorno del problema de estudio abordado. En las secciones subsecuentes se introduce el
problema y se puntualiza los requerimientos exigidos por la unidad educativa para
considerar a una configuración de horario escolar como aceptable.
Con relación al contexto histórico en el que se enmarca la actividad educativa en Bolivia
en general, El 7 de julio de 1994 se promulgó la Ley 1565 de Reforma Educativa, que
modificó el Código de la Educación Boliviana. La reforma educativa impulsa una
transformación integral del Sistema Educativo Nacional (institucional y técnico–
pedagógica). Se propone mejorar su calidad y eficiencia, instaurando un sistema
educativo intercultural–bilingüe y participativo que garantice el acceso de todos los
bolivianos a la educación. Desde el punto de vista educativo, la reforma no sólo ha
apoyado el proceso de aprendizaje, sino también ha brindado apoyo a la labor de
enseñanza, con la elaboración de guías para docentes, cursos de actua lización y asesores
pedagógicos que dan asistencia técnica a los establecimientos educacionales.9
A partir de esta reforma, las instituciones que prestan servicios de educación primaria y
secundaria deben ajustar sus programas académicos con el objeto de adecuarse a los
lineamientos de la nueva estructrura educativa, lo que conlleva la necesidad de hacerse
de herramientas de apoyo a la gestión administrativa, en la búsqueda de una estructura
académica que condiga con la carga horaria por grado y que por otro lado incorpore en
su análisis a los actores fundamentales del proceso educativo, profesor y alumno, ya que
su desempeño es el que determinará el aprendizaje en la sala de clases.
9 Reinaga T., (1999). Reforma al sistema de remuneraciones de los docentes del servicio de educación pública en Bolivia. Magister en Gestión y Políticas Públicas Universidad de Chile, Estudio de Caso 41, p. 9.
-24-
4.1. Descripción de la Unidad Estudiada
La Unidad Educativa Colegio Americano10 se crea con la Resolución Ministerial Nº
2658 al amparo de las leyes de la República de Bolivia, teniendo como sede a la ciudad
de Oruro, y comprende todos los grados del nivel inicial hasta el nivel secundario.
Desde su creación, su labor está comprometida con la formación de nuevas generaciones
socialmente útiles, con conciencia nacional y que coadyuven con un mayor progreso y
potenciamiento económico-social de Bolivia. La historia del Colegio Americano se va
colmando de estupendos capítulos de sacrificio y éxito, cuyo conocimiento constituirá
una rica veta para el historiador y el poeta; todos los niños y jóvenes que jugaron y
juegan por sus corredores, todas la generaciones que pasaron y pasarán por sus aulas
bebiendo en sus aulas las aguas puras de la ciencia y el arte, muy pronto darán brillo a la
nación por sus trabajos y por sus luces.
Asimismo, desde su fundación, el Colegio Americano ha establecido el bachillerato -
Científico Humanístico- Diversificado en las áreas de Ciencias Exactas, Ciencias
Biológicas y Ciencias Sociales; las cuales permiten a los jóvenes una formación que
estimula y despierta su vocación profesional.
En concordancia con el Decreto Supremo 23950 y la Ley 1565 de la Reforma Educativa
Boliviana, en su Reglamento sobre Organización Curricular, en el establecimiento los
niveles de organización pre-escolar, primario y secundario están formados por ciclos.
Los ciclos constituyen periodos de duración variada dentro de un determinado nivel, en
los cuales los educandos desarrollan determinadas competencias, como parte del proceso
educativo.
-25-
TABLA 3. Ciclos por nivel de Educación en el Colegio Americano Nivel de Educación Ciclos
Pre-escolar o inicial a. El ciclo de primeros aprendizajes. b. El ciclo de preparación escolar.
Primaria a. El ciclo de aprendizajes básicos. b. El ciclo de aprendizajes esenciales. c. El ciclo de aprendizajes aplicados
Secundaria a. El ciclo de aprendizajes tecnológicos. b. El ciclo de aprendizajes diferenciados.
Fuente: Elaboración propia en base a documentación de la Unidad de estudio
Bajo el mismo sustento organizativo el currículo de la educación boliviana está
orientado a satisfacer las necesidades básicas de aprendizaje de los diversos tipos de
educando a los que atiende el sistema en cada una de sus áreas, niveles y ciclos. En los
niveles pre-escolar, primario y secundario, el currículo nacional está compuesto por un
tronco común curricular de alcance nacional y por ramas complementarias
diversificadas, diseñadas y de uso en cada unidad educativa, núcleo, distrito y
departamento.
En todo el territorio de la República, en cada Unidad Educativa y Núcleo Educativo
tanto en la educación fiscal como en la educación privada, es obligatorio el desarrollo
del tronco común curricular y de las ramas complementarias diversificadas específicas.
El tronco común curricular de alcance nacional asume la perspectiva intercultural
adoptada por la educación Boliviana. Comprende las competencias básicas que
adquieren y desarrollan todos los educandos y rige para todo el territorio de la
República.
Las ramas complementarias de carácter diversificado están orientadas a la adquisición y
desarrollo de competencias y contenidos complementarios relacionados con la
especificidad ecológica, étnica, sociocultural, socioeconómica y sociolingüística de cada
departamento y municipio del país en los que se organiza y desarrolla el currículo.
-26-
TABLA 4. Datos de Registro en el Ministerio de Educación de Bolivia DESCRIPCION GENERAL DE LA UNIDAD EDUCATIVA
CODIGO UNIDAD EDUCATIVA 81230185 PROVINCIA 01-Cercado SECCIÓN 01-Capital (Oruro) AREA Urbano NOMBRE UNIDAD EDUCATIVA AMERICANO DIRECCION Potosí 5648 Caro y Cochabamba DEPENDENCIA Privada TIPO DE UNIDAD EDUCATIVA Seccional NIVEL Inicial/Primaria/Secundaria MACRO DISTRITO Oruro ZONA Central TURNO Mañana y Tarde Fuente: Lista de unidades educativas de dependencia publica y privada, Ministerio de Educación de Bolivia, 2008
En lo que corresponde a la configuración operativa, la institución trabaja en dos turnos,
por el lapso de siete horas de clase diarias, durante cinco días a la semana. Cada hora de
clase consta de 45 minutos, con un lapso de 10 minutos entre clase para cambio de sala
(si el caso así lo amerita) y un lapso de descanso entre el tercer y cuarto horario de 20
minutos (desca nso pedagógico) en el turno de la mañana y 15 minutos entre la primera y
segunda hora de la tarde.
En particular el nivel inicial sale de la configuración general del establecimiento, ya sea
por los horarios de ingreso y salida diferenciados -en base a la carga horaria a cumplir y
las características de este estracto particular del conglomerado educativo- o por el hecho
que los primeros cursos no participan del proceso de enseñanza durante toda la jornada,
lo hacen solamente en el transcurso de la mañana . Esto porque los ciclos de aprendizaje
que pertenecen a este nivel requieren una menor cantidad de horas de clase. En el caso
de los primeros cursos del nivel primario ellos realizan actividades extracurriculares
durante una o dos tardes entre semana.
El plantel docente esta conformado en el 2008 por 35 profesores entre titulares y
contratados, número que tiene directa dependencia con la cantidad de alumnado del
colegio; presentándose [obedeciendo a la demanda de estudiantes] la necesidad de abrir
-27-
paralelos de los cursos preestablecidos por la normativa boliviana existente. Esto es, si
bien son catorce los cursos predefinidos en los que se desarrolla el proceso de
enseñanza, en la actualidad el establecimiento esta compuesto por 19 cursos (5
paralelos).
FIGURA 1. Alumnado del Colegio Americano en 2007 y 2008
0 10 20 30 40 50 60 70 80
Nº Alumnos por curso
PK
K
1
2
3
4
5
6
7
8
I
II
III
IV
Cu
rso
s
2007 2008 Fuente: Lista de unidades educativas de dependencia pública y privada, Ministerio de Educación de Bolivia .
Cada profesor titular tiene asignadas las materias que debe enseñar, presentándose los
casos en los que un mismo profesor enseña una asignatura en el nivel primario y otra en
el nivel secundario (i.e. el profesor de la asignatura Ciencias Naturales en los últimos
cursos del nivel primario es profesor de Química en el nivel secundario). Por otro lado, y
como una particularidad de la institución, que tiene origen en la estructura de tipo
Cooperativa, existe un conjunto de los profesores titulares que tienen prioridad en la
conformación de su agenda. En el caso de los profesores contratados la situación es
distinta y en la mayoría de los casos sus horas disponibles u horarios deseados pueden
ser susceptibles de alterar (i.e. existen casos que un profesor contratado recibe un trato
especial; el profesor de anatomía de los últimos cursos del nivel secundario tiene una
-28-
agenda prioritaria puesto que desarrolla actividades paralelas a las académicas en otras
instituciones del área de la salud).
Con relación a la carga horaria, esta se encuentra definida al inicio de la gestión y resulta
de la planificación estratégica de la institución. A diferencia de otras instituciones
educativas los profesores contratados no deben acumular un determinado nivel de horas
de clase, por tanto ellos se rigen simplemente a las horas que han sido asignadas por
materia. En este sentido tanto para los profesores titulares -que tienen a su cargo varios
cursos o varias materias para un mismo curso- como para los profesores contratados -
que prefieren desarrollar su trabajo en turnos cerrados durante una misma jornada para
poder realizar actividades extras que no involucren al trabajo de aula- prefieren una
agenda compacta con el mínimo de puentes posibles. Por razones pedagógicas, el colegio no puede dictar más de una hora de clase de una
materia a un mismo curso en una jornada de trabajo (aunque existen casos especiales en
el nivel primario). Existe un manejo particular con las clases de Educación Física y
Deportivos (i.e. Fútbol y Natación) en las cuales se trata de dar una continuidad mayor,
fundamentalmente por los tiempos de desplazamiento que involucran. En este sentido
existen horarios en los que un conjunto de cursos tanto de primaria como de secundaria
tienen por defecto ocupados los horarios para realizar la actividad deportiva no por
curso, sino mas bien por la categoría etária de sus componentes (i.e. Futbol Sub-9,
Natacion Sub-11,etc). Si bien no existen clases simultáneas en la mayoría de los cursos, en particular el
Segundo Medio (segundo curso del nivel Secundario) tiene una hora de clase
correspondiente a orientación vocacional en las tres áreas diversificadas. Esto es, una
vez a la semana el curso se divide en tres grupos para asistir a tres clases simultáneas
distintas: Botánica, Geometría y Comunicación.
Con relación al manejo de las aulas o salas de clase, cada grupo de educandos (curso)
tiene asignado un aula para el desarrollo del proceso de enseñanza. Esto es, la rotación
dentro de los periodos de clase se da fundamentalmente por parte de los profesores, y en
-29-
su caso cuando así lo amerite, los estudiantes cambian de sala a una de similar
capacidad. En este sentido, en particular para la institución estudiada, la asignación de
aulas de clase no forma parte de la problemática a ser resuelta en el desarrollo del
presente trabajo. Sobre el mismo aspecto, existen salas especializadas en lo que corresponde a los
laboratorios de Física, Química, Computación e Ingles (para primaria). Las clases en las
dos primeras salas se dan en un frecuencia quincenal por tanto la planificación global
por área de contenidos programáticos (Departamento de Física y Departamento de
Química) define la temporalidad del uso de cada sala, evitando así un posible choque de
horarios. Existen dos salas de computación y cuatro profesores del Departamento; cada
sala cuenta con dos profesores por ciclo y capacidad para un curso promedio. En lo que
corresponde al laboratorio de Ingles para primaria, la misma se utiliza una vez a la
semana por cada curso.
4.2. Elementos para la Formulación del Problema
Partimos con la identificac ión de los conjuntos empleados en la formulación del
problema:
Conjuntos:
},....,,{ 21 mpppP = Conjunto de m profesores.
},....,,{ 21 ncccC = Conjunto de n cursos.
},....,,{ h521 ×= hhhH Conjunto de horas de clase. Se considera que el número
de días a la semana que se trabaja en el colegio son
cinco, y 5xh representa el número de horas de clase al
día.
},....,,{ 21 nssssS = Conjunto de s materias para cada n-ésimo curso. Cada
materia de un curso esta asociada a un único profesor
previamente establecido.
1 2{ , }T t t= Conjunto de t turnos de clases para la configuración
-30-
semanal. En el caso actual se trabaja en dos turnos,
mañana (4 horas) y tardes (3 horas) durante toda la
semana.
{( , ) : , }v w v wCP i j i C j P= ∈ ∈ Conjunto Simultáneo de pares (profesor i, curso j) que
deben dictarse de manera simultánea. En ese sentido C
y P son el subconjunto de cursos y profesores
simultáneos. 11
},....,,{21 mttt HTHTHTHT = Conjunto de horarios
itHT durante los cuales el i-ésimo
profesor esta disponible para enseñar }{ HHTit
⊂ .
},....,,{21 nccc HCHCHCHC = Conjunto de horarios
jCHC durante los cuales el j-ésimo
curso esta disponible para aprender }{ HHCjc ⊂ .
Dentro de los requisitos de la situación abordada, establecemos el conjunto de
exigencias relacionadas al problema:
Características de los requisitos del problema:
a) Sobre posición de cursos: Un profesor no puede enseñar a más de un curso en una
misma hora de clase.
b) Sobre posición de profesores: A un curso no puede asignarse una clase con más de
un profesor en una misma hora de clase.
c) Carga horaria: Todos los profesores deben cumplir con la carga horaria de lecciones
semanales en cada uno de los cursos. 12
d) Indisponibilidad de Profesor: Un profesor no puede ser asignado a una hora de clase
en la que no este disponible.
11 Por ejemplo, la materia de Educación Física, que debe ser dictada de manera simultánea por género. 12 Una configuración de horario de profesores que viola estas primeras tres restricciones es considerada infactible.
-31-
e) Indisponibilidad de Curso: Un curso no puede tener asignada una materia, y estar
relacionada a un profesor, en una hora de clase en la que no se encuentre el curso
disponible.
f) Número máximo de clases (lecciones) diarias por curso de una misma materia: Un
curso no puede tener más de cierto número de lecciones de una misma materia, al
día. En la mayoría de los casos, un profesor del establecimiento no puede dictar mas
de una hora de clase diaria por curso, sin embargo existen miembros del plantel
docente que dictan dos o más materias distintas al mismo curso, por tanto esta
salvedad es importante tomarla en consideración.
g) Clases simultáneas: La asignación para los cursos y profesores que pertenecen al
conjunto simultáneo se debe realizar a la misma hora de clase. Esta restricción tiene
aplicación a la asignatura de Educación Física (donde los grados se dividen por
género no por paralelo) y a la asignatura de Ingles (donde los grados se dividen por
niveles en el conocimiento del idioma).
h) Horario compacto para los profesores: la agenda de clases de los profesores13 debe
ser tan compacta como sea posible.
4.3. Configuración Horaria Actual
En la Figura 2 se representa la configuración horaria del establecimiento en la gestión
2008. Por cada materia en el horario existe un profesor asociado, esto significa que para
un conjunto de profesores de área existe un número de materias a su cargo.
Esta instancia nos sirve como punto de partida -en lo que corresponde a la carga horaria
y disponibilidades de cursos y profesores- para poder evaluar la eficacia de l modelo
pudiendo comparar los resultados alcanzados con los valores actuales tanto de los
puentes como de la asignación a horarios no deseados.
13 Entiéndase como agenda de clases de profesores al cuadro que registra el conjunto de lecciones que han sido asignadas para un determinado profesor que pertenece al colegio.
FIGURA 2. Configuración del Horario del Colegio Americano en la gestión 2008
Fuente: División de Administración de Personal del Colegio Americano.
-33-
FIGURA 3. Extracto de la Configuración de la Agenda de clases de los profesores del Colegio Americano en la gestión 2008
Fuente: División de Administración de Personal del Colegio Americano.
-34-
Marco Propositivo
Capítulo V
Formulación del Modelo Matemático El objetivo del presente capítulo es presentar el modelo de programación matemática
para el problema de asignación de horarios escolares abordado.
Como se ha expuesto en los puntos anteriores no existe en la literatura variadas
formulaciones matemáticas para la resolución del problema de asignación de horarios
escolares; esto se debe al grado de complejidad que llega alcanzar el problema – NP
completo- que restringe el empleo de técnicas exactas para su resolución. En muchos de
los casos los modelos desarrollados se constituyen en una versión simplificada del caso
real.
Una de las características más importantes a tomar en cuenta en el desarrollo de la
formulación matemática como un problema de programación entera, es la definición de
la función objetivo del problema de asignación de horarios; de hecho la conformación de
la función a optimizar no se obtiene de una lectura directa del problema, por lo que se
trata de encontrar la mejor relación de intereses que existen entre los actores del sistema.
Esto es, tratar de hallar una estructura donde los intereses de los educandos y los
educadores se entrelacen y nos permitan configurar un horario que cumpla en mayor
medida los requerimientos de la situación real.
En este sentido, la estrategia empleada para la solución del problema consiste en dividir
las restricciones del problema 14 en dos subgrupos : uno de ellos conteniendo las
restricciones duras o esenciales (que no pueden ser violadas) y el otro con las
restricciones suaves o deseables (si el caso lo amerita pueden ser violadas) las mismas
son evaluadas en una función objetivo lineal basada en penalidades.
14 Empleando la explicación expuesta en el punto 3.5.1
-35-
La tabla siguiente muestra la partición del conjunto R de restricciones de cómo se ha
conformado el abordaje del problema de asignación de horario escolar.
TABLA 5. Partición del conjunto R para el problema abordado
Restricciones Duras {Re} Restricciones Suaves {Rr}
Sobre posición de profesores Agenda compacta
Sobre posición de cursos Asignación en horas no deseadas
Carga Horaria
Número máximo de clases
Indisponibilidad de curso
Con relación a las penalidades, las mismas se constituyen en valores que ponderan la
posible existencia de baches en las agendas de los profesores y la asignación en horas no
deseadas.
En puntos anteriores se ha mencionado que una de las características propias de la
unidad en estudio es su importancia relativa de un conjunto de profesores dentro de la
estructura de la organización.
En ese sentido, algunos miembros de la planta docente forman parte del Consejo
Administrativo de la Cooperativa “Unidad Educativa Colegio Americano”, teniendo que
desarrollar actividades de gestión conjuntamente a la gerencia directiva de la institución.
Por tanto, sus disponibilidades y la presencia de puentes en la configuración de su
agenda de enseñanza presentan un tratamiento prioritario en comparación a sus colegas
docentes titulares.
En el caso de los docentes contratados se tiene un especial cuidado en la conformación
horaria del docente de Anatomía y en general, se respeta las disponibilidades de aquellos
docentes que a la par prestan sus servicios en colegios públicos.
-36-
5.1. Formulación Matemática
5.1.1. Índices
m : profesores, Pm ∈
n : cursos, Cn ∈
d : días de semana
h : horas por día (horas de clase) Hh ∈
t : turnos de clase t T∈
Cada uno de los cursos reciben h horas de clase al día, además se tiene d días en la
semana, en total dxh lecciones semanales.
5.1.2. Parámetros:
1 si el profesor esta disponible en la hora de clase del día _
0 ikl
i l kdis prof
=
:
1 si el curso esta disponible en la hora de clase del día _
0 jkl
j l kdis curso
=
:
Carga horaria semanal del profesor (asociado a una materia ) para el curso .ijCarga i m j=
Maxleccij = Número máximo de clases o lecciones diarias que el profesor i (responsable de la materia m) puede dictar al curso j.
iα = Penalización por la presencia de baches o puentes en la configuración horaria del profesor i.
ilkβ = Penalización por la asignación de lecciones a un profesor i el día k a la hora j en la cual no es deseado (aunque este disponible) tener clases.
jlkµ = Penalización por la asignación de lecciones a un curso j el día k a la hora l en la cual no es deseado (aunque este disponible) tener clases.
5.1.3. Variables de decisión
1 si el profesor es asignado al curso el día en la hora de clase 0 ijkl
i j k lx
=
:
1 si el profesor es asignado algún curso, el día en el turno 0 ikt
i k ty
=
:
-37-
iktBaches = El número de puentes o baches15 en la agenda de clases del profesor i en el día k en el turno t.
Variables adicionales:
si l H es la hora de clase de la lección del profesor el día en el turno 0 si el profesor no esta asignado a ningún curso el día en el turno . ikt
primera i k tA
i k t∈
=
l
si l H es la hora de clase de la lección del profesor el día en el turno 0 si el profesor no esta asignado a ningún curso el día en el turno . ikt
última i k tZ
i k t∈
=
l
5.1.4. Restricciones
a) Sobre posición de cursos: En un día k y hora de clase l, un curso j, tiene
asignado a lo más a un profesor.
1
1 , ,m
ijkli
x j k l=
≤ ∀∑ (5.1.1)
b) Sobre posición de profesores: En un día k y hora de clase l, un profesor i enseña
a lo más a un curso. Adicionalmente aquello, agrupamos la restricción de sobre
posición con la de Horas Disponibles de los Profesores ; limitando la asignación
de un profesor i a un curso cualquiera solamente en las horas de clase en las que
el profesor se encuentre disponible.
∑=
∀≤n
jiklijkl lkiprofdispx
1
,,_ (5.1.2)
c) Carga horaria: Todos los profesores deben cumplir con la carga horaria de
lecciones (clases) semanales asignadas a cada curso. La matriz que involucra el
parámetro de la carga horaria se encuentra expresado en términos de la relación
profesor – materia por curso.
1 1
,d h
ijkl ijk l
x Carga i j= =
= ∀∑∑ (5.1.3)
15 Hora libre “ociosa” entre dos horas de clases en un mismo turno del día
-38-
d) Número máximo de lecciones diarias por curso de una misma materia : El
número de lecciones diarias de una misma materia que pueda dictar un profesor a
un curso se encuentra acotada por ijMaxlecc
∑=
∀≤h
lijijkl kjiMaxleccx
1
,, (5.1.4)
e) Presencia de un profesor en un determinado día: Para verificar si un profesor i
se encuentra asignado o no a un día k en el turno t (dividiendo el conjunto H en
base a la pertenencia a cada turno t, esto es { } { }1 1 2 3 4 2 5 6 7, , , ; , ,t tl h h h h l h h h= = ),
se habilita la siguiente desigualdad:
, , , , tijkl ikt tx y i j k t l≤ ∀ (5.1.5)
f) Número de puentes o baches: para calcular el número de baches entre dos horas
que conforman la agenda de clases de un profesor en un mismo turno, se
introduce las siguientes restricción:
1 1
, ,t
n h
ikt ikt ikt ikt ijklj l
Baches Z A y x i k t= =
≥ − + − ∀∑∑ (5.1.6)
Por su parte, para activar las variables iktZ , de la última lección del profesor i el día k en
el turno t, y la variable iktA , de la primera lección del profesor i el día k en el turno t, se
incluye las siguientes restricciones:
1
, , ,t
n
ikt t ijkl tj
Z l x i k l t=
≥ ∀∑ (5.1.7)
1
( ) , ,t
n
ikt ikt t ijkl tj
A Wy W l x i k l=
≤ − − ∀∑ (5.1.8)
Con 1W h= + .
g) Clases simultáneas: La asignación para los cursos y profesores que pertenecen al
conjunto simultáneo se debe realizar a la misma hora de clase.
{ }0 , ( , ),( , ) , , ,v v w wi j k l i j kl v v w w v w v wx x k l i j i j i i C j j P− = ∀ ∧ ∈ ∈ ∈ (5.1.9)
-39-
Extendiendo el modelamiento, incluimos la restricción soft restante, acerca de la
disponibilidad de los cursos en determinados horarios, al conjunto R. En la restricción
(5.1.1) se establece que un curso puede tener asignada a lo más una materia (relacionada
a un profesor i) en una hora de clase; sin embargo existen situaciones en la unidad
estudiada en las que los cursos no están disponibles para una clase regular.
Como se mencionó en puntos anteriores las clases deportivas se las desarrolla por rango
de edades (Sub–9, Sub-11, etc.) entonces es necesario que los cursos que involucran a
estos rangos tengan las mismas horas de clase libres. De este análisis resulta la
restricción que sustituirá a la (5.1.1)
h) Disponibilidad de cursos: Un curso j no puede tener asignada ninguna asignatura
(relacionada al profesor i) en un día y hora en la que no este disponible.
∑=
∀≤m
ijklijkl lkjcursodispx
1
,,_ (5.1.1 )b
5.1.5. Función Objetivo
2
1 1 1 1 1 1 1 1 1 1 1
minm d m n d h m n d h
i ikt ilk ijkl jlk ijkli k t i j k l i j k l
z Baches x xα β µ= = = = = = = = = = =
= + +∑∑∑ ∑∑∑∑ ∑∑∑∑ ( . .)F O
Desarrollando cada término de la función objetivo:
a) La primera sumatoria nos permite compactar la agenda de clases de cada
profesor. A su vez, iα es un vector de pesos relativos que pondera la
importancia en el conjunto de profesores, es decir, representa el grado de
prioridad de los miembros de la planta docente en la configuración del horario. A
mayor valor del componente de α , el profesor i tiene preferencia a no tener
puentes de clase.
b) La segunda sumatoria penaliza la asignación de una hora de clase en un día y
hora, en que si bien el profesor i esta disponible, no es deseado que tenga
asignada una hora de clase. El caso se refiere al hecho que para la institución no
-40-
es conveniente que el docente se encuentre dictando clases, sino desarrollando
otras actividades fuera de lo curricular.
c) La última sumatoria penaliza la asignación de una hora de clase al curso j, en la
cual existen actividades programadas a lo largo del año (visitas, laboratorios,
club deportivo, asistencia a conferencias) en las que no es deseado que se tenga
actividad de enseñanza.
En resumen, el PHE puede ser modelado de la forma siguiente:
2
1 1 1 1 1 1 1 1 1 1 1
1
min
sujeto a:
_ , ,
m d m n d h m n d h
i ikt ilk ijkl jlk ijkli k t i j k l i j k l
m
ijkl jkli
z Baches x x
x disp curso j k l
α β µ= = = = = = = = = = =
=
= + +
≤ ∀
∑∑∑ ∑∑∑∑ ∑∑∑∑
∑
1
1 1
(5.1.1b)
_ , , (5.1.2)
,
n
ijkl iklj
d h
ijkl ijk l
x disp prof i k l
x Carga i j
=
= =
≤ ∀
= ∀
∑
∑∑
1
(5.1.3)
, , (5.1.4)
t
h
ijkl ijl
ijkl ikt
x Maxlecc i j k
x y=
≤ ∀
≤
∑
1 1
1
, , , , (5.1.5)
, , (5.1.6)t
t
t
n h
ikt ikt ikt ikt ijklj l
n
ikt t ijklj
i j k t l
Baches Z A y x i k t
Z l x
= =
=
∀
≥ − + − ∀
≥
∑∑
∑
1
, , , (5.1.7)
( ) , , ; 1 t
t
n
ikt ikt t ijkl tj
i k t l
A Wy W l x i k l W h=
∀
≤ − − ∀ = +∑
{ }{ }
(5.1.8)
0 , ( , ),( , ) , , , (5.1.9)
0,1 , , , v v w wi j k l i j kl v v w w v w v w
ijkl
x x k l i j i j i i C j j P
x i j k l
− = ∀ ∧ ∈ ∈ ∈
∈ ∀
{ } (5.1.10)
0,1 , , (5.1.11)
0 5 , , ikt
ikt
y i k t
Baches i k t
∈ ∀
≤ ≤ ∀ (5.1.12)
0 , 7 , , (5.1.13)ikt iktA Z i k t≤ ≤ ∀
-41-
5.2. Desarrollo del algoritmo de solución del modelo planteado
5.2.1. Consideraciones Iniciales con relación a la instancia abordada
El espacio en el cual se ha abordado el problema queda limitado por las características
del Colegio Americano en lo que corresponde a sus políticas de enseñanza y
diferenciación del grupo de oferentes de educación privada16; el tiempo en el cual se
aplica el modelo planteado es el año 2008, fruto de ello se da lugar a la comparación con
la configuración horaria del mismo año como fue mencionado en el punto 4.3.
TABLA 6. Características de la instancia empleada Conjuntos Nro de Elementos
P: profesores 35 C: cursos 19 H: horas de clase S: materias T: turnos
7 43 2
L: lecciones de clase 534 CP: pares simultáneos 13 HT: profesor disponible17 33 HC: curso disponible 8
A continuación pasamos a exponer la estructura de los datos de entrada del modelo,
específicamente nos referimos a la carga horaria por asignatura, disponibilidades de los
profesores, disponibilidades de los cursos, penalizaciones por violación de horarios no
deseados tanto por cur so como por profesor, finalmente las penalizaciones por concepto
de puentes en la agenda de los profesores.
5.2.2. Carga Horaria
La Tabla Nº A.1 de la sección de anexos presenta la estructura de la carga horaria
materia-curso, detallada en la matriz s nS xN de materia por curso. A partir de la matriz
binaria de asignación de profesor de área a cada curso, se da lugar a la carga horaria por
16 Las características del problema han sido descritas en el punto 4.1. 17 Se utiliza la intersección de los conjuntos C P∩ para la disponibilidad de los profesores y cursos que deben dictar una asignatura a un mismo grado pero que están divididos por otros criterios.
-42-
profesor que se constituye en el parámetro de entrada al modelo. La Tabla Nº A.2. de
anexos presenta la carga horaria profesor – curso para la instancia analizada.
Cabe mencionar que dentro de la etapa de análisis de los resultados, el tamaño de las
instancias de prueba a ser utilizadas obedecerán a la misma configuración presentada en
las tablas mencionadas anteriormente para la instancia real. Esto con el objeto de
enmarcarnos en el entorno educativo de la entidad estudiada. (i.e. si bien el modelo
puede adecuarse a diversas realidades educativas, en la construcción de instancias de
prueba nos enmarcaremos en los lineamientos estratégicos de la Unidad Educativa
Colegio Americano en específico).
5.2.3. Límite del Número de lecciones diarias y disponibilidad de profesores
Una particularidad del problema abordado es que existe un conjunto de materias en las
que un docente dicta dos o más asignaturas a un mismo curso. Por esta razón, para
validar la restricción (5.1.4.) se confeccionó la matriz profesor-curso en la que se
establece el límite de clases diarias. En la Tabla Nº A.3. se detalla la matriz del número
de lecciones por profesor, a su vez se especifica las horas requeridas y disponibles por
cada docente para poder cubrir la demanda de horas de enseñanza de la carga horaria por
curso. En la penúltima columna de la Tabla Nº A.3. se encuentran las holguras entre lo
requerido y disponible, valores que representan las horas disponibles pero en las que no
se desea asignar clases; a éstas se imputaran las penalizaciones en la Función Objetivo.
En la última columna de la mencionada Tabla, se presenta la densidad de la agenda
horaria por profesor (calculada como el cociente entre la carga horaria por profesor y las
horas disponibles) que permiten concluir en el grado de flexibilidad en la conformación
del horario para cada profesor en particular.
5.2.4. Disponibilidad de cursos
La disponibilidad por cursos se establece en relación a los ciclos de aprendizaje
presentes en la educación primaria y los horarios reservados para actividades
extracurriculares en el nivel secundario.
-43-
En ese sentido la Tabla Nº A.4. de anexos presenta las disponibilidades por curso para la
instancia analizada. En su composición se distinguen ocho disponibilidades que difieren
por el ciclo de enseñanza dentro de un mismo nivel, esto es, por ejemplo, que los cursos
que componen el nivel primario tienen diversas disponibilidades aunque en conjunto
ellos formen parte de un mismo nivel de enseñanza.
FIGURA 4. Interfaz para el ingreso de disponibilidades curso/profesor
5.2.5. Penalidades
Cada componente de la función objetivo, penaliza por asignaciones de clase en las que
no se desea tener clase o en su caso se penaliza la presencia de baches en la agenda del
profesor. Haciendo uso de la valoración de Andrea Schaerf [SchA96] descrita en el
punto 3.4. se presenta en la Tabla Nº 7 tanto las penalidades mα por la categoría de
profesores según el grado de prioridad como las penalidades mhdβ y nhdµ .
TABLA 7. Penalizaciones en la Función Objetivo por Categorías Componentes F.O. Subconjuntos Valor de la penalidad
Puente profesor mα
Categoría A Categoría B Categoría C
3 2 1
Asignación Indeseada Profesor mhdβ
Categoría A Categoría B Categoría C
3 2 1
Asignación Indeseada Curso nhdµ Todos los cursos 4
-44-
5.2.6. Descripción del Software y Hardware empleado
Desde la perspectiva del software, el problema de programación entera mixta fue
modelado con OPL STUDIO 3.5.1. de Ilog Software y resuelto con CPLEX 7.5. la
elección del lenguaje de modelación se debe a la facilidades que brinda para la
organización de la información y la posibilidad de conexión con Microsoft Excel y
Visual Basic.
Desde la perspectiva del hardware, la instancia del problema fue resuelta bajo una
arquitectura PC con un procesador Pentium IV de 1.6 MHz y 512 Mb de memoria RAM.
TABLA 8. Tamaño de la instancia No. Restricciones 89285 No. Variables Binarias 23625 No. Variables Enteras 1051
5.2.7. Resolución del modelo
En adelante presentamos los resultados del modelo planteado. Los resultados reportados
están estructurados de la siguiente manera: primero, se presenta en cuanto tiempo se
llega a la solución raíz, luego se indica el GAP18 que tiene la primera solución obtenida
y el tiempo que se demora el modelo en obtenerla, si es que se encuentra alguna solución
factible para el problema. Luego, se reportarán soluciones para distintos GAPs menores
al 5%, con los respectivos tiempos de ejecución para cada una y finalmente la mejor
solución obtenida para ese escenario en particular.
TABLA 9. Resultados obtenidos del método exacto para la instancia empleada Soluciones Tiempo [seg.] GAP [%]
Raíz 10,69 - 1ra Solución 1243,91 99,86 2da Solución 21718,08 96,47 3ra Solución 27516,97 53,70 4ta Solución 29397,61 30,56 5ta Solución 81309,39 16,67 Mejor solución 102631,33 4,86
18 GAP es la brecha de la solución obtenida con respecto al valor que tiene la relajación lineal. Los GAP’s que se mostrarán en todos los resultados son con respecto al valor de la relajación lineal.
-45-
FIGURA 5. Tiempos de resolución de la instancia por el método exacto .vs. GAPs
96,47
53,70
4,86
99,86
30,56
16,67
0,00
20,00
40,00
60,00
80,00
100,00
0 20000 40000 60000 80000 100000 120000
t [seg.]
GA
P [%
]
Como se puede observar los resultados no son muy alentadores en términos del costo
computacional para alcanzar una solución con un GAP menor al 5% (el tiempo
empleado es del orden de 28,5 horas). Sin duda por las características del problema, el
costo computacional puede ser asumido si es que la solución obtenida cubre las
expectativas en cuanto a puentes de horario por categoría y el empleo de horas en
periodos no deseados19. Sin embargo surge el cuestionamiento en cuanto al trade off que
realiza la institución con relación a los costos operacionales y la flexibilidad de la
solución.
Luego, el evaluar diversas configuraciones factibles sin que ellas aseguren optimalidad
pero que sean lo suficientemente buenas para constituirse en una solución aceptable para
el problema, se convierte ahora en una salida viable para ganar en flexibilidad y no
perder de vista la confiabilidad de los resultados alcanzados. Por otro lado, se presenta
como un enfoque alternativo lo expuesto en la teoría para problemas con un tamaño
como el de la instancia abordada, con el empleo de técnicas de búsqueda local para
alcanzar soluciones aproximadas al óptimo con menores costos computacionales.
19 Como la configuración horaria se constituye en una herramienta de planificación anual puede asumirme mayores rangos tolerables para encontrar la solución en términos de tiempo.
-46-
5.3. Heurística de Solución
En puntos anteriores hemos señalado que los problemas de esta familia combinatorial de
conformación de horarios escolares hacen empleo de heurísticas de solución ya sea
porque la solución exacta solo se adecua a problemas pequeños o en su caso porque los
tiempos de resolución por el método exacto son muy elevados. En ese sentido pasamos a
describir una heurística para el problema abordado de manera de caracterizar
posteriormente en que casos y bajo que circunstancias sería útil inclinarnos por su
empleo. Adicional a la literatura consultada, para esta etapa de la investigación se
consultó el trabajo desarrollado por Marcone Souza [SoMa00] sobre la aplicación de
metaheurísticas al problema de horarios. Algunos conceptos desarrollados por el autor
para construir la heurística, son empleados para comprobar si es que permite resolver la
instancia abordada en un menor tiempo y alcanzar mejores soluciones con relación al
enfoque exacto.
En el punto 3.4.1. se ha descrito el enfoque a seguir para el empleo de las técnicas de
Búsqueda Local. En particular nos inclinamos por esta clase de técnicas para la solución
aproximada del problema debido al hecho que las mismas permiten construir de manera
iterativa los horarios de clase tomando como punto de partida una solución factible que
cumpla un conjunto de restricciones esenciales y nos permita incluir las restricciones
deseadas a partir de un procedimiento de búsqueda.
En la Tabla Nº 5 dividimos el conjunto de Restricciones R en las esenciales o duras y las
suaves o deseables; a juicio de aquello debemos definir dos tipos de infactibilidad de las
soluciones: Definimos como un horario infactible aquel que viole cualquiera de las
Restricciones Duras {Re}; será definido como un horario infactible tipo I si no se
cumple la restricción de sobreposición de cursos (en un día k y hora de clase l, un curso
j, tiene asignado más de un profesor) o si un curso no tiene asignada una clase. Por otro
lado, será definido como un horario infactible tipo II si la restricción violada es la del
número máximo de clases (El número de lecciones diarias de una misma materia que
pueda dictar un profesor es mayor que ijMaxlecc ).
-47-
La función objetivo se construye como la minimización de una función lineal de
penalidades sobre las infactibilidades jerarquizadas en orden de importancia relativa y el
cumplimiento del conjunto de Restricciones Suaves {Rr} del problema abordado
(Agenda Compacta y asignación en horas no deseadas).
1 1 1 1
( )h m m d
l l i ikl i i k
Min Z A B C Bachesθ λ φ= = = =
= + + +∑ ∑ ∑∑ (5.3.1.)
Donde:
, ,θ λ φ Son los ponderadores de importancia relativa.
1
0 , , 1
1 m
ijkli
n
lx j k lj
A
=
= ∀ =
=∑
∑ Variable que cuenta el número de veces que un curso
j no tiene clase en el horario l H∈
1
1 , ,1
1 m
ijkli
n
lx j k lj
B
=
> ∀ =
=∑
∑ Variable que cuenta el número de veces que un curso
j tiene asignado a más de un profesor (por ende a más
de una clase) en el horario l H∈
1
, , 1
1 h
ijkl ijl
m
ix Maxlecc i j ki
C
=
> ∀ =
=∑
∑ Variable que cuenta el número de veces que un
profesor i dicta más del límite permitido diario por
materia
En la configuración del vecindario, hacemos uso de las nociones iniciales descritas en el
punto 3.3. a partir de un enfoque de flujo en grafos y el problema de ruta mínima
descrito en [SoMa00]. En ese entendido, partiendo de una solución factible y utilizando
la nomenclatura de grafos tenemos que para una configuración horaria representaremos
un grafo G= (N,A) de modo que:
− El grafo que representa toda la estructura horaria es la unión de los subgrafos
jG para cada curso analizado, esto es: 1 2 .... jG G G G j N= ∩ ∩ ∩ ∀ ∈ .
− Los nodos N de cada subgrafo jG representan las horas de clase disponibles pa ra el desarrollo del proceso de enseñanza durante una semana para el curso j, i.e. { }1 2 3, , ,..,j hN H H H H= .
− Los arcos A de cada subgrafo jG existen si la actual asignación de clase (asociada al
profesor) en el horario k puede intercambiarse con la hora de clase $k . ${ }( , )jA k k= .
-48-
− De la solución inicial se configura el vector iP cuya fila i contiene el número de
puentes o baches de clase que tiene el profesor i en la configuración horaria actual. A
partir del mencionado vector definimos el costo de arco $( , )k kc como la diferencia entre
el valor de la fila i de iP y la fila i$de la configuración actualizada de i
P$ .
− De la estructura anterior, el movimiento interno en cursos que mejora el valor de la
función objetivo (i.e. compacta la configuración horaria disminuyendo el número de
puentes de clase por profesor) se consigue identif icando un ciclo con costo negativo
en jG (aplicando el algoritmo de Floyd- Warshall para la ruta mínima todos a todos)
y evaluando si el cambio de configuración a partir de este ciclo no genera una
solución infactible y además mejora el valor de la FO. El procedimiento iterativo se
desarrolla por curso hasta que no exista costos de ciclo negativo que cumplan con el
criterio anteriormente mencionado.
− En particular, realizar el análisis de manera independiente para cada grafo jG no
aprovecha la característica que cada curso se encuentra relacionado con los demás
por los mismos nodos (horas de clase) y porque comparten asignaturas (y por ende
profesores). En términos simples, un movimiento interno en cursos no incorpora el
análisis de mejora si es que se permuta horas de clase “entre” cursos obteniendo
ciclos de costo negativo que mejorarían la función objetivo.
En ese sentido, surge la alternativa de trueque entre dos horas de clase del par de
profesores $ $$ $
( : )j j j jk kk k
i i i i→ → de forma de que se produzca el ciclo de costo negativo
involucrando dos grafos jG de distintos cursos conectados por los mismos nodos y
se cumpla que $ $( ) ( ) 0j jc k k c k k→ + → < , i.e que disminuya el valor de la FO y en
conclusión sea una mejor configuración. Este procedimiento iterativo lo
denominamos el movimiento entre cursos.
-49-
FIGURA 6. Movimiento entre cursos para mejora de la Función Objetivo
$k i
$ki
$j $j
$( ) 0jc k k→ <
$( ) 0jc k k→ <
$k
$k
$ $( ) ( ) 0j jc k k c k k→ + → <
i
$j$j
i
− Cuando se desarrolle un movimiento entre cursos, se genera una nueva
configuración dentro de un mismo curso (generando nuevos ciclos de costo negativo
factibles) hecho que posibilita la presencia de mejoras a la función objetivo
aplicando el movimiento interno en cursos. Por tanto, el procedimiento iterativo de
búsqueda de mejora interna se engatilla cada vez que exista un movimiento entre
cursos. Tanto el movimiento interno y entre cursos definen la estructura del
vecindario.
En lo que corresponde a la solución inicial utilizamos la modelació n de la sección 5.1 en
búsqueda de una solución factible (esto es, conseguir una solución relajando la restricción
5.1.4 y que no presente una infactibilidad tipo I) esto se logra en el entorno de programación
sustituyendo la Función Objetivo por el comando Solve en OPL STUDIO 3.5.1.
Tabu Search para la heurística aplicada20
En el punto 3.4.1. se ha mencionado algunos aspectos referentes al empleo del algoritmo
Tabu Search adaptado a la problemática abordada. El proceso se inicia tomando como punto
de partida la solución factible encontrada bajo las características del párrafo anterior;
continúa de manera iterativa explorando el vecindario de la solución actual a través de la
mecánica del procedimiento de los movimientos internos y entre cursos que han sido
explicados con anterioridad. El algoritmo trata de mejorar el valor de la función objetivo de
la ecuación (5.3.1) y se repite hasta que no existan diferencias significativas en el transcurso
de las iteraciones del algoritmo. Se establece una lista tabú que contiene T de los
20 El procedimiento empleado se muestra en la sección de Anexos.
-50-
movimientos mas recientes para evitar ciclaje. Junto aquello la función de aspiración W, es
igual a 1W Z= − para utilizar un movimiento que este en T y que compacte el horario.
-51-
Capítulo VI
Análisis de los Resultados
En el presente capítulo pasamos a exponer los resultados alcanzados en la aplicación de
la heurística y posteriormente las comparaciones de los resultados obtenidos con los de
la solución exacta. A partir de aquello analizaremos como se comportan ambos enfoques
con diversas instancias del problema elaboradas con similar estructura a la descrita en
los capítulos anteriores.
6.1. Resultados utilizando la heurística
El objetivo al momento de plantear el empleo de la heurística es la disminución de los
puentes de clase y por ende la constitución de un horario compacto para los educadores.
Todo esto evaluado desde el punto de vista del costo computacional y el GAP de la
solución. Para ello utilizamos el procesamiento de datos de la instancia abordada
realizado para la solución exacta.
La tabla siguiente muestra los resultados alcanzados por la heurística con la lista tabú de
30T = y penalidades 3, 2, 1θ λ φ= = = :
TABLA 10. Resultados obtenidos de la heurística para la instancia empleada Soluciones Tiempo [seg.] GAP [%]
Raíz 0,20 - 1ra Solución 559,76 44,94 2da Solución 7601,33 33,76 3ra Solución 12382,64 24,17 4ta Solución 19108,45 19,86 5ta Solución 28458,29 5,83 Mejor solución 30789,40 3,46
Analizando los resultados de la heurística se puede observar que se alcanza valores
menores al 5% en GAP alrededor de las 8 horas de funcionamiento (después de las 8
horas el computador se satura y progresivamente queda sin memoria), es evidente que
existe un ahorro computacional con mejores resultados con relación al método exacto.
-52-
Los tiempos de mejora en la reducción del GAP siguen una tendencia exponencial como
muestra la figura siguiente; la diferencia en el costo computacional entre ambos métodos
es considerable.
FIGURA 7. Tiempos de resolución de la instancia .vs. GAPs
0
10
20
30
40
50
60
70
80
90
100
0 10000 20000 30000 40000 50000 60000 70000 80000 90000 100000 110000 120000 130000t [seg]
%
Met. Exacto
Heuristica
Exponencial (Met. Exacto)
Exponencial (Heuristica)
Si bien esta reducción permitió encontrar una buena solución en 1/3 del tiempo que la
obtenida con el método exacto, por un parte las agendas de profesores con mayor
prioridad dentro de la institución presentan mayor número de baches que la solución
encontrada por el método exacto (esto porque son ciertamente estas agendas las que
presentan una mayor densidad y son poco flexibles en su conformación, por tanto el
algoritmo prefiere reducir el número de baches de los profesores con mayores horas
disponibles pero que no necesariamente son los profesores con mayor prioridad relativa)
y por otra la reducción de la brecha en el GAP con la de la solución relajada no es tan
significativa como resulta en el análisis del costo computacional (existe una reducción
del GAP de 1,4% entre la mejor solución de la heurística y del método exacto,
aproximadamente una mejora en 28,81%).
6.2. Familia de Instancias de prueba
Si bien durante el desarrollo del presente informe se ha hecho referencia en detalle a la
instancia configurada con los datos de la presente gestión en la entidad educativa,
consideramos necesario generar un conjunto de instancias de prueba de diverso tamaño
-53-
para poder valorar el desempeño de los dos enfoques de solución. Dichas instancias se
configuran bajo el mismo esquema de trabajo de la unidad analizada, esto significa que
nos mantenemos con una estrategia de enseñanza diversificada en los últimos cursos del
nivel secundario, clases simultáneas, disponibilidades por grupo etáreo para los
deportivos, etc.
TABLA 11. Descripción de las Características de la familia de instancias
Instancia Parámetros Variables
P C H T S L CP ? Binarias Enteras Total
1 14 5 7 2 13 127 0 0,50 2590 421 3011
2 21 8 7 2 19 211 0 0,63 6090 631 6721
3 27 10 7 2 36 274 0 0,68 9720 811 10531
4 32 15 7 2 40 417 5 0,72 17120 961 18081
5 35 19 7 2 43 534 13 0,78 23625 1051 24676 P : Profesores; C: Cursos; H: Horas de clase; T: turnos; S: materias; L: lecciones; CP: Horas compartidas; ?: densidad
Las instancias 1 y 2 corresponden a la estructuración de un horario para el nivel primario
(5 y 8 cursos respectivamente) sin consideración de los paralelos de curso, la instancia 3
incorpora el nivel primario y los dos primeros cursos del nivel secundario, la instancia 4
engloba a la totalidad de los cursos del colegio sin incorporar los paralelos, la instancia 5
es la abordada en detalle en las secciones anteriores. La idea de evaluar las dos primeras
instancias, en las que no se incluye al nivel secundario, es que en inicio podamos valorar
como se comporta el enfoque exacto con problemas de menor tamaño (dado que en la
literatura se señala que los modelos exactos son bastante útiles para problemas
pequeños) y por otro lado, poder evaluar como afecta la restricción (5.1.9) - acerca de
las clases simultáneas en los cursos diferenciados y paralelos de curso- en los tiempos de
solución y el GAP.
La Tabla Nº12 muestra los resultados de la familia de instancias aplicando el enfoque
exacto de solución descrito en el punto 5.1. en el caso de la primera instancia se alcanza
el valor optimo de la solución entera en menos de 600 segundos, en el caso de las
instancias 2 y 3 el algoritmo se detiene aproximadamente a las 7 horas de
-54-
funcionamiento tras haber alcanzado valores del orden de 5% en GAP. En el caso de la
instancia 4 el costo computacional es de 28 horas para alcanzar valores dentro del
margen aceptable de solución.
TABLA 12. Resultados de la familia de instancias por el enfoque exacto
Tiempo [seg] GAP [%] Tiempo [seg] GAP [%] Tiempo [seg] GAP [%] Tiempo [seg] GAP [%] Tiempo [seg] GAP [%]Raiz 0,25 - 0,92 - 2,39 - 6,69 - 10,69 -1ra Solución 65,74 103,00 143,81 11,00 400,38 113,00 1492,30 543,00 1243,91 99,862da Solución 132,86 102,00 285,67 10,00 1075,04 108,00 2317,25 542,00 21718,08 96,473ra Solución 403,80 101,00 424,19 9,00 13134,13 107,00 3177,95 439,00 27516,97 53,704ta Solución 475,70 2,00 576,45 8,00 19667,64 102,00 4065,19 434,00 29397,61 30,565ta Solución 490,40 1,00 724,16 6,00 19922,28 9,00 77349,72 18,32 81309,39 16,67Mejor solución 589,74 0,00 26259,00 4,94 26596,00 5,01 101023,21 5,12 102631,33 4,86
Soluciones Instancia 5Instancia 1 Instancia 2 Instancia 3 Instancia 4
Con relación a la última instancia podemos concluir que si bien existe un grado de
complicación mayor para configuraciones con clases simultáneas, el costo
computacional tiene una mayor dependencia del tamaño de la instancia, es decir,
depende del grado combinatorial de profesores y cursos a relacionar. Con esto se pudo
comprobar lo descrito en la literatura acerca de la factibilidad de emplear el enfoque
exacto para problemas de menor tamaño obteniéndose resultados en tiempos aceptables,
a medida que el problema crece los tiempos de resolución crecen y se pierde en
eficiencia. La figura Nº 8 con escala logarítmica muestra el comportamiento de las
soluciones en cuanto al tiempo de resolución y la reducción porcentual del GAP.
FIGURA 8. Tiempos de resolución de la familia de instancias .vs. GAPs, enfoque exacto
1
10
100
1000
1 10000 100000000
Tiempo [seg]
GA
P [
%]
Instancia 1 Instancia 2 Instancia 3 Instancia 4 Instancia 5
-55-
TABLA 13. Resultados de la familia de instancia para ambos enfoques
Soluciones INSTANCIA 1 INSTANCIA 2 INSTANCIA 3
Enfoque Exacto Enfoque Heurístico Enfoque Exacto Enfoque Heurístico Enfoque Exacto Enfoque Heurístico Tiempo [seg] GAP [%] Tiempo [seg] GAP [%] Tiempo [seg] GAP [%] Tiempo [seg] GAP [%] Tiempo [seg] GAP [%] Tiempo [seg] GAP [%]
Raíz 0,25 - 0,08 - 0,92 - 0,12 - 2,39 - 0,15 -1ra Solución 65,74 103,00 42,73 66,95 143,81 11,00 64,71 18,00 400,38 113,00 280,27 89,042da Solución 132,86 102,00 71,74 34,68 285,67 10,00 74,42 15,66 1075,04 108,00 896,85 79,253ra Solución 403,80 101,00 109,03 20,20 424,19 9,00 91,54 11,43 13134,13 107,00 2278,00 34,084ta Solución 475,70 2,00 147,47 3,20 576,45 8,00 162,94 9,95 19667,64 102,00 19955,30 14,655ta Solución 490,40 1,00 196,16 1,45 724,16 6,00 320,99 4,18 19922,28 9,00 20154,85 3,08
Mejor solución 589,74 0,00 215,78 0,00 26259 4,94 2461,99 1,29 26596,00 5,01 22774,98 2,68
Soluciones INSTANCIA 4 INSTANCIA 5
Enfoque Exacto Enfoque Heurístico Enfoque Exacto Enfoque Heurístico Tiempo [seg] GAP [%] Tiempo [seg] GAP [%] Tiempo [seg] GAP [%] Tiempo [seg] GAP [%]
Raíz 6,69 - 0,18 - 10,69 - 0,2 -1ra Solución 1492,30 543 492,46 85,02 1243,91 99,86 559,76 44,942da Solución 2317,25 542 2757,77 73,97 21718,08 96,47 7601,33 33,763ra Solución 3177,95 439 9376,42 39,94 27516,97 53,70 12382,64 24,174ta Solución 4065,19 434 11533,00 8,39 29397,61 30,56 19108,45 19,865ta Solución 77349,72 18,32 25372,59 6,37 81309,39 16,67 28458,29 5,83
Mejor solución 101023,21 5,12 28417,30 5,01 102631,33 4,86 30789,4 3,46
-56-
6.2. Comparación de enfoques para la familia de instancias
La Tabla Nº 13 presenta los resultados de la aplicación de ambos enfoques sobre las
instancias planteadas. El nivel de ahorro computacional en la totalidad de las instancias,
aplicando el enfoque heurístico, es considerable acompañado de una disminución del
GAP. Señalemos, sin embargo, que para las instancias pequeñas el enfoque exacto
resuelve el problema en tiempos razonables o en su caso alcanza valores menores al 5%
con mayor facilidad que en instancias grandes.
TABLA 14. Ahorros con el empleo del enfoque heurístico
Ahorro en el Costo Computacional [%]
Disminución en el GAP [%]
Instancia 1 63,4 0,0Instancia 2 90,6 73,8Instancia 3 14,4 46,6Instancia 4 71,9 2,1Instancia 5 70,0 28,8
6.3. Visualización de los resultados
Hasta el momento sólo se ha mostrado los resultados obtenidos con el modelo para
ambos enfoques, siendo analizados por el tiempo de resolución y por la calidad de esta
con respecto al óptimo lineal, pero sin embargo, no se ha comentado acerca de cómo es
la solución, es decir, el número de puentes de clase en la configuración del horario
disgregado por categorías de profesor, la estructura de las agendas de los profesores y la
asignación de materias por nivel y por curso. En los párrafos siguientes presentamos
estos resultados de manera de poder visualizar el producto obtenido con el desarrollo del
presente trabajo.
TABLA 15. Resultados de la instancia abordada Puentes de
Clase Asignación Horas no
Deseadas Ponderación
en la F.O Categoria A 0 0 0 Categoria B 0 0 0 Categoria C 6 0 6 Total 6 0 6
-57-
La Tabla Nº 15 muestra los resultados alcanzados en la F.O. según los componentes de
la misma, esto es, existen 6 puentes de clase para los profesores de categoría C (menor
prioridad) como mejor solución encontrada por el enfoque exacto. Si bien todavía no nos
encontramos en el óptimo, la configuración horaria no incorpora baches en la agenda de
profesores de mayor prioridad. En adición aquello, 4 de los puentes de horario
corresponden a los profesores del nivel primario inferior (entre el 1ro y el 4to curso)
cuya característica diferencial al resto de la planta docente es que los mismos deben
quedarse en el asesoramiento del curso independiente de que se encuentren en proceso
de enseñanza de una materia a su cargo. Esto significa que efectivamente el número de
puentes de clase se disminuye a dos para toda la configuración horaria del
establecimiento.
La Tabla Nº 16 presenta la estructura de las agendas de los profesores por categorías, en
este caso el horario tiene valores binarios para describir si el profesor tiene asignada una
clase en el turno respectivo (independiente del curso en el que se desarrolle el proceso de
enseñanza), esta es la tabla resumen que nos permite verificar la existencia de puentes de
clase en la agenda de los profesores. A partir de esto se configura la agenda por curso
relacionando el profesor y la materia que dicta con la asignación que presenta el curso en
su horario.
En la Figura Nº 9 se presenta un extracto de la distribución de las horas de clase entre los
profesores y los cursos relacionados. A partir de esto se construye el horario final por
curso y por materia para la instancia abordada. Por tratarse de un cuadro de horario
bastante amplio a manera de ejemplo extraemos parte del mismo para poder socializar
los resultados alcanzados con el empleo del modelo planteado.
-58-
TABLA 16. Asignación general para el cuerpo docente en la instancia estudiada ASIGNACIÓN DE AGENDA DE PROFESORES: CATEGORIA C L M M J V L M M J V L M M J V L M M J V L M M J V
1 0 0 0 0 0
TU
T_K
IN
1 1 0 1 0 1
TU
T_1
ro
1 1 1 1 1 1
TU
T_2
Da
1 0 1 1 1 0
TU
T_2
Dg
1 1 1 0 0 1
TU
T_3
ro
2 0 0 1 1 1 2 0 1 1 0 1 2 0 1 1 0 1 2 1 1 1 1 0 2 1 1 1 1 1 3 0 1 1 1 1 3 0 1 1 1 1 3 1 1 1 0 1 3 1 1 1 1 0 3 1 1 0 1 1
4 1 1 1 1 1 4 0 1 0 1 1 4 1 1 1 0 1 4 1 1 1 1 1 4 0 1 1 1 0 5 0 0 0 0 0 5 0 0 0 0 0 5 0 0 0 0 0 5 0 0 0 0 0 5 0 0 0 0 0 6 0 0 0 0 0 6 1 0 0 0 0 6 0 0 0 0 0 6 0 0 0 0 0 6 0 0 0 0 0
7 0 0 0 0 0 7 1 0 0 0 0 7 0 0 0 0 0 7 0 0 0 0 0 7 0 0 0 0 0
L M M J V L M M J V L M M J V L M M J V L M M J V
1 1 1 1 1 1
TU
T_4
tA
1 0 1 1 1 0
TUT_
4tG
1 1 1 1 1 1
MA
T_IN
T
1 0 1 1 0 1
EFR
_BU
R
1 1 1 0 0 1
PE
D_P
ET 2 0 1 0 0 1 2 1 0 1 1 1 2 1 1 1 1 1 2 0 0 0 0 0 2 1 1 0 0 1
3 1 1 1 0 1 3 1 0 1 1 1 3 1 1 1 1 1 3 0 0 0 0 0 3 1 1 0 0 1 4 1 1 1 0 1 4 1 0 1 1 1 4 1 1 1 1 1 4 0 0 0 1 0 4 1 1 0 0 1 5 0 0 0 0 0 5 0 0 0 0 0 5 1 1 1 1 1 5 1 0 0 0 0 5 0 1 0 0 1 6 0 0 0 0 0 6 0 0 0 0 0 6 0 0 0 0 0 6 1 1 0 1 0 6 1 1 0 0 0 7 0 0 0 0 0 7 0 0 0 0 0 7 0 0 0 0 0 7 1 0 0 0 0 7 1 0 0 0 0 L M M J V L M M J V L M M J V
1 1 0 0 1 0
ING
_IN
T
1 0 1 1 1 1
ING
_IG
O
1 0 1 0 0 1
AR
Q_U
IT
2 1 1 0 1 1 2 0 1 1 1 1 2 0 0 0 0 0 3 0 1 1 0 1 3 0 0 0 1 1 3 0 0 0 0 0 4 0 1 1 0 1 4 1 1 1 1 1 4 1 0 0 0 0 5 1 0 0 1 0 5 0 0 0 0 0 5 0 0 0 0 0 6 0 0 0 0 0 6 0 1 1 0 0 6 0 0 0 0 0
7 0 0 1 0 0 7 0 1 1 0 1 7 0 0 0 0 0 ASIGNACIÓN DE AGENDA DE PROFESORES: CATEGORIA B L M M J V L M M J V L M M J V L M M J V L M M J V
1 1 1 1 1 1
TU
T_5
to
1 0 0 1 1 0
MIR
_GA
R
1 0 0 0 1 0
FR
E_C
AD
1 0 0 0 0 0
SU
S_C
AD
1 1 0 0 0 0
VIC
_AV
I
2 1 1 1 1 1 2 1 0 1 1 0 2 0 0 0 1 0 2 0 0 0 0 0 2 1 0 0 0 0 3 1 1 1 1 1 3 1 1 1 1 0 3 0 0 0 1 0 3 0 0 0 0 0 3 1 0 0 0 0 4 0 0 0 0 0 4 1 1 1 1 0 4 0 0 0 1 1 4 0 0 0 0 0 4 1 1 0 0 0
5 0 0 0 0 0 5 0 0 1 1 0 5 1 0 1 0 0 5 0 0 0 0 0 5 1 1 1 1 1 6 0 0 0 0 0 6 0 0 1 1 0 6 1 0 1 0 0 6 1 0 0 0 0 6 1 1 1 1 1 7 0 0 0 0 0 7 0 0 1 1 0 7 1 0 1 0 0 7 1 0 0 0 0 7 1 1 1 1 1
-59-
L M M J V L M M J V L M M J V L M M J V L M M J V
1 0 0 0 0 0 JO
S_L
OP
1 1 1 1 1 1
TE
R_D
EL
1 0 0 0 0 0
OB
E_G
AL
1 0 0 0 0 0
AY
D_A
RR
1 1 1 1 1 1
RO
B_I
TA
2 0 0 0 0 0 2 1 1 1 1 1 2 0 0 0 0 0 2 0 0 0 0 0 2 1 1 1 1 1 3 0 0 0 0 0 3 1 1 1 1 1 3 0 0 0 0 0 3 0 0 0 0 0 3 1 1 1 1 1
4 0 0 0 0 0 4 1 1 1 1 1 4 0 0 0 0 0 4 0 0 0 0 0 4 1 1 1 1 1 5 1 0 1 0 1 5 1 1 0 1 0 5 1 1 0 1 1 5 1 0 0 0 0 5 0 0 0 0 0 6 1 0 1 0 1 6 1 1 0 1 0 6 1 1 0 1 1 6 1 0 0 0 1 6 0 0 0 0 0
7 1 0 1 0 0 7 1 1 0 1 0 7 1 1 0 1 1 7 1 1 0 1 0 7 0 0 0 0 0 L M M J V L M M J V L M M J V L M M J V
1 1 0 1 1 1
ING
_SIN
1 1 0 0 1 1
LIL_
MU
S
1 0 0 0 0 0
GE
R_M
US
1 1 1 1 1 1
NIL
_GA
R
2 1 0 1 1 1 2 1 0 0 1 1 2 0 0 0 0 0 2 1 1 1 1 1
3 0 1 1 1 1 3 1 0 0 1 1 3 0 0 0 0 0 3 1 1 1 1 1 4 0 1 1 1 1 4 1 0 0 0 1 4 0 0 0 1 0 4 1 1 1 1 1
5 0 0 0 0 0 5 0 0 0 0 0 5 1 0 1 0 0 5 0 1 1 1 0 6 0 0 0 0 0 6 0 0 0 0 0 6 1 0 1 0 0 6 1 1 1 1 0 7 0 0 0 0 0 7 0 0 0 0 0 7 1 1 1 0 0 7 1 1 1 1 1 ASIGNACIÓN DE AGENDA DE PROFESORES: CATEGORIA A L M M J V L M M J V L M M J V L M M J V L M M J V
1 1 1 1 1 1
JUL_
RIV
1 1 1 0 1 0
TE
R_G
AM
1 0 0 0 0 0
JUA
_BA
Y
1 1 0 1 0 1
CO
R_D
EL
1 1 1 1 1 1
DIR
EC
TO
2 1 1 1 1 1 2 1 1 0 1 0 2 1 1 1 1 0 2 1 0 1 0 1 2 1 1 1 1 1 3 1 1 1 1 1 3 1 1 0 1 0 3 1 1 1 1 0 3 1 0 1 0 1 3 1 1 1 1 1
4 1 1 1 1 1 4 0 0 0 1 0 4 1 1 1 1 0 4 1 0 1 0 1 4 1 0 1 1 1 5 1 1 1 1 1 5 1 0 0 0 0 5 1 1 0 1 0 5 1 1 0 0 0 5 0 0 0 0 0 6 0 0 1 0 0 6 1 1 0 1 0 6 1 1 1 1 0 6 1 1 1 1 1 6 0 0 0 0 0
7 0 0 0 0 0 7 1 1 0 1 0 7 1 1 1 1 0 7 1 1 1 1 1 7 0 0 0 0 0 L M M J V L M M J V L M M J V
1 0 1 1 0 0
TE
O_M
OL
1 0 0 0 0 0
PS
I_C
OL
1 0 0 0 0 0
DO
C_C
OM
2 0 1 1 0 0 2 0 0 0 0 0 2 0 0 0 0 0
3 0 1 1 0 0 3 0 0 0 0 0 3 0 0 0 0 0 4 0 1 1 0 0 4 0 0 0 0 0 4 0 0 0 0 0 5 0 0 0 0 0 5 0 1 1 1 0 5 1 1 1 0 0 6 0 0 0 0 0 6 0 1 1 1 1 6 1 0 1 0 0 7 0 0 0 0 0 7 0 1 1 1 1 7 0 0 0 0 0
-60-
FIGURA 9. Extracto de la configuración horaria de la instancia abordada presentada en Microsoft Excel
-61-
Capítulo VII
Conclusiones
En el desarrollo del presente trabajo nos enfocamos en el abordaje de un problema
clásico en la literatura como es el de la programación de actividades, en particular en el
de la programación de horarios escolares. La motivación del mismo se basa en la
búsqueda de la resolución de un problema que pertenece a esta familia combinatorial,
donde el entorno esta definido por el sistema educativo Boliviano focalizado en la
Unidad Educativa Colegio Americano de la ciudad de Oruro, tomando en consideración
las condicionantes distintivas de la misma.
Después de una revisión bibliográfica de los enfoques de solución alternativos para el
problema, se detallaron las características distintivas de la unidad estudiada,
especificando su estructura operacional y estrategias de diferenciación. Esto resultó
relevante para contextualizar el problema de asignación de horarios y en función de
aquello poder socializar la importancia de la resolución del mismo.
Uno de los aspectos en los que se tuvo mayor consideración dentro de la modelación del
problema de asignación de horarios escolares fue la determinación de la función
objetivo. En este tipo de problemas, en general el valor óptimo de una función objetivo
esta dado a partir de la negociación de los intereses de los participantes en el proceso de
enseñanza, intereses que en muchos de los casos son mutuamente excluyentes. La
estrategia empleada para la solución del problema consistió en dividir el conjunto de
restricciones del problema {R} en dos subconjuntos, uno de ellos conteniendo las
restricciones duras o esenciales y el otro con las restricciones suaves o deseables las que
fueron evaluadas en la función objetivo lineal basada en penalidades.
Dentro el enfoque de solución exacta se formuló un modelo de programación entera
mixta sujeto al subconjunto de restricciones esenciales y operando sobre las
condicionantes deseables en la función objetivo.
-62-
La instancia abordada presentó alrededor de 25.000 variables y 89.000 restricciones
alcanzando soluciones con un GAP menor al 5% en aproximadamente 28 horas de
funcionamiento. El problema fue modelado con OPL STUDIO 3.5.1. de Ilog Software y
resuelto con CPLEX 7.5
Se evaluó la aplicación de un enfoque alternativo basado en búsqueda local para
disminuir el costo computacional -a partir del trabajo realizado por Marcone Souza
[SoMa00] sobre la aplicación de metaheurísticas al problema de horarios- reduciendo el
número de puentes de clase y por ende la constitución de un horario compacto para los
educadores. Los resultados fueron mejores comparando con los del enfoque exacto,
alcanzando soluciones con menos del 5% en GAP alrededor de las 8 horas de
funcionamiento.
Sin embargo, si bien esta reducción permitió encontrar una buena solución en 1/3 del
tiempo que la obtenida por el método exacto, no se puede afirmar que de manera
exclusiva el enfoque heurístico sea la mejor alternativa para la unidad estudiada. Esto
porque en los resultados de la heurística las agendas de profesores con mayor prioridad
dentro de la institución presentan mayor número de baches que la correspondiente a la
del enfoque exacto. Se constituye en una alternativa razonable para evaluar el
desempeño del enfoque heurístico, en función del criterio de categorización, desarrollar
un procedimiento que nos permita priorizar las agendas de los profesores.
Esto da pie al trade off que debe realizar el planificador entre los dos enfoques para la
instancia abordada. Con esto queremos decir que dependerá de los atributos que se pidan
a las soluciones (en consideración al costo computacional, GAP, baches prioritarios, etc)
para definir cua l de los enfoques de solución es el más adecuado para su aplicación. Sin
duda, considerando el concepto de eficiencia operacional el enfoque heurístico presenta
ventajas con relación al enfoque exacto, pero este último nos asegura optimalidad a un
determinado nivel de costo operacional.
-63-
Para poder comparar el comportamiento de ambos enfoques de solución en problemas
de diverso tamaño se conformó una familia de cuatro instancias que se sumaron a la
existente, las mismas fueron evaluadas en base al costo computacional y el GAP con la
solución relajada. Los resultados revelaron que para instancias pequeñas el enfoque
exacto alcanza buenos rendimientos en tiempos razonables y además demostraron la
mayor dependencia del costo computacional con el tamaño del problema que con las
características distintivas del mismo.
Al utilizar el GAP que existe entre el valor de la solución entera y el valor de la
relajación lineal como medida de comparación entre los dos enfoques, es posible que
existan algunas distorsiones en las soluciones puesto que las mismas pueden encontrarse
mucho más cerca del óptimo de lo que según CPLEX están. Sin embargo, al no
alcanzarse a recorrer el árbol de manera completa, no se puede comprobar efectivamente
si se está en el óptimo.
Finalmente, con el desarrollo del presente trabajo se pudo configurar una herramienta de
apoyo a la toma de decisiones a nivel operacional dentro de un entorno educativo,
demostrando la practicidad de los elementos de gestión abordados en el transcurso del
magíster; no solo dentro de las áreas tradicionales de su aplicación, sino, incursionando
en sistemas que a la luz se divisan simples pero que presentan un grado de complejidad
susceptible a ser modelado.
-ix-
Bibliografía
[AdDh93] Abramson D. y Dang H. School Timetables: A Case Study Using Simulated Annealing, Applied SA, Lecture Notes in Economics and Mathematical Systems, 1993, pp.104-124.
[BuKi98] Burke E, Kingston J y Pepper P. A Standard Data Format for Timetabling Instances, in [8], 1998, pp.213- 222.
[CosD94] Costa D. A Tabu Search Algorithm for computing an operational timetable, European Journal of Operational Research Society, v. 76, 1994, pp. 98-110.
[CjGc61]
Csima, J, Gotlieb C. Tests on a computer method for construction of school timetables, Communications of the ACM, v. 7, 1961, pp. 160-163.
[CoDM98] Colorni A, Dorigo M & Maniezzo V. Metaheuristics for High School Timetabling, Computational Optimization and Applications, v.9, 1998, pp.275-298.
[CtKj95] Cooper T. y Kingston J. A Program for Constructing High School Timetables, Proc. 1st Int. Conf. on the Practice and Theory of Automated Timetabling, Napier University, Edinburgh, 1995.
[CwHr05] Combs W, Hawkins R, Pore T, Schechet A, Wahls T y Ziantz L. The Course Scheduling Problem as a Source of Student Projects, Dickinson College, SIGCSE'05, St. Louis, Missouri, USA, 2005.
[CndW90] Chahal N, y de Werra D. An interactive system for constructing timetables on a PC. European Journal of Operational Research Society, v. 40, 1989, pp. 32-37.
[EsIS76] Even S, Itai A, Shamir A. On the complexity of timetabling and multicommodity problems, SIAM Journal of Computation, 1976, pp. 691-703.
[HiLi97] Hillier F y Lieberman G. Introducción a la investigación de operaciones. McGraw-Hill, 6ta edición. 1997.
[HeFe07] Hernandez, Roberto, Fernandez, Carlos, Baptista, Pilar, Metodología de la Investigación, Segunda Edición, Edit. McGraw-Hill, México, 2007
[HerA92] Hertz A. Finding a feasible course schedule using tabu search. Discrete Applied Mathematics, v. 35, 1992, pp. 255-270.
[Mine08] Ministerio de Educación de Bolivia. Proyecto de transformación de la educación secundaria1ra Fase, 2008.
[NgTj74] Neufeld, G. y Tartar, J. Generalized Graph Colorations. SIAM Journal on Applied Mathemathics, v. 29, 1974, pp. 91-98.
-x-
[OrVV00] Ortiz C, Varas S y Vera J. Optimización y modelos para la gestión, Dolmen ediciones s.a, 1era edición.2000.
[RpOe95] Reis P. y Oliveira E. A Language for Specifying Complete Timetabling Problems, University of Porto, Portugal, This work was partially supported by the Portuguese Foundation for Science and Technology, 1995.
[RpOe99] Reis P. y Oliveira E. A Constraint Logic Programming Approach to Examination Scheduling, AICS'99, Artificial Intelligence and Cognitive Science Conference, Cork, Ireland, September 1999.
[SchA96] Schaerf A. Tabu Search techniques for large high-school timetabling problems. In Proceedings of the 30th National Conference on Artificial Intelligence, 1996, pp. 363-368.
[ShOl04] Santos H, Ochi L y And Souza M. An Eficient Tabu Search Heuristic for the School Timetabling Problem. Metaheuristics: Computer Decision-Making. Kluwer Academic Publishers, 2004.
[SoMa00] Souza M. Tesis Doctoral: Programación de Horarios en escuelas, una aproximación por metaheurísticas, Universidad Federal de Rio de Janeiro, 2000, 149h.
[SmMn00] Souza, M, Maculan N, Ochi L. Melhorando Quadros de Horário de Escolas através de Caminhos Mínimos, Tendencias em Matemática Aplicada e Computacional, v. 1, 2000, pp. 515-524.
[TripA84] Tripathy, A. School timetabling - A case in large binary integer linear programming. Management Science, v. 30, 1984, pp. 1473-1489.
[YmKN94] Yoshihawa M, Kaneko K & Nombra Y. A constraint-based approach to high school timetabling problems. In Proceedings of the 12th National Conference on Artifcial Intelligence, 1994.
[WerD85] de Werra D. An introduction to timetabling, European Journal of Operational Research Society, v. 19, 1985, pp. 151-162.
[Wols97] Wolsey L. Integer Programming, John Willey y sons, 1997.
[WoDc70] Wood, D.C. A technique for colouring a graph applicable to large scale timetabling problems. The Computer Journal, v. 12, 1970, pp. 317-319.
-xi-
Anexos
Tabla Anexo A.1. Matriz Carga Horaria Materia - Curso de la instancia empleada
MATERIAS K 1º 2ºA 2ºG 3º 4ºA 4ºG 5º 6º 7º 8º IA IG IIA IIG IIIE IIIB IVE IVB TOTAL
MAT_SEC1 - - - - - - - - - - - - - 5 5 4 3 3 3 23
MAT_SEC2 - - - - - - - - - - - 5 5 - - - - - - 10 QUIMICA GEN - - - - - - - - - - - - 3 3 3 - - - 2 11
QUIMICA_IIIyIV - - - - - - - - - - - 3 - - - 2 2 2 - 9 FISICA_II - - - - - - - - - - - - - - - 3 3 2 2 10
FISICA_I - - - - - - - - - - - 4 4 3 3 - - - - 14 BIOLOGIA - - - - - - - - - - 3 3 3 2 2 2 2 2 3 22 HISTORIA - - - - - - - - - - - - - - - 2 2 2 2 8
LITERATURA - - - - - - - - - - 4 3 3 3 3 2 2 3 3 26 ING_AVANZ - - - - - - - - - - - - 4 4 - 4 - 4 - 16
ING_MEDIO - - - - - - - - - - 4 4 - - 4 - 4 - 4 20 ING_INTERMED - - - - - - - 5 5 5 - - - - - - - - - 15
EDUC_ FIS 1 y 2 - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 18 COMPUTACION - - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 17
REL IGION - 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 20 DIBUJO_TEC - - - - - - - - - - - 1 1 1 1 1 1 1 1 8
DIBUJO_BAS - - 1 1 1 1 1 1 1 1 1 - - - - - - - - 9 PSICOLOGIA - - - - - - - - - - - 1 1 1 1 - - - - 4
FILOSOFIA - - - - - - - - - - - - - 1 1 1 2 1 1 7 GEOMETRIA - - - - - - - - - - - - - - - 1 - 2 - 3
CAL/ESTADIS - - - - - - - - - - - - - - - 2 1 2 1 6 ANAT/COMUNI - - - - - - - - - - - - - - - - 2 - 2 4 CIV ICA - - - - - - - - - - - - - - - 2 2 2 2 8
GEOGRAFIA - - - - - - - - - - - - - - - 2 2 2 2 8 SOC_MEDIO - - - - - - - - - - - 4 4 4 4 - - - - 16
MAT_INTER - - - - - - - - 5 5 5 - - - - - - - - 15 LENGUAJE - - - - - - - - 5 5 - - - - - - - - - 10
C_NATURALES - - - - - - - - 3 3 - - - - - - - - - 6 TVO 1 y 2 - 1 1 1 1 1 1 1 2 2 2 - - - - - - - - 13
ING_BASICO 2 4 4 4 5 5 5 - - - - - - - - - - - - 29 E_SOCIALES - - - - - - - - 3 3 3 - - - - - - - - 9
MUSICA 1 y 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 19 TUT_KINDER 12 - - - - - - - - - - - - - - - - - - 12
MIXTO_1º - 15 - - - - - - - - - - - - - - - - - 15 MIXTO_2ºAyG - - 16 16 - - - - - - - - - - - - - - - 16
MIXTO_3º - - - - 15 - - - - - - - - - - - - - - 15 MIXTO_4ºAyG - - - - - 15 15- - - - - - - - - - - - - 15
MIXTO_5º - - - - - - - 15 - - - - - - - - - - - 15
TOTAL 15 23 26 26 26 26 26 26 29 29 26 32 32 31 31 32 32 32 32
-xii-
Tabla Anexo A.2. Matriz Carga Horaria Profesor - Curso de la instancia empleada PROFESORES K 1º 2ºA 2ºG 3º 4ºA 4ºG 5º 6º 7º 8º IA IG IIA IIG IIIE IIIB IVE IVB TOTAL
1. TUT_KIN 12 - - - - - - - - - - - - - - - - - - 12
2. TUT_1ro - 15 - - - - - - - - - - - - - - - - - 15 3. TUT_2Da - - 16 - - - - - - - - - - - - - - - - 16
4. TUT_2dG - - - 16 - - - - - - - - - - - - - - - 16 5. TUT_3ro - - - - 15 - - - - - - - - - - - - - - 15
6. TUT_4tA - - - - - 15 - - - - - - - - - - - - - 15 7. TUT_4tG - - - - - - 15 - - - - - - - - - - - - 15
8. TUT_5to - - - - - - - 15 - - - - - - - - - - - 15 9. MAT_INT - - - - - - - - 5 5 5 5 5 - - - - - - 25
10. JUL_ RIV - - - - - - - - - - 4 3 3 3 3 2 2 3 3 26 11. MIR_GAR - - - - - - - - 8 8 3 - - - - - - - - 19
12. TER_GAM - - - - - - - - 3 3 - - 3 3 3 - - - 2 17 13. JUA_BAY - - - - - - - - - - 3 3 3 2 2 2 2 2 3 22
14. FRE_CAD - 1 1 - 1 1 - 1 2 2 2 - - - - - - - - 11 15. SUS_CAD - - - 1 - - 1 - - - - - - - - - - - - 2 16. VIC_AVI - 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 20
17. JOS_LOP - - - - - - - - - - - 1 1 1 1 1 1 1 1 8 18. EFR_BUR - - 1 1 1 1 1 1 1 1 1 - - - - - - - - 9
19. TER_DEL 2 4 4 4 5 5 5 - - - - - - - - - - - - 29 20. OBE_GAL - 1 1 - 1 1 - 1 1 1 1 1 - 1 - 1 - 1 - 12
21. AYD_ARR - - - 1 - - 1 - - - - - 1 - 1 - 1 - 1 6 22. PED_PET - - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 17
23. COR_DEL - - - - - - - - - - - - - 5 5 4 3 3 3 23 24. ROB_ ITA - - - - - - - - - - - 4 4 3 3 2 1 2 1 20
25. DIRECTO - - - - - - - - - - - 3 - - - 5 5 4 2 19 26. TEO_MOL - - - - - - - - - - - - - - - 2 2 2 2 8
27. ING_SIN - - - - - - - - - - - - 4 4 - 4 - 4 - 16 28. ING_INT - - - - - - - 5 5 5 - - - - - - - - - 15
29. ING_ IGO - - - - - - - - - - 4 4 - - 4 - 4 - 4 20 30. LIL_MUS 1 1 1 1 1 1 1 1 1 1 1 - - - - - - - - 11 31. GER_MUS - - - - - - - - - - - 1 1 1 1 1 1 1 1 8
32. PSI_COL - - - - - - - - - - - 1 1 2 2 1 2 1 1 11 33. NIL_GAR - - - - - - - - - - - 4 4 4 4 4 4 4 4 32
34. ARQ_UIT - - - - - - - - - - - - - - - 1 - 2 - 3 35. DOC_COM - - - - - - - - - - - - - - - - 2 - 2 4
TOTALES 15 23 26 26 26 26 26 26 29 29 26 32 32 31 31 32 32 32 32
-xiii-
Tabla Anexo A.3. Máximo de lecciones, Hrs. requeridas y disponibles de los Profesores
PROFESORES K 1º 2ºA 3º 4ºA 5º 6º 7º 8º IA IIA IIIE IIIB IVE IVB Max Horas
Requeridas? Horas
Disponibles
Holguras
Densidad?
TUT_KIN 4 - - - - - - - - - - - - - - 4 12 15 3 0,80 TUT_1ro - 4 - - - - - - - - - - - - - 4 15 23 8 0,65 TUT_2Da - - 4 - - - - - - - - - - - - 4 16 20 4 0,80 TUT_2Dg - - - - - - - - - - - - - - - 4 16 20 4 0,80 TUT_3ro - - - 4 - - - - - - - - - - - 4 15 20 5 0,75 TUT_4tA - - - - 4 - - - - - - - - - - 4 15 20 5 0,75 TUT_4tG - - - - - - - - - - - - - - - 4 15 20 5 0,75 TUT_5to - - - - - 4 - - - - - - - - - 4 15 15 0 1,00 MAT_INT - - - - - - 1 1 1 1 - - - - - 1 25 25 0 1,00 JUL_ RIV - - - - - - - - 1 1 1 1 1 1 1 1 26 26 0 1,00 MIR_GAR - - - - - - 2 2 1 - - - - - - 2 19 22 3 0,86 TER_GAM - - - - - - 1 1 - - 1 - - - 1 1 17 19 2 0,89 JUA_BAY - - - - - - - - 1 1 1 1 1 1 1 1 22 23 1 0,96 FRE_CAD - 1 1 1 1 1 1 1 1 - - - - - - 1 11 13 2 0,85 VIC_AVI - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 20 21 1 0,95 JOS_LOP - - - - - - - - - 1 1 1 1 1 1 1 8 15 7 0,53 EFR_BUR - - 1 1 1 1 1 1 1 - - - - - - 1 9 29 20 0,31 TER_DEL 2 2 2 2 2 - - - - - - - - - - 2 29 35 6 0,83 OBE_GAL - 1 1 1 1 1 1 1 1 1 1 1 - 1 - 1 12 12 0 1,00 PED_PET - - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 17 21 4 0,81 COR_DEL - - - - - - - - - - 1 1 1 1 1 1 23 24 1 0,96 ROB_ITA - - - - - - - - - 1 1 1 1 1 1 1 20 20 0 1,00 DIRECTO - - - - - - - - - 1 - 2 2 2 1 2 19 35 16 0,54 TEO_MOL - - - - - - - - - - - 1 1 1 1 1 8 11 3 0,73 ING_SIN - - - - - - - - - - 1 1 - 1 - 1 16 20 4 0,80 ING_INT - - - - - 1 1 1 - - - - - - - 1 15 35 20 0,43 ING_IGO - - - - - - - - 1 1 - - 1 - 1 1 20 35 15 0,57 LIL_MUS 1 1 1 1 1 1 1 1 1 - - - - - - 1 11 11 0 1,00 GER_MUS - - - - - - - - - 1 1 1 1 1 1 1 8 17 9 0,47 PSI_COL - - - - - - - - - 1 2 1 1 1 1 2 11 12 1 0,92 NIL_GAR - - - - - - - - - 1 1 2 2 2 2 2 32 32 0 1,00 ARQ_UIT - - - - - - - - - - - 1 - 1 - 1 3 35 32 0,09 DOC_COM - - - - - - - - - - - - 1 - 1 1 4 4 0 1,00
? Corresponde a la suma de la carga horaria por profesor ? Calculado como el cociente entre carga horaria y horas disponibles por profesor
-xiv-
Tabla Anexo A.4. Disponibilidades por curso en la instancia empleada Lunes Martes Miérc Jueves Viernes Lunes Martes Miérc Jueves Viernes
DIS
P_M
ED
IO II
I y IV
1 x x x x x
DIS
P_M
ED
IO I
y II
1 x x x X x
2 x x x x x 2 x x x X x
3 x x x x x 3 x x x X x
4 x x x x x 4 x x x X x
5 x x x - x 5 x x x X -
6 x x x - x 6 x x x X -
7 x x x - x 7 x x x X -
DIS
P_8
vo
1 x x x x x
DIS
P_I
NTE
RM
ED
IO 1 x x x X x
2 x x x x x 2 x x x X x
3 x x x x x 3 x x x X x
4 x x x x x 4 x x x X x
5 - - x x - 5 - - x X x
6 - - x x - 6 - - x X x
7 - - x x - 7 - - x X x
DIS
P_B
AS
_4to
Y 5
to 1 x x x x x
DIS
P_B
AS
_3ro
y 2
do 1 x x x X x
2 x x x x x 2 x x x X x
3 x x x x x 3 x x x X x
4 x x x x x 4 x x x X x
5 x - - x - 5 x x - - -
6 x - - x - 6 x x - - -
7 x - - x - 7 x x - - -
DIS
P_B
AS
ICO
_1ro
1 x x x x x
DIS
P_K
IND
ER
1 - - - - -
2 x x x x x 2 x x x x x
3 x X x x x 3 x x x x x
4 x X x x x 4 x x x x x
5 x - - - - 5 - - - - -
6 x - - - - 6 - - - - -
7 x - - - - 7 - - - - -
-xv-
Procedimiento_entre_cursos Inicialización j ß 1; Repetir procedimiento ß 0; Mientras [j = n]
{
Para cada arco ${ }( , )jA k k= de costo negativo evaluar:
Si [ $ $( ) ( ) 0j jc k k c k k→ + → < , forman un ciclo de costo negativo que
mejora el valor de la función objetivo y no genera infactibilidad] entonces: {
Actualizar jG ; Actualizar horario del curso j;
Actualizar jG ; Actualizar horario del curso j ;
Aplicar Sub {Procedimiento_interno_en_cursos Inicialización j ß 1; Rep_proc ß 0; Mientras [j = n]
{ Mientras [exista un ciclo de costo negativo en el subgrafo
jG que mejore el valor de la función objetivo y no genere
infactibilidad] {
Actualizar jG ; Actualizar horario del curso j; Rep_proc ß 1;
} FinMientras; Si [Rep_proc = 1 y j = n] entonces: j ß 1;
Rep_proc ß 0; sino: j ß j+1; FinSi;
} FinMientras; FinSub Procedimiento_interno_en_cursos};
Repetir procedimiento ß 1; }
FinSi; FinPara; Si [Repetir procedimiento = 1 y j = n] entonces: j ß 1;
Repetir procedimiento ß 0; sino: j ß j+1; FinSi;
} FinMientras; Fin Procedimiento_entre_cursos;
-xvi-
// modelación en OPL // *** Preparacion de Datos *** SheetConnection sheetData1("C:\Documents and Settings\usuario\Escritorio\Seminario de Tesis\MODELO\modelo0\versionDefinitiva1.xls", 1); SheetConnection sheetData2("C:\Documents and Settings\usuario\Escritorio\Seminario de Tesis\MODELO\modelo0\versionDefinitiva1.xls", 2); SheetConnection sheetResultados("C:\Documents and Settings\usuario\Escritorio\Seminario de Tesis\MODELO\modelo0\resultados_version_definitiva"); // *** Indices *** int+ n_cursos = 19; // cursos int+ m_profes = 35; // profesores int+ d_dias = 5; // dias int+ h_clase = 7; // horas int+ materi= 43; // materias int+ turnos=2; // *** Rangos *** range profes 1..m_profes, cursos 1..n_cursos, dias 1..d_dias, horas 1..h_clase, materias 1..materi, Boolean 0..1, aux_i 1..m_profes, aux_hora 1..h_clase*m_profes, turno 1..turnos, ll 0..m_profes-1; // *** Parametros de Excel *** int cargahoraria[profes,cursos] from SheetRead(sheetData2, "cargahoraria"); int Nro_lecciones[profes,cursos] from SheetRead(sheetData2, "Max_leccion2 "); int disp_medio2[horas,dias] from SheetRead(sheetData1, "DISP_MEDIO2"); int disp_IImedio[horas,dias] from SheetRead(sheetData1, "DISP_ESPECIAL1"); int disp_medio1[horas,dias] from SheetRead(sheetData1, "DISP_MEDIO"); int disp_8vo[horas,dias] from SheetRead(sheetData1, "DISP_8VO"); int disp_intermedio[horas,dias] from SheetRead(sheetData1, "DISP_INTERMEDIO"); int disp_basico2[horas,dias] from SheetRead(sheetData1, "DISP_BASICO_2"); int disp_basico1[horas,dias] from SheetRead(sheetData1, "DISP_BASICO_1"); int disp_1ro[horas,dias] from SheetRead(sheetData1, "DISP_1RO"); int disp_kinder[horas,dias] from SheetRead(sheetData1, "DISP_KINDER"); int penal_medio2[horas,dias] from SheetRead(sheetData1, "penal_medio2"); int penal_medio1[horas,dias] from SheetRead(sheetData1, "penal_medio1"); int penal_8vo[horas,dias] from SheetRead(sheetData1, "PENAL_8VO"); int penal_intermedio[horas,dias] from SheetRead(sheetData1, "penal_intermedio"); int penal_basico2[horas,dias] from SheetRead(sheetData1, "penal_basico2"); int penal_basico1[horas,dias] from SheetRead(sheetData1, "penal_basico1"); int alpha[profes] from SheetRead(sheetData2, "penalizaciones"); Boolean disponibilidad_profes[aux_hora,dias]from SheetRead(sheetData1, "disponibilidad_profestotal"); var Boolean disponibilidad_curso[cursos,horas,dias]; var Boolean t[profes,horas,dias]; // parámetro= 1 si el profesor "i" esta disponible el día "k" en la hora de clase "l" //*** Variables de Decisión var Boolean x[profes,cursos,dias,horas]; // v. de decision 1 si el profesor "i" que dicta materia "m" es asignado al curso "j" el día "k" en la hora de clase "l" var Boolean Y[profes,dias,turno]; // v. de decision 1 si el profesor "i" es asignado algún curso en el día "k" en el turno "s" var int B[profes,dias,turno] in 0..h_clase-2; // v. de decision # de puentes en la agenda del profesor "i" en el día "k" en el turno "s" // *** Variables para la funcion objetivo *** var int Z[profes,dias,turno]in 0..h_clase; // v. adicional= "L" si "l" es la hora de clase de la última lección del profesor "i" el día "k" en el turno "s" var int A[profes,dias,turno]in 0..h_clase; // v. adicional= "L" si "l" es la hora de clase de la primera lección del profesor "i" el día "k" en el turno "s" var int HB in 0..9999999; // ponderacion var int HP in 0..9999999; // DISPONIBILIDAD DE PROFESORES PONDERADOS float p_TUTORKINDER[horas,dias] from SheetRead(sheetData1,"PROF1"); float p_TUTOR1ro[horas,dias] from SheetRead(sheetData1,"PROF2");
-xvii-
float p_TUTOR2doA[horas,dias] from SheetRead(sheetData1,"PROF3"); float p_TUTOR2doG[horas,dias] from SheetRead(sheetData1,"PROF4"); float p_TUTOR3ro[horas,dias] from SheetRead(sheetData1,"PROF5"); float p_TUTOR4toA[horas,dias] from SheetRead(sheetData1,"PROF6"); float p_TUTOR4toG[horas,dias] from SheetRead(sheetData1,"PROF7"); float p_TUTOR5to[horas,dias] from SheetRead(sheetData1,"PROF8"); float p_MAT_INT[horas,dias] from SheetRead(sheetData1,"PROF9"); float p_JULIETA[horas,dias] from SheetRead(sheetData1,"PROF10"); float p_MIRIAN_INT[horas,dias] from SheetRead(sheetData1,"PROF11"); float p_TGAMARRA[horas,dias] from SheetRead(sheetData1,"PROF12"); float p_JBAYA[horas,dias] from SheetRead(sheetData1,"PROF13"); float p_FCADENA[horas,dias] from SheetRead(sheetData1,"PROF14"); float p_SCADENA[horas,dias] from SheetRead(sheetData1,"PROF15"); float p_TOPO[horas,dias] from SheetRead(sheetData1,"PROF16"); float p_MONO[horas,dias] from SheetRead(sheetData1,"PROF17"); float p_BURGOSDIB[horas,dias] from SheetRead(sheetData1,"PROF18"); float p_TERESITA[horas,dias] from SheetRead(sheetData1,"PROF19"); float p_OBED[horas,dias] from SheetRead(sheetData1,"PROF20"); float p_AYDE[horas,dias] from SheetRead(sheetData1,"PROF21"); float p_PETRICIOCOMP[horas,dias] from SheetRead(sheetData1,"PROF22"); float p_CORINA[horas,dias] from SheetRead(sheetData1,"PROF23"); float p_ITAMARI[horas,dias] from SheetRead(sheetData1,"PROF24"); float p_DIRECTOR[horas,dias] from SheetRead(sheetData1,"PROF25"); float p_TEOFILA[horas,dias] from SheetRead(sheetData1,"PROF26"); float p_INGSINIKA[horas,dias] from SheetRead(sheetData1,"PROF27"); float p_INGINTERMEDIO[horas,dias] from SheetRead(sheetData1,"PROF28"); float p_INGIGOR[horas,dias] from SheetRead(sheetData1,"PROF29"); float p_LILIAN_MUSI[horas,dias] from SheetRead(sheetData1,"PROF30"); float p_GERY_MUSI[horas,dias] from SheetRead(sheetData1,"PROF31"); float p_PSICOLOGA[horas,dias] from SheetRead(sheetData1,"PROF32"); float p_NILDA[horas,di as] from SheetRead(sheetData1,"PROF33"); float p_ARQUITECTO[horas,dias] from SheetRead(sheetData1,"PROF34"); float p_DOCTOR_COMU[horas,dias] from SheetRead(sheetData1,"PROF35"); minimize HB + HP + sum(i in profes,k in dias,t in 1..2)(alpha[i]*B[i,k,t]) subject to { //********** LLENADO DE DISPONIBILIDAD DE CURSO ************* forall(h in horas,k in dias) disponibilidad_curso[1,h,k]=disp_kinder[h,k]; forall(h in horas,k in dias) disponibilidad_curso[2,h,k]=disp_1ro[h,k]; forall(i in 3..5,h in horas,k in dias) disponibilidad_curso[i,h,k]=disp_basico1[h,k]; forall(i in 6..8,h in horas,k in dias) disponibilidad_curso[i,h,k]=disp_basico2[h,k]; forall(j in 9..10,h in horas,k in dias) disponibilidad_curso[j,h,k]=disp_intermedio[h,k]; forall(h in horas,k in dias) disponibilidad_curso[11,h,k]=disp_intermedio[h,k]; forall(j in 12..13,h in horas,k in dias)disponibilidad_curso[j,h,k]=disp_medio1[h,k]; forall(j in 14..15,h in horas,k in dias)disponibilidad_curso[j,h,k]=disp_IImedio[h,k]; forall(j in 16..19,h in horas,k in dias)disponibilidad_curso[j,h,k]=disp_medio2[h,k]; //********** LLENADO DE DISPONIBILIDAD DE PROFES ************ forall(i in profes,k in dias,h in horas) { if i=1 then t[i,h,k]=disponibilidad_profes[h,k] endif; if i=2 then forall(p in 8..14) t[i,h,k]=disponibilidad_profes[p,k] endif; if i=3 then forall(p in 15..21) t[i,h,k]=disponibilidad_profes[p,k] endif; if i=4 then forall(p in 22..28) t[i,h,k]=disponibilidad_profes[p,k] endif; if i=5 then forall(p in 29..35) t[i,h,k]=disponibilidad_profes[p,k] endif; if i=6 then forall(p in 36..42) t[i,h,k]=disponibilidad_profes[p,k] endif; if i=7 then forall(p in 43..49) t[i,h,k]=disponibilidad_profes[p,k] endif; if i=8 then forall(p in 50..56) t[i,h,k]=disponibilidad_profes[p,k] endif; if i=9 then forall(p in 57..63) t[i,h,k]=disponibilidad_profes[p,k] endif; if i=10 then forall(p in 64..70) t[i,h,k]=disponibilidad_profes[p,k] endif; if i=11 then forall(p in 71..77) t[i,h,k]=disponibilidad_profes[p,k] endif; if i=12 then forall(p in 78..84) t[i,h,k]=disponibilidad_profes[p,k] endif; if i=13 then forall(p in 85..91) t[i,h,k]=disponibilidad_profes[p,k] endif; if i=14 then forall(p in 92..98) t[i,h,k]=disponibilidad_profes[p,k] endif; if i=15 then forall(p in 99..105) t[i,h,k]=disponibilidad_profes[p,k] endif; if i=16 then forall(p in 106..112) t[i,h,k]=disponibilidad_profes[p,k] endif; if i=17 then forall(p in 113..119) t[i,h,k]=disponibilidad_profes[p,k] endif; if i=18 then forall(p in 120..126) t[i,h,k]=disponibilidad_profes[p,k] endif; if i=19 then forall(p in 127..133) t[i,h,k]=disponibilidad_profes[p,k] endif; if i=20 then forall(p in 134..140) t[i,h,k]=disponibilidad_profes[p,k] endif; if i=21 then forall(p in 141..147) t[i,h,k]=disponibilidad_profes[p,k] endif; if i=22 then forall(p in 148..154) t[i,h,k]=disponibilidad_profes[p,k] endif; if i=23 then forall(p in 155..161) t[i,h,k]=disponibilidad_profes[p,k] endif; if i=24 then forall(p in 162..168) t[i,h,k]=disponibilidad_profes[p,k] endif;
-xviii-
if i=25 then forall(p in 169..175) t[i,h,k]=disponibilidad_profes[p,k] endif; if i=26 then forall(p in 176..182) t[i,h,k]=disponibilidad_profes[p,k] endif; if i=27 then forall(p in 183..189) t[i,h,k]=disponibilidad_profes[p,k] endif; if i=28 then forall(p in 190..196) t[i,h,k]=disponibilidad_profes[p,k] endif; if i=29 then forall(p in 197..203) t[i,h,k]=disponibilidad_profes[p,k] endif; if i=30 then forall(p in 204..210) t[i,h,k]=disponibilidad_profes[p,k] endif; if i=31 then forall(p in 211..217) t[i,h,k]=disponibilidad_profes[p,k] endif; if i=32 then forall(p in 218..224) t[i,h,k]=disponibilidad_profes[p,k] endif; if i=33 then forall(p in 225..231) t[i,h,k]=disponibilidad_profes[p,k] endif; if i=34 then forall(p in 232..238) t[i,h,k]=disponibilidad_profes[p,k] endif; if i=35 then forall(p in 239..245) t[i,h,k]=disponibilidad_profes[p,k] endif;}; //**************RESTRICCIONES********************************* //a) Sobre posición de cursos: Un profesor no puede enseñar a más de un curso en una misma hora de clase. // incluye a: Indisponibilidad de profesor: forall (i in profes,j in cursos,k in dias,h in horas) x[i,j,k,h]<=t[i,h,k]; //b) Sobre posición de profesores: A un curso no puede asignarse una lección con más de un profesor en una misma hora de clase. forall (i in profes,j in cursos,k in dias,h in horas) x[i,j,k,h]<=disponibilidad_curso[j,h,k]; //c) Carga horaria: Todos los profesores deben cumplir con la carga horaria de lecciones semanales en cada uno de los cursos. forall (i in profes,j in cursos) sum(k in dias,h in horas) x[i,j,k,h]=carga horaria[i,j]; //d) Número máximo de lecciones (clases) diarias por curso de una misma materia: Un curso no puede tener más de cierto número de lecciones de una misma materia, al día. forall (i in profes,j in cursos,k in dias) sum(h in horas) x[i,j,k,h]<=Nro_lecciones[i,j]; // clases simultaneas por paralelo forall (k in dias,h in horas){ // educacion fisica x[20,3,k,h]-x[21,4,k,h] =0; x[20,6,k,h]-x[21,7,k,h] =0; x[20,12,k,h]-x[21,13,k,h] =0; x[20,14,k,h]-x[21,15,k,h] =0; x[20,16,k,h]-x[21,17,k,h] =0; x[20,18,k,h]-x[21,19,k,h] =0; // TVO x[14,3,k,h]-x[15,4,k,h] =0; x[14,6,k,h]-x[15,7,k,h] =0; // INGLES MEDIO x[27,14,k,h]-x[29,15,k,h] =0; x[27,16,k,h]-x[29,17,k,h] =0; x[27,18,k,h]-x[29,19,k,h] =0;}; // Presencia de un profesor en un determinado día en el turno s forall (i in profes,k in dias) Y[i,k,1]>=(1/4)*(sum(j in cursos,h in 1..4)x[i,j,k,h]); forall (i in profes,k in dias) Y[i,k,2]>=(1/3)*(sum(j in cursos,h in 5..7)x[i,j,k,h]); // activar las variables,de la última lección del profesor i el día k, y la variable, de la primera lección del profesor i el día k en los turnos s, se incluye las siguientes restricciones forall (i in profes,k in dias,l in 1..4) Z[i,k,1]>=l*(sum(j in cursos)x[i,j,k,l]); forall (i in profes,k in dias,l in 5..7) Z[i,k,2]>=l*(sum(j in cursos)x[i,j,k,l]); forall (i in profes,k in dias, l in 1..4) A[i,k,1]<=5*Y[i,k,1]-(5-l)*(sum(j in cursos) x[i,j,k,l]); forall (i in profes,k in dias, l in 5..7) A[i,k,2]<=8*Y[i,k,2]-(8-l)*(sum(j in cursos) x[i,j,k,l]); //forall (i in profes) sum(k in dias) Y[i,k]<=5; // Número de puentes o baches profesor forall (i in profes,k in dias) B[i,k,1]>=Z[i,k,1]-A[i,k,1]+Y[i,k,1]-sum(h in 1..4,j in cursos) x[i,j,k,h]; forall (i in profes,k in dias)
-xix-
B[i,k,2]>=Z[i,k,2]-A[i,k,2]+Y[i,k,2]-sum(h in 5..7,j in cursos) x[i,j,k,h]; // ponderacion por hora disponible de cada curso HB = sum (i in profes,j in 3..5,k in dias,h in horas) x[i,j,k,h] * penal_basico1[h,k] + sum (i in profes,j in 6..8,k in dias,h in horas) x[i,j,k,h] * penal_basico2[h,k] + sum (i in profes,j in 9..10,k in dias,h in horas) x[i,j,k,h] * penal_intermedio[h,k] + sum (i in profes,k in dias,h in horas) x[i,11,k,h] * penal_8vo[h,k] + sum (i in profes,j in 12..15,k in dias,h in horas) x[i,j,k,h] * penal_medio1[h,k] + sum (i in profes,j in 16..19,k in dias,h in horas) x[i,j,k,h] * penal_medio2[h,k]; // ponderacion por hora por profesor HP = sum (j in cursos,k in dias,h in horas) x[1,j,k,h] *p_TUTORKINDER[h,k] + sum (j in cursos,k in dias,h in horas) x[2,j,k,h] *p_TUTOR1ro[h,k] + sum (j in cursos,k in dias,h in horas) x[3,j,k,h] *p_TUTOR2doA[h,k] + sum (j in cursos,k in dias,h in horas) x[4,j,k,h] *p_TUTOR2doG[h,k] + sum (j in cursos,k in dias,h in horas) x[5,j,k,h] *p_TUTOR3ro[h,k] + sum (j in cursos,k in dias,h in horas) x[6,j,k,h] *p_TUTOR4toA[h,k] + sum (j in cursos,k in dias,h in horas) x[7,j,k,h] *p_TUTOR4toG[h,k] + sum (j in cursos,k in dias,h in horas) x[8,j,k,h] *p_TUTOR5to[h,k] + sum (j in cursos,k in dias,h in horas) x[9,j,k,h] *p_MAT_INT[h,k] + sum (j in cursos,k in dias,h in horas) x[10,j,k,h] *p_JULIETA[h,k] + sum (j in cursos,k in dias,h in horas) x[11,j,k,h] *p_MIRIAN_INT[h,k] + sum (j in cursos,k in dias,h in horas) x[12,j,k,h] *p_TGAMARRA[h,k] + sum (j in cursos,k in dias,h in horas) x[13,j,k,h] *p_JBAYA[h,k] + sum (j in cursos,k in dias,h in horas) x[14,j,k,h] *p_FCADENA[h,k] + sum (j in cursos,k in dias,h in horas) x[15,j,k,h] *p_SCADENA[h,k] + sum (j in cursos,k in dias,h in horas) x[16,j,k,h] *p_TOPO[h,k] + sum (j in cursos,k in dias,h in horas) x[17,j,k,h] *p_MONO[h,k] + sum (j in cursos,k in dias,h in horas) x[18,j,k,h] *p_BURGOSDIB[h,k] + sum (j in cursos,k in dias,h in horas) x[19,j,k,h] *p_TERESITA[h,k] + sum (j in cursos,k in dias,h in horas) x[20,j,k,h] *p_OBED[h,k] + sum (j in cursos,k in dias,h in horas) x[21,j,k,h] *p_AYDE[h,k] + sum (j in cursos,k in dias,h in horas) x[22,j,k,h] *p_PETRICIOCOMP[h,k] + sum (j in cursos,k in dias,h in horas) x[23,j,k,h] *p_CORINA[h,k] + sum (j in cursos,k in dias,h in horas) x[24,j,k,h] *p_ITAMARI[h,k] + sum (j in cursos,k in dias,h in horas) x[25,j,k,h] *p_DIRECTOR[h,k] + sum (j in cursos,k in dias,h in horas) x[26,j,k,h] *p_TEOFILA[h,k] + sum (j in cursos,k in dias,h in horas) x[27,j,k,h] *p_INGSINIKA[h,k] + sum (j in cursos,k in dias,h in horas) x[28,j,k,h] *p_INGINTERMEDIO[h,k] + sum (j in cursos,k in dias,h in horas) x[29,j,k,h] *p_INGIGOR[h,k] + sum (j in cursos,k in dias,h in horas) x[30,j,k,h] *p_LILIAN_MUSI[h,k] + sum (j in cursos,k in dias,h in horas) x[31,j,k,h] *p_GERY_MUSI[h,k] + sum (j in cursos,k in dias,h in horas) x[32,j,k,h] *p_PSICOLOGA[h,k] + sum (j in cursos,k in dias,h in horas) x[33,j,k,h] *p_NILDA[h,k] + sum (j in cursos,k in dias,h in horas) x[34,j,k,h] *p_ARQUITECTO[h,k] + sum (j in cursos,k in dias,h in horas) x[35,j,k,h] *p_DOCTOR_COMU[h,k]; } setting cplexLogFile = "myLogFile.log";