Вы находитесь на странице: 1из 53

UNIVERSIDAD NACIONAL JOS MARA ARGUEDAS

FACULTAD DE INGENIERA
ESCUELA PROFESIONAL DE INGENIERA DE SISTEMAS

P R O Y E C T O

D E

T E S I S

DESARROLLO DE UN SISTEMA DE GENERACIN DE HORARIOS ACADMICOS


CON UN ALGORITMO GENTICO PARA LA ESCUELA PROFESIONAL
INGENIERA DE SISTEMAS DE LA UNIVERSIDAD NACIONAL JOSE MARIA
ARGUEDAS

LNEA DE INVESTIGACIN : INTELIGENCIA ARTIFICIAL


REA PRIORIZADA PNCYT :
AUTOR

: BACH. ALHUAY CARRASCO, Percy

ASESOR

: Mg. Sc. Edwin Roque Tito

ANDAHUAYLAS APURMAC
PER
08, 2015

TABLA DE CONTENIDOS
Pg.

Contenido
1.

pag.

DATOS GENERALES .................................................................................................... 3


1.1.

Ttulo del proyecto .................................................................................... 3

1.2.

Autor del proyecto .................................................................................... 3

1.3.

Asesor del proyecto ................................................................................... 3

1.4.

Lnea de investigacin ............................................................................... 3

1.5.

rea priorizada del proyecto ..................................................................... 3

1.6.

Institucin y lugar de ejecucin del proyecto ........................................... 3

1.6.1Localidad.................................................................................................. 3
1.6.2Establecimiento...................................................................................... 3
1.7.

Duracin del proyecto ............................................................................... 4

1.8.

Cronograma de ejecucin del proyecto .................................................... 4

1.9.Presupuesto ................................................................................................... 5
1.10.
2.

Financiamiento .......................................................................................... 6

PLANTEAMIENTO DEL PROBLEMA ............................................................................ 7


2.1.

Realidad problemtica............................................................................... 7

2.2.

Formulacin del problema ...................................................................... 11

2.3.Objetivos...................................................................................................... 11
2.3.1.Objetivo General ...................................................................................... 11
2.3.2.Objetivos Especficos ................................................................................ 11
2.4.

Justificacin. ............................................................................................ 12

2.5.

Viabilidad de la investigacin .................................................................. 13

2.6.

Limitacin del estudio ............................................................................. 14

2.7.

Marco terico .......................................................................................... 14

2.7.1.Definicin de contexto de la creacin de horarios................................... 14


Optimizacin. .................................................................................... 14
Aula ................................................................................................... 14
Sesiones............................................................................................. 15
Laboratorio. ....................................................................................... 15

Restricciones. .................................................................................... 15
Materia. ............................................................................................. 15
Horario de clases ............................................................................... 15
2.7.2.CONCEPTOS RELACIONADOS A LA PROBLEMTICA ................................. 16
2.7.2.1.Algoritmo............................................................................................. 16
2.7.2.2.Problemas NP ...................................................................................... 18
Algoritmo determinstico .................................................................. 18
Algoritmo no determinstico ............................................................. 19
2.7.2.3.Problemas de optimizacin ................................................................... 19
2.7.2.4.Algoritmos Meta-heursticos ................................................................. 19
2.7.3.onceptos de Timetabling y scheduling ..................................................... 21
2.7.3.1.Problema Timetablig. ............................................................................ 21
2.7.4.Solucin al problema del Timetabling ...................................................... 21
2.7.4.1.Tcnicas tradicionales. .......................................................................... 21
2.7.4.1.1.Programacin entera ................................................................... 21
2.7.4.1.2.Programacin lineal. .................................................................... 22
2.7.4.1.3.Bactracking ................................................................................... 24
2.7.4.2.Tcnicas no tradicionales. ........................................................................... 25
2.7.4.2.1.Redes neuronales ......................................................................... 26
2.7.4.2.2.Reconocido simulado ................................................................... 26
2.7.4.2.4.Algoritmo evolutivo...................................................................... 27
2.7.4.2.4.1.Estrategias evolutivos ............................................ 29
2.7.4.2.4.2.Programacin gentica .......................................... 29
2.7.4.2.4.3.Algoritmo gentico ................................................ 30
2.7.5.INTELIGENCIA ARTIFICIAL ......................................................................... 31
2.7.5.1.Tcnicas de inteligencia artificial........................................................... 31
2.7.5.1.1.Sistemas expertos. ....................................................................... 31
2.7.5.1.2.Redes neuronales. ........................................................................ 31
2.7.5.1.3.Algoritmo gentico....................................................................... 31
2.7.5.1.4.Lgica difusa ................................................................................. 31
2.7.6.Herramientas utilizadas en el desarrollo de software ............................. 32
2.7.6.1.Java ........................................................................................................ 32
2.7.6.2.Hibernate ............................................................................................... 33

2.7.6.3.Netbeans ............................................................................................... 35
2.7.6.4.Base de datos ........................................................................................ 36
2.7.6.5.Mysql ..................................................................................................... 38
2.8.

Estado del arte......................................................................................... 39

2.8.1.Tcnicas existentes para la resolucin del problema ............................... 39


2.8.1.1.Tcnicas secuenciales basadas en grafos .............................................. 39
2.9.

Ingeniera del proyecto............................................................................ 46

2.9.1.Requerimientos de hardware para el funcionamiento del sistema ......... 46


REFERENCIAS BIBLIOGRFICAS ........................................................................ 47

INDICE DE TABLAS Y FIGURAS


Tabla #1: Cronograma de ejecucin del proyecto ........................................................... 4
Tabla #02: Presupuesto .................................................................................................... 6
Tabla #3: Diez principales pases que emplean la tecnologa de informacin. ... 8
Figura #01: Diagrama de un algoritmo. .................................................................... 16
Figura #02: Programacin lineal estructurado. ......... Error! Marcador no definido.
Figura #03: Programacin Backtracking. ....................................................................... 25
Figura #07: El esquema general de un algoritmo evolutivo .................................. 28
Figura #04: clasificacin de tcnicas de bsqueda fuente:............................................. 31
Figura #07: Arquitectura de Hibernate ..................................................................... 34
Figura #08: Arquitectura de sistema de una base de datos (2015) ..................... 37
Figura #05: Pantalla del generador de horarios. Imagen recuperada............................ 46

1. DATOS GENERALES
1.1. Ttulo del proyecto

Desarrollo de un sistema de generacin de horarios acadmicos con


un algoritmo gentico para la escuela profesional ingeniera de
sistemas de la Universidad Nacional Jos Mara Arguedas
1.2. Autor del proyecto
Nombres y apellidos

: Percy, ALHUAY CARRASCO

Escuela Profesional

: INGENIERIA DE SISTEMAS

E-mail

: SYSTEMPERCY@GMAIL.COM

1.3. Asesor del proyecto


Nombre

: Mg. Sc. Edwin Roque Tito

Categora docente

: Auxiliar

Modalidad

: DE

Direccin

: Av.: Per N745 - Andahuaylas

E-mail

: edwin.roque@hotmail.com

1.4. Lnea de investigacin


INTELIGENCIA ARTIFICIAL
CODIGO:
040301
1.5. rea priorizada del proyecto
Tecnolgica.
1.6. Institucin y lugar de ejecucin del proyecto
1.6.1

Localidad

Distrito

Andahuaylas

Provincia

Andahuaylas-

Departamento Apurmac.
1.6.2

Establecimiento

En la Universidad Nacional Jos Mara Arguedas(escuela


profesional ingeniera de sistemas)

1.7. Duracin del proyecto


La duracin del todo el proyecto de tesis se realizara en de 4 meses.
1.8. Cronograma de ejecucin del proyecto

Tabla #1: Cronograma de ejecucin del proyecto

1.9. Presupuesto

ITEM
1.00.00
1.01.00

DESCRIPCION

