88
CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL ARTIFICIAL JOHAN JULIAN MOLINA MOSQUERA UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS MAESTRIA EN TELECOMUNICACIONES MÓVILES FACULTAD DE INGENIERÍA, PROGRAMA DE ELECTRÓNICA BOGOTÁ 2017

CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

  • Upload
    others

  • View
    19

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL ARTIFICIAL

JOHAN JULIAN MOLINA MOSQUERA

UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS MAESTRIA EN TELECOMUNICACIONES MÓVILES

FACULTAD DE INGENIERÍA, PROGRAMA DE ELECTRÓNICA BOGOTÁ

2017

Page 2: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL ARTIFICIAL

JOHAN JULIAN MOLINA MOSQUERA CODIGO: 20161027020

TESIS DE GRADO

DIRECTOR: PhD, PAULO CESAR CORONADO

CODIRECTOR: PhD(c), OSCAR JULIAN PERDOMO CHARRY

UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS MAESTRIA EN TELECOMUNICACIONES MÓVILES

FACULTAD DE INGENIERÍA, PROGRAMA DE ELECTRÓNICA BOGOTÁ

2017

Page 3: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

Nota de Aceptación:

______________________________

______________________________

______________________________

______________________________

______________________________

______________________________

______________________________

Firma del presidente del jurado

______________________________

Firma del jurado

______________________________

Firma del jurado

Bogotá (14, 11,2017)

Page 4: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

Dedico este trabajo final de maestría a mi familia, quienes han mostrado de forma

significativa su apoyo incondicional.

Page 5: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

Agradezco las asesorías técnicas ofrecidas por parte de los docentes de la Maestría

en Telecomunicaciones Móviles (Universidad Distrital Francisco José de Caldas),

PhD(c). Oscar Julián Perdomo Charry, PhD. Paulo Cesar Coronado y PhD(c). Jóse

Ignacio Palacios Osma.

Page 6: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

CONTENIDO Pág. INTRODUCCIÓN .................................................................................................... 9

1. PLANTEAMIENTO DEL PROBLEMA ........................................................... 12

2. JUSTIFICACIÓN ............................................................................................ 13

3. OBJETIVOS ................................................................................................... 14

3.1 Objetivo General .......................................................................................... 14

3.2 Objetivos Específicos................................................................................... 14

4. MARCO TEÓRICO ........................................................................................ 15

4.1 MODELO DE ERLANG-B ............................................................................ 15

4.2 REDES NEURONALES ARTIFICIALES ...................................................... 16

4.3 SISTEMA OPERATIVO ANDROID .............................................................. 17

4.3.1 ARQUITECTURA .................................................................................. 18

4.3.2 DESARROLLO DE APLICACIONES EN ANDROID ............................. 18

4.3.3 VISTAS, ACTIVIDADES, SERVICIOS E INTENTOS EN ANDROID .... 20

4.3.4 LENGUAJE DE PROGRAMACIÓN XML .............................................. 21

4.3.5 LENGUAJE DE PROGRAMACIÓN JAVA ............................................. 22

4.3.6 Kit de Desarrollo de Java JDK (Java Development Kit) ........................ 23

4.3.7 Microcontroladores ................................................................................ 23

4.4 Diferencias entre aplicativos ........................................................................ 24

5. METODOLOGIA ............................................................................................ 26

5.1 DISEÑO DE RED NEURONAL MULTICAPA .............................................. 26

5.2 ENTRENAMIENTO RNA ............................................................................. 44

5.3 MODELO VISTA CONTROLADOR DE APLICACIÓN MÓVIL .................... 54

5.3.1 Modelo MVC de aplicación nativa ......................................................... 54

5.3.2 Algoritmo del modelo RNA de Erlang B ................................................ 55

5.3.3 Funcionalidad de aplicación móvil ......................................................... 57

5.4 VALIDACIÓN DE DATOS ............................................................................ 62

6. APORTES DE INVESTIGACIÓN ...................................................................... 70

TRABAJOS FUTUROS ........................................................................................ 75

CONCLUSIONES ................................................................................................. 76

REFERENCIAS ..................................................................................................... 77

Page 7: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

LISTA DE FIGURAS Figura 1. Diagrama de bloques general ................................................................ 10 Figura 2.Neurona .................................................................................................. 16 Figura 3.Red Neuronal Artificial multicapa ............................................................ 17 Figura 4. Ciclo de vida de una actividad ................................................................ 21

Figura 5. Esquema de bloques general de un microcontrolador ........................... 23

Figura 6. Gráfica de las funciones 𝑓𝑋 = 3𝑋 y 𝑓𝑋 = 5𝑋 ........................................ 27 Figura 7. RNA multicapa de función lineal Y=aX ................................................... 28 Figura 8. Diagrama de flujo de modelo RNA para función lineal f(X)=3X .............. 29

Figura 9. Funciones de activación Logsig y Purelin .............................................. 30 Figura 10. Carta de Erlang B en dispersión y discriminación a 5 y 6 canales ....... 31

Figura 11. Carta de Erlang B extendida a 120 Canales ........................................ 32 Figura 12. Guide de ecuación Erlang B ................................................................. 33 Figura 13. Diagrama de Nassi Schneiderman para algoritmo de función Erlang B34 Figura 14. RNA multicapa de función Erlang B ..................................................... 37 Figura 15. Diagrama de Flujo del proceso matemático RNA de la Función Erlang B por cada par de canales ........................................................................................ 40 Figura 16. Diagrama de Flujo de Función Canal ................................................... 41

Figura 17. Diagrama de flujo de función de activación Logsig .............................. 42 Figura 18. Diagrama de flujo de función para 5 canales ....................................... 42

Figura 19. Diagrama de flujo de función para 10 canales ..................................... 43 Figura 20. Diagrama de flujo del algoritmo de entrenamiento RNA ...................... 44 Figura 21. Diagrama de flujo de función Levenberg Marquardt............................. 45

Figura 22. RNA multicapa para función lineal ....................................................... 45

Figura 23. Estado de entrenamiento hasta 1000 épocas ...................................... 46 Figura 24. Rendimiento del entrenamiento. .......................................................... 46 Figura 25. Ajuste en los datos de salida ................................................................ 47

Figura 26. Diagrama de flujo del algoritmo de entrenamiento RNA ...................... 48 Figura 27. Diagrama de flujo de función Levenberg Marquardt............................. 49

Figura 28. RNA multicapa para función No lineal Erlang B ................................... 49 Figura 29. Estado de entrenamiento hasta 1000 épocas ...................................... 50 Figura 30. Rendimiento del entrenamiento. .......................................................... 51 Figura 31. Ajuste en los datos de salida ............................................................... 52

Figura 32. Modelo MVC app nativa Android .......................................................... 54 Figura 33. Dirección del Proyecto Android ............................................................ 57 Figura 34. Icono de acceso ................................................................................... 57

Figura 35. Comparativo entre Carta Erlang B y App ............................................. 58 Figura 36. Gráfica de tiempo 7:14 a.m vs probabilidad de bloqueo 13.2% .......... 59 Figura 37. Gráfica de tiempo 7:15 a.m vs probabilidad de bloqueo 36.7% .......... 59 Figura 38. Gráfica de tiempo 7:16 a.m vs probabilidad de bloqueo 57.1% .......... 60

Figura 39. Gráfica de tiempo de 7:03 a.m a 7:36 a.m vs probabilidad de bloqueo .............................................................................................................................. 60 Figura 40. Función RNA Erlang B en Sistema embebido ...................................... 61 Figura 41. Carta de Erlang B ................................................................................. 62 Figura 42.Resultados ejecución de App para 1ra. Actividad ................................. 64

Page 8: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

Figura 43. Resultados de HTML5 para 1ra.Actividad ............................................ 65 Figura 44. Resultados de App Android para 1ra.Actividad .................................... 65

Figura 45. Resultados ejecución de App para 2da. Actividad ............................... 66 Figura 46. Resultados ejecución de App para 3ra. Actividad ................................ 67 Figura 47. Resultados comparativos entre Matlab y Excel .................................... 68 Figura 48. Modelo RNA de función Erlang B ......................................................... 70 Figura 49. Modelamiento matemático de la RNA .................................................. 70

Figura 50. Carta de Erlang B ................................................................................. 71 Figura 51. Modelo MVC app Nativa ...................................................................... 74

Page 9: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

LISTA DE TABLAS Tabla 1. Comparativo entre aplicaciones .............................................................. 24

Tabla 2.Datos de Función 𝑓(𝑋) = 3𝑋 .................................................................... 26

Tabla 3.Datos de Función 𝑓(𝑋) = 5𝑋 .................................................................... 26

Tabla 4. Datos de Función no lineal Erlang B de 5 a 12 canales .......................... 35 Tabla 5. Datos de Función no lineal Erlang B de 13 a 20 canales ........................ 36 Tabla 6. Configuración RNA de función Erlang B .................................................. 38 Tabla 7. Resultados de la Intensidad de Tráfico A ................................................ 63 Tabla 8. Resultados de la cantidad de usuarios .................................................... 64

Tabla 9. Resultados de entrenamiento RNA por cada par de canales. ................. 71 Tabla 10. Software de entrenamiento e Implementación de ecuaciones RNA ...... 73

Page 10: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

9

INTRODUCCIÓN

Las tecnologías buscan nuevas posibilidades para el futuro de las comunicaciones móviles, las empresas proveedoras presentan un portafolio con las más recientes soluciones de red, evidenciando capacidad en la misma, diseñadas para aumentar la experiencia del usuario a medida que el tráfico de datos móviles crece de forma exponencial, optimizar la calidad de los servicios demanda la ampliación de los canales y disminución de la probabilidad de bloqueo (grado de servicio), conociendo que la carta de Erlang B proporciona la lectura de un límite máximo de 100 canales y 10% en la probabilidad de bloqueo. Por lo anterior, el inconveniente que presenta la función de Erlang B es que no siempre es práctica en aplicaciones reales, debido a la complejidad computacional que requiere al momento de utilizar altas tasas de intensidad de tráfico [1] y número de canales, por esa razón es conveniente utilizar modelos aproximados y diseños de redes neuronales artificiales las cuales responden mejor a las no linealidades de la función; en este trabajo de investigación el objetivo es implementar la carta de Erlang B como Red Neuronal Artificial y aplicación para Smartphone. Desde el comienzo del siglo XX, ha habido un rápido crecimiento de la popularidad de los sistemas de telecomunicaciones. Al aumentar el número de abonados que utilizan los sistemas de telecomunicaciones, se incrementa la capacidad en la cantidad de llamadas realizadas. Los sistemas de telecomunicaciones se conforman de dispositivos de hardware costosos, tales como conmutadores, con la función de llevar el tráfico de las llamadas telefónicas. El tráfico generado por las llamadas telefónicas es aleatorio porque el número de llamadas generadas dentro de un período de tiempo y la duración de cada llamada son impredecibles. En el diseño de sistemas de telecomunicaciones, sobre el dimensionamiento de los requisitos de capacidad dará lugar a un problema económico debido a los altos costos. Por otra parte, en virtud del dimensionamiento, se disminuirá la calidad de servicio (QoS) por la degradación de la señal. Por lo tanto, la estimación del tráfico esperado generado es tarea crucial en el diseño y dimensionamiento de los sistemas de telecomunicaciones [2]. Algunos casos de estudio e investigaciones relacionadas con el modelo de Erlang B son los siguientes: En una aproximación simple para la fórmula de Erlang B [3]. Se ha investigado la exactitud de la fórmula aproximada producida. En varios problemas de comunicaciones a menudo se requiere calcular la fórmula de Erlang B inversa. Utilizando la aproximación ofrecida se han ofrecido expresiones explícitas para la estimación de la función de pérdidas de Erlang inversa. En el proyecto de un modelo de rendimiento para los flujos IP [4], se investiga el bloqueo como un parámetro genérico de rendimiento que ayuda a modelar el rendimiento de las redes basadas en flujo. Se presentan los resultados de la simulación, subrayando la observación de que existe una relación entre los parámetros tradicionales de rendimiento de IP y el bloqueo de flujo.

Page 11: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

10

Figura 1. Diagrama de bloques general

Fuente 1. Autor

