You are on page 1of 19

CAPITULO 2.

ANÁLISIS, DISEÑO E IMPLEMENTACIÓN

2.1. Introducción.

En este capítulo se describe el análisis, diseño e implementación del módulo

orientado a dar solución a la tarea planteada referente a la planificación de los

horarios de los trenes en una línea ferroviaria. Para ello se comienza con la

estructura de la base de datos asociada, se describe el problema de

planificación de trenes y luego la modelación matemática y el método de

solución de dicho modelo.

Los datos que se necesitan controlar a través de entidades y sus relaciones

desde un inicio son: trenes, estaciones, líneas, horarios (scheduling).

2.2. Trenes:

IDTren – Identificador de cada tren, el tipo de dato que almacena es char, con

una longitud de 25.

NombreTren - Nombre de cada tren, el tipo de dato que almacena es char, con

una longitud de 50.

Línea – Identificador de cada línea, el tipo de dato que almacena es char, con

una longitud de 25.

VelocidadMin – Velocidad mínima de cada tren, el tipo de dato que almacena es

real, con una longitud de 16.

51
VelocidadMax – Velocidad máxima de cada tren, el tipo de dato que almacena

es real, con una longitud de 16.

IDEstacionOrigen: Estación de donde parte cada tren, el tipo de dato que

almacena es char, con una longitud de 50.

IDEstacionDestino: Estación a donde arriba cada tren, el tipo de dato que

almacena es char, con una longitud de 50.

El campo llave es IDTren, Línea.

2.2.1. Estaciones:

IDEstación: Identificador de cada estación, el tipo de dato que almacena es

char, con una longitud de 25.

EstaciónNombre: Nombre de cada estación, el tipo de dato que almacena es

char, con una longitud de 50.

TipoDeEstación: Clasificación de cada estación en dependencia de los

servicios que oferta, el tipo de dato que almacena es entero, con una longitud

de 10.

NumeroDePasajeros: Cantidad de pasajeros por cada estación, el tipo de dato

que almacena es entero largo, con una longitud de 50.

El campo llave es IDEstación, TipoDeEstación.

2.2.2. Líneas:

IDLínea: Identificador de cada línea, el tipo de dato que almacena es char, con

una longitud de 10.

52
NombreLinea: Nombre de cada línea, el tipo de dato que almacena es char, con

una longitud de 50.

El campo llave es IDLínea.

2.2.3. Tipo de Estación:

TipoEstacion: Clasificación de cada estación en dependencia de los servicios

que oferta, el tipo de dato que almacena es entero, con una longitud de 10.

DescripcionDeEstacion: Se describe brevemente cada estación, el tipo de dato

que almacena es char, con una longitud de 50.

El campo llave es TipoEstación.

2.2.3. Horarios:

IDTren – Identificador de cada tren, el tipo de dato que almacena es char, con

una longitud de 25.

IDEstación: Identificador de cada estación, el tipo de dato que almacena es

char, con una longitud de 25.

TiempoLlegada: Tiempo en que arriba cada tren a una estación determinada, el

tipo de dato que almacena es char, con una longitud de 50.

TiempoSalida: Tiempo en que parte cada tren a una estación determinada, el

tipo de dato que almacena es char, con una longitud de 50.

Los campos llaves son IDTren, IDEstación.

53
Todas las relaciones se encuentran en tercera forma normal, son consistentes

para la actualización entendida, esta como operaciones de alta, baja, y

modificación de datos existentes en la base de datos.

El modelo que describe las tablas y relaciones, también conocido como

diagrama de entidad relación, para el problema que se trata en este trabajo es

el que aparece en la figura siguiente:

Figura 5. Tablas y relaciones en MS Access para mostrar el diagrama entidad-

relación

Como se puede apreciar existen 5 tablas con relaciones entre las que se

observan: Línea-Tren, Estación-TipoDeEstación, Tren-TrenHorario, Estación-

TrenHorario. Es importante destacar que la tabla TrenHorario se llena a partir de

datos generados por el método de solución al modelo matemático, estos últimos

aspectos se tratan posteriormente en este capítulo.

2.3. Operaciones con SQL:

El lenguaje de consulta estructurado SQL (Structured Query Language) permite

crear consultas para manipular bases de datos, lo que lo convierte en un

Standard para el desarrollo de aplicaciones cliente – servidor.

54
El lenguaje SQL está compuesto por comandos, operadores y funciones de