1.02.00
1.02.01
1.02.02
1.02.03
1.02.04
1.02.05
1.02.06
2.00.00
2.01.00
2.01.01
2.01.02
2.01.03
2.01.04
2.01.05
2.01.06
3.00.00
3.01.00
3.01.01
3.01.02
3.01.03

Precio
Unit

BIENES

Precio
parcial
3880.00

Materiales de escritorio
3,000.00

Laptop PH Intel Corel i5- 3230m CPU @ 2.60GHz, 8 GB DE RAM Y


1.01.01
1T de almacenamiento
Disco Duro Porttil Toshiba 1tb Canvio Basics Black 3.0 & 2.
1.01.02
1.01.03

Cantidad UNID. MEDIDA

Unid

2,000.00

2,000.00

Unid

300.00

300.00

Unid

700.00

700.00

impresora Multifuncional Kyocera Ecosys Fs-1020mfp Negro


Materiales Consumibles
880.00
05 Millares de papel bond A-4 de 80 gr
5

Millar

25.00

125.00

24

Docena

5.00

120.00

Unid

3.00

12.00

Unid

5.00

40.00

Unid

7.00

28.00

Unid

220.00

880.00

Lapiceros PILOT
04 Resaltadores color amarillo Faber Castell
08 Correctores
04 Cuadernos espiralados Stanford
Cartuchos de tner para impresora Lser Kyocera Fs-c5150dn
SERVICOS
2,040.00
Servicios diversos
2,040.00
Internet Movistar
4

Mes

60.00

240.00

3000

Unid

0.10

300.00

1000

0.50

500.00

10

Minutos
Visitas y
Sesiones

100.00

1,000.00

3000

Unid

0.10

300.00

12

Unid

4.00

48.00
-

Fotocopias
telefonia movil(Comunicaciones)
Viaticos
Imoresiones
Anillados de informes
Sotware
Desarrollo del sistema
Gestor de Base de datos (Software Libre)
1

Unid

Unid

Unid

Modelador de Base de datos (Software libre)


Lenguaje de programacin (Software libre)

4.00.00
4.01.00
4.02.00
4.02.01
5.00.00

RECURSOS HUMANOS
4,000.00
Asesores
1

persona

2,500.00 3,000.00

Desarrollo del sistema

1,000.00

Programador
1

persona

1,000.00

1,000.00

GASTOS GENERALES
1,361.00
Imprevistos
Imprevistos 15% del costo total

Unid

1,361.00

COSTO TOTAL DE LA TESIS

1,361.00
11,281.00

Tabla #02: Presupuesto


1.10.

Financiamiento

El proyecto ser Autofinanciado ....................................... S/.11,281.00

TOTAL.............................................................................. S/. 11,281.00

2. PLANTEAMIENTO DEL PROBLEMA


2.1. Realidad problemtica
La tecnologa desde sus inicios siempre dio un impacto o un contexto
diferente a las organizaciones en sus procesos de negocio, pero en el
siglo XXI, la Tecnologa de Informacin (TI), se ha convertido en uno de
los factores ms relevantes en cuanto al uso institucional de las
empresas y uno de los factores que desde siempre han sido claves para
toda empresa (publica /privada), es el proceso de toma de decisiones
basado en una adecuada administracin de la informacin y tiempo. En
el siglo XXI, el elemento diferenciador entre empresas supervivientes y
sobrevivientes, radica en el aprovechamiento de los recursos que la
tecnologa que ofrece, y la manera en que dichos recursos son
explotados por cada una de las organizaciones, todos ellos relacionados
con la manipulacin de datos para proveer informacin clara, precisa y
confiable que sea utilizada para la toma de decisiones oportuna y
acertada. La toma de decisiones es una actividad crtica dentro de las
organizaciones y por tal razn es imprescindible contar con herramientas
automatizadas de planificacin que faciliten la consecucin de resultados
efectivos y en tiempos relativamente cortos, de tal manera que a travs
de su eficiente administracin sea posible la toma de decisiones certera
y oportuna, que la conduzcan a alcanzar las metas y objetivos
planteados.
Segn Global Information Technology Report (Informe mundial sobre
tecnologa de la informacin) de 2015 del Foro Econmico Mundial y
punta las naciones en base a cuatro factores sobre su disposicin para
explotar nuevas tecnologas digitales: 1) El entorno empresarial y
legislativo, 2) Infraestructura, asequibilidad y capacidades, 3) Uso por
parte de empresas, particulares y administracin pblica y 4) Impacto
social

econmico.

Donde

en

estos

pases

las

empresas

(publicas/privadas) dan importancia en la tecnologa de Informacin, de


tal manera que a travs de la eficiencia administracin sea posible la

toma de decisiones certera y oportuna, que la conduzcan a alcanzar las


metas y objetivos planteados. Muestra que Singapur ha superado a
Finlandia y se ha convertido en el usuario ms eficaz de tecnologa
digital del mundo, segn el ltimo Foro Econmico Mundial. Sin
embargo, son las naciones europeas las que dominan la parte superior
de la clasificacin, al ocupar siete de las diez primeras posiciones este
ao. Singapur es el nico pas asitico tras la dbil actuacin de Hong
Kong o Corea del Sur.

Tabla #3: Diez principales pases que emplean la tecnologa de


informacin.
El proyecto Global Information Technology Report 2015 del Foro
Econmico Mundial ha reconocido a Chile como el pas latinoamericano
con el ndice ms alto del uso de las tecnologas de la informacin y las
comunicaciones (TIC) en la regin.
Segn informa la pgina web del Foro, Chile ocupa el puesto 38 del
'ranking', que evala la capacidad de 143 pases ante las TIC y el nivel

de su expansin para impulsar el desarrollo social y econmico. Lo


siguen Costa Rica y Panam en los puestos 49 y 51 respectivamente.
En cuanto a las mayores economas de la regin, Colombia se ha
ubicado en el lugar 64 seguido por Mxico en el 69, Brasil en el puesto
84 y Argentina en 91.
Por lo tanto en las instituciones acadmicas como empresas industriales
entre otros, siempre han

presentado dificultades para resolver la

asignacin de horarios. En el 2015 existen investigaciones y casos que


tuvieron xitos ya sea en universidades como en empresas, segn el
informe de la Universidad Politcnica de Valencia (Espaa), menciona a
continuacin de sistemas implementados:
Sistema de asignacin Optimizada en Centros Distribucin
Comercial en Mercadona S.A.(Espaa)
Este proyecto, iniciado en 2001, persigue la satisfaccin total de
las personas que componen el conjunto de la plantilla, para lo que
se han estandarizado diferentes tipos de horarios. Todos ellos
contemplan

una

misma

hora

de

entrada

salida,

independientemente del da de la semana que se trabaje, y un


nmero mximo de horas de trabajo diario y semanal, todo ello en
horario de jornada continuada. Pero adems, los trabajadores
conocen sus horarios con un mes de antelacin, lo que sin duda
les permite planificar y aprovechar al mximo su vida personal.
Sistema OPTIHPER- TURNOS
El sistema OptiHper-TURNOS, como adaptacin del sistema
informtico OPTIHPER, permite la asignacin de turnos (M/T/N)
en servicios 24/365 (polica, bomberos, servicios hospitalarios,
asistenciales, etc.). Puede asignar tambin los destinos del
personal de acuerdo a sus cualificaciones.

Mientras tanto en Per las instituciones tanto pblicas como privadas de


educacin desde nivel primaria, segundaria, pre-universitarias y estudio

superior requieren disear horarios para planificar adecuadamente sus