El trabajo de estimación del número de órganos usando las fórmulas de Erlang B y Erlang C [5], recapitula el trabajo realizado para estudiar el modelo de distribución de Poisson, el modelo de distribución de Erlang y las restricciones de dimensionamiento de una red relacionada con estos modelos. Este documento también describe la herramienta de planificación de una red basada en los modelos considerados. Introduciendo el comportamiento de la aplicación, utilizado para el embalaje de recursos Erlang. Los recursos pueden variar de bibliotecas a clústeres de procesos y pueden configurarse para ejecutarse en un solo procesador o distribuirse en un conjunto de nodos. Estos estudios han permitido desarrollar una herramienta para la planificación de la red, que también subrayó los límites del uso de la regla de Rigault. En el proyecto de Dimensionamiento de redes de conmutación de circuitos utilizando el código de simulación basado en la fórmula de Erlang B [6], se presenta una aproximación a la dimensión de las redes de conmutación de circuitos y encuentra la relación entre los parámetros de las redes de circuitos conmutados en la condición de probabilidad específica de bloqueo de llamadas. Se crea un código de simulación basado en fórmula de Erlang (B) para dibujar gráficos que muestran dos curvas; Uno de simulación y el otro como calculado. Estas curvas representan las relaciones entre el número medio de llamadas y la duración media de la llamada con la probabilidad de bloqueo de llamadas. Este código de simulación facilita la selección de parámetros apropiados para las redes de conmutación de circuitos. La propuesta de Estimación de probabilidad de pérdida de paquetes utilizando el modelo Erlang B en redes VoIP modernas [7], se basa en el modelo simple de Erlang B que es ampliamente utilizado para el dimensionamiento clásico de las redes de telecomunicación. Analizando su potencial aplicable a las modernas redes convergentes IP. Introduciendo un procedimiento para determinar los valores adecuados de las variables de entrada para el modelo Erlang B original basado en las características del codec y el enlace de red en uso. Por último, se prueba el resultado del modelo y la aplicabilidad con los resultados de simulación utilizando el software NS2. En el trabajo sobre la fórmula de Erlang B y la extensión del método ERT [8], el resultado clave fue el teorema sobre la división del tráfico y la extensión del método ERT para la estimación del rendimiento de los esquemas con división del tráfico. La excelente precisión (error relativo menor de 1%) se muestra en el ejemplo numérico. El documento también contiene el nuevo algoritmo de la fórmula de Erlang-B para el número entero de canales basados en la aproximación parabólica. A diferencia de las anteriores referencias, la propuesta de investigación se desarrolla como lo indica el diagrama de bloques general:

Page 12: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

11

En este diagrama de bloques (figura 1), se ordenan las etapas de la siguiente Manera:

- Carta de Erlang B con las variables de Intensidad de tráfico, cantidad de canales, cantidad de usuarios y grado de servicio.

- Diseño y entrenamiento de red neuronal artificial multicapa con datos tabulados.

- Implementación del modelo vista controlador de aplicación móvil. - Comparación con otros aplicativos y validación de resultados.

Se agrega a los casos de estudio mencionados, que no tienen una metodología de diseño de RNA multicapa para la función de Erlang B que pueda ser implementada en sistemas abiertos como Smartphone y sistemas cerrados como microcontroladores PIC. A continuación se mencionan las tres secciones en que se estructura el documento: en la sección uno (cuatro capítulos), se define la introducción, el problema, la justificación y los objetivos generales y específicos. En la sección dos (dos capítulos), se incluye el marco referencial con los componentes teóricos, conceptuales, científicos y tecnológicos, y se plantea el diseño metodológico con análisis de datos, entrenamiento RNA multicapa, modelos y algoritmos. Finalmente, en la sección tres (dos capítulos), se realiza la validación, análisis de resultados y conclusiones.

Page 13: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

12

1. PLANTEAMIENTO DEL PROBLEMA

1.1 DEFINICIÓN

Uno de los principales problemas de la conmutación es determinar el número de componentes (circuitos, multi grabadoras, suscriptores, servidores) que deben estar instalados para hacer frente al determinado tráfico ofrecido y así no afectar la calidad del servicio QoS [9]. Se observa que en cada momento en que se presenta el número de llamadas o el número de paquetes en una red de datos, se usan las fórmulas Erlang B o Erlang C para determinar el número de órganos. Como el uso de la fórmula Erlang B no siempre es práctica. A veces, en aplicaciones reales, es más conveniente utilizar aproximaciones. Por ejemplo, una aproximación puede reducir la complejidad computacional. Una expresión simple puede describir claramente el comportamiento de la función, mientras que la interpretación de la solución exacta es difícil [1]. También sucede, que el tráfico generado por las llamadas telefónicas es aleatorio porque el número de llamadas generadas dentro de un período de tiempo y la duración de cada llamada son impredecibles. De las aplicaciones para Smartphone disponibles en la tienda en línea “Play Store”, no existe una aplicación intuitiva y eficiente que incluya las variables de entradas y salidas del modelo de Erlang B, previo entrenamiento de datos en MATLAB para obtener pesos y bias, los cuales serían la base para la implementación de red neuronal artificial en dispositivos Smartphone. Por los motivos anteriormente expuestos, la pregunta que surgiría seria la siguiente: ¿Cuál sería la metodología para implementar una aplicación móvil a partir de las variables presentes en la carta de Erlang B y el entrenamiento de red neuronal artificial?

Page 14: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

13

2. JUSTIFICACIÓN Es importante aplicar la inteligencia computacional a las redes y los sistemas de telecomunicaciones en especial para determinar la intensidad de tráfico, grado de servicio, duración de llamada y demás características impredecibles que son determinantes para mejorar la calidad del servicio QoS [5]. En estas últimas décadas se ha masificado el uso de smartphone, lo que precisa desarrollar una aplicación móvil básica e intuitiva, que se caracterice por manejar las variables presentes en la carta de Erlang B dependiendo del entrenamiento de la RNA multicapa. En el proyecto, se destaca la implementación de redes neuronales artificiales multicapa para funciones lineales y no lineales en sistemas abiertos como Smartphone y sistemas cerrados como microcontroladores PIC, adoptando los modelos, algoritmos y ecuaciones planteadas de acuerdo al dimensionamiento RNA. Esta metodología de diseño de Redes Neuronales Artificiales Multicapa, entrenamiento, tratamiento algorítmico y matemático, permitirá avanzar en el desarrollo de nuevos productos de inteligencia computacional a nivel de aplicaciones móviles. Con estas técnicas de machine learning, se permitirá predecir comportamientos de parámetros (intensidad de tráfico/usuario, número de usuarios) no lineales presentes en las telecomunicaciones móviles, logrando así, optimizar el uso de recursos (canales, ranuras de tiempo y radiocanales). La aplicación desarrollada cumple con los requerimientos de dimensionamiento celular, en donde se menciona que el grado de servicio (GoS) en los sistemas de radiotelefonía móvil pública (PMT) suele ser del 1% al 2% y el tráfico por terminal (móvil) es de 17 a 25 mErlang y los grupos de canales grandes son más sensibles a un porcentaje de sobrecarga a diferencia de los grupos de canales pequeños.

Page 15: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

14

3. OBJETIVOS 3.1 Objetivo General Implementar la carta de Erlang B como Red Neuronal Artificial y aplicación para Smartphone 3.2 Objetivos Específicos

- Diseñar el modelo de red neuronal artificial multicapa con las variables presentes en la carta de Erlang B.

- Entrenar la red neuronal artificial (RNA) multicapa para obtener pesos y bias de la misma.

- Implementar el modelo vista controlador (MVC) de la aplicación nativa para el dispositivo móvil o smartphone.

- Validar los datos obtenidos de la aplicación móvil. - Efectuar la comparación entre las dos aplicaciones existentes en la web y la

propuesta en el proyecto.

Page 16: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

15

4. MARCO TEÓRICO

4.1 MODELO DE ERLANG-B El modelo de Erlang-B se basa en los siguientes supuestos [10]:

- Las llamadas entrantes (llegadas de llamadas) se generan aleatoriamente y se asume que son distribuciones de Poisson.

- Los tiempos de retención de llamadas son aleatorias y distribuidas exponencialmente.

- Existe una capacidad finita del enlace. - Las llamadas bloqueadas se borrarán, ya que no hay cola de espera.

Cualquier usuario bloqueado no volverá a intentar la misma solicitud de inmediato. La calidad de servicio QoS para Erlang (B) puede medirse por el valor de probabilidad de bloqueo de llamadas. El bloqueo de llamadas es una función de dos parámetros de variables, la carga de tráfico ofrecida en erlangs (A) y el número de troncales (N). La fórmula de Erlang (B) se puede expresar como la siguiente1:

P𝐵(C, A) = (

AC

C!)

∑AK

K!CK=0

(1)

Donde: P𝐵(C, A): Probabilidad de bloqueo de llamadas. A: Intensidad de tráfico (carga de tráfico en Erlangs). N: Número total de canales utilizados en el sistema. Si la tasa de llamadas por unidad de tiempo (ʎ), el número medio de solicitudes servidas por la misma unidad de tiempo (ᶙ ) así que el tiempo promedio de duración de la llamada (tiempo de espera) es 1/ᶙ .Entonces la carga de tráfico se puede calcular fácilmente como el siguiente:

A= ʎ /ᶙ (2) Si se sustituye la ecuación (2) en la ecuación (1) se tendrá lo siguiente:

P𝐵(C, A) = (

(ʎ /ᶙ)C

C!)

∑(ʎ /ᶙ)K

K!CK=0

(3)

Hoy en día, la tecnología de Voz sobre IP (VoIP) es cada vez más importante, pero el problema de la capacidad básica sólo se modifica ligeramente al rendimiento de los datos disponibles de la conexión. Por lo tanto, el modelo Erlang B puede utilizarse también en este caso. El modelo original de Erlang B puede extenderse [11] y la nueva variable es el factor de recuperación “r”. Denota la probabilidad de que un abonado bloqueado intente llamar de nuevo inmediatamente. La carga de tráfico hacia el sistema de telecomunicaciones consta de dos partes: las primeras tentativas y repetidas llamadas [12]:

𝐴 = 𝐴0 + 𝑅 = 𝐴0 + 𝐴. 𝑃𝐵(𝐶, 𝐴). 𝑟 (4)

Page 17: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

16

Donde 𝐴0 es la carga de tráfico generada por los intentos iniciales (en Erlang), “R”

representa la carga de llamadas repetidas y 𝑃𝐵 es la probabilidad de bloqueo utilizando el modelo original de Erlang B (1). La ecuación (4) se puede transformar fácilmente a la forma:

𝐴0 = (𝐴 − 𝐴. 𝑃𝐵(𝐶, 𝐴). 𝑟) 𝐴0 = 𝐴(1 − 𝑃𝐵(𝐶, 𝐴). 𝑟) (5)

Mediante el uso de métodos numéricos iterativos se puede encontrar la carga de

tráfico original 𝐴0 del sistema de comunicación. 4.2 REDES NEURONALES ARTIFICIALES Las redes neuronales artificiales representan un tipo de computación que se basa en la forma en que el cerebro realiza cálculos. En las redes de comunicación inalámbrica, existe una relación no lineal entre las características de las células y los patrones de desconexión. Las redes neuronales son buenas en el ajuste de funciones no lineales [13]. Por lo tanto, se puede aprovechar la RNA en este escenario. Como se muestra en la Figura 2, el elemento básico de una red neuronal artificial

es la neurona que es una unidad computacional que toma como entrada 𝑋 =(𝑋1, 𝑋2, 𝑋3, 𝑏)𝑇 , donde b es la unidad de oscilación (+1), el vector de peso es 𝑊 =(𝑤1, 𝑤2, 𝑤3, 𝑤4)𝑇, la función de activación determinada por el diseñador de la red es 𝑔(.), para obtener a la salida de la neurona artificial la función:

ℎ𝑊,𝑏(𝑥) = 𝑔(𝑊𝑇𝑥) = 𝑔 (∑ 𝑤𝑖𝑥𝑖

3

𝑖=1

+ 𝑏)

Figura 2.Neurona

Fuente 2.M. T. Hagan, H. B. Demuth

