• No se han encontrado resultados

5. ALGORITMOS PROPUESTOS PARA LA PRIORIZACIÓN DE ACCIONES DE MANTENIMIENTO

5.6. Aplicación de métodos basados en Redes Neuronales

5.6.4. Influencia del número de redes y sus nodos

Se analiza en este apartado la variabilidad y funcionamiento del algoritmo con redes neuronales, variando la cantidad de nodos N, comparando la opción A con la opción B, y utilizando un banco de pruebas en el que varía la cantidad de entidades cortadas.

Las mediciones obtenidas son los tiempos de ejecución completos, hasta que se obtiene como resultado la lista de entidades ordenada, medidos en segundos.

Para las mediciones de la sensibilidad de los dos modelos de redes neuronales presentados, respecto a la cantidad de entidades presentes en cada incidencia o corte de red, el banco de pruebas usado tiene las siguientes características:

Cantidad de conjuntos de circuitos cortados: 82

Cantidad de entidades cortadas que hay en cada conjunto:

o Máxima: 840

o Mínima: 40

o Distribución: valores de cantidades, entre el máximo y el mínimo, con 20 unidades de diferencia de un valor al siguiente. Es decir, 41 valores distintos entre 40 y 840. Para cada valor x de cantidad de entidades, se han elegido dos conjuntos diferentes de entidades, con la misma cantidad x, tomando como medida el valor medio resultante de la métrica que corresponda. Es decir, dos conjuntos de 40 entidades, dos conjuntos de 60, dos conjuntos de 80, etc. En total forman los 82 conjuntos mencionados. Y si lo que se está midiendo, por ejemplo, es el tiempo de ejecución de 40 entidades, se toma el valor medio del tiempo de ejecución de los dos conjuntos de 40 entidades.

Redes con capacidad para 20 circuitos

En primer lugar se realizan las mediciones con una red con pocos nodos de entrada. Solamente los suficientes para poder ser alimentada con 20 caminos/circuitos a la vez. Es decir, la red cumple que: Nodos de la Red (N) = 20 * Cantidad de parámetros (C)

que es lo mismo que decir que N/C = 20.

Donde C es la Cantidad de parámetros por Entidad afectada por un corte. Dado que manejamos un valor de cantidad de parámetros = 11, eso quiere decir que para poder procesar 20 entidades en una sola ejecución de la red, se necesita una red de 220 nodos de entrada.

Con capacidad para 20 circuitos y procesamiento en Serie

La primera comparativa muestra los tiempos de ejecución de una red neuronal diseñada según la opción A (las salidas son alternativas de ordenación), con otra diseñada según la opción B (las salidas son directamente las posiciones ordenadas de los circuitos). En ambos casos la restricción es que la combinación de HW/SW utilizado para las pruebas sólo tiene capacidad para procesar una red neuronal completa cada vez. Es decir, en el caso de que la cantidad de circuitos sea grande y eso

implique ejecutar varias veces el procesado de la red neuronal (con varios subconjuntos de esos circuitos), cada ejecución tendrá lugar tras la finalización de la anterior. Es decir, se presupone un procesamiento “en serie” de las diferentes veces que sea necesario ejecutar el procesado de la red neuronal.

Figura 57: Tiempo ejecución (seg), en función de cantidad de Entidades. En Serie

Vemos que conforme se van aumentando la cantidad de entidades, el aumento del tiempo de ejecución sigue un aumento lineal, tanto en la opción A como en la B.

La diferencia entre las ejecuciones que siguen la opción A (en la que las salidas son alternativas) y las que siguen las opción B (en la que la salida son directamente circuitos ordenados), es que en la primera hay que sumar un tiempo adicional al tiempo total de ejecución, debido precisamente a que la salida de la red es una alternativa de ordenación. Por tanto, es necesario un último paso para ejecutar la fórmula de ordenación que indica esa alternativa seleccionada, sobre los circuitos de entrada a esa red, para conseguir la lista ordenada de circuitos de salida.