actividades. En este contexto, la Facultad de Ingeniera de la Escuela
Profesional de Ingeniera de Sistemas de la Universidad Nacional Jos
Mara Arguedas, necesita crear horarios como un elemento bsico para
la adecuada administracin de sus clases, proceso que en la actualidad,
se lo realiza de forma manual. Nunca antes se implementado una
solucin informtica que brinde soporte para esta actividad, por supuesto
esto ha creado ciertos inconvenientes como los que se lista a
continuacin
Tiempo prolongado de entre dos semanas para la creacin de los
horarios
Los horarios generados de esta manera en ocasiones presentan
conflictos con horas.
Al crear los horarios de forma manual se necesita transcribirlos en
una hoja electrnica para su futura publicacin en los murales de
institucin.
No existe alertas cuando hay conflictos como cruce de horas para
un mismo grupo o cuando a un profesor se le asigna ms de una
materia en la misma hora
Uso excesivo de papel
Los problemas mencionados tienen su origen en la falta de un soporte
tecnolgico que facilite y optimice el trabajo realizado, pero que a su vez
permita utilizar todo el conocimiento adquirido por la persona encargada
de la creacin de los horarios durante los aos pasados. Adicional a la
naturaleza humana de la creacin de los horarios la gran cantidad de
informacin que es necesario manipular hace que el proceso sea ms
susceptible de errores.

10

En conclusin la carrera necesita de una herramienta informtica que


ayude y brinde soporte al proceso de creacin de horarios para que los
errores descritos en esta seccin y sus respectivas consecuencias
puedan ser reducidos y se brinde mayor comodidad a todas las
personas involucradas con la institucin que se ven afectadas por este
proceso.
2.2. Formulacin del problema
Existe un sistema de generacin de horarios acadmicos con un
algoritmo gentico para la escuela profesional ingeniera de sistemas
de la Universidad Nacional Jos Mara Arguedas en el ao 2015?

2.3. Objetivos
2.3.1. Objetivo General
Desarrollar un sistema de generacin de horarios acadmicos con
un algoritmo gentico para la escuela profesional ingeniera de
sistemas de la Universidad Nacional Jos Mara Arguedas en el
ao 2015
2.3.2. Objetivos Especficos
a. Implementar un algoritmo gentico para resolver el problema del
horarios con restricciones.
b. Disear y construir un sistema de generacin de horarios
acadmicos con un algoritmo gentico para la escuela profesional
ingeniera de sistemas de la Universidad Nacional Jos Mara
Arguedas en el ao 2015.
c. Probar e implementar un sistema de generacin de horarios
acadmicos con un algoritmo gentico para la escuela profesional
ingeniera de sistemas de la Universidad Nacional Jos Mara
Arguedas en el ao 2015.

11

2.4. Justificacin.
En la Universidad Nacional Jos Mara Arguedas se realiza el proceso
de creacin de horarios acadmicos en cada inicio del ciclo y se toma
un determinado tiempo de una a dos semanas. Los horarios realizados
manualmente estn sujetos a modificaciones debido a la inestabilidad
en la disponibilidad de los profesores. Las modificaciones son
contantes inclusive cuando las clases acadmicas ya iniciaron,
situacin que retrasa a los alumnos y profesores en culminar de
manera ptima los slabos de los cursos.

Por lo tanto, es necesario que la Universidad Nacional Jos Mara


Arguedas, en la facultad de ingeniera de la escuela profesional
ingeniera de sistemas se deba automatizar los procesos de generacin
de horarios mediante un algoritmo gentico, cuyo propsito es
optimizar los cruces en asignaturas y horas, evitando los retrasos en
cumplimiento de los slabos de cada semestre.
El presente proyecto de tesis tecnolgico tiene como objetivo generar
horarios de clases con una mnima de errores y que se ajusta a la
disponibilidad de los profesores de la escuela profesional ingeniera de
sistemas. Para alcanzar el objetivo se propone utilizar un algoritmo
gentico basadas en mtodo heurstico que permite generar horarios
de clases en menor tiempo posible con una ptima distribucin de
horarios acadmicos los alumnos de la EPIS, donde tendrn el
beneficio de que los horarios de clases se encuentren distribuidos con
el objetivo de que un alumno de un mismo ciclo acadmico pueda
llevar todos los cursos especificados en la malla curricular en un solo
turno, de esta manera se disminuyen los tiempos entre clase y clase.
Adems, se contar con una mejor distribucin de exmenes por ciclo
para que la carga acadmica disminuya.

12

2.5. Viabilidad de la investigacin


Se tiene la autorizacin del Presidente de la comisin de gobierno y
del director de la escuela profesional Ingeniera de sistemas para el
levantamiento de la informacin de la Universidad Nacional Jos Mara
Arguedas. Para su desarrollo del proyecto tecnolgico se utilizara un en
plataforma Windows y con lenguaje de programacin de java
(NetBeans IDE 8.0.1), su disponibilidad del software se podr encontrar
en su pgina oficial y para su desarrollo no se requiere de una
computadora de la ltima generacin.
Los beneficiarios tangibles del proyecto de investigacin sern los
alumnos y la Universidad, los beneficios tangibles ser: la optimizacin
del tiempo en generacin horarios, reduccin el trabajo manual y
efectivizar la asignacin de los cursos y salones con un mnimo de
margen de error.
La aplicacin ser bastante amigable con el usuario, en cuanto al
entorno ser capaz de realizar las funciones que solicite el usuario de
manera sencilla.
Se dispone de materia logstica y de equipos para poder desarrollar el
proyecto y para el procesamiento de la informacin.
Con lo anterior, la investigacin demuestra factibilidad ya que se cuenta
con los recursos financieros, materiales y humanos para llevarse a
cabo el proyecto tecnolgico.

13

2.6. Limitacin del estudio


La vital limitacin para las investigaciones es la escasa informacin de
trabajos previos, esto no significa la no existencia, sin embargo, ha sido
difcil encontrar trabajos relacionados con la tcnica no tradicional
llamada algoritmos genticos para problemas de horarios.
Otra limitacin de esta investigacin tecnolgica es no poder realizar
comparaciones por ser un proyecto tecnolgico.

2.7. Marco terico


2.7.1. Definicin de contexto de la creacin de horarios
Optimizacin.
Un proceso que conduce a la solucin ptima de un
problema. Cuando se habla de un problema de optimizacin
se tiene en cuenta tres elementos: a) conjunto de posibles
soluciones o soluciones factibles, b) una estrategia de
bsqueda y c) un criterio para discriminar y determinar cul
de todas las posibles soluciones es la mejor(Enciclopedia de
economa, 2009)
Aula
El aula es el espacio donde se desarrolla el proceso de
enseanza-aprendizaje formal, independientemente del nivel
acadmico o de los conocimientos impartidos en cada uno de
ellos.

14

Sesiones
Corresponde al intervalo de tiempo que puede durar una
clase en la que se imparte los contenidos propios de una
materia o asignatura
Laboratorio.
Un laboratorio es un lugar fsico que se encuentra
especialmente

equipado

con

diversos

instrumentos

elementos de medida o equipo, en orden a satisfacer las


demandas y necesidades de experimentos o investigaciones
diversas
Restricciones.
Una limitacin o una reduccin ya sea natural o impuesta,
segn corresponda.
Materia.
Es el nombre que se le da a la asignatura impartida en un
curso y que forma parte de un programa de estudios.
Horario de clases
Es un cuadro en donde se indica la distribucin de las horas
y das, materias, profesores, paralelos, aulas y laboratorios
para el caso de la UNAJAMA.

15

2.7.2. CONCEPTOS RELACIONADOS A LA PROBLEMTICA


2.7.2.1.

Algoritmo

Segn (Quispe O, R. 2007), cita en su artculo de distintos


autores que definen el algoritmo.

Secuencia finita de instrucciones, reglas o pasos que


describen de forma precisa las operaciones de un
ordenador debe realizar para llevar a cabo un tarea en un
tiempo ms finito. [Donald E. Knuth, 1968]

Un algoritmo es un conjunto finito de pasos definidos,