Una RNA consiste en una capa de entrada de neuronas, una o más capas ocultas de neuronas, y una capa final de neuronas de salida. La capa de entrada y la capa oculta están conectadas por enlaces sinápticos llamados pesos y la capa oculta y la capa de salida están conectadas de la misma manera. En la Figura 3 se muestra una red neural feedforward de tres capas. Los círculos etiquetados como "+1" son unidades de bias que corresponden al término de interceptación. Se tiene en cuenta que las unidades de polarización no tienen entradas o conexiones en ellas, ya que siempre producen el valor "+1" [13].

Page 18: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

17

Figura 3.Red Neuronal Artificial multicapa

Fuente 3.M. T. Hagan, H. B. Demuth

Los pesos de la red se obtienen por entrenamiento. Para esto es necesario utilizar algoritmos que se generan desde la plataforma de simulación. El algoritmo de aprendizaje “backpropagation” es uno de los utilizados [14] en las redes neuronales artificiales. 4.3 SISTEMA OPERATIVO ANDROID

Android es un Sistema Operativo móvil basado en una versión modificada del Sistema Operativo LINUX. Es una plataforma móvil gratuita, abierta, completa y confiable, diseñada principalmente para dispositivos móviles con pantalla táctil como teléfonos inteligentes y tabletas, dándoles la posibilidad de navegar por Internet, instalar aplicaciones, videojuegos, escuchar música, enviar mensajes de texto, realizar llamadas, entre otras funciones. Fue originalmente diseñado por la empresa Android Inc. como parte de una estrategia para incursionar en el campo de la telefonía móvil, hasta que fue adquirida en el año 2005 por Google.

La ventaja principal de Android es que su codificación es abierta y gratuita, así qué, quien utilicé el sistema operativo para realizar aplicaciones, puede descargar su código fuente. Ofrece un enfoque unificado al desarrollo de aplicaciones. Dichas aplicaciones pueden funcionar en diferentes dispositivos mientras éstos funcionen con el sistema operativo Android. El código abierto permite a los fabricantes de dispositivos móviles crear interfaces de usuario (UI) y añadir características propias a ciertos dispositivos.

Page 19: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

18

4.3.1 ARQUITECTURA

El sistema operativo Android está aproximadamente dividido en 5 partes:

- Kernel Linux: es el núcleo de Android. Esta capa contiene todos los drivers

de menor nivel para los diversos componentes de hardware de un dispositivo

Android.

- Librerías: contienen los códigos que proveen las principales características

del sistema operativo.

- Entorno de ejecución (Runtime) Android: en la misma capa que las librerías,

el entorno de ejecución de Android provee un núcleo de librerías que permite

a los desarrolladores programar aplicaciones en Android usando el lenguaje

de programación Java.

- Framework de aplicaciones: expone las diversas capacidades del sistema

operativo Android para que los desarrolladores de aplicaciones puedan hacer

uso de ellas.

- Aplicaciones: en esta capa superior se encuentran las aplicaciones que trae

por defecto un dispositivo Android (Teléfono, Contactos, Navegador web, etc)

y aquellas que pueden ser descargadas e instaladas o adquiridas desde

Google Play. Cualquier aplicación que se programe estará en esta capa.

4.3.2 DESARROLLO DE APLICACIONES EN ANDROID

Android es una plataforma móvil de desarrollo, diseñada para encarar un mercado gratuito y abierto, en el que todos los usuarios de dispositivos móviles puedan tanto obtener aplicaciones como desarrollarlas.

El Kit de Desarrollo de Software (SDK) de Android provee una extensa variedad de interfaces de programación de aplicaciones o APIs. Estas APIs sirven de gran ayuda como herramienta para el desarrollo de aplicaciones eficientes.

La Máquina Virtual Dalvik (DalvikVM):

Las aplicaciones en Android son escritas en su mayoría usando lenguaje de programación Java, y son ejecutadas utilizando una máquina virtual (VM) personalizada llamada Dalvik en vez de la tradicional máquina virtual de Java (JVM). Cada aplicación de Android funciona en un proceso separado dentro de su propia instancia en Dalvik, dejando toda la responsabilidad de manejo de memoria y de procesos al entorno de ejecución.

La VM Dalvik y el entorno de ejecución se asientan por encima de un núcleo Linux que se encarga del manejo de interacciones de hardware de bajo nivel. Las aplicaciones también son en parte programadas utilizando el lenguaje de programación XML.

Page 20: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

19

Framework de Aplicaciones: El marco de trabajo o Framework de aplicaciones de Android provee todo lo necesario para desarrollar una aplicación móvil. Una aplicación posee un ciclo de vida que involucra los siguientes componentes:

- Actividades: son funciones que la aplicación realiza.

- Vistas: definen la apariencia de la aplicación.

- Intentos: informan al sistema acerca de lo que realiza una aplicación.

- Servicios: permiten procesamientos en segundo plano sin intervención

del usuario.

- Notificaciones: alertan al usuario sobre acontecimientos [15].

Kit de Desarrollo de Software SDK (Software Development Kit): El SDK de Android está compuesto por una extensa sección de herramientas, documentación, tutoriales y ejemplos para el desarrollo de aplicaciones. También se incluyen librerías para Java, que contienen las APIs del framework de aplicaciones. Los principales sistemas operativos se pueden usar como ambientes de desarrollo. Las características principales del SDK son:

- El depurador de las aplicaciones que estén funcionando en un dispositivo

o en un emulador.

- Un perfil de memoria y desempeño para encontrar fallas de memoria.

- Un emulador de dispositivos preciso para simular diferentes plataformas

de hardware.

- Herramientas para el despliegue de aplicaciones.

El SDK puede ser integrado a Eclipse, un Ambiente de Desarrollo Integrado (IDE) especial para Java. La integración se lleva a cabo mediante el plugin de Herramientas de Desarrollo de Android (ADT), que añade nuevas capacidades al IDE Eclipse con el fin de crear proyectos, ejecutarlos, depurar aplicaciones en el emulador o en un dispositivo, y empaquetar aplicaciones para su despliegue en Google Play. Emulador de Android: El SDK de Android incluye un emulador de dispositivos móviles que permite desarrollar aplicaciones de prueba sin necesidad de usar un dispositivo físico. Gestor de Dispositivos Virtuales de Android (AVD Manager): El gestor AVD provee una interfaz gráfica en la cual se pueden crear y gestionar Dispositivos Virtuales de Android, requeridos por el emulador de Android.

Page 21: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

20

4.3.3 VISTAS, ACTIVIDADES, SERVICIOS E INTENTOS EN ANDROID

Vistas:

La mayoría de aplicaciones en Android necesitan una interfaz de usuario. El SDK de Android cuenta con numerosos elementos disponibles para realizar esta interfaz, empaquetados en un archivo de Java llamado android.view.

Una vista es una Interfaz de Usuario que representa un área rectangular de la pantalla del dispositivo móvil, que contiene los controles, objetos gráficos, y la disposición espacial de los mismos de una aplicación. Para que una vista sea realmente funcional, debe ir ligada a una actividad.

Actividades:

Una actividad constituye la clase2 base que encierra una vista. Contiene la codificación de los componentes visuales e interactivos de una aplicación. Es la encargada de disponer las acciones que realice y de sus recursos, de elaborar los métodos, identificar objetos de programación y de realizar las tareas en segundo plano. Cada vista de una aplicación es una extensión de su actividad. Las actividades utilizan las vistas para formar Interfaces de Usuario gráficas que muestran información y responden a comandos del usuario.

Ciclo de vida de una actividad:

Las aplicaciones en Android pueden tener múltiples procesos, mientras que el mismo sistema operativo permite que varias aplicaciones corran simultáneamente, proveen memoria y energía necesarias. Sin embargo, sólo puede haber una aplicación visible al tiempo y específicamente, sólo una actividad. La actividad define una serie de eventos que gobiernan su ciclo de vida, que se muestran a continuación.

onCreate(): Llamado cuando la actividad es creada por primera vez.

onRestart():Llamado cuando la actividad ha sido detenida, antes de ser iniciada de nuevo.

onStart(): Llamado cuando la actividad se hace visible al usuario.

onResume(): Llamado cuando la actividad empieza a interactuar con el usuario.

onPause(): Llamado cuando la actividad actual es pausada y una anterior es continuada.

onStop(): Llamado cuando la actividad no es visible ya para el usuario.

onDestroy(): Llamado cuando la actividad ha sido destruida por el sistema, ya sea manualmente o para que el sistema conserve memoria).

2 Háblese de clase refiriéndose a la estructura principal de un programa en el lenguaje de programación Java

Page 22: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

21

Figura 4. Ciclo de vida de una actividad

Fuente 4.Android Application Development for Dummies, DonnFelker, pág 119, Editorial Wiley.

Intentos: Un intento constituye un mecanismo de comunicación asíncrono entre una tarea específica y una actividad. Está compuesto por una acción para ser realizada y un dato con el cual operar. Cuando una aplicación contiene más de una actividad, se utilizan intentos para navegar entre ellas.

Servicios: Son líneas de código que funcionan en un segundo plano de la aplicación y no necesitan una Interfaz de Usuario. Se encargan de ejecutar las acciones que se realicen en una vista, desde su actividad respectiva.

4.3.4 LENGUAJE DE PROGRAMACIÓN XML XML proviene de Extensible Markup Language (“Lenguaje de Marcado Extensible”). Se trata de metalenguaje extensible de etiquetas que fue desarrollado por el Word Wide Web Consortium (W3C), un consorcio internacional que elabora recomendaciones para la World Wide Web.

Page 23: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

22

El XML es una adaptación del SGML (Standard Generalized Markup Language), un lenguaje que permite la organización y el etiquetado de documentos. Esto quiere decir que el XML no es un lenguaje en sí mismo, sino un sistema que permite definir lenguajes de acuerdo a las necesidades. Las bases de datos, los documentos de texto, las hojas de cálculo y las páginas web son algunos de los campos de aplicación del XML. El metalenguaje aparece como un estándar que estructura el intercambio de información entre las diferentes plataformas. Los expertos nombran varias ventajas que derivan de la utilización del XML. Es extensible (se pueden añadir nuevas etiquetas tras el diseño del documento), su analizador es estándar y facilita el análisis y procesamiento de los documentos XML creados por terceros. Entre los lenguajes creados con XML, se destacan el XSL (Extensible Style Sheet Language) y el XLINK (que intenta trascender las limitaciones de los enlaces de hipertexto en HTML). La validez de los documentos (es decir, que su estructura sintáctica se encuentre desarrollada correctamente) depende la relación especificada entre los distintos elementos a partir de una definición o documento externo [15].

4.3.5 LENGUAJE DE PROGRAMACIÓN JAVA Java es un lenguaje de programación de alto nivel orientado a objetos. Fue creado por la empresa Sun Microsystems y publicado en 1995. Los programas en Java se hacen con clases, a partir de una definición de clase se puede crear una cantidad de objetos, que también se conocen como instancias de una clase. Los objetos agrupan en estructuras encapsuladas tanto sus datos como los métodos (o funciones) que manipulan esos datos. Una de las principales características es que es un lenguaje independiente de la plataforma. Eso quiere decir que si se realiza un programa en Java podrá funcionar en cualquier ordenador del mercado, trayendo una ventaja significativa para los desarrolladores de software. Esto lo consigue porque se ha creado una Máquina 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. Los programas en Java suelen estar en una de las siguientes categorías:

- Applets: Los applets son pequeños programas que se incorporan en una

página Web y que por lo tanto, necesitan de un Navegador Web compatible

con Java para poder ejecutarse. A menudo los applets se descargan junto

con una página HTML desde un Servidor Web y se ejecutan en la máquina

Page 24: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

23

Fuente 5. Texto - Microcontroladores: Fundamentos y Aplicaciones con PIC

cliente.

- Aplicaciones: Las aplicaciones son programas independientes de propósito

general que normalmente se ejecutan desde la línea de comandos del

sistema operativo. Con Java se puede realizar cualquier programa que

normalmente se crearía con algún otro lenguaje de programación.

- Servlets: Los servlets al contrario de los applets son programas que están

pensados para trabajar en el lado del servidor y desarrollar aplicaciones Web

que interactúen con los clientes [16].

4.3.6 Kit de Desarrollo de Java JDK (Java Development Kit)