Dado que la cantidad de nodos de entrada es pequeña, incluso con el valor más bajo de circuitos de entrada, que son 40, no existe capacidad suficiente en un sólo paso de ejecución de la red neuronal. Ya con 40 circuitos es necesario ejecutar 3 veces la red neuronal (siguiendo bajo la suposición de ejecución en serie):

La primera ejecución de la red estaría alimentada por los primeros 20 circuitos. El resultado de la salida se almacena para ser usado en la tercera ejecución.

La segunda estaría alimentada por los circuitos del 21 al 40. Aquí también el resultado de la salida se almacena para ser usado en la tercera ejecución.

La tercera ejecución sería alimentada por los primeros 10 circuitos de la salida de la primera ejecución, más los primeros 10 circuitos de la salida de la segunda ejecución.

Al pasar de 40 circuitos a 60, de nuevo se necesita un paso de ejecución adicional de la red, para poder procesar los circuitos del 41 al 60. Y esto vuelve a ocurrir cada 20 circuitos que se añaden al problema. De ahí la linealidad observada en la gráfica.

Se llega a un primer límite significativo en los 400 circuitos, en los que se necesitan justamente 20 ejecuciones de la red (tomando cada una 20 circuitos como entrada), pero de su salida sólo se puede tomar un circuito de cada una, justamente para inyectarlo como entrada en la última ejecución. O sea se necesitan para este caso 21 pasos de ejecución de la red.

A partir de ese límite, con 420 circuitos, no se necesitan 22 sino 23 pasos de ejecución. En lugar de realizar dos “pasadas” hay que hacer tres:

La primera pasada barre 400 circuitos con 20 pasos de ejecución. Y se necesita un paso adicional para barrer los circuitos del 401 al 420.

La segunda pasada toma los resultados de las ejecuciones de los primeros 400 circuitos y da una salida.

La tercera pasada toma los resultados de la segunda, más el resultado de la ejecución de los 401 al 420.

Cuando se llega a los 800 circuitos se vuelve a saturar este modelo y hará falta una cuarta pasada, por lo que se nota otro salto en la gráfica al necesitarse una ejecución adicional.

Redes con capacidad para 100 circuitos

En segundo lugar se realizan las mediciones con una red de mayor dimensión, con suficientes nodos de entrada para poder ser alimentada con 100 caminos/circuitos a la vez. Es decir, la red cumple que:

Nodos de la Red (N) = 100 * Cantidad de parámetros (C)

Donde C es la Cantidad de parámetros por Entidad afectada por un corte. Dado que manejamos un valor de cantidad de parámetros = 11, eso quiere decir que para poder procesar 100 entidades en una sola ejecución de la red, se necesita una red de 1100 nodos de entrada.

Una red con mayor cantidad de nodos tiene en principio la ventaja de procesar mayor cantidad de información en paralelo. Sin embargo esto debe ser corroborado de manera experimental con las mediciones, puesto que también supone una mayor carga computacional para el hardware y software que soporte la ejecución.

Con capacidad para 100 circuitos y procesamiento en Serie

Al igual que se hizo con la cantidad de nodos anterior (N/C=20), la primera comparativa muestra los tiempos de ejecución presuponiendo un procesamiento “en serie” de las diferentes veces que sea necesario ejecutar el procesado de la red neuronal.

Figura 58: Tiempo ejecución (seg), en función de cantidad de Entidades. A y B. En Serie De la visualización de esta gráfica se puede ver claramente el comportamiento esperado cuando la cantidad de circuitos es pequeña. Hasta un valor de 100 circuitos, la cantidad N de nodos de entrada de la red tiene capacidad suficiente para procesar, en un único paso de ejecución, todos los caminos / circuitos de entrada. Sin llegar a ese límite de 100, se puede notar un ligero aumento del tiempo de ejecución en función de la cantidad de circuitos, pero prácticamente insignificante, ya que la red prácticamente tarda lo mismo en proporcionar el resultado en sus nodos de salida independientemente de la cantidad de entradas no nulas que reciba.

Por la forma de afrontar el problema, descrita en apartados anteriores, nada más superar los 100 circuitos sería necesario ejecutar al menos 3 veces la red neuronal (siguiendo bajo la suposición de ejecución en serie):