estructurados en el tiempo y formulados con base a un
conjunto finito de reglas no ambiguas, que proveen un
procedimiento para dar la solucin o indicar la falta de esta
a un problema en un tiempo determinado. [Rodolfo QuispeOtazu, 2004]

Figura #01: Diagrama de un algoritmo.


Fuente: http://www.rodolfoquispe.org/blog/que-es-unalgoritmo.php

16

17

2.7.2.2.

Problemas NP

Segn Ana Nataly Angeles Diaz, 2015 publicado en su


proyecto de tesis PUCP, Son aquellos problemas para los
cuales existe un algoritmo determinstico los cuales pueden
verificar si una solucin es correcta en un tiempo polinomial. La
resolucin de un problema no determinstico consta de dos
fases: Fase de suposicin y fase de verificacin (Alsuwaiyel,
1998).
La fase de suposicin, es aquella en la cual se genera una
respuesta arbitraria encontrada mediante un algoritmo no
determinstico en un nmero de pasos polinomiales. Esta
respuesta puede ser o no una solucin del problema.
La fase de verificacin, es en la cual se verifica mediante un
algoritmo determinstico si la respuesta se encuentra en un
formato apropiado y si la respuesta es una solucin para la
instancia de ese problema.
Algoritmo determinstico
Un algoritmo determinista es un algoritmo que, en
trminos informales, es completamente predictivo si se
conocen sus entradas. Dicho de otra forma, si se
conocen las entradas del algoritmo siempre producir la
misma salida, y la mquina interna pasar por la misma
secuencia de estados (redcientifica, 2015)

18

Algoritmo no determinstico
Un algoritmo no determinista es un algoritmo que con la
misma entrada ofrece muchos posibles resultados. No
se puede saber de antemano cul ser el resultado de
la ejecucin de un algoritmo no determinista.
2.7.2.3.

Problemas de optimizacin

Un problema de optimizacin consiste en minimizar o


maximizar el valor de una variable. En otras palabras se trata
de calcular o determinar el valor mnimo o el valor mximo de
una funcin de una variable. Se debe tener presente que la
variable que se desea minimizar o maximizar debe ser
expresada como funcin de otra de las variables relacionadas
en el problema. En ocasiones es preciso considerar las
restricciones que se tengan en el problema, ya que stas
generan igualdades entre las variables que permiten la
obtencin de la funcin de una variable que se quiere
minimizar o maximizar. Segn el artculo de

Clculo

Diferencial e Integral I por (canek.azc.uam.mx, 2008)


2.7.2.4.

Algoritmos Meta-heursticos

Son mtodos aproximados que se define formalmente como una


estrategia de muy alto nivel para explorar espacios de bsqueda.
Este proceso consiste en una generacin iterativa, la cual tiene
como objetivo encontrar de manera eficiente soluciones ptimas
(Blum y Roli, 2003). Es importante mencionar que la exploracin
del espacio de bsqueda debe ser balanceada entre la
diversificacin y la intensificacin.
Los algoritmos meta-heursticos se pueden clasificar segn las
caractersticas que este presenta. A continuacin se mencionar
los tipos de clasificacin ms importantes (Blum y Roli, 2003):

19

Inspirados en la naturaleza vs lo no inspirados.


Basado en poblaciones vs un solo punto de bsqueda.
Funcin objetivo dinmica vs la esttica.
Una estructura de vecinos vs varias.
Uso de mayor memoria vs a un uso menor.

20

2.7.3. Conceptos de Timetabling y scheduling


2.7.3.1.

Problema Timetablig.

Timetablig en espaol es como un problema de Programacin


horaria, consiste en asignar, de la mejor manera, una serie de
eventos o recursos en periodos de tiempo denominados spots.
Estos eventos se asignarn cumpliendo requisitos obligatorios
o fuertes y se tratar de cumplir requisitos secundarios o
dbiles del problema, para agregar un alto grado de
optimizacin y adaptabilidad a la solucin. Sin embargo es
suficiente cumplir las restricciones ms fuertes para aceptar
una solucin como vlida.
2.7.4. Solucin al problema del Timetabling
2.7.4.1.

Tcnicas tradicionales.

Mtodo que debido a su forma de buscar, se les denomina


mtodos completos, ya que recorren todo el espacio de
bsqueda, es decir, encuentra totas las soluciones posibles a
un determinado problema, sin embargo, estos dependen del
nmero de variables que influyen en el problema, es decir, el
xito de estas dependen directamente del nmero de variables
que intervienen en el problema.
2.7.4.1.1.

Programacin entera

Es un modelo que contiene restricciones y una funcin


objetivo idnticas a las formuladas por planeacin lineal.
La nica diferencia es que una o ms de las variables de
decisin tienen que tomar un valor entero en la solucin
final. (Aoron R., 2012)

21

2.7.4.1.2.

Programacin lineal.

La programacin lineal es una tcnica matemtica


relativamente reciente (siglo XX), que consiste en una serie
de mtodos y procedimientos que permiten resolver
problemas de optimizacin en el mbito, sobre todo, de las
Ciencias Sociales.
Nos centraremos en este tema en aquellos problemas
simples de programacin lineal, los que tienen solamente 2
variables, problemas bidimensionales.
Para sistemas de ms variables, el procedimiento no es tan
sencillo y se resuelven por el llamado mtodo Simplex
(ideado por G.B. Danzig, matemtico estadounidense en
1951).
Los Modelos Matemticos se dividen bsicamente en
Modelos Determinsticos (MD) o Modelos Estocsticos
(ME). En el primer caso (MD) se considera que los
parmetros asociados al modelo son conocidos con certeza
absoluta, a diferencia de los Modelos Estocsticos, donde
la totalidad o un subconjunto de los parmetros tienen una
distribucin

de

probabilidad

asociada.

Los

cursos

introductorios a la Investigacin Operativa generalmente se


enfocan slo en Modelos Determinsticos.

Figura #02: Programacin lineal estructurado.


Fuente:
http://www.programacionlineal.net/programacion_lineal.html

22

23

2.7.4.1.3.

Bactracking

Segn el artculo (Programacionet, 2013) determina que el


Backtracking (o bsqueda atrs) es una tcnica de
programacin para hacer bsqueda sistemtica a travs
de todas las configuraciones posibles dentro de un
espacio de bsqueda. El trmino "backtrack" fue acuado
por primera vez por el matemtico estadounidense D. H.
Lehmer en la dcada de 1950.
Se asemeja a un recorrido en profundidad dentro de un
grafo dirigido. El grafo en cuestin suele ser un rbol, o
por lo menos no contiene ciclos. Sea cual sea su
estructura, existe slo implcitamente. El objetivo del
recorrido es encontrar soluciones para algn problema.
Esto se consigue construyendo soluciones parciales a
medida que progresa el recorrido; estas soluciones
parciales limitan las regiones en las que puede encontrar
una solucin completa. El recorrido tiene xito si,
procediendo de esta forma, se puede definir por completo
una solucin. En este caso el algoritmo puede, o bien
detenerse (si lo nico que se necesita es una solucin del
problema) o bien seguir buscando soluciones alternativas
(si deseamos examinarlas todas). Por otra parte, el
recorrido no tiene xito si en alguna etapa la solucin
parcial construida hasta el momento no se puede
completar. En tal caso, el recorrido vuelve

atrs

exactamente igual que en un recorrido en profundidad,


eliminando sobre la marcha los elementos que se
hubieran aadido en cada fase. Cuando vuelve a un nodo
que tiene uno o ms vecinos sin explorar, prosigue el
recorrido de una solucin.

24

Figura #03: Programacin Backtracking.


FUENTE:
https://commons.wikimedia.org/wiki/File:Branch%26bound_low.jpg
2.7.4.2.

Tcnicas no tradicionales.

De lo contrario de las tcnicas tradicionales, estas no


encuentran todas las soluciones posibles en un problema, es
decir acotan el espacio de bsqueda, por lo mismo caen en la
categora de mtodo incompatibles.