agregado. Estos elementos se combinan en las instrucciones para crear,

actualizar y manipular los datos de las bases de datos.

Select: Este es el comando más usado en SQL. Se emplea para extraer

información de una base de datos siguiendo un criterio y su sintaxis es:

SELECT (columnas) FROM Nombre_de_tabla where Criterio

Las columnas representan los campos que se desean extraer

Nombre_de_tabla, es de la que se desea extraer la información.

Criterio, es la condición que debe cumplir un record para que se pueda realizar

la operación.

INSERT: Este comando es el usado para insertar records a la base de datos.

Su sintaxis es la que se relaciona a continuación:

INSERT INTO Nombre_de_tabla (Columnas) VALUES (Valores)

Values, esta función permite asignarle valores a los registros que se desee.

DELETE: Esta instrucción es utilizada para eliminar registros de una tabla de

una base de datos, y su sintaxis es:

DELETE FROM Nombre_de_tabla where Criterio

UPDATE: Es utilizado para modificar los valores de los campos y registros

especificados. Su sintaxis se emplea de la siguiente manera:

UPDATE Nombre_de_tabla SET columna='valor')

Valor: Este valor va entre comillas si y solo si es un valor numérico.

55
Una aclaración que resulta interesante en este contexto por la gran utilización

que tiene en las consultas SQL, es en cuanto se refiriere a las cláusulas FROM

y WHERE.

FROM: Utilizada para especificar la tabla de la cual se van a seleccionar los

registros.

WHERE: Utilizada para especificar las condiciones que deben reunir los

registros que se van a seleccionar.

2.4. Problema de Optimización de la Planificación de Horarios de Trenes.

En la optimización de la programación de horarios de trenes se relacionan

todos los componentes existentes en la red de trasporte tales como las zonas,

embarques y la asignación de embarques por zona. Elementos que brindan al

sistema de optimización todos los recursos imprescindibles para que este se

realice con eficiencia.

Como efecto de la optimización de la programación de horarios de trenes se

obtienen resultados en correspondencia de la solución deseada, para los

trenes nos brinda la estación de origen y destino, las rutas, los cronometrajes

de los trenes y la frecuencia. También se obtiene la asignación de trenes por

zona que no va a ser más que los caminos posibles por zona para cada día de

la semana, y nos brinda el plan de viaje del tren (camino del tren para cada

embarque).

Elementos de entrada y salida en la distribución de trenes:

La optimización para la distribución de trenes tiene elementos de entrada y

salida los cuales se mencionan a continuación.

56
Elementos de entrada:

Dentro de los elementos de entrada al proceso se definen los elementos

correspondientes a la red que no van a ser más que los nodos, líneas,

estaciones, subestaciones, líneas auxiliares y conexiones.

Otro elemento de entrada de suma importancia es la definición de políticas. Se

citan algunas de las políticas que se han tenido en cuenta: Preferencias de las

rutas del tren, tiempo entre conexiones, paradas reglamentadas del tren así

como la asignación del tren por zona.

No menos importante resulta la planificación actual del tren, pues se debe

conocer elementos como las rutas asignadas al tren, los tiempos de llegada,

salida y las frecuencias. Las zonas por las que circula, y por ultimo el plan de

viaje.

Elementos de salida: Estos elementos brindan la posibilidad real de conocer los

informes del tren, las zonas, las líneas y los nodos.

 Informe del tren: se obtiene el estado técnico del tren y sus rutas.

 Informe de las zonas: facilita el conocimiento de la zona asignada a cada

tren, los cambios efectuados en las rutas de la zona y los trenes disponibles

en la zona.

 Informe de líneas y nodos: Brinda el origen, la terminación y los lugares por

donde pasa el tren. Los embarques entre nodos, el flujo de trenes en las

líneas, y los cambios de vías en las líneas.

57
Parámetros esenciales del scheduling para trenes

Para el modelo de optimización se deben tener en cuenta los siguientes

parámetros:

Variables de decisión: Algunas de las variables de decisión definidas para el

modelo son, el tren y sus posibles rutas, los trenes que se encuentran próximos

a una conexión, la asignación por zona del tren para cada día de la semana, los

fallos en las líneas, los trenes con retrasos planificados, trenes que se

encuentren en las vías auxiliares así como los respectivos horarios de cada uno

de ellos.

2.4.1. La función objetivo.