La primera ejecución de la red estaría alimentada por los primeros 100 circuitos. El resultado de la salida se almacena para ser usado en la tercera ejecución.

La segunda estaría alimentada por los circuitos del 101 al 200. Aquí también el resultado de la salida se almacena para ser usado en la tercera ejecución.

La tercera ejecución sería alimentada por los primeros 50 circuitos de la salida de la primera ejecución, más los primeros 50 circuitos de la salida de la segunda ejecución.

Debido a este salto, de una a tres ejecuciones, se puede ver una discontinuidad en la gráfica, precisamente a partir de 100 circuitos.

Además, las ejecuciones que siguen la opción A (en la que las salidas son alternativas), hay que sumar un tiempo adicional al tiempo total de ejecución, debido precisamente a que la salida de la red es una alternativa de ordenación, y no directamente un listado de circuitos. Por tanto, a continuación es necesario ejecutar la fórmula de ordenación que indica esa alternativa seleccionada, sobre todos los circuitos de entrada, para conseguir la lista ordenada definitiva de circuitos de salida. Se puede comprobar en la gráfica, que el tiempo adicional que se suma, debido a esta necesidad de ordenación posterior en la opción A, es siempre superior al tiempo que tarda en ofrecer su resultado

la red neuronal de la opción B (en la que la salida son directamente circuitos ordenados). Esto a pesar de que la red neuronal de la opción B tiene mayor carga computacional que la de la opción A, dado que la cantidad de nodos de salida es mucho mayor que en la de la opción B.

Es decir, para conseguir el resultado final de obtener una lista de circuitos ordenados, la opción B, en su conjunto, es mejor en tiempo de ejecución que la opción A. Evidentemente no son todo ventajas para la opción B, puesto que su tiempo de entrenamiento y cantidad de patrones que necesita para entrenarse bien, es mucho mayor. O dicho de otro modo, con el mismo conjunto de patrones de entrenamiento, y mismo tiempo de entrenamiento, los resultados de la red probablemente no estén igual de optimizados en la opción A y B. Sin embargo para confirmar esto es necesario remitirnos a los apartados siguientes en los que se analizarán los resultados finales que proporcionan estos dos y el resto de métodos de priorización.

El último efecto que podemos ver en la gráfica es que justo al superar 200 circuitos el incremento de tiempo es menor que el producido cuando nada más se superaron los 100. Esto es debido a que no se producen las mismas ejecuciones de la red neuronal. Nada más superar los 100 ya se necesitan tres ejecuciones de la red, tal y como se describió más arriba. Es decir, se pasa de necesitar una a necesitar tres ejecuciones. Sin embargo, nada más superar las 200, se necesitan cuatro ejecuciones:

La primera ejecución de la red estaría alimentada por los primeros 100 circuitos. El resultado de la salida se almacena para ser usado en la última ejecución.

La segunda estaría alimentada por los circuitos del 101 al 200. Aquí también el resultado de la salida se almacena para ser usado en la última ejecución.

La tercera estaría alimentada por los circuitos del 201 al 300. Aquí también el resultado de la salida se almacena para ser usado en la última ejecución.

La cuarta y última ejecución sería alimentada por los primeros 33 circuitos de la salida de la primera ejecución, más los primeros 33 circuitos de la salida de la segunda ejecución, más los primeros 33 circuitos de la salida de la tercera.

Y lo mismo ocurre al superar las 300, 400, etc. Es decir hay un salto de dos ejecuciones al superar los 100 circuitos, y posteriormente sólo hay un salto de una ejecución adicional por cada bloque de 100 circuitos más.

Por tanto, de todo esto podemos concluir, sobre el tiempo de ejecución, que:

Hay escaso ahorro de tiempo cuando no se utilizan todos los nodos de entrada de una red. Cada vez que el número de circuitos supera una determinada centena, hay que sumar el tiempo de ejecución de una red adicional (debido al procesamiento en serie). Salvo la primera centena en la que hay que sumar dos ejecuciones

