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

Universidad de Carabobo

Facultad de Ciencias y Tecnologa


Valencia, Edo. Carabobo
Network-Rail
Servicio de Mantenimiento
(1era Entrega)
Integrantes:
Ricardo Len CI: V-20786394
John Porras CI: V-21214759
Octubre 2014
Problemtica
Network Rail es la empresa ms importante de Reino Unido y encargada de grandes
infraestructuras ferroviarias como la lnea de la costa occidental en Inglaterra. Esta linea es de gran
importancia por la demanda de transporte que ocurre anualmente, contiene un nico tramo entre dos
estaciones o poblados cualesquiera, por lo que es de gran importancia un sistema de mantenimiento
eficiente y bien diseado de las vas frreas.
Recientemente un evento desafortunado ocurri, el sistema ferroviario fue afectado por un
evento natural catastrfico, dejando algunas estaciones desconectadas temporalmente, debido al dao
ocasionado en algunos de los tramos de comunicacin.
De acuerdo a las variantes planteadas, los requerimientos necesarios para el diseo del
mantenimiento de dicha va son los siguientes:

1. Representar fielmente el diseo del sistema ferroviario usando teora de grafos.
2. Determinar Cul es la nueva configuracin de la red ferroviaria luego de la afectacin
producida por el evento natural? (indicando los grupos de estaciones que han quedado
conectadas).
3. Dados distintos pares de estaciones, determinar si es posible que la locomotora se traslade entre
stas para cumplir con las labores de mantenimiento. En caso de que no sea posible, deber
reportarse al usuario.






Modelo de Grafo de Network Rail
Definicin por Extensin
Sea F = (V, A) el grafo que modela el problema, donde:
V = {e
i
/ e
i
es una estacin o poblado que est conectada en la red ferroviaria creada por Network Rail
iI}, con I = {1, 2, 3, , n}

A = {<e
i
, e
j
> / e
i
, e
j
V entre e
i
y e
j
existe una tramo de comunicacin Nerwork Rail que conecta
directamente en ambos sentidos i, jI }














Diseo de las Estructuras de Datos

El grafo F = (V, A) ser representado a travs de una matriz de adyacencia, que llamaremos: Ferrovas.



Ferrovas =




Para hallar la alcanzabilidad de una estacin a otra necesitaremos una estructura de datos de tipo
conjunto llamada Familia de conjunto que tendr la misma cantidad de elementos que nmeros de
estaciones.
Familia de Conjuntos =




Nota: Esta estructura de datos fue seleccionada gracias a la facilidad para identificar de manera simple
y sencilla el grafo a tratar y permite responder de manera eficiente los requisitos y requerimientos de la
Constructora Ferroviaria Network Rail.
Conjunto1 Conjunto2 Conjunto i Conjunto n
Significa que
existe un tramo de
comunicacin
entre las estaciones
c
i
yc
j



1
1 = Existe tramo de comunicacin
0= No existe comunicacin
c
1
c
2
c
j
c
n

c
1

c
2


c
i


c
n

La cantidad de elementos es n
debido a que necesitaremos esa
cantidad de conjuntos para el
algoritmo de componentes conexas.
Anlisis del Problema
Que se tiene?: Primero que todo tenemos las n cantidades de estaciones y m cantidades de
tramos de comunicacin que van en ambos sentidos que en principio han sido construidos por
Network-Rail, partiendo de esto tenemos la estructura de datos creada a partir de esa
informacin la cual termina por convertirse en una matriz de adyacencia que representa el grafo
de manera estructural.
Que se Pide?:
1. Partiendo de la nueva configuracin de la red ferroviaria, se pide determinar el grafo
expandido que se forma del grafo de las vas ferroviarias debido al evento natural que causa
la incapacitacin de algunos tramos (o arcos).
2. Luego a partir de esa nueva configuracin de las vas ferroviarias,se debe determinar la
alcanzabilidad entre un par de estaciones ferroviarias, es decir, si existe un camino en el que
la locomotora de mantenimiento pueda ir de una estacin a otra.
Cmo se resuelve?:
1. El primer requerimiento se puede resolver teniendo como entrada los tramos de
comunicacin que quedaron sin funcionamiento y que deja desconectadas a varias
estaciones ferroviarias. A continuacin introducimos esos datos en la matriz de
adyacencia para determinar cmo quedar la nueva red ferroviaria que no es ms que un
grafo expandido que parte del grafo original o la red ferroviaria original.
2. El segundo requerimiento consiste partiendo delsubgrafo expandido y mediante este
determinar cuntas componentes conexas existen y cuales vrtices yacen en cada una de
ellas, seguido de esto recibimos como entrada el par de vrtices o estaciones a las cuales
determinaremos si son alcanzables. Teniendo los vrtices en cada componente conexa
distinta entre s, para determinar si existe camino entre un vrtice i y un vrtice y basta
con verificar si se encuentran en las mismas componentes conexas.