En este trabajo se ha propuesto resolver los tiempos de espera prolongados y

reducir los tiempos de espera para realizar una transferencia de los pasajeros lo

que se logrará minimizando los retrasos de los trenes durante el tiempo de

recorrido.

Constantes: La capacidad del tren, en este elemento se incluye lo referente al

número de vagones, longitud del tren y su peso. El numero de nodo y

conexiones entre líneas, número de estaciones y subestaciones, las rutas de

los trenes y las vías auxiliares.

Datos a tener en cuenta: Algunos datos que se han tenido en cuenta por la

importancia que revisten son: los trenes de alta velocidad, la frecuencia mínima

del tren, los itinerarios de cada tren, número de trenes que pasaran por un

mismo nodo y el flujo de pasajeros principalmente en las horas pico.

Objetivos de la planificación del tren:

58
En este aspecto se hace referencia a tres objetivos fundamentales. Minimizar el

kilometraje por tren, minimizar el tiempo de demora de cada tren por estación y

maximizar el número de salidas por tren.

Restricciones para el modelo:

Agregando estas restricciones al modelo se obtiene un sistema lo más optimo

posible aunque se le pudieron agregar otras. Note que para el problema clásico

que se plantea en el modelo matemático se incluyen otras restricciones, por lo

cual no están presente en este conjunto.

 Número máximo de trenes que transitan por la zona.

 Cantidad de vías auxiliares por ruta.

 Número máximo de nodos intermedios.

 Cantidad mínima de conexiones intermedias.

 Capacidad del tren (Tamaño, longitud y peso).

 Tiempo máximo de atrasos planificados para el tren.

 Especificar las líneas por las cuales podrá transitar un tren.

 Condiciones técnicas del tren en dependencia de la línea por la cual va a

transitar.

 El número máximo de subestaciones entre los puntos de origen y

destino.

59
 . Dar preferencia a los trenes de origen y destino de las zonas más

grandes.

 Número máximo de trenes que pasará por un mismo nodo.

 Número máximo de trenes que puedan transitar por una misma línea.

 Distancia mínima de varios trenes aproximándose a una misma conexión.

 Distancia mínima existente entre dos o más trenes.

 Cantidad de trenes por vía auxiliar.

 Velocidad máxima por la que se pueda transitar en la línea

2.4.2. Modelo matemático.

En este punto la descripción se inicia con un planteo de tipo clásico para que la

descripción se comprenda de una mejor manera y teniendo en cuenta que este

modelo aunque sencillo, brinda información preliminar sobre la base

estructurada del scheduling óptimo para trenes.

2.4.3. Scheduling óptimo para Transportación de pasajeros.

Se utiliza como base la red de un metro (Caracas), aquí las líneas sólidas

(coloreadas) representa las diferentes rutas, los puntos sobre las líneas

representan las estaciones o paradas y (los círculos) las intersecciones de las

rutas que no son más que las estaciones de transferencias. El problema

consiste en determinar los scheduling para las diferentes rutas de modo que el

sistema brinde el mejor nivel de servicio (mns) a los pasajeros con los recursos

de que se dispone. Una buena medida de los mns es el monto de tiempo de

60
espera de los pasajeros en un una jornada, es evidente que este tiempo debe

de ser mínimo.

El objetivo del problema del scheduling es minimizar el tiempo de espera inicial

TEI de los pasajeros que arriban a una estación, y el tiempo de transferencia TT

de los pasajeros que se transfieren en una estación. Existen sin embargo

algunos recursos y servicios limitados que hay que considerarlos cuando se

intenta lograr la meta del mns que no es más que minimizar la suma de TEI y

TT. Entre las restricciones que se consideran se plantean las siguientes:

 Tamaño del flete, o número de trenes disponibles a utilizarse en una

ruta.

 Tiempo mínimo de parada, aquí se entiende que el tren no sale

inmediatamente que para, este tiene que esperar por un cierto periodo

de tiempo.

 Tiempo máximo de parada, aquí se entiende que el tren no puede estar

parado por más de un cierto periodo de tiempo, aunque signifique un

incremento del tiempo total de transferencia.

 Máximo tiempo de transferencia, ningún pasajero tiene que esperar mas

que un cierto periodo de tiempo en la estación de transferencia.

2.5. El Modelo Genético.

El modelo genético deberá resolver de manera optima el problema planteado

de control de horarios en un sistema ferroviario de acuerdo a las restricciones