25

2.7.4.2.1.

Redes neuronales

Publicado en un artculo de UNSM por (Carlos B.O, 2001),


menciona que las Redes Neuronales son un campo muy
importante dentro de la Inteligencia Artificial. Inspirndose
en el comportamiento conocido del cerebro humano
(principalmente

el

referido

las

neuronas

y sus

conexiones), trata de crear modelos artificiales que


solucionen problemas difciles de resolver mediante
tcnicas algortmicas convencionales.
Las redes neuronales artificiales se basan en el circuito de
procesamiento de entradas en el cual los pesos son
sumados. Las funciones de peso sern llamadas desde
ahora como atenuadores. En la implementacin, las
entradas a una neurona son pesadas multiplicando el
valor de la entrada por un factor que es menor o igual a
uno. El valor de los factores de peso es determinado por el
algoritmo de aprendizaje.
2.7.4.2.2.

Reconocido simulado

La simulacin del proceso de recocido puede usarse para


describir un proceso de generacin de una sucesin de
soluciones de un problema de optimizacin combinatoria,
en donde se vayan obteniendo, conforme el proceso
avanza, mejores soluciones al mismo. Para este propsito,
se puede observar una analoga entre el sistema fsico y un
problema de optimizacin combinatoria en donde cada
solucin del problema puede verse como un estado del
slido y el valor de la funcin objetivo para la el nivel de
energa del slido. Funciona as:

26

El proceso asigna aulas procesando un grupo a la


vez empezando con el primero.

El proceso contina hasta que todos los grupos son


procesados.

Cuando una solucin es obtenida dividiendo el


problema en conjuntos de horario, una mutacin
especial es generada con grupos traslapados. Esto
podra generar una mala asignacin de aula, para
minimizar esto se utiliza el siguiente paso.

Los grupos son procesados basados en el nmero


de aulas, este nmero de aulas es optimizado y se
termina con las horas de clase con el mnimo de
paquetes a esa hora.

La implementacin del programa genera una base


de datos con la nueva asignacin de salones para el
prximo semestre [Abramson, 1991].

2.7.4.2.3.

Bsqueda Tabu

La bsqueda tab es un mtodo de optimizacin


matemtica, perteneciente a la clase de tcnicas de
bsqueda local. La bsqueda tab aumenta el rendimiento
del mtodo de bsqueda local mediante el uso de
estructuras de memoria: una vez que una potencial
solucin es determinada, se la marca como "tab" de
modo que el algoritmo no vuelva a visitar esa posible
solucin. (Fred. G, 2013)
2.7.4.2.4.

Algoritmo evolutivo

Los algoritmos evolutivos trabajan con una poblacin de


individuos, que representan soluciones candidatas a un
problema.

27

Esta

poblacin

se

somete

ciertas

transformaciones y despus a un proceso de seleccin,


que favorece a los mejores. Cada ciclo de transformacin y
seleccin constituye una generacin, de forma que
despus de cierto nmero de generaciones se espera que
el mejor individuo de la poblacin est cerca de la solucin
buscada. Los algoritmos evolutivos combinan la bsqueda
aleatoria, dada por las transformaciones de la poblacin,
con una bsqueda dirigida dada por la seleccin.
Principales Componentes:
Poblacin de individuos, que son una representacin
(no necesariamente directa) de posibles soluciones.
Procedimiento de seleccin basado en la aptitud de
los individuos para resolver el problema.

Figura #07: El esquema general de un algoritmo evolutivo


Fuente: http://jarroba.com/wp-content/uploads/2013/05/Es
quema-general-de-un-AE-jarroba.com_.png

28

2.7.4.2.4.1.

Estrategias evolutivos

Las

estrategias

evolutivas

son

mtodos

computacionales que trabajan con una poblacin de


individuos que pertenecen al dominio.
Cada individuo de la poblacin es un posible ptimo
de la funcin objetivo; la representacin de cada
individuo de la poblacin consta de 2 tipos de
variables:

las

variables

objeto

y las variables

estratgicas. Las variables objeto son los posibles


valores que hacen que la funcin objetivo alcance el
ptimo global y las variables estratgicas son los
parmetros mediante los que se gobierna el proceso
evolutivo

o,

en

otras

palabras,

las

variables

estratgicas indican de qu manera las variables


objeto son afectadas por la mutacin.
2.7.4.2.4.2.

Programacin gentica

La programacin evolutiva (PE) es una rama de


la computacin evolutiva. La programacin evolutiva
es prcticamente una variacin de los algoritmos
genticos, donde lo que cambia es la representacin
de los individuos. En el caso de la PE los individuos
son ternas (tripletas)

cuyos

valores

representan

estados de un autmata finito. Cada terna est


formada por:

29

El valor del estado actual;

un smbolo del alfabeto utilizado;

el valor del nuevo estado.

Estos valores se utilizan, como en un autmata finito,


de la siguiente manera: Teniendo el valor del estado
actual en el que nos encontramos, tomamos el valor
del smbolo actual y si es el smbolo de nuestra terna,
nos debemos mover al nuevo estado.
2.7.4.2.4.3.

Algoritmo gentico

Los Algoritmos Genticos (AGs) son mtodos adaptativos


que pueden usarse para resolver problemas de bsqueda y
optimizacin. Estn basados en el proceso gentico de los
organismos vivos. A lo largo de las generaciones, las
poblaciones evolucionan en la naturaleza de acorde con los
principios de la seleccin natural y la supervivencia de los
ms fuertes, postulados por Darwin (1859).
Por imitacin de este proceso, los Algoritmos Genticos
son capaces de ir creando soluciones para problemas del
mundo real. La evolucin de dichas soluciones hacia
valores ptimos del problema depende en buena medida
de una adecuada codificacin de las mismas.

30

Figura #04: clasificacin de tcnicas de bsqueda fuente:


Tesis asignacin de horarios con algoritmo evolutivo en la
Universidad del Norte
2.7.5. INTELIGENCIA ARTIFICIAL
2.7.5.1.

31

Tcnicas de inteligencia artificial

2.7.5.1.1.

Sistemas expertos.

2.7.5.1.2.

Redes neuronales.

2.7.5.1.3.

Algoritmo gentico.

2.7.5.1.4.

Lgica difusa

2.7.6. Herramientas utilizadas en el desarrollo de software


2.7.6.1.

Java

Segn la pgina oficial de Java (2015), es un lenguaje de


programacin y una plataforma informtica comercializada por
primera vez en 1995 por Sun Microsystems. Hay muchas
aplicaciones y sitios web que no funcionarn a menos que
tenga Java instalado y cada da se crean ms. Java es rpido,
seguro y fiable. Desde porttiles hasta centros de datos, desde
consolas para juegos hasta sper computadoras, desde
telfonos mviles hasta Internet, Java est en todas partes.
Una de las principales caractersticas por las que Java se ha
hecho muy famoso es que es un lenguaje independiente de la
plataforma. Eso quiere decir que si hacemos un programa en
Java podr funcionar en cualquier ordenador del mercado. Es
una ventaja significativa para los desarrolladores de software,
pues antes tenan que hacer un programa para cada sistema
operativo, por ejemplo Windows, Linux, Apple, etc. Esto lo
consigue porque se ha creado una Mquina de Java para cada
sistema que hace de puente entre el sistema operativo y el
programa de Java y posibilita que este ltimo se entienda
perfectamente.
La independencia de plataforma es una de las razones por las
que Java es interesante para Internet, ya que muchas
personas deben tener acceso con ordenadores distintos. Pero
no se queda ah, Java est desarrollndose incluso para
distintos tipos de dispositivos adems del ordenador como
mviles, agendas y en general para cualquier cosa que se le
ocurra a la industria.

32