Es un software que provee herramientas de desarrollo para la creación de programas en Java. Puede instalarse en un computador local o en una unidad de red. Es necesario tener el JDK instalado en el computador para poder programar aplicaciones para Android.

4.3.7 Microcontroladores

La arquitectura de los PIC [17] responde al esquema de bloques de la figura 5. Todos están basados en la arquitectura Harvard, con memorias de programa y datos separados. Como en la mayoría de los microcontroladores, la memoria de programa es mucho mayor que la de datos. La memoria de programa está organizada en palabras de 12,14 o 16 bits mientras que la memoria de datos está compuesta por registros de 8 bits. El acceso a los diversos dispositivos de entrada y salida se realiza a través de algunos registros de la memoria de datos, denominados registros de funciones especiales SFR (Special Function Registers). Muchos microcontroladores PIC cuentan con una cierta cantidad de memoria EEPROM para el almacenamiento no volátil de datos.

Figura 5. Esquema de bloques general de un microcontrolador

Page 25: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

24

4.4 Diferencias entre aplicativos

La aplicación móvil nativa propuesta realiza cálculos matemáticos con formato de doble precisión, gestión a bases de datos, graficación y adaptabilidad al análisis de tráfico de los sistemas de telefonía fija y móvil, en la siguiente tabla se describe la comparación entre aplicativos por factores de precisión, conectividad, tipo de aplicación, variables de función Erlang B, entre otras. Tabla 1. Comparativo entre aplicaciones

Ítem FACTOR APP ERLANG B/C –Play Store

https://play.google.com/store/apps/details?id=dim.erl

angbccalculator&hl=es

APLICACIÓN HTML5

http://www.erlang.com/calculator/erlb/

APP ERLANG B PROPUESTA

https://play.google.com/store/apps/details?id=com.personal.erlangbrna&hl=es

1 Precisión 4 decimales 3 decimales Más de 4 decimales

2 Conexión No requiere acceso a internet

Requiere acceso a internet

No requiere acceso a internet

3 Tipo de aplicación

Nativa Web Nativa

4 Integración RNA multicapa

No No Si

5 Variable intensidad de tráfico del Sistema troncal

Si Si Si

6 Variable Número de canales

Si Si Si

7 Variable Probabilidad de Bloqueo

Si Si Si

8 Variable intensidad de tráfico/usuario.

No No Si

9 Variable número de llamadas bloqueadas

No No Si

Page 26: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

25

Ítem FACTOR APP ERLANG B/C –Play Store

https://play.google.com/store/apps/details?id=dim.erl

angbccalculator&hl=es

APLICACIÓN HTML5

http://www.erlang.com/calculator/erlb/

APP ERLANG B PROPUESTA

https://play.google.com/store/apps/details?id=com.personal.erlangbrna&hl=es

10 Gestión a base de datos

No Si Si

11 Graficación GOS y Número de usuarios vs tiempo

No No Si

Page 27: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

26

5. METODOLOGIA

5.1 DISEÑO DE RED NEURONAL MULTICAPA

Con los resultados obtenidos de la ecuación 1 y con la guía de la carta de Erlang B, se construye la tabla de datos tomando como variables de entrada, el número de canales “C” y la intensidad de tráfico “A” (Erlangs), y como variable de salida, la probabilidad de bloqueo (GOS).

Pbloqueo = (

AC

C!)

∑AK

K!CK=0

= GOS (1)

Ecuación 1. Ecuación de Erlang B

La ecuación de Erlang B como función no lineal, no responde al principio de superposición. Recordando que una función lineal sí cumple con las propiedades de adición y homogeneidad, la linealidad está asociada al concepto de espacio vectorial,

conjunto en los que se definen dos operaciones, una interna (suma de vectores 𝑋 +𝑌) y otra externa (multiplicación por un escalar 𝑎𝑋, en la que “𝑎” pertenece a un conjunto externo). Para comprobar la linealidad de una función 𝑓(𝑋) no es necesario realizar la comprobación de las propiedades de homogeneidad y aditividad por separado, con mostrar que 𝑓(𝑎𝑋 + 𝑏𝑌) = 𝑎𝑓(𝑋) + 𝑏𝑓(𝑌) la linealidad queda demostrada [18]. En este orden de ideas, para poder diseñar con precisión la RNA de la ecuación de Erlang B, fue preciso diseñar la tabla de datos y la red neuronal multicapa para una

función lineal básica como 𝑓(𝑋) = 𝑎𝑋

Las siguientes tablas representan las funciones lineales 𝑓(𝑋) = 3𝑋 y 𝑓(𝑋) = 5𝑋, donde 3 y 5 son los escalares, la variable independiente 𝑋 es la entrada y la variable dependiente 𝑓(𝑋) = 𝑌 es la salida de cada respectiva función: Tabla 2.Datos de Función 𝑓(𝑋) = 3𝑋

Tabla 3.Datos de Función 𝑓(𝑋) = 5𝑋

Page 28: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

27

La representación gráfica de las funciones lineales 𝑓(𝑋) = 3𝑋 y 𝑓(𝑋) = 5𝑋 se

muestran en la figura 6 en el plano de dos dimensiones, el eje independiente 𝑋 vs el eje dependiente 𝑓(𝑋) = 𝑌 Figura 6. Gráfica de las funciones 𝑓(𝑋) = 3𝑋 y 𝑓(𝑋) = 5𝑋

Fuente 6. Autor

El diseño RNA de la figura 7 es la que mejor responde a estos sistemas lineales, esta se compone de una capa de entrada (2 neuronas con función de activación logsig), una capa oculta (2 neuronas con función de activación purelin) y una capa de salida (una neurona con función de activación purelin), permitiendo que con esta última función de activación, se presenten valores oscilantes entre 0 y mayores a 1.

Page 29: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

28

Figura 7. RNA multicapa de función lineal Y=aX

Fuente 7. Autor

El modelo RNA multicapa de función lineal 𝑓(𝑋) = 𝑎𝑋 actuará en total con diez pesos y 5 bias (cada bias/neurona). En el diagrama de flujo de la figura 8, se efectúan las operaciones aritméticas presentes en cada neurona con propagación hacia adelante, iniciando desde la capa 1 y finalizando en la capa 3; los valores de los pesos “W1-10”y unidades de oscilación “B1-5” de esta RNA, se obtienen del entrenamiento y utilización del algoritmo de aprendizaje Levenberg Marquardt.

Page 30: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

29

Figura 8. Diagrama de flujo de modelo RNA para función lineal f(X)=3X

Fuente 8. Autor

Page 31: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

30

Figura 9. Funciones de activación Logsig y Purelin

Fuente 9. https://www.researchgate.net/figure/38320164_fig1_Figura-1-Funciones-de-activacion-a-Funcion-logistica-o-LogSig-b-Funcion-Gaussiana-o

Las funciones de activación se muestran a continuación:

Este previo desarrollo metodológico de estudiar el comportamiento de red neuronal artificial en funciones lineales, permitió establecer para la función no lineal de Erlang B, unos criterios para rediseñar la RNA, analizar y tabular los datos de acuerdo a las variables presentes de intensidad de tráfico y probabilidad de bloqueo por número de canales.

Page 32: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

31

Para este proceso, se siguieron los siguientes pasos:

1. Graficar el comportamiento por canal: Con la utilización de la fórmula Erlang B, se calcula y tabulan los datos de las variables Canales, Intensidad de Tráfico y Probabilidad de bloqueo. Logrando obtener el gráfico en dispersión de los diferentes tramos no lineales que se muestran en la figura 10.

Figura 10. Carta de Erlang B en dispersión y discriminación a 5 y 6 canales

Fuente 10. Autor

Page 33: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

32

Como ejemplo de la no linealidad, se tiene que la intensidad de tráfico varía entre 0.7 y 2.7 Erlangs para 5 canales y de 1 a 3.5 Erlangs para 6 canales. Esto sucede de forma progresiva para los demás canales.

En la gráfica 10 se observa la extensión a 120 Canales de la carta Erlang B.

Figura 11. Carta de Erlang B extendida a 120 Canales

Fuente 11. Autor

Este criterio “no lineal” determina la necesidad de utilizar una red neuronal artificial de mayor magnitud y complejidad matemática.

2. Tabular los datos por cada par de canales: Para ser precisos en el registro de los datos, fue necesario desarrollar en Matlab los script y guide de la ecuación Erlang B. En el siguiente diagrama de bloques se muestra el proceso de registro y pruebas para seleccionar la arquitectura de red neuronal artificial:

Ecuación Erlang B

(Script, Guide Matlab y algoritmo)

Tabulación de datos por cada par de canales

(Excel)

Pruebas de configuración

RNA (Algoritmo trainlm)

Page 34: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

33

A continuación se muestra el guide, script de matlab (ver anexo), algoritmo en diagrama Nassi Schneiderman y algunas tablas con datos registrados:

Figura 12. Guide de ecuación Erlang B

Fuente 12. Autor

Page 35: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

34

En el diagrama de Nassi Schneiderman de la figura 13 se muestra la forma original del algoritmo de la ecuación de Erlang B:

Pbloqueo = (

AC

C!)

∑AK

K!CK=0

= GOS (1)

Ecuación 1. Erlang B

Este diagrama permite entender el desglose de la ecuación como algoritmo, el cual contiene diferentes ciclos repetitivos finitos de sumatoria y factorial. En el caso del numerador, se eleva la intensidad de tráfico “𝐴” al número de canales “𝐶” y ese

resultado se divide por el ciclo del factorial de “𝐶”. Para la parte del denominador, se establece el ciclo de sumatoria que inicia en “𝑘 = 0” y finaliza en “𝑘 = 𝐶”, dentro de este ciclo se realiza la operación de “𝐴” elevado a “𝑘” sobre el ciclo anidado del

factorial “𝑘”. La probabilidad de bloqueo o GOS resultara de dividir el valor obtenido del numerador entre el valor obtenido del denominador.

Figura 13. Diagrama de Nassi Schneiderman para algoritmo de función Erlang B

Fuente 13. Elaborado por el autor con herramienta PseInt

Page 36: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

35

Tabla 4. Datos de Función no lineal Erlang B de 5 a 12 canales

Fuente 14. Autor

Page 37: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

36

Tabla 5. Datos de Función no lineal Erlang B de 13 a 20 canales

Fuente 15. Autor

Así mismo, se tabulan los datos para los demás canales.

Se determina organizar la tabulación por cada par de canales con el objetivo de mejorar los ajustes al momento de aplicar el algoritmo de aprendizaje levenberg Marquardt de matlab.

Page 38: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

37

3. Diseño de RNA multicapa para la función Erlang B:

Al realizar las diferentes pruebas de configuraciones de red neuronal artificial y entrenamientos con el algoritmo “trainlm”, el modelo de RNA multicapa de la figura 14, es el que mejor representa a la función Erlang B ya que ajusta de forma óptima los datos obtenidos de salida por cada par de canales seleccionados.

Figura 14. RNA multicapa de función Erlang B

Fuente 16. Autor

Page 39: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

38

El número de neuronas con sus respectivas funciones de activación por capa, se muestran en la siguiente tabla:

Tabla 6. Configuración RNA de función Erlang B

Número de Capa

Número de neuronas/Capa

Función de activación/capa

1 (Entrada) 2 Logsig

2 (Oculta) 6 Logsig

3 (Oculta) 5 Purelin

4 (Salida) 1 Purelin

Fuente 17. Autor

4. Ecuaciones de RNA multicapa para función Erlang B:

Por cada neurona se genera una ecuación. Desde la capa uno de entrada están

ingresando a cada neurona los valores de intensidad de tráfico “𝐴” y número de canales “𝐶”. Cada una de estas ecuaciones realiza la operación de sumatoria, entre

la multiplicación de cada entrada por su respectivo peso “𝑊𝑛” obtenido del entrenamiento, adicionando el bias “𝑏𝑛” también obtenido del entrenamiento, y luego, a ese resultado se le aplica la función de activación que para la red, es la Logsig o Purelin. De forma progresiva y con propagación hacia adelante, se producen los demás cálculos matemáticos hasta llegar a la última neurona de la capa cuatro de salida, siendo la que muestra el valor de la probabilidad de bloqueo

