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
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
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
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
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:
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.
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.
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
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.
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;
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);
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.
83
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
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.
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.