que el mismo imponga.

2.5.1. Codificación de los Cromosomas.

61
Una vez que en este trabajo se utilizan algoritmos evolutivos, se hace

necesario de acuerdo a dicho esquema de solución, el uso entre otros aspectos

de la codificación de los cromosomas. Esta codificación queda ilustrada en la

figura 2.11 y se consideran las 4 secciones siguientes:

Sección 1: contiene la secuencia de tiempos de los trenes de la línea 1

Sección 2: contiene la secuencia de tiempos de los trenes de la línea 2

Sección 3: contiene la secuencia de tiempos de los trenes de la línea 3

Sección 4: contiene la secuencia de tiempos de los trenes de la línea 4

Figura 2.1. Codificación del cromosoma.

Se puede observar que la posición de los genes en cada sección está

estrictamente relacionada con cada una de las demás, por lo que en cada

sección el k-ésimo gen representa: el tiempo que demora el tren i para

llegar a la estación j, en la línea k (después de salir de la estación j-1),

también incluye el tiempo de parada del tren i en la estación j de la línea k.

En relación con el anterior esquema de codificación se consideran las

siguientes expresiones:

n = Número de estaciones de la línea

62
∑ j-1, n para Tijk + Ttijk que se refiere al tiempo que demora el tren i en llegar a

la última estación. Aquí el valor k = 1, lo que hace que la expresión se calcule

para la línea 1.

2.5.1. Función Aptitud y la Evaluación de los Cromosomas.

La aptitud de cada individuo se evalúa sobre la base de los siguientes

aspectos: factibilidad de la secuencia, dirección de los trenes, cambio de

estación, tiempos de transferencia y similares, posibilidad de la comprobación

funcional de lo referido al itinerario, así como el cambio de horarios de los

trenes y la distancia recorrida durante todo el recorrido del tren. Cada uno de

estos aspectos se evalúa numéricamente por puntos, a través de la variable

(Sci), y los mismos se calculan como una función de la posición dentro de cada

una de las secciones del cromosoma respectivamente.

La factibilidad de las secuencias se "mide" por las puntuaciones Sc 1, Sc2, Sc3 y

Sc4. La puntuación de cada Sci se ilustra a continuación:

Los pesos wi y wti para el cálculo de F se inicializan en 1.

w1 = w2 = w3 = wt1 = wt2 = wt3 = 1.0 (12)

Periodo de estudio en minutos, con valor inicial en PERIOD = 240

Numero de trenes, con valor inicial en MAXTRAIN = 15

Tiempo de espera

IWT = 1.0

Tiempo de transferencia

63
TT = 1.0

Tiempo_Total = Time_De_Movimiento + (Time_De_Parada / 60) (13)

Diferencia entre el tiempo programado y el encontrado

D1 = │Tiempo_Total - PERIOD│

Diferencia entre el tiempo máximo y el mínimo para una distribución equitativa

del tiempo:

D2 = MaxWT - MinWT (14)

Sc1 = D1 + (D2 * IWT) (15)

TotalTT += TT1

Sc2 = D1 + (D2 * IWT) (16)

TotalTT += TT2

Sc3= D1 + (D2 * IWT) (17)

TotalTT += TT3

Funcion Objetivo:

Min = WiXd (I,j) –Xa(I ,k) – dik (2,1)

En el modelo genético propuesto se minimiza la ecuación 2.1, mediante la

función de aptitud (F). Al hacerse máxima la función de aptitud, también se

64
hace mínima la ecuación 2.1. El significado de cada puntuación Sc i se muestra

en la tabla 2.1

Tabla 2.1 Significado de las puntuaciones.

Sci Descripción
Sci Diferencia entre el tiempo programado y el encontrado mas la diferencia entre el tiempo

máximo y el mínimo para una distribución equitativa del tiempo, multiplicado por el

tiempo de demora. El valor de expresión se calcula para cada línea del metro (i = 1..4).

La evaluación final de la aptitud F se obtiene de acuerdo a los valores de las

puntuaciones anteriores y se utiliza el procedimiento representado en la figura

2.1., donde se consideran cuatro situaciones diferentes:

1.Sc1 < n: esta condición significa que la secuencia no es posible. La aptitud

es por tanto calculada de manera que la población evolucione, primero,

hacia un mejoramiento de la puntuación Sc 1 y segundo, de las