“𝑃𝑟”.

(𝐶 − 𝐶𝑎𝑛𝑎𝑙𝑒𝑠, 𝐴 − 𝐼𝑛𝑡𝑒𝑛𝑠𝑖𝑑𝑎𝑑 𝑑𝑒 𝑇𝑟á𝑓𝑖𝑐𝑜 "Erlangs", 𝑊𝑛 − 𝑃𝑒𝑠𝑜𝑠, 𝑏𝑛 − 𝑏𝑖𝑎𝑠, 𝑃𝑟− 𝑃𝑟𝑜𝑏𝑎𝑏𝑖𝑙𝑖𝑑𝑎𝑑 𝑑𝑒 𝑏𝑙𝑜𝑞𝑢𝑒𝑜 𝑜 𝑔𝑟𝑎𝑑𝑜 𝑑𝑒 𝑠𝑒𝑟𝑣𝑖𝑐𝑖𝑜)

Neurona 1

𝐴1 = (𝑪 ∗ 𝑊1) + (𝑨 ∗ 𝑊2) + 𝑏1 𝑁1 = 1/(1 + 𝑒−𝐴1)

Neurona 2

𝐴2 = (𝑪 ∗ 𝑊3) + (𝑨 ∗ 𝑊4) + 𝑏2

𝑁2 = 1/(1 + 𝑒−𝐴2) Neurona 3

𝐴3 = (𝑁1 ∗ 𝑊5) + (𝑁2 ∗ 𝑊6) + 𝑏3

𝑁3 = 1/(1 + 𝑒−𝐴3) Neurona 4

𝐴4 = (𝑁1 ∗ 𝑊7) + (𝑁2 ∗ 𝑊8) + 𝑏4

𝑁4 = 1/(1 + 𝑒−𝐴4) Neurona 5

𝐴5 = (𝑁1 ∗ 𝑊9) + (𝑁2 ∗ 𝑊10) + 𝑏5

𝑁5 = 1/(1 + 𝑒−𝐴5) Neurona 6

𝐴6 = (𝑁1 ∗ 𝑊11) + (𝑁2 ∗ 𝑊12) + 𝑏6

Page 40: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

39

𝑁6 = 1/(1 + 𝑒−𝐴6) Neurona 7

𝐴7 = (𝑁1 ∗ 𝑊13) + (𝑁2 ∗ 𝑊14) + 𝑏7

𝑁7 = 1/(1 + 𝑒−𝐴7) Neurona 8

𝐴8 = (𝑁1 ∗ 𝑊15) + (𝑁2 ∗ 𝑊16) + 𝑏8

𝑁8 = 1/(1 + 𝑒−𝐴8) Neurona 9

𝐴9 = (𝑁3 ∗ 𝑊17) + (𝑁4 ∗ 𝑊18) + (𝑁5 ∗ 𝑊19) + (𝑁6 ∗ 𝑊20) + (𝑁7 ∗ 𝑊21) + (𝑁8 ∗ 𝑊22)+ 𝑏9

𝑁9 = 𝐴9 Neurona 10

𝐴10 = (𝑁3 ∗ 𝑊23) + (𝑁4 ∗ 𝑊24) + (𝑁5 ∗ 𝑊25) + (𝑁6 ∗ 𝑊26) + (𝑁7 ∗ 𝑊27) + (𝑁8 ∗ 𝑊28)+ 𝑏10

𝑁10 = 𝐴10 Neurona 11

𝐴11 = (𝑁3 ∗ 𝑊29) + (𝑁4 ∗ 𝑊30) + (𝑁5 ∗ 𝑊31) + (𝑁6 ∗ 𝑊32) + (𝑁7 ∗ 𝑊33) + (𝑁8 ∗ 𝑊34)+ 𝑏11

𝑁11 = 𝐴11 Neurona 12

𝐴12 = (𝑁3 ∗ 𝑊35) + (𝑁4 ∗ 𝑊36) + (𝑁5 ∗ 𝑊37) + (𝑁6 ∗ 𝑊38) + (𝑁7 ∗ 𝑊39) + (𝑁8 ∗ 𝑊40)+ 𝑏12

𝑁12 = 𝐴12 Neurona 13

𝐴13 = (𝑁3 ∗ 𝑊41) + (𝑁4 ∗ 𝑊42) + (𝑁5 ∗ 𝑊43) + (𝑁6 ∗ 𝑊44) + (𝑁7 ∗ 𝑊45) + (𝑁8 ∗ 𝑊46)+ 𝑏13

𝑁13 = 𝐴13 Neurona 14

𝐴14 = (𝑁9 ∗ 𝑊47) + (𝑁10 ∗ 𝑊48) + (𝑁11 ∗ 𝑊49) + (𝑁12 ∗ 𝑊50) + (𝑁13 ∗ 𝑊51) + 𝑏14

𝑷𝒓 = 𝑁14 = 𝐴14

5. Algoritmo y funciones características del modelo RNA multicapa

En el diagrama de flujo de la figura 15 se observa el proceso matemático de la red neuronal artificial de la función Erlang B por cada par de canales:

Page 41: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

40

Figura 15. Diagrama de Flujo del proceso matemático RNA de la Función Erlang B por cada par de canales

Fuente 18. Autor

En los siguientes pseudocódigos y diagramas de flujo, se efectúan las diferentes funciones y subrutinas de las operaciones aritméticas básicas que deben presentarse en cada neurona, iniciando desde la capa 1 y finalizando en la capa 4. Se precisa que en el pseudocódigo, se toman los valores de pesos y bias, como ejemplos de constantes que ingresan a una neurona y de forma progresiva con propagación hacia adelante, se realizan los diferentes cálculos.

Page 42: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

41

Fuente 19. Autor

Figura 16. Diagrama de Flujo de Función Canal

En la figura 16 se muestra el diagrama de flujo de la función del algoritmo principal, en el que se determina la decisión para que se ejecute la función dependiendo del canal ingresado: Algoritmo llamarfunciones Escribir 'Ingresar el canal' Leer C Si C==5 Entonces c5 SiNo Si C==10 Entonces c10 SiNo Escribir 'No existe entrenamiento neuronal' Fin Si Fin Si FinAlgoritmo La función con retorno, sirve para calcular la probabilidad de bloqueo después de realizarse el cálculo matemático con los respectivos argumentos: En la figura 17 se muestra el diagrama de flujo para la función de activación de la RNA (Ecuación con función de activación Logsig)

Page 43: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

42

Figura 17. Diagrama de flujo de función de activación Logsig

Fuente 20. Autor

Fuente 21. Autor

Figura 18. Diagrama de flujo de función para 5 canales

Funcion funeurona <- calc(w1,w2,b1,A,c) k <- (A*w1)+(C*w2)+b1 funlogsig <- 1/(1+exp(-k)) Escribir 'LA PROBABILIDAD DE BLOQUEO ES' funeurona <- funlogsig Fin Funcion En la figura 18 se muestra el diagrama de flujo de la función de 5 canales, donde se almacena en variables los valores de intensidad de tráfico, pesos y bias; estas variables son enviadas como parámetros a la función general para que así, se pueda realizar el cálculo final de probabilidad de bloqueo. Función para 5 Canales en neurona Funcion c5 Escribir 'Ingresar Intensidad de Tráfico' Leer A c<-5 w1<-1 w2<-1 b1<-1 Escribir calc(w1,w2,b1,A,c) Fin Funcion

Page 44: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

43

Figura 19. Diagrama de flujo de función para 10 canales

Fuente 22. Autor

En la figura 19 se muestra el diagrama de flujo de la función para 10 Canales en neurona. Funcion c10 Escribir 'Ingresar Intensidad de Tráfico' Leer A c<-10 w1<-2 w2<-2 b1<-2 Escribir calc(w1,w2,b1,A,c) Fin Funcion

Page 45: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

44

5.2 ENTRENAMIENTO RNA

Para el caso lineal, de la tabla 7 que tiene 30 datos (20 datos de entrada y 10 datos de salida), para optimizar el ajuste y asegurar una predicción de precisión, se tomaron el 90% para entrenamiento (18 datos de entrada y 9 datos de salida) y el 10% son utilizados para validación (dos datos de entrada y un dato de salida). Con la herramienta de simulación Matlab y las funciones establecidas para el entrenamiento de las redes neuronales artificiales multicapa, se configuran las capas, el número de neuronas/capa y las respectivas funciones de activación/neurona.

La función lineal 𝑓(𝑋) = 𝑎𝑋, si el escalar 𝑎 = 5.

Tabla 7. f(X)=5X

Fuente 23. Autor

El algoritmo para el entrenamiento RNA es el de Levenberg-Marquardt y se observa en los diagramas de flujo de las figuras 20 y 21:

Figura 20. Diagrama de flujo del algoritmo de entrenamiento RNA

Fuente 24. Autor

Page 46: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

45

Fuente 26. Herramienta nntraintool de Matlab

Figura 21. Diagrama de flujo de función Levenberg Marquardt

Fuente 25. Autor

Las gráficas obtenidas del entrenamiento, rendimiento y ajuste a través de las épocas, se muestran a continuación: En la figura 15 se muestra el diseño RNA de 3 capas con funciones de activación logsig, en la que una capa de entrada se constituye de 2 neuronas, la segunda capa oculta de 2 neuronas y la tercera capa (salida) de una neurona. En esta ventana también se visualiza el tipo de entrenamiento con el número de iteraciones del gradiente descendente necesarios para el mejor ajuste de la función de costo o error medio cuadrático. Son dos entradas para la primera capa, la primera entrada es el valor del escalar

"𝑎 = 5" y la segunda entrada son los valores de la variable independiente “𝑋” en el rango de 0 a 9. Para la capa de salida, se obtiene el resultado de 𝑓(𝑋) = 𝑌. Figura 22. RNA multicapa para función lineal

Page 47: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

46

Figura 23. Estado de entrenamiento hasta 1000 épocas

Fuente 27. Herramienta plottrainstate de Matlab

Figura 24. Rendimiento del entrenamiento.

Fuente 28. Herramienta plotperform de Matlab

En la figura 16 se observa cómo se modifica el gradiente descendente y el valor adaptativo mu a cada iteración hasta llegar a la configuración de 1000 iteraciones con cero fallas de validación, y así lograr el óptimo ajuste (menor función de costo) y mejor entrenamiento con las constantes de pesos y bias de la RNA:

En la figura 17, a la primera iteración la función de costo es máxima y a medida que se ejecutan las demás iteraciones, se modifica también el gradiente descendente, hasta alcanzar el objetivo de entrenamiento con el mejor ajuste a las 1000 épocas y el mínimo error medio cuadrático de 3.8224e-06:

𝐹𝑢𝑛𝑐𝑖ó𝑛 𝑑𝑒 𝐶𝑜𝑠𝑡𝑜: 𝐽(𝜃0, 𝜃1)

Page 48: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

47

Figura 25. Ajuste en los datos de salida

Fuente 29. Herramienta Training de Matlab

En la figura 18 se observa el ajuste óptimo de todos los datos de salida presentes en el entrenamiento, con la función de regresión:

𝑂𝑢𝑡𝑝𝑢𝑡 = 1 ∗ 𝑇𝑎𝑟𝑔𝑒𝑡 + 0.00018

𝑂𝑢𝑡𝑝𝑢𝑡 = 1 ∗ 20 + 0.00018 𝑂𝑢𝑡𝑝𝑢𝑡 = 20 + 0.00018

𝑂𝑢𝑡𝑝𝑢𝑡 = 20.00018 Ecuación 2. Regresión

La línea de color azul muestra cómo se pueden predecir los datos de salida que no se encuentran definidos en los puntos, ejemplo: si se tiene un target de 22.5, a qué valor equivale el Output?

𝑂𝑢𝑡𝑝𝑢𝑡 = 1 ∗ 𝑇𝑎𝑟𝑔𝑒𝑡 + 0.00018 𝑂𝑢𝑡𝑝𝑢𝑡 = 1 ∗ 22.5 + 0.00018

𝑂𝑢𝑡𝑝𝑢𝑡 = 22.5 + 0.00018

𝑂𝑢𝑡𝑝𝑢𝑡 = 22.50018 Ecuación 2. Regresión

