Vista previa del material en texto
1 I) INTRODUCCIÓN Y OBJETIVOS Un problema que se presenta, en algunas instituciones educativas, es la generación de sus calendarios de pruebas. Más específicamente, la organización de éstas en un período de tiempo determinado. Estos tipos de problemas son llamados como problemas de asignación y están dentro del área llamada “Timetabling”, es decir, programación de horarios. Los problemas de asignaciones consisten en asignar eventos específicos en un horario establecido, cumpliendo condiciones y requerimientos, antes impuestos por la Institución u Organización. Cabe destacar que actualmente en la Facultad de Ingeniería de la Universidad Diego Portales, los horarios de pruebas solemnes se realizan manualmente. Estos horarios, en algunas situaciones, no logran cumplir con todos los requerimientos deseados, debido al gran número de posibilidades. Una heurística, podría facilitar esta tarea, liberando tiempo a los encargados y buscar evitar problemas que antes ocurrían. Esta tesis está enfocada en la creación de una heurística de mejora que consiste en dos etapas. En la primera, se crea un horario de pruebas básico, y la segunda, mejora iterativamente éste horario hasta un nivel final aceptable. Estas mejoras se basarán en requisitos y prioridades que entregará la Facultad. La estructura de esta tesis será de la siguiente manera: A continuación se describe los objetivos del trabajo. En el capítulo II se habla sobre los antecedentes del tema y una pequeña descripción de la Universidad Diego Portales y más específicamente sobre la Facultad de Ingeniería. Seguidamente, en el capítulo III, se explicará el problema que se quiere resolver y sus características. Para finalmente, en el IV y V, se entrega el método con el que se realiza el calendario y se analiza su desempeño, comparándose con diferentes horarios. 2 1) Objetivo General � Programación, implementación y evaluación de una heurística que permita planificar los horarios de las pruebas de la facultad de Ingeniería, de la Universidad Diego Portales. 2) Objetivo Específicos � Recopilación de la información necesaria y levantamiento de los requerimientos del problema de calendarización de pruebas en la Facultad. � Definición de criterios para la calendarización e indicadores de calidad para horarios con el objetivo de que permita evaluarlas de manera practica. � Elaboración de una metodología heurística para la calendarización. � Implementación computacional de la metodología propuesta. � Evaluación del desempeño de la metodología propuesta con información de instancias reales. 3 II) ANTECEDENTES En esta parte, se habla del marco teórico de esta tesis, además de estudios realizados a problemas de la misma índole. Se comenta sobre distintos autores y sus publicaciones, intentando profundizar sobre el tema y así lograr una base teórica a esta tesis. 1) Scheduling y Timetabling En la literatura de investigación de operaciones cuando se habla de problemas de asignación, existen dos grupos que están relacionadas con este tipo de problemas, scheduling y timetabling, es por esto que tienden a confundirse contantemente, esto debido a un parecido en sus procesos básicos. Según Barták y Rudová (2001) scheduling es la ubicación y asignación de forma exacta de actividades y recursos, durante un periodo de tiempo establecido, cumpliendo con todas las restricciones que existan. Estas asignaciones buscan el funcionamiento óptimo de todos estos recursos y actividades, intentando en algunos casos minimizar costos o tiempos de proceso. Algunos ejemplos de estos casos serían la asignación de médicos y enfermeras en un hospital o establecer que aviones se utilizan en los vuelos que tiene que realizar una aerolínea. Ahora analizando timetabling, Reis y Oliviera [4] dice que es un problema que consiste en fijar, en un tiempo y espacio establecido, una serie de recursos satisfaciendo un grupo de requerimientos y/o restricciones de distinto tipo. Algunos ejemplos son Programación de cirugías en un hospital, de competencias en un evento deportivo, de evaluaciones en colegios o institutos y el orden de vuelos que salen o entran de un aeropuerto. Analizando las definiciones anteriores de scheduling y timetabling, se puede ver que para nuestro caso crear calendarios de pruebas, coincide de mejor manera la definición de timetabling, ya que lo que se busca principalmente es el cumplimiento de una serie de 4 objetivos, que la Facultad nos está entregando, y en segundo lugar optimizar el uso de las salas. Dentro de la categoría timetabling, está el área de education timetabling. Es por esto, que se utilizará y profundizará la literatura de education timetabling, que está relacionada con la calendarización de actividades educacionales en distintos tipos de instituciones académicas [6]. 2) Education timetabling Está enfocado a problemas en el área educativa. Dentro de esta categoría existen tres tipos principales de problemas [1]: • Calendarizar pruebas y exámenes (“Examination Timetabling”). • Calendarizar horarios de clases para colegios (“School Course Timetabling”). • Calendarizar horarios de clases para universidades (“University Course Timetabling”). El problema que abarca esta tesis es la de asignar evaluaciones en un horario establecido, lo cual se clasifica en la categoría de “Examination Timetabling”. E. Burkes, P. M. Ross [3], construyeron un cuestionario en 1996 sobre examination timetabling y lo enviaron a 95 universidades británicas, de las cuales 56 le respondieron. Este cuestionario consistía básicamente en: 1. La estructura del problema (tamaño, complejidad, constantes, etc). 2. Como se resuelve el problema. 3. Los objetivos que se esperan alcanzar (que significa una buena solución). Los resultados de este cuestionario les demostraron, que la realidad de los requerimientos de las universidades son muy diferentes, dependiendo de la institución. 5 3) Métodos de resolución Ya conociendo el tipo de problema que se quiere abarcar, hablaremos sobre los métodos más efectivos, que existen para resolver los problemas de timetabling y otros similares. Estos métodos básicamente son: programación lineal entera, coloreamiento de grafos, meta-heurísticas y programación multi-objetivo. La programación lineal entera se ha utilizado para diferentes tipos de problemas, incluido el de calendarización. Daskalaki, et al. [2] definen variables binarias, asociadas a la decisión si un profesor es asignado a un horario y día específico. Este problema genera una gran cantidad de variables binarias, para poder satisfacer los requisitos que se exijan en el problema y en la institución. El método de coloreamento de grafos, está enfocado en crear un grafo en donde los nodos o vértices correspondan a las evaluaciones de los cursos y las aristas son las restricciones. Y mediante distintos tipos de colores, se van pintando de tal forma que no coincidas dos nodos conectados de un mismo color. La forma de ir coloreando depende de criterios que se tomen en cuenta. Las metaheurísticas son algoritmos, que mediantes distintos tipos de técnicas de búsqueda, encuentra una buena solución. La ventaja de ocupar distintas técnicas es que se evita quedar encerrado en algún óptimo local y ayuda a ampliar la búsqueda, obteniendo así mejores resultados. Y la programación multi-objetivo intenta minimizar una seria de criterios que se construye mediante una suma ponderada de distintos indicadores del problema. Este tiene la ventaja de no sobre cargar los computadores, siendo la función de minimizar o maximizar, solo una suma ponderada de criterios asociadas a las condiciones blandas que tenga el problema [6]. 6 4) Definicióndel Sistema En este punto presenta una descripción general de la Universidad Diego Portales y más específicamente de la facultad de ingeniería de esta misma, por el hecho de que aquí se quiere implementar la heurística. a) Historia de la institución La Universidad Diego Portales (UDP), fundada el 4 de octubre de 1982, nace como una Fundación de Derecho Privado que validó su propuesta en la experiencia de una gestión académica que el Instituto Profesional IPEVE había desarrollando por 20 años, desde 1963. A un año de su fundación, en 1983, dio inicio a sus actividades académicas con la creación de tres Facultades: la Facultad de Derecho (Derecho); la Facultad de Ciencias Administrativas (Ingeniería Comercial - Contador Auditor - Ingeniería de Ejecución en Administración, Comercialización y Finanzas) y la Facultad de Ciencias Humanas (Psicología). En abril de 1989 se funda la Escuela de Ingeniería, que pasa a convertirse en la facultad de ingeniería en el año 1992. En 1994 comenzó a dictar el Programa de Bachillerato y al año siguiente, las carreras de Publicidad y Diseño. Cuatro años más tarde, en 1999, creó la Facultad de Arquitectura, Diseño y Bellas Artes integrada por las Escuelas de Arquitectura y Diseño. Ese mismo año, fundó la Facultad de Humanidades, con el Programa de Bachillerato y el Programa de Formación Integral (cursos de formación). En 2002 creó 17 nuevas carreras (Comunicación Multimedial, Medicina, Odontología, Tecnología Médica, Enfermería, Sociología, Ciencia Política, Historia, Literatura, Teatro, Educación Básica, Educación Parvularia, Ingeniería Civil en Obras Civiles, Ingeniería Civil Informática y Telecomunicaciones, Ingeniería en Estadística, Ingeniería en Construcción e Ingeniería de Ejecución en Telecomunicaciones [7]. 7 b) Descripción de la Facultad La Escuela de Ingeniería, fundada en abril de 1989,en la ciudad de Santiago de Chile, tiene actualmente más de 2.000 alumnos los cuales cuentan con 42 salas de clases, 280 computadores y 20 laboratorios, distribuidos en tres edificios, de seis, cinco y tres pisos cada uno, con un total de 10.120 metros cuadrados. Cuenta con dos amplios patios con áreas verdes para el descanso de los alumnos, además de un cafetería dividida en dos pisos, en donde en el primero es para comidas rápidas y en el segundo almuerzos con un sistema de autoservicio. En el subterráneo se encuentra ubicado el auditórium, que posee una capacidad para más de 100 personas y está destinada a que los alumnos de la Facultad efectúen presentaciones, conferencias y charlas. Además cuanta con una biblioteca, con una colección de 2.800 títulos, ubicada en un edificio de tres pisos, con dependencias de fondo de reserva, salas de consulta de libros, de consultas en internet y de estudio Esta facultad cuenta con 4 escuelas y 6 carreras profesionales que son: Ingeniería Civil Industrial, Ingeniería Civil en Informática y Telecomunicaciones, Ingeniería Civil en Obras Civiles, Ingeniería en Construcción, Ingeniería en Informática y Gestión (Vespertina) e Ingeniería en Industria y Logística (Vespertina), con un total de más de 200 ramos académicos [9,10]. En esta tesis, la heurística, será implementada y aplicada solo para las carreras diurnas, dejando de lado las vespertinas, ya que éstas son planificadas de manera independiente. 8 c) Condiciones Los calendarios de pruebas como ya se dijo, varían mucho dependiendo de la institución, por lo cual pueden tener distintos tipos de condiciones que esta misma se impone. Algunas deben cumplirse y otras son solamente deseables. En nuestro caso el problema tiene ambas tipos de condiciones, de las cuales las duras o las que se deben cumplir, se trataran de esta forma, es decir, se cumplirán a cabalidad. Ya las condiciones deseables solo se penalizarán el no cumplimiento de ellas, y en base a estas penalizaciones se creara una función objetivo, que medirá la calidad del horario. Para lograr conformar un horario de pruebas, existen algunas reglas y condiciones básicas. Esto se debe a las limitaciones que existen en la capacidad de las instalaciones, los profesores en tomar varias pruebas a la vez y los alumnos de tomar distintas evaluaciones en un periodo de tiempo reducido. Tomando en cuenta todas estas limitantes, hay condiciones que siempre tienen que cumplirse para poder conformar un horario que pueda ser aplicable en la realidad. Algunas condiciones básicas que se ocupan son: 1.- La capacidad de una sala asignada a una evaluación tiene que ser mayor al número de alumnos. Y mientras esta diferencia aumente, entre la capacidad y el número de alumnos, la realización de la evaluación será mejor lograda. Buscando lograr aumentar esta holgura, se limitara la capacidad de las salas. 2.- Los cursos de un mismo semestre no pueden ser asignados el mismo día, esto debido que la institución debe garantizar que si un alumno va en orden con su malla de carrera, no tenga dificultades a la hora de rendir sus evaluaciones. 3.- El número de evaluaciones asignadas en una sala y en un horario específico tiene que ser sólo uno. 9 Las condiciones deseables que se ocupan en nuestra heurística son: 1.- Las evaluaciones de cursos que sean de una misma carrera, tienen que estar asignadas lo más distanciadas posible, dependiendo de su cercanía en la malla. Así, para alumnos que vallan de forma ordenada en su malla, es menos probable que tengan que tomar varias pruebas en un periodo de tiempo muy corto 2.- Los cursos deben estar programados de manera homogénea, para que de esta manera los recursos de la Facultad (salas, profesores, mesas y sillas) no se saturen y así en el caso de algún imprevisto, se pueda hacer cambios sabiendo que hay recursos libres. Las condiciones que busca cumplir la Facultad de Ingeniería son similares a las descritas anteriormente, pero alcanzarlas en sus objetivos es de gran complejidad. Estas condiciones se lograrían alcanzar, en mayor o menor medida, dependiendo de la libertad que exista en la generación de los horarios. Esta libertad depende generalmente en la cantidad de cursos a asignar, los horarios disponibles y la cantidad de salas. Existe otra restricción impuesta por la facultad, que limita la libertad, la cual dice que no pueden asignarse cursos de una misma carrera y semestre el mismo día, ya que esto generaría que los alumnos tuvieran que tomar dos evaluaciones el mismo día. Para entender mejor este hecho, se mostrará un pequeño ejemplo: Ejemplo 1: Se tiene que realizar una calendarización, de 8 ramos, de Ingeniería en Obras Civiles, en un horario que cuenta con dos días, en tres distintos tipos de horarios y dos salas. Esto se puede ver, de mejor manera, en las tablas a continuación: 10 Tabla 2.1: Formato de Horarios. Tabla 2.2: Salas disponibles. En este caso, se ve que el horario dispone de seis distintos tipos de módulos o horarios y que combinados con las salas nos da una capacidad total de 12 cursos posibles de asignar, más específicamente 6 cursos de 35 o menos alumnos y 6 cursos de 70 o menos; o también un total de 12 cursos con máximo de 70 alumnos y 6 cursos de más de 35. Conociendo estos datos y teniendo en cuenta que tenemos 8 cursos por asignar y que los cursos del mismo semestre no pueden ser programados el mismo día, se puede generar la siguiente asignación: Módulo Horario Sala Lunes Martes 1 Álgebra Probabilidades y Estadística 2 Electricidad y Magnetismo 1 Computación II 2 Mecánica 1 Química General 2 Ecuaciones Diferenciales Cálculo I 1 2 3 8:00 - 10:00 10:00 - 12:00 12:00 - 14:00 Tabla 2.4: Ejemplo de horario. Viendo este calendario de pruebas, se pone en evidencia que habría más libertad de asignar los cursos,si existieran más salas o si se dispusiera de otros días o módulos, ya que Salas Capacidad 1 35 2 70 Módulo Horario Lunes Martes 1 8:00 - 10:00 2 10:00 - 12:00 3 12:00 - 14:00 Cursos Semestre Tamaño Cálculo I 1 50 Mecánica 2 45 Química General 3 25 Probabilidades y Estadística 4 35 Álgebra 1 29 Computación II 2 32 Ecuaciones Diferenciales 3 58 Electricidad y Magnetismo 4 65 Tabla 2.3: Cursos a ser asignados. 11 si se tuviera otra sala o un día más, nuestras posibilidades aumentarían de 12 a 18 y si se agregara un modulo extra nuestras posibilidades aumentarían en 8. Al contrario, si quisiéramos reducir nuestras posibilidades y así complicar más éste problema de decisión, podríamos agregar unos cursos o eliminar el tercer modulo, que nos dejaría con exactamente 8 posibles lugares donde asignar cursos, para un total de 8 cursos a ser asignados, lo cual nos reduce bastante las posibilidades de crear distintos horarios. Viendo el hecho que a medida que existe una limitada cantidad de salas y un horario, en el cual hay que asignar una gran cantidad de cursos, las posibilidades se reducen y así no todas las condiciones ideales que una institución le gustaría cumplir pueden ser aplicadas. Por este hecho, se les dan prioridades a unas sobre otras. Este orden dependerá de la institución y sus objetivos que se hayan impuesto para la tarea de calendarización. Los criterios que se usarán se pueden dividir en dos grandes grupos, el primero llamado “Concentración de ramos”, el cual busca que no haya una gran concentración de ramos en un horario específico o día, para que de este modo la institución este más relajada en la utilización de sus recursos, dando la posibilidad de poder sobrellevar cualquier problema que ocurra y el segundo, llamado “Cursos cercanos” que busca asignar evaluaciones lo más distanciadas posibles, dependiendo de su cercanía en la malla de carrera, ligada con la condición 4 de las condiciones básicas de un horario (pág. 9). Estos criterios, tienen distintas componentes, pero estas serán explicadas más adelante. Finalmente, estos dos criterios, que están enfocadas en la Facultad, buscan lograr calendarios de evaluaciones en donde los alumnos, no tengan que dar dos pruebas dentro de un periodo muy corto (6 horas o menos), para que así puedan realizarlas de la mejor manera posible cada una de ellas. 12 III) DESCRIPCIÓN DEL PROBLEMA DE DECISIÓN En esta parte se explica en qué consiste el proceso de calendarización y los problemas que se encuentran en la realización de este. Además se hablara de los datos necesarios para conformar este proceso. 1) Proceso de Calendarización En los establecimientos educacionales hay que evaluar a los alumnos en sus conocimientos y habilidades, para ver cuánto han aprendido dentro de las materias que le han enseñado dentro de la institución. Para éste proceso evaluativo, se realizan varios exámenes que califican los distintos ramos de las carreras. Para lograr este objetivo, hay que asignar las pruebas de todos los cursos en distintas salas y en los días disponibles. Todo este proceso, tiene varias etapas para que pueda ser organizado y efectuado de forma correcta. Primero que todo, se necesita toda la información con respecto a los cursos a ser evaluados junto con las instalaciones de la institución. Ya teniendo toda la información se determina el horario en el cual se efectuarán las evaluaciones de cada curso y en que sala será asignada. Actualmente lo que hace la Facultad de Ingeniería, es reutilizar los calendarios que ya se han utilizado en semestres pasados, modificando sólo algunas fechas y horarios. Esta modalidad que se ocupa, tiene algunos inconvenientes. En primer lugar, si hubo algún problema con el calendario del semestre anterior y no se pudo solucionar, este mismo será arrastrado para el semestre siguiente y subsiguiente, hasta que se encuentre una forma de solucionarlo. El otro problema que tiene, es ser rígido ante los cambios de mallas curriculares. Ante este hecho, sólo queda crear el horario de pruebas haciendo grandes cambios en el horario antiguo, adaptándose a los nuevos ajustes de la malla. Este suceso ha ocurrido más de alguna vez en la Facultad. 13 2) Definición del Problema y Modelo de Datos La metodología propuesta en la tesis tiene como objetivo la generación de un calendario de pruebas, que se adapte a las necesidades de la Facultad. Para esto es necesario identificar los componentes y factores principales que conforman en la participación del sistema. En otras palabras, la aplicación de un calendario de pruebas consiste en ubicar cada evaluación, que deba realizarse, dentro de un horario preestablecido el cual va a estar dividido en días y horarios. Estos se basan, en general, en módulos horarios compuestos de 120 minutos. Primero que nada, detallaremos las principales entidades a considerar para poder realizar nuestro modelo de datos. Entre estos aspectos se mencionan: cursos, alumnos, período de evaluación, salas y criterios. Cursos: Están conformados por una o más secciones dependiendo de la cantidad de alumnos que este tiene. Cada sección tendrá que ser asignada a salas para que se puedan realizar sus evaluaciones. La Facultad de Ingeniería de la Universidad Diego Portales dispone actualmente de 6 carreras, de las cuales nosotros trabajaremos las cuatro diurnas: Ingeniería Civil Industrial, Ingeniería Civil en Obras Civiles, Ingeniería Civil en Informática y Telecomunicaciones e Ingeniería en Construcción. El número de cursos de las carreras, con las cuales vamos a trabajar es superior a 120 cursos, sin contar los electivos y cursos de formación integral (CFI) que también tienen que ser evaluados dentro de un mismo período. 14 Alumnos: Dentro de la Universidad, la Facultad de Ingeniería es la que tiene mayor concentración de alumnos y además cada año se integran más alumnos a ésta. Esto hace la necesidad de utilizar de mejor manera las instalaciones que ya se tienen. Por ende, la asignación de salas para las evaluaciones debe realizarse de la mejor forma posible. Periodo de Evaluación: En la Facultad existen cuatro periodos de evaluaciones. Los dos primeros son de solemnes regulares, el tercero es para las recuperativas y finalmente el de los exámenes. Para cada periodo de pruebas se les asignan una cierta cantidad de días, de acuerdo al calendario académico de la Facultad para dicho semestre. Generalmente a los dos primeros periodos se le asignan la misma cantidad de días, haciendo así que se pueda ocupar el mismo calendario. Estos últimos años estos periodos han sido de 7 días de calendarización de pruebas. En cambio para las pruebas recuperativas se les asigna una cantidad de 5 días, y luego, se requiere una calendarización diferente. Para la evaluación de los exámenes, por lo general se le asigna más tiempo que los otros periodos, 12 días, y esto hace más fácil el proceso de calendarización. Lo que se hace en la Facultad, para los exámenes, es ocupar el mismo calendario de las solemnes y se van asignando los días, intercaladamente en el horario disponible en exámenes, haciendo algunos pequeños ajustes. Esto se ve a continuación en el siguiente ejemplo: Módulo Horario Sábado Lunes Martes Miércoles Jueves Viernes Sábado 1 8:00 - 10:00 2 10:00 - 12:00 3 12:00 - 14:00 4 14:00 - 16:00 5 16:00 - 18:00 Tabla 3.1: Asignación solemnes. 15 Módulo Horario Lunes Miércoles Viernes Lunes Miércoles Viernes Sábado 1 8:00 - 10:00 2 10:00 - 12:00 3 12:00 - 14:00 4 14:00 - 16:00 5 16:00 - 18:00 Semana Nº1 Semana Nº2 Tabla 3.2: Asignación exámenes. Se puede ver que en las solemnes (Tabla 3.1), se asignaron las pruebas dentro de una semana, se ocupa esta misma calendarizaciónpero dentro de dos semanas, en la forma que se ve en la Tabla 3.2, siendo los colores asociados a grupos de cursos asignados, que son trasladados de un calendario a otro. Salas: Existen 42 salas disponibles en la facultad de ingeniería, de las cuales solo 37 son salas de clases normales. Sus capacidades para alumnos varían desde los 30, hasta los 73 alumnos. De todas estas aulas de clases, solo se ocuparán para tomar evaluaciones las correspondientes al edificio de Ejército, ya que estas son salas con pupitres independientes y esto facilita la organización de los alumnos dentro de la aula, a diferencia del resto de las salas que están conformadas en la modalidad de un auditorio, con mesones largos en donde se sientas varios alumnos en cada uno de éstos y estos mesones están en diferentes niveles. Cada una de las salas que se ocupan, tienen una capacidad máxima de alumnos. Es por esto que es importante asignar cursos a salas en donde puedan caber los alumnos que tienen que ser evaluados, de una forma holgada. 16 Criterios: Los criterios son indicadores de calidad y cuantificadores del logro de las condiciones deseables, dentro de lo que la Facultad está buscando lograr en su calendarización de pruebas. Para lograr que se cumplan los dos criterios que se tienen, “Concentración de cursos” y “Cursos cercanos”, hay que considerar distintos criterios u objetivos, para que así sea más fácil alcanzar los dos criterios generales. Para el primer criterio, se buscará hacer más parejo el número de cursos que están evaluados en cada modulo del horario y finalmente emparejar la cantidad total de cursos dentro de cada día, basándose en la cantidad de módulos disponibles en este. Viendo el segundo criterio, “Cursos cercanos”, se buscara evitar asignar cursos, un mismo día, que estén cercanos dentro de su malla. Y en el caso que esto no se pueda evitar se intentará mantener alejado las evaluaciones de cursos que estén asignados el mismo día y que además sean cursos de un semestre de distancia dentro de su malla. a) Tablas de Datos Teniendo en cuenta todas las entidades, ahora hay que recopilar y organizar toda la información relacionada con estas entidades, para poder crear nuestro modelo de datos. El cual nos llevará a lograr la calendarización de pruebas con la heurística, que más adelante se explicará. La información que se necesita principalmente, son los cursos que se evalúan, junto con sus secciones y número de alumnos, de cada uno de éstos, las salas que están disponibles en la universidad y sus capacidades correspondientes. Una vez que se obtuvo la información, esta fue estructurada y separada en tablas, las cuales fueron pensadas en la funcionalidad de la heurística. Los formatos de las tablas se muestran a continuación: 17 Carreras: ID_Carrera Nombre Nº de Semestres Código 01 Ing. Civ. Ind. 12 IND Tabla 3.3: Información de las carreras y sus características. La primera columna esta el identificador numérico, el cual consiste en un número que va del 01 al 04 diferenciando las cuatro carreras de la facultad, en la segunda es el nombre de la carrera, ya en la tercera son la cantidad de semestres que tiene cada carrera y finalmente en la cuarta columna esta el código que se ocupa para cada carrera. En el ejemplo de la tabla, se ve la carrera de Ingeniería Civil Industrial, que tiene 12 semestres y su código identificador es el “IND”. El detalle de estos identificadores y otros que aparezcan están en los anexos. Cursos: ID_Curso Código Titulo 01 ENG1009 INGLES I Tabla 3.4: Información de los cursos. En la primera columna va como siempre un identificador, que en este caso es el 01, número identificador del curso “Ingles I”, en la siguiente el código del curso con el cual la universidad trabaja y finalmente el titulo de cada curso. Como muchos cursos en nuestra facultad son comunes para distintas carreras y otros son exclusivos de otras carreras, se tiene que ocupar una tabla que relacione claramente los cursos y sus carreras, además de explicar en qué semestre están ubicadas en sus carreras respectivas. Esta información se muestra en la siguiente tabla: 18 ID ID_Carrera Id_Curso Semestre 01 01 01 05 Tabla 3.5: Información que relaciona cursos con carrera En la primera columna esta un identificador numérico para esta tabla, luego está el identificador de carrera“01” y seguido el del curso, lo que nos dice que Ingles I es de la carrera Ingeniería Civil Industrial y finalmente que pertenece al quinto semestre de esta carrera. Secciones: ID_Sección Sección Id_Curso Demanda 01 01 01 25 Tabla 3.6: Información sobre todas las secciones, tamaños y códigos. Aquí se maneja la información de las secciones y sus características, junto con asociarlas a los cursos que pertenecen. En este caso, el identificador del curso (Id_Curso: 01) corresponde al curso Ingles I, donde nos muestra en la primera columna el identificador de todas las secciones, en la siguiente el de cada curso y en la cuarta el número de alumnos, que en este caso es de 25. Salas: Id_Sala Nombre Tipo Capacidad Edificio 01 FDI-304 NORMAL 35 EJERCITO Tabla 3.7: Datos sobre las todas las salas de disponibles. En esta tabla están todas las salas disponibles, que hay en la facultad, ordenadas primero por tipo de salas (aulas de clases, laboratorios, etc) y después por tamaño en forma ascendente. En la tablas primero está el identificador, luego los nombres con los que se utilizan para diferenciarlas en la facultad, el tipo de sala de clase, sus capacidades y finalmente un identificador que indica en que edificio se ubica esa sala. 19 Con la información que ya se tiene en las tablas se puede crear un horario completo, con sus cursos, secciones, salas y en su horario especifico. Y buscando que toda esta información junta y ordenada, se crearan dos cubos. El primero donde se ve las asignaciones de los cursos en el horario y el segundo las salas, con sus secciones correspondientes. Para buscar separar las pruebas, de cursos que están muy cerca dentro de la malla (“Cursos Cercanos” Pág. 11), se construye una tabla que contiene la información de las distancias entre ellos. De esta manera se crea una tabla en la cual nos indica cual es la distancia, en semestres, entre todos los cursos que queremos asignar en el horario, sin importar si son de distintas carreras o no. Id_Curso 1 2 3 4 … 1 0 1 4 7 2 1 0 5 3 3 2 5 0 12 4 7 3 12 0 … Tabla 3.8: Tabla que contendrá las distancias entre todos los cursos. Esta tabla tiene distancias en semestres entre los cursos, y si son dos cursos de distintas carreras tendrá una distancia de 12 semestres (distancia mayor al posible, dentro de una carrera). Además, esta distancia entre dos cursos, hace que no tenga ninguna importancia al momento de asignar estos dos dentro del horario de pruebas, ya que es imposible que un alumno tome dos cursos que en su malla estén a 12 semestres de distancia. A la hora de analizar el criterio de “Cursos cercanos”, la tabla 3.8 facilita el análisis. Por ejemplo si se tiene Cálculo I (id curso = 4) y Álgebra Lineal (id curso = 2), y se 20 necesita saber que distancia están en la malla de la carrera, se va a la tabla 3.8 y se compara, los id de los cursos. En este caso se comparan los ID 4 y 2, lo cual nos indica la tabla que está a 1 semestre de distancia. Lo cual nos diríaque no deberíamos asignarlos el mismo día, según el criterio de “Cursos cercanos” Para que se entienda mejor el problema que se intenta de resolver y los conceptos básicos de la asignación de sus solemnes, se ilustrara con un ejemplo. Aquí se puede ver un ejemplo de los 6 primeros semestres de Ingeniería Civil Industrial, en donde los ramos se ordenan por columnas, para cada semestre. Semestre 1 Semestre 2 Semestre 3 Semestre 4 Semestre 5 Semestre 6 Álgebra Álgebra Lineal Ecuaciones Diferenciales Termodinámica Estadística Microeconomía Cálculo I Cálculo II Cálculo III Probabilidad Introducción a la Economía Modelos Estocásticos Física I Mecánica Electricidad y Magnetismo Electivo Ciencia II Optimización Electrotecnia y Electrónica Introducción a la Ingeniería Laboratorio de Física Electivo Ciencia de la Ingeniería Química General Contabilidad y Costos Ingeniería Económica Expresión Oral y Escrita Computación I Computación II Computación III Minor / CFI I / Inglés I Minor / CFI II / Inglés II Tabla 3.9: Ejemplo de una malla de carrera. Módulo Horario Sábado Lunes Martes Miércoles Jueves Viernes Sábado 1 8:00 - 10:00 2 10:00 - 12:00 3 12:00 - 14:00 4 14:00 - 16:00 5 16:00 - 18:00 Tabla 3.10: Formato de días y módulos disponibles, para calendarizar. 21 En la tabla3.10 se muestran los módulos, que serán representados por números para de esta manera poder facilitar su uso y sus respectivos días. Esta tabla muestra todos los módulos disponibles para la asignación de las solemnes. En cada uno de estos se puede poner la cantidad de pruebas que uno quiera, hasta el punto que existan salas disponibles y que cumplan con las restricciones establecidas. Explicaremos a continuación algunas normas que se tienen que cumplir a la hora de ordenar las solemnes. En el siguiente cuadro se muestran algunos ejemplos básicos, de lo que se deberá tomar en cuenta a la hora de crear el horario de solemnes. Semestre 1 Semestre 2 Semestre 3 Semestre 4 Semestre 5 Semestre 6 Álgebra Álgebra Lineal Ecuaciones Diferenciales Termodinámica Estadística Microeconomía Cálculo I Cálculo II Cálculo III Probabilidad Introducción a la Economía Modelos Estocásticos Física I Mecánica Electricidad y Magnetismo Electivo Ciencia II Optimización Electrotecnia y Electrónica Introducción a la Ingeniería Laboratorio de Física Electivo Ciencia de la Ingeniería Química General Contabilidad y Costos Ingeniería Económica Expresión Oral y Escrita Computación I Computación II Computación III Minor / CFI I / Inglés I Minor / CFI II / Inglés II Tabla 3.11: Ejemplo comparativo de cursos, dentro de una malla de carrera. Lo primero que se debe respetar es no asignar cursos de un mismo semestre en el mismo día, esto hace que los cursos de los cuadros grises no puedan estar en mismo día. Si un alumno tomara todos los cursos del 4º semestre, el deberá tomar todas las pruebas de este semestre y si ocurriera que varias de estas evaluaciones fueron asignadas el mismo día, tendría que preparar todas estas pruebas para realizarlas en un único día y así no lograría un buen desempeño. 22 Lo que se hace es que todos los cursos que estén asignados el mismo día, no estén cercanos en la malla de la carrera. Diferente es el caso de los cursos de verde, siendo muy poco probable que un alumno haya tomado estos cursos en un semestre y así no importaría que se asignen sus pruebas el mismo día. Un ejemplo son los cursos que están en los cuadros amarillos, ya que estos están a un semestre de distancia, de igual forma los cursos azules, pero estos últimos tienen menos importancia, ya que están a 3 semestres de distancia. b) Cubos generadores de horario Para poder generar la calendarización, hay que tener en cuenta dos puntos importantes. Primero es el hecho de saber qué día y módulo estarán asignados a cada una de las pruebas y segundo en que sala estará asignada cada una de éstas. Para lograr manejar toda esta información, se separara en dos grupos: 1.- (Días, Módulos, Cursos) 2.- (Días, Módulo, Salas) Estas agrupaciones, se hicieron de esta forma para poder organizar de mejor manera la información. Al tener 3 índices, se puede formar un cubo y sus cara frontal, estará conformada por los índices, módulos y días, para que así la profundidad de este cubo sea el tercer índice. De este modo, el cubo, es fácil de entender y de manipular. Se explicara mejor la estructura de estos cubos, a continuación. 23 Cubo con la información de secciones Este cubo está formado por el horario con el que se asignan las pruebas, que sería una matriz (días x módulos), en donde los módulos son los horarios disponibles para realizar las evaluaciones y la profundidad son todas las salas que están disponibles. De este modo en cada una de sus celdas se le coloca un número, que indica una sección de un curso que haya sido asignado ese día y modulo, dejando claro que esa sala estará ocupada por esa sección. Suponiendo que el formato de Cubo de secciones es: CGH (Día, Módulo, Sala) Esto Significa que por ejemplo si Calculo I, tiene 2 secciones (12, 13), fue asignado el día martes al modulo 2 a las salas 25 y 37, esto se vería como: CGH (Martes, 2, 25) = 12 CGH (Martes, 2, 37) = 13 Ilustración 3.1: Cubo en el cual se maneja la información de la calendarización, con respecto a las salas asignadas Cubo Generador de Horario Id_sección Celda Días Salas Módulos 24 Cubo con asignación de cursos en módulos Este cubo es similar que el anterior sus dos primeras dimensiones son los días y módulos, pero su profundidad es de los cursos que se tienen que evaluar. De esta forma si un curso es asignado a un horario y módulo específico, se marcará con un “1” en sus coordenadas correspondientes. Suponiendo que el formato de Cubo de cursos es: CGH (Día, Módulo, Curso) Esto Significa que por ejemplo si Calculo I (ID= 4), fue asignado el día martes al modulo, esto se vería como: CGH (Martes, 2, 4) = 1 Ilustración 3.2: Cubo en el cual se maneja la información de la calendarización, con respecto a los cursos asignados. Ya formado estos dos cubos se puede crear un horario completo, con toda la información necesaria, ya que se puede saber en qué día y hora se estará tomando alguna prueba (Ilustración 3.1) y en que salas se estarán dando todas las secciones de ese curso (Ilustración 3.2). Cubo Generador de Horario ( 1 ) o ( 0 ) Celda Días Cursos Módulo 25 La idea de tener toda esta información separada en dos cubos, es porque la organización de que día y hora se asignarán las pruebas, buscando cumplir los criterios establecidos, es lo más complejo. Y de esta forma nos concentramos en la información de la ilustración 3.2 y finalmente se realizara la asignación de salas, que tiene menos complejidad ya que existen suficientes salas que satisfacen la demanda. Ya teniendo toda la información necesaria para poder crear un horario de pruebas, ahora se necesita saber como un horario es mejor que otro, sabiendo que en la heurística que se formara se tendrá que ir buscando horarios cada vez mejores, hasta que no se puedan mejorar más. Para esta razón hemos buscado un listado de criterios que a la facultad de Ingeniería les son importantes (Pág. 8). Teniendo en cuenta la restricción impuesta por la facultad, en la cual dice que no se pueden tener cursos de un mismo semestre y carrera asignados el mismo día, se crea una tabla que nos entrega información, filtrando datos innecesarios para que sea más fácil el análisis. Dándonos la siguiente tabla: SemestresSábado Lunes Martes Miércoles Jueves Viernes Sábado 1 1 1 0 1 1 0 1 2 1 0 1 0 1 1 1 3 0 0 1 1 0 1 1 4 0 1 1 0 1 1 1 5 1 1 0 1 1 0 1 6 1 1 1 0 0 0 1 7 1 0 1 0 1 1 1 8 1 1 0 1 1 0 1 9 0 1 1 1 1 1 0 10 0 1 1 0 1 0 1 11 1 0 1 0 0 1 1 12 0 1 1 1 1 0 1 Días disponibles del horario Tabla 3.12: Información, sobre si hay un curso asignado algún día, referente al semestre que pertenezca en su carrera. 26 Lo que se ve en la tabla 3.12, las columnas (j) son los días y las filas (i) son los semestres de cada carrera. De esta forma esta tabla se llenará con “unos” o “ceros”, en donde “1” significa que ese día “j” fue asignado un curso del semestre “i”. Sabiendo así que ya no se puede asignar otro curso de ese semestre ese día. Se puede ver en la Tabla 3.12 que el segundo sábado fueron asignados un curso de cada semestre, de los 12 que tiene la carrera menos el del semestre 9, por lo cual solo se podría asignar un curso del semestre 9 ese día, ya que si se asignara otro curso de otro semestre estaría rompiendo el criterio de un curso por día del mismo semestre. En el próximo capítulo se describirá el algoritmo implementado, dando los detalles de cómo funciona, explicando paso a paso lo que la heurística hace mediante diagramas de flujo. 27 IV) HEURISTICA IMPLEMENTADA 1) Descripción General La metodología consiste en un proceso de dos fases en donde la primera consiste en generar un horario inicial factible y en el segundo mejorar este horario mediante búsquedas locales. Primera Fase Segunda Fase Ilustración 4.1: Heurística general Aquí se puede ver un esquema general de lo que hace la heurística. En la primera fase tomando toda la información que se tiene (carreras, cursos, secciones, salas, etc…) se forma un horario inicial que cumple con los requisitos mínimos y así lograr un horario factible. Ya teniendo un horario inicial, se pasa a la segunda fase, en donde mediante una búsqueda local, que se hace mediante pequeños cambios al horario que ya se tenía, se va mejorando el horario hasta el punto que no se pueda seguir con esto y finalmente se entregan los resultados, que serian la calendarización de todas la pruebas, en base a los criterios que se tenían. Formación de un horario factible inicial Mejora de horario Impresión Resultados ¿Puede mejorarse más? SI NO 28 2) Construcción En esta primera fase se realiza la creación de un horario inicial factible. Para este fin se van tomando uno a uno todos los cursos de forma aleatoria y se van poniendo en el horario disponible, partiendo desde el primer día y recorriendo todos sus horarios o módulos. Para asignar cursos en los módulos, va viendo si existe algún curso ya asignado, en ese horario, que sea de la misma carrera y del mismo semestre. En este caso si lo encuentra, significa que no puede asignar el curso aquí y pasa al siguiente modulo, en caso contrario, ve si existen salas suficientes, y si es así lo asigna en el horario que se está analizando; si este no fuera el caso seguiría buscando en el siguiente módulo. Finalmente si no pudiera asignar el curso en ningún lugar, se comienza desde cero a crear un horario. Si en caso que no pudiera encontrar algún horario factible, luego de 100 intentos, la heurística se cierra. Y realiza este proceso hasta que haya asignado todos los cursos dentro del horario disponible de pruebas, logrando así el horario inicial factible, para pasar a la fase 2 (Ilustración 4.3). Ilustración 4.2: Creación de horario inicial (Fase 1) Elegir al azar un curso aún no asignado Se agrega el curso en el lugar visto. ¿Hay salas disponibles para ese curso, en ese lugar? Se busca un lugar del horario ¿Existe otro curso ese día, que no permita agregar este curso? El curso asignado fue el ultimo? NO SI NO SI NO SI Fase 2 ¿Se probaron todos los lugares? Se inicia desde cero el calendario. SI NO 29 3) Mejora Ilustración 4.3: Mejoramiento del horario inicial (Fase 2) Se realiza un cambio factible, moviendo un curso en el horario. Se hace definitivo el cambio Es mejor el horario cambiado, que el anterior? Se han hecho todos los cambios posibles? FIN NO SI SI NO Se realiza un intercambio factible de dos cursos en el horario. Se hace definitivo el cambio Es mejor el horario cambiado, que el anterior? NO SI Se han hecho todos los intercambios de pares posibles? Se pueden realizar cualquiera de los dos tipos de cambios? SI NO SI 30 En esta parte se busca mejorar el horario inicial, mediante una búsqueda simple. Para esto se toma cada curso, en el orden que está en las tablas de datos, y se ve que pasaría con el horario si este se asignara en todos los módulos que el horario dispone, siendo factible que se pueda asignar en ese horario. Luego de compara todos los posibles movimientos, se comparan con los criterios del horario que se tenía inicialmente, y finalmente la mejor de las opciones, basándonos en el valor de la función objetivo, es el que realiza el cambio de el curso que se estaba analizando. Este proceso se sigue realizando mientras se encuentre un horario mejor que el anterior, esto aunque se hayan visto todos los cursos, ya que se partiría desde el primer curso una y otra vez hasta que no se encuentre un horario mejor. Todos estos cambios se realizan verificando que existan salas disponibles para poder asignar todas las secciones del curso que se reasigne. Y la forma con la que se comparan los horarios es darle un valor numero a cada criterio y así sumando todos estos nos dan un único numero que se le llamo Función Objetivo. Esta será explicada en la siguiente sección. 4) Implementación En esta sección se verá cómo fue implementada la heurística y se explicará detalladamente cómo se alcanzaron los objetivos. La heurística implementada en Visual Basic, manipula la información, buscando una solución final, las cual se entrega en una planilla Excel que consiste en diferentes hojas, las cuales se mostraran y explicarán con más detalle a continuación. 31 Asignación de horario: Módulos Lunes Martes Miércoles Jueves Viernes 1 2 xxx(1) 3 yyy(2) 4 5 F.O. 1234 Tabla 4.1: Ejemplo de cómo se entregará la solución de la calendarización, con respecto a las pruebas y sus horarios. Aquí se puede ver el formato con el cual se mostrara el horario que se genero. Este formato se escogió por su simplicidad y por el hecho que utiliza de forma muy común en la Universidad. Se puede ver que es una matriz (Módulos x Días), en donde en cada módulo se escriben todos los cursos que estén asignados a este y además se pone dentro de un paréntesis, justo a su lado, indicando de que carrera se trata este curso. En donde los indicadores son 4: Ingeniería Civil Industrial (1), Ingeniería Informática y en Telecomunicaciones (2), Ingeniería Civil en Obras Civiles (3) y Ingeniería en Construcción (4) Asignación de Salas: Día =2 Módulo =3 Código Curso Sala ICI3005 EXPRESIóN ORAL Y ESCRITA FDI-201 ICI9316 MODELO DE NEGOCIOS EN INTERNET FDI-106 ICI9329 AYUDA A LA DECISIÓN MULTICRITERIO FDI-202 INF9008 SEMINARIO DE PROGRAMACIÓN EDE-211 INF9008 SEMINARIO DE PROGRAMACIÓN FDI-402 INF9040 PROCESOS ALEATORIOS FDI-304 INF9040 PROCESOS ALEATORIOS FDI-403 Tabla 4.2: Ejemplo de cómo se entregará la solución de la calendarización, con respecto a las asignaciones de salas. 32 Como los periodos de pruebas se dividen en módulos, este detalle de las salas se especifica por día y modulo. En donde se muestra El código del curso,su nombre y el código de la sala. Una vez explicada la forma que se entregan los resultados, ahora se analizara la efectividad de la heurística. Lo primero que se debe realizar es una forma de comparar calendarios de pruebas, para poder decir cual es mejor que otro y así ir buscando la mejor programación. Como medio de comparación tenemos nuestros criterios, “Concentración de ramos” y “Cursos cercanos”, los cuales tendremos que estandarizarlos y darles valores numéricos. Ya teniendo estos criterios cuantificados, hay que crear una función objetivo, tomando en cuenta todos estos criterios y asociándolos con pesos (importancia relativa), obteniendo así un valor final, con el cual podremos comparar los calendarios. Ahora se desglosarán los criterios, para luego poder crear variables que sean asociadas a estas subdivisiones. En primer lugar, para el criterio de “Concentración de ramos”, se crearon las variables necesarias para poder hacer que el horario sea lo más uniforme en su distribución, de lo que nos sea posible. Para este objetivo, se crearon dos variables. La primera, que la llamaremos “Diferencia entre módulos” está relacionada con la cantidad de máximos y mínimos que se hallan en el horario, esto relacionado con el numero de ramos que hallan en cada modulo. Por ejemplo: si existen 4 módulos que tienen 7 ramos asignados y 3 módulos con 3 ramos, siendo 7 el número máximo de ramos asignados en cualquier modulo y 3 el número mínimo. Por lo tanto nuestra variable está asociado a la diferencia del máximo con el mínimo, en este caso 7-3 = 4. Y buscando que esta variable disminuya su valor, logra disminuir la diferencia entre los máximos y mínimos, haciendo así más uniforme el horario. 33 Una segunda variable que se crea para lograr medir el criterio de “Concentración de ramos”, es la variable de “Diferencia entre días” la cual funciona igual que la anterior, solo que ve la diferencia entre los máximos y mínimos de la cantidad de cursos asignados en cada día. Las siguientes variables están relacionadas con el criterio “Cursos cercanos”, la primera llamada “Cercanos”, depende de cursos que sean de la misma carrera, que estén asignados el mismo día y que en la malla estén en semestres contiguos, obteniendo valores mayores si están en el mismo modulo y va disminuyendo este valor a medida que se alejen, en el horario dentro del mismo día. De esta forma su valor mayor seria de “4” si estos dos cursos están en el mismo horario y “0” si llegaran a estar, en los dos módulos más distantes, el de las 8:00 y el otro el de las 16:00. Finalmente la ultima variable, llamada “Distancias”, está relacionada con cursos que estén asignados el mismo día, de la misma carrera y que estén a 4 semestres, o menos, de distancia dentro de su malla. Esta variable, que tiene cuatro componentes, va sumando la cantidad de cursos que están a 1, 2, 3 y 4 semestres de distancias, por separado. Buscando lograr comparar todos estos criterios de un horario con los de otro horario, se les darán pesos relativos a todos los criterios, dependiendo de la importancia. Para lo cual se fija que mientras más grande es el peso que se le asigne, mayor será la importancia que este criterio tendrá. A continuación se muestra algunos análisis, que se realizaron para poder asignar un peso relativo a cada criterio, buscando obtener un calendario de pruebas acorde a lo que la facultad de Ingeniería, está buscando obtener. Lo que se realizo fue ver el comportamiento de las penalizaciones, de cada criterio, a medida que se cambiaban los pesos relativos de los distintos criterios que se tienen. Para que finalmente se busque un buen ajuste de estos. 34 Primero se verá cómo cambia el calendario a medida que cambiamos los pesos del criterio de concentración de ramos, moviéndolo de 100 unidades de penalización hasta 1 unidad. CRITERIOS Ilustración 4.4: Penalizaciones por criterio, agrupadas por diferentes niveles de pesos en la concentración de cursos. En esta ilustración cada barra de color indica un peso relativo diferente, y están agrupadas por criterios, mostrando la cantidad de penalizaciones que tiene cada uno de estos. Analizando el comportamiento de cada criterio, se puede observar que no existe cambio significativo a medida que aumenta el peso de la concentración de cursos. Viendo lo anterior se analizara con más cuidado los criterios relacionados con los cursos cercanos. En las siguientes ilustraciones se le dará un peso relativo de 100 unidades a cada criterio, dejando los demás en una unidad. Y esto se hará con todos los criterios referentes a cursos cercanos. 35 Y además se muestra, en otra ilustración, cómo se comportan los criterios de concentración de cursos, para ver con más detalle os cambios. Ilustración 4.5: Penalizaciones por criterio de cursos cercanos dándole 100 unidades de peso. Ilustración 4.6: Penalizaciones por criterio de concentración de cursos dándole 100 unidades de peso. Al analizar con cuidado la ilustración 4.5, se puede ver como las penalizaciones de cada criterio, al cual su peso relativo es de 100 unidades, disminuye haciendo que aumenten las de los otros criterios. 36 Viendo la Ilustración 4.6 se puede decir que no existe un comportamiento muy claro con los cambios en los pesos relativos. En base al comportamiento de los criterios, se hicieron experimentos logrando obtener dos extremos. En el primero se priorizo la concentración de cursos en el horario, logrando un calendario muy homogéneo, donde no existe grandes concentraciones de cursos en algún modulo o día. Ya en el segundo se busco que los cursos cercanos y relacionados estén lo más distanciados posible unos de otros, priorizando los que estén más cerca entre ellos, es decir de un semestre a distancia. Ilustración 4.7: Penalizaciones comparando los criterios de cursos cercanos, entre dos combinatorias de pesos relativos. Ilustración 4.8: Penalizaciones comparando los criterios de concentración de cursos, entre dos combinatorias de pesos relativos. 37 Viendo las últimas dos Ilustraciones, se puede ver cómo ahí se sacrifica homogeneidad en el calendario para mantener los cursos cercanos alejados entre sí, o viceversa si nos centramos en la concentración de cursos, haciendo que los cursos cercanos aumente. Viendo este comportamiento se decidió dar pesos relativos que logren un equilibrio entre estos dos criterios generales, logrando un calendario equilibrado entre estas dos tendencias. Los criterios, se muestra a continuación en una tabla donde se detalla los “pesos” (valor numérico que se asocia a cada criterio para darle distintas importancias relativas). Diferencia entre módulos 100 Diferencia entre días 10 Cursos cercanos 10 Distancia 1 10 Distancia 2 5 Distancia 3 2 Distancia 4 1 Tabla 4.3: Pesos relativos de los criterios. La tabla 4.3 está dividida en dos partes, en la primera están los pesos del criterio de “Concentración de ramos” y en la segunda parte están los relacionados con el criterio de “Cursos cercanos”. Para entender mejor como se ocupan las variables de los criterios con sus respectivos pesos, para obtener la función objetivo se ocupara un calendario para mostrar algunos resultados. El calendario dispone de 7 días, (sábado, lunes, martes, miércoles, jueves, viernes y sábado). Pero solo se mostrara una extracción de este, el cual corresponde a los primeros 3 días. 38 Modulo Sabado Lunes Martes Cálculo I Introducción a la Física Computación III (1,2) Química General Base de Datos Análisis de Señales y Sistemas Electivo Profesional VI Mecánica de Fluidos Gestión Estratégica (2) Electivo: Modos No Motorizados Introduccióna la Economía Innovación y Emprendimiento Electricidad y Magnetismo Gestión de Proyectos (1) Mecánica Ingeniería de Software (1) Sistemas Distribuidos Liderazgo y Trabajo en Equipo (1) Redes de Datos II Diseño en Madera Base de Datos (1) Ingeniería de Caminos Estudio de Propuestas Construcciones Viales I Computación II (1) Inglés I Álgebra Inteligencia Artificial Inglés II Modelos Estocásticos Construcciones Viales II Diseño y Análisis Algoritmos Arquitectura Computacional Mecánica de Suelos Aseguramiento de Calidad Electivo Profesional V Diseño Gráfico Computacional Diseño Estructural Diseño Hidráulico Electivo Especialización: Negociación Ingeniería Económica Simulación Electivo Profesional VII Electivo: Geología General Autómatas y Lenguajes Formales Diseño en Hormigón Electivo Especialización: Ingeniería Ambiental Electivo Cs. Ingeniería: Ingeniería de Fluidos Cálculo II Análisis Estructural I Modelos Estocásticos y Simulación Optimización Modelos de Transporte Edificación II 1 2 5 4 3 Tabla 4.4: Parte de calendario de prueba, usado en el ejemplo. Analizando esta parte del calendario se puede ver que existen algunos módulos, como es el caso del módulo 4, día sábado que tiene 1 curso asignado y que comparado con el módulo 3, día lunes que tiene 6 cursos asignados, existe una diferencia de 5 módulos. Existen otros detalles que se pueden apreciar en la siguiente tabla la cual muestra el análisis completo de este horario, en base a los criterios acordados. Concentración de ramos Datos Diferencia entre módulos 5 Diferencia entre días 14 Cursos cercanos Datos Cercanos 189 Distancia 1 88 Distancia 2 86 Distancia 3 61 Distancia 4 62 Tabla 4.5: Resultados del ejemplo de calendario de evaluación. 39 Para entender cómo se obtuvieron los valores, se analizará la tabla 4.5. La diferencia entre módulos dio ya que el módulo con la mayor concentración de cursos fue de 7 y el de menor fue de 3, lo cual nos da una diferencia de 5. De la misma forma la diferencia entre días, fue porque el máximo de cursos en un día fue de 28 y el mínimo de 14, dándonos una diferencia de 14. Ahora viendo el valor de cursos cercanos, nos dice que existen 189 penalizaciones de pares de cursos que están asignados el mismo día y que están a un semestre dentro de la malla. Siendo penalizadas dependiendo de su cercanía horaria, en donde la penalización máxima es de 4, estando los dos cursos en el mismo horario, y esta penalización va disminuyendo de a una unidad hasta llegar a 0, siento esta cuando están a 8 horas de diferencia, lo cual ocurre cuando son asignadas en los dos módulos extremos, el de las 8:00hrs y el de las 16:00hrs. A continuación se muestra un pequeño ejemplo de cómo se va sumando esta variable: Química General e Introducción a la economía, cursos de Ingeniería Civil Industrial, 4º y 5º semestre respectivamente, están asignadas el día sábado (Tabla 4.4). Como están separadas por un semestre en la malla y asignadas el mismo día, hay que ver a cuantos módulos de distancia están. En este caso están a 1 modulo de distancia, lo cual se traduce en una penalización, la cual se puede apreciar en la siguiente tabla: Distancias de módulos Penalización 0 4 1 3 2 2 3 1 4 0 Tabla 4.6: Tabla de penalizaciones 40 Analizando la “Distancia 1” (tabla 4.5), esta nos dice que existen 88 pares de cursos que fueron asignados el mismo día y que además están a 1 semestre de distancia dentro de su malla. Un ejemplo de esos 88 pares, es el par de ramos recién nombrados (Química General e Introducción a la economía). El resto de las distancia funcionan con la misma lógica, con la única diferencia siendo la distancia entre los pares, la cual está dicha en su mismo nombre. Finalmente cuando se tienen todos estos datos, cada uno se multiplica por su “peso” correspondiente (Tabla 4.3) y se suman, de esta forma se obtienen la función objetivo; que en este caso su valor es de 4024. 41 V) RESULTADOS EXPERIMENTALES Buscando medir la efectividad de esta heurística en la calendarización de la facultad de Ingeniería de la Universidad Diego Portales, se verá la velocidad con que llega a su solución final y se comparara la función objetivo del horario inicial con el del final, de 100 experimentos, logrando mediciones más exactas. Se usarán los datos del semestre 2009-2, utilizando todas las salas que están disponibles en la facultad, para luego hacer pruebas sin las salas del edificio de la calle Vergara. Esto ya que la facultad esta priorizando realizar las evaluaciones en las salas de la calle Ejército (pág. 15). Además se comparara el calendario de segundas solemnes 2009-2, comparándolo con los resultados que entrega la heurística con los mismos datos que el calendario de la facultad utilizo y se medirán los criterios que se han utilizado. Función Objetivo Iteraciones 80757065605550454035302520151050 F O 6000 5000 4000 3000 2000 1000 Ilustración 5.1: Evolución de la función objetivo de la heurística. 42 En el grafico anterior se puede ve la dispersión de la función objetivo, en base a las iteraciones. Se ve una mejora rápida mediante cambios que hacen que sus penalizaciones disminuyan, por ende la función objetivo baja, demostrando grandes mejoras en el horario. Todo esto en base a los criterios que se habían propuestos y que se explicaran por separado más adelante. Igual se puede ver, que las mejoras más importantes que ocurren, son en las primeras iteraciones demostrando de esta forma, la rápida convergencia a un horario aceptable, bajo los criterios que se impusieron. Para ver a qué nivel tiende los calendarios de pruebas, que logra alcanzar nuestra heurística. Con el fin de alcanzar esto se realizara una grafica con el porcentaje de frecuencias de las funciones objetivos, cuyo valor este por debajo de los 2000. Porcentaje F.O. Menos que 2000 FO 1991 1975 1960 1945 1928 1913 1899 1885 1871 1857 1843 1829 1815 1801 1787 1773 1757 1738 1711 P or ce nt aj e 3.5 3.0 2.5 2.0 1.5 1.0 .5 0.0 Ilustración 5.2: Porcentaje de la función objetivo. 43 En el grafico anterior se puede ver una tendencia a valores entre los 1800 y 1900, esto se puede confirmar, analizando estadísticamente los datos. La media como la mediana, están muy cercanos a los 1850 y su desviación estándar es de 57, lo cual nos da un rango de 1793 y 1907. Esto muestra que la heurística logra un nivel estable y bajo, dentro de los parámetros que se buscan. A continuación analizaremos, el número de iteraciones, con la cual la heurística logra llegar a la solución, en la instancia de la Facultad de Ingeniería: Número de Iteraciones Nº Iteraciones 725548353129272422201816141210 F re cu en ci a 14 12 10 8 6 4 2 0 Ilustración 5.3: Número de Iteraciones Este grafico muestra la frecuencia de iteraciones que tuvo que realizar la heurística para encontrar el mejor horario que pudo encontrar. En este grafico se puede ver una clara tendencia a completar la calendarización en las primeras 18 iteraciones. 44 Aquí se puede ver como en el 50% de los casos logra hacerlo en menos de 17 iteraciones y su media da 19, pero esta se ve afectada por los valores extremos, que se alejan de la moda. Además el tiempo en el que se realiza 19 iteraciones resta cercana a los 8 minutos, lo cual muestra la rapidez y efectividad de la heurística. Ahora se analizará la cantidad de iteraciones que necesita la heurística, en promedio, para llegar al nivel aceptable de la función objetivo (2000). Iteraciones para alcanzar F.O. 2000 Iteración 21139876543 F re cu en ci a 70 60 50 40 30 20 10 0 Ilustración 5.4: Iteraciones antes de alcanzar un nivel de 2000. En este grafico,se ve claramente que más del 60% de los casos, logran llegar al nivel deseado, antes de la quinta iteración, y exactamente el 93% de los casos logaron hacerlo en 5 iteraciones. Y mediante la experimentación, se ha visto que en la mayoría de los casos la función objetivo, que se da con el horario inicial, se logra reducir más del 50%, lo que se puede traducir en palabras, que se eliminaron la mitad de las penalizaciones que existían al comienzo. A continuación se mostrara con más cuidado la convergencia de los distintos criterios. 45 0 500 1000 1500 2000 2500 3000 3500 4000 1 2 3 4 5 Concentración de ramos Cursos cercanos Ilustración 5.5: Evolución de los criterios. Aquí se puede ver como los distintos criterios, dan forma a la función objetivo. Llama la atención que el criterio de “Cursos cercanos” afecta y da forma a la función objetivo. 1) Comparación de horarios Ahora se realizará una comparación del calendario de pruebas que corresponde a las segundas solemnes del segundo semestre del año 2009. Donde la heurística trabaje exactamente con las mismas condiciones y así poder analizar los criterios de cada una de ellas. A continuación, se muestran los dos horarios a comparar. El primero, el es calendario utilizado por la Facultad mientras que el segundo, es uno obtenido por la heurística. Es importante mencionar que en el horario utilizado por la Facultad, se indica en algunos casos la carrera o carreras que están asociadas a ese curso, y para simplificar donde los nombres complicaban la impresión de este horario, se reemplazaron estos, por sus códigos de carrera, que son mostrados dentro de un paréntesis. En el caso de la heurística, todos los cursos que estaban asociados a alguna carrera, tienen un paréntesis con los códigos de todas estas. 46 Tabla 5.1: 1º parte de calendario de solemnes 2009-2. C al en da rio d e se g un da s ol em ne s 20 09 – 2 47 Tabla 5.2: 2º parte de calendario de solemnes 2009-2. C al en da rio d e se g un da s ol em ne s 20 09 – 2 48 Tabla 5.3: 1º parte de calendario entregado por la Heurística. C a le nd a rio H eu rí st ic a 49 Tabla 5.4: 2º parte de calendario entregado por la Heurística. C a le nd a rio H eu rí st ic a 50 Algo que llama la atención al comparar los calendarios, es el hecho que se ve menos cargado el horario entregado por la facultad, pero esto se debe a que agrupa los cursos con igual nombre, aunque sean cursos con diferentes códigos y secciones. Esto hace que reduzca la cantidad de cursos, visualmente. Además la heurística no ocupa los módulos 4 en adelante, o sea no se realizan evaluaciones desde las 14:00 hrs en adelante, los días sábados. Se muestra a continuación el detalle de los criterios que se sacaron de cada calendario y se hablara de las diferencias. Concentración de ramos Datos Concentración de ramos Datos Diferencia entre módulos 5 Diferencia entre módulos 4 Diferencia entre días 14 Diferencia entre días 2 Cursos cercanos Datos Cursos cercanos Datos Cercanos 189 Cercanos 69 Distancia 1 88 Distancia 1 65 Distancia 2 86 Distancia 2 110 Distancia 3 61 Distancia 3 78 Distancia 4 62 Distancia 4 80 Funcion Objetivo 1 4024 Función Objetivo 2 2546 Calendario 2º Solemnes 2009-2 Calendario Heuristica Tabla 5.5: Ejemplo de cómo se entregara la solución de la calendarización, con respecto a su función objetivo. Como se puede apreciar, la función objetivo alcanzada por la heurística es de casi 1500 puntos por debajo del otro calendario, lo cual no nos dice mucho, pero si se pueden ver diferencias claras en los criterios mostrados en las tablas. En donde los criterios “Cercanos” y “Distancia 1” (Pág. 32-33) mejoraron, a diferencia de los indicadores de distancias, mayores o iguales a dos, que se deterioraron compensando las mejoras en el resto de los criterios. 51 Para explicar mejor algunas diferencias y como se calcularon los datos de la tabla, se mostrará el día, con más cursos asignados y penalizaciones por los criterios de “Cercanos” y “Distancia 1”, en el calendario e la Facultad. JUEVES 19 DE NOVIEMBRE Ecuaciones Diferenciales (1,2,3,4) Expresión Oral y Escrita(1) Sistemas de Telecomunicaciones(2) Construcción en Madera(4) Construcción Pesada(3) Administración de Empresas (2,3,4) Análisis de Información Empresarial Probabilidades (1) Estadística (1) Ingeniería de Software (2) Análisis de Circuitos(2) Tecnología de Hormigón(3,4) Computación II (2,3,4) Macroeconomía(1) Sistemas de Comunicación Digital(2) Estática Aplicada(3,4) Electivo Cs. Ingeniería: Sistemas Dinámicos Marketing(1) Capital Intelectual, aprendizaje Estructura de Datos(2) Electivo Profesional IV Mecánica de Sólidos(3,4) Impacto Ambiental(3) Microeconomía(1) Sistema de Información Empresarial(1) Gestión de Proyectos Informáticos(2) Diseño en Acero(4) Estructuras de Acero(3) 1 2 3 4 5 Tabla 5.6: Ejemplo de un día del horario ocupado por la Facultad. Aquí se puede ver el problema que se había mencionado antes, los cursos en rojo, son los dos de la carrera de obras civiles y son del 10º semestre. 52 Y para analizar el criterio de “Cercanos”, vemos los cursos de colores verdes y celestes, todos son de la carrera Ingeniería Civil Industrial, pero los azules, probabilidad y estadística, son de los semestres 4º y 5º respectivamente, y están asignados el mismo módulo, lo cual según la penalizaciones son 4 unidades que se agregan a la variable “Cercanos” y para los verdes su penalización es de 3 unidades, por estar a un módulo de distancia. Siguiendo con estas penalizaciones, se encontraron las siguientes dentro de este día jueves: Distancia entre módulos Cantidad 0 3 1 6 2 4 3 7 4 6 Tabla 5.7: Algunas penalizaciones de la tabla 5.6. Ahora comparando la concentración de ramos en la tabla 5.5, se puede ver que la gran diferencia está en el número de cursos asignados por día. Ya que la diferencia entre un día y otro, en el calendario de la facultad, es de 14 ramos. Otro dato importante en el criterio de cursos cercanos, es la gran diferencia en “cercanos” que el horario que se ocupo en la facultad tenía 189 penalizaciones por tener cursos el mismo día y relacionados, en cambio el de la heurística logro disminuir las penalizaciones a solo 69 unidades, esto gracias a que de la misma forma disminuyo la cantidad de cursos asignados el mismo día y que estuvieran a un semestre de distancia en su malla (criterio “Distancia 1”). También se encontraron algunos problemas en el horario, los cuales se dejaron para poder conseguir otros beneficios en la calendarización. Existían 6 pares de cursos asignados el mismo día y que correspondían al mismo semestre de su carrera, lo cual en la heurística no ocurre. 53 VI) CONCLUSIONES Esta tesis se enfocó en realizar una heurística que pudiera realizar la calendarización de pruebas de la Facultad de Ingeniería de la Universidad Diego Portales. Este tipo de problemas son siempre diferentes dependiendo de las características de cada institución y sus objetivos que estén buscando en la realización de estos calendarios de pruebas. Se logró categorizar algunos criterios que la facultad estaba buscando, con lo cual se motivo la creación de la heurística, logrando finalmente su creación he implementación. La heurística fue analizada y puesta a prueba de diferentes maneras, inicialmente se le entregó la libertad de realizar la calendarización con todas las salas disponibles de la facultad, y demostró una gran velocidad en el logro de los objetivos deseados para los calendarios de pruebas, llegando a demostrar que en 6 iteraciones o menos podría llegar a un horario dentro de los criterios que se buscaba. También se comparó la heurística, con un horarioreal de la facultad, el del 2º semestre del 2009, solucionando algunos problemas que se presentaban en este horario, como era la asignación de cursos del mismo semestre y carrera, el mismo día. Finalmente la heurística implementada demostró entregar horarios de pruebas muy superiores a los iniciales, que entregaba, tomando en cuenta los requisitos y criterios. Además se logro resolver todos los problemas, que antes se presentaba en la calendarización. El tiempo en generar varios posibles horarios es menos a una hora y se hace de forma automática, en comparación a los 3 días o más, aproximadamente, que se dedicaba a este trabajo en la Facultad. 54 Esta heurística, implementada en Visual Basic, la cual ha demostrado muy buenos resultados en el momento de la aplicación, se recomienda que se haga algunos ajustes en un futuro, como son el tomar en cuenta cursos que sean pre-requisitos entre ellos, y así darles más libertad a la hora de ser asignados. También la heurística pudo tomar en cuenta cursos que por preferencia de la Facultad o de profesores, sean fijados en un día y horario establecido o dejando reservada alguna sala especifica, para que pueda ser utilizada de la forma que mejor le parezca a la facultad. 55 REFERENCIAS [1] R. Hernández J. Miranda, P.A. Rey; Programación de Horarios de clases y asignación de salas para Facultad de Ingeniería de la Universidad Diego Portales mediante un enfoque de programación entera. Revista ingeniería de sistemas: Volumen XXII, Páginas: 123 – 143, Año: 2008. [2] S. Dasakalaki, T. Birbas, E. Housos An integer programming formulation for a case study in University timetabling European Journal of Operational Research 153. Paginas: 117 – 135. Año 2004. [3] E. Burke, P. M. Ross. “Practice and theory of automated Timetabling”. First International Conference, Edinburgh, UK. LNCS, vol. 1153, Paginas: 76 -90. Springer, Heidelberg. Año: 1996. [4] Reis L.P. y Oliveira E. “A language for specifying complete timetabling problems”. Practice and Theory of Automated Timetabling III, LNAI 2079 , Springer- Verlag,Berlin, Heidelberg pp. 322-341, Año: 2001. [5] Schaerf A. “A survey of automated timetabling”. Artificial Intelligence Review. 13, pp. 87-127, Año: 2003. [6] R. Qu, E. K. Burke, B. McCollum, L.T.G. Merlot, and S.Y. Lee. A Survey of Search Methodologies and Automated System Development for Examination Timetabling, Pág. 10-15, Año: 2004. 56 [7] Wren A. “Scheduling, Timetabling and Rostering - A Special Relationship”. Practice and Theory of Automated Timetabling, LNCS 1153, Springer-Verlag, Berlin, Heidelberg, pp. 46-76, Año: 1996. [8] Josué Andrés Caballero Rosas, Juan Pablo Gómez Cardona. Desarrollo de timetabling enfocado a la programación de exámenes finales. Universidad EAFIT. http://bdigital.eafit.edu.co/BenchPrincipal.aspx, Bench-Colombia Sistema de referencia para la construcción, Librería, Año: 2004. [9] L.F. Spano; Programación horaria de los diplomados de la escuela de post-grado de la facultad de economía de la Universidad de Chile; Magister en Gestión, Facultad de ingeniería de la Universidad Diego Portales, En desarrollo. Año: 2009. [10] http:/www.udp.cl/homehistoriahtm, Página Universidad Diego Portales, Historia [11] http://www.udp.cl/home/in/infraestructura.htm, Página Universidad Diego Portales, Infraestructura. [12] http://www.udp.cl/home/recorrido/tvingenieriatourvirtual_ing.htm Pagina Universidad Diego Portales, Tour virtual facultad de ingeniería. 57 ANEXOS