Pasado y presente
Java fue pensado originalmente para utilizarse en cualquier
tipo de electrodomstico pero la idea fracas. Uno de los
fundadores de Sun rescat la idea para utilizarla en el
mbito de Internet y convirtieron a Java en un lenguaje
potente, seguro y universal gracias a que lo puede utilizar
todo el mundo y es gratuito. Una de los primeros triunfos de
Java fue que se integr en el navegador Netscape y
permita ejecutar programas dentro de una pgina web,
hasta entonces impensable con el HTML.
Actualmente Java se utiliza en un amplio abanico de
posibilidades y casi cualquier cosa que se puede hacer en
cualquier lenguaje se puede hacer tambin en Java y
muchas veces con grandes ventajas. Para lo que nos
interesa a nosotros, con Java podemos programar pginas
web dinmicas, con accesos a bases de datos, utilizando
XML, con cualquier tipo de conexin de red entre cualquier
sistema. En general, cualquier aplicacin que deseemos
hacer con acceso a travs web se puede hacer utilizando
Java.
2.7.6.2.

Hibernate

Segn (Bauer, 2013), que Hibernate es una herramienta de


Mapeo objeto-relacional (ORM) para la plataforma Java (y
disponible tambin para .Net con el nombre de NHibernate)
que facilita el mapeo de atributos entre una base de datos
relacional tradicional y el modelo de objetos de una
aplicacin,

mediante

archivos

declarativos

(XML)

anotaciones en los beans de las entidades que permiten


establecer estas relaciones. Hibernate es software libre,
distribuido bajo los trminos de la licencia GNU LGPL.

33

En otras palabras, Hibernate es un Framework que agiliza


la relacin entre la aplicacin y la base de datos. Para
poder aprender a utilizarlo es necesario contar con los
conocimientos bsicos de base de datos y SQL as como
manejar el lenguaje Java.
Hibernate busca solucionar el problema de la diferencia
entre los dos modelos de datos coexistentes en una
aplicacin, el usado en la memoria de la computadora que
es el orientado a objetos y el usado en las bases de datos
(modelo

relacional).

Para

lograr

esto

permite

al

desarrollador detallar cmo es su modelo de datos, qu


relaciones

existen

qu

forma

tienen.

Con

esta

informacin.

Figura #07: Arquitectura de Hibernate


FUENTE: www.emmersonmiranda.blogspot.com

34

2.7.6.3.

Netbeans

Segn la pgina oficial de (NetBeans, 2015), es un proyecto


exitoso de cdigo abierto con una gran base de usuarios, una
comunidad en constante crecimiento. Sun MicroSystems fund
el proyecto de cdigo abierto NetBeans en junio 2000 y
contina siendo el patrocinador principal de los proyectos.
Existen dos productos el NetBeans IDE y NetBeans Platform.
NetBeans IDE
Es un entorno de desarrollo - una herramienta para que
los programadores puedan escribir, compilar, depurar y
ejecutar programas. Est escrito en Java - pero puede
servir para cualquier otro lenguaje de programacin.
Existe adems un nmero importante de mdulos para
extender el NetBeans IDE. NetBeans IDE es un
producto libre y gratuito sin restricciones de uso.
NetBeans Platform.
Una base modular y extensible usada como estructura
de integracin para crear grandes aplicaciones de
escritorio.

Empresas

independientes

asociadas,

especializadas en desarrollo de software, proporcionan


extensiones adicionales que se integran fcilmente en la
plataforma y que pueden tambin utilizarse para
desarrollar sus propias herramientas y soluciones.

Ambos productos son de cdigo abierto y gratuito para


uso tanto comercial como no comercial. El cdigo fuente
est disponible para su reutilizacin de acuerdo con la
Common Development and Distribution License ( CDDL)
v1.0 and the GNU General Public License (GPL) v2.

35

La plataforma NetBeans permite que las aplicaciones


sean

desarrolladas

partir

de

un

conjunto

de

componentes de software llamados mdulos. Un mdulo


es un archivo Java que contiene clases de java escritas
para interactuar con las APIs de NetBeans y un archivo
especial (manifest file) que lo identifica como mdulo.
Las aplicaciones construidas a partir de mdulos
pueden ser extendidas agregndole nuevos mdulos.
Debido a que los mdulos pueden ser desarrollados
independientemente, las aplicaciones basadas en la
plataforma NetBeans pueden ser extendidas fcilmente
por otros desarrolladores de software.
2.7.6.4.

Base de datos
Pinto (2011) especfica a una base de datos como un
conjunto o depsito de datos estructurados que se
encuentran

almacenados

en

memoria

no

voltil,

organizados independientemente de su utilizacin y su


implementacin se encuentra en mquinas accesibles en
tiempo real que pueden ser manipuladas por un conjunto
de aplicaciones y usuarios.
Ventajas de la base de datos:
Evita la redundancia, la inconsistencia y los problemas
de integridad de los datos.
Mejora en la disponibilidad de los datos.
Permite la administracin de la seguridad de los datos,
tanto en acceso como en operaciones.
Independencia de los datos y el tratamiento.
Menos costo de mantenimiento, puesto que el cambio
de datos no implica el cambio en el programa o
viceversa.

36

Figura #08: Arquitectura de sistema de una base de datos (2015)


Fuente: http://nethumans.com/solutions/development/Database.aspx
A continuacin se listan los diferentes gestores de base de
datos que existen en el mercado:
Access
Oracle
MySQL
SQL Server
PostgreSQL
Dentro de las aplicaciones antes mencionadas se ha
seleccionado a MySQL como base de datos para
almacenar todos los datos necesarios para los horarios
solucin de la presente tesis.

37

2.7.6.5.

Mysql

Segn pgina oficial de (Oracle, 2015), determina que MySQL es


el servidor de bases de datos relacionales ms popular,
desarrollado y proporcionado por MySQL AB. MySQL AB es una
empresa cuyo negocio consiste en proporcionar servicios en torno
al servidor de bases de datos MySQL.
MySQL es un sistema de administracin de bases de datos
Una base de datos es una coleccin estructurada de datos. Los
informacin que puede almacenar una base de datos puede ser
tan simple como la de una agenda, un contador, o un libro de
visitas, tan vasta como la de una tienda en lnea, un sistema de
noticias, un portal, o la informacin generada en una red
corporativa. Para agregar, accesar, y procesar los datos
almacenados en una base de datos, se necesita un sistema de
administracin

de

bases

de

datos,

tal

como

MySQL.

MySQL es un sistema de administracin de bases de datos


relacionales
Una base de datos relacional almacena los datos en tablas
separadas en lugar de poner todos los datos en un solo lugar.
Esto agrega velocidad y flexibilidad. Las tablas son enlazadas al
definir relaciones que hacen posible combinar datos de varias
tablas cuando se necesitan consultar datos. La parte SQL de
"MySQL" significa "Lenguaje Estructurado de Consulta", y es el
lenguaje ms usado y estandarizado para acceso a bases de
datos relacionales.

38

Por qu usar MySQL?


El servidor de bases de datos MySQL es muy rpido, seguro, y
fcil de usar. Si eso es lo que se est buscando, se le debe dar
una oportunidad a MySQL. Se pueden encontrar comparaciones
de desempeo con algunos otros manejadores de bases de datos
en la pgina de MySQL.
El servidor MySQL fue desarrollado originalmente para manejar
grandes bases de datos mucho ms rpido que las soluciones
existentes y ha estado siendo usado exitosamente en ambientes
de produccin sumamente exigentes por varios aos. Aunque se
encuentra en desarrollo constante, el servidor MySQL ofrece hoy
un conjunto rico y til de funciones. Su conectividad, velocidad, y
seguridad hacen de MySQL un servidor bastante apropiado para
acceder a bases de datos en Internet

2.8. Estado del arte