Comparemos el comportamiento de cada una de las opciones A y B, mirando los tiempos alcanzados con las redes con capacidad para 20 circuitos y las que tienen capacidad para 100. Para la opción A (la salida de la red neuronal es una alternativa de ordenación):

Figura 59: Tiempo ejecución (seg), en función de cantidad de Entidades. A. En Serie

Para la opción B (la salida de la red es directamente una ordenación):

Figura 60: Tiempo ejecución (seg), en función de cantidad de Entidades. B. En Serie A la vista de esta comparativa, como conclusión adicional a las anteriormente citadas tenemos que:

Es más rápida la opción B completa, que el tiempo de la opción A sumada a la ordenación posterior necesaria, según la alternativa elegida.

Con capacidad para 100 circuitos y procesamiento en Paralelo

A continuación, manteniéndonos en el caso de que cada red neuronal del diseño, cumple que puede ser alimentada con 100 caminos/circuitos a la vez, veamos ahora el comportamiento con una plataforma HW/SW capaz de ejecutar el procesamiento de varias redes neuronales en paralelo.

Para poder lanzar la ejecución en paralelo de varias redes, tienen que cumplir que puedan trabajar de manera independiente, es decir que sus salidas y entradas no estén relacionadas. Dicho de otro modo, que una red no tenga que esperar a que la otra entregue sus resultados. Esto es fácil de cumplirse cuando tenemos una gran cantidad de circuitos cortados, debido al diseño que se ha presentado en los apartados anteriores.

La simulación se ha realizado únicamente para la opción B, opción en que las salidas de las redes directamente circuitos, en un cierto orden. En cualquier caso también sería aplicable a la opción A, y los resultados deberían ser bastante similares, al compartir ambas opciones el mismo esquema de distribución de entradas y salidas entre las diferentes redes neuronales que forman la solución. Se han realizado tres simulaciones, con una, dos y cuatro redes y a continuación se presentan los resultados obtenidos en el tiempo de ejecución.

Figura 61: Tiempo ejecución (seg), en función de cantidad de Entidades. B. En Paralelo

El análisis de la gráfica demuestra la influencia positiva de la capacidad de procesamiento paralelo de la plataforma con respecto al tiempo de ejecución, como no podría ser de otra manera.

Hasta llegar a la cantidad de 100 entidades cortadas los tres esquemas funcionan exactamente igual, ya que no se llega a superar la capacidad de una única red. En esta situación no se saca ninguna ventaja de tener 2 o más redes en paralelo porque sólo una estará funcionando. En esta situación sólo se aprecia un ligero incremento del tiempo de ejecución al aumentar la cantidad de entidades de entrada.

Entre 100 y 200 entidades ya se pueden alimentar dos redes en paralelo, la primera con 100 entidades y la segunda con el resto hasta 200. Sin embargo es necesaria una tercera ejecución, que además debe esperar a la finalización de las dos primeras, ya que sería alimentada por los primeros 50 circuitos de la salida de la primera ejecución, más los primeros 50 circuitos de la salida de la segunda ejecución. Debido a esto, los esquemas con dos o cuatro redes pueden resolver el problema en dos pasos de ejecución, mientras que el esquema de una red necesita tres pasos de ejecución.

Entre 200 y 400 entidades se pueden alimentar a tres y cuatro redes en paralelo (100 por red). Aquí el esquema con cuatro redes puede absorber toda esta cantidad de entidades en un solo paso de ejecución, mientras que el esquema con dos redes necesitará al menos dos pasos de ejecución para aceptar todas estas entidades. Siempre hay que sumar un paso adicional, de manera lineal, para procesar las salidas obtenidas en los primeros pasos de la ejecución. En caso de tener, por ejemplo, 400 entidades, este último paso de ejecución procesaría las 25 primeras entidades de salida que proporciona cada una de las redes en el primer paso.

Conforme sigue aumentando la cantidad de entidades se aprecia más la mejora, en tiempo de ejecución, de tener mayor cantidad de redes en paralelo.

Evidentemente, el peaje que debemos pagar, usando redes en paralelo, será que tendremos un mayor coste de infraestructura hardware.

5.6.5. Conclusiones particulares del método