Algoritmo en Alto Nivel
Nivel de Abstraccin 1:
Inicio
I. Obtener el nmero de estaciones y el nmero de tramos de comunicacin, el nombre de cada
una de las estaciones y la especificacin de los tramos que unen cada estacin.
II. Se crea la matriz de adyacencia con los datos de entrada.
III. Procedemos a leer los arcos que fueron afectados por el evento natural y a removerlos de la
matriz de adyacencia para tener en ella el grafo expandido que representa la nueva
configuracin de la red ferroviaria.
IV. Ejecutamos el algoritmo de componentes conexas para determinar cules son las componentes
del grafo expandido y los vrtices que se encuentran en cada una, esa informacin se guarda
en el vector (Familia de conjuntos).
V. Obtenemos el par de estaciones a las que se les verificar la alcanzabilidad y con el vector
familia de conjuntos determinaremos si ambas estaciones estn en la misma componente
o no.
VI. Escribir los resultados.
Fin






AlgoritmoNetworkRail
Inicio
escribir(Bienvenidos al sistema de mantenimiento ferroviario Network-Rail)
lectura de la cantidad de estaciones
lecturadel conjunto de los nombres de estaciones
lectura de los tramos de comunicacin entre las estaciones (arcos del grafo)
se inicializala matriz de adyacencia con 0 en cada celda
se cargan los datos de los arcos en la matriz de adyacencia
se leen los arcos que se van a quitar y se remueven de la matriz de adyacencia
se ejecuta el algoritmo componentes conexas para tener el vector conjunto llamado familia de
conjuntos
lectura de las estaciones que se desean verificar su alcanzabilidad
se verifican que esas estaciones estn en la misma componente conexa con el vector familia de
conjuntos y dar la respuesta del resultado
Fin







Procedimiento para cargar los datos de los arcos a la matriz de adyacencia
Inicio
Para cada columna de la matriz de adyacencia
Para cada fila de la matriz de adyacencia
se verifica si en esa celda existe un arco que una los 2 vertices
en caso de que si exista, se coloca 1 para identificar que si existe un arco que los une
finde cada fila de la matriz d adyacencia
fin de cada columna de la matriz de adyacencia
Fin procedimiento

Procedimiento para remover los arcos de la matriz de adyacencia
Inicio
Se leen los arcos que se van a quitar
Para cada columna de la matriz de adyacencia
Para cada fila de la matriz de adyacencia
se verifica si esa celda es pertenece al arco que se debe remover
en caso de que si sea, se coloca 0 para identificar que se desconect el arco
finde cada fila de la matriz d adyacencia
fin de cada columna de la matriz de adyacencia
Fin procedimiento


AlgoritmoComponentesConexas
inicio
Leer el nmero de vrtices del grafo dados por la matriz de adyacencia
Lee los arcos (adyacencia)
Se inicializa el conjunto (familia de conjunto) de las componentes conexas, asumiendo que
cada vrtice es una Componente Conexa
Inicializa el nmero de componentes conexas, y se asumen que existen n componentes
conexas al inicio.
Para cada uno de los arcos
Se extrae un arco distinto del conjunto de los arcos: <v , c>
Buscar la Componente Conexa a la que pertenece el vrtice v y se almacena en la
variable i
Buscar la Componente Conexa a la que pertenece el vrtice w y se almacena en la
variable j
si (i j) entonces // vrtices v y w del arco estn en componentes distintas
Se aplica la unin del conjunto donde fue ubicado el vrtice v con el conjunto donde fue
ubicado el vrtice j
Al conjunto donde se ubico el vrtice j se descarta (se coloca en ) // elimina la
componente conexa j.
Se decrementa la cantidad de componentes conexas existentes.
fsi
Fin de cada uno de los arcos
Fin // fin ComponentesConexas //

Procedimiento para verificar si las estaciones se encuentran en el mismo vector de familia de
conjuntos
Inicio
Mientrasno se revisen todas las componentes de familia de conjuntos o cuando se encuentren
las 2 estaciones
Se inicializa la cantidad de estaciones encontradas en 0
Paracada vertice que est en la componente conexa actual
se verifica si ese vertice es uno de los que se estn buscando y se avisa que se encontr
1 estacion(si ya se haba encontrado 1 entonces se eleva a 2)
finde la revisin de la componente conexa actual
findel mientras
si se encontraron las 2 estaciones en una misma componente entonces
escribir(si hay comunicacin entre una estacin a otra)
en caso contrario
escribir(no existe comunicacin entre ambas estaciones)
Fin procedimiento

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