2.8.1. Tcnicas existentes para la resolucin del problema
La ASAP (Automated scheduling, optimization and planing group) es
otro organismo cuyo fin principal es conducir investigacin en
modelos, heursticas y algoritmos para la produccin automtica de
soluciones de alta calidad a una gran variedad de problemas de
planeacin y optimizacin del mundo real, incluyendo elaboracin de
horarios, logstica, asignacin de espacio y mantenimiento de
inventarios.
2.8.1.1.

Tcnicas secuenciales basadas en grafos

Los problemas de horarios pueden ser modelados como los


problemas de coloracin de grafos. Este problema consiste en

39

representar a los eventos como los vrtices y las restricciones


fuertes como las aristas en grafo no dirigido. El objetivo del
problema de los grafos es poder colorear todos los vrtices pero
con la restriccin que los vrtices adyacentes no tengan el mismo
color, esto se puede hacer de manera anloga en el problema del
horario, con los vrtices como eventos y los colores que se deben
pintar en cada vrtice reflejan un intervalo de tiempo particular, y
las aristas entre los vrtices reflejan el problema de la asignacin
de diferentes intervalos de tiempo que se le asigna a los eventos.
Como al modelar el problema no se toman en cuenta las
restricciones suaves es necesario que estas sean consideradas
aparte, ya que esas restricciones determinan la calidad de la
solucin (Qu.R, Burke.E,.. ,2006).
El mtodo de coloreado de grafos aplicado en los problemas de
horario es un mtodo de construccin que ordena los eventos y se
van asignando uno por uno, bajo el criterio de la dificultad que
tengan al momento de realizar un horario. Debido a que la fase de
ordenamiento es muy importante, a lo largo de la literatura existen
diversos investigadores que han tratado de buscar mejores
estrategias de ordenamiento. En el 2004, Burke y Newall
investigaron una nueva manera de realizar el proceso de
ordenamiento dinmicamente (por cada iteracin al hallar la
solucin del problema el ordenamiento se iba adaptando). La
actualizacin de cada iteracin se lograba gracias a la experiencia
obtenida en el proceso anterior dependiendo de la dificultad de
asignacin, de esta manera iba aprendiendo iterativamente.
Adems cabe recalcar que de esta manera ya no es necesario
hallar un ordenamiento inicial.
Se puedo observar otras aplicaciones de este mtodo en
(Asumini, 2004) donde adems aplican funciones de lgica difusa
para evaluar apropiadamente ordenamiento encontrado.

40

2.8.1.2.

Tcnicas basadas en restricciones

Estas soluciones estn basadas en las tcnicas de programacin


de lgica de restricciones. Para el caso de los problemas de
horarios se modela a un evento como una variable con dominios
finitos, los valores de los intervalos de tiempo y salas se asignan
secuencialmente para ir creando la solucin. Adems se utiliza el
backtraking, volver a travs de los pasos, ya que cuando la
asignacin va avanzando y llega a un punto donde es imposible
darle un valor a una variable se necesita volver al ltimo estado
donde se tena otra posibilidad de eleccin, de esta manera va a ir
formando

otra

solucin

posible.

Este

tipo

de

mtodos

generalmente tienen un costo computacionalmente elevado ya


que el tiempo de ejecucin aumenta exponencialmente con
respecto al nmero de variables. Esta tcnica por lo general no
arroja buenas soluciones comparado con las otras soluciones
existentes cuando el problema de optimizacin es complejo.
En el 2003 Merlo, utilizo la programacin basadas en restricciones
para producir soluciones iniciales. Luego, esta sirvi como entrada
para mejorar las soluciones en otros mtodos como los algoritmos
de recocido simulado y escalando la montaa. Se aplic para
generar un horario de exmenes ordenndolos primero segn el
tamao de intervalo de tiempo que tena y luego se iba asignando
uno por uno para formar una solucin. Este hbrido fue probado
en la universidad de Melbourne.
Algo muy parecido fue utilizado por Duong y Lam en el 2004,
quien emple la programacin basada en restricciones para crear
una solucin inicial y luego lo aplico en su algoritmo de recocido
simulado. Adems emple el backtraking para disminuir el
esfuerzo de bsqueda. Este fue utilizado para solucionar el
problema en la universidad tecnolgica HoChiMinh.

41

2.8.1.3.

Tcnicas basadas en bsquedas locales

Las bsquedas locales son aquellas que resuelven un problema


realizando una bsqueda en su propio vecindario. El vecindario es
creado a partir de la modificacin mediante diversos operadores
de una solucin inicial, de esta manera se obtiene un espacio de
bsqueda. Esta bsqueda posee una funcin objetivo para
determinar qu solucin es mejor para la generacin de horarios.
Dependiendo de los parmetros y las caractersticas del espacio
de bsqueda se puede determinar el rendimiento y eficiencia del
uso de este tipo de tcnica. A continuacin se presentara dos
tcnicas muy nombradas en la literatura:
Bsqueda tab
Este algoritmo consiste en la revisin de un espacio de
bsqueda pero tomando en cuenta de que no visita el
mismo punto dos veces ya que este algoritmo posee una
lista llamada lista tab en la cual se conservan los ltimos
movimientos realizados. Ellos pueden determinar que se
encontr una mejor solucin en base a una estrategia de
aspiracin. Si es que no se encontr una solucin
revisando todo su optimo local entonces puede saltar la
bsqueda a otros vecindarios, si estos vecindarios no
otorgan buenas soluciones este puede conservar la
solucin de su optimo local.
En el 2001 Di Gaspero y Schearf aplicaron este algoritmo
con la particularidad de que su vecindario de soluciones
estaba conformado por soluciones que violaban algunas
restricciones fuertes y dbiles del problema, por lo tanto se
dedicaron

estudiar

una

estrategia

de

seleccin

exhaustiva. Adems, utilizaron una lista tab dinmica y


adaptaban la funcin de coste mientras que se realizaba la
bsqueda. Este enfoque se aplic en otros problemas y

42

tuvo un resultado similar comparado con la utilizacin de


otros algoritmos como mimticos.
Recocido simulado
Este mtodo es basado en la analoga del simulado de
recocido de los metales. El trmino de recocido se refiere a
un proceso fsico en el que un slido es calentado mediante
temperaturas altas para que este pase a una fase liquida y
luego sea enfriado lentamente mediante la disminucin de
la temperatura. De esta manera se dice que las partculas
enfriadas poseen menos energa.
En los problemas de optimizacin combinatoria esa
fluctuacin de energa aleatoria en el sistema se utiliza para
escapar del mnimo local hacia el mnimo global. Si se hace
analoga con el problema de timetabling, los estados del
sistema vendran a ser las soluciones factibles, la energa
seria la funcin de coste, la temperatura vendran a ser el
parmetro de control y el estado congelado la solucin
heurstica del problema.
2.8.1.4.

Tcnicas basadas en algoritmos de poblacin


Son algoritmos metaheursticos que se basan en el
comportamiento natural. Son comnmente usados para
ayudar

combinatorio

resolver
como

los
el

problemas
problema

de

de

optimizacin

timetabling.

continuacin se presentar alguno de estos:


Algoritmo gentico
Esta tcnica consiste bsicamente en tener una solucin
inicial representada en un cromosoma e ir evaluando este
cromosoma mediante los operadores de mutacin y cruce
para que en la evolucin se mejore la solucin. Este
mtodo es comn mente usado en la resolucin de muchos
problemas de timetabling y existen diversas investigaciones
en este tema (Qu.R, Burke.E,.. ,2006). En el 2002 Wong,

43

Cote y Gely utilizaron este mtodo para resolver un