Es decir que se predice con precisión el resultado de 22.5, obtenido de: 𝑓(𝑋) = 5𝑋

𝑓(𝑋) = 5 ∗ 4.5 𝑓(𝑋) = 22.5 ≈ 22.50018 Ecuación 3. Función Lineal

La predicción no será precisa cuando se toma datos muy alejados de la tabla de entrenamiento, esto se observa en el extremo de la tabla 7 en las celdas de colores verde, amarillo y rojo. Siendo las celdas de color verde, los datos de predicción precisa y las celdas de color rojo, los datos de predicción imprecisa.

Page 49: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

48

En el siguiente caso No Lineal, en donde se modela la RNA de la función de Erlang B. La recopilación de datos por cada tabla (par de canales), para obtener el mejor ajuste con valores de pesos y bias de la RNA, se tomaron 243 datos (162 datos de entrada y 81 datos de salida), de los cuales el 92.6% son utilizados para entrenamiento (150 datos de entrada y 75 datos de salida) y el 7.4% son utilizados para validación (12 datos de entrada y 6 datos de salida).

Para el desarrollo algorítmico básico, se toma de referencia la tabla 4 con los datos de la función Erlang B establecida para 5 y 6 canales.

El algoritmo para el entrenamiento RNA es el de Levenberg-Marquardt y se observa en los diagramas de flujo de las figuras 26 y 27:

Figura 26. Diagrama de flujo del algoritmo de entrenamiento RNA

Fuente 30. Autor

Page 50: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

49

Figura 28. RNA multicapa para función No lineal Erlang B

Fuente 32. Herramienta nntraintool de Matlab

Figura 27. Diagrama de flujo de función Levenberg Marquardt

Fuente 31. Autor

Las gráficas obtenidas del entrenamiento, rendimiento y ajuste a través de las épocas, se muestran a continuación:

En la figura 19 se muestra el diseño RNA de 4 capas con funciones de activación Logsig y purelin, en la que una capa de entrada se constituye de 2 neuronas, la segunda capa (oculta) de 6 neuronas, la tercera capa (oculta) de 5 neuronas y la cuarta capa (salida) de una neurona. En esta ventana también se visualiza el tipo de entrenamiento con el número de iteraciones del gradiente descendente necesarios para el mejor ajuste de la función de costo o error medio cuadrático. Son dos entradas para la primera capa, la primera entrada es el valor del número

de canales "𝐶" y la segunda entrada es el valor de la intensidad de tráfico del sistema troncal “𝐴”. Para la capa de salida, se obtiene el resultado de la probabilidad

de bloqueo "𝑃𝑏".

Page 51: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

50

Figura 29. Estado de entrenamiento hasta 1000 épocas

Fuente 33. Herramienta plottrainstate de Matlab

En la figura 20 se observa cómo se modifica el gradiente descendente y el valor adaptativo mu a cada iteración hasta llegar a la configuración de 1000 iteraciones con cero fallas de validación, y así lograr el óptimo ajuste (menor función de costo) y mejor entrenamiento con las constantes de pesos y bias de la RNA:

Los parámetros de la hipótesis3 y la función de costo se modifican al aplicar la formulación del gradiente descendente 𝜃𝑗 para (𝑗 = 0 𝑦 𝑗 = 1):

𝜃0 ≔ 𝜃0 − 𝛼𝜕

𝜕𝜃0 𝐽(𝜃0, 𝜃1)

Ecuación 4. Gradiente descendente 𝑗 = 0

𝜃1: = 𝜃1 − 𝛼𝜕

𝜕𝜃0 𝐽(𝜃0, 𝜃1)

Ecuación 5. Gradiente descendente 𝑗 = 1

Donde 𝛼 es el índice de aprendizaje y 𝜃0, 𝜃1 son los parámetros de la hipótesis.

En la figura 21, a la primera iteración la función de costo es máxima y a medida que se ejecutan las demás iteraciones, se modifica también el gradiente descendente, hasta alcanzar el objetivo de entrenamiento con el mejor ajuste a las 1000 épocas y el mínimo del error medio cuadrático es de 0.000326.

La ecuación de esta función de costo 𝐽(𝜃0, 𝜃1) es:

𝐽(𝜃0, 𝜃1) =1

2𝑚∑(ℎ𝜃(𝑥(𝑖)) + 𝑦(𝑖))2

𝑚

𝑖=1

3 https://www.coursera.org/learn/machine-learning/home/week/5

Page 52: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

51

Figura 30. Rendimiento del entrenamiento.

Fuente 34. Herramienta plotperform de Matlab

Ecuación 4. Función de costo

La función hipótesis4 ℎ𝜃(𝑥) obtenida:

ℎ𝜃(𝑥) = 𝜃𝑇𝑥 = 𝜃0 + 𝜃1𝑥 Ecuación 4. Hipótesis

En la figura 22 se observa el ajuste óptimo de todos los datos de salida presentes en el entrenamiento, con la función de regresión:

𝑂𝑢𝑡𝑝𝑢𝑡 = 1 ∗ 𝑇𝑎𝑟𝑔𝑒𝑡 + 5.5 𝑒 − 05 Ecuación 2. Regresión

Para un target de 5.54% que sería la probabilidad de bloqueo “objetivo”, se obtendría un output o “salida”:

𝑂𝑢𝑡𝑝𝑢𝑡 = 1 ∗ 5.54 + 0.000055 𝑂𝑢𝑡𝑝𝑢𝑡 = 5.540055 Ecuación 2. Regresión

El output o probabilidad de bloqueo de 5,540055% correspondería a las entradas de 5 canales y 2,3 Erlangs de intensidad de tráfico troncal mostradas en la tabla 4. La línea de color azul muestra cómo se pueden predecir los datos de salida que no se encuentran definidos en los puntos, ejemplo: si se tiene un target de 10.57%, a qué valor equivale el Output?

𝑂𝑢𝑡𝑝𝑢𝑡 = 1 ∗ 𝑇𝑎𝑟𝑔𝑒𝑡 + 0.000055 𝑂𝑢𝑡𝑝𝑢𝑡 = 1 ∗ 10.57 + 0.000055

𝑂𝑢𝑡𝑝𝑢𝑡 = 10.57 + 0.000055

𝑂𝑢𝑡𝑝𝑢𝑡 = 10.570055 Ecuación 2. Regresión

4 https://www.coursera.org/learn/machine-learning/home/week/5

𝐹𝑢𝑛𝑐𝑖ó𝑛 𝑑𝑒 𝐶𝑜𝑠𝑡𝑜: 𝐽(𝜃0, 𝜃1)

Page 53: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

52

Figura 31. Ajuste en los datos de salida

Fuente 35. Herramienta Training de Matlab

Es decir que se predice con precisión el resultado de la probabilidad de bloqueo del 10.570055%, obtenido con las entradas de 5 canales y 2.95 Erlangs de intensidad de tráfico troncal:

Estos son los pesos y bias que se obtienen del mejor rendimiento y entrenamiento de la RNA cuando se utilizan cinco y seis canales de la función Erlang B:

Pesos y bias de la capa 1 (2 neuronas, 4 pesos y 2 bias)

nete.iw{1,1}

-1.1812 1.2860

1.2886 -1.7049

nete.b{1,1}

1.1535

-1.0212

Pesos y bias de la capa 2 (6 neuronas, 12 pesos y 6 bias)

nete.Lw{2,1}

-65.0083 -69.0249

0.6256 -12.7446

242.3190 131.4527

69.6368 30.9379

1.2498 -7.6400

71.1546 31.7876

Page 54: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

53

nete.b{2,1}

69.6571

6.3902

-167.6786

-25.8695

5.7968

-26.5411

Pesos y bias de la capa 3 (5 neuronas, 30 pesos y 5 bias)

nete.Lw{3,2}

-1.0829 0.5180 -0.8023 -0.6179 -0.1269 0.6706

-1.1068 0.1409 0.3091 6.7554 1.0200 -5.9041

-0.2859 -0.3026 -0.5302 -1.9808 -0.6752 0.5012

-1.0995 0.4176 -0.5173 -5.8599 -0.0467 6.2448

-1.1256 0.2186 -0.5018 -2.7707 -0.5678 3.3014

nete.b{3}

0.7035

-0.7908

0.2191

-0.1025

0.8228

Pesos y bias de la capa 4 (1 neurona, 5 pesos y un bias)

nete.Lw{4,3}

-0.5827 8.7893 -1.6495 -7.8050 -3.7658

nete.b{4}

0.9651

Esos valores de pesos y bias obtenidos de forma vectorizada del mejor entrenamiento y aplicación del algoritmo de aprendizaje levenberg Marquardt de matlab, se adoptan a las ecuaciones de la RNA con propagación hacia delante de forma no vectorizada para la implementación de las funciones de retorno, escritas en lenguajes de programación como C++ y java. En el siguiente diagrama se observa el procedimiento:

Forma Vectorizada Mejor ajuste de datos

Obtención Wn y bn Aplicación “trainlm”

Adoptar Wn y bn a Ecuaciones

de RNA

Forma No Vectorizada

Funciones de retorno Lenguaje C++ y Java

Page 55: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

54

Fuente 36. Autor

5.3 MODELO VISTA CONTROLADOR DE APLICACIÓN MÓVIL

5.3.1 Modelo MVC de aplicación nativa

Para el diseño de la aplicación nativa en el entorno de desarrollo Android Studio, se tienen presentes tres partes que actúan de forma dinámica, siendo estas: el modelo, la vista y el controlador. En el modelo, se plasma el marco referente y el punto de partida del diseño, que para el proyecto sería la función y el sistema de red neuronal artificial multicapa Erlang B con todo el componente matemático de forma no vectorizada y gestión a base de datos. En la vista, se diseña la interfaz y se determina los objetos básicos del algoritmo (cajas de texto, botones, etiquetas y gráficos) para la entrada, proceso y salida de datos; que deben estar presentes de forma intuitiva para facilitar la interacción entre la persona y el dispositivo móvil. En lo que respecta al controlador, esta hace referencia al proceso de software que permite la funcionalidad de la vista diseñada en leguaje XML, el modelo Erlang B y la base de datos. En esta última parte, se incluyen las clases de java, métodos y librerías de Android.

En la siguiente figura se observa el MVC de la aplicación nativa:

Figura 32. Modelo MVC app nativa Android

Page 56: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

55

5.3.2 Algoritmo del modelo RNA de Erlang B

Este es el Pseudocódigo del algoritmo para los canales 5 y 6: Algoritmo Erlang B_RNA // Declaración de Pesos y Bias para Capa 1 de Entrada (2 Neuronas) W1 <- 0.4158; W2 <- -0.3281; W3 <- -0.5319; W4 <- 0.5659 B1 <- 0.6686; B2 <- -0.1193 // Declaración de Pesos y Bias para Capa 2 Oculta (6 Neuronas) W5 <- 56.7571; W6 <- -49.0134; W7 <- 39.76; W8 <- 48.4762 W9 <- 46.4096; W10 <- 43.0829; W11 <- -15.8276; W12 <- 2.3848 W13 <- -34.8022; W14 <- -35.8864; W15 <- -17.0401; W16 <- -26.4928 B3 <- -31.1933; B4 <- -44.1764; B5 <- -47.3409; B6 <- -4.3592; B7 <- 35.7450; B8 <- 17.9714 // Declaración de Pesos y Bias para Capa 3 Oculta (5 Neuronas) W17 <- -0.9138; W18 <- 2.1482; W19 <- 0.3043; W20 <- -0.2036; W21 <- -2.2236; W22 <- 0.8460 W23 <- -1.6284; W24 <- 3.9088; W25 <- 5.6251; W26 <- 3.3621; W27 <- 6.3604; W28 <- -1.9955 W29 <- 0.4149; W30 <- 1.9551; W31 <- -2.6968; W32 <- -2.6590; W33 <- -5.5211; W34 <- 1.8229 W35 <- 2.4951; W36 <- -3.4823; W37 <- 0.0085; W38 <- -1.8867; W39 <- 2.4870; W40 <- -1.4073 W41 <- -0.0270; W42 <- 0.4426; W43 <- 3.6352; W44 <- 2.9463; W45 <- 4.7868; W46 <- -0.8626 B9 <- 2.0368; B10 <- -3.3673; B11 <- 3.8926; B12 <- -2.3079; B13 <- -2.9902 // Declaración de Pesos y Bias para Capa 4 de Salida (Una Neurona) W47 <- -2.6080; W48 <- 9.6290; W49 <- -7.0703; W50 <- 2.5824; W51 <- 6.6411 B14 <- 0.7330 Escribir 'INGRESAR EL NUMERO DE CANALES' Leer C Escribir 'INGRESAR LA INTENSIDAD DE TRAFICO DEL SISTEMA TRONCAL' Leer A // Capa 1 -Función de activación Logsig // Neurona 1 A1 <- (C*W1)+(A*W2)+B1 N1 <- 1/(1+exp(-A1)) // Neurona 2 A2 <- (C*W3)+(A*W4)+B2 N2 <- 1/(1+exp(-A2)) // Capa 2 -Función de activación Logsig // Neurona 3 A3 <- (N1*W5)+(N2*W6)+B3 N3 <- 1/(1+exp(-A3)) // Neurona 4 A4 <- (N1*W7)+(N2*W8)+B4 N4 <- 1/(1+exp(-A4))