puntuaciones Sc2 y Sc3 (por medio del factor de ponderación w1).

2. Sc1 = n y Sc2 < n: esta condición significa que la secuencia es posible pero

uno o más trenes no están bien ubicados. La aptitud es por tanto calculada

para que la población evolucione, primero, hacia un mejoramiento de las

puntuaciones Sc1 y Sc2 y segundo de las puntuaciones de la Sc 3 (por

medio del factor de ponderación w2).

3.Sc1 = n, Sc2 = n y Sc3 < n: esta condición significa que la secuencia es

posible y los trenes están bien ubicados, pero uno o más tiempos no están

correctos. La aptitud es por tanto calculada para que la población

65
evolucione, primero, hacia un mejoramiento de las puntuaciones Sc 1, Sc2,

Sc3 y Sc4

4.Sc1 = n, Sc2 = n, Sc3 = n y Sc4 = n: en este caso la secuencia es

completamente posible y todos los trenes están bien ubicados y los

tiempos son correctos. La aptitud se calcula al tomar en cuenta una

contribución igual de todas las puntuaciones Sc 1, Sc2, Sc3 y Sc4.

La minimización de los cambios de los tiempos se logra por medio de

valores adecuados en los factores de ponderación w d, wh y wt

respectivamente. La reducción de la distancia recorrida por los trenes se

logra por medio del factor de ponderación w r.

Figura 2.2. Evaluación de la función aptitud (F)

Al considerar que parte de la población inicial para muchos casos es

completada con copias elegidas aleatoriamente de la misma población, el

procedimiento de evaluación de la aptitud permite darle una mayor

importancia en la primera fase de la evolución a las mejores secuencias

66
posibles, ya que se eliminan individuos que tienen valores bajos de Sc 1, Sc2

y Sc3. Tan pronto como las condiciones de viabilidad son completamente

satisfechas, la evolución es entonces dirigida hacia la minimización de los

tiempos de recorrido de los trenes.

2.5.2. Operadores Genéticos.

En el modelo genético propuesto, cada sección del cromosoma adopta

diferentes operadores de cruzamiento y mutación.

Para el cruzamiento de los individuos que se aparean, se utiliza una

modificación de la “cruza con reordenación” (Partially Match Crossover - PMX).

En este caso los puntos de cruzamiento se generan aleatoriamente para los

dos cromosomas que se cruzan. Este tipo cruzamiento se aplica a todas las

secciones del cromosoma.

En lo que a mutación concierne, para la sección 1 del cromosoma, se

seleccionan dos genes aleatoriamente, luego éstos se intercambian y

actualizan los correspondientes en las restantes secciones del cromosoma.

Para las secciones 2 y 3, se selecciona un gen al azar y se reemplaza con un

valor que se extrae aleatoriamente del grupo de valores posibles. La mutación

ayuda a que surjan nuevos individuos que no se obtuvieron mediante el

cruzamiento, lo que permite que exista diversidad dentro de la población. Este

aspecto es substancial a la hora de evitar que el algoritmo persista en la

búsqueda de la convergencia dentro de una zona del espacio de solución que

tiende hacia un máximo local. Éste operador permite la introducción de nuevo

material cromosómico en la población y desde la perspectiva teórica, asegura

67
que, dada cualquier población, el espacio de búsqueda se encuentre

totalmente conectado.

2.6. Conclusiones del Capítulo 2.

Como se ha podido observar se llegó a un modelo genético robusto que

describe y caracteriza el problema del scheduling de horario de trenes o

timetable.

1. El método de los Algoritmos Genéticos es factible para la optimización y la

planificación del proceso de generación de horarios en una red ferroviaria.

 Mediante la aplicación de la base de datos asociada al scheduling se

podrá manipular fácilmente los datos contenidos en la misma, lo que

permitirá una actualización eficaz de los datos.

 En los problemas de optimización real se trabaja con una grana cantidad

de variables, por lo que las técnicas tradicionales no son factibles para

obtener una solución óptima, por lo que se aconseja emplear los

algoritmos genéticos.

2. Este modelo esta compuesto por la codificación del cromosoma el cual tiene

cuatro sesiones, una por cada línea. Además, se describe la función de

ajuste que es la que permitirá evaluar la calidad de las soluciones en el ciclo

de aplicación de los operadores genéticos a las soluciones intermedias y las

descendientes de las mismas, que se encuentran en el proceso de

búsqueda.

68
69