problema de generacin de horarios de exmenes, este fue
modelado para satisfacer las restricciones del problema.
Adems se realiz un torneo de seleccin para escoger a
los padres y las estrategias de mutacin para mejorar la
produccin de mejores candidatos.
Algoritmo memeticos
Este tipo de mtodos combina la habilidad de la
exploracin de bsqueda de los algoritmos evolutivos con
los mtodos de bsquedas. Esta tcnica presenta buenas
soluciones pero toma un alto tiempo computacional.
Los algoritmos Memeticos han sido aplicados a diferentes
problemas de timetabling. En el 2008 se public A
Memetic Algorithm for the University Course Timetabling
Problem por Sadaf.N y Yang.S, en el cual se presenta una
la solucin al problema UCTP. Para ello se mezclaron dos
tcnicas de bsqueda local dentro de un algoritmo
gentico.
Algoritmo colonia de hormigas
Esta tcnica simula la bsqueda de los caminos ms cortos
que usan las hormigas cuando van a buscar su comida.
Estas se guan dependiendo de la intensidad del olor de las
feromonas que dejan en los caminos, en el ms corto se
intensifica el olor. De 25 Este tipo de algoritmos no son
comnmente usado en los problemas de timetabling pero
en el 2004 Naji Azimi utiliza este algoritmo para resolver el
problema de generacin de horarios de exmenes.

2.8.1.5.

Sistemas que actualmente existen

2.8.1.5.1.

Bunge
Control de acceso a las distintas plantas del grupo
(Puerto Gral. San Martn, Ramallo Tancacha, San

44

Jernimo y oficinas en C.A.B.A., donde se controla el


ingreso de empleados, empresas contratistas y visitas.
Integrado con el sistema GestHor, se controla el
presentimos de los empleados y las horas realizadas
por cada una de las empresas contratistas, este sistema
de gestin de tiempos y horarios del personal, en el ao
2015 fue implementado en las siguientes empresas.
Grupo Techint (FINMA S.A.I.F.).
Hospital Italiano (de Buenos Aires Argentina).
Terminales Portuarias Rio de la Plata.
Autopista del Sol.
Peaflor.
2.8.1.5.2.

UTTS ( University timetabling scheduler)

En el 2000 Lim desarrollo un sistema para la generacin de


horarios de clase y de exmenes para todas las facultades
de la universidad nacional de Singapur (UTTS). Este
desarrollo bsicamente se dividi en dos porciones uno que
era la generacin de clase y la otra de examen
(UTTSExam).
El sistema se encuentra desarrollado en lenguaje java,
usando Visual Age para java y Microsoft Access para la
base de datos. El sistema est diseado en tres niveles
que es muy comn cuando se desarrolla una aplicacin
cliente/ servidor. Estas tres capas son la vista donde se
pueda apreciar la interfaz del software con todos sus
componentes, la aplicacin donde se encuentra la lgica y
la persistencia.
Para la elaboracin eficiente de horarios el sistema utiliza
un algoritmo gentico combinado con bsqueda tab para
mejorar la solucin. En la Figura 2.4 se puede observar una
vista del software para la generacin de horarios.

45

Figura #05: Pantalla del generador de horarios. Imagen recuperada


de (Lim.A, Ang.J, Ho.W y Oon.W ,2002).

2.9. Ingeniera del proyecto


2.9.1. Requerimientos de hardware para el funcionamiento del sistema

Los requerimientos mnimos para la instalacin y ejecucin del


sistema de generacin de horarios son los siguientes:
a) En el Sistema Operativo Windows:
Procesador: Intel Pentium IV
Memoria: 512 MB
Espacio en disco: 1G de espacio libre en el disco

Las versiones del sistema operativo pueden ser desde Microsoft


Windows 7, 8 preferiblemente la versin Profesional.

46

REFERENCIAS BIBLIOGRFICAS
Enciclopedia de economa,
2009, cita en el artculo la gran enciclopedia econmica sobre
la Optimizacin, fuente: http://www.economia48.com/spa/d/optimi
zacion/optimizacion.htm

Quispe-Otazu, R.
2007, cita en su artculo Algoritmo y Programacin fuente:
http://www.rodolfoquispe.org/blog/que-es-un-algoritmo.php

Ana Nataly Angeles Diaz,


2015, Problemas NP publicado en su proyecto de tesis PUCP.

BLUM, Christian y Roli, Andrea


2003,
Meta-heursticas
de
optimizacin
combinatoria:
Descripcin y comparacin conceptual. ACM Computing
Surveys. New York. Vol 35 Issue 3.
Mauricio G. C & Edwin P. Q,
2013, en revista vnculos sobre Timetabling School problem and
genetic algorithms: Fuente: http://revistavinculos.udistrital.edu.co
/files/2013/09/Problema-del-School-Timetabling-y-algoritmos-genetic
os.pdf
Aoron R,
2012, investigacin operativa, fuente: http://invope2arl.blogspot.
com/2012/04/programacion-entera_09.html

Abramson, 1991] Abramson, D. La construccin de los horarios escolares


Uso de recocido simulado: Secuencial y algoritmos paralelas,
Management Science, PWS Publishing,Boston, 1998.
Fred glover & belen Melian inteligencia artificial, revista iberoamericana de
inteligencia artificial. N19(2003) pp. 29-48 issn: 1137-3601.
(www.aepia.org/revista). http://www.redalyc.org/articulo.oa?id=925
71902

47

La ASAP (Automated scheduling, optimization and planing group):


Programacin automatizada, la optimizacin y el grupo de cepillado

Asumi, Hishammuddin, BURKE, Edmund, GARIBALDI, J y MCCOLLUM.B


2004 Varios criterios de ordenamiento Fuzzy para horarios
examen. La quinta Conferencia Internacional sobre la prctica y
la teora del Automatizado de Horarios. Springer Lecture Notes in
Computer Science,vol. 3616.

Burke, Edmund y NEWALL, Jim


2004 Solucin de problemas de horarios de examen a travs
de la adaptacin de los ordenamientos heursticos. Annals of
Operational Research.Netherlands, vol 129.

Merlot, Liam, BOLAND, Natasha, HUGHES, Barry y STUCKEY, Peter


2003 Un algoritmo hbrido para el problema de horarios
examen. La prctica y la teora del Automatizado de Horarios: de
la cuarta Conferencia Internacional. Springer Lecture Notes in
Computer Science, vol. 2740

DI Gaspero, Luca y SCHAERF, Andrea


2001 Tcnicas de bsqueda tab para los horarios de
examen. La prctica y la teora del Automatizado de Horarios. la
tercera Conferencia Internacional. Springer Lecture Notes in
Computer Science, vol. 2079.

Qu, Rong, Burke, Edmund, MCCOLLUM, Barry, LIAM Merlot y LEE, Sau
2006 Una encuesta de las metodologas de bsqueda y
Enfoques automatizados para los horarios de examen ".
Informe Tcnico Ciencias de la Computacin NOTTCS-TR-20064.UK, vol 12, Isuue 1

48

Wong, T, COTE, P y GELY, P


2002 Final de los horarios de examen: un enfoque prctico ".
IEEE

Conferencia

Canadiense

de

Ingeniera

Elctrica

Computacin. Vol. 2.

Azimi, Naji
2004 Comparacin de los algoritmos meta-heursticas para el
problema de horarios de examen ". Matemticas Aplicadas y
Computacin, Vol.16.

Gesthor Bunge
2015, Gestin de tiempos y horarios del personal: fuente:
http://www.hdasoft.com/gesthor.html

Lim, Andrew, ANG, Juay-Chin, HO, Wee-Kit y OON, Wee-Chong


2002

UTTSExam:

Timetabling

System.

Intelligence.

Singapore.

Campus-Wide
American

University

Association

for

ExamArtificial

https://www.aaai.org/Papers/AAAI/2

002/AAAI02-125.pdf

King, G., Bauer, C., Bernard, E., & Steve, E. (15 de Septiembre de 2010).
Hibrnate. Recuperado el 2015 de Agosto de 2015, de
http://docs.jboss.org/hibernate/core/3.5/reference/esES/html_single/

Pinto, M. (13 de Abril de 2011). Base de datos. Recuperado el 20 de Agosto de


2015, de http://www.mariapinto.es/e-coms/bases_datos.htm

49

50

Вам также может понравиться