Page 57: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

56

// Neurona 5 A5 <- (N1*W9)+(N2*W10)+B5 N5 <- 1/(1+exp(-A5)) // Neurona 6 A6 <- (N1*W11)+(N2*W12)+B6 N6 <- 1/(1+exp(-A6)) // Neurona 7 A7 <- (N1*W13)+(N2*W14)+B7 N7 <- 1/(1+exp(-A7)) // Neurona 8 A8 <- (N1*W15)+(N2*W16)+B8 N8 <- 1/(1+exp(-A8)) // Capa 3 -Función de activación Purelin // Neurona 9 A9 <- (N3*W17)+(N4*W18)+(N5*W19)+(N6*W20)+(N7*W21)+(N8*W22)+B9 N9 <- A9 // Neurona 10 A10 <- (N3*W23)+(N4*W24)+(N5*W25)+(N6*W26)+(N7*W27)+(N8*W28)+B10 N10 <- A10 // Neurona 11 A11 <- (N3*W29)+(N4*W30)+(N5*W31)+(N6*W32)+(N7*W33)+(N8*W34)+B11 N11 <- A11 // Neurona 12 A12 <- (N3*W35)+(N4*W36)+(N5*W37)+(N6*W38)+(N7*W39)+(N8*W40)+B12 N12 <- A12 // Neurona 13 A13 <- (N3*W41)+(N4*W42)+(N5*W43)+(N6*W44)+(N7*W45)+(N8*W46)+B13 N13 <- A13 // Capa 4 -Función de activación Purelin // Neurona 14 A14 <- (N9*W47)+(N10*W48)+(N11*W49)+(N12*W50)+(N13*W51)+B14 N14 <- A14 Escribir 'LA PROBABILIDAD DE BLOQUEO ES ',N14,'%' FinAlgoritmo

Page 58: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

57

Figura 33. Dirección del Proyecto Android

Fuente 37. Creación del proyecto en IDE Android Studio

Figura 34. Icono de acceso

Fuente 38. Diseño de Autor

5.3.3 Funcionalidad de aplicación móvil

Después de desarrollar y codificar el proyecto de Android en lenguaje java y XML, el IDE Android Studio, permite compilar y generar un archivo de extensión “apk”, el cual puede ser instalado en emulador virtual o equipo Smartphone.

La dirección del proyecto Android es:

D:\Personal\AndroidStudioProjects\Erlangbrna\app\build\outputs\apk

Se muestra en el escritorio del sistema operativo el icono de acceso a la aplicación:

Page 59: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

58

Fuente 39. Carta ErlangB y Autor desarrollador de App

Al abrir la aplicación, se presenta una primera vista tipo “splash”, la cual es una imagen con animación, indicando la configuración de RNA multicapa con la que se diseña la aplicación móvil, después de transcurridos seis segundos, se muestra la segunda vista, como interfaz de interacción con el usuario; en esta, se visualizan los datos de entrada y salida. Como datos de entrada de la función Erlang B, se encuentran las variables “Canales”, “Intensidad de Tráfico” del sistema troncal e “Intensidad de Tráfico” por usuario. Como datos de salida, se encuentran las variables “Probabilidad de Bloqueo o grado de servicio”, “Cantidad de Usuarios” y “Número de llamadas bloqueadas”.

A continuación se muestra la prueba de funcionalidad de la aplicación móvil en comparación con los resultados de la carta Erlang B.

Figura 35. Comparativo entre Carta Erlang B y App

Desde el botón de menú, vinculo “Gráfica”, se envía el dato obtenido de la probabilidad de bloqueo para ser insertado en la base de datos y mostrarse en la gráfica de dos dimensiones, eje independiente “tiempo” y eje dependiente “probabilidad de bloqueo”.

En estas simulaciones se muestra la prueba de funcionalidad del registro histórico y gestión a base de datos SQlite de Android:

Page 60: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

59

Figura 36. Gráfica de tiempo 7:14 a.m vs probabilidad de bloqueo 13.2%

Fuente 40. Autor

Figura 37. Gráfica de tiempo 7:15 a.m vs probabilidad de bloqueo 36.7%

A las 7:14 a.m se presenta una probabilidad de bloqueo del 13.2%

A las 7:15 a.m se presenta una probabilidad de bloqueo del 36.7%

Pro

ba

bili

dad d

e b

loqu

eo

Tiempo (hh:mm:ss)

Pro

ba

bili

dad d

e b

loqu

eo

(%

)

Tiempo (hh:mm:ss)

Page 61: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

60

Figura 38. Gráfica de tiempo 7:16 a.m vs probabilidad de bloqueo 57.1%

Figura 39. Gráfica de tiempo de 7:03 a.m a 7:36 a.m vs probabilidad de bloqueo

A las 7:16 a.m se presenta una probabilidad de bloqueo del 57.1%

Este es el histórico simulado de las probabilidades de bloqueo presentes desde las 7:03 a.m hasta las 7:36 a.m

Pro

ba

bili

dad d

e b

loqu

eo

(%

) Tiempo (hh:mm:ss)

Pro

ba

bili

dad d

e b

loqu

eo

(%

)

Tiempo (hh:mm:ss)

Page 62: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

61

Figura 40. Función RNA Erlang B en Sistema embebido

Fuente 41. Autor

Esta es otra implementación y prueba de funcionalidad de la red neuronal artificial multicapa Erlang B desarrollada para sistema embebido de la familia PIC16f:

(Ver líneas de código en los Anexos del documento).

Page 63: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

62

5.4 VALIDACIÓN DE DATOS

Esta primera actividad se planteó en el curso de Sistemas Móviles Avanzados de la Maestría en Telecomunicaciones Móviles de la Universidad Distrital Francisco José de Caldas:

Planteamiento de 1er. actividad: - Investigue el uso de la carta de Erlang B para obtener el número de

usuarios que un determinado sistema puede soportar al proveer una probabilidad de bloqueo o grado de servicio del 0.5%, en un sistema sin encolamiento con 5, 10, 20 y 100 canales.

- Asuma que cada usuario genera 0.2 Erlang de tráfico. Desarrollo de la 1er. actividad: como se observa en la figura 32, para la probabilidad de bloqueo o grado de servicio del 0.5% (0.005) y la cantidad de canales 5, 10, 20 y 100, se obtienen los valores de la Intensidad de Tráfico del sistema troncal medido en Erlangs “A”.

Figura 41. Carta de Erlang B

Page 64: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

63

Tabla 8. Resultados de la Intensidad de Tráfico A

Probabilidad de Bloqueo de 0.005 (0.5%)

Canales (C) Intensidad de Tráfico en Erlang (A)

5 1,1

10 3,95

20 11,08

100 80,95

Al asumir la intensidad de tráfico de cada usuario Au (Erlang)=0,2

Se utiliza la formula 𝐴 = 𝑈𝐴𝑢 Se calculan la cantidad de usuarios de acuerdo a:

Para C=5 y A=1,1 𝐴

𝐴𝑢= 𝑈

1,1

0,2= 𝑈

𝑈 = 5,5

Para C=10 y A=3,95 3,95

0,2= 𝑈

𝑈 = 19,75 = 20

Para C=20 y A=11,08 11,08

0,2= 𝑈

𝑈 = 55,4 = 56

Para C=100 y A=80,95 80,95

0,2= 𝑈

𝑈 = 404,75 = 405

Page 65: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

64

Figura 42.Resultados ejecución de App para 1ra. Actividad

Fuente 42. Autor

Tabla 9. Resultados de la cantidad de usuarios

Probabilidad de Bloque de 0.005 (0.5%) y La Intensidad de Tráfico por cada usuario Au (Erlang)= 0,2

Canales (C) Intensidad de Tráfico en Erlang (A)

Número de Usuarios (U)

5 1,1 5,5

10 3,95 19,75

20 11,08 55,4

100 80,95 404,75

Estos son los resultados que se muestran de forma automática con la aplicación móvil desarrollada:

Page 66: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

65

Figura 43. Resultados de HTML5 para 1ra.Actividad

Fuente 43. http://www.erlang.com/calculator/erlb/

Figura 44. Resultados de App Android para 1ra.Actividad

Fuente 44. App de Play Store llamada ErlangB/C

En estas otras aplicaciones se observan los resultados comparativos:

Aplicativo en HTML5 de dirección web http://www.erlang.com/calculator/erlb/

Aplicación Android de la Play Store llamada ErlangB/C

En estos dos últimos aplicativos no es posible ingresar la intensidad de tráfico/usuario y tampoco permiten calcular el número de usuarios a los que puede dar servicio el sistema de comunicaciones con GoS del 0,5%.

Page 67: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

66

Figura 45. Resultados ejecución de App para 2da. Actividad

Planteamiento de 2da. actividad:

Una portadora GSM5 ofrece 7 canales de tráfico, calcular el número de terminales a los que puede dar servicio con GoS del 1%, si el tráfico por terminal es de 25mErlang.

Solución: En este sistema celular GSM Se calcula que se puede dar servicio a 100 terminales.

5 http://jpadilla.docentes.upbbga.edu.co/IngTrafico/7-Sistemas%20de%20Perdidas%20y%20la%20Formula%20de%20Erlang-B.pdf

Page 68: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

67

Figura 46. Resultados ejecución de App para 3ra. Actividad

Planteamiento de la 3er. actividad:

Calcular el número de canales necesario para dar servicio a un conjunto de 500 terminales con una intensidad de tráfico por terminal de 20mErlang y un GoS del 1%.

Solución: Para el sistema celular Son necesarios 17 canales.

Con los aplicativos de HTML5 y ErlangB/C de Play Store, no es posible utilizarlos para la 2da y 3ra actividad de dimensionamiento celular, ya que no se puede determinar o asumir la intensidad de tráfico/terminal y tampoco procesar el cálculo de la cantidad de terminales a los que se puede dar servicio en un sistema celular.

Page 69: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

68

Figura 47. Resultados comparativos entre Matlab y Excel

En esta última parte de la validación, se muestra el resultado de la simulación en matlab del mejor entrenamiento de la red neuronal artificial multicapa para los canales 5 y 6, comparándola a la vez, con los datos de entrada y salida registrados en la tabla de Excel.

Page 70: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

69

Fuente 45. Herramienta de simulación Matlab y Microsoft Excel

Se tienen algunos datos de Predicción (no se definen en tabla de Excel) como:

Page 71: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

70

6. APORTES DE INVESTIGACIÓN

Del proyecto de tesis, se tienen los siguientes aportes de investigación:

- Metodología para establecer los modelos de RNA de la función lineal 𝑓(𝑋) =𝑎𝑋 y la función no lineal de Erlang B.

- Arquitectura de red neuronal artificial multicapa de función Erlang B.

Figura 48. Modelo RNA de función Erlang B

Fuente 46. Autor

- Modelamiento matemático para la arquitectura RNA:

Figura 49. Modelamiento matemático de la RNA

Fuente 47. Autor

Page 72: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

71

- Para ajustar la carta de Erlang B al modelo de Red Neuronal Artificial, fue preciso tabular datos y mostrar con claridad el gráfico en dispersión de los canales, así como se observa en la figura 41.

Figura 50. Carta de Erlang B

Fuente 48. Autor

- Al configurar el algoritmo de aprendizaje Levenberg-marquardt, se obtienen los mejores ajustes con funciones de regresión al entrenar la RNA con los datos de entrada (cada par de número de canales e intensidad de tráfico troncal) y la respectiva salida (probabilidad de bloqueo), estas características se detallan en la siguiente tabla:

Tabla 10. Resultados de entrenamiento RNA por cada par de canales.

Gráfico de dispersión de carta Erlang B

(Cada par de canales)

Gradiente Valor adaptativo

Mu

Error medio

cuadrático

Regresión (ajuste de

datos)

0,0032 1e-05 0,000472

Page 73: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

72

Gráfico de dispersión de carta Erlang B

(Cada par de canales)

Gradiente Valor adaptativo

Mu

Error medio

cuadrático

Regresión (ajuste de

datos)

0,00382 1e-05 0,000238

0,015214 1e-06 0,000326

0,00413 1e-06 0,0006

0,00239 1e-06 0,000378

0,132 1e-06 0,000699

0,000152 1e-06 7,13e-05

0,0144 1e-06 7,59e-06

Page 74: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

73

Gráfico de dispersión de carta Erlang B

(Cada par de canales)

Gradiente Valor adaptativo

Mu

Error medio

cuadrático

Regresión (ajuste de

datos)

0,00422 1e-05 4,67e-05

0,00123 1e-06 1,66e-05

4,77e-08 1e-10 6,45e-06

Fuente 49. Algoritmo Trainlm de Matlab

Cada vez que se ejecuta el algoritmo “Trainlm”, se actualizan los pesos y unidades de oscilación de la RNA multicapa, sirviendo estos datos, como constantes para las variables locales de las diferentes funciones con retorno que contienen las ecuaciones características de la red, siendo escritas de forma no vectorizada.

- El proceso de entrenamiento RNA resulta práctico cuando se utiliza la herramienta de software “Matlab”, ya que contiene los algoritmos de aprendizaje y realiza los cálculos de forma vectorizada. Con los parámetros obtenidos del mejor ajuste, se logran implementar las ecuaciones de propagación hacia adelante en los diferentes lenguajes de programación como java y c++.

Tabla 11. Software de entrenamiento e Implementación de ecuaciones RNA

SOFTWARE

Entrenamiento RNA Implementación de ecuaciones RNA

Fuente 50. Algoritmo de Matlab “trainlm” y Autor de las ecuaciones implementadas en java y C++.

Page 75: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

74

Figura 51. Modelo MVC app Nativa

Fuente 51. Autor

- Algoritmo de función Erlang B y Modelo vista controlador de la aplicación móvil nativa:

Page 76: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

75

TRABAJOS FUTUROS

En el campo de la inteligencia computacional y las telecomunicaciones, este caso de estudio puede ser referente para que en un futuro se desarrollen proyectos de investigación como:

- Implementación del modelo RNA de la función Erlang B en sistemas de FPGA y PSOC.

- Implementación del modelo de red neuronal artificial para la función Erlang C.

- Modelos de predicción para el mejoramiento de la calidad de servicio de acuerdo a datos reales obtenidos de las empresas de telecomunicaciones.

- Modelos RNA para la Optimización de recursos (canales, ranuras de tiempo, radiocanales, entre otros).

- Modelo de optimización de estaciones base de acuerdo a historial estadístico de número de llamadas cursadas, grado de servicio e intensidad de tráfico troncal y de usuarios.

Page 77: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

76

CONCLUSIONES

Dependiendo de la complejidad de las funciones no lineales, así mismo se dimensiona el diseño y arquitectura de las redes neuronales artificiales multicapa.

Se logra establecer el modelo RNA multicapa de la función no lineal de Erlang B con las variables de Canales, Intensidad de tráfico y Probabilidad de Bloqueo o Grado de servicio (GOS).

Con esta metodología de diseño RNA Multicapa, entrenamiento, tratamiento algorítmico y matemático, se permite avanzar en el desarrollo de productos de inteligencia computacional que pueden ser implementados en Smartphone y sistemas embebidos.

El desarrollo de la App para Smartphone con sistema operativo Android, es de utilidad como herramienta de simulación, ya que se diferencia de otras aplicaciones, por la precisión de los datos, gestión a base de datos, graficación, flexibilidad y aplicabilidad a los sistemas de comunicaciones.

Page 78: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

77

REFERENCIAS [1] Harrel, “Sharp bounds and simple approximations for the Erlang delay and loss

formulas”, Management Sciences, vol. 34, no 8, pp. 959-972, 1988.

[2] Robert B. Cooper, Daniel P. Heyman. "Teletraffic Theory and Engineering",

Froehlich/Kent Encyclopedia of Telecommunications, VOL. 16, Dekker, 1998,453-483.

[3] Vladimir Shakhov, “Simple approximation for Erlang B formula”, IEEE Region 8

SIBIRCON-2010, Irkutsk Listvyanka, Russia, July 11 -- 15, 2010

[4] Alexander A. Kist, “Erlang B as a Performance Model for IP Flows”, 1-4244-1230-7/07,

IEEE ICON 2007.

[5] James K. Tamgno, Mamadou Alpha Barry, Simplice E. Gnang, Claude Lishou,

“Estimating Number of Organs using Erlang's B & C-Formulas”, ICACT2017 February 19

~ 22, 2017.

[6] Ali Mustafa Elshawesh, Mohamed Abdulali, “Dimensioning of Circuit Switched

Networks by using Simulation Code based on Erlang (B) formula”, 978-1-4799-5627-2/14

IEEE, 2014

[7] Tibor MISUTH, Ivan BARONAK. “Packet loss probability estimation using Erlang B

model in modern VoIP networks”, Published in: 7th International Conference on Electrical

and Electronics Engineering (ELECO), 2011, ISBN: 978-1-4673-0160-2. VOL. 2, P 259-

263, 1-4 December, Bursa, TURKEY.

[8] Manfred Schneps-Schneppe, Janis Sedols, “On Erlang B-formula and ERT Method

Extension”, 2010 International Congress on Ultra Modern Telecommunications and Control

Systems and Workshops (ICUMT).

[9] James K. Tamgno, Mamadou Alpha Barry, Simplice E. Gnang, Claude Lishou,

“Estimating Number of Organs using Erlang's B & C-Formulas”, ICACT February 19-

22,2017.

[10] Richard Parkinson, "Traffic Engineering Techniques In Telecommunications", Infotel

Systems Corporation, April 2002.

[11] The Extended Erlang B Traffic Model [Online], Westbay Engineers Ltd., 2008,

Available: http://www.erlang.com/calculatormanual/index.html?the_extended

_erlang_b_traffic_model.htm

[12] Yokota, M. Erlang, [Online], Available:

http://hp.vector.co.jp/authors/VA002244/erlang.htm

M. T. Hagan, H. B. Demuth, M. H. Beale et aI., Neural network design. Pws Pub.

Page 79: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

78

Boston, 1996.

[13] M. T. Hagan, H. B. Demuth, M. H. Beale et al., “Neural network design”. Pws Pub.

Boston, 1996.

[14] P. 1. Werbos, "Backpropagation through time: what it does and how to do it"

Proceedings of the IEEE, vol. 78, no. 10, pp. 1550-1560, 1990.

[15] FELKER, Donn. “Android Application for dummies”.2011, editorial Wiley.

[16] EECKEL, Bruce. “Piensa en Java”. 2a edición. 2005, editorial Prentice Hall.

[17] Fernando E. Valdés Pérez, “Microcontroladores: Fundamentos y Aplicaciones con

PIC”, Marcombo,S.A, España 2007.

[18] Guadarrama, Raymundo Barrales; Guadarrama, Víctor Rogelio Barrales; Rodríguez,

Melitón Ezequiel Rodríguez (2014). “Circuitos Eléctricos: Teoría y Práctica”. Grupo

Editorial Patria. ISBN 9786074389029. Consultado el 25 de noviembre de 2017.

Page 80: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

79

ANEXOS Script de Matlab para función Erlang B.

//Probfuncion.m

%Número de canal c=input('Ingresar el número de Canales : \n'); %Intensidad de Tráfico A (Erlang) n=input('Ingresar La intensidad de Tráfico : \n'); %Llamada de Función "Ecuación de Erlang B" como desarrollo propio -

verificación de Carta Erlang B ProBloqueo=erlangbmol(c,n) //erlangbmol.m function [pr]= erlangbmol(c,n) double c; double n1; double fac1; double e1; double fac2; double num1; double num2; double todo; double final; %Factorial uno del numerador C!

i=1; double n; %Número de canal %c=input('Ingresar el número de Canales : \n'); %c=2; %n=input('Ingresar La intensidad de Tráfico : \n'); %Intensidad de Tráfico A (Erlang) %n=0.3; fac1=1; while i<=c fac1=(fac1*i); i=i+1;

end fprintf('El factorial uno del numerador C! %g \n',fac1) % Intensidad de Tráfico elevado a A^c

b=1; e=1;

while b<=c e=e*n; b=b+1;

end fprintf('A elevado a C es %g \n',e) num1=e/fac1; fprintf('El resultado del numerador es %g \n ',num1) %Sumatoria del denominador cont=0; todo=0; while (cont<=c) %Factorial uno del numerador C! i2=1; %Número de canal %c=3;

Page 81: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

80

fac2=1; while(i2<=c) fac2=(fac2*i2); i2=i2+1; end fprintf('\nEl factorial uno del numerador C! es %g \n ',fac2) %Intensidad de Tráfico elevado a A^c b1=1; e1=1.0; n1=n; while(b1<=c) e1=e1*n1; b1=b1+1; end fprintf('\nA elevado a C! es %g \n ',e1) num2=e1/fac2; fprintf('\nEl resultado del numerador es %g \n ',num2) fprintf('\nEl decremento del numero de canal es %g \n ',c) todo= todo+num2; c=c-1; fprintf('\nla sumatoria del denominador es %g \n ',todo) end pr=num1/todo; %pr1=roundn(pr,-3); fprintf('\nla probabilidad de bloqueo es de %g \n ',pr)

Page 82: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

81

Código base en Lenguaje C – Ecuaciones de RNA //Funciones de regresión para los canales 5 y 6 //Para las demás parejas de canales, se modifican los parámetros de pesos y //unidades de oscilación que resultan del mejor entrenamiento de la RNA.

Page 83: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

82

Page 84: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

83

Código base en Lenguaje Java de Ecuaciones RNA

Page 85: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

84

Page 86: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

85

PUBLICACIÓN DE APLICACIÓN MÓVIL Configuración de la aplicación en “Google Play Console” (Cuenta de desarrollador)

Publicación en Google Play de la Aplicación Dirección Web: https://play.google.com/store/apps/details?id=com.personal.erlangbrna

Page 87: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

86

MANUAL DE USUARIO Para ejecutar la aplicación se deben seguir los siguientes pasos:

1. Buscar la App por la Google Play con el nombre “ErlangB”

2. Instalar la App solamente para dispositivos con sistema operativo Android 7.0

3. La primera vista muestra un splash durante 5 segundos indicando las respectivas entradas (Número de canales e Intensidad de Tráfico Troncal) y la salida (Probabilidad de Bloqueo) de la red neuronal artificial.

Page 88: CARTA DE ERLANG B IMPLEMENTADA COMO RED NEURONAL …repository.udistrital.edu.co/bitstream/11349/14499/1/MolinaMosquer… · carta de erlang b implementada como red neuronal artificial

87

4. En la segunda vista se ingresan los datos como número de canales, intensidad de tráfico troncal e intensidad de tráfico/usuario. Aclarando que el valor de Au debe ser entre cero y uno. Al oprimir el botón “CALCULAR”, se obtienen los resultados de la probabilidad de bloqueo (entre 0 y 100%), La cantidad de usuarios que soportaría el sistema de comunicaciones (A/Au) y el número de llamadas bloqueadas (A/Au*Pr)

5. Desde la opción de menú, se accede a las gráficas de Probabilidad de bloqueo y número de usuarios. Estas gráficas se establecen en dos ejes, el eje “Y” como variable Pr o Número de usuarios y eje “X” como variable en el tiempo de ejecución.