Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Autor
Directora
Contenido
Resumen................................................................................................................................3
Introducción............................................................................................................................4
2. Objetivos .........................................................................................................................6
3. Justificación ....................................................................................................................7
4. Delimitación ....................................................................................................................8
6. Metodología ..................................................................................................................26
Bibliografía ...........................................................................................................................28
Resumen
Este trabajo pretende implementar un algoritmo de compresión, que se use en el
proceso de codificación de la fuente de información en un sistema de
telecomunicaciones, esta implementación incluye una modificación en la estructura de
datos manejada en el algoritmo de Huffman, que de forma canónica utiliza un grafo
tipo árbol binario para distribuir los caracteres o símbolos de la ráfaga de información
a codificar, clasificándolos dependiendo de las frecuencias relativas de aparición; este
árbol puede ser reemplazado por una red neuronal que es similar en su estructura a
un grafo con pesos en las conexiones, de esta manera lograr entrenar la red neuronal
para que encuentre patrones en las ráfagas de información y aumentar la tasa de
compresión de la información que se quiere enviar hacia el canal; si se logra reducir
el volumen de información, significaría una mejora en el grado de servicio y
desempeño de la red de telecomunicaciones aumentando la capacidad sin depender
del tipo del canal ni de su ancho de banda.
Palabras Clave
Complejidad algorítmica, red neuronal, tasa de compresión, algoritmo Huffman,
codificación de la fuente.
Introducción
La demanda de conectividad por parte de múltiples dispositivos y el aumento del
volumen de información que es transmitida por las redes de telecomunicaciones es
exponencial, requiriendo canales más robustos que soporten altas tasas de
transmisión, incrementando los requisitos funcionales de las redes, este fenómeno se
incrementa en las redes dispuestas para dispositivos móviles en canales inalámbricos,
que es a lo que apunta la tendencia de uso; con base en lo anterior puede pensarse
que la compresión de datos se hace necesaria en los escenarios de las
comunicaciones; esta compresión de datos se realiza antes del envió sobre el canal,
por lo general en la fuente, para tal fin se usa comúnmente el algoritmo de Huffman,
con el que se codifica la información. El algoritmo de Huffman para compresión se
aplica en archivos de texto, pero puede aplicarse a cualquier tipo de información si se
lleva previamente a una forma digital, donde caracteres o símbolos están codificados
en códigos de palabras, que mediante el cálculo de su frecuencia son distribuidos en
un grafo tipo árbol binario llamado árbol de Huffman, sin embargo, al aumentar el
volumen de información a transmitir o al tratar datos muy heterogéneos, aumentará la
cantidad de elementos (nodos) del grafo de Huffman, por lo tanto aumenta la
complejidad temporal y operacional del algoritmo, este aumento genera una
desventaja en los equipos que hacen uso de la conectividad, debido al incremento de
recursos de hardware necesarios y que en dispositivos móviles muchas veces son
limitados, también influyen las limitaciones del ancho del canal en el desempeño de la
red de comunicaciones. Para tratar de encontrar una solución, las investigaciones
hasta la fecha han usado comúnmente la compresión Huffman con redes neuronales
utilizando pesos de red cuantificados, los cuales facilitan la transferencia de datos en
ráfaga, donde la dispersión y la repetición de los pesos es común, sin embargo, se
utiliza la compresión de Huffman por separado en múltiples bloques, cada uno
ejecutado por separado en hilos de procesamiento distintos, con lo que se aumenta la
complejidad del algoritmo. Según todo lo anterior se puede llegar a implementar una
red neuronal que determine los patrones de compresión basado en distribuciones
estadísticas y realice directamente la compresión de la información en su forma digital
modificando el algoritmo de Huffman, además de esto, se puede intentar modificar la
codificación Huffman convencional con una aplicación directa de una red neuronal que
se utilice como estructura de datos en las ponderaciones del grafo, para estudiar su
comportamiento y desempeño.
2. Objetivos
2.1. Objetivo General
3. Justificación
En la actualidad el aumento de usuarios de las redes de telecomunicaciones se ha
incrementado de forma exponencial, estos usuarios son diversos dispositivos
electrónicos que usan los canales de las redes para transmitir distintos tipos de
información, como el número de usuarios sigue aumentando el volumen de
información también aumenta; una solución a esta tendencia es la búsqueda de
canales con amplios anchos de banda que permitan transmitir mayor cantidad de
información en igual o menor tiempo, para mejorar el desempeño de la red, sin
embargo la búsqueda de mayores anchos de banda es directamente sobre el canal
que por sí mismo presenta limitaciones físicas; otra solución se puede buscar
codificando la información antes de ser enviada, comprimiéndola de forma que se
transmita una representación más pequeña de los datos, utilizando una parte reducida
del ancho del canal, de esta manera se puede enviar mayor cantidad de información
en un mismo instante de tiempo. Existen varios algoritmos que se implementan en la
fuente de información para codificar y comprimir los datos, pero siempre se está en
busca de mejorar las tasas de compresión, ya que, así fuese en un bajo porcentaje,
aumentaría significativamente el desempeño de la red, optimizando el uso del ancho
del canal. Esto muestra la importancia de la manipulación que se le da a la información
que se quiere transmitir en una red de comunicaciones, ya que los canales tienen
limitaciones físicas, los algoritmos y métodos de codificación y compresión brindan
mejoras en el desempeño de las redes, evidenciándose en su tiempo de respuesta.
beneficio que arrojaría en las pruebas, buscando mejorar el desempeño de una red
de comunicaciones.
4. Delimitación
Este trabajo se enmarca en el contexto de los sistemas de comunicaciones digitales,
en particular en el proceso de codificación de la fuente; este proceso es el encargado
de tomar la información que es generada por una fuente de cualquier tipo y variedad,
por ejemplo, señales de radiodifusión, imágenes, audio y video etc. Esta información
pasa por una conversión a su forma digital para que sea transmitida, esta codificación
utiliza modelos matemáticos basados en probabilidad y procesos estocásticos
aplicados a algoritmos de codificación, aquí es donde se centra este trabajo al realizar
una implementación de un algoritmo de codificación común como lo es el algoritmo de
Huffman, luego hacerle una modificación estructural, para que trabaje con una red
neuronal, al trabajar con este algoritmo se medirá su complejidad y desempeño para
determinar si la codificación mediante este genera una taza de compresión más alta
comparada con otros algoritmos que sean utilizados para el mismo proceso.
5. Marco Teórico
Los algoritmos de compresión no adaptativos, son aquellos que tienen asociado una
tabla o diccionario de códigos, que representan las cadenas de bits que más se
repiten, determinados mediante un estudio estadístico de la información, se divide en
tramas de bits, a cada trama se le asigna secuencias más cortas, he irán
incrementando su tamaño son proporcionalidad inversa al valor de la probabilidad de
ocurrencia[9].
Por último, los adaptativos, son algoritmos que sustituyen tramas cortas por tramas
más largas que se repiten y así logra reducir el tamaño de la información.
Los algoritmos se pueden clasificar no solo porque lleven a cabo la tarea para la que
fueron diseñados, también pueden clasificarse en cuanto a los costos de su ejecución;
entendiéndose por costo, la cantidad de recursos físicos y temporales que consume
el algoritmo en tiempo de ejecución desde que inicia hasta que termina la tarea, a este
indicador se le conoce como medida de la complejidad del algoritmo o también como
medida de la eficiencia[10].
El orden en que se procesen los elementos de entrada afecta el costo temporal del
algoritmo. Podría considerarse que los valores de los n casos que se presentan como
entrada son los correspondientes: a un caso típico, o a un caso promedio, o de peor
caso. El peor caso es el más sencillo de definir (el que demore más para cualquier
entrada), pero si se desea otros tipos de entrada habría que definir qué se considera
típico, o la distribución de los valores en el caso promedio, para los algoritmos de
compresión de información los bloques de entrada es la información en su forma digital
que se desea comprimir.
LZW
Huffman
Complejid
Aritmética
ad O(n)
Volumen de
Datos
Aritmética
Complejida
LZW
d O(c)
Huffman
Volumen de
Datos
Una red neuronal artificial (RNA) puede definirse como un sistema de procesamiento
de información compuesto por un determinado número de elementos de
procesamiento (neuronas), conectados entre sí a través de canales de comunicación
denominados sinapsis[17]. Estas conexiones establecen una estructura jerárquica y
permiten la interacción, representando las abstracciones del mundo real, estos
sistemas computacionales tratan de emular al sistema nervioso biológico. A diferencia
de la computación tradicional, basada en algoritmos predecibles, la computación
neuronal permite desarrollar sistemas que resuelvan problemas complejos cuya
formalización matemática es sumamente difícil [18], esto se logra porque los sistemas
que trabajan con RNA tienen características de funcionamiento que permiten un tipo
de aprendizaje de máquina, estas características son las siguientes:
Operación en tiempo real: de todos los métodos existentes, la RNA son las más
indicadas para el reconocimiento de patrones en tiempo real, debido a que trabajan
en paralelo actualizando todas sus instancias simultáneamente[21].
Las RNA están compuestas por una serie de elementos de procesamiento o neurona
(microestructura). Conectando varias neuronas de un determinado modo
conseguimos una red (mesoestructura). Existen infinitas variaciones de topologías,
pero podemos clasificarlas según los siguientes criterios; primero por el número de
niveles o capas, segundo por el número de neuronas por nivel, tercero por las formas
de conexión[17].
En cuanto a la cantidad de capas, se puede decir que una red puede estar formada
por un mínimo de una capa y un máximo de n capas. Cuando existe una sola capa,
esta oficia tanto de entrada como de salida. En el caso de una red de dos capas, la
primera será de entrada y la segunda de salida. Para el caso de redes con más de
tres capas, la primera será de entrada, la última de salida y las restantes serán las
capas ocultas. El número de neuronas por nivel puede variar desde 1 hasta n, y
depende de la topología de cada modelo en particular[17].
6. Metodología
En esta sección se describe la metodología que se usará para llegar al cumplimiento
del objetivo general, así como el de los objetivos específicos propuestos en este
trabajo. Se mencionan las herramientas de simulación utilizadas en el desarrollo del
trabajo y se describen las actividades realizadas en cada objetivo específico.
6.1. Cronograma
DESVIACION
Predecesora
OPTIMISTA
ESTIMADO
PESIMISTA
ESPERADO
VARIANZA
Actividad
Bibliografía
[1] B. Sklar, “DIGITAL Fundamentals and Applications,” Ijcnwc, 2013.
[7] B. Zhang, Z. Wang, J. Wang, and H. Wang, “and Transmission technology for
Structure Healthy Monitoring,” 2017.
[10] L. S. Cohen and T. Wendling, “Técnicas de diseño,” Técnicas de diseño, pp. 15–
18, 1998.
[17] F. de Moya Anegón, V. Herrero Solana, and V. Guerrero Bote, “La aplicación de
Redes Neuronales Artificiales (RNA): a la recuperación de la información,”
Bibliodoc Anu. Bibl. Doc. i Inf., pp. 147–164, 2007.
[18] H. K. Roni, M. Abdul, and G. Khan, “An Artificial Neural Network Based
Predictive Approach for Analyzing Environmental Impact on Combined Cycle
Power Plant Generation,” 2017 2nd Int. Conf. Electr. Electron. Eng., no.
December, pp. 1–4, 2017.
[19] J. Zhu, L. Wu, Y. Lu, J. Jiao, and X. Song, “Convolutional Neural Networks Based
for High Spectral Dimensional Data Classification,” 2018 IEEE Third Int. Conf.
Data Sci. Cybersp., pp. 768–772, 2018.
[20] M. Amir and T. Givargis, “Priority Neuron: A Resource-Aware Neural Network for
Cyber-Physical Systems,” IEEE Trans. Comput. Des. Integr. Circuits Syst., vol.
PP, no. XX, pp. 1–1, 2018.
[22] W. Li, “Design and Analysis of a Novel Finite-Time Convergent and Noise-
Tolerant Recurrent Neural Network for Time-Variant Matrix Inversion,” IEEE
Trans. Syst. Man, Cybern. Syst., vol. PP, pp. 1–15, 2018.
[25] R. Dogaru, P. Julian, L. O. Chua, and M. Glesner, “The simplicial neural cell and
its mixed-signal circuit implementation: An efficient neural-network architecture
[26] A. G. Blanco, “Method to approximate initial values for training lineal neural
networks,” Proc. - Electron. Robot. Automot. Mech. Conf. CERMA 2008, pp.
443–446, 2008.
[28] Z. Zhang, X. Cui, X. Lin, and L. Zhang, “An algorithm of training sample selection
for integrated circuit device modeling based on artificial neural networks,” 2016
IEEE Int. Conf. Electron Devices Solid-State Circuits, pp. 314–